|
@@ -93,26 +93,27 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
return R.ok();
|
|
|
}
|
|
|
//工序作业->坯料计划
|
|
|
- //工序作业->订单
|
|
|
if (ObjectUtil.isNotEmpty(request.getProcessOperationId())) {
|
|
|
updateBlank(request.getProcessOperationId());
|
|
|
return R.ok();
|
|
|
}
|
|
|
- //坯料计划->产品明细
|
|
|
+ //坯料计划->订单
|
|
|
if (ObjectUtil.isNotEmpty(request.getBlankId())) {
|
|
|
updateOrder(request.getBlankId());
|
|
|
return R.ok();
|
|
|
}
|
|
|
-// if (ObjectUtil.isNotEmpty(request.getOrderId())) {
|
|
|
-// return R.ok();
|
|
|
-// }
|
|
|
+ //订单->产品明细
|
|
|
+ if (ObjectUtil.isNotEmpty(request.getOrderId())) {
|
|
|
+ updateProductDetail(request.getOrderId());
|
|
|
+ return R.ok();
|
|
|
+ }
|
|
|
return R.ok();
|
|
|
}
|
|
|
|
|
|
private void updateProcess(String processOperationEquId) {
|
|
|
String processOperationId = updateProcessByProcessEquId(processOperationEquId);
|
|
|
|
|
|
- if(ObjectUtil.isEmpty(processOperationId)){
|
|
|
+ if (ObjectUtil.isEmpty(processOperationId)) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
@@ -122,12 +123,13 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
|
|
|
/**
|
|
|
* 从作业明细表中的任意一个子表ID开始,自动计算更新工序作业的状态,完成后返回其中一个工序作业的ID(不一定要用)
|
|
|
+ *
|
|
|
* @param processOperationEquId
|
|
|
*/
|
|
|
public String updateProcessByProcessEquId(String processOperationEquId) {
|
|
|
//查询所有子表明细的最小生产状态和工序作业ID
|
|
|
CommonUpdateProductionStatusReq one = this.baseMapper.selectEquMinStatus(processOperationEquId);
|
|
|
- if(ObjectUtil.isEmpty(one)){
|
|
|
+ if (ObjectUtil.isEmpty(one)) {
|
|
|
return "";
|
|
|
}
|
|
|
//工序作业ID
|
|
@@ -153,27 +155,27 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
* 如果已开工卷数>0,并且完工状态=未完工,则=加工中;(先更新完工状态)
|
|
|
* 如果未完工卷数=0,并且完工状态=已完工,则=已完工(先更新完工状态)
|
|
|
*/
|
|
|
- if(startingroll <= 0){
|
|
|
+ if (startingroll <= 0) {
|
|
|
apsProcessOperationDo.setWorkstatus("待开工");
|
|
|
//容错修正
|
|
|
apsProcessOperationDo.setStartingroll(0);
|
|
|
}
|
|
|
- if(startingroll > 0 && apsProcessOperationDo.getClosestatus().equals("未完工")){
|
|
|
+ if (startingroll > 0 && apsProcessOperationDo.getClosestatus().equals("未完工")) {
|
|
|
apsProcessOperationDo.setWorkstatus("加工中");
|
|
|
}
|
|
|
- if(unfinishroll == 0 && apsProcessOperationDo.getClosestatus().equals("已完工")){
|
|
|
+ if (unfinishroll == 0 && apsProcessOperationDo.getClosestatus().equals("已完工")) {
|
|
|
apsProcessOperationDo.setWorkstatus("已完工");
|
|
|
}
|
|
|
|
|
|
//更新工序作业的生产状态
|
|
|
//开工和报工检验后,生产状态=作业状态(先更新作业状态)
|
|
|
- if(apsProcessOperationDo.getWorkstatus().equals("待开工")){
|
|
|
+ if (apsProcessOperationDo.getWorkstatus().equals("待开工")) {
|
|
|
apsProcessOperationDo.setProcessstatus("30");
|
|
|
}
|
|
|
- if(apsProcessOperationDo.getWorkstatus().equals("加工中")){
|
|
|
+ if (apsProcessOperationDo.getWorkstatus().equals("加工中")) {
|
|
|
apsProcessOperationDo.setProcessstatus("40");
|
|
|
}
|
|
|
- if(apsProcessOperationDo.getWorkstatus().equals("已完工")){
|
|
|
+ if (apsProcessOperationDo.getWorkstatus().equals("已完工")) {
|
|
|
apsProcessOperationDo.setProcessstatus("50");
|
|
|
}
|
|
|
apsProcessOperationDo.setId(processId);
|
|
@@ -185,7 +187,7 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
private void updateBlank(String processOperationId) {
|
|
|
//查询此工序作业的所属坯料计划的最小生产状态和坯料计划ID
|
|
|
CommonUpdateProductionStatusReq two = this.baseMapper.selectProcessMinStatus(processOperationId);
|
|
|
- if(ObjectUtil.isEmpty(two)){
|
|
|
+ if (ObjectUtil.isEmpty(two)) {
|
|
|
return;
|
|
|
}
|
|
|
//更新坯料计划的生产状态
|
|
@@ -194,12 +196,41 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
apsBlankOrderDo.setProductstatus(two.getProductionStatus());
|
|
|
apsBlankOrderService.updateById(apsBlankOrderDo);
|
|
|
|
|
|
+ //更新订单
|
|
|
+ updateOrder(two.getBlankId());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ private void updateOrder(String blankId) {
|
|
|
+ //查询此坯料计划的所属订单的最小生产状态和订单ID
|
|
|
+ CommonUpdateProductionStatusReq three = this.baseMapper.selectBlankMinStatus(blankId);
|
|
|
+ if (ObjectUtil.isEmpty(three)) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ //更新订单
|
|
|
+ ApsProductionOrderDo apsProductionOrderDo = new ApsProductionOrderDo();
|
|
|
+ apsProductionOrderDo.setId(three.getOrderId());
|
|
|
+ apsProductionOrderDo.setProductionstatus(three.getProductionStatus());
|
|
|
+ if (three.getProductionStatus().equals("10")) {
|
|
|
+ apsProductionOrderDo.setSchedulstatus("待排程");
|
|
|
+ }
|
|
|
+ if (three.getProductionStatus().equals("20")) {
|
|
|
+ apsProductionOrderDo.setSchedulstatus("待发布");
|
|
|
+ }
|
|
|
+ if ("30,40,50".contains(three.getProductionStatus())) {
|
|
|
+ apsProductionOrderDo.setSchedulstatus("已发布");
|
|
|
+ }
|
|
|
+ apsProductionOrderService.updateById(apsProductionOrderDo);
|
|
|
+
|
|
|
//更新产品明细的生产状态
|
|
|
- //查询订单的所有产品明细
|
|
|
//订单ID
|
|
|
- String orderId = two.getOrderId();
|
|
|
+ String orderId = three.getOrderId();
|
|
|
+ updateProductDetail(orderId);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void updateProductDetail(String orderId) {
|
|
|
List<ApsProductDetailDo> list = apsProductDetailService.list(new QueryWrapper<ApsProductDetailDo>().lambda().eq(ApsProductDetailDo::getMainid, orderId));
|
|
|
- if(list.size() > 0) {
|
|
|
+ if (list.size() > 0) {
|
|
|
List<String> productIdList = list.stream().map(ApsProductDetailDo::getId).collect(Collectors.toList());
|
|
|
//查找产品的最新坯料状态
|
|
|
List<ApsProductDetailDo> productDetailDoList = apsProcessOperationProcessEquDao.selectNeedUpdate(productIdList);
|
|
@@ -210,9 +241,9 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
//对比当前生产状态判断是否需要更新
|
|
|
for (ApsProductDetailDo productDetailDo : list) {
|
|
|
//同一产品明细
|
|
|
- if(apsProductDetailDo.getId().equals(productDetailDo.getId())){
|
|
|
+ if (apsProductDetailDo.getId().equals(productDetailDo.getId())) {
|
|
|
//比较状态
|
|
|
- if(!apsProductDetailDo.getProductstatus().equals(productDetailDo.getProductstatus())){
|
|
|
+ if (!apsProductDetailDo.getProductstatus().equals(productDetailDo.getProductstatus())) {
|
|
|
//不相等则更新
|
|
|
ApsProductDetailDo needUpdate = new ApsProductDetailDo();
|
|
|
needUpdate.setId(apsProductDetailDo.getId());
|
|
@@ -224,35 +255,10 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- if(needUpdateList.size()>0){
|
|
|
+ if (needUpdateList.size() > 0) {
|
|
|
apsProductDetailService.updateBatchById(needUpdateList);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- //更新订单
|
|
|
- updateOrder(two.getBlankId());
|
|
|
- }
|
|
|
-
|
|
|
- private void updateOrder(String blankId) {
|
|
|
- //查询此坯料计划的所属订单的最小生产状态和订单ID
|
|
|
- CommonUpdateProductionStatusReq three = this.baseMapper.selectBlankMinStatus(blankId);
|
|
|
- if(ObjectUtil.isEmpty(three)){
|
|
|
- return;
|
|
|
- }
|
|
|
- //更新订单
|
|
|
- ApsProductionOrderDo apsProductionOrderDo = new ApsProductionOrderDo();
|
|
|
- apsProductionOrderDo.setId(three.getOrderId());
|
|
|
- apsProductionOrderDo.setProductionstatus(three.getProductionStatus());
|
|
|
- if(three.getProductionStatus().equals("10")){
|
|
|
- apsProductionOrderDo.setSchedulstatus("待排程");
|
|
|
- }
|
|
|
- if(three.getProductionStatus().equals("20")){
|
|
|
- apsProductionOrderDo.setSchedulstatus("待发布");
|
|
|
- }
|
|
|
- if("30,40,50".contains(three.getProductionStatus())){
|
|
|
- apsProductionOrderDo.setSchedulstatus("已发布");
|
|
|
- }
|
|
|
- apsProductionOrderService.updateById(apsProductionOrderDo);
|
|
|
}
|
|
|
}
|
|
|
|