From 43e8d5f5bf75fe6c9acaa3de38cbdd3008a46db9 Mon Sep 17 00:00:00 2001 From: zhangxuanming <2260476558@qq.com> Date: Thu, 19 Dec 2024 18:10:01 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E5=B7=A5=E5=BA=8F=E6=B5=81?= =?UTF-8?q?=E7=A8=8B=E7=BC=96=E8=BE=91=E2=80=9C=E5=BA=8F=E5=8F=B7=E2=80=9D?= =?UTF-8?q?=E5=AF=BC=E8=87=B4=E4=B8=8B=E4=B8=80=E9=81=93=E5=B7=A5=E5=BA=8F?= =?UTF-8?q?=E5=9B=9E=E6=98=BE=E5=BC=82=E5=B8=B8=E9=97=AE=E9=A2=98=E8=A7=A3?= =?UTF-8?q?=E5=86=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ProRouteProcessController.java | 53 ++++++-------- .../mes/pro/mapper/ProRouteProcessMapper.java | 2 +- .../pro/service/IProRouteProcessService.java | 3 + .../impl/ProRouteProcessServiceImpl.java | 70 ++++++++++++++++--- 4 files changed, 85 insertions(+), 43 deletions(-) diff --git a/ktg-mes/src/main/java/com/ktg/mes/pro/controller/ProRouteProcessController.java b/ktg-mes/src/main/java/com/ktg/mes/pro/controller/ProRouteProcessController.java index 215ef4a..815a65d 100644 --- a/ktg-mes/src/main/java/com/ktg/mes/pro/controller/ProRouteProcessController.java +++ b/ktg-mes/src/main/java/com/ktg/mes/pro/controller/ProRouteProcessController.java @@ -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)); } /** diff --git a/ktg-mes/src/main/java/com/ktg/mes/pro/mapper/ProRouteProcessMapper.java b/ktg-mes/src/main/java/com/ktg/mes/pro/mapper/ProRouteProcessMapper.java index 3e13b55..c86d759 100644 --- a/ktg-mes/src/main/java/com/ktg/mes/pro/mapper/ProRouteProcessMapper.java +++ b/ktg-mes/src/main/java/com/ktg/mes/pro/mapper/ProRouteProcessMapper.java @@ -89,7 +89,7 @@ public interface ProRouteProcessMapper */ List selectByRouteId(Long routeId); - void updateBatch(@Param("entity") List list); + void updateBatch(@Param("list") List list); List selectByProcessIds(@Param("entity") Long[] processIds); } diff --git a/ktg-mes/src/main/java/com/ktg/mes/pro/service/IProRouteProcessService.java b/ktg-mes/src/main/java/com/ktg/mes/pro/service/IProRouteProcessService.java index e6083e0..c36dca7 100644 --- a/ktg-mes/src/main/java/com/ktg/mes/pro/service/IProRouteProcessService.java +++ b/ktg-mes/src/main/java/com/ktg/mes/pro/service/IProRouteProcessService.java @@ -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 selectByProcessIds(Long[] processIds); + + AjaxResult editProRouteProcess(ProRouteProcess proRouteProcess); } diff --git a/ktg-mes/src/main/java/com/ktg/mes/pro/service/impl/ProRouteProcessServiceImpl.java b/ktg-mes/src/main/java/com/ktg/mes/pro/service/impl/ProRouteProcessServiceImpl.java index 0864b37..7624a02 100644 --- a/ktg-mes/src/main/java/com/ktg/mes/pro/service/impl/ProRouteProcessServiceImpl.java +++ b/ktg-mes/src/main/java/com/ktg/mes/pro/service/impl/ProRouteProcessServiceImpl.java @@ -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 list = proRouteProcessMapper.selectByRouteId(routeId); if (list != null && list.size() > 0) { + List 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 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 list = proRouteProcessMapper.selectByRouteId(proRouteProcess.getRouteId()); + if (list != null && list.size() > 0) { + List 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); + } }