|
@@ -30,7 +30,7 @@ import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
-import com.rongwei.bscommon.sys.service.ApsService;
|
|
|
+
|
|
|
import java.math.BigDecimal;
|
|
|
import java.math.RoundingMode;
|
|
|
import java.text.SimpleDateFormat;
|
|
@@ -39,12 +39,13 @@ import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
import static com.rongwei.bscommon.sys.service.impl.ApsProductionOrderServiceImpl.ERROR_MSG;
|
|
|
+import static com.rongwei.bscommon.sys.utils.ApsUtils.addNewConflictsDesc;
|
|
|
import static com.rongwei.safecommon.utils.SaveConstans.DatePattern.DATE_PATTERN_YMDHMS;
|
|
|
+import static com.rongwei.safecommon.utils.SaveConstans.ForcedConflictsDescription.EXCEEDING_THE_PROMISED_DELIVERY_DEADLINE;
|
|
|
import static com.rongwei.safecommon.utils.SaveConstans.JobStatus.JOBSTATUS_TO_BE_START;
|
|
|
import static com.rongwei.safecommon.utils.SaveConstans.LockmarkType.LOCKMARK_N;
|
|
|
import static com.rongwei.safecommon.utils.SaveConstans.LockmarkType.LOCKMARK_Y;
|
|
|
import static com.rongwei.safecommon.utils.SaveConstans.ProductionStatus.*;
|
|
|
-
|
|
|
import static com.rongwei.safecommon.utils.SaveConstans.SchedulstatusTyep.*;
|
|
|
|
|
|
/**
|
|
@@ -182,7 +183,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
|
|
|
logger.error("所选坯料计划:{}存在冲突", blankIds);
|
|
|
return R.error("请先解决排程冲突在发布");
|
|
|
}
|
|
|
- // 如果 订单排程交货期>承诺交货期 抛出异常信息
|
|
|
+ // 如果 订单排程交货期>承诺交货期 抛出异常信息
|
|
|
List<ApsProductionOrderDo> dataByBlankId = apsProcessOperationDao.getDataByBlankId(blankIds);
|
|
|
if (!dataByBlankId.isEmpty()) {
|
|
|
String collect = dataByBlankId.stream()
|
|
@@ -199,7 +200,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
|
|
|
log.error("当前坯料计划不存在工序作业明细");
|
|
|
return R.error("无法根据坯料计划找到工序作业明细");
|
|
|
}
|
|
|
- // 判断是否存在强制冲突不为空的数据
|
|
|
+ // 判断是否存在强制冲突不为空的数据
|
|
|
boolean b = processOperationProcessEquDos.stream().anyMatch(info -> StringUtils.isNotBlank(info.getConflictdes()));
|
|
|
if (b) {
|
|
|
log.error("存在强制冲突无法发布");
|
|
@@ -210,8 +211,8 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
|
|
|
// 更新工序作业生产状态
|
|
|
apsProcessOperationService.update(new LambdaUpdateWrapper<ApsProcessOperationDo>()
|
|
|
.eq(ApsProcessOperationDo::getBlankid, blankId)
|
|
|
- .eq(ApsProcessOperationDo::getProcessstatus,TO_BE_PUBLISHED)
|
|
|
- .set(ApsProcessOperationDo::getProcessstatus,TO_BE_STARTED)
|
|
|
+ .eq(ApsProcessOperationDo::getProcessstatus, TO_BE_PUBLISHED)
|
|
|
+ .set(ApsProcessOperationDo::getProcessstatus, TO_BE_STARTED)
|
|
|
.set(ApsProcessOperationDo::getLockmark, LOCKMARK_Y));
|
|
|
// 工序作业信息
|
|
|
List<ApsProcessOperationDo> processOperationDos = apsProcessOperationService.list(new LambdaQueryWrapper<ApsProcessOperationDo>()
|
|
@@ -406,7 +407,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
|
|
|
if (LOCKMARK_N.equals(lockMark)) {
|
|
|
boolean b = apsProcessOperationDos.stream().allMatch(info -> COMPLETED.equals(info.getProcessstatus()) ||
|
|
|
PROCESSING.equals(info.getProcessstatus()));
|
|
|
- if(b){
|
|
|
+ if (b) {
|
|
|
return R.error("所选作业都已开工,不可以解锁,不能锁定");
|
|
|
}
|
|
|
}
|
|
@@ -448,21 +449,21 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
|
|
|
public R unlock(List<ApsProcessOperationDo> apsProcessOperationDos) {
|
|
|
// 获取待发布的工序作业
|
|
|
List<ApsProcessOperationDo> unlockProcessInfo = apsProcessOperationDos.stream()
|
|
|
- .filter(info ->TO_BE_STARTED.equals(info.getProcessstatus()) || TO_BE_PUBLISHED.equals(info.getProcessstatus()))
|
|
|
+ .filter(info -> TO_BE_STARTED.equals(info.getProcessstatus()) || TO_BE_PUBLISHED.equals(info.getProcessstatus()))
|
|
|
.collect(Collectors.toList());
|
|
|
// 执行解锁作业的工序作业信息
|
|
|
List<String> processIds = unlockProcessInfo.stream().map(ApsProcessOperationDo::getId).collect(Collectors.toList());
|
|
|
// 获取工序作业对应的坯料计划信息(坯料计划生产状态=待开工)
|
|
|
List<String> blankIds = apsProcessOperationDos.stream().map(ApsProcessOperationDo::getBlankid).collect(Collectors.toList());
|
|
|
List<ApsBlankOrderDo> apsBlankOrderDos = this.list(new LambdaQueryWrapper<ApsBlankOrderDo>().in(ApsBlankOrderDo::getId, blankIds).eq(ApsBlankOrderDo::getProductstatus, TO_BE_STARTED));
|
|
|
- if(!apsBlankOrderDos.isEmpty()){
|
|
|
+ if (!apsBlankOrderDos.isEmpty()) {
|
|
|
blankIds = apsBlankOrderDos.stream().map(ApsBlankOrderDo::getId).collect(Collectors.toList());
|
|
|
// 待加工的工序作业执行撤回操作
|
|
|
publishCancel(blankIds);
|
|
|
List<ApsProcessOperationDo> list = apsProcessOperationService.list(new LambdaQueryWrapper<ApsProcessOperationDo>().eq(ApsProcessOperationDo::getBlankid, blankIds));
|
|
|
processIds.addAll(list.stream().map(ApsProcessOperationDo::getId).collect(Collectors.toList()));
|
|
|
}
|
|
|
- if(processIds.isEmpty()){
|
|
|
+ if (processIds.isEmpty()) {
|
|
|
log.error("暂无需要执行解锁的工序作业");
|
|
|
return R.error("暂无需要执行解锁的工序作业信息");
|
|
|
}
|
|
@@ -573,7 +574,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
|
|
|
// 先删除所有作业的明细
|
|
|
List<String> blankids = apsBlankOrders.stream().map(v -> v.getId()).collect(Collectors.toList());
|
|
|
processOperationProcessEquService.remove(new LambdaUpdateWrapper<ApsProcessOperationProcessEquDo>()
|
|
|
- .in(ApsProcessOperationProcessEquDo::getBlankid, blankids).eq(ApsProcessOperationProcessEquDo::getLockmark,"n"));
|
|
|
+ .in(ApsProcessOperationProcessEquDo::getBlankid, blankids).eq(ApsProcessOperationProcessEquDo::getLockmark, "n"));
|
|
|
logger.info("作业明细删除结束..: " + blankids);
|
|
|
// 排程结果保存
|
|
|
List<ApsProcessOperationProcessEquDo> apsProcessOperationProcessEquDos = new ArrayList<>();
|
|
@@ -595,7 +596,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
|
|
|
apsProcessOperationProcessEqu.setTenantid(process.getEquipment().getFactoryid());
|
|
|
apsProcessOperationProcessEqu.setPlanstartdate(Date.from(process.getStartTime().atZone(ZoneId.systemDefault()).toInstant()));
|
|
|
apsProcessOperationProcessEqu.setPlanenddate(Date.from(process.getEndTime().atZone(ZoneId.systemDefault()).toInstant()));
|
|
|
- if("小卷成退".equals(process.getProcessType()) || "小卷包装".equals(process.getProcessType())){
|
|
|
+ if ("小卷成退".equals(process.getProcessType()) || "小卷包装".equals(process.getProcessType())) {
|
|
|
apsProcessOperationProcessEqu.setPlanprocessrall(process.getMinThPcNum());
|
|
|
}else{
|
|
|
apsProcessOperationProcessEqu.setPlanprocessrall(process.getOpeProducePcNum());
|
|
@@ -1811,71 +1812,72 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
|
|
|
|
|
|
//判断是否是新增
|
|
|
int count = this.count(new QueryWrapper<ApsBlankOrderDo>().lambda().eq(ApsBlankOrderDo::getId, apsBlankOrderDo.getId()));
|
|
|
- if(count != 0) {
|
|
|
+ if (count != 0) {
|
|
|
LambdaUpdateWrapper<ApsBlankOrderDo> blankUpdateWrapper = new UpdateWrapper<ApsBlankOrderDo>().lambda();
|
|
|
blankUpdateWrapper.eq(ApsBlankOrderDo::getId, apsBlankOrderDo.getId());
|
|
|
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getProductionorderid,apsBlankOrderDo.getProductionorderid());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getBlanknumber,apsBlankOrderDo.getBlanknumber());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getMaterialname,apsBlankOrderDo.getMaterialname());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getMaterialcode,apsBlankOrderDo.getMaterialcode());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getBlanktype,apsBlankOrderDo.getBlanktype());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getProducttype,apsBlankOrderDo.getProducttype());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getAlloy,apsBlankOrderDo.getAlloy());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getAlloystatus,apsBlankOrderDo.getAlloystatus());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getThickness,apsBlankOrderDo.getThickness());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getProwidth,apsBlankOrderDo.getProwidth());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getProlength,apsBlankOrderDo.getProlength());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getSinglerollweight,apsBlankOrderDo.getSinglerollweight());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getNumberunit,apsBlankOrderDo.getNumberunit());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getRollnum,apsBlankOrderDo.getRollnum());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getTotalweight,apsBlankOrderDo.getTotalweight());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getPreparematerial,apsBlankOrderDo.getPreparematerial());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getDefectiveproduct,apsBlankOrderDo.getDefectiveproduct());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getPreparematerialbatchno,apsBlankOrderDo.getPreparematerialbatchno());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getOutputorderproduct,apsBlankOrderDo.getOutputorderproduct());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getOutputfinishproduct,apsBlankOrderDo.getOutputfinishproduct());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getOutputmaterial,apsBlankOrderDo.getOutputmaterial());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getProductstatus,apsBlankOrderDo.getProductstatus());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getTenantid,apsBlankOrderDo.getTenantid());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getRoption,apsBlankOrderDo.getRoption());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getDeleted,apsBlankOrderDo.getDeleted());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getRemark,apsBlankOrderDo.getRemark());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getCreatedate,apsBlankOrderDo.getCreatedate());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getCreateuserid,apsBlankOrderDo.getCreateuserid());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getModifydate,apsBlankOrderDo.getModifydate());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getModifyuserid,apsBlankOrderDo.getModifyuserid());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getCreateusername,apsBlankOrderDo.getCreateusername());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getModifyusername,apsBlankOrderDo.getModifyusername());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getProducttypeid,apsBlankOrderDo.getProducttypeid());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getInputreportdescribe,apsBlankOrderDo.getInputreportdescribe());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getCraftrouteid,apsBlankOrderDo.getCraftrouteid());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getLockmark,apsBlankOrderDo.getLockmark());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getIsstag,apsBlankOrderDo.getIsstag());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getSchedulingstatus,apsBlankOrderDo.getSchedulingstatus());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getPlanhavematerialdate,apsBlankOrderDo.getPlanhavematerialdate());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getDeliverydate,apsBlankOrderDo.getDeliverydate());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getScheduledatestart,apsBlankOrderDo.getScheduledatestart());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getScheduledateend,apsBlankOrderDo.getScheduledateend());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getPromisedatestart,apsBlankOrderDo.getPromisedatestart());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getPromisedateend,apsBlankOrderDo.getPromisedateend());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getPlannedproductionworkshop,apsBlankOrderDo.getPlannedproductionworkshop());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getBlankoutmatertype,apsBlankOrderDo.getBlankoutmatertype());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getBlankoutmaterspecification,apsBlankOrderDo.getBlankoutmaterspecification());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getProcessoutmaterspecification,apsBlankOrderDo.getProcessoutmaterspecification());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getRouteproducttypeid,apsBlankOrderDo.getRouteproducttypeid());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getRoutemetal,apsBlankOrderDo.getRoutemetal());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getRoutemetalstate,apsBlankOrderDo.getRoutemetalstate());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getRoutethinckstr,apsBlankOrderDo.getRoutethinckstr());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getRoutethickend,apsBlankOrderDo.getRoutethickend());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getRoutewodthstr,apsBlankOrderDo.getRoutewodthstr());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getRoutewidthend,apsBlankOrderDo.getRoutewidthend());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getRoutelengthstr,apsBlankOrderDo.getRoutelengthstr());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getRoutelengthend,apsBlankOrderDo.getRoutelengthend());
|
|
|
- blankUpdateWrapper.set(ApsBlankOrderDo::getBlankappearance,apsBlankOrderDo.getBlankappearance());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getProductionorderid, apsBlankOrderDo.getProductionorderid());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getBlanknumber, apsBlankOrderDo.getBlanknumber());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getMaterialname, apsBlankOrderDo.getMaterialname());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getMaterialcode, apsBlankOrderDo.getMaterialcode());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getBlanktype, apsBlankOrderDo.getBlanktype());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getProducttype, apsBlankOrderDo.getProducttype());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getAlloy, apsBlankOrderDo.getAlloy());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getAlloystatus, apsBlankOrderDo.getAlloystatus());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getThickness, apsBlankOrderDo.getThickness());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getProwidth, apsBlankOrderDo.getProwidth());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getProlength, apsBlankOrderDo.getProlength());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getSinglerollweight, apsBlankOrderDo.getSinglerollweight());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getNumberunit, apsBlankOrderDo.getNumberunit());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getRollnum, apsBlankOrderDo.getRollnum());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getTotalweight, apsBlankOrderDo.getTotalweight());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getPreparematerial, apsBlankOrderDo.getPreparematerial());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getDefectiveproduct, apsBlankOrderDo.getDefectiveproduct());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getPreparematerialbatchno, apsBlankOrderDo.getPreparematerialbatchno());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getOutputorderproduct, apsBlankOrderDo.getOutputorderproduct());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getOutputfinishproduct, apsBlankOrderDo.getOutputfinishproduct());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getOutputmaterial, apsBlankOrderDo.getOutputmaterial());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getProductstatus, apsBlankOrderDo.getProductstatus());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getTenantid, apsBlankOrderDo.getTenantid());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getRoption, apsBlankOrderDo.getRoption());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getDeleted, apsBlankOrderDo.getDeleted());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getRemark, apsBlankOrderDo.getRemark());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getCreatedate, apsBlankOrderDo.getCreatedate());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getCreateuserid, apsBlankOrderDo.getCreateuserid());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getModifydate, apsBlankOrderDo.getModifydate());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getModifyuserid, apsBlankOrderDo.getModifyuserid());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getCreateusername, apsBlankOrderDo.getCreateusername());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getModifyusername, apsBlankOrderDo.getModifyusername());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getProducttypeid, apsBlankOrderDo.getProducttypeid());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getInputreportdescribe, apsBlankOrderDo.getInputreportdescribe());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getCraftrouteid, apsBlankOrderDo.getCraftrouteid());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getLockmark, apsBlankOrderDo.getLockmark());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getIsstag, apsBlankOrderDo.getIsstag());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getSchedulingstatus, apsBlankOrderDo.getSchedulingstatus());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getPlanhavematerialdate, apsBlankOrderDo.getPlanhavematerialdate());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getDeliverydate, apsBlankOrderDo.getDeliverydate());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getScheduledatestart, apsBlankOrderDo.getScheduledatestart());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getScheduledateend, apsBlankOrderDo.getScheduledateend());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getPromisedatestart, apsBlankOrderDo.getPromisedatestart());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getPromisedateend, apsBlankOrderDo.getPromisedateend());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getPlannedproductionworkshop, apsBlankOrderDo.getPlannedproductionworkshop());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getBlankoutmatertype, apsBlankOrderDo.getBlankoutmatertype());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getBlankoutmaterspecification, apsBlankOrderDo.getBlankoutmaterspecification());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getProcessoutmaterspecification, apsBlankOrderDo.getProcessoutmaterspecification());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getRouteproducttypeid, apsBlankOrderDo.getRouteproducttypeid());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getRoutemetal, apsBlankOrderDo.getRoutemetal());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getRoutemetalstate, apsBlankOrderDo.getRoutemetalstate());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getRoutethinckstr, apsBlankOrderDo.getRoutethinckstr());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getRoutethickend, apsBlankOrderDo.getRoutethickend());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getRoutewodthstr, apsBlankOrderDo.getRoutewodthstr());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getRoutewidthend, apsBlankOrderDo.getRoutewidthend());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getRoutelengthstr, apsBlankOrderDo.getRoutelengthstr());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getRoutelengthend, apsBlankOrderDo.getRoutelengthend());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getBlankappearance, apsBlankOrderDo.getBlankappearance());
|
|
|
+ blankUpdateWrapper.set(ApsBlankOrderDo::getMaxheatroll, apsBlankOrderDo.getMaxheatroll());
|
|
|
|
|
|
this.update(blankUpdateWrapper);
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
this.save(apsBlankOrderDo);
|
|
|
}
|
|
|
|
|
@@ -1927,7 +1929,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
|
|
|
* 本次取消卷数=1
|
|
|
* 根据本次取消卷数更新对应工序作业的取消卷数
|
|
|
*/
|
|
|
- if(secondroll > apsProcessOperationDo.getCancelroll()){
|
|
|
+ if (secondroll > apsProcessOperationDo.getCancelroll()) {
|
|
|
CancelProcessOperationVo cancelProcessOperationVo = new CancelProcessOperationVo();
|
|
|
cancelProcessOperationVo.setApsprocessoperationdo(apsProcessOperationDo);
|
|
|
cancelProcessOperationVo.setCurcancelroll(1);
|
|
@@ -1989,8 +1991,8 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
|
|
|
* 如果有坯料计划的承诺交货期-止 < 排程交货期,错误提示:第{几}个坯料计划的承诺交货期-止不能早于排程交货期{排程交货期}
|
|
|
*/
|
|
|
if (req.getCheckDevice()) {
|
|
|
- if (ObjectUtil.isEmpty(apsBlankOrderDo.getPromisedateend())) {
|
|
|
- return R.error("请填写所有坯料计划的承诺交货期-止");
|
|
|
+ if (ObjectUtil.isEmpty(apsBlankOrderDo.getPromisedatestart()) || ObjectUtil.isEmpty(apsBlankOrderDo.getPromisedateend())) {
|
|
|
+ return R.error("请填写所有坯料计划的承诺交货期");
|
|
|
}
|
|
|
if (ObjectUtil.isEmpty(apsBlankOrderDo.getScheduledateend())) {
|
|
|
return R.error("第" + j + "个坯料计划 排程交货期-止不能为空");
|
|
@@ -2519,4 +2521,67 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
|
|
|
}
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 更新坯料计划交货期并增加响应冲突描述
|
|
|
+ *
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public void updateBlankDeliveryDate(ApsBlankOrderDo apsBlankOrderDo, String id) {
|
|
|
+ if (apsBlankOrderDo == null) {
|
|
|
+ apsBlankOrderDo = this.getById(id);
|
|
|
+ }
|
|
|
+ if (apsBlankOrderDo == null) {
|
|
|
+ log.error("无法获取到坯料计划信息");
|
|
|
+ throw new CustomException("无法获取到坯料计划信息");
|
|
|
+ }
|
|
|
+ List<UpdateBlankDeliveryDateVo> blankDeliveryDate = this.getBaseMapper().getBlankDeliveryDate(apsBlankOrderDo.getId());
|
|
|
+ if (blankDeliveryDate.isEmpty()) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if(blankDeliveryDate.size()==1){
|
|
|
+ blankDeliveryDate.add(blankDeliveryDate.get(0));
|
|
|
+ }
|
|
|
+ // 排程交货期-起
|
|
|
+ Date startDate = timeAddHour(blankDeliveryDate.get(0).getPlanenddate(), blankDeliveryDate.get(0).getDeliverytime());
|
|
|
+ //排程交货期-止
|
|
|
+ Date endDate = timeAddHour(blankDeliveryDate.get(1).getPlanenddate(), blankDeliveryDate.get(0).getDeliverytime());
|
|
|
+ // 更新数据
|
|
|
+ this.update(new LambdaUpdateWrapper<ApsBlankOrderDo>().eq(ApsBlankOrderDo::getId, apsBlankOrderDo.getId())
|
|
|
+ .set(BaseDo::getDeleted, 0)
|
|
|
+ .set(apsBlankOrderDo.getPromisedatestart() == null, ApsBlankOrderDo::getPromisedatestart, timeAddHour(startDate, 48))
|
|
|
+ .set(apsBlankOrderDo.getPromisedateend() == null, ApsBlankOrderDo::getPromisedateend, timeAddHour(endDate, 48)));
|
|
|
+ apsBlankOrderDo.setPromisedatestart(timeAddHour(startDate, 48));
|
|
|
+ apsBlankOrderDo.setPromisedateend(timeAddHour(endDate, 48));
|
|
|
+ List<String> updateIds= new ArrayList<>();
|
|
|
+ if(startDate.compareTo(apsBlankOrderDo.getPromisedatestart())>0){
|
|
|
+ updateIds.add(blankDeliveryDate.get(0).getId());
|
|
|
+ }
|
|
|
+ if(endDate.compareTo(apsBlankOrderDo.getPromisedateend())>0){
|
|
|
+ updateIds.add(blankDeliveryDate.get(1).getId());
|
|
|
+ }
|
|
|
+ if(updateIds.isEmpty()){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ List<ApsProcessOperationProcessEquBackupDo> equBackupDos = apsProcessOperationProcessEquBackupDao.selectBatchIds(updateIds);
|
|
|
+ equBackupDos.forEach(data->{
|
|
|
+ data.setConflictdes(addNewConflictsDesc(data.getConflictdes(),EXCEEDING_THE_PROMISED_DELIVERY_DEADLINE));
|
|
|
+ if(StringUtils.isBlank(data.getConflictdes())&& StringUtils.isBlank(data.getSoftconflictdes())){
|
|
|
+ data.setHasconflict("n");
|
|
|
+ }else{
|
|
|
+ data.setHasconflict("y");
|
|
|
+ }
|
|
|
+ });
|
|
|
+ if(!equBackupDos.isEmpty()){
|
|
|
+ apsProcessOperationProcessEquBackupService.updateBatchById(equBackupDos);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public Date timeAddHour(Date date, int hour) {
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
+ calendar.setTime(date);
|
|
|
+ calendar.add(Calendar.HOUR_OF_DAY, hour);
|
|
|
+ return calendar.getTime();
|
|
|
+ }
|
|
|
}
|