|
|
|
@ -1,6 +1,8 @@
|
|
|
|
|
package com.chanko.yunxi.mes.module.biz.service.process;
|
|
|
|
|
|
|
|
|
|
import com.chanko.yunxi.mes.module.biz.dal.dataobject.material.MaterialDO;
|
|
|
|
|
import com.chanko.yunxi.mes.module.biz.dal.dataobject.processdetail.ProcessDetailDO;
|
|
|
|
|
import com.chanko.yunxi.mes.module.biz.dal.mysql.material.MaterialMapper;
|
|
|
|
|
import com.chanko.yunxi.mes.module.biz.dal.mysql.processdetail.ProcessDetailMapper;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
@ -34,6 +36,9 @@ public class ProcessServiceImpl implements ProcessService {
|
|
|
|
|
@Resource
|
|
|
|
|
private ProcessDetailMapper processDetailMapper;
|
|
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
private MaterialMapper materialMapper;
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
|
public Long createProcess(ProcessSaveReqVO createReqVO) {
|
|
|
|
@ -93,8 +98,14 @@ public class ProcessServiceImpl implements ProcessService {
|
|
|
|
|
// 产品处理
|
|
|
|
|
if(createReqVO.getMatItemDOList() != null){
|
|
|
|
|
for(MatListReqVO item : createReqVO.getMatItemDOList()){
|
|
|
|
|
MaterialDO materialDO = materialMapper.selectOne(MaterialDO::getId,item.getMaterialId());
|
|
|
|
|
if(item.getDeleteFlag().equals(1)){
|
|
|
|
|
processDetailMapper.deleteById(item.getId());
|
|
|
|
|
if(item.getId()>0 && materialDO != null){
|
|
|
|
|
// 存在物料与工序绑定数据时,删除物料上的工序
|
|
|
|
|
materialDO.setProcessId(null);
|
|
|
|
|
materialMapper.updateById(materialDO);
|
|
|
|
|
}
|
|
|
|
|
}else{
|
|
|
|
|
ProcessDetailDO processDetailDO = new ProcessDetailDO();
|
|
|
|
|
if(item.getId()>0){
|
|
|
|
@ -109,6 +120,18 @@ public class ProcessServiceImpl implements ProcessService {
|
|
|
|
|
processDetailDO.setMaterialId(item.getMaterialId());
|
|
|
|
|
processDetailMapper.insert(processDetailDO);
|
|
|
|
|
}
|
|
|
|
|
// 同步物料上的工序id
|
|
|
|
|
if(materialDO != null) {
|
|
|
|
|
materialDO.setProcessId(processId);
|
|
|
|
|
materialMapper.updateById(materialDO);
|
|
|
|
|
}
|
|
|
|
|
// 一个物料只能有一个工序
|
|
|
|
|
List<ProcessDetailDO> processDetailDOs = processDetailMapper.selectList(ProcessDetailDO::getMaterialId,item.getMaterialId());
|
|
|
|
|
processDetailDOs.forEach(map -> {
|
|
|
|
|
if(!map.getProcessId().equals(processId)){
|
|
|
|
|
processDetailMapper.deleteById(map);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|