瀏覽代碼

fix: 工单确认bug

32197351@qq.com 2 年之前
父節點
當前提交
3473e8951f

+ 26 - 8
itdmServer/module-iTDM/src/main/java/org/jeecg/modules/gongdandetail/service/impl/ItdmGongdanQuerenServiceImpl.java

@@ -18,6 +18,8 @@ import java.util.Comparator;
 import java.util.Date;
 import java.util.List;
 import java.util.Objects;
+import java.util.function.Function;
+import java.util.function.Supplier;
 import java.util.stream.Collectors;
 
 /**
@@ -45,14 +47,23 @@ public class ItdmGongdanQuerenServiceImpl extends ServiceImpl<ItdmGongdanDetailM
         this.baseMapper.updateById(itdmGongdanDetail);
 
         List<ItdmGongdanDetail> list = baseMapper.
-                selectList(Wrappers.lambdaQuery(ItdmGongdanDetail.class)
-                        .eq(ItdmGongdanDetail::getWoId, data.getWoId()).isNull(ItdmGongdanDetail::getShijiEndTime)
+                selectList(Wrappers.lambdaQuery(ItdmGongdanDetail.class));
+
+
+        List<ItdmGongdanDetail> list1 = baseMapper.
+                selectList(Wrappers.lambdaQuery(ItdmGongdanDetail.class).eq(ItdmGongdanDetail::getWoId, data.getWoId()).isNull(ItdmGongdanDetail::getShijiEndTime)
                         .isNull(ItdmGongdanDetail::getShijiStartTime).isNull(ItdmGongdanDetail::getShijiWorkDate));
 
 
+        if (list1.size() > 0) {
+            ItdmGongdanMaster master = new ItdmGongdanMaster();
+            master.setId(data.getWoId());
+            master.setShijiStartDate(getMin(list, simpleDate, simpleDate1));
+            masterMapper.updateById(master);
+        }
 
 
-        if (list.size() <= 1) {
+        if (list.size() > 0 && list1.size() <= 1) {
             // todo
             ItdmGongdanMaster master = new ItdmGongdanMaster();
             master.setId(data.getWoId());
@@ -68,22 +79,29 @@ public class ItdmGongdanQuerenServiceImpl extends ServiceImpl<ItdmGongdanDetailM
     private Date getMax(List<ItdmGongdanDetail> list, SimpleDateFormat simpleDate, SimpleDateFormat simpleDate1) {
 
 
-        return list.stream().map(i -> getDateFormat(i, simpleDate, simpleDate1)).max(Comparator.reverseOrder()).orElse(null);
+        return list.stream()
+                .filter(i -> i.getShijiWorkDate() != null && i.getShijiEndTime() != null)
+
+                .map(i -> getDateFormat(i, i::getShijiEndTime, simpleDate, simpleDate1)).max(Comparator.reverseOrder()).orElse(null);
     }
 
 
     private Date getMin(List<ItdmGongdanDetail> list, SimpleDateFormat simpleDate, SimpleDateFormat simpleDate1) {
 
 
-        return list.stream().map(i -> getDateFormat(i, simpleDate, simpleDate1)).min(Comparator.reverseOrder()).orElse(null);
-    }
+        return list.stream().filter(i -> i.getShijiWorkDate() != null && i.getShijiEndTime() != null)
+
+                .map(i -> getDateFormat(i, i::getShijiStartTime, simpleDate, simpleDate1)).min(Comparator.reverseOrder()).orElse(null);
 
 
-    private Date getDateFormat(ItdmGongdanDetail getDateFormat, SimpleDateFormat simpleDate, SimpleDateFormat simpleDate1) {
 
+    }
+
+
+    private Date getDateFormat(ItdmGongdanDetail getDateFormat, Supplier<String> supplier, SimpleDateFormat simpleDate, SimpleDateFormat simpleDate1) {
 
         try {
-            return simpleDate1.parse(simpleDate.format(getDateFormat.getShijiWorkDate()) + " " + getDateFormat.getShijiEndTime());
+            return simpleDate1.parse(simpleDate.format(getDateFormat.getShijiWorkDate()) + " " + supplier.get());
         } catch (ParseException e) {
             throw new RuntimeException(e);
         }