Kaynağa Gözat

Merge remote-tracking branch 'origin/master'

xiahan 1 yıl önce
ebeveyn
işleme
bacf50d36a

+ 5 - 0
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/dao/ApsProductionOrderDao.java

@@ -2,7 +2,9 @@ package com.rongwei.bscommon.sys.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.rongwei.bsentity.domain.ApsProductionOrderDo;
+import com.rongwei.bsentity.vo.ProductDetailIdAndPlanOutPutRollCountAllVo;
 import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
 
 import java.util.List;
 
@@ -20,6 +22,9 @@ public interface ApsProductionOrderDao extends BaseMapper<ApsProductionOrderDo>
     List<String> getStartWorkByBlankId(@Param("ids") List<String> ids);
 
     List<ApsProductionOrderDo> getDataByBlankId(@Param("blankIds")List<String> blankids);
+
+    @Select("select apd.ID,SUM(apop.PLANOUTPUTROLLCOUNT) AS 'PLANOUTPUTROLLCOUNTALL' from aps_product_detail apd LEFT JOIN aps_process_output_product apop ON apd.ID = apop.PRODUCTID AND apop.DELETED = 0 where apd.DELETED = 0 AND apd.MAINID = #{mainid} GROUP BY apd.ID")
+    List<ProductDetailIdAndPlanOutPutRollCountAllVo> getProductDetailIdAndPlanOutPutRollCountAll(@Param("mainid") String mainid);
 }
 
 

+ 9 - 2
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsBlankOrderServiceImpl.java

@@ -443,7 +443,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
         blankOrderAps(resBlankList);
         //blankOrderAps(apsBlankOrders);
         //更新生产状态为“待发布”(20)
-        updateProductStatusByOrderIds(apsBlankOrders.stream().map(ApsBlankOrderVo::getProductionorderid).collect(Collectors.toSet()));
+        updateProductStatusByOrderIds(resBlankList.stream().map(ApsBlankOrderVo::getProductionorderid).collect(Collectors.toSet()));
     }
 
     /**
@@ -1092,7 +1092,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
         this.update(apsBlankOrderDo, new QueryWrapper<ApsBlankOrderDo>().lambda().in(ApsBlankOrderDo::getProductionorderid, orderIds).eq(ApsBlankOrderDo::getProductstatus, "10"));
         //更新所有产品明细的生产状态
         ApsProductDetailDo apsProductDetailDo = new ApsProductDetailDo();
-        apsBlankOrderDo.setProductstatus(TO_BE_PUBLISHED);
+        apsProductDetailDo.setProductstatus(TO_BE_PUBLISHED);
         apsProductDetailService.update(apsProductDetailDo, new QueryWrapper<ApsProductDetailDo>().lambda().in(ApsProductDetailDo::getMainid, orderIds).eq(ApsProductDetailDo::getProductstatus, "10"));
         //更新订单的生产状态
         ApsProductionOrderDo apsProductionOrderDo = new ApsProductionOrderDo();
@@ -1152,6 +1152,11 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
     public R checkAndSaveOrUpdateBlank(CheckAndSaveOrUpdateBlankReq req) {
         //获取坯料计划内容
         ApsBlankOrderDo apsBlankOrderDo = req.getApsBlankOrderDo();
+        //获取当前用户信息
+        //获取当前用户的所属工厂
+        SysUserVo currentUser = CXCommonUtils.getCurrentUser();
+        String tenantId = currentUser.getOrganizationDoList().get(0).getFullpid().split(",")[1];
+
 
         //=============校验坯料长度=================
         //如果坯料产品类型对应产品外观类型是铝板或板锭,并且坯料长度为空,则提示:坯料是铝板和板锭时长度必填
@@ -1310,9 +1315,11 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
         }
 
         //更新或保存坯料计划和输出成品
+        apsBlankOrderDo.setTenantid(tenantId);
         this.saveOrUpdate(apsBlankOrderDo);
         for (ApsProcessOutputProductDo apsProcessOutputProductDo : apsProcessOutputProductDoList) {
             apsProcessOutputProductDo.setBlankid(apsBlankOrderDo.getId());
+            apsProcessOutputProductDo.setTenantid(tenantId);
         }
         apsProcessOutputProductService.saveOrUpdateBatch(apsProcessOutputProductDoList);
 

+ 19 - 1
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsProductionOrderServiceImpl.java

@@ -12,6 +12,7 @@ import com.rongwei.bsentity.domain.ApsProductionMergeOrderDo;
 import com.rongwei.bsentity.domain.ApsProductionOrderDo;
 import com.rongwei.bsentity.vo.ApsProductDetailVo;
 import com.rongwei.bsentity.vo.CheckAndSaveOrUpdateOrderReq;
+import com.rongwei.bsentity.vo.ProductDetailIdAndPlanOutPutRollCountAllVo;
 import com.rongwei.rwcommon.base.R;
 import com.rongwei.safecommon.utils.SaveConstans;
 import org.slf4j.Logger;
@@ -171,7 +172,24 @@ public class ApsProductionOrderServiceImpl extends ServiceImpl<ApsProductionOrde
             }
         }
 
-        //=========查询此订单所有产品明细对应的输出成品的卷数和============
+        //查询此订单所有产品明细对应的输出成品的卷数和
+        List<ProductDetailIdAndPlanOutPutRollCountAllVo> planOutPutRollCountAllVos = this.baseMapper.getProductDetailIdAndPlanOutPutRollCountAll(apsProductDetailVoList.get(0).getMainid());
+        //检查每个订单产品,如果该订单产品填写了卷数,
+        //并且该订单产品对应坯料输出成品的计划输出订单卷数合计不等于订单产品的卷数,
+        //错误提示:订单产品 {输入物料描述} 的卷数与坯料计划的计划输出订单卷数不一致
+        for (ApsProductDetailVo apsProductDetailVo : apsProductDetailVoList) {
+            if (ObjectUtil.isNotEmpty(apsProductDetailVo.getRollnum())) {
+                for (ProductDetailIdAndPlanOutPutRollCountAllVo planOutPutRollCountAllVo : planOutPutRollCountAllVos) {
+                    if (planOutPutRollCountAllVo.getProductDetailId().equals(apsProductDetailVo.getId())) {
+                        if (planOutPutRollCountAllVo.getPlanOutPutRollCountAll().equals(apsProductDetailVo.getRollnum())) {
+                            break;
+                        } else {
+                            return R.error("订单产品 " + apsProductDetailVo.getInputmaterialdescription() + " 的卷数与坯料计划的计划输出订单卷数不一致");
+                        }
+                    }
+                }
+            }
+        }
 
 
 

+ 15 - 0
cx-aps/cx-aps-entity/src/main/java/com/rongwei/bsentity/vo/ProductDetailIdAndPlanOutPutRollCountAllVo.java

@@ -0,0 +1,15 @@
+package com.rongwei.bsentity.vo;
+
+import lombok.Data;
+
+/**
+ * @author :sc
+ * @since :2024/5/6
+ */
+@Data
+public class ProductDetailIdAndPlanOutPutRollCountAllVo {
+    //产品明细ID
+    private String productDetailId;
+    //输出成品的卷数和
+    private Integer planOutPutRollCountAll;
+}