Преглед на файлове

对部分逻辑增加事务控制。

zhuoning преди 2 години
родител
ревизия
f0c25f348b

+ 18 - 0
huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/utils/DateUtil.java

@@ -33,6 +33,24 @@ public class DateUtil {
         return year+"-"+month;
     }
 
+    //格式化上月
+    public String getLastMonthAndYear(){
+        Calendar cal = Calendar.getInstance();
+        cal.add(Calendar.MONTH, -1);
+        int month = cal.get(Calendar.MONTH) + 1;
+        int year = cal.get(Calendar.YEAR);
+        return year+"-"+month;
+    }
+
+    public String getThisMonthAndYear(){
+        Calendar cal = Calendar.getInstance();
+//        cal.add(Calendar.MONTH, -1);
+        int month = cal.get(Calendar.MONTH) + 1;
+        int year = cal.get(Calendar.YEAR);
+        return year+"-"+month;
+    }
+
+
     //读取之前hours小时的时间
     public String getBeforeHoursDatetime(String newTime,int hours) throws ParseException {
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

+ 2 - 0
huimv-env-platform/huimv-env-produce/src/main/java/com/huimv/env/produce/service/impl/EliminateDetailServiceImpl.java

@@ -14,6 +14,7 @@ import com.huimv.env.produce.service.EliminateDetailService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.text.ParseException;
@@ -69,6 +70,7 @@ public class EliminateDetailServiceImpl extends ServiceImpl<EliminateDetailMappe
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public Result save(Map<String, String> paramsMap) throws ParseException {
         //farmCode
         String farmCode = paramsMap.get("farmCode");

+ 25 - 9
huimv-env-platform/huimv-env-produce/src/main/java/com/huimv/env/produce/service/impl/SalesDetailServiceImpl.java

@@ -16,6 +16,7 @@ import com.huimv.env.produce.service.SalesDetailService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.text.ParseException;
@@ -65,6 +66,7 @@ public class SalesDetailServiceImpl extends ServiceImpl<SalesDetailMapper, Sales
         //查询明细表
         QueryWrapper<SalesDetail> detailQueryWrapper = new QueryWrapper<>();
         detailQueryWrapper.eq("farm_code",farmCode);
+        detailQueryWrapper.orderByAsc("id");
         List<SalesDetail> salesDetailList = salesDetailMapper.selectList(detailQueryWrapper);
         resultJo.put("list",salesDetailList);
         return new Result(ResultCode.SUCCESS,resultJo);
@@ -125,23 +127,31 @@ public class SalesDetailServiceImpl extends ServiceImpl<SalesDetailMapper, Sales
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public Result save2(Map<String, String> paramsMap) {
         //
         String farmCode = paramsMap.get("farmCode");
         if(farmCode == null){
             farmCode = DEFAULT_FARM_CODE;
         }
+        //删除原先总表
+        QueryWrapper<Sales> totalQueryWrapper = new QueryWrapper();
+        totalQueryWrapper.eq("farm_code",farmCode);
+        salesMapper.delete(totalQueryWrapper);
         //删除原先明细表
         QueryWrapper<SalesDetail> detailQueryWrapper = new QueryWrapper<>();
         detailQueryWrapper.eq("farm_code",farmCode);
         salesDetailMapper.delete(detailQueryWrapper);
         //新增明细表
         DateUtil dateUtil = new DateUtil();
-
+        String thisMonth = dateUtil.getThisMonthAndYear();
+        String thisMonthSaleMoney = "0";
+        String thisMonthSaleCount = "0";
+        String lastMonth = dateUtil.getLastMonthAndYear();
+        String lastMonthSaleMoney = "0";
+        String lastMonthSaleCount = "0";
         String list = paramsMap.get("list");
         JSONArray listJa = JSONArray.parseArray(list);
-        BigDecimal moneyBd = new BigDecimal(0);
-        int count = 0;
         for(int a=0;a<listJa.size();a++){
             JSONObject listJo = listJa.getJSONObject(a);
             SalesDetail salesDetail = new SalesDetail();
@@ -150,15 +160,21 @@ public class SalesDetailServiceImpl extends ServiceImpl<SalesDetailMapper, Sales
             salesDetail.setAddDate(listJo.getString("addDate"));
             salesDetail.setFarmCode(farmCode);
             salesDetailMapper.insert(salesDetail);
-
+            if(thisMonth.trim().equalsIgnoreCase(listJo.getString("addDate"))){
+                thisMonthSaleMoney = listJo.getString("saleMoney");
+                thisMonthSaleCount = listJo.getString("saleCount");
+            }
+            if(lastMonth.trim().equalsIgnoreCase(listJo.getString("addDate"))){
+                lastMonthSaleMoney = listJo.getString("saleMoney");
+                lastMonthSaleCount = listJo.getString("saleCount");
+            }
         }
-
         //新增总表
         Sales Sales = new Sales();
-        Sales.setThisSaleMoney(moneyBd);
-        Sales.setThisSaleCount(count);
-//        Sales.setLastSaleMoney(new BigDecimal(lastSaleMoney));
-//        Sales.setLastSaleCount(Integer.parseInt(lastSaleCount));
+        Sales.setThisSaleMoney(new BigDecimal(thisMonthSaleMoney));
+        Sales.setThisSaleCount(Integer.parseInt(thisMonthSaleCount));
+        Sales.setLastSaleMoney(new BigDecimal(lastMonthSaleMoney));
+        Sales.setLastSaleCount(Integer.parseInt(lastMonthSaleCount));
         Sales.setFarmCode(farmCode);
         salesMapper.insert(Sales);
         return new Result(ResultCode.SUCCESS);

+ 2 - 0
huimv-env-platform/huimv-env-produce/src/main/java/com/huimv/env/produce/service/impl/StockDetailServiceImpl.java

@@ -15,6 +15,7 @@ import com.huimv.env.produce.service.StockDetailService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.management.Query;
 import java.util.List;
@@ -67,6 +68,7 @@ public class StockDetailServiceImpl extends ServiceImpl<StockDetailMapper, Stock
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public Result save(Map<String, String> paramsMap) {
         //
         String farmCode = paramsMap.get("farmCode");

+ 24 - 0
huimv-env-platform/huimv-env-produce/src/test/java/com/huimv/env/produce/util/DateTest.java

@@ -0,0 +1,24 @@
+package com.huimv.env.produce.util;
+
+import com.huimv.env.common.utils.DateUtil;
+import org.junit.jupiter.api.Test;
+import org.springframework.boot.test.context.SpringBootTest;
+
+/**
+ * @Project : huimv-env-platform
+ * @Package : ${}
+ * @Description : TODO
+ * @Version : 1.0
+ * @Author : ZhuoNing
+ * @Create : 2022/11/2
+ **/
+@SpringBootTest
+public class DateTest {
+
+    @Test
+    public void test1(){
+        DateUtil dateUtil = new DateUtil();
+        System.out.println("last="+dateUtil.getLastMonthAndYear());
+        System.out.println("this="+dateUtil.getThisMonthAndYear());
+    }
+}