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

Merge remote-tracking branch 'origin/master'

xiahan 1 год назад
Родитель
Сommit
51146622b3

+ 10 - 2
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/dao/ApsBlankOrderDao.java

@@ -6,6 +6,7 @@ import com.rongwei.bsentity.domain.ApsProcessOperationProcessEquDo;
 import com.rongwei.bsentity.domain.AspCheckItemsDo;
 import com.rongwei.bsentity.vo.ApsBlankOrderVo;
 import com.rongwei.bsentity.vo.BlankIdAndProcessStatusVo;
+import com.rongwei.bsentity.vo.WashingMetal;
 import org.apache.ibatis.annotations.Delete;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
@@ -43,8 +44,12 @@ public interface ApsBlankOrderDao extends BaseMapper<ApsBlankOrderDo> {
             "where b.PRODUCTIONSTATUS='20' and (a.LOCKMARK='n' or a.LOCKMARK is null) and a.DELETED='0' and b.DELETED='0' and b.TENANTID = #{tenantId}")
     List<ApsBlankOrderVo> getNotLockOrders(@Param("tenantId") String tenantId);
 
-    @Select("select DISTINCT a.*,c.DELIVERYDATE,c.DELIVERYTIME from aps_blank_order a LEFT JOIN aps_process_operation b on a.ID=b.BLANKID LEFT JOIN aps_production_order c on a.PRODUCTIONORDERID=c.ID\n" +
-            "where a.DELETED='0' and b.DELETED='0' and c.DELETED='0' and (b.LOCKMARK='n' OR b.LOCKMARK is null) and c.TENANTID = #{tenantId} and a.ID not in (${hasIds}) and a.SCHEDULINGSTATUS != '10'")
+    @Select("<script>select DISTINCT a.*,c.DELIVERYDATE,c.DELIVERYTIME from aps_blank_order a LEFT JOIN aps_process_operation b on a.ID=b.BLANKID LEFT JOIN aps_production_order c on a.PRODUCTIONORDERID=c.ID\n" +
+            "where a.DELETED='0' and b.DELETED='0' and c.DELETED='0' and (b.LOCKMARK='n' OR b.LOCKMARK is null) " +
+            "and c.TENANTID = #{tenantId}  and a.SCHEDULINGSTATUS != '10' " +
+            "<if test='hasIds != null and hasIds != &apos;&apos;'> " +
+            "    and a.ID not in (${hasIds})" +
+            "</if></script>")
     List<ApsBlankOrderVo> getOrdersHasNotLockProcess(@Param("hasIds") String hasIds,@Param("tenantId") String tenantId);
 
     @Select("select * FROM (\n" +
@@ -100,4 +105,7 @@ public interface ApsBlankOrderDao extends BaseMapper<ApsBlankOrderDo> {
 
     @Delete("delete from aps_process_operation_process_equ_backup where BLANKID = #{id}")
     void deleteProcessEquBackupByBlankId(@Param("id") String id);
+
+    @Select("select ALLOYNAMES AS processmetals,NEXTALLOYNAMES AS nextprocessmetals from aps_alloy_close where DELETED='0'")
+    List<WashingMetal> getWashingMetalConfig();
 }

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

@@ -431,7 +431,8 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
         SysUserVo currentUser = CXCommonUtils.getCurrentUser();
         String tenantId = currentUser.getOrganizationDoList().get(0).getFullpid().split(",")[1];
 
-        List<ApsBlankOrderVo> notLockOrders = apsBlankOrderDao.getNotLockOrders(tenantId);
+//        List<ApsBlankOrderVo> notLockOrders = apsBlankOrderDao.getNotLockOrders(tenantId);
+        List<ApsBlankOrderVo> notLockOrders = new ArrayList<>();
         blankOrderAps(notLockOrders);
         //更新生产状态为“待发布”(20)
         updateProductStatusByOrderIds(notLockOrders);
@@ -566,12 +567,18 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
             processOperationProcessEquService.saveBatch(apsProcessOperationProcessEquDos);
             // 回写订单排程交货期
             Map<String, Date> orderDeliveryTime = new HashMap<>();
+            // 坯料计划ID集合
+            List<ApsBlankOrderDo> blankIds = new ArrayList<>();
             for (ProductionProcesses process : lastProcess) {
                 List<ProduceOrder> produceOrder = process.getProduceOrder();
                 if (produceOrder != null && produceOrder.size() > 0) {
                     for (ProduceOrder order : produceOrder) {
                         Date endDate = Date.from(process.getEndTime().atZone(ZoneId.systemDefault()).toInstant());
                         ApsBlankOrderDo blankOrder = this.getById(order.getId());
+                        ApsBlankOrderDo updateBlank = new ApsBlankOrderDo();
+                        updateBlank.setId(order.getId());
+                        updateBlank.setSchedulingstatus(TO_BE_PUBLISHED);
+                        blankIds.add(updateBlank);
                         if (orderDeliveryTime.containsKey(blankOrder.getProductionorderid())) {
                             // 对比取最大值
                             if (endDate.compareTo(orderDeliveryTime.get(blankOrder.getProductionorderid())) > 0) {
@@ -598,7 +605,10 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
                     apsProductionOrderService.updateById(apsProductionOrderDo);
                 });
             }
-
+            // 坯料计划状态更新
+            if(blankIds != null && blankIds.size()>0){
+                this.updateBatchById(blankIds);
+            }
         }
 
         backupProcessOperation(apsProcessOperationProcessEquDos, productionScheduleRetVo.getProcesses());
@@ -676,6 +686,9 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
         } else {
             throw new CustomException("排程参数缺失");
         }
+        // 洗炉合金配置数据设置
+        List<WashingMetal> washingMetalConfig = apsBlankOrderDao.getWashingMetalConfig();
+        productionScheduleVo.setClosealloynames(washingMetalConfig);
 
         // 所有设备
         List<AspCheckItemsDo> eqs = aspCheckItemsService.list(new LambdaQueryWrapper<>());
@@ -1001,10 +1014,10 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
                 aspCheckItemUse.put(aspCheckItemsDo.getId(), 0);
                 // 退火炉套筒间隙扣除
                 if (apsScheduleConfig != null) {
-                    if(aspCheckItemsDo.getEquipmentwidth() == null){
-                        throw new CustomException("退火炉的度没有维护");
+                    if(aspCheckItemsDo.getEquipmentlength() == null){
+                        throw new CustomException("退火炉的度没有维护");
                     }
-                    aspCheckItemsDo.setEquipmentwidth(aspCheckItemsDo.getEquipmentwidth().subtract(apsScheduleConfig.getLooseness()));
+                    aspCheckItemsDo.setEquipmentlength(aspCheckItemsDo.getEquipmentlength().subtract(apsScheduleConfig.getLooseness()));
                 }
             }
             for (ApsProcessOperationVo processOperationM : processOperationMs) {
@@ -1027,7 +1040,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
                             // 选择的设备要在可选设备的范围内
                             if (processOperationM.getCanchoosedeviceid().contains(aspCheckItemsDos.get(i).getId())) {
                                 // 单卷宽度不能超过设备宽度并且单卷重不能超过设备的承重
-                                if (processOperationM.getProwidth().compareTo(aspCheckItemsDos.get(i).getEquipmentwidth()) < 0
+                                if (processOperationM.getProwidth().compareTo(aspCheckItemsDos.get(i).getEquipmentlength()) < 0
                                         && processOperationM.getSinglerollweight().compareTo(aspCheckItemsDos.get(i).getEquipmentbearing()) < 0) {
                                     // 获取使用次数最小的可选设备
                                     if (aspCheckItem == null) {
@@ -1047,11 +1060,11 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
                             // 选择的设备要在可选设备的范围内
                             if (processOperationM.getCanchoosedeviceid().contains(aspCheckItem.getId())) {
                                 // 单卷宽度不能超过设备宽度并且单卷重不能超过设备的承重
-                                if (processOperationM.getProwidth().compareTo(aspCheckItem.getEquipmentwidth()) < 0
+                                if (processOperationM.getProwidth().compareTo(aspCheckItem.getEquipmentlength()) < 0
                                         && processOperationM.getSinglerollweight().compareTo(aspCheckItem.getEquipmentbearing()) < 0) {
                                     for (int n = 1; n <= lastnum; n++) {
                                         // 宽度余量
-                                        if (aspCheckItem.getEquipmentwidth().compareTo(processOperationM.getProwidth().multiply(new BigDecimal(n))) < 0) {
+                                        if (aspCheckItem.getEquipmentlength().compareTo(processOperationM.getProwidth().multiply(new BigDecimal(n))) < 0) {
                                             break;
                                         }
                                         // 重量余量
@@ -1196,7 +1209,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
                     Integer sy = 0;
                     for (int j = 1; j <= processOperationM.getPlanprocessrall(); j++) {
                         // 宽度余量
-                        if (aspCheckItem.getEquipmentwidth().subtract(totalWidth).compareTo(processOperationM.getProwidth().multiply(new BigDecimal(j))) < 0) {
+                        if (aspCheckItem.getEquipmentlength().subtract(totalWidth).compareTo(processOperationM.getProwidth().multiply(new BigDecimal(j))) < 0) {
                             break;
                         }
                         // 重量余量

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

@@ -321,9 +321,9 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
                             apsProcessOperationOutMaterDo.setNumunit(blanckdata.getStr("NUMBERUNIT"));
                             apsProcessOperationOutMaterDo.setPlanstockrollnum(0);
                             //没有后道工序作业,计划成品卷数=计划输出卷数-计划备料卷数
-                            if (StringUtils.isBlank(apsProcessOperationDo.getNextprocessid())) {
+                            if (StringUtils.isBlank(apsCraftRouteStepDo.getNextstepid())) {
                                 apsProcessOperationOutMaterDo.setPlanprodrollnum(apsProcessOperationDo.getPlanprocessrall());
-                            } else {
+                            } else{
                                 apsProcessOperationOutMaterDo.setPlanprodrollnum(0);
                             }
                             apsProcessOperationOutMaterDo.setMainid(processId);

+ 7 - 3
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsServiceImpl.java

@@ -58,9 +58,13 @@ public class ApsServiceImpl implements ApsService {
                 // 加锁最大1小时
                 rLock.lock(1, TimeUnit.HOURS);
                 // 合并待发布未锁定的订单一起排程
-                List<String> hasIds = apsBlankOrders.stream().map(v -> v.getId()).collect(Collectors.toList());
-                String idStrs = CollUtil.join(hasIds, "','");
-                idStrs = "'" + idStrs + "'";
+                String idStrs = null;
+                if(apsBlankOrders != null && apsBlankOrders.size()>0){
+                    List<String> hasIds = apsBlankOrders.stream().map(v -> v.getId()).collect(Collectors.toList());
+                    idStrs = CollUtil.join(hasIds, "','");
+                    idStrs = "'" + idStrs + "'";
+                }
+
                 // 查询存在未锁定的作业坯料计划
 //            List<ApsBlankOrderVo> fbNotLock = apsBlankOrderDao.getFbNotLock(idStrs,tenantId);
                 List<ApsBlankOrderVo> fbNotLock = apsBlankOrderDao.getOrdersHasNotLockProcess(idStrs,tenantId);

+ 5 - 0
cx-aps/cx-aps-entity/src/main/java/com/rongwei/bsentity/vo/ProductionScheduleVo.java

@@ -48,6 +48,11 @@ public class ProductionScheduleVo {
 
     private Map<String,List<String>> blankProcessIds;
 
+    /**
+     * 洗炉合金
+     */
+    private List<WashingMetal> closealloynames;
+
     /**
      * 洗炉时间(小时)
      */

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

@@ -0,0 +1,15 @@
+package com.rongwei.bsentity.vo;
+
+import lombok.Data;
+
+/**
+ * 洗炉合金配置表
+ */
+@Data
+public class WashingMetal {
+
+    // 当前作业合金
+    private String processmetals;
+    // 下道作业合金
+    private String nextprocessmetals;
+}