|
@@ -104,10 +104,6 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
|
|
@Autowired
|
|
@Autowired
|
|
private ApsProcessOperationProcessEquBackupServiceImpl apsProcessOperationProcessEquBackupService;
|
|
private ApsProcessOperationProcessEquBackupServiceImpl apsProcessOperationProcessEquBackupService;
|
|
|
|
|
|
- public static String removeExtraZerosAndDecimal(BigDecimal bd) {
|
|
|
|
- bd = bd.stripTrailingZeros();
|
|
|
|
- return bd.toPlainString();
|
|
|
|
- }
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@@ -146,6 +142,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
|
|
deleteBackup(blankids, apsProductionOrderIds);
|
|
deleteBackup(blankids, apsProductionOrderIds);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
public void blankApsCancel(List<String> apsBlankIds) {
|
|
public void blankApsCancel(List<String> apsBlankIds) {
|
|
@@ -694,7 +691,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
|
|
}
|
|
}
|
|
apsProcessOperationProcessEquBackupService.saveBatch(equBackupDos,600);
|
|
apsProcessOperationProcessEquBackupService.saveBatch(equBackupDos,600);
|
|
stopWatch1.stop();
|
|
stopWatch1.stop();
|
|
- log.error("工序作业明细备份时长: {}" + stopWatch1.getTotalTimeSeconds());
|
|
|
|
|
|
+ log.error("工序作业明细备份时长: {}"+stopWatch1.getTotalTimeSeconds());
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -1441,7 +1438,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
|
|
//如果坯料产品类型对应产品外观类型是铝板或板锭,并且坯料长度为空,则提示:坯料是铝板和板锭时长度必填
|
|
//如果坯料产品类型对应产品外观类型是铝板或板锭,并且坯料长度为空,则提示:坯料是铝板和板锭时长度必填
|
|
if (ObjectUtil.isNotEmpty(apsBlankOrderDo.getProducttypeid())) {
|
|
if (ObjectUtil.isNotEmpty(apsBlankOrderDo.getProducttypeid())) {
|
|
//目前数据字典存在3层关系,选择只能选择最后一层,二开查询最后一层的父节点对应数据的父节点,判断是否为铝板或板锭的主键ID
|
|
//目前数据字典存在3层关系,选择只能选择最后一层,二开查询最后一层的父节点对应数据的父节点,判断是否为铝板或板锭的主键ID
|
|
- String pid = this.baseMapper.selectDictAboutProductType(apsBlankOrderDo.getProductionorderid());
|
|
|
|
|
|
+ String pid = this.baseMapper.selectDictAboutProductType(apsBlankOrderDo.getProducttypeid());
|
|
//如果是铝板或板锭
|
|
//如果是铝板或板锭
|
|
if (ObjectUtil.isNotEmpty(pid) && (pid.equals(SaveConstans.ProductionType.BANDING_ID) || pid.equals(SaveConstans.ProductionType.LVBAN_ID))) {
|
|
if (ObjectUtil.isNotEmpty(pid) && (pid.equals(SaveConstans.ProductionType.BANDING_ID) || pid.equals(SaveConstans.ProductionType.LVBAN_ID))) {
|
|
//坯料长度为空
|
|
//坯料长度为空
|
|
@@ -1474,7 +1471,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
|
|
//产品明细
|
|
//产品明细
|
|
List<ApsProductDetailDo> apsProductDetailDoList = req.getApsProductDetailDoList();
|
|
List<ApsProductDetailDo> apsProductDetailDoList = req.getApsProductDetailDoList();
|
|
//输出成品
|
|
//输出成品
|
|
- List<ApsProcessOutputProductDo> apsProcessOutputProductDoList = req.getApsProcessOutputProductDoList();
|
|
|
|
|
|
+ List<ApsProcessOutputProductDo> apsProcessOutputProductDoList = req.getApsProcessOutputProductDoList().stream().filter(item -> ObjectUtil.isEmpty(item.getDeleted()) || item.getDeleted().equals("0")).collect(Collectors.toList());
|
|
|
|
|
|
//如果坯料计划未开工(生产状态<=30)
|
|
//如果坯料计划未开工(生产状态<=30)
|
|
if (apsBlankOrderDo.getProductstatus().compareTo(TO_BE_STARTED) <= 0) {
|
|
if (apsBlankOrderDo.getProductstatus().compareTo(TO_BE_STARTED) <= 0) {
|
|
@@ -1638,6 +1635,14 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ //校验是否有工序作业
|
|
|
|
+ if (checkLevel == 2) {
|
|
|
|
+ List<ApsProcessOperationDo> processOperationDos = apsProcessOperationService.list(new QueryWrapper<ApsProcessOperationDo>().lambda().eq(ApsProcessOperationDo::getBlankid, apsBlankOrderDo.getId()));
|
|
|
|
+ if (processOperationDos.size() <= 0) {
|
|
|
|
+ return R.error("请选择工艺路线");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
if (checkLevel == 3) {
|
|
if (checkLevel == 3) {
|
|
//============校验工序作业=============
|
|
//============校验工序作业=============
|
|
Map<String, Object> params = new HashMap<>();
|
|
Map<String, Object> params = new HashMap<>();
|
|
@@ -1689,6 +1694,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
|
|
return R.ok();
|
|
return R.ok();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
public R checkBlankOrder(CheckAndSaveOrUpdateBlankReq req, int j) {
|
|
public R checkBlankOrder(CheckAndSaveOrUpdateBlankReq req, int j) {
|
|
//获取校验等级
|
|
//获取校验等级
|
|
Integer checkLevel = req.getCheckLevel();
|
|
Integer checkLevel = req.getCheckLevel();
|
|
@@ -1704,7 +1710,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
|
|
//如果坯料产品类型对应产品外观类型是铝板或板锭,并且坯料长度为空,则提示:坯料是铝板和板锭时长度必填
|
|
//如果坯料产品类型对应产品外观类型是铝板或板锭,并且坯料长度为空,则提示:坯料是铝板和板锭时长度必填
|
|
if (ObjectUtil.isNotEmpty(apsBlankOrderDo.getProducttypeid())) {
|
|
if (ObjectUtil.isNotEmpty(apsBlankOrderDo.getProducttypeid())) {
|
|
//目前数据字典存在3层关系,选择只能选择最后一层,二开查询最后一层的父节点对应数据的父节点,判断是否为铝板或板锭的主键ID
|
|
//目前数据字典存在3层关系,选择只能选择最后一层,二开查询最后一层的父节点对应数据的父节点,判断是否为铝板或板锭的主键ID
|
|
- String pid = this.baseMapper.selectDictAboutProductType(apsBlankOrderDo.getProductionorderid());
|
|
|
|
|
|
+ String pid = this.baseMapper.selectDictAboutProductType(apsBlankOrderDo.getProducttypeid());
|
|
//如果是铝板或板锭
|
|
//如果是铝板或板锭
|
|
if (ObjectUtil.isNotEmpty(pid) && (pid.equals(SaveConstans.ProductionType.BANDING_ID) || pid.equals(SaveConstans.ProductionType.LVBAN_ID))) {
|
|
if (ObjectUtil.isNotEmpty(pid) && (pid.equals(SaveConstans.ProductionType.BANDING_ID) || pid.equals(SaveConstans.ProductionType.LVBAN_ID))) {
|
|
//坯料长度为空
|
|
//坯料长度为空
|
|
@@ -1844,6 +1850,31 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ //如果存在订单产品和输出单卷重都相同坯料输出成品,错误提示:以下坯料输出成品重复:{订单产品1}{输出单卷重}{数量单位},{订单产品2}{输出单卷重}{数量单位}
|
|
|
|
+ //组装一下list
|
|
|
|
+ List<String> processOutputDesList = apsProcessOutputProductDoList.stream().map(item -> {
|
|
|
|
+ String unit = "吨";
|
|
|
|
+ if (item.getCountunit().equals(SaveConstans.CountUnit.KG)) {
|
|
|
|
+ unit = "千克";
|
|
|
|
+ }
|
|
|
|
+ return item.getProductname() + item.getOutputonerollweigth() + unit;
|
|
|
|
+ }).collect(Collectors.toList());
|
|
|
|
+
|
|
|
|
+ //用于判断是否重复
|
|
|
|
+ List<String> checkOutputDesList = new LinkedList<>();
|
|
|
|
+ //有重复数据订单产品的数组
|
|
|
|
+ List<String> endCheckOutputDesList = new LinkedList<>();
|
|
|
|
+ for (String s : processOutputDesList) {
|
|
|
|
+ if (checkOutputDesList.contains(s)) {
|
|
|
|
+ endCheckOutputDesList.add(s);
|
|
|
|
+ } else {
|
|
|
|
+ checkOutputDesList.add(s);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (endCheckOutputDesList.size() > 0) {
|
|
|
|
+ String join = String.join(",", endCheckOutputDesList);
|
|
|
|
+ return R.error("第" + j + "个坯料计划 以下坯料输出成品重复:" + join);
|
|
|
|
+ }
|
|
|
|
|
|
if (checkLevel == 3) {
|
|
if (checkLevel == 3) {
|
|
//============校验工艺路线=============
|
|
//============校验工艺路线=============
|
|
@@ -1868,6 +1899,14 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ //校验是否有工序作业
|
|
|
|
+ if (checkLevel == 2) {
|
|
|
|
+ List<ApsProcessOperationDo> processOperationDos = apsProcessOperationService.list(new QueryWrapper<ApsProcessOperationDo>().lambda().eq(ApsProcessOperationDo::getBlankid, apsBlankOrderDo.getId()));
|
|
|
|
+ if (processOperationDos.size() <= 0) {
|
|
|
|
+ return R.error("第" + j + "个坯料计划 请选择工艺路线");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
if (checkLevel == 3) {
|
|
if (checkLevel == 3) {
|
|
//============校验工序作业=============
|
|
//============校验工序作业=============
|
|
Map<String, Object> params = new HashMap<>();
|
|
Map<String, Object> params = new HashMap<>();
|
|
@@ -2078,4 +2117,9 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
|
|
|
|
|
|
return R.ok();
|
|
return R.ok();
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ public static String removeExtraZerosAndDecimal(BigDecimal bd) {
|
|
|
|
+ bd = bd.stripTrailingZeros();
|
|
|
|
+ return bd.toPlainString();
|
|
|
|
+ }
|
|
}
|
|
}
|