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

Merge remote-tracking branch 'origin/develop' into develop

FengChaoYu преди 4 месеца
родител
ревизия
321dce2e9f

+ 18 - 16
mall-server-api/src/main/java/com/gree/mall/manager/bean/worker/SettlementPgOrderVO.java

@@ -9,40 +9,42 @@ import org.springframework.data.elasticsearch.annotations.FieldType;
 import org.springframework.stereotype.Service;
 
 import javax.validation.constraints.NotBlank;
+import java.math.BigDecimal;
 import java.util.Date;
 
 @ApiModel
 @Data
 public class SettlementPgOrderVO {
 
+    @ZfireField(tbName = "d")
     @ApiModelProperty(value = "所属公司")
     private String belongCompany;
-
+    @ZfireField(tbName = "d")
     @ApiModelProperty(value = "所属公司编号")
     private String belongCompanyCode;
 
-
+    @ZfireField(tbName = "d")
     @ApiModelProperty(value = "网点编号")
     private String websitId;
-
+    @ZfireField(tbName = "d",colName = "name")
     @ApiModelProperty(value = "网点名称")
     private String websitName;
-
+    @ZfireField(tbName = "d")
     @ApiModelProperty(value = "网点联系人")
     private String linkName;
-
+    @ZfireField(tbName = "d")
     @ApiModelProperty(value = "网点联系人电话")
     private String linkMobile;
-
+    @ZfireField(tbName = "a",colName = "worker_number")
     @ApiModelProperty("师傅编号")
-    private String workerId;
-
+    private String workerNumber;
+    @ZfireField(tbName = "a",colName = "worker_name")
     @ApiModelProperty("师傅名称")
     private String workerName;
-
+    @ZfireField(tbName = "a",colName = "worker_mobile")
     @ApiModelProperty(value = "师傅电话")
     private String workerMobile;
-
+    @ZfireField(tbName = "b",colName = "worker_mobile")
     @ApiModelProperty(value = "工单类型")
     private String orderSmallTypeText;
 
@@ -56,21 +58,21 @@ public class SettlementPgOrderVO {
 
     @ZfireField(isQuery = false)
     @ApiModelProperty(value = "电子支付工单数量(台)")
-    private Integer dzzfs;
+    private Integer dzzfs=0;
 
     @ZfireField(isQuery = false)
     @ApiModelProperty(value = "电子支付设备总台数(台)")
-    private Integer dzzfsbts;
+    private Integer dzzfsbts=0;
 
     @ZfireField(isQuery = false)
-    @ApiModelProperty(value = "电子支付总金额()")
-    private Integer dzzfzje;
+    @ApiModelProperty(value = "电子支付总金额()")
+    private BigDecimal dzzfzje=BigDecimal.ZERO;
 
     @ZfireField(isQuery = false)
     @ApiModelProperty(value = "电子支付平均费用(元/台)")
-    private Integer dzzfpjfy;
+    private BigDecimal dzzfpjfy=BigDecimal.ZERO;
 
     @ZfireField(isQuery = false)
     @ApiModelProperty(value = "电子支付总平均费用(元/台)")
-    private Integer dzzfzpjfy;
+    private BigDecimal dzzfzpjfy=BigDecimal.ZERO;
 }

+ 56 - 0
mall-server-api/src/main/java/com/gree/mall/manager/logic/websit/SettlementOrderLogic.java

@@ -809,6 +809,62 @@ public class SettlementOrderLogic {
                 zfireParamBean.getOverEndTime()
                );
 
+        if (CollectionUtils.isEmpty(settlementOrderLogicVOIPage.getRecords()))
+            return new Page<>();
+
+        List<PgOrderBase> pgOrderBases = pgOrderBaseService.lambdaQuery()
+                .between(PgOrderBase::getOverTime, zfireParamBean.getOverTime(), zfireParamBean.getOverEndTime())
+                .in(PgOrderBase::getOrderStatus,"YWG","GCSZX","WDWG","YWGO","YJS","LRCD")
+                .select(PgOrderBase::getId,PgOrderBase::getOrderSmallTypeText,PgOrderBase::getWebsitId,PgOrderBase::getTotalNum)
+                .list();
+
+        List<String> orderBaseIds = pgOrderBases.stream().map(PgOrderBase::getId).collect(Collectors.toList());
+
+        List<WorkerOrder> workerOrders = workerOrderService.lambdaQuery()
+                .in(WorkerOrder::getWorkerOrderId, orderBaseIds).list();
+
+
+        for (SettlementPgOrderVO record : settlementOrderLogicVOIPage.getRecords()) {
+
+            List<PgOrderBase> pgOrderBaseList = pgOrderBases.stream().filter(item ->
+                    item.getOrderSmallTypeText().equals(record.getOrderSmallTypeText())
+                    && item.getWorkerName().equals(record.getWorkerNumber())
+                    && item.getWebsitId().equals(record.getWebsitId())
+            ).collect(Collectors.toList());
+
+            List<String> orderBaseIdWorker = pgOrderBaseList.stream().map(PgOrderBase::getId).collect(Collectors.toList());
+
+            if (CollectionUtils.isEmpty(orderBaseIdWorker))
+                continue;
+
+            List<WorkerOrder> workerOrderList = workerOrders.stream().filter(
+                    item -> item.getWorkerNumber().equals(record.getWorkerNumber())
+                            && item.getWebsitId().equals(record.getWebsitId())
+                            && orderBaseIdWorker.contains(item.getOrderId())
+            ).collect(Collectors.toList());
+
+            List<String> orderWorkerIds = workerOrderList.stream().map(WorkerOrder::getWorkerOrderId).distinct().collect(Collectors.toList());
+
+            if (CollectionUtils.isEmpty(orderWorkerIds))
+                continue;
+
+            List<PgOrderBase> pgOrderBaseList1 = pgOrderBases.stream().filter(item -> orderWorkerIds.contains(item.getId()))
+                    .collect(Collectors.toList());
+
+            record.setDzzfs(orderBaseIds.size());
+            int sum = pgOrderBaseList1.stream().mapToInt(PgOrderBase::getTotalNum).sum();
+
+            record.setDzzfsbts(sum);
+
+            BigDecimal bigDecimal = workerOrderList.stream().map(WorkerOrder::getWorkerAmount).reduce(BigDecimal::add).orElse(BigDecimal.ZERO);
+
+            record.setDzzfzje(bigDecimal);
+            record.setDzzfpjfy(record.getDzzfsbts() > 0 ?bigDecimal.divide(Convert.toBigDecimal(record.getDzzfsbts())):BigDecimal.ZERO);
+            record.setDzzfzpjfy(record.getDzzfsbts() > 0 ?bigDecimal.divide(Convert.toBigDecimal(record.getDzzfsbts())):BigDecimal.ZERO);
+
+
+        }
+
         return settlementOrderLogicVOIPage;
 
     }

