Commit cee29210869b8c6fe0ab621e1d5b6901082dc382

Authored by 谭毅彬
1 parent 82dc69e8

解决事务嵌套问题

Signed-off-by: TanYibin <5491541@qq.com>
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mes/servuce/impl/MesServiceImpl.java
... ... @@ -150,7 +150,11 @@ public class MesServiceImpl implements IMesService {
150 150 if (!success) {
151 151 throw new JeecgBootException("MES下发入库信息,更新入库组盘头失败");
152 152 }
153   - return huahengMultiHandlerService.createReceiptTask(receiptContainerHeader, warehouseCode);
  153 + result = receiptContainerHeaderService.createReceiptTask(receiptContainerHeader, warehouseCode);
  154 + if (!result.isSuccess()) {
  155 + throw new JeecgBootException(result.getMessage());
  156 + }
  157 + return result;
154 158 }
155 159  
156 160 @Override
... ...
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wms/service/WmsServiceImpl.java
... ... @@ -162,7 +162,11 @@ public class WmsServiceImpl implements WmsService {
162 162 if (!success) {
163 163 throw new JeecgBootException("WMS下发入库信息,更新入库组盘头失败");
164 164 }
165   - return huahengMultiHandlerService.createReceiptTask(receiptContainerHeader, warehouseCode);
  165 + result = receiptContainerHeaderService.createReceiptTask(receiptContainerHeader, warehouseCode);
  166 + if (!result.isSuccess()) {
  167 + throw new JeecgBootException(result.getMessage());
  168 + }
  169 + return result;
166 170 }
167 171  
168 172 @Override
... ...
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/framework/service/impl/HuahengMultiHandlerServiceImpl.java
... ... @@ -72,12 +72,10 @@ public class HuahengMultiHandlerServiceImpl extends HuahengBaseController implem
72 72 @Override
73 73 @Transactional(rollbackFor = Exception.class)
74 74 public Result createReceiptTask(ReceiptContainerHeader receiptContainerHeader, String warehouseCode) {
75   - String lockKey = warehouseCode;
76   - Result result = handleMultiProcess("createReceiptTask", lockKey, new MultiProcessListener() {
  75 + Result result = handleMultiProcess("createReceiptTask", warehouseCode, new MultiProcessListener() {
77 76 @Override
78 77 public Result<?> doProcess() {
79   - Result result = receiptContainerHeaderService.createReceiptTask(receiptContainerHeader, warehouseCode);
80   - return result;
  78 + return receiptContainerHeaderService.createReceiptTask(receiptContainerHeader, warehouseCode);
81 79 }
82 80 });
83 81 return result;
... ... @@ -89,8 +87,7 @@ public class HuahengMultiHandlerServiceImpl extends HuahengBaseController implem
89 87 Result result = handleMultiProcess("combination", new MultiProcessListener() {
90 88 @Override
91 89 public Result<?> doProcess() {
92   - Result result = shipmentCombinationService.combination(combinationModel);
93   - return result;
  90 + return shipmentCombinationService.combination(combinationModel);
94 91 }
95 92 });
96 93 return result;
... ...
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/service/impl/ReceiptContainerHeaderServiceImpl.java
... ... @@ -57,26 +57,37 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl&lt;ReceiptContai
57 57  
58 58 @Autowired
59 59 private ReceiptContainerHeaderMapper receiptContainerHeaderMapper;
  60 +
60 61 @Autowired
61 62 private ReceiptContainerDetailMapper receiptContainerDetailMapper;
  63 +
62 64 @Resource
63 65 private IContainerService containerService;
  66 +
64 67 @Resource
65 68 private IReceiptContainerDetailService receiptContainerDetailService;
  69 +
66 70 @Resource
67 71 private ILocationService locationService;
  72 +
68 73 @Resource
69 74 private IReceiptContainerHeaderService receiptContainerHeaderService;
  75 +
70 76 @Resource
71 77 private ITaskHeaderService taskHeaderService;
  78 +
72 79 @Resource
73 80 private ITaskDetailService taskDetailService;
  81 +
74 82 @Resource
75 83 private IReceiptDetailService receiptDetailService;
  84 +
76 85 @Resource
77 86 private IReceiptHeaderService receiptHeaderService;
  87 +
78 88 @Resource
79 89 private IInventoryHeaderService inventoryHeaderService;
  90 +
80 91 @Resource
81 92 private IParameterConfigurationService parameterConfigurationService;
82 93  
... ... @@ -106,7 +117,7 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl&lt;ReceiptContai
106 117 }
107 118  
108 119 @Override
109   - @Transactional(rollbackFor = JeecgBootException.class, propagation = Propagation.REQUIRES_NEW)
  120 + @Transactional
110 121 @OperationLog(bizId = "''", bizType = "'入库单追踪'", tag = "'入库任务生成'", extra = "#extraJsonString1", msg = "'任务ID:' + #taskHeader.getId()",
111 122 condition = "#receiptContainerDetailList.size() > 0", recordReturnValue = true)
112 123 @OperationLog(bizId = "''", bizType = "'任务追踪'", tag = "'入库任务生成'", extra = "#extraJsonString2",
... ... @@ -115,7 +126,7 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl&lt;ReceiptContai
115 126 public Result<TaskHeader> createReceiptTask(ReceiptContainerHeader receiptContainerHeader, String warehouseCode) {
116 127 log.info("开始创建入库任务");
117 128 if (!receiptContainerHeader.getWarehouseCode().equals(warehouseCode)) {
118   - return Result.error("创建入库任务, id:" + receiptContainerHeader.getId() + "的入库组盘不能在" + warehouseCode + "仓库操作");
  129 + throw new JeecgBootException("创建入库任务, id:" + receiptContainerHeader.getId() + "的入库组盘不能在" + warehouseCode + "仓库操作");
119 130 }
120 131 String containerCode = receiptContainerHeader.getContainerCode();
121 132 String fromLocationCode = receiptContainerHeader.getFromLocationCode();
... ... @@ -125,11 +136,11 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl&lt;ReceiptContai
125 136 List<ReceiptContainerDetail> receiptContainerDetailList =
126 137 receiptContainerDetailService.getReceiptContainerDetailListByHeaderId(receiptContainerHeader.getId());
127 138 if (receiptContainerDetailList.size() == 0) {
128   - return Result.error("创建入库任务, id:" + receiptContainerHeader.getId() + "的入库组盘,没有组盘明细,请先组盘!");
  139 + throw new JeecgBootException("创建入库任务, id:" + receiptContainerHeader.getId() + "的入库组盘,没有组盘明细,请先组盘!");
129 140 }
130 141 int receiptContainerStatus = receiptContainerHeader.getStatus();
131 142 if (receiptContainerStatus != QuantityConstant.RECEIPT_CONTAINER_BUILD) {
132   - return Result.error("创建入库任务, 入库组盘状态不是创建状态");
  143 + throw new JeecgBootException("创建入库任务, 入库组盘状态不是创建状态");
133 144 }
134 145 String containerFillStatus = QuantityConstant.STATUS_CONTAINER_FILL_SOME;
135 146 if (!StringUtils.isEmpty(receiptContainerHeader.getContainerFillStatus())) {
... ... @@ -411,30 +422,36 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl&lt;ReceiptContai
411 422 }
412 423  
413 424 @Override
  425 + @Transactional
414 426 public Result cancelReceiving(List<Integer> ids) {
415 427 Result result = null;
416 428 for (Integer id : ids) {
417   - result = cancelReceiving(id);
  429 + result = receiptContainerHeaderService.cancelReceiving(id);
  430 + if (!result.isSuccess()) {
  431 + throw new JeecgBootException(result.getMessage());
  432 + }
418 433 }
419 434 return result;
420 435 }
421 436  
422 437 @Override
  438 + @Transactional
423 439 public boolean updateToPortById(String toPort, int id) {
424 440 ReceiptContainerHeader receiptContainerHeader = new ReceiptContainerHeader();
425 441 receiptContainerHeader.setToPort(toPort);
426 442 receiptContainerHeader.setId(id);
427   - boolean success = updateById(receiptContainerHeader);
  443 + boolean success = receiptContainerHeaderService.updateById(receiptContainerHeader);
428 444 return success;
429 445 }
430 446  
431 447 @Override
  448 + @Transactional
432 449 public boolean updateToPortAndStatus(String toPort, int status, int id) {
433 450 ReceiptContainerHeader receiptContainerHeader = new ReceiptContainerHeader();
434 451 receiptContainerHeader.setToPort(toPort);
435 452 receiptContainerHeader.setStatus(status);
436 453 receiptContainerHeader.setId(id);
437   - boolean success = updateById(receiptContainerHeader);
  454 + boolean success = receiptContainerHeaderService.updateById(receiptContainerHeader);
438 455 return success;
439 456 }
440 457  
... ...
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentCombination/service/impl/ShipmentCombinationServiceImpl.java
... ... @@ -222,7 +222,7 @@ public class ShipmentCombinationServiceImpl implements IShipmentCombinationServi
222 222 combinationModel.setShipQty(inventoryQty);
223 223 shipmentQty = shipmentQty.subtract(inventoryQty);
224 224 }
225   - Result result = huahengMultiHandlerService.combination(combinationModel);
  225 + Result result = shipmentCombinationService.combination(combinationModel);
226 226 if (!result.isSuccess()) {
227 227 throw new JeecgBootException(result.getMessage());
228 228 }
... ...
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java
... ... @@ -867,7 +867,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
867 867 }
868 868  
869 869 @Override
870   - @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW)
  870 + @Transactional
871 871 public Result sendTaskToWcs(Integer taskId) {
872 872 TaskHeader taskHeader = taskHeaderService.getById(taskId);
873 873 if (taskHeader == null) {
... ...