|
@@ -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;
|
|
|
+ }
|
|
|
+
|
|
|
}
|