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