Browse Source

申请单号改为试验单号

试验单号不需要系统自增,由用户手动填写,允许用户修改
新增申请单页面增加申请人的筛选条件
邮件里的试验单号就是系统里的试验单号
ecss-tx
han\hanst 1 month ago
parent
commit
34cd7d1bbd
  1. 7
      src/main/java/com/xujie/sys/modules/erf/data/ErfExpApplyData.java
  2. 17
      src/main/java/com/xujie/sys/modules/erf/mapper/ErfExpApplyMapper.java
  3. 47
      src/main/java/com/xujie/sys/modules/erf/service/impl/ErfExpApplyServiceImpl.java
  4. 32
      src/main/resources/mapper/erf/ErfExpApplyMapper.xml

7
src/main/java/com/xujie/sys/modules/erf/data/ErfExpApplyData.java

@ -20,10 +20,15 @@ public class ErfExpApplyData implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
* 申请单号
* 申请单号试验单号
*/ */
private String applyNo; private String applyNo;
/**
* 原始申请单号编辑时传入用于定位原记录为空表示新增
*/
private String originalApplyNo;
/** /**
* 事业部代码 * 事业部代码
*/ */

17
src/main/java/com/xujie/sys/modules/erf/mapper/ErfExpApplyMapper.java

@ -121,4 +121,21 @@ public interface ErfExpApplyMapper extends BaseMapper<ErfExpApply> {
*/ */
int updateAttachmentWorkOrderNo(@Param("applyNo") String applyNo, int updateAttachmentWorkOrderNo(@Param("applyNo") String applyNo,
@Param("workOrderNo") String workOrderNo); @Param("workOrderNo") String workOrderNo);
/** 更新主表的试验单号(主键变更专用,用旧值定位) */
void updateMainApplyNo(@Param("oldApplyNo") String oldApplyNo, @Param("newApplyNo") String newApplyNo);
void updateFlowInstanceApplyNo(@Param("oldApplyNo") String oldApplyNo, @Param("newApplyNo") String newApplyNo);
void updateFlowNodeInstanceApplyNo(@Param("oldApplyNo") String oldApplyNo, @Param("newApplyNo") String newApplyNo);
void updateFlowApproveLogApplyNo(@Param("oldApplyNo") String oldApplyNo, @Param("newApplyNo") String newApplyNo);
void updateTriConfirmApplyNo(@Param("oldApplyNo") String oldApplyNo, @Param("newApplyNo") String newApplyNo);
void updateTriConfirmDetailApplyNo(@Param("oldApplyNo") String oldApplyNo, @Param("newApplyNo") String newApplyNo);
void updateRawMaterialApplyNo(@Param("oldApplyNo") String oldApplyNo, @Param("newApplyNo") String newApplyNo);
void updateOssApplyNo(@Param("oldApplyNo") String oldApplyNo, @Param("newApplyNo") String newApplyNo);
} }

47
src/main/java/com/xujie/sys/modules/erf/service/impl/ErfExpApplyServiceImpl.java

@ -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>"

32
src/main/resources/mapper/erf/ErfExpApplyMapper.xml

@ -466,4 +466,36 @@
) )
</insert> </insert>
<update id="updateMainApplyNo">
UPDATE erf_exp_apply SET apply_no = #{newApplyNo} WHERE apply_no = #{oldApplyNo}
</update>
<update id="updateFlowInstanceApplyNo">
UPDATE erf_flow_instance SET apply_no = #{newApplyNo} WHERE apply_no = #{oldApplyNo}
</update>
<update id="updateFlowNodeInstanceApplyNo">
UPDATE erf_flow_node_instance SET apply_no = #{newApplyNo} WHERE apply_no = #{oldApplyNo}
</update>
<update id="updateFlowApproveLogApplyNo">
UPDATE erf_flow_approve_log SET apply_no = #{newApplyNo} WHERE apply_no = #{oldApplyNo}
</update>
<update id="updateTriConfirmApplyNo">
UPDATE erf_exp_tri_confirm SET apply_no = #{newApplyNo} WHERE apply_no = #{oldApplyNo}
</update>
<update id="updateTriConfirmDetailApplyNo">
UPDATE erf_exp_tri_confirm_detail SET apply_no = #{newApplyNo} WHERE apply_no = #{oldApplyNo}
</update>
<update id="updateRawMaterialApplyNo">
UPDATE erf_exp_raw_material SET apply_no = #{newApplyNo} WHERE apply_no = #{oldApplyNo}
</update>
<update id="updateOssApplyNo">
UPDATE sys_oss SET order_ref2 = #{newApplyNo} WHERE order_ref2 = #{oldApplyNo} AND order_ref1 = 'ERF'
</update>
</mapper> </mapper>
Loading…
Cancel
Save