|
|
|
@ -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()); |
|
|
|
|