浏览代码

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

fangpy 1 年之前
父节点
当前提交
34a0da39e5

+ 7 - 0
bs-common/src/main/java/com/rongwei/safecommon/utils/SaveConstans.java

@@ -1,6 +1,8 @@
 package com.rongwei.safecommon.utils;
 
+import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 public class SaveConstans {
@@ -487,5 +489,10 @@ public class SaveConstans {
         public static final String HIDDEN_DANGER_STATUS = "hidden_danger_status";
     }
 
+    public static final List<String> MERGE_PRODUCE_PROCESS = new ArrayList<>();
+    static {
+        MERGE_PRODUCE_PROCESS.add("");
+    }
+
 
 }

+ 6 - 0
cx-aps/cx-aps-common/pom.xml

@@ -22,6 +22,12 @@
             <version>1.0-SNAPSHOT</version>
         </dependency>
 
+        <dependency>
+            <groupId>com.rongwei</groupId>
+            <artifactId>bs-common</artifactId>
+            <version>1.0-SNAPSHOT</version>
+        </dependency>
+
         <dependency>
             <groupId>com.baomidou</groupId>
             <artifactId>mybatis-plus-generator</artifactId>

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

@@ -2,6 +2,7 @@ package com.rongwei.bscommon.sys.service;
 
 import com.rongwei.bsentity.domain.ApsBlankOrderDo;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwei.bsentity.vo.ApsPlanVo;
 import com.rongwei.bsentity.vo.ProductionScheduleVo;
 
 import java.util.List;
@@ -16,6 +17,6 @@ import java.util.List;
  */
 public interface ApsBlankOrderService extends IService<ApsBlankOrderDo> {
 
-    ProductionScheduleVo apsPlanModelSet(List<ApsBlankOrderDo> apsBlankOrderDos);
+    ProductionScheduleVo apsPlanModelSet(ApsPlanVo apsPlanVo);
 
 }

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

@@ -1,17 +1,23 @@
 package com.rongwei.bscommon.sys.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.rongwei.bscommon.sys.dao.ApsBlankOrderDao;
 import com.rongwei.bscommon.sys.service.ApsBlankOrderService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.rongwei.bscommon.sys.service.ApsProcessOperationService;
+import com.rongwei.bscommon.sys.service.AspCheckItemsService;
 import com.rongwei.bsentity.domain.ApsBlankOrderDo;
 import com.rongwei.bsentity.domain.ApsProcessOperationDo;
-import com.rongwei.bsentity.vo.ProductionProcesses;
-import com.rongwei.bsentity.vo.ProductionScheduleVo;
+import com.rongwei.bsentity.domain.AspCheckItemsDo;
+import com.rongwei.bsentity.vo.*;
+import com.rongwei.rwcommon.utils.StringUtils;
+import com.rongwei.safecommon.utils.SaveConstans;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 /**
@@ -27,30 +33,99 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
 
     @Autowired
     private ApsProcessOperationService apsProcessOperationService;
+    @Autowired
+    private AspCheckItemsService aspCheckItemsService;
 
     /**
      * 原始订单表数据转换APS平台模型数据
-     * @param apsBlankOrderDos
+     * @param apsPlanVo
      * @return
      */
     @Override
