huihui 1 éve
szülő
commit
7fb46866f7

+ 11 - 3
src/main/java/com/ydtech/modules/admin/service/impl/TaskStatisticsServiceImpl.java

@@ -700,9 +700,17 @@ public class TaskStatisticsServiceImpl  implements TaskStatisticsService {
         for (BusinessAgentData record : records) {
             this.appendName(record);
             //新增毛利润率   毛利润/成本(出口费用)
-            BigDecimal grossMarginBD = record.getDistributionAmount().divide(record.getExportAllFee(), 4, RoundingMode.HALF_UP); //毛利润率
-            DecimalFormat decimalFormat = new DecimalFormat("0.00%");
-            String grossMargin = decimalFormat.format(grossMarginBD);
+            String grossMargin = "0.00%";
+            BigDecimal zreo = new BigDecimal("0");
+            BigDecimal distributionAmount = record.getDistributionAmount();
+            BigDecimal exportAllFee = record.getExportAllFee();
+            if (distributionAmount.compareTo(zreo) > 0 && exportAllFee.compareTo(zreo) > 0) {
+                BigDecimal grossMarginBD = distributionAmount.divide(exportAllFee, 4, RoundingMode.HALF_UP); //毛利润率
+                DecimalFormat decimalFormat = new DecimalFormat("0.00%");
+                grossMargin = decimalFormat.format(grossMarginBD);
+            } else if (distributionAmount.compareTo(zreo) > 0 && exportAllFee.compareTo(zreo) == 0) {
+                grossMargin = "100.00%";
+            }
             record.setGrossMargin(grossMargin);
         }
         Long  total = this.taskStatisticsMapper.getBusinessAgentDataTotal(taskStatisticsVo);

+ 5 - 3
src/main/resources/mapper/modules/admin/TaskStatisticsMapper.xml

@@ -354,9 +354,11 @@
                       and su.id=#{vo.userId}
                   </if>
 
-                  <if test="vo.createtimeStart  != null  and  vo.createtimeStart!=''  and vo.createtimeEnd  != null  and  vo.createtimeEnd!=''">
-                      AND DATE_FORMAT( iac.signing_time, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{vo.createtimeStart}, '%Y-%m-%d') AND
-                      DATE_FORMAT( #{vo.createtimeEnd}, '%Y-%m-%d')
+                  <if test="vo.signingTimeStart != null and vo.signingTimeStart!='' and vo.signingTimeEnd != null and vo.signingTimeEnd != ''">
+                      AND DATE_FORMAT(iac.signing_time, '%Y-%m-%d') BETWEEN DATE_FORMAT(#{vo.signingTimeStart}, '%Y-%m-%d') AND DATE_FORMAT(#{vo.signingTimeEnd}, '%Y-%m-%d')
+                  </if>
+                  <if test="vo.enterTimeStart != null and vo.enterTimeStart!='' and vo.enterTimeEnd != null and vo.enterTimeEnd != ''">
+                      AND DATE_FORMAT(iac.createtime, '%Y-%m-%d') BETWEEN DATE_FORMAT(#{vo.enterTimeStart}, '%Y-%m-%d') AND DATE_FORMAT(#{vo.enterTimeEnd}, '%Y-%m-%d')
                   </if>
 
                   <if test="vo.managementSource !=null  and vo.managementSource!=''">