|
|
@ -102,27 +102,54 @@ public class ErfExpApplyServiceImpl extends ServiceImpl<ErfExpApplyMapper, ErfEx |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public String saveExpApply(ErfExpApplyData data) { |
|
|
public String saveExpApply(ErfExpApplyData data) { |
|
|
|
|
|
if (data.getApplyNo() == null || data.getApplyNo().trim().isEmpty()) { |
|
|
|
|
|
throw new XJException("请输入试验单号"); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
String newApplyNo = data.getApplyNo().trim(); |
|
|
|
|
|
String originalApplyNo = data.getOriginalApplyNo(); |
|
|
|
|
|
boolean isNew = (originalApplyNo == null || originalApplyNo.trim().isEmpty()); |
|
|
|
|
|
|
|
|
ErfExpApply entity = new ErfExpApply(); |
|
|
ErfExpApply entity = new ErfExpApply(); |
|
|
BeanUtils.copyProperties(data, entity); |
|
|
BeanUtils.copyProperties(data, entity); |
|
|
|
|
|
entity.setApplyNo(newApplyNo); |
|
|
|
|
|
|
|
|
if (data.getApplyNo() == null || data.getApplyNo().isEmpty()) { |
|
|
|
|
|
// 新增 - 生成申请单号(createTime和updateTime由MyBatis-Plus自动填充) |
|
|
|
|
|
String applyNo = generateApplyNo(data.getBuNo().split("-").length>1?data.getBuNo().split("-")[1]:data.getBuNo()); |
|
|
|
|
|
entity.setApplyNo(applyNo); |
|
|
|
|
|
|
|
|
if (isNew) { |
|
|
|
|
|
// 新增 |
|
|
entity.setStatus("草稿"); |
|
|
entity.setStatus("草稿"); |
|
|
entity.setCreateTime(new Date()); |
|
|
entity.setCreateTime(new Date()); |
|
|
entity.setUpdateTime(new Date()); |
|
|
entity.setUpdateTime(new Date()); |
|
|
String site = erfExpApplyMapper.getSiteByBu(data.getBuNo()); |
|
|
String site = erfExpApplyMapper.getSiteByBu(data.getBuNo()); |
|
|
entity.setSite(site); |
|
|
entity.setSite(site); |
|
|
this.save(entity); |
|
|
this.save(entity); |
|
|
log.info("新增工程实验申请单: {}", applyNo); |
|
|
|
|
|
return applyNo; |
|
|
|
|
|
|
|
|
log.info("新增工程实验申请单: {}", newApplyNo); |
|
|
} else { |
|
|
} else { |
|
|
|
|
|
// 修改 - 通过原始单号查找记录 |
|
|
|
|
|
originalApplyNo = originalApplyNo.trim(); |
|
|
|
|
|
ErfExpApply existing = this.getById(originalApplyNo); |
|
|
|
|
|
if (existing == null) { |
|
|
|
|
|
throw new XJException("申请单不存在: " + originalApplyNo); |
|
|
|
|
|
} |
|
|
entity.setUpdateTime(new Date()); |
|
|
entity.setUpdateTime(new Date()); |
|
|
|
|
|
if (!newApplyNo.equals(originalApplyNo)) { |
|
|
|
|
|
// 试验单号发生变更: |
|
|
|
|
|
// 第一步:级联更新所有关联表(Druid防注入不允许多语句,逐条执行) |
|
|
|
|
|
log.info("试验单号变更: {} -> {}", originalApplyNo, newApplyNo); |
|
|
|
|
|
erfExpApplyMapper.updateFlowInstanceApplyNo(originalApplyNo, newApplyNo); |
|
|
|
|
|
erfExpApplyMapper.updateFlowNodeInstanceApplyNo(originalApplyNo, newApplyNo); |
|
|
|
|
|
erfExpApplyMapper.updateFlowApproveLogApplyNo(originalApplyNo, newApplyNo); |
|
|
|
|
|
erfExpApplyMapper.updateTriConfirmApplyNo(originalApplyNo, newApplyNo); |
|
|
|
|
|
erfExpApplyMapper.updateTriConfirmDetailApplyNo(originalApplyNo, newApplyNo); |
|
|
|
|
|
erfExpApplyMapper.updateRawMaterialApplyNo(originalApplyNo, newApplyNo); |
|
|
|
|
|
erfExpApplyMapper.updateOssApplyNo(originalApplyNo, newApplyNo); |
|
|
|
|
|
// 第二步:更新主表主键(用旧值定位,改为新值) |
|
|
|
|
|
erfExpApplyMapper.updateMainApplyNo(originalApplyNo, newApplyNo); |
|
|
|
|
|
} |
|
|
|
|
|
// 第三步:更新主表其他字段(此时主键已是新值,updateById可正确定位) |
|
|
this.updateById(entity); |
|
|
this.updateById(entity); |
|
|
log.info("修改工程实验申请单: {}", entity.getApplyNo()); |
|
|
|
|
|
return entity.getApplyNo(); |
|
|
|
|
|
|
|
|
log.info("修改工程实验申请单: {} (原单号: {})", newApplyNo, originalApplyNo); |
|
|
} |
|
|
} |
|
|
|
|
|
return newApplyNo; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
@ -1507,12 +1534,12 @@ public class ErfExpApplyServiceImpl extends ServiceImpl<ErfExpApplyMapper, ErfEx |
|
|
return "<table border='1' cellpadding='6' cellspacing='0' " |
|
|
return "<table border='1' cellpadding='6' cellspacing='0' " |
|
|
+ "style='border-collapse:collapse; width:100%; font-size:13px;'>" |
|
|
+ "style='border-collapse:collapse; width:100%; font-size:13px;'>" |
|
|
+ "<thead style='background-color:#2196F3; color:white;'><tr>" |
|
|
+ "<thead style='background-color:#2196F3; color:white;'><tr>" |
|
|
+ "<th>收到邮件日期</th><th>项目号</th><th>实验单号</th><th>项目名称</th>" |
|
|
|
|
|
|
|
|
+ "<th>收到邮件日期</th><th>项目号</th><th>试验单号</th><th>项目名称</th>" |
|
|
+ "<th>安排生产工序</th><th>数量</th><th>备注</th><th>需求日期</th><th>工程师</th>" |
|
|
+ "<th>安排生产工序</th><th>数量</th><th>备注</th><th>需求日期</th><th>工程师</th>" |
|
|
+ "</tr></thead><tbody><tr>" |
|
|
+ "</tr></thead><tbody><tr>" |
|
|
+ "<td>" + todayStr + "</td>" |
|
|
+ "<td>" + todayStr + "</td>" |
|
|
+ "<td>" + (entity.getProjectNo() != null ? entity.getProjectNo() : "") + "</td>" |
|
|
+ "<td>" + (entity.getProjectNo() != null ? entity.getProjectNo() : "") + "</td>" |
|
|
+ "<td>" + (entity.getWorkOrderNo()!=null ? entity.getWorkOrderNo() : "") + "</td>" |
|
|
|
|
|
|
|
|
+ "<td>" + (entity.getApplyNo()!=null ? entity.getApplyNo() : "") + "</td>" |
|
|
+ "<td>" + (entity.getTitle() != null ? entity.getTitle() : "") + "</td>" |
|
|
+ "<td>" + (entity.getTitle() != null ? entity.getTitle() : "") + "</td>" |
|
|
+ "<td>" + (entity.getProcessRequirement() != null ? entity.getProcessRequirement() : "") + "</td>" |
|
|
+ "<td>" + (entity.getProcessRequirement() != null ? entity.getProcessRequirement() : "") + "</td>" |
|
|
+ "<td>" + (entity.getQuantityReq() != null ? entity.getQuantityReq() : "") + "</td>" |
|
|
+ "<td>" + (entity.getQuantityReq() != null ? entity.getQuantityReq() : "") + "</td>" |
|
|
|