diff --git a/src/main/java/com/xujie/sys/modules/sampletracking/controller/SampleProofTrackingController.java b/src/main/java/com/xujie/sys/modules/sampletracking/controller/SampleProofTrackingController.java index f7dc8721..195ed800 100644 --- a/src/main/java/com/xujie/sys/modules/sampletracking/controller/SampleProofTrackingController.java +++ b/src/main/java/com/xujie/sys/modules/sampletracking/controller/SampleProofTrackingController.java @@ -100,8 +100,8 @@ public class SampleProofTrackingController { sampleProofTrackingService.oneKeyUpdateProjectPartAndTracking(data); return R.ok("项目/物料/打样修改成功"); } catch (Exception e) { - log.error("一键修改项目/物料/打样失败: {}", e.getMessage(), e); - return R.error("一键修改项目/物料/打样失败: " + e.getMessage()); + log.error("修改项目/物料/打样失败: {}", e.getMessage(), e); + return R.error("修改项目/物料/打样失败: " + e.getMessage()); } } diff --git a/src/main/java/com/xujie/sys/modules/sampletracking/service/impl/SampleProofTrackingServiceImpl.java b/src/main/java/com/xujie/sys/modules/sampletracking/service/impl/SampleProofTrackingServiceImpl.java index 04e61fcc..4274cbd7 100644 --- a/src/main/java/com/xujie/sys/modules/sampletracking/service/impl/SampleProofTrackingServiceImpl.java +++ b/src/main/java/com/xujie/sys/modules/sampletracking/service/impl/SampleProofTrackingServiceImpl.java @@ -15,8 +15,8 @@ import com.xujie.sys.modules.sampletracking.data.ProofTrackingProcessLogData; import com.xujie.sys.modules.sampletracking.data.ProofTrackingProcessUpdateData; import com.xujie.sys.modules.sampletracking.data.ProofTrackingProcessValueData; import com.xujie.sys.modules.sampletracking.mapper.SampleProofTrackingMapper; +import com.xujie.sys.modules.sampletracking.mapper.SampleTrackingMapper; import com.xujie.sys.modules.sampletracking.service.SampleProofTrackingService; -import com.xujie.sys.modules.sampletracking.service.SampleTrackingService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -54,7 +54,7 @@ public class SampleProofTrackingServiceImpl implements SampleProofTrackingServic private SampleProofTrackingMapper sampleProofTrackingMapper; @Autowired - private SampleTrackingService sampleTrackingService; + private SampleTrackingMapper sampleTrackingMapper; @Override public PageUtils searchProofTracking(ProofTrackingData data) { @@ -347,6 +347,7 @@ public class SampleProofTrackingServiceImpl implements SampleProofTrackingServic if (data.getProjectId() == null || data.getProjectPartId() == null || data.getTrackingId() == null) { throw new RuntimeException("项目/物料/打样记录ID缺失,无法修改"); } + validateOneKeyUpdateData(data); // 单次提交时将项目、物料、打样更新放在同一事务内,任一失败即整体回滚。 String operateUser = resolveOperateUser(data.getUpdateBy(), data.getCreateBy()); ProofTrackingData oldData = sampleProofTrackingMapper.selectTrackingForProofing(data.getTrackingId()); @@ -375,7 +376,7 @@ public class SampleProofTrackingServiceImpl implements SampleProofTrackingServic projectInfoData.setStatus(isBlank(data.getProjectStatus()) ? "草稿" : data.getProjectStatus().trim()); projectInfoData.setPriority(data.getPriorityLevel()); projectInfoData.setUpdateBy(operateUser); - sampleTrackingService.updateProjectInfoTracking(projectInfoData); + sampleTrackingMapper.updateProjectInfoTracking(projectInfoData); ProjectPartTrackingData projectPartData = new ProjectPartTrackingData(); BeanUtils.copyProperties(data, projectPartData); @@ -391,7 +392,7 @@ public class SampleProofTrackingServiceImpl implements SampleProofTrackingServic projectPartData.setStatus(isBlank(data.getPartStatus()) ? "草稿" : data.getPartStatus().trim()); projectPartData.setPriority(data.getPriorityLevel()); projectPartData.setUpdateBy(operateUser); - sampleTrackingService.updateProjectPartTracking(projectPartData); + sampleTrackingMapper.updateProjectPartTracking(projectPartData); updateTrackingBaseInfo(data, oldData, operateUser); } @@ -771,6 +772,25 @@ public class SampleProofTrackingServiceImpl implements SampleProofTrackingServic } } + private void validateOneKeyUpdateData(ProofTrackingData data) { + // 业务要求:一键修改仅强制校验料号描述、PjM、Engineer,其它字段允许为空。 + if (isBlank(data.getPartDesc())) { + throw new RuntimeException("料号描述不能为空"); + } + if (isBlank(data.getProjectOwner())) { + throw new RuntimeException("PjM不能为空"); + } + if (isBlank(data.getEngineer())) { + throw new RuntimeException("Engineer不能为空"); + } + data.setPartDesc(data.getPartDesc().trim()); + data.setProjectOwner(data.getProjectOwner().trim()); + data.setEngineer(data.getEngineer().trim()); + if (isBlank(data.getTracker())) { + data.setTracker(data.getProjectOwner()); + } + } + private void normalizeProcessStatus(ProofTrackingData data) { data.setRawMaterialStatus(isBlank(data.getRawMaterialStatus()) ? "未完成" : data.getRawMaterialStatus()); data.setCylinderCutterStatus(isBlank(data.getCylinderCutterStatus()) ? "未完成" : data.getCylinderCutterStatus());