ezhizao_zx пре 5 месеци
родитељ
комит
6b184f095c

+ 4 - 4
src/main/java/cn/ezhizao/project/business/controller/BizOutsourcedOrderController.java

@@ -199,19 +199,19 @@ private IBizDayworkService bizDayworkService;
         }
         // 获取批次绑定的外协单工序和批号
 //        BizOutsourcedOrder order = bizOutsourcedOrderService.getById(bizOutsourcedOrderDetail.getMasterId());
-        List<BizOutsourcedOrderDetail> allDetail = bizOutsourcedOrderDetailService.query().eq("master_id", bizOutsourcedOrderDetail.getMasterId()).eq("daywork_id", bizDayworks.stream().map(BizDaywork::getId).collect(Collectors.toList())).list();
+        List<BizOutsourcedOrderDetail> allDetail = bizOutsourcedOrderDetailService.query().eq("master_id", bizOutsourcedOrderDetail.getMasterId()).in("daywork_id", bizDayworks.isEmpty() ? Collections.singletonList(0L) : bizDayworks.stream().map(BizDaywork::getId).collect(Collectors.toList())).list();
         List<BizOutsourcedOrderDetailProcess> processes = bizOutsourcedOrderDetailProcessService.query().eq("master_id", bizOutsourcedOrderDetail.getMasterId()).list();
         allDetail.forEach(l -> {
             l.setProcesses(processes.stream().filter(v -> v.getDetailId().equals(l.getId())).collect(Collectors.toList()));
         });
-        List<BizReturnReceiptDetail> bizReturnReceiptDetails = bizReturnReceiptDetailService.query().in("outsource_detail_id", allDetail.stream().map(BizOutsourcedOrderDetail::getId).collect(Collectors.toList())).list();
-        if (bizDayworks.stream().anyMatch(t -> allDetail.stream().anyMatch(v -> v.getDayworkId().equals(t.getId())))) {
+        List<BizReturnReceiptDetail> bizReturnReceiptDetails = bizReturnReceiptDetailService.query().in("outsource_detail_id", allDetail.isEmpty() ? Collections.singletonList(0L) : allDetail.stream().map(BizOutsourcedOrderDetail::getId).collect(Collectors.toList())).list();
+        if (bizDayworks.stream().anyMatch(t -> allDetail.stream().noneMatch(v -> v.getDayworkId().equals(t.getId())))) {
             return error("当前载具绑定批次不在当前外协单中,请重新选择");
         }
         if (bizReturnReceiptDetails.stream().anyMatch(v -> bizDayworks.stream().anyMatch(t -> t.getId().equals(v.getDayworkId())))) {
             return error("当前载具绑定批次已收回,请重新选择");
         }
-        if(allDetail.stream().anyMatch(v -> !allDetail.get(0).getProductionPlanDetailId().equals(v.getProductionPlanDetailId()) || allDetail.get(0).getProcesses().stream().anyMatch(t -> v.getProcesses().stream().noneMatch(e -> e.getTechnologicalProcessDetailId().equals(t.getTechnologicalProcessDetailId()))))) {
+        if(allDetail.stream().anyMatch(v -> !allDetail.get(0).getProductionPlanDetailId().equals(v.getProductionPlanDetailId()) || allDetail.get(0).getProcesses().stream().anyMatch(t -> v.getProcesses().stream().noneMatch(e -> e.getTechnologicalProcessDetailId().equals(t.getTechnologicalProcessDetailId()))) || v.getProcesses().stream().anyMatch(t -> allDetail.get(0).getProcesses().stream().noneMatch(e -> t.getTechnologicalProcessDetailId().equals(e.getTechnologicalProcessDetailId()))))) {
             return error("当前载具已绑定其他计划单/工序,请重新选择");
         }
 

+ 3 - 3
src/main/resources/mybatis/business/BizCarrierMapper.xml

@@ -27,14 +27,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     <select id="getListFromOutsource" resultMap="BizCarrierResult" parameterType="cn.ezhizao.project.business.domain.BizCarrier">
         select t1.id,t1.category_id,t1.code,t1.qc_code,t1.remark,t1.tenant_id,t1.is_allow_more,COALESCE((SELECT t2.is_abandoned FROM biz_carrier_reject t2 WHERE t1.id = t2.carrier_id ORDER BY t2.create_time DESC LIMIT 1), 0) AS is_abandoned
-        FROM biz_carrier t1
+        FROM biz_carrier t1 left join biz_carrier_category t2 on t2.id = t1.category_id
         <trim prefix=" WHERE" suffix="" suffixOverrides="AND">
-            deleted = 0 and is_inspection = 0
+            t1.deleted = 0 and t1.is_inspection = 0
             <if test="categoryId != null  and categoryId != 0"> AND t1.category_id = #{categoryId}</if>
             <if test="code != null  and code != ''"> AND  t1.code=#{code}</if>
             <!--  未关联任何生产单  -->
             <if test="notInUse == 1">
-                AND not exists (select 1 from biz_daywork_carrier t where t.is_changed = 0 and t.carrier_id = t1.id and t.daywork_id != #{dayworkId} and t.deleted = 0)
+                AND case when t1.is_allow_more = 0 then (not exists (select 1 from biz_daywork_carrier t where t.is_changed = 0 and t.carrier_id = t1.id and t.daywork_id != #{dayworkId} and t.deleted = 0)) else true end
             </if>
 
         </trim>