java写一段用于更新某个事务处理应用程序的状态或数据的方法,需求如下 //状态为审核中和审核通过的运输申请单不允许编辑操作 //验证code是否重复 //全量或者增量更新 //修改运输申请单物料子表数据 //查询该运输申请单下所有物料子表并删除,删除后新加 //判断是修改而不是状态更改,负责会误删 //删除之前先把运输申请单物料子表的数量回写加回到发货单物料子表剩余数量中 //将运输申请单物料子表的数量加回到发货单物料子表的剩余数量之中 //删除运输申请单物料子表 //循环写入新数据,并且在相应的发货单物料子表减去相应的数量
时间: 2024-01-13 13:05:22 浏览: 33
以下是一个示例方法,根据需求实现了更新某个事务处理应用程序的状态或数据:
```java
public void updateTransApplication(TransApplication application) throws Exception {
//状态为审核中和审核通过的运输申请单不允许编辑操作
if (application.getStatus() == ApplicationStatus.AUDITING || application.getStatus() == ApplicationStatus.PASSED) {
throw new Exception("运输申请单当前状态不允许编辑");
}
//验证code是否重复
if (checkCodeDuplicate(application.getCode())) {
throw new Exception("运输申请单编码已存在");
}
//全量或者增量更新
if (isFullUpdate(application)) {
//全量更新
updateApplication(application);
} else {
//增量更新
incrementUpdateApplication(application);
}
//修改运输申请单物料子表数据
updateMaterialSubTable(application);
//查询该运输申请单下所有物料子表并删除,删除后新加
deleteAndAddMaterialSubTable(application);
//判断是修改而不是状态更改,负责会误删
if (isStatusChange(application)) {
throw new Exception("运输申请单状态已更改,无法执行删除操作");
}
//删除之前先把运输申请单物料子表的数量回写加回到发货单物料子表剩余数量中
writeBackMaterialSubTable(application);
//将运输申请单物料子表的数量加回到发货单物料子表的剩余数量之中
addBackMaterialSubTable(application);
//删除运输申请单物料子表
deleteMaterialSubTable(application);
//循环写入新数据,并且在相应的发货单物料子表减去相应的数量
writeAndReduceMaterialSubTable(application);
}
```
这段代码根据需求实现了各个步骤,包括状态判断、重复编码验证、全量或增量更新、修改物料子表数据、删除和新加物料子表、状态判断、回写物料子表数量、删除物料子表和写入新数据等操作。在具体实现时,需要根据具体业务逻辑进行相应的修改。