Browse Source

fix:委托查询加入账期月

ly 9 months ago
parent
commit
288e211d92

+ 32 - 3
src/main/java/cn/ezhizao/project/business/workOrder/controller/BizWorkOrderController.java

@@ -28,6 +28,8 @@ import cn.ezhizao.project.business.workOrder.domain.BizWorkOrderNoContract;
 import cn.ezhizao.project.business.workOrder.domain.BizWorkOrderRecord;
 import cn.ezhizao.project.business.workOrder.service.IBizWorkOrderDetailService;
 import cn.ezhizao.project.business.workOrder.service.IBizWorkOrderRecordService;
+import cn.hutool.core.date.DateField;
+import cn.hutool.core.date.DateTime;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.conditions.query.QueryChainWrapper;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -111,10 +113,13 @@ public class BizWorkOrderController extends BaseController {
         bizWorkOrderRecord.setYear(bizWorkOrder.getYear());
         List<BizWorkOrderRecord> records = bizWorkOrderRecordService.getList(bizWorkOrderRecord);
         entrustConditions.setWorkOrderIds(list.stream().map(BizWorkOrder::getId).collect(Collectors.toList()));
+        entrustConditions.setCurrentYear(bizWorkOrder.getYear());
+        //entrustConditions.setWorkMonth(DateTime.now().setField(DateField.DAY_OF_MONTH,1).toSqlDate());
+        entrustConditions.setTenantId(bizWorkOrder.getTenantId());
         List<BizEntrust> entrusts = entrustService.getList(entrustConditions);
         list.forEach(v -> {
             v.setRecords(records.stream().filter(e -> e.getWorkOrderId().equals(v.getId())).collect(Collectors.toList()));
-            v.setEntrusts(entrusts.stream().filter(e -> e.getWorkOrderId().equals(v.getId())).collect(Collectors.toList()));
+            v.setEntrusts(entrusts.stream().filter(e -> e.getWorkOrderId().equals(v.getId()) && null!=e.getWorkMonth() && e.getWorkMonth().toString().equals(DateTime.now().setField(DateField.DAY_OF_MONTH,1).toString("yyyy-MM-dd"))).collect(Collectors.toList()));
         });
 
         //判断是否是合同查询
@@ -446,9 +451,33 @@ public class BizWorkOrderController extends BaseController {
         List<BizEntrust> entrusts = entrustService.getList(entrustConditions);
         List<BizWorkOrder> workOrders = bizWorkOrderService.query().in("id", workOrder.getIds()).list();
         int falsum = 0;
+        List<BizEntrust> entrustList;
+        BizEntrust bizEntrust;
+        Comparator<BizEntrust> comparator = Comparator.comparing(BizEntrust::getWorkMonth)
+                .thenComparing(BizEntrust::getCreateTime,Comparator.reverseOrder());
+        DateTime Time = new DateTime();
+        String dateTime = Time.setField(DateField.DAY_OF_MONTH,1).toString("yyyy-MM-dd");
+        String lastdateTime = Time.setField(DateField.DAY_OF_MONTH,1).offset(DateField.MONTH, -1).toString("yyyy-MM-dd");
         for(BizWorkOrder l : workOrders){
-            if(null != entrusts.stream().filter(v -> v.getWorkOrderId().equals(l.getId())).findFirst().orElse(null)){
-                falsum++;
+            if(l.getType() == 1L){
+                if(l.getTaskTypeId() == 1L){
+                    entrustList = entrusts.stream().filter(v -> v.getWorkOrderId().equals(l.getId()) && null!= v.getWorkMonth()&& v.getWorkMonth().toString().equals(lastdateTime)).collect(Collectors.toList());
+                }else{
+                    entrustList = entrusts.stream().filter(v -> v.getWorkOrderId().equals(l.getId()) && null!= v.getWorkMonth()&& v.getWorkMonth().toString().equals(dateTime)).collect(Collectors.toList());
+                }
+                bizEntrust = entrustList.stream().min(comparator).orElse(null);
+                if(null != bizEntrust && bizEntrust.getDeleted() == 0L){
+                    falsum++;
+                }else{
+                    l.setServiceId(workOrder.getServiceId());
+                }
+            }else{
+                entrustList = entrusts.stream().filter(v -> v.getWorkOrderId().equals(l.getId())).collect(Collectors.toList());
+                if(!entrustList.isEmpty()){
+                    falsum++;
+                }else{
+                    l.setServiceId(workOrder.getServiceId());
+                }
             }
         }
         if(falsum > 0){