Ver Fonte

内部外协

ezhizao_zx há 5 meses atrás
pai
commit
a0056e99d6

+ 1 - 27
src/main/java/cn/ezhizao/project/business/controller/BizOutsourcedOrderDetailController.java

@@ -242,33 +242,7 @@ public class BizOutsourcedOrderDetailController extends BaseController {
         //因为新箱子保存的时候,是用“id|code,id|code”的字符串形式存储的所以查询的时候需要进行拆分
         //如果保存的时候没有选择新箱子则会把旧箱号复制到新箱号中,所有不会有“|”所以下方需要进行判断
         list.forEach(detail -> {
-            // 将字符串拆分转为对象
-            List<BizCarrier> carriers = new ArrayList<>();
-            // 因为需要显示箱号,所以需要拆分出code重新拼接到NewCarrier
-            List<String> codeList = new ArrayList<>();
-            // 为了减少前段的逻辑,所以需要先将拆分后的id也拼接起来
-            List<Long> carrierIds = new ArrayList<>();
-            // 使用 StringTokenizer 来分割字符串
-            StringTokenizer tokenizer = new StringTokenizer(detail.getNewCarrier(), ",");
-            while (tokenizer.hasMoreTokens()) {
-                String token = tokenizer.nextToken();
-                // 检查当前 token 是否包含 "|" 字符 如果没有表示不是新箱,则跳过当前 token
-                if (token.contains("|")) {
-                    String[] idCode = token.split("\\|"); // 安全地分割 token
-                    if (idCode.length == 2) {
-                        codeList.add(idCode[1]);
-                        carrierIds.add(Long.parseLong(idCode[0]));
-                        BizCarrier bizCarrier = new BizCarrier();
-                        bizCarrier.setId(Long.parseLong(idCode[0]));
-                        bizCarrier.setCode(idCode[1]);
-                        carriers.add(bizCarrier);
-                    }
-                }
-            }
-            if (codeList.size() > 0) {
-                detail.setNewCarrier(String.join(",", codeList));
-            }
-
+            detail.setNewCarrier(detail.getCurrentCarriers());
         });
         return getDataTable(list);
     }

+ 6 - 0
src/main/java/cn/ezhizao/project/business/controller/BizReturnReceiptController.java

@@ -53,6 +53,8 @@ public class BizReturnReceiptController extends BaseController {
     private RedisCache redisCache;
     @Resource
     HttpServletRequest request;
+    @Resource
+    private IBizDayworkCarrierService bizDayworkCarrierService;
 
     /**
      * 生成pdf
@@ -242,6 +244,10 @@ public class BizReturnReceiptController extends BaseController {
         List<BizReturnReceiptDetail> returnReceiptDetails = bizReturnReceiptDetailService.query()
                 .eq("master_id", id)
                 .list();
+        List<BizDayworkCarrier> carriers = bizDayworkCarrierService.query().eq("is_changed", 0).in("daywork_id", returnReceiptDetails.stream().map(BizReturnReceiptDetail::getDayworkId).collect(Collectors.toList())).list();
+        returnReceiptDetails.forEach(item -> {
+            item.setUnbind(carriers.stream().anyMatch(t -> t.getDayworkId().equals(item.getDayworkId())) ? 0 : 1);
+        });
 
         // 将得到的收回明细的id,组合成一个集合,用于查询这个订单下的,所有收回出来的工序,
         // 这里得到的工序清单,是混合的,并没有根据各自对应的明细,进行分组,仅仅是获取全部,为后续分组做准备

+ 2 - 0
src/main/java/cn/ezhizao/project/business/domain/BizOutsourcedOrderDetail.java

@@ -169,4 +169,6 @@ public class BizOutsourcedOrderDetail extends BaseEntity
     @TableField(exist = false)
     @ApiModelProperty("是否解绑")
     private Integer unbind;
+    @TableField(exist = false)
+    private String currentCarriers;
 }

+ 3 - 2
src/main/resources/mybatis/business/BizOutsourcedOrderDetailMapper.xml

@@ -103,7 +103,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <select id="getListForReceipt" parameterType="BizOutsourcedOrderDetail" resultMap="BizOutsourcedOrderDetailResult">
         SELECT
             t1.*,
-        case when (select count(1) from biz_daywork_carrier bdc where daywork_id = t1.daywork_id and bdc.deleted = 0 and bdc.is_changed = 0) > 0 then 0 else 1 end as unbind
+        case when (select count(1) from biz_daywork_carrier bdc where daywork_id = t1.daywork_id and bdc.deleted = 0 and bdc.is_changed = 0) > 0 then 0 else 1 end as unbind,
+        (select group_concat(carrier_code) from biz_daywork_carrier bdc where daywork_id = t1.daywork_id and bdc.deleted = 0 and bdc.is_changed = 0) current_carriers
         FROM biz_outsourced_order_detail t1 left join biz_outsourced_order t2 on t1.master_id = t2.id
         <trim prefix=" WHERE" suffix="" suffixOverrides="AND">
             t1.deleted = 0 and t2.deleted = 0 and t2.is_submit = 1
@@ -148,7 +149,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <select id="getIdsForInterReturn" resultType="java.lang.Long" parameterType="cn.ezhizao.project.business.domain.BizOutsourcedOrderDetail">
         select t1.id from biz_outsourced_order_detail t1 left join biz_outsourced_order t2 on t1.master_id = t2.id
         <trim prefix=" WHERE" suffix="" suffixOverrides="AND">
-            t1.deleted = 0 and t2.deleted = 0 and t2.is_submit = 1 and not exists (select 1 from biz_daywork_item di where di.deleted = 0 and di.daywork_id = t1.daywork_id and process_step_number = (select process_step_number from biz_outsourced_order_detail_process t3 where t3.detail_id = t1.id order by process_step_number desc limit 1))
+            t1.deleted = 0 and t2.deleted = 0 and t2.is_submit = 1 and not exists (select 1 from biz_daywork_item di where di.deleted = 0 and di.daywork_id = t1.daywork_id and process_step_number = (select process_step_number from biz_outsourced_order_detail_process t3 where t3.detail_id = t1.id and t3.deleted = 0 order by process_step_number desc limit 1))
             <if test="isInnerOutsource != null"> and t2.is_inner_outsource = #{isInnerOutsource}</if>
             <if test="supplierId != null "> AND t1.supplier_id = #{supplierId}</if>
         </trim>