-    public ProductionScheduleVo apsPlanModelSet(List<ApsBlankOrderDo> apsBlankOrderDos){
+    public ProductionScheduleVo apsPlanModelSet(ApsPlanVo apsPlanVo){
+        List<ApsBlankOrderVo> apsBlankOrders = apsPlanVo.getApsBlankOrderDos();
         ProductionScheduleVo productionScheduleVo = new ProductionScheduleVo();
-        Long id = 0L;
-        if(apsBlankOrderDos != null && apsBlankOrderDos.size()>0){
-            for (ApsBlankOrderDo apsBlankOrderDo : apsBlankOrderDos) {
+        // 排程计划开始时间
+        productionScheduleVo.setApsPlanStartDate(apsPlanVo.getApsPlanStartDate());
+        // 排程计划设备集合
+        List<Equipment> equipmentList = new ArrayList<>();
+        // 排程计划工序任务集合
+        List<ProductionProcesses> processesList = new ArrayList<>();
+        // 待合并生产的订单工序
+        List<ApsProcessOperationVo> processOperationMs = new ArrayList<>();
+        if(apsBlankOrders != null && apsBlankOrders.size()>0){
+            for (ApsBlankOrderVo apsBlankOrderVo : apsBlankOrders) {
+                // 坯料计划订单
+                ProduceOrder produceOrder = new ProduceOrder(apsBlankOrderVo.getId(),apsBlankOrderVo.getMaterialname(),apsBlankOrderVo.getDeliverydate());
                 // 获取所有订单工序
                 List<ApsProcessOperationDo> operationDos = apsProcessOperationService.list(new LambdaQueryWrapper<ApsProcessOperationDo>()
-                        .eq(ApsProcessOperationDo::getBlankid, apsBlankOrderDo.getId()));
+                        .eq(ApsProcessOperationDo::getBlankid, apsBlankOrderVo.getId()));
                 // 转换工序模型数据
                 for (ApsProcessOperationDo operationDo : operationDos) {
-                    id++;
-//                    ProductionProcesses processes = new ProductionProcesses(id,);
+                    ProductionProcesses processes = new ProductionProcesses();
+                    // 工序所属订单
+                    processes.setProduceOrder(Arrays.asList(new ProduceOrder[]{produceOrder}));
+                    // 判断是否合并生产工序
+                    String productprocess = operationDo.getProductprocess();
+                    if(SaveConstans.MERGE_PRODUCE_PROCESS.contains(productprocess)){
+                        // 合并生产工序
+                        ApsProcessOperationVo processOperationVo = new ApsProcessOperationVo();
+                        BeanUtil.copyProperties(operationDo,processOperationVo);
+                        processOperationVo.setProduceOrder(produceOrder);
+                        processOperationMs.add(processOperationVo);
+                    }else {
+                        // 非合并生产工序
+                        List<String> optionalEquipments = new ArrayList<>();
+                        if(StringUtils.isNotBlank(operationDo.getCanchoosedevice())){
+                            String[] sbIds = operationDo.getCanchoosedeviceid().split(",");
+                            for (String equIds : sbIds) {
+                                AspCheckItemsDo checkItemsD = aspCheckItemsService.getById(equIds);
+                                Equipment equipment = new Equipment();
+                                equipment.setBsEquipmentId(equIds);
+                                equipment.setId(equIds);
+                                equipment.setEquipmentName(checkItemsD.getCheckitemname());
+                                optionalEquipments.add(equIds);
+                                equipmentList.add(equipment);
+                            }
+                        }
+
+                        // 模型ID
+                        processes.setId(operationDo.getId());
+                        // 业务表主键ID
+                        processes.setBsProcessesId(operationDo.getId());
+                        // 工序任务可选设备
+                        processes.setOptionalEquipments(optionalEquipments);
+                        // 上道工序
+                        if(StringUtils.isNotBlank(operationDo.getPreviousprocess())){
+                            processes.setPreviousProcessesIds(Arrays.asList(operationDo.getPreviousprocess().split(",")));
+                        }
+                        // 下道工序
+                        if(StringUtils.isNotBlank(operationDo.getNextprocess())){
+                            processes.setNextProcessesIds(Arrays.asList(operationDo.getNextprocess().split(",")));
+                        }
+                        processesList.add(processes);
+                    }
                 }
             }
         }
+        // 合并生产工序
+        List<ProductionProcesses> productionProcesses = mergeProcesses(processOperationMs);
+        processesList.addAll(productionProcesses);
 
+        productionScheduleVo.setProcesses(processesList);
+        productionScheduleVo.setEquipmentList(equipmentList);
         return productionScheduleVo;
     }
 
+    /**
+     * 合并生产工序
+     * @param processOperationMs
+     * @return
+     */
+    private List<ProductionProcesses> mergeProcesses(List<ApsProcessOperationVo> processOperationMs){
+        List<ProductionProcesses> processesList = new ArrayList<>();
+
+        return processesList;
+    }
+
 }

+ 5 - 0
cx-aps/cx-aps-entity/src/main/java/com/rongwei/bsentity/domain/ApsProcessOperationDo.java

@@ -78,6 +78,11 @@ public class ApsProcessOperationDo extends BaseDo {
      */
     @TableField("CANCHOOSEDEVICE")
     private String canchoosedevice;
+    /**
+     * 可选设备ID
+     */
+    @TableField("CANCHOOSEDEVICEID")
+    private String canchoosedeviceid;
     /**
      * 计划输入物料
      */

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

@@ -0,0 +1,13 @@
+package com.rongwei.bsentity.vo;
+
+import com.rongwei.bsentity.domain.ApsBlankOrderDo;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class ApsBlankOrderVo extends ApsBlankOrderDo {
+
+    private Date deliverydate;
+
+}

+ 18 - 0
cx-aps/cx-aps-entity/src/main/java/com/rongwei/bsentity/vo/ApsPlanVo.java

@@ -0,0 +1,18 @@
+package com.rongwei.bsentity.vo;
+
+import com.rongwei.bsentity.domain.ApsBlankOrderDo;
+import lombok.Data;
+import java.util.Date;
+import java.util.List;
+
+@Data
+public class ApsPlanVo {
+
+    /**
+     * APS 排程计划开始时间
+     */
+    private Date apsPlanStartDate;
+
+    private List<ApsBlankOrderVo> apsBlankOrderDos;
+
+}

+ 14 - 0
cx-aps/cx-aps-entity/src/main/java/com/rongwei/bsentity/vo/ApsProcessOperationVo.java

@@ -0,0 +1,14 @@
+package com.rongwei.bsentity.vo;
+
+import com.rongwei.bsentity.domain.ApsProcessOperationDo;
+import lombok.Data;
+
+@Data
+public class ApsProcessOperationVo extends ApsProcessOperationDo {
+
+    /**
+     * 所属订单
+     */
+    private ProduceOrder produceOrder;
+
+}

+ 12 - 2
cx-aps/cx-aps-entity/src/main/java/com/rongwei/bsentity/vo/Equipment.java

@@ -13,7 +13,17 @@ import java.math.BigDecimal;
 @Data
 public class Equipment{
 
-    private Long id;
+    private String id;
+
+    /**
+     * 业务表订单工序ID
+     */
+    private String bsEquipmentId;
+
+    /**
+     * 设备名称
+     */
+    private String equipmentName;
 
     /**
      * 设备类型
@@ -45,7 +55,7 @@ public class Equipment{
      */
     private Integer unitProductTime;
 
-    public Equipment(long id, String equipmentType) {
+    public Equipment(String id, String equipmentType) {
         this.id = id;
         this.equipmentType = equipmentType;
     }

+ 32 - 11
cx-aps/cx-aps-entity/src/main/java/com/rongwei/bsentity/vo/ProductionProcesses.java

@@ -8,13 +8,13 @@ import java.util.List;
  */
 public class ProductionProcesses{
 
-    private Long id;
+    private String id;
 
     public ProductionProcesses(){
 
     }
 
-    public ProductionProcesses(long id, String equipmentType, List<ProduceOrder> produceOrder, Integer produceTime) {
+    public ProductionProcesses(String id, String equipmentType, List<ProduceOrder> produceOrder, Integer produceTime) {
         this.id = id;
         this.equipmentType = equipmentType;
         this.produceOrder = produceOrder;
@@ -26,6 +26,11 @@ public class ProductionProcesses{
      */
     private String bsProcessesId;
 
+    /**
+     * 可选设备ID
+     */
+    private List<String> optionalEquipments;
+
     /**
      * 设备类型
      */
@@ -34,7 +39,7 @@ public class ProductionProcesses{
     /**
      * 工步生产时的设备
      */
-    private Long equipmentId;
+    private String equipmentId;
 
     /**
      * 工步生产时的设备
@@ -93,7 +98,7 @@ public class ProductionProcesses{
     /**
      * 上一个工步ID
      */
-    private List<Long> previousProcessesIds;
+    private List<String> previousProcessesIds;
 
     /**
      * 下一个工步
@@ -102,7 +107,7 @@ public class ProductionProcesses{
     /**
      * 下一个工步ID
      */
-    private List<Long> nextProcessesIds;
+    private List<String> nextProcessesIds;
 
     public String getEquipmentType() {
         return equipmentType;
@@ -120,11 +125,11 @@ public class ProductionProcesses{
         this.equipment = equipment;
     }
 
-    public Long getEquipmentId() {
+    public String getEquipmentId() {
         return equipmentId;
     }
 
-    public void setEquipmentId(Long equipmentId) {
+    public void setEquipmentId(String equipmentId) {
         this.equipmentId = equipmentId;
     }
 
@@ -219,19 +224,19 @@ public class ProductionProcesses{
         this.mergeProcessMark = mergeProcessMark;
     }
 
-    public List<Long> getPreviousProcessesIds() {
+    public List<String> getPreviousProcessesIds() {
         return previousProcessesIds;
     }
 
-    public void setPreviousProcessesIds(List<Long> previousProcessesIds) {
+    public void setPreviousProcessesIds(List<String> previousProcessesIds) {
         this.previousProcessesIds = previousProcessesIds;
     }
 
-    public List<Long> getNextProcessesIds() {
+    public List<String> getNextProcessesIds() {
         return nextProcessesIds;
     }
 
-    public void setNextProcessesIds(List<Long> nextProcessesIds) {
+    public void setNextProcessesIds(List<String> nextProcessesIds) {
         this.nextProcessesIds = nextProcessesIds;
     }
 
@@ -242,4 +247,20 @@ public class ProductionProcesses{
     public void setBsProcessesId(String bsProcessesId) {
         this.bsProcessesId = bsProcessesId;
     }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public List<String> getOptionalEquipments() {
+        return optionalEquipments;
+    }
+
+    public void setOptionalEquipments(List<String> optionalEquipments) {
+        this.optionalEquipments = optionalEquipments;
+    }
 }

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

@@ -3,6 +3,7 @@ package com.rongwei.bsentity.vo;
 
 import lombok.Data;
 
+import java.util.Date;
 import java.util.List;
 
 @Data
@@ -13,6 +14,16 @@ public class ProductionScheduleVo {
      */
     private String productionScheduleId;
 
+    /**
+     * APS 排程计划开始时间
+     */
+    private Date apsPlanStartDate;
+
+    /**
+     * 指定运行秒数
+     */
+    private Integer planSeconds;
+
     /**
      * 生产工序集合
      */