|
@@ -1,18 +1,28 @@
|
|
|
package com.rongwei.bscommon.sys.service.impl;
|
|
|
|
|
|
+import cn.hutool.core.util.ObjectUtil;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.google.common.collect.Lists;
|
|
|
import com.rongwei.bscommon.sys.dao.ApsProcessOperationDao;
|
|
|
import com.rongwei.bscommon.sys.dao.ApsProcessOperationProcessEquDao;
|
|
|
+import com.rongwei.bscommon.sys.service.ApsBlankOrderService;
|
|
|
import com.rongwei.bscommon.sys.service.ApsProcessOperationProcessEquService;
|
|
|
+import com.rongwei.bscommon.sys.service.ApsProcessOperationService;
|
|
|
+import com.rongwei.bscommon.sys.service.ApsProductionOrderService;
|
|
|
+import com.rongwei.bsentity.domain.ApsBlankOrderDo;
|
|
|
+import com.rongwei.bsentity.domain.ApsProcessOperationDo;
|
|
|
import com.rongwei.bsentity.domain.ApsProcessOperationProcessEquDo;
|
|
|
|
|
|
+import com.rongwei.bsentity.domain.ApsProductionOrderDo;
|
|
|
+import com.rongwei.bsentity.vo.CommonUpdateProductionStatusReq;
|
|
|
import com.rongwei.bsentity.vo.ProcessIdRelationVo;
|
|
|
+import com.rongwei.rwcommon.base.R;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import javax.annotation.Resource;
|
|
|
import java.util.List;
|
|
|
|
|
|
/**
|
|
@@ -20,10 +30,16 @@ import java.util.List;
|
|
|
*/
|
|
|
@Service
|
|
|
public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsProcessOperationProcessEquDao, ApsProcessOperationProcessEquDo>
|
|
|
-implements ApsProcessOperationProcessEquService {
|
|
|
+ implements ApsProcessOperationProcessEquService {
|
|
|
private final Logger log = LoggerFactory.getLogger(this.getClass().getName());
|
|
|
@Autowired
|
|
|
private ApsProcessOperationProcessEquDao apsProcessOperationProcessEquDao;
|
|
|
+ @Autowired
|
|
|
+ private ApsProcessOperationService apsProcessOperationService;
|
|
|
+ @Autowired
|
|
|
+ private ApsBlankOrderService apsBlankOrderService;
|
|
|
+ @Autowired
|
|
|
+ private ApsProductionOrderService apsProductionOrderService;
|
|
|
|
|
|
/**
|
|
|
* 更新工序的待加工批次号信息
|
|
@@ -46,25 +62,91 @@ implements ApsProcessOperationProcessEquService {
|
|
|
* @param processOperationId 当前工序的ID
|
|
|
*/
|
|
|
public void updateAboutCheckBatchNum(String id, Integer currentCheckNum, Integer qualifiedQuantity,
|
|
|
- Integer unqualifiedQuantity, String previousprocessid,String processOperationId) {
|
|
|
+ Integer unqualifiedQuantity, String previousprocessid, String processOperationId) {
|
|
|
apsProcessOperationProcessEquDao.updateAboutCheckBatchNum(id, currentCheckNum, qualifiedQuantity,
|
|
|
unqualifiedQuantity, previousprocessid, processOperationId);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 更新后续工序的
|
|
|
+ *
|
|
|
* @param updateIds
|
|
|
*/
|
|
|
public void updateAboutStateByProcessId(List<ProcessIdRelationVo> updateIds) {
|
|
|
// 防止sql 过长拆分
|
|
|
List<List<ProcessIdRelationVo>> partition = Lists.partition(updateIds, 8);
|
|
|
- partition.forEach(data->{
|
|
|
+ partition.forEach(data -> {
|
|
|
apsProcessOperationProcessEquDao.updateAboutStateByProcessId(data);
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
+ @Override
|
|
|
+ public R updateProductionStatus(CommonUpdateProductionStatusReq request) {
|
|
|
+
|
|
|
+ //根据粒度顺序
|
|
|
+ if (ObjectUtil.isNotEmpty(request.getProcessOperationEquId())) {
|
|
|
+ updateProcess(request.getProcessOperationId());
|
|
|
+ }
|
|
|
+ if (ObjectUtil.isNotEmpty(request.getProcessOperationId())) {
|
|
|
+ updateBlank(request.getProcessOperationId());
|
|
|
+ }
|
|
|
+ if (ObjectUtil.isNotEmpty(request.getBlankId())) {
|
|
|
+ updateOrder(request.getBlankId());
|
|
|
+ }
|
|
|
+// if (ObjectUtil.isNotEmpty(request.getOrderId())) {
|
|
|
+// return R.ok();
|
|
|
+// }
|
|
|
+ return R.ok();
|
|
|
+ }
|
|
|
+
|
|
|
+ private void updateProcess(String processOperationId) {
|
|
|
+ //查询所有子表明细的最小生产状态和工序作业ID
|
|
|
+ CommonUpdateProductionStatusReq one = this.baseMapper.selectEquMinStatus(processOperationId);
|
|
|
+ if(ObjectUtil.isEmpty(one)){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ //工序作业ID
|
|
|
+ String processId = one.getProcessOperationId();
|
|
|
+ //更新工序作业的生产状态
|
|
|
+ ApsProcessOperationDo apsProcessOperationDo = new ApsProcessOperationDo();
|
|
|
+ apsProcessOperationDo.setId(processId);
|
|
|
+ apsProcessOperationDo.setProcessstatus(one.getProductionStatus());
|
|
|
+ apsProcessOperationService.updateById(apsProcessOperationDo);
|
|
|
+
|
|
|
+ //更新坯料计划
|
|
|
+ updateBlank(one.getProcessOperationId());
|
|
|
+ }
|
|
|
+
|
|
|
+ private void updateBlank(String processOperationId) {
|
|
|
+ //查询此工序作业的所属坯料计划的最小生产状态和坯料计划ID
|
|
|
+ CommonUpdateProductionStatusReq two = this.baseMapper.selectProcessMinStatus(processOperationId);
|
|
|
+ if(ObjectUtil.isEmpty(two)){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ //更新坯料计划的生产状态
|
|
|
+ ApsBlankOrderDo apsBlankOrderDo = new ApsBlankOrderDo();
|
|
|
+ apsBlankOrderDo.setId(two.getBlankId());
|
|
|
+ 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());
|
|
|
+ apsProductionOrderService.updateById(apsProductionOrderDo);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|