ezhizao_zx 1 rok pred
rodič
commit
ee4f2764ea

+ 16 - 0
src/main/java/cn/ezhizao/common/utils/CommonUtils.java

@@ -0,0 +1,16 @@
+package cn.ezhizao.common.utils;
+
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.function.Function;
+import java.util.function.Predicate;
+
+public class CommonUtils {
+    /**
+     * 根据属性去重
+     */
+    public static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) {
+        Map<Object, Boolean> seen = new ConcurrentHashMap<>();
+        return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
+    }
+}

+ 13 - 6
src/main/java/cn/ezhizao/project/business/outsource/controller/BizOutsourcedOrderController.java

@@ -1,14 +1,12 @@
 package cn.ezhizao.project.business.outsource.controller;
 
 import java.lang.reflect.Array;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 
+import cn.ezhizao.common.utils.CommonUtils;
 import cn.ezhizao.common.utils.poi.ExcelUtil;
 import cn.ezhizao.framework.aspectj.lang.annotation.Log;
 import cn.ezhizao.framework.aspectj.lang.enums.BusinessType;
@@ -59,7 +57,7 @@ public class BizOutsourcedOrderController extends BaseController
         startPage();
         List<BizOutsourcedOrder> list = bizOutsourcedOrderService.getList(bizOutsourcedOrder);
         List<BizOutsourcedOrderDetail> details = bizOutsourcedOrderDetailService.query().in("master_id", list.isEmpty() ? Collections.singletonList(0L) : list.stream().map(BizOutsourcedOrder::getId).collect(Collectors.toList())).list();
-        list.forEach(l -> l.setCarrierCount(details.stream().filter(v -> v.getMasterId().equals(l.getId())).mapToInt(v ->l.getPackagingMethod().equals("0") ? v.getOriginalCarrierCount() : v.getNewCarrierCount()).sum()));
+        list.forEach(l -> l.setCarrierCount(details.stream().filter(v -> v.getMasterId().equals(l.getId())).mapToInt(v ->v.getNewCarrierCount()).sum()));
         return getDataTable(list);
     }
 
@@ -133,10 +131,19 @@ public class BizOutsourcedOrderController extends BaseController
             carrierCodes.addAll(splitCarriers);
         });
         carriers.addAll(carrierService.query().in("id", carrierIds.isEmpty() ? Collections.singletonList(0L) : carrierIds).list());
+
+        BizOutsourcedOrder form = bizOutsourcedOrderService.getById(outsourcedOrder.getId());
+
         carriers.addAll(carrierService.query().in("code", carrierCodes.isEmpty() ? Collections.singletonList("x") : carrierCodes).list());
         details.forEach(l -> {
             l.setCarriers(carriers.stream().filter(v -> l.getNewCarrier().contains(v.getCode())).collect(Collectors.toList()));
         });
-        return success(details);
+        form.setCarrierCount(details.stream().mapToInt(v -> v.getCarriers().size()).sum());
+        Map<String, Object> map = new HashMap<>();
+        map.put("details", details);
+//        form.setCarrierCount(carriers.stream().filter(CommonUtils.distinctByKey(BizCarrier::getId)).collect(Collectors.toList()).size());
+
+        map.put("form", form);
+        return success(map);
     }
 }

+ 3 - 1
src/main/java/cn/ezhizao/project/business/product/controller/BizDayworkItemController.java

@@ -302,7 +302,9 @@ public class BizDayworkItemController extends BaseController {
                 }
             }
             // 设置上一工段,周转用
-            List<BizDayworkItem> dayworkItemList = bizDayworkItemService.query().lt("status", 4).eq("lot_id", item.getLotId()).eq("process_id", item.getProcessId()).list();
+            List<BizDayworkItem> dayworkItemList = bizDayworkItemService.query().eq("lot_id", item.getLotId()).eq("process_id", item.getProcessId()).lt("create_time", item.getCreateTime()).orderByDesc("create_time").last("limit 1").list();
+            // List<BizDayworkItem> dayworkItemList = bizDayworkItemService.query().lt("status", 4).eq("lot_id", item.getLotId()).eq("process_id", item.getProcessId()).list();
+
             for (int i = 0; i < dayworkItemList.size(); i++) {
                 if (dayworkItemList.get(i).getDeptName() != null && !"".equals(dayworkItemList.get(i).getDeptName())) {
                     item.setPreDeptName(dayworkItemList.get(i).getDeptName());