hfxc226 1 місяць тому
батько
коміт
16729e9272

+ 2 - 0
platform-dao/src/main/java/com/platform/dao/mapper/produce/ProduceRecordMapper.java

@@ -24,4 +24,6 @@ public interface ProduceRecordMapper extends MyMapper<ProduceRecord> {
      */
     List<ProduceRecordVO> selectList(ProduceRecordDTO dto);
 
+    ProduceRecordVO sumMonthYear(ProduceRecordDTO record);
+
 }

+ 4 - 0
platform-dao/src/main/java/com/platform/dao/vo/query/produce/ProduceRecordVO.java

@@ -57,6 +57,10 @@ public class ProduceRecordVO extends BaseVO implements Serializable {
      * 数量
      */
     private BigDecimal num;
+    /**
+     * 总数
+     */
+    private BigDecimal totalValue;
     /**
      * 关联单号
      */

+ 11 - 2
platform-dao/src/main/resources/mapper/produce/ProduceRecordMapper.xml

@@ -63,7 +63,7 @@
             and record.product_name = #{productName}
         </if>
         <if test="dateStart != null">
-            and record.date <![CDATA[>=]]>; #{dateStart}
+            and record.date <![CDATA[>=]]> #{dateStart}
         </if>
         <if test="dateEnd != null">
             and record.date <![CDATA[<=]]> #{dateEnd}
@@ -99,7 +99,7 @@
             and record.created_user_name = #{createdUserName}
         </if>
         <if test="updateTimeStart != null">
-            and record.update_time <![CDATA[>=]]>; #{updateTimeStart}
+            and record.update_time <![CDATA[>=]]> #{updateTimeStart}
         </if>
         <if test="updateTimeEnd != null">
             and record.update_time <![CDATA[<=]]> #{updateTimeEnd}
@@ -125,4 +125,13 @@
             <include refid="List_Condition"/>
         </where>
     </select>
+
+    <select id="sumMonthYear" parameterType="com.platform.dao.dto.produce.ProduceRecordDTO"
+            resultType="com.platform.dao.vo.query.produce.ProduceRecordVO">
+        select SUM(num) as totalValue
+        from t_produce_record as record
+        <where>
+            <include refid="List_Condition"/>
+        </where>
+    </select>
 </mapper>

+ 3 - 0
platform-service/src/main/java/com/platform/service/produce/ProduceRecordService.java

@@ -2,8 +2,10 @@ package com.platform.service.produce;
 
 import com.platform.common.bean.AbstractPageResultBean;
 import com.platform.dao.dto.produce.ProduceRecordDTO;
+import com.platform.dao.dto.produce.ProduceReportDTO;
 import com.platform.dao.entity.produce.ProduceRecord;
 import com.platform.dao.vo.query.produce.ProduceRecordVO;
+import com.platform.dao.vo.query.produce.ProduceReportVO;
 import com.platform.service.base.IBaseService;
 
 import java.util.List;
@@ -65,4 +67,5 @@ public interface ProduceRecordService extends IBaseService<ProduceRecord, Produc
      * @return :
      */
     ProduceRecord saveIgnoresStrStock(String str);
+    ProduceRecordVO sumMonthYear(ProduceRecordDTO record);
 }

+ 10 - 0
platform-service/src/main/java/com/platform/service/produce/impl/ProduceRecordServiceImpl.java

@@ -155,6 +155,16 @@ public class ProduceRecordServiceImpl extends BaseServiceImpl<ProduceRecordMappe
         return record;
     }
 
+    @Override
+    public ProduceRecordVO sumMonthYear(ProduceRecordDTO record) {
+        ProduceRecordVO vo = mapper.sumMonthYear(record);
+        if (vo == null) {
+            vo = new ProduceRecordVO();
+            vo.setTotalValue(new BigDecimal(0));
+        }
+        return vo;
+    }
+
     /**
      * 文字装换为类型
      *

+ 30 - 21
platform-service/src/main/java/com/platform/service/produce/impl/ProduceReportServiceImpl.java

@@ -75,7 +75,12 @@ public class ProduceReportServiceImpl extends BaseServiceImpl<ProduceReportMappe
 
     @Override
     public ProduceReportVO sumMonthYear(ProduceReportDTO record) {
-        return mapper.sumMonthYear(record);
+        ProduceReportVO vo = mapper.sumMonthYear(record);
+        if (vo == null) {
+            vo = new ProduceReportVO();
+            vo.setTotalValue("0");
+        }
+        return vo;
     }
 
 
@@ -251,7 +256,6 @@ public class ProduceReportServiceImpl extends BaseServiceImpl<ProduceReportMappe
      *             902      0600032
      */
     @Override
