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

aps-一键排程、重新排程接口,排完后增加修改生产状态

sucheng 1 год назад
Родитель
Сommit
076af2920e

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

@@ -9,6 +9,7 @@ import org.apache.ibatis.annotations.Select;
 import org.apache.ibatis.annotations.Update;
 
 import java.util.List;
+import java.util.Set;
 
 /**
  * <p>
@@ -40,4 +41,7 @@ public interface ApsBlankOrderDao extends BaseMapper<ApsBlankOrderDo> {
     void upCraftrouteId(@Param("blankId") String blankId, @Param("craftrouteid") String craftrouteid);
 
     void publish(@Param("productionOrderIds") List<String> productionOrderIds);
+
+    @Update("update aps_process_operation set PROCESSSTATUS = '20' where BLANKID IN (select ID from aps_blank_order where DELETED = 0 AND PRODUCTIONORDERID in (${orderIds})")
+    void updateProcessOperationByOrderIds(@Param("orderIds") String orderIds);
 }

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

@@ -7,6 +7,7 @@ import cn.hutool.core.date.DateUtil;
 import cn.hutool.json.JSONConfig;
 import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.rongwei.bscommon.sys.dao.*;
@@ -66,6 +67,8 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
     private ApsProcessOperationProcessEquBackupDao apsProcessOperationProcessEquBackupDao;
     @Autowired
     private ApsProductionOrderDao apsProcessOperationDao;
+    @Autowired
+    private ApsProductDetailService apsProductDetailService;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -172,6 +175,8 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
     public void apsReScheduling() throws Exception{
         List<ApsBlankOrderVo> notLockOrders = apsBlankOrderDao.getNotLockOrders();
         blankOrderAps(notLockOrders);
+        //更新生产状态为“待发布”(20)
+        updateProductStatusByOrderIds(notLockOrders.stream().map(ApsBlankOrderVo::getProductionorderid).collect(Collectors.toSet()));
     }
 
     /**
@@ -190,6 +195,8 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
         }
         apsPlanVo.setApsBlankOrderDos(apsBlankOrders);
         blankOrderAps(apsBlankOrders);
+        //更新生产状态为“待发布”(20)
+        updateProductStatusByOrderIds(apsBlankOrders.stream().map(ApsBlankOrderVo::getProductionorderid).collect(Collectors.toSet()));
     }
 
     /**
@@ -332,7 +339,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
      */
     private void backupProcessOperation(List<ApsProcessOperationProcessEquDo> apsProcessOperationProcessEquDos,
                                         List<ProductionProcesses> processes) {
-        
+
 
         // 工序作业明细ID
         List<String> apsProcessOperationIds = processes.stream().map(ProductionProcesses::getId).distinct().collect(Collectors.toList());
@@ -784,4 +791,26 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
         return processesList;
     }
 
+    /**
+     * 排程结束之后根据订单IDs修改生产状态
+     */
+    private void updateProductStatusByOrderIds(Set<String> orderIds) {
+        String idStrs = CollUtil.join(orderIds, "','");
+        idStrs = "'" + idStrs + "'";
+
+        //更新工序作业的生产状态为‘待发布’(20)
+        this.baseMapper.updateProcessOperationByOrderIds(idStrs);
+        //更新所有坯料计划的生产状态
+        ApsBlankOrderDo apsBlankOrderDo = new ApsBlankOrderDo();
+        apsBlankOrderDo.setProductstatus("20");
+        this.update(apsBlankOrderDo, new QueryWrapper<ApsBlankOrderDo>().lambda().in(ApsBlankOrderDo::getProductionorderid, orderIds));
+        //更新所有产品明细的生产状态
+        ApsProductDetailDo apsProductDetailDo = new ApsProductDetailDo();
+        apsBlankOrderDo.setProductstatus("20");
+        apsProductDetailService.update(apsProductDetailDo, new QueryWrapper<ApsProductDetailDo>().lambda().in(ApsProductDetailDo::getMainid, orderIds));
+        //更新订单的生产状态
+        ApsProductionOrderDo apsProductionOrderDo = new ApsProductionOrderDo();
+        apsProductionOrderDo.setProductionstatus("20");
+        apsProductionOrderService.update(apsProductionOrderDo, new QueryWrapper<ApsProductionOrderDo>().lambda().in(ApsProductionOrderDo::getId, orderIds));
+    }
 }