Просмотр исходного кода

✨ feat(mes): 添加反馈记录关联及代码注释优化

YunaiV месяцев назад: 2
Родитель
Сommit
2676319a76

+ 2 - 2
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/productproduce/MesWmProductProduceDO.java

@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.mes.dal.dataobject.wm.productproduce;
 
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation.MesMdWorkstationDO;
+import cn.iocoder.yudao.module.mes.dal.dataobject.pro.feedback.MesProFeedbackDO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.pro.process.MesProProcessDO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.pro.task.MesProTaskDO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.pro.workorder.MesProWorkOrderDO;
@@ -42,7 +43,7 @@ public class MesWmProductProduceDO extends BaseDO {
     /**
      * 报工记录 ID
      *
-     * TODO @芋艿:关联 ProFeedback,待 ProFeedback 联调时补充
+     * 关联 {@link MesProFeedbackDO#getId()}
      */
     private Long feedbackId;
     /**
@@ -51,7 +52,6 @@ public class MesWmProductProduceDO extends BaseDO {
      * 关联 {@link MesProTaskDO#getId()}
      */
     private Long taskId;
-    // TODO @芋艿:workstationId、processId 哪些是必填字段;
     /**
      * 工作站 ID
      *

+ 3 - 4
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/productproduce/MesWmProductProduceLineDO.java

@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.mes.dal.dataobject.wm.productproduce;
 
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemDO;
+import cn.iocoder.yudao.module.mes.dal.dataobject.pro.feedback.MesProFeedbackDO;
 import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
@@ -39,7 +40,7 @@ public class MesWmProductProduceLineDO extends BaseDO {
     /**
      * 报工记录 ID
      *
-     * TODO @芋艿:关联 ProFeedback,待 ProFeedback 联调时补充
+     * 关联 {@link MesProFeedbackDO#getId()}
      */
     private Long feedbackId;
     /**
@@ -68,12 +69,10 @@ public class MesWmProductProduceLineDO extends BaseDO {
      * 生产批号
      */
     private String lotNumber;
-    // TODO @AI:待定
     /**
      * 质量状态
      *
-     * 0-待检, 1-合格, 2-不合格
-     * 字典类型 mes_wm_quality_status
+     * 枚举 {@link cn.iocoder.yudao.module.mes.enums.wm.MesWmQualityStatusEnum}
      */
     private Integer qualityStatus;
     /**

+ 7 - 8
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productproduce/MesWmProductProduceServiceImpl.java

@@ -129,10 +129,9 @@ public class MesWmProductProduceServiceImpl implements MesWmProductProduceServic
                 .setExpireDate(feedback.getExpireDate())
                 .setWorkOrderId(feedback.getWorkOrderId())
                 .setClientId(workOrder != null ? workOrder.getClientId() : null)
+                .setSalesOrderCode(workOrder != null ? workOrder.getOrderSourceCode() : null)
                 .setWorkstationId(feedback.getWorkstationId())
                 .setLotNumber(feedback.getLotNumber());
-        // TODO @AI(from codex):对齐 批次生成还需要带上工单来源单号(salesOrderCode / coCode 对应 orderSourceCode);
-        //  否则启用该维度的批次规则会生成错误批次或直接缺参失败。
         MesWmBatchDO batch = batchService.getOrGenerateBatchCode(batchReqVO);
         Long batchId = batch != null ? batch.getId() : null;
         String batchCode = batch != null ? batch.getCode() : null;
@@ -148,7 +147,7 @@ public class MesWmProductProduceServiceImpl implements MesWmProductProduceServic
             MesWmProductProduceLineDO line = buildProduceLine(produce, feedback, batchId, batchCode,
                     feedback.getFeedbackQuantity(), MesWmQualityStatusEnum.PENDING.getStatus());
             productProduceLineService.createProductProduceLine(line);
-            // TODO @芋艿:先不生成明细行,等待检验完成时,再根据行的质量状态生成明细行
+            // 注意:checkFlag=true 时不生成明细行,等 IPQC 检验完成后由 splitPendingAndFinishProduce 按质量结果拆行+生成明细
         } else {
             // 3.2 无需检验:按合格品/不合格品各生成一行 + 明细
             BigDecimal qualifiedQty = ObjectUtil.defaultIfNull(feedback.getQualifiedQuantity(), BigDecimal.ZERO);
@@ -236,11 +235,11 @@ public class MesWmProductProduceServiceImpl implements MesWmProductProduceServic
 
         // 2. 查找待检验行(checkFlag=true 时只有一行 PENDING)
         List<MesWmProductProduceLineDO> lines = productProduceLineService.getProductProduceLineListByProduceId(produce.getId());
-        // TODO @AI:hutool 的 findOne 方法,替代掉 stream;手动 if 判断为空,抛出异常;
-        MesWmProductProduceLineDO pendingLine = lines.stream()
-                .filter(l -> ObjUtil.equal(l.getQualityStatus(), MesWmQualityStatusEnum.PENDING.getStatus()))
-                .findFirst()
-                .orElseThrow(() -> exception(WM_PRODUCT_PRODUCE_LINE_NOT_EXISTS));
+        MesWmProductProduceLineDO pendingLine = CollUtil.findOne(lines,
+                l -> ObjUtil.equal(l.getQualityStatus(), MesWmQualityStatusEnum.PENDING.getStatus()));
+        if (pendingLine == null) {
+            throw exception(WM_PRODUCT_PRODUCE_LINE_NOT_EXISTS);
+        }
 
         // 3A. 情况一:存在不合格品数量,需要拆分行
         if (unqualifiedQty != null && unqualifiedQty.compareTo(BigDecimal.ZERO) > 0) {