-    @Async
     @Transactional(rollbackFor = Exception.class)
     public void generate(LocalDate date) {
         LocalDate now = LocalDate.now();
@@ -820,15 +824,17 @@ public class ProduceReportServiceImpl extends BaseServiceImpl<ProduceReportMappe
         this.saveModel(report);
         resultList.add(report);
         // 年累计
-        ProduceReportDTO month = new ProduceReportDTO();
-        month.setDataId(produceData.getId());
-        month.setYear(date.getYear());
-        ProduceReportVO yearVO = this.sumMonthYear(month);
+        ProduceRecordDTO month = new ProduceRecordDTO();
+        month.setProductNo(no);
+        month.setDateStart(DateUtils.getFirstDayOfThisYear(date.getYear()));
+        month.setDateEnd(DateUtils.getLastDayOfThisYear(date.getYear()));
+        month.setType(type);
+        ProduceRecordVO yearVO = produceRecordService.sumMonthYear(month);
         ProduceData yearData = produceDataService.selectByNo(prefix + no + "_year");
         ProduceReport yearReport = BeanConverterUtil.copyObjectProperties(yearData, ProduceReport.class);
         yearReport.setDate(date);
         yearReport.setDataId(yearData.getId());
-        yearReport.setValue(new BigDecimal(yearVO.getTotalValue()).divide(new BigDecimal(1000), 2, BigDecimal.ROUND_HALF_UP).toString());
+        yearReport.setValue(yearVO.getTotalValue().divide(new BigDecimal(1000), 2, BigDecimal.ROUND_HALF_UP).toString());
         yearReport.setYear(date.getYear());
         yearReport.setMonth(date.getMonthValue());
         yearReport.setDay(date.getDayOfMonth());
@@ -836,13 +842,14 @@ public class ProduceReportServiceImpl extends BaseServiceImpl<ProduceReportMappe
         this.saveModel(yearReport);
 
         // 月累计
-        report.setMonth(date.getMonthValue());
-        ProduceReportVO monthVO = this.sumMonthYear(month);
+        month.setDateStart(DateUtils.getFirstDayOfMonth(date));
+        month.setDateEnd(DateUtils.getLastDayOfMonth(date));
+        ProduceRecordVO monthVO = produceRecordService.sumMonthYear(month);
         ProduceData monthData = produceDataService.selectByNo(prefix + no + "_month");
         ProduceReport monthReport = BeanConverterUtil.copyObjectProperties(monthData, ProduceReport.class);
         monthReport.setDate(date);
         monthReport.setDataId(monthData.getId());
-        monthReport.setValue(new BigDecimal(monthVO.getTotalValue()).divide(new BigDecimal(1000), 2, BigDecimal.ROUND_HALF_UP).toString());
+        monthReport.setValue(monthVO.getTotalValue().divide(new BigDecimal(1000), 2, BigDecimal.ROUND_HALF_UP).toString());
         monthReport.setYear(date.getYear());
         monthReport.setMonth(date.getMonthValue());
         monthReport.setDay(date.getDayOfMonth());
@@ -1011,15 +1018,17 @@ public class ProduceReportServiceImpl extends BaseServiceImpl<ProduceReportMappe
         this.saveModel(report);
 
         // 年累计
-        ProduceReportDTO month = new ProduceReportDTO();
-        month.setDataId(produceData.getId());
-        month.setYear(date.getYear());
-        ProduceReportVO yearVO = this.sumMonthYear(month);
+        ProduceRecordDTO month = new ProduceRecordDTO();
+        month.setProductNo(no);
+        month.setDateStart(DateUtils.getFirstDayOfThisYear(date.getYear()));
+        month.setDateEnd(DateUtils.getLastDayOfThisYear(date.getYear()));
+        month.setType(ProduceRecordTypeEnum.CL_CK.getValue());
+        ProduceRecordVO yearVO = produceRecordService.sumMonthYear(month);
         ProduceData yearData = produceDataService.selectByNo(prefix + no + "_hy" + "_year");
         ProduceReport yearReport = BeanConverterUtil.copyObjectProperties(yearData, ProduceReport.class);
         yearReport.setDate(date);
         yearReport.setDataId(yearData.getId());
-        yearReport.setValue(new BigDecimal(yearVO.getTotalValue()).divide(new BigDecimal(1000), 2, BigDecimal.ROUND_HALF_UP).toString());
+        yearReport.setValue(yearVO.getTotalValue().divide(new BigDecimal(1000), 2, BigDecimal.ROUND_HALF_UP).toString());
         yearReport.setYear(date.getYear());
         yearReport.setMonth(date.getMonthValue());
         yearReport.setDay(date.getDayOfMonth());
@@ -1027,20 +1036,20 @@ public class ProduceReportServiceImpl extends BaseServiceImpl<ProduceReportMappe
         this.saveModel(yearReport);
 
         // 月累计
-        report.setMonth(date.getMonthValue());
-        ProduceReportVO monthVO = this.sumMonthYear(month);
+        month.setDateStart(DateUtils.getFirstDayOfMonth(date));
+        month.setDateEnd(DateUtils.getLastDayOfMonth(date));
+        ProduceRecordVO monthVO = produceRecordService.sumMonthYear(month);
         ProduceData monthData = produceDataService.selectByNo(prefix + no + "_hy" + "_month");
         ProduceReport monthReport = BeanConverterUtil.copyObjectProperties(monthData, ProduceReport.class);
         monthReport.setDate(date);
         monthReport.setDataId(monthData.getId());
-        monthReport.setValue(new BigDecimal(monthVO.getTotalValue()).divide(new BigDecimal(1000), 2, BigDecimal.ROUND_HALF_UP).toString());
+        monthReport.setValue(monthVO.getTotalValue().divide(new BigDecimal(1000), 2, BigDecimal.ROUND_HALF_UP).toString());
         monthReport.setYear(date.getYear());
         monthReport.setMonth(date.getMonthValue());
         monthReport.setDay(date.getDayOfMonth());
         monthReport.setCreatedTime(LocalDateTime.now());
         this.saveModel(monthReport);
 
-
         // 计算每日单耗,找到每日scl量
         ProduceReport dayScl = sclList.stream().filter(dept -> dept.getNo().endsWith("_0300027")).collect(Collectors.toList()).get(0);
         String hyPrefix = "hy_";
@@ -1066,10 +1075,10 @@ public class ProduceReportServiceImpl extends BaseServiceImpl<ProduceReportMappe
         ProduceReport monthHy = BeanConverterUtil.copyObjectProperties(hyMonth, ProduceReport.class);
         monthHy.setDate(date);
         monthHy.setDataId(hyMonth.getId());
-        if (new BigDecimal("0").compareTo(new BigDecimal(monthVO.getTotalValue())) == 0) {
+        if (new BigDecimal("0").compareTo(monthVO.getTotalValue()) == 0 || new BigDecimal(monthScl.getValue()).compareTo(new BigDecimal(0)) <= 0) {
             monthHy.setValue("0");
         } else {
-            BigDecimal hyMonthValue = (new BigDecimal(monthVO.getTotalValue()).divide(new BigDecimal(monthScl.getValue()), RoundingMode.HALF_UP).multiply(new BigDecimal(0.3))).setScale(2, RoundingMode.HALF_UP);
+            BigDecimal hyMonthValue = (monthVO.getTotalValue().divide(new BigDecimal(monthScl.getValue()), RoundingMode.HALF_UP).multiply(new BigDecimal(0.3))).setScale(2, RoundingMode.HALF_UP);
             monthHy.setValue(hyMonthValue.toString());
         }
         monthHy.setYear(date.getYear());