Browse Source

2026-02-27

询价申请、测试申请、打样申请以及刀具申请记录OA流程放重复提交
master
fengyuan_yang 17 hours ago
parent
commit
1153fee4fc
  1. 12
      src/main/java/com/spring/modules/Tooling/service/impl/ProjectToolingApplyServiceImpl.java
  2. 18
      src/main/java/com/spring/modules/proofing/service/impl/ProofingInformationServiceImpl.java
  3. 18
      src/main/java/com/spring/modules/quotation/service/impl/QuotationInformationServiceImpl.java
  4. 18
      src/main/java/com/spring/modules/test/service/impl/TestInformationServiceImpl.java

12
src/main/java/com/spring/modules/Tooling/service/impl/ProjectToolingApplyServiceImpl.java

@ -328,6 +328,18 @@ public class ProjectToolingApplyServiceImpl implements ProjectToolingApplyServic
@Override
public void submitChange(ProjectToolApplyDaTa data) {
// 防并发重复提交先查当前状态只有"审批中"才允许继续
PlmProjectToolApplyHeaderData checkData = new PlmProjectToolApplyHeaderData();
checkData.setSite(data.getSite());
checkData.setApplyNo(data.getApplyNo());
PlmProjectToolApplyHeaderData current = projectToolingApplyMapper.checkToolApplyHeaderData(checkData);
if (current == null) {
throw new RuntimeException("未找到单据,applyNo: " + data.getApplyNo());
}
if (!"审批中".equals(current.getStatus())) {
throw new RuntimeException("单据状态已变更(当前状态:" + current.getStatus() + "),请刷新页面后重试!");
}
// 保存修改信息
projectToolingApplyMapper.updateApplyHeader(data);
for (int i = 0; i < data.getDetailList().size() ; i++) {

18
src/main/java/com/spring/modules/proofing/service/impl/ProofingInformationServiceImpl.java

@ -602,7 +602,23 @@ public class ProofingInformationServiceImpl extends ServiceImpl<ProofingInformat
@Override
@Transactional
public void submitChange(ProofingInformationVo data) {
// 保存修改信息
// 防并发重复提交先查当前状态只有"审批中"才允许继续
ProofingInformationEntity current = baseMapper.selectOne(
new LambdaQueryWrapper<ProofingInformationEntity>()
.eq(ProofingInformationEntity::getSite, data.getSite())
.eq(ProofingInformationEntity::getProofingNo, data.getProofingNo())
);
if (current == null) {
throw new RuntimeException("未找到单据,proofingNo: " + data.getProofingNo());
}
if (!"审批中".equals(current.getProofingStatus())) {
throw new RuntimeException("单据状态已变更(当前状态:" + current.getProofingStatus() + "),请刷新页面后重试!");
}
// 保存修改信息排除状态类字段防止前端脏数据覆盖流程写入的状态
data.setProofingStatus(null);
data.setStepId(null);
data.setUpdateDate(null);
lambdaUpdate().eq(ProofingInformationEntity::getSite, data.getSite()).eq(ProofingInformationEntity::getProofingNo, data.getProofingNo()).update(data);
// 获取提交基础数据
Map<String, String> baseData = changeManagementService.getSubmitBaseData(data.getSite(), data.getUserName(), data.getProofingNo());

18
src/main/java/com/spring/modules/quotation/service/impl/QuotationInformationServiceImpl.java

@ -777,7 +777,23 @@ public class QuotationInformationServiceImpl extends ServiceImpl<QuotationInform
@Override
@Transactional
public void submitChange(QuotationInformationVo data) {
// 更新单据
// 防并发重复提交先查当前状态只有"审批中"才允许继续
QuotationInformationEntity current = quotationInformationMapper.selectOne(
new QueryWrapper<QuotationInformationEntity>()
.eq("site", data.getSite())
.eq("quotation_batch_no", data.getQuotationBatchNo())
);
if (current == null) {
throw new RuntimeException("未找到单据,quotationBatchNo: " + data.getQuotationBatchNo());
}
if (!"审批中".equals(current.getQuotationStatus())) {
throw new RuntimeException("单据状态已变更(当前状态:" + current.getQuotationStatus() + "),请刷新页面后重试!");
}
// 更新单据排除状态类字段防止前端脏数据覆盖流程写入的状态
data.setQuotationStatus(null);
data.setStepId(null);
data.setUpdateDate(null);
lambdaUpdate().eq(QuotationInformationEntity::getSite, data.getSite()).eq(QuotationInformationEntity::getQuotationBatchNo, data.getQuotationBatchNo()).update(data);
// 获取提交基础数据
Map<String, String> baseData = changeManagementService.getSubmitBaseData(data.getSite(), data.getUserName(), data.getQuotationBatchNo());

18
src/main/java/com/spring/modules/test/service/impl/TestInformationServiceImpl.java

@ -348,7 +348,23 @@ public class TestInformationServiceImpl extends ServiceImpl<TestInformationMappe
@Override
@Transactional
public void submitChange(TestInformationVo data) {
// 更新单据
// 防并发重复提交先查当前状态只有"审批中"才允许继续
TestInformationEntity current = testInformationMapper.selectOne(
new QueryWrapper<TestInformationEntity>()
.eq("site", data.getSite())
.eq("test_no", data.getTestNo())
);
if (current == null) {
throw new RuntimeException("未找到单据,test_no: " + data.getTestNo());
}
if (!"审批中".equals(current.getTestStatus())) {
throw new RuntimeException("单据状态已变更(当前状态:" + current.getTestStatus() + "),请刷新页面后重试!");
}
// 更新单据排除状态类字段防止前端脏数据覆盖流程写入的状态
data.setTestStatus(null);
data.setStepId(null);
data.setUpdateDate(null);
lambdaUpdate().eq(TestInformationEntity::getSite, data.getSite()).eq(TestInformationEntity::getTestNo, data.getTestNo()).update(data);
// 获取审批基础数据
Map<String, String> baseData = changeManagementService.getSubmitBaseData(data.getSite(), data.getUserName(), data.getTestNo());

Loading…
Cancel
Save