+ 2 - 2
mall-server-api/src/main/java/com/gree/mall/manager/logic/workorder/OrderBaseEsLogic.java

@@ -100,13 +100,13 @@ public class OrderBaseEsLogic {
             if (CollectionUtils.isEmpty(collect))
                 return new Page<>();
 
-            orderBaseId.addAll(orderBaseId);
+            orderBaseId.addAll(collect);
 
 
         }
 
         if (!CollectionUtils.isEmpty(orderBaseId)){
-            queryBuilder.must(QueryBuilders.termsQuery("id",orderBaseId));
+            queryBuilder1.must(QueryBuilders.termsQuery("id",orderBaseId));
         }
 
 

+ 1 - 1
mall-server-api/src/main/java/com/gree/mall/manager/logic/workorder/OrderBaseLogic.java

@@ -119,7 +119,7 @@ public class OrderBaseLogic {
             if (CollectionUtils.isEmpty(collect))
                 return new Page<>();
 
-            orderBaseId.addAll(orderBaseId);
+            orderBaseId.addAll(collect);
 
 
         }

+ 1 - 1
mall-server-api/src/main/java/com/gree/mall/manager/schedule/InsureEmailSchedule.java

@@ -25,7 +25,7 @@ public class InsureEmailSchedule {
 
 
     //每小时执行1次
-    @Scheduled(fixedDelay =120* 1000)
+    @Scheduled(cron = "0 0/2 8-20 * * *")
     public void task() throws IOException {
         agreementLogic.sendEmailSche();
         agreementLogic.sendEmailScheEM();

+ 2 - 3
mall-server-api/src/main/resources/mapper/WebsitSalesCMapper.xml

@@ -189,11 +189,10 @@
         FROM
           pg_order_worker a
         	JOIN admin_websit d on  a.websit_id = d.websit_id
-          JOIN pg_order_base b ON a.order_base_id = b.id     and b.order_status in ("YWG","GCSZX","WDWG","YWGO","YJS","LRCD")
+          JOIN pg_order_base b ON a.order_base_id = b.id and a.is_master = true   and b.order_status in ("YWG","GCSZX","WDWG","YWGO","YJS","LRCD")
           LEFT JOIN settlement_order c ON a.worker_number = c.worker_number
-          AND a.create_time > DATE_FORMAT( CURDATE( ), '%Y-%m-%d 00:00:00' )
         <if test="overTime != null and overTime !=''">
-            AND a.create_time > DATE_FORMAT( CURDATE( ), '%Y-%m-%d 00:00:00' )
+            AND a.create_time between  #{overTime} and #{overEndTime}
         </if>
         GROUP BY
           a.worker_number,b.order_small_type,a.websit_id