Browse Source

APS二开服务业务数据转换模型数据

fangpy 1 năm trước cách đây
mục cha
commit
29002c708a

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

@@ -19,6 +19,8 @@ import java.util.List;
  */
 public interface ApsBlankOrderService extends IService<ApsBlankOrderDo> {
 
+    void orderApsCancel(List<String> apsProductionOrderIds) throws Exception;
+
     void orderLock(OrderLockVo orderLockVo) throws Exception;
 
     void apsReScheduling() throws Exception;

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

@@ -16,6 +16,8 @@ import com.rongwei.rwcommon.base.exception.CustomException;
 import com.rongwei.rwcommon.utils.SecurityUtil;
 import com.rongwei.rwcommon.utils.StringUtils;
 import com.rongwei.safecommon.utils.SaveConstans;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -37,6 +39,8 @@ import java.util.stream.Stream;
 @Service
 public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsBlankOrderDo> implements ApsBlankOrderService {
 
+    private static final Logger logger = LoggerFactory.getLogger(ApsBlankOrderServiceImpl.class);
+
     @Autowired
     private ApsProcessOperationService apsProcessOperationService;
     @Autowired
@@ -52,6 +56,41 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
     @Autowired
     private ApsProductionOrderService apsProductionOrderService;
 
+    /**
+     * 取消订单排程
+     * @param apsProductionOrderIds
+     */
+    @Override
+    public void orderApsCancel(List<String> apsProductionOrderIds) throws Exception{
+        if(apsProductionOrderIds != null && apsProductionOrderIds.size()>0){
+            List<ApsBlankOrderDo> blankOrderDos = this.list(new LambdaQueryWrapper<ApsBlankOrderDo>().in(ApsBlankOrderDo::getProductionorderid, apsProductionOrderIds));
+            if(blankOrderDos != null && blankOrderDos.size()>0){
+                List<String> blankids = blankOrderDos.stream().map(ApsBlankOrderDo::getId).collect(Collectors.toList());
+                // 删除已排程的工序作业
+                processOperationProcessEquService.remove(new LambdaQueryWrapper<ApsProcessOperationProcessEquDo>().in(ApsProcessOperationProcessEquDo::getBlankid,blankids));
+                // 更新订单的排程状态
+                List<ApsProductionOrderDo> productionOrderDos = new ArrayList<>();
+                for (String apsProductionOrderId : apsProductionOrderIds) {
+                    ApsProductionOrderDo productionOrderDo = new ApsProductionOrderDo();
+                    productionOrderDo.setId(apsProductionOrderId);
+                    productionOrderDo.setSchedulstatus(SaveConstans.SchedulstatusTyep.SCHEDULSTATUS_TOSCHEDULE);
+                    productionOrderDos.add(productionOrderDo);
+                }
+                if(productionOrderDos != null && productionOrderDos.size()>0){
+                    apsProductionOrderService.updateBatchById(productionOrderDos);
+                }
+                // 更新坯料计划的锁定状态
+                List<ApsBlankOrderDo> updateBlanks = blankids.stream().map(str -> {
+                    ApsBlankOrderDo blankOrderDo = new ApsBlankOrderDo();
+                    blankOrderDo.setId(str);
+                    blankOrderDo.setLockmark(SaveConstans.LockmarkType.LOCKMARK_N);
+                    return blankOrderDo;
+                }).collect(Collectors.toList());
+                this.updateBatchById(updateBlanks);
+            }
+        }
+    }
+
     /**
      * 锁定、解锁
      * @param orderLockVo
@@ -61,16 +100,24 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
     public void orderLock(OrderLockVo orderLockVo) throws Exception {
         if(StringUtils.isNotBlank(orderLockVo.getLockMark())){
             if(orderLockVo.getBlackOrderId() != null && orderLockVo.getBlackOrderId().size()>0){
+                // 组装待更新坯料计划实体
                 List<ApsBlankOrderDo> blankOrderDos = new ArrayList<>();
+                List<String> blankids = new ArrayList<>();
                 for (String id : orderLockVo.getBlackOrderId()) {
                     ApsBlankOrderDo blankOrderDo = new ApsBlankOrderDo();
                     blankOrderDo.setId(id);
                     blankOrderDo.setLockmark(orderLockVo.getLockMark());
                     blankOrderDos.add(blankOrderDo);
+                    blankids.add(id);
                 }
+                // 坯料计划锁定标识更新
                 if(blankOrderDos != null && blankOrderDos.size()>0){
                     this.updateBatchById(blankOrderDos);
                 }
+                // 工序作业锁定标识更新
+                apsProcessOperationService.update(new LambdaQueryWrapper<ApsProcessOperationDo>().in(ApsProcessOperationDo::getBlankid,blankids));
+                // 工序作业排程计划锁定
+                processOperationProcessEquService.update(new LambdaQueryWrapper<ApsProcessOperationProcessEquDo>().in(ApsProcessOperationProcessEquDo::getBlankid,blankids));
             }
         }
     }
@@ -112,6 +159,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
         // 模型转换
         ProductionScheduleVo productionScheduleVo = apsPlanModelSet(apsBlankOrders);
         System.out.println("排程数据:" + JSONUtil.toJsonStr(productionScheduleVo));
+        logger.info("排程数据:" + JSONUtil.toJsonStr(productionScheduleVo));
         // APS平台排程接口调用
         ProductionScheduleRetVo productionScheduleRetVo = rwApsServer.productionSchedule(productionScheduleVo);
         // 排程结果保存
@@ -127,6 +175,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
                     ApsProcessOperationProcessEquDo apsProcessOperationProcessEqu = new ApsProcessOperationProcessEquDo();
                     apsProcessOperationProcessEqu.setId(SecurityUtil.getUUID());
                     apsProcessOperationProcessEqu.setProcessid(process.getId());
+                    apsProcessOperationProcessEqu.setBlankid(process.getProduceOrder().get(0).getId());
                     apsProcessOperationProcessEqu.setProcessdeviceid(process.getEquipment().getId());
                     apsProcessOperationProcessEqu.setProcessdevice(process.getEquipment().getEquipmentName());
                     apsProcessOperationProcessEqu.setProcessworkshopid(process.getEquipment().getWorkshopid());
@@ -155,6 +204,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
                         ApsProcessOperationProcessEquDo apsProcessOperationProcessEqu = new ApsProcessOperationProcessEquDo();
                         apsProcessOperationProcessEqu.setId(SecurityUtil.getUUID());
                         apsProcessOperationProcessEqu.setProcessid(k);
+                        apsProcessOperationProcessEqu.setBlankid(v.get(0).getBlankid());
                         apsProcessOperationProcessEqu.setProcessdeviceid(process.getEquipment().getId());
                         apsProcessOperationProcessEqu.setProcessdevice(process.getEquipment().getEquipmentName());
                         apsProcessOperationProcessEqu.setPlanstartdate(Date.from(process.getStartTime().atZone(ZoneId.systemDefault()).toInstant()));
@@ -490,6 +540,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
                                     for (int j=1;j<=sy;j++){
                                         AluminumCoil aluminumCoil = new AluminumCoil();
                                         aluminumCoil.setBsId(processOperationM.getId());
+                                        aluminumCoil.setBlankid(processOperationM.getBlankid());
                                         aluminumCoil.setVolumeWidth(processOperationM.getProwidth());
                                         aluminumCoil.setVolumeThickness(processOperationM.getThickness());
                                         aluminumCoil.setVolumeWeight(processOperationM.getSinglerollweight());
@@ -579,6 +630,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
                                         for (int j=1;j<=haslast;j++){
                                             AluminumCoil aluminumCoil = new AluminumCoil();
                                             aluminumCoil.setBsId(processOperationM.getId());
+                                            aluminumCoil.setBlankid(processOperationM.getBlankid());
                                             aluminumCoil.setVolumeWidth(processOperationM.getProwidth());
                                             aluminumCoil.setVolumeThickness(processOperationM.getThickness());
                                             aluminumCoil.setVolumeWeight(processOperationM.getSinglerollweight());

+ 2 - 0
cx-aps/cx-aps-common/src/main/resources/mybatis/ApsProcessOperationProcessEquDao.xml

@@ -162,6 +162,8 @@
         ORDERNO=a5.MERGEORDERNUMBER ) )
         and DELETED ='0') AS CUSTOMERABBREVIATION,
         a1.ID,
+        a3.ID AS blankOrderId,
+        a6.ID AS productionorderid,
         a2.ID as processid
         FROM
         aps_process_operation_process_equ a1

+ 7 - 8
cx-aps/cx-aps-entity/src/main/java/com/rongwei/bsentity/domain/ApsProcessOperationDo.java

@@ -11,16 +11,13 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
-import java.math.BigDecimal;
-import java.time.LocalDateTime;
-
 /**
  * <p>
  * 生产订单-坯料计划-工序作业
  * </p>
  *
  * @author fpy
- * @since 2024-03-26
+ * @since 2024-04-08
  */
 @Data
 @EqualsAndHashCode(callSuper = true)
@@ -48,11 +45,10 @@ public class ApsProcessOperationDo extends BaseDo {
     @TableField("OWNEDFACTORY")
     private String ownedfactory;
     /**
-     * 工艺步骤表ID
+     * 工艺路线的工艺步骤表ID
      */
     @TableField("CRAFTSTEPID")
     private String craftstepid;
-
     /**
      * 工艺步骤编号
      */
@@ -233,7 +229,6 @@ public class ApsProcessOperationDo extends BaseDo {
      */
     @TableField("PLANINPUTID")
     private String planinputid;
-
     /**
      * 计划输入物料
      */
@@ -379,7 +374,6 @@ public class ApsProcessOperationDo extends BaseDo {
      */
     @TableField("PLANPROCESSNUM")
     private Integer planprocessnum;
-
     /**
      * 前道工序作业ID
      */
@@ -445,6 +439,11 @@ public class ApsProcessOperationDo extends BaseDo {
      */
     @TableField("SINGLEROLLWEIGHT")
     private BigDecimal singlerollweight;
+    /**
+     * 是否锁定 y:锁定,n:未锁定
+     */
+    @TableField("LOCKMARK")
+    private String lockmark;
 
 
 }

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

@@ -16,7 +16,7 @@ import lombok.experimental.Accessors;
  * </p>
  *
  * @author fpy
- * @since 2024-04-07
+ * @since 2024-04-08
  */
 @Data
 @EqualsAndHashCode(callSuper = true)
@@ -138,6 +138,11 @@ public class ApsProcessOperationProcessEquDo extends BaseDo {
      */
     @TableField("LOCKMARK")
     private String lockmark;
+    /**
+     * 坯料计划ID
+     */
+    @TableField("BLANKID")
+    private String blankid;
 
 
 }

+ 2 - 0
cx-aps/cx-aps-entity/src/main/java/com/rongwei/bsentity/vo/AluminumCoil.java

@@ -8,6 +8,8 @@ public class AluminumCoil {
 
     // 业务作业ID
     private String bsId;
+    // 业务坯料计划ID
+    private String blankid;
     // 单卷宽
     private BigDecimal volumeWidth;
     // 单卷厚度

+ 8 - 0
cx-aps/cx-aps-entity/src/main/java/com/rongwei/bsentity/vo/GanttVos.java

@@ -92,6 +92,14 @@ public class GanttVos {
      * 工序作业ID
      */
     private String processid;
+    /**
+     * 坯料计划ID
+     */
+    private String blankOrderId;
+    /**
+     * 订单ID
+     */
+    private String productionorderid;
     /**
      * 工序作业明细ID
      */

+ 14 - 0
cx-aps/cx-aps-server/src/main/java/com/rongwei/bsserver/controller/ApsBlankOrderController.java

@@ -2,12 +2,15 @@ package com.rongwei.bsserver.controller;
 
 
 import com.rongwei.bscommon.sys.service.ApsBlankOrderService;
+import com.rongwei.bsentity.domain.ApsProductionOrderDo;
 import com.rongwei.bsentity.vo.ApsPlanVo;
 import com.rongwei.bsentity.vo.OrderLockVo;
 import com.rongwei.rwcommon.base.R;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.List;
+
 /**
  * <p>
  * 生产订单_坯料计划 前端控制器
@@ -56,5 +59,16 @@ public class ApsBlankOrderController {
         return R.ok();
     }
 
+    /**
+     * 订单排程取消
+     * @param
+     * @return
+     */
+    @PostMapping("/orderApsCancel")
+    public R orderApsCancel(@RequestBody List<String> apsProductionOrderIds) throws Exception {
+        apsBlankOrderService.orderApsCancel(apsProductionOrderIds);
+        return R.ok();
+    }
+
 }