|
@@ -11,7 +11,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
-import com.google.common.collect.Lists;
|
|
|
import com.rongwei.bscommon.sys.dao.*;
|
|
|
import com.rongwei.bscommon.sys.service.*;
|
|
|
import com.rongwei.bscommon.sys.utils.ApsUtils;
|
|
@@ -46,6 +45,7 @@ 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.SchedulingStatus.PUBLISHED;
|
|
|
+import static com.rongwei.safecommon.utils.SaveConstans.SchedulstatusTyep.*;
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
@@ -105,6 +105,10 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
|
|
|
@Autowired
|
|
|
private ApsProcessOperationProcessEquBackupServiceImpl apsProcessOperationProcessEquBackupService;
|
|
|
|
|
|
+ public static String removeExtraZerosAndDecimal(BigDecimal bd) {
|
|
|
+ bd = bd.stripTrailingZeros();
|
|
|
+ return bd.toPlainString();
|
|
|
+ }
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@@ -143,7 +147,6 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
|
|
|
deleteBackup(blankids, apsProductionOrderIds);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void blankApsCancel(List<String> apsBlankIds) {
|
|
@@ -259,44 +262,52 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
|
|
|
log.debug("坯料计划为空");
|
|
|
return R.error("坯料计划id 必传");
|
|
|
}
|
|
|
- List<String> searchCondition = new ArrayList<String>() {{
|
|
|
- add("40");
|
|
|
- add("50");
|
|
|
- }};
|
|
|
- // 判断是否存在已发布的工序作业
|
|
|
- List<ApsBlankOrderDo> apsBlankOrderDos = this.baseMapper.selectBatchIds(blankIds);
|
|
|
- List<ApsBlankOrderDo> collect1 = apsBlankOrderDos.stream().filter(info -> searchCondition.contains(info.getProductstatus())).collect(Collectors.toList());
|
|
|
- if (!collect1.isEmpty()) {
|
|
|
- logger.error("存在已开工的坯料计划:{}", collect1);
|
|
|
- return R.error("存在已开工的坯料计划");
|
|
|
- }
|
|
|
- // 更新坯料计划的生产状态为已发布
|
|
|
- this.update(new LambdaUpdateWrapper<ApsBlankOrderDo>().in(ApsBlankOrderDo::getId, blankIds)
|
|
|
- .set(ApsBlankOrderDo::getProductstatus, "20")
|
|
|
- .set(ApsBlankOrderDo::getSchedulingstatus, TO_BE_PUBLISHED)
|
|
|
- .set(ApsBlankOrderDo::getLockmark, LOCKMARK_N));
|
|
|
- // 更新坯料计划对应工序作业的状态为待开工
|
|
|
- apsProcessOperationService.update(new LambdaUpdateWrapper<ApsProcessOperationDo>()
|
|
|
- .in(ApsProcessOperationDo::getBlankid, blankIds)
|
|
|
- .set(ApsProcessOperationDo::getProcessstatus, "20")
|
|
|
- .set(ApsProcessOperationDo::getLockmark, LOCKMARK_N)
|
|
|
- .set(ApsProcessOperationDo::getWorkstatus, JOBSTATUS_TO_BE_START));
|
|
|
- // 更新坯料计划对应产品明细的生产状态为待开工
|
|
|
- apsProductDetailDao.updateProductStatusByBlankId(blankIds, "20");
|
|
|
- // 更新工序作业明细的生产状态为待开工
|
|
|
- processOperationProcessEquService.update(new LambdaUpdateWrapper<ApsProcessOperationProcessEquDo>()
|
|
|
- .in(ApsProcessOperationProcessEquDo::getBlankid, blankIds)
|
|
|
- .set(ApsProcessOperationProcessEquDo::getLockmark, LOCKMARK_N)
|
|
|
- .set(ApsProcessOperationProcessEquDo::getWorkstatus, JOBSTATUS_TO_BE_START)
|
|
|
- );
|
|
|
- List<String> collect = apsBlankOrderDos.stream().map(ApsBlankOrderDo::getProductionorderid).distinct().collect(Collectors.toList());
|
|
|
- // 更新工序作业的状态
|
|
|
- apsProcessOperationDao.publishCancel(collect);
|
|
|
- // 根据坯料ID 删除 备份数据
|
|
|
- // 更新订单表的生产状态
|
|
|
+ List<String> productionOrderIds = new ArrayList<>();
|
|
|
+ // 虚幻坯料计划
|
|
|
blankIds.forEach(blankId -> {
|
|
|
- processOperationProcessEquService.updateOrder(blankId);
|
|
|
+ // 更新工序作业生产状态
|
|
|
+ apsProcessOperationService.update(new LambdaUpdateWrapper<ApsProcessOperationDo>()
|
|
|
+ .eq(ApsProcessOperationDo::getBlankid, blankId)
|
|
|
+ .eq(ApsProcessOperationDo::getProcessstatus, TO_BE_STARTED)
|
|
|
+ .set(ApsProcessOperationDo::getProcessstatus, TO_BE_PUBLISHED));
|
|
|
+ // 工序作业信息
|
|
|
+ List<ApsProcessOperationDo> processOperationDos = apsProcessOperationService.list(new LambdaQueryWrapper<ApsProcessOperationDo>()
|
|
|
+ .eq(ApsProcessOperationDo::getBlankid, blankId).orderByDesc(ApsProcessOperationDo::getProcessstatus));
|
|
|
+ // 坯料计划排程状态
|
|
|
+ String schedulingstatus;
|
|
|
+ // 坯料计划生产状态
|
|
|
+ String producttStatus;
|
|
|
+ if (processOperationDos.get(0).getProcessstatus().equals(TO_BE_PUBLISHED)) {
|
|
|
+ schedulingstatus = SCHEDULSTATUS_TORELEASE;
|
|
|
+ producttStatus = TO_BE_PUBLISHED;
|
|
|
+ } else if (processOperationDos.get(0).getProcessstatus().equals(TO_BE_SCHEDULED)) {
|
|
|
+ schedulingstatus = SCHEDULSTATUS_TOSCHEDULE;
|
|
|
+ producttStatus = TO_BE_SCHEDULED;
|
|
|
+ } else {
|
|
|
+ schedulingstatus = SCHEDULSTATUS_HASRELEASE;
|
|
|
+ List<String> processStatusList = processOperationDos.stream()
|
|
|
+ .map(ApsProcessOperationDo::getProcessstatus)
|
|
|
+ .distinct()
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ if (processOperationDos.get(0).getProcessstatus().equals(TO_BE_STARTED)) {
|
|
|
+ producttStatus = TO_BE_STARTED;
|
|
|
+ } else if (processStatusList.size() == 1 && processStatusList.get(0).equals(COMPLETED)) {
|
|
|
+ producttStatus = COMPLETED;
|
|
|
+ } else {
|
|
|
+ producttStatus = PROCESSING;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ApsBlankOrderDo blankOrderDo = this.getById(blankId);
|
|
|
+ productionOrderIds.add(blankOrderDo.getProductionorderid());
|
|
|
+ this.update(new LambdaUpdateWrapper<ApsBlankOrderDo>().eq(ApsBlankOrderDo::getId, blankId)
|
|
|
+ .set(ApsBlankOrderDo::getProductstatus, producttStatus)
|
|
|
+ .set(ApsBlankOrderDo::getSchedulingstatus, schedulingstatus));
|
|
|
});
|
|
|
+ // 更新产品明细的生产状态
|
|
|
+ apsProductDetailDao.publishCancel(blankIds);
|
|
|
+ // 更新订单的生产状态
|
|
|
+ apsProcessOperationDao.publishCancel(productionOrderIds);
|
|
|
+ // 根据坯料ID 删除 备份数据
|
|
|
ApsUtils.clearBackup(null);
|
|
|
return R.ok();
|
|
|
}
|
|
@@ -1753,7 +1764,6 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
|
|
|
return R.ok();
|
|
|
}
|
|
|
|
|
|
-
|
|
|
public R checkBlankOrder(CheckAndSaveOrUpdateBlankReq req, int j) {
|
|
|
//获取校验等级
|
|
|
Integer checkLevel = req.getCheckLevel();
|
|
@@ -2197,11 +2207,6 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
|
|
|
return R.ok();
|
|
|
}
|
|
|
|
|
|
- public static String removeExtraZerosAndDecimal(BigDecimal bd) {
|
|
|
- bd = bd.stripTrailingZeros();
|
|
|
- return bd.toPlainString();
|
|
|
- }
|
|
|
-
|
|
|
/**
|
|
|
* 根据坯料计划ID,更新 拼接字段(输出订单产品、输出成品、坯料输出物料类型、坯料输出物料规格)
|
|
|
*
|