Переглянути джерело

Merge remote-tracking branch 'origin/master'

xiahan 1 рік тому
батько
коміт
1f3472eb18

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

@@ -3,6 +3,7 @@ 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 com.rongwei.bsentity.vo.ProductTypeIdAndPidVo;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 
@@ -25,6 +26,9 @@ public interface ApsProductionOrderDao extends BaseMapper<ApsProductionOrderDo>
 
     @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);
+
+    @Select("select b.ID AS 'id',a.PID AS 'pid' from (select * from sys_dict where DICTTYPE = 'productType' AND DELETED = 0) a RIGHT JOIN (select * from sys_dict where DELETED = 0 AND ID in ('${join}')) b ON a.ID = b.PID")
+    List<ProductTypeIdAndPidVo> selectProductTypeIdAndPid(@Param("join") String join);
 }
 
 

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

@@ -630,6 +630,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
         BigDecimal looseness = null;
         if (apsConfigs != null && apsConfigs.size() > 0) {
             apsScheduleConfig = apsConfigs.get(0);
+            looseness = apsScheduleConfig.getLooseness();
             productionScheduleVo.setPlanSeconds(apsScheduleConfig.getScheduleruntime());
             Map<String, Integer> roamTime = new HashMap<>();
             Integer workshopin = new BigDecimal(apsScheduleConfig.getWorkshopin()).multiply((looseness.divide(new BigDecimal("100"))).add(new BigDecimal("1")))
@@ -639,7 +640,6 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
             roamTime.put("WORKSHOP_IN", workshopin);
             roamTime.put("WORKSHOP_CROSS", workshopcross);
             productionScheduleVo.setRoamTime(roamTime);
-            looseness = apsScheduleConfig.getLooseness();
             // 排程计划开始时间
             int a = 8;
             if (apsScheduleConfig.getStartschedulerun() != null) {

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

@@ -3,6 +3,7 @@ package com.rongwei.bscommon.sys.service.impl;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.rongwei.bscommon.sys.dao.*;
 import com.rongwei.bscommon.sys.service.ApsProductionOrderService;
@@ -14,6 +15,7 @@ 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.bsentity.vo.ProductTypeIdAndPidVo;
 import com.rongwei.rwcommon.base.R;
 import com.rongwei.safecommon.utils.SaveConstans;
 import org.slf4j.Logger;
@@ -23,6 +25,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
+import java.util.Set;
 import java.util.stream.Collectors;
 
 /**
@@ -123,8 +126,8 @@ public class ApsProductionOrderServiceImpl extends ServiceImpl<ApsProductionOrde
         List<ApsProductionMergeOrderDo> apsProductionMergeOrderDoList = req.getApsProductionMergeOrderDoList();
         //产品明细信息
         List<ApsProductDetailVo> apsProductDetailVoList = req.getApsProductDetailVoList();
-        //坯料计划信息
-        List<ApsBlankOrderDo> apsBlankOrderDoList = req.getApsBlankOrderDoList();
+        //坯料计划信息(坯料计划是一保存的状态,校验直接通过数据库查询)
+        List<ApsBlankOrderDo> apsBlankOrderDoList = apsBlankOrderDao.selectList(new QueryWrapper<ApsBlankOrderDo>().lambda().eq(ApsBlankOrderDo::getProductionorderid, apsProductionOrderDo.getId()));
         //是否需要检验坯料计划是否已排程
         Boolean checkSchedule = req.getCheckSchedule();
 
@@ -189,6 +192,34 @@ public class ApsProductionOrderServiceImpl extends ServiceImpl<ApsProductionOrde
             }
         }
 
+        //===============校验产品明细的长===================
+        if (ObjectUtil.isEmpty(apsProductDetailVoList)) {
+            return R.error("产品明细至少有一个");
+        }
+
+        //获取产品明细的所有产品类型ID(去重)
+        Set<String> productTypeIds = apsProductDetailVoList.stream().map(ApsProductDetailVo::getProducttypeid).collect(Collectors.toSet());
+        String join = String.join("','", productTypeIds);
+
+        List<ProductTypeIdAndPidVo> productTypeIdAndPidList = this.baseMapper.selectProductTypeIdAndPid(join);
+        if (ObjectUtil.isNotEmpty(productTypeIdAndPidList)) {
+            for (ProductTypeIdAndPidVo productTypeIdAndPidVo : productTypeIdAndPidList) {
+                for (int i = 0; i < apsProductDetailVoList.size(); i++) {
+                    ApsProductDetailVo apsProductDetailVo = apsProductDetailVoList.get(i);
+                    if (apsProductDetailVo.getProducttypeid().equals(productTypeIdAndPidVo.getId())) {
+                        //如果是铝板或铝锭
+                        if (productTypeIdAndPidVo.getPid().equals(SaveConstans.ProductionType.LVBAN_ID) || productTypeIdAndPidVo.getPid().equals(SaveConstans.ProductionType.BANDING_ID)) {
+                            //判断长度是否为空
+                            if (ObjectUtil.isEmpty(apsProductDetailVo.getProlength())) {
+                                return R.error("第" + (i + 1) + "个产品明细,产品类型是铝板或板锭时长度必填");
+                            }
+                        }
+                    }
+                }
+            }
+        }
+
+        //================循环校验坯料计划===============
 
 
         return null;

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

@@ -290,7 +290,7 @@ public class ApsReportRecordsServiceImpl extends ServiceImpl<ApsReportRecordsDao
                 apsReportCheckoutDo.setId(SecurityUtil.getUUID());
                 apsReportCheckoutDo.setTenantid(tenantId);
                 apsReportCheckoutDo.setMainid(apsReportRecordsDo.getId());
-                apsReportCheckoutDo.setCheckitem(apsCheckParameterDo.getCkeckparameter());
+                apsReportCheckoutDo.setCheckitem(apsCheckParameterDo.getCheckparameter());
                 needInsertApsReportCheckList.add(apsReportCheckoutDo);
             }
             if (ObjectUtil.isNotEmpty(needInsertApsReportCheckList)) {

+ 1 - 1
cx-aps/cx-aps-entity/src/main/java/com/rongwei/bsentity/domain/ApsCheckParameterDo.java

@@ -68,7 +68,7 @@ public class ApsCheckParameterDo implements Serializable {
     /**
      * 检查项
      */
-    private String ckeckparameter;
+    private String checkparameter;
 
     /**
      * 工序表ID

+ 13 - 0
cx-aps/cx-aps-entity/src/main/java/com/rongwei/bsentity/vo/ProductTypeIdAndPidVo.java

@@ -0,0 +1,13 @@
+package com.rongwei.bsentity.vo;
+
+import lombok.Data;
+
+/**
+ * @author :sc
+ * @since :2024/5/11
+ */
+@Data
+public class ProductTypeIdAndPidVo {
+    private String id;
+    private String pid;
+}