fix:工序流程编辑“序号”导致下一道工序回显异常问题解决

This commit is contained in:
zhangxuanming 2024-12-19 18:10:01 +08:00
parent b279c8493d
commit 43e8d5f5bf
4 changed files with 85 additions and 43 deletions

View File

@ -156,40 +156,31 @@ public class ProRouteProcessController extends BaseController
@PutMapping
public AjaxResult edit(@RequestBody ProRouteProcess proRouteProcess)
{
if(UserConstants.NOT_UNIQUE.equals(proRouteProcessService.checkOrderNumExists(proRouteProcess))){
return AjaxResult.error("序号已存在!");
}
if(UserConstants.NOT_UNIQUE.equals(proRouteProcessService.checkProcessExists(proRouteProcess))){
return AjaxResult.error("不能重复添加工序!");
}
if(UserConstants.YES.equals(proRouteProcess.getKeyFlag()) && UserConstants.NOT_UNIQUE.equals(proRouteProcessService.checkUpdateFlagUnique(proRouteProcess))){
return AjaxResult.error("当前工艺路线已经指定过关键工序");
}
ProProcess process = proProcessService.selectProProcessByProcessId(proRouteProcess.getProcessId());
proRouteProcess.setProcessCode(process.getProcessCode());
proRouteProcess.setProcessName(process.getProcessName());
return proRouteProcessService.editProRouteProcess(proRouteProcess);
//更新上一个工序的nextProcess
ProRouteProcess preProcess = proRouteProcessService.findPreProcess(proRouteProcess);
if(StringUtils.isNotNull(preProcess)){
preProcess.setNextProcessId(proRouteProcess.getProcessId());
preProcess.setNextProcessCode(proRouteProcess.getProcessCode());
preProcess.setNextProcessName(proRouteProcess.getProcessName());
proRouteProcessService.updateProRouteProcess(preProcess);
}
// ProRouteProcess preProcess = proRouteProcessService.findPreProcess(proRouteProcess);
// if(StringUtils.isNotNull(preProcess)){
// preProcess.setNextProcessId(proRouteProcess.getProcessId());
// preProcess.setNextProcessCode(proRouteProcess.getProcessCode());
// preProcess.setNextProcessName(proRouteProcess.getProcessName());
// proRouteProcessService.updateProRouteProcess(preProcess);
// }
//
// //设置当前工序的nextProcess
// ProRouteProcess nextProcess = proRouteProcessService.findNextProcess(proRouteProcess);
// if(StringUtils.isNotNull(nextProcess)){
// proRouteProcess.setNextProcessId(nextProcess.getProcessId());
// proRouteProcess.setNextProcessCode(nextProcess.getProcessCode());
// proRouteProcess.setNextProcessName(nextProcess.getProcessName());
// }else{
// proRouteProcess.setNextProcessId(0L);
// proRouteProcess.setNextProcessName("");
// }
//设置当前工序的nextProcess
ProRouteProcess nextProcess = proRouteProcessService.findNextProcess(proRouteProcess);
if(StringUtils.isNotNull(nextProcess)){
proRouteProcess.setNextProcessId(nextProcess.getProcessId());
proRouteProcess.setNextProcessCode(nextProcess.getProcessCode());
proRouteProcess.setNextProcessName(nextProcess.getProcessName());
}else{
proRouteProcess.setNextProcessId(0L);
proRouteProcess.setNextProcessName("");
}
return toAjax(proRouteProcessService.updateProRouteProcess(proRouteProcess));
// return toAjax(proRouteProcessService.updateProRouteProcess(proRouteProcess));
}
/**

View File

@ -89,7 +89,7 @@ public interface ProRouteProcessMapper
*/
List<ProRouteProcess> selectByRouteId(Long routeId);
void updateBatch(@Param("entity") List<ProRouteProcess> list);
void updateBatch(@Param("list") List<ProRouteProcess> list);
List<ProRouteProcess> selectByProcessIds(@Param("entity") Long[] processIds);
}

View File

@ -2,6 +2,7 @@ package com.ktg.mes.pro.service;
import java.util.List;
import com.ktg.common.core.domain.AjaxResult;
import com.ktg.mes.pro.domain.ProFeedback;
import com.ktg.mes.pro.domain.ProRouteProcess;
@ -111,4 +112,6 @@ public interface IProRouteProcessService
public int deleteByRouteId(Long routeId);
List<ProRouteProcess> selectByProcessIds(Long[] processIds);
AjaxResult editProRouteProcess(ProRouteProcess proRouteProcess);
}

View File

@ -1,10 +1,12 @@
package com.ktg.mes.pro.service.impl;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
import cn.hutool.core.collection.CollectionUtil;
import com.ktg.common.constant.UserConstants;
import com.ktg.common.core.domain.AjaxResult;
import com.ktg.common.utils.DateUtils;
import com.ktg.common.utils.StringUtils;
import com.ktg.mes.md.domain.MdWorkstation;
@ -13,6 +15,7 @@ import com.ktg.mes.pro.domain.*;
import com.ktg.mes.pro.mapper.ProRouteMapper;
import com.ktg.mes.pro.mapper.ProRouteProductMapper;
import com.ktg.mes.pro.mapper.ProWorkorderMapper;
import com.ktg.mes.pro.service.IProProcessService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ktg.mes.pro.mapper.ProRouteProcessMapper;
@ -41,6 +44,9 @@ public class ProRouteProcessServiceImpl implements IProRouteProcessService
@Autowired
private MdWorkstationMapper mdWorkstationMapper;
@Autowired
private IProProcessService proProcessService;
/**
* 查询工艺组成
*
@ -176,21 +182,22 @@ public class ProRouteProcessServiceImpl implements IProRouteProcessService
int status = proRouteProcessMapper.deleteProRouteProcessByRecordIds(recordIds);
List<ProRouteProcess> list = proRouteProcessMapper.selectByRouteId(routeId);
if (list != null && list.size() > 0) {
List<ProRouteProcess> collect = list.stream().sorted(Comparator.comparing(ProRouteProcess::getOrderNum))
.collect(Collectors.toList());
// 重新生成工序
for (int i = 0; i < list.size(); i++) {
ProRouteProcess proRouteProcess = list.get(i);
if ((i + 1) >= list.size()) {
proRouteProcess.setNextProcessId(0L);
proRouteProcess.setNextProcessName("");
for (int i = 0; i < collect.size(); i++) {
ProRouteProcess item = collect.get(i);
if ((i + 1) >= collect.size()) {
item.setNextProcessId(0L);
item.setNextProcessName("");
} else {
ProRouteProcess next = list.get(i + 1);
proRouteProcess.setNextProcessId(next.getProcessId());
proRouteProcess.setNextProcessCode(next.getProcessCode());
proRouteProcess.setNextProcessName(next.getProcessName());
ProRouteProcess next = collect.get(i + 1);
item.setNextProcessId(next.getProcessId());
item.setNextProcessCode(next.getProcessCode());
item.setNextProcessName(next.getProcessName());
}
proRouteProcessMapper.updateProRouteProcess(item);
}
// 批量更新
proRouteProcessMapper.updateBatch(list);
}
return status;
}
@ -216,4 +223,45 @@ public class ProRouteProcessServiceImpl implements IProRouteProcessService
public List<ProRouteProcess> selectByProcessIds(Long[] processIds) {
return proRouteProcessMapper.selectByProcessIds(processIds);
}
@Override
@Transactional
public AjaxResult editProRouteProcess(ProRouteProcess proRouteProcess) {
if(UserConstants.NOT_UNIQUE.equals(checkOrderNumExists(proRouteProcess))){
return AjaxResult.error("序号已存在!");
}
if(UserConstants.NOT_UNIQUE.equals(checkProcessExists(proRouteProcess))){
return AjaxResult.error("不能重复添加工序!");
}
if(UserConstants.YES.equals(proRouteProcess.getKeyFlag()) && UserConstants.NOT_UNIQUE.equals(checkUpdateFlagUnique(proRouteProcess))){
return AjaxResult.error("当前工艺路线已经指定过关键工序");
}
ProProcess process = proProcessService.selectProProcessByProcessId(proRouteProcess.getProcessId());
proRouteProcess.setProcessCode(process.getProcessCode());
proRouteProcess.setProcessName(process.getProcessName());
// 先更新当前数据
int status = updateProRouteProcess(proRouteProcess);
// 查询所有工艺路线数据
List<ProRouteProcess> list = proRouteProcessMapper.selectByRouteId(proRouteProcess.getRouteId());
if (list != null && list.size() > 0) {
List<ProRouteProcess> collect = list.stream().sorted(Comparator.comparing(ProRouteProcess::getOrderNum))
.collect(Collectors.toList());
// 重新生成工序
for (int i = 0; i < collect.size(); i++) {
ProRouteProcess item = collect.get(i);
if ((i + 1) >= collect.size()) {
item.setNextProcessId(0L);
item.setNextProcessName("");
} else {
ProRouteProcess next = collect.get(i + 1);
item.setNextProcessId(next.getProcessId());
item.setNextProcessCode(next.getProcessCode());
item.setNextProcessName(next.getProcessName());
}
proRouteProcessMapper.updateProRouteProcess(item);
}
}
return AjaxResult.success(status);
}
}