Commit 5f7f8a3deb790b87d97f2dd7e5f8207cd5fb69ef

Authored by 肖超群
2 parents 3e08f864 d329f3c7

Merge branch 'develop' of http://www.huahengrobot.com:90/wms/wms4 into develop

huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/operation/service/impl/OperationLogServiceImpl.java
... ... @@ -69,8 +69,11 @@ public class OperationLogServiceImpl extends ServiceImpl<OperationLogMapper, Ope
69 69 String message = "容器编码:{},物料编码:{},出库数量:{}";
70 70 operationLogList.addAll(
71 71 createOperationLogs(logDTO, ShipmentContainerDetail.class, "getShipmentCode", message, "getContainerCode", "getMaterialCode", "getQty"));
  72 + } else if (logDTO.getTag().equals("出库任务生成")) {
  73 + String message = "物料编码:{},出库数量:{}";
  74 + operationLogList.addAll(createOperationLogs(logDTO, ShipmentContainerDetail.class, "getShipmentCode", message, "getMaterialCode", "getQty"));
72 75 } else if (logDTO.getTag().equals("详情出库")) {
73   - String message = "物料编码:{},收货数量:{}";
  76 + String message = "物料编码:{},出库数量:{}";
74 77 operationLogList.addAll(createOperationLogs(logDTO, ShipmentDetail.class, "getShipmentCode", message, "getMaterialCode", "getTaskQty"));
75 78 } else if (logDTO.getTag().equals("详情配盘")) {
76 79 String message = "物料编码:{},数量:{},出库数量:{}";
... ...
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/impl/ReceiptHeaderServiceImpl.java
... ... @@ -146,8 +146,7 @@ public class ReceiptHeaderServiceImpl extends ServiceImpl<ReceiptHeaderMapper, R
146 146 @Override
147 147 @Transactional
148 148 @OperationLog(bizId = "#receiptHeader.getCode()", bizType = "'入库单追踪'", tag = "'入库完成'",
149   - msg = "'上游单号:'+ #receiptHeader.getReferCode() + ',仓库编码:' + #receiptHeader.getWarehouseCode()", condition = "#minStatus == 800 && #maxStatus == 800",
150   - recordReturnValue = true)
  149 + msg = "'上游单号:'+ #receiptHeader.getReferCode() + ',仓库编码:' + #receiptHeader.getWarehouseCode()", condition = "#minStatus == 800", recordReturnValue = true)
151 150 public boolean updateReceiptHeaderStatus(Integer id) {
152 151 LambdaQueryWrapper<ReceiptDetail> receiptDetailLambdaQueryWrapper = Wrappers.lambdaQuery();
153 152 receiptDetailLambdaQueryWrapper.eq(ReceiptDetail::getReceiptId, id);
... ... @@ -178,10 +177,9 @@ public class ReceiptHeaderServiceImpl extends ServiceImpl&lt;ReceiptHeaderMapper, R
178 177 receiptHeader.setFirstStatus(maxStatus);
179 178 receiptHeader.setLastStatus(minStatus);
180 179 if (!receiptHeaderService.updateById(receiptHeader)) {
181   - throw new ServiceException("更新入库单:" + receiptHeader.getCode() + " 状态失败");
  180 + throw new ServiceException("更新入库单:" + receiptHeader.getCode() + " 状态失败");
182 181 }
183 182 LogRecordContext.putVariable("minStatus", minStatus);
184   - LogRecordContext.putVariable("maxStatus", maxStatus);
185 183 LogRecordContext.putVariable("receiptHeader", receiptHeader);
186 184 return true;
187 185 }
... ...
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentCombination/service/impl/ShipmentCombinationServiceImpl.java
... ... @@ -416,6 +416,8 @@ public class ShipmentCombinationServiceImpl implements IShipmentCombinationServi
416 416  
417 417 @Override
418 418 @Transactional(rollbackFor = ServiceException.class)
  419 + @OperationLog(bizId = "''", bizType = "'出库单追踪'", tag = "'出库任务生成'", extra = "#extraJsonString", msg = "'任务ID:' + #taskHeaderId + ',目标出入口:' + #shipmentContainerHeader.getToPort()",
  420 + condition = "#shipmentContainerDetailList.size() > 0", recordReturnValue = true)
419 421 public Result createShipmentTask(ShipmentContainerHeader shipmentContainerHeader, String warehouseCode, long shipmentOrder, int sequence, int sequenceNumber) {
420 422 Integer preTaskNo = 0;
421 423 if (shipmentContainerHeader == null) {
... ... @@ -436,7 +438,7 @@ public class ShipmentCombinationServiceImpl implements IShipmentCombinationServi
436 438 String toLocationCode = shipmentContainerHeader.getToLocationCode();
437 439 String containerCode = shipmentContainerHeader.getContainerCode();
438 440 if (StringUtils.isEmpty(fromLocationCode)) {
439   - return Result.error("生成出库任务时, 出库组盘头没有起始库位号为空");
  441 + return Result.error("生成出库任务时, 出库组盘头没有起始库位号");
440 442 }
441 443 Location location = locationService.getLocationByCode(fromLocationCode, warehouseCode);
442 444 if (location == null) {
... ... @@ -557,6 +559,9 @@ public class ShipmentCombinationServiceImpl implements IShipmentCombinationServi
557 559 throw new ServiceException("生成出库任务时, 更新库存头失败");
558 560 }
559 561 }
  562 + LogRecordContext.putVariable("taskHeaderId", taskHeaderId);// 操作日志收集
  563 + LogRecordContext.putVariable("shipmentContainerDetailList", shipmentContainerDetailList);// 操作日志收集
  564 + LogRecordContext.putVariable("extraJsonString", JSON.toJSONString(shipmentContainerDetailList));// 操作日志收集
560 565 return Result.OK("生成出库任务成功");
561 566 }
562 567  
... ...
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/service/impl/ShipmentHeaderServiceImpl.java
... ... @@ -34,6 +34,7 @@ import org.springframework.stereotype.Service;
34 34 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
35 35  
36 36 import cn.monitor4all.logRecord.annotation.OperationLog;
  37 +import cn.monitor4all.logRecord.context.LogRecordContext;
37 38  
38 39 import org.springframework.beans.factory.annotation.Autowired;
39 40 import org.springframework.transaction.annotation.Transactional;
... ... @@ -162,6 +163,8 @@ public class ShipmentHeaderServiceImpl extends ServiceImpl&lt;ShipmentHeaderMapper,
162 163 }
163 164  
164 165 @Override
  166 + @OperationLog(bizId = "#shipmentHeader.getCode()", bizType = "'出库单追踪'", tag = "'出库完成'",
  167 + msg = "'上游单号:'+ #shipmentHeader.getReferCode() + ',仓库编码:' + #shipmentHeader.getWarehouseCode()", condition = "#minStatus == 800", recordReturnValue = true)
165 168 public boolean updateShipmentHeaderStatus(Integer shipmentId) {
166 169 List<ShipmentDetail> shipmentDetailList = shipmentDetailService.getShipmentDetailListByShipmentId(shipmentId);
167 170 ShipmentHeader shipmentHeader = shipmentHeaderService.getById(shipmentId);
... ... @@ -171,8 +174,8 @@ public class ShipmentHeaderServiceImpl extends ServiceImpl&lt;ShipmentHeaderMapper,
171 174 int minStatus;
172 175 int maxStatus;
173 176 if (shipmentDetailList.size() == 0) {
174   - minStatus = QuantityConstant.RECEIPT_HEADER_BUILD;
175   - maxStatus = QuantityConstant.RECEIPT_HEADER_BUILD;
  177 + minStatus = QuantityConstant.SHIPMENT_HEADER_BUILD;
  178 + maxStatus = QuantityConstant.SHIPMENT_HEADER_BUILD;
176 179 } else {
177 180 minStatus = shipmentDetailList.get(0).getStatus();
178 181 maxStatus = shipmentDetailList.get(0).getStatus();
... ... @@ -186,11 +189,16 @@ public class ShipmentHeaderServiceImpl extends ServiceImpl&lt;ShipmentHeaderMapper,
186 189 }
187 190 }
188 191 }
189   -
  192 + // 头状态是单据详情中最大的状态
  193 + // 尾状态是单据详情中最小的状态
190 194 shipmentHeader.setFirstStatus(maxStatus);
191 195 shipmentHeader.setLastStatus(minStatus);
192   - boolean result = shipmentHeaderService.updateById(shipmentHeader);
193   - return result;
  196 + if (!shipmentHeaderService.updateById(shipmentHeader)) {
  197 + throw new ServiceException("更新出库单:" + shipmentHeader.getCode() + " 头状态失败");
  198 + }
  199 + LogRecordContext.putVariable("minStatus", minStatus);
  200 + LogRecordContext.putVariable("shipmentHeader", shipmentHeader);
  201 + return true;
194 202 }
195 203  
196 204 @Override
... ...
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/ITaskHeaderService.java
... ... @@ -213,4 +213,24 @@ public interface ITaskHeaderService extends IService&lt;TaskHeader&gt; {
213 213 * @return
214 214 */
215 215 Result handlePickupError(String taskNo);
  216 +
  217 + Result completeReceiptTask(TaskHeader taskHeader);
  218 +
  219 + Result completeShipmentTask(TaskHeader taskHeader);
  220 +
  221 + Result completeCycleCountTask(TaskHeader taskHeader);
  222 +
  223 + Result completeEmptyInTask(TaskHeader taskHeader);
  224 +
  225 + Result completeEmptyOutTask(TaskHeader taskHeader);
  226 +
  227 + Result completeTransferTask(TaskHeader taskHeader);
  228 +
  229 + Result completeCheckOutTask(TaskHeader taskHeader);
  230 +
  231 + Result completeOverStationTask(TaskHeader taskHeader);
  232 +
  233 + Result completeManyEmptyInTask(TaskHeader taskHeader);
  234 +
  235 + Result completeManyEmptyOutTask(TaskHeader taskHeader);
216 236 }
... ...
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java
... ... @@ -865,35 +865,35 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
865 865 // 整盘入库、补充入库
866 866 case QuantityConstant.TASK_TYPE_WHOLERECEIPT:
867 867 case QuantityConstant.TASK_TYPE_SUPPLEMENTRECEIPT:
868   - result = completeReceiptTask(taskHeader);
  868 + result = taskHeaderService.completeReceiptTask(taskHeader);
869 869 break;
870 870 case QuantityConstant.TASK_TYPE_WHOLESHIPMENT:
871 871 case QuantityConstant.TASK_TYPE_SORTINGSHIPMENT:
872   - result = completeShipmentTask(taskHeader);
  872 + result = taskHeaderService.completeShipmentTask(taskHeader);
873 873 break;
874 874 case QuantityConstant.TASK_TYPE_CYCLECOUNT:
875   - result = completeCycleCountTask(taskHeader);
  875 + result = taskHeaderService.completeCycleCountTask(taskHeader);
876 876 break;
877 877 case QuantityConstant.TASK_TYPE_EMPTYRECEIPT:
878   - result = completeEmptyInTask(taskHeader);
  878 + result = taskHeaderService.completeEmptyInTask(taskHeader);
879 879 break;
880 880 case QuantityConstant.TASK_TYPE_EMPTYSHIPMENT:
881   - result = completeEmptyOutTask(taskHeader);
  881 + result = taskHeaderService.completeEmptyOutTask(taskHeader);
882 882 break;
883 883 case QuantityConstant.TASK_TYPE_TRANSFER:
884   - result = completeTransferTask(taskHeader);
  884 + result = taskHeaderService.completeTransferTask(taskHeader);
885 885 break;
886 886 case QuantityConstant.TASK_TYPE_CHECK_OUT:
887   - result = completeCheckOutTask(taskHeader);
  887 + result = taskHeaderService.completeCheckOutTask(taskHeader);
888 888 break;
889 889 case QuantityConstant.TASK_TYPE_OVER_STATION:
890   - result = completeOverStationTask(taskHeader);
  890 + result = taskHeaderService.completeOverStationTask(taskHeader);
891 891 break;
892 892 case QuantityConstant.TASK_TYPE_MANY_EMPTYRECEIPT:
893   - result = completeManyEmptyInTask(taskHeader);
  893 + result = taskHeaderService.completeManyEmptyInTask(taskHeader);
894 894 break;
895 895 case QuantityConstant.TASK_TYPE_MANY_EMPTYSHIPMENT:
896   - result = completeManyEmptyOutTask(taskHeader);
  896 + result = taskHeaderService.completeManyEmptyOutTask(taskHeader);
897 897 break;
898 898 default:
899 899 throw new ServiceException("不支持的任务类型" + taskType);
... ... @@ -1095,6 +1095,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
1095 1095 * @param taskHeader 任务
1096 1096 * @return AjaxResult 完成入库任务结果
1097 1097 */
  1098 + @Override
1098 1099 @Transactional(rollbackFor = Exception.class)
1099 1100 @OperationLog(bizId = "''", bizType = "'入库单追踪'", tag = "'详情入库'", extra = "#extraJsonString", msg = "''", recordReturnValue = true)
1100 1101 public Result completeReceiptTask(TaskHeader taskHeader) {
... ... @@ -1254,7 +1255,9 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
1254 1255 * @param taskHeader 任务
1255 1256 * @return result 完成出库任务
1256 1257 */
  1258 + @Override
1257 1259 @Transactional(rollbackFor = Exception.class)
  1260 + @OperationLog(bizId = "''", bizType = "'出库单追踪'", tag = "'详情出库'", extra = "#extraJsonString", msg = "''", recordReturnValue = true)
1258 1261 public Result completeShipmentTask(TaskHeader taskHeader) {
1259 1262 if (taskHeader == null) {
1260 1263 return Result.error("完成出库任务未找到,执行中止");
... ... @@ -1364,10 +1367,6 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
1364 1367 }
1365 1368 containerStatus = QuantityConstant.STATUS_CONTAINER_SOME;
1366 1369 }
1367   - success = shipmentDetailService.updateBatchById(shipmentDetailList);
1368   - if (!success) {
1369   - throw new ServiceException("完成出库任务,更新出库详情失败");
1370   - }
1371 1370 success = inventoryTransactionService.saveBatch(inventoryTransactionList);
1372 1371 if (!success) {
1373 1372 throw new ServiceException("完成出库任务,保存库存详情失败");
... ... @@ -1416,10 +1415,18 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
1416 1415 throw new ServiceException("合并入库库存失败");
1417 1416 }
1418 1417 }
  1418 + success = shipmentDetailService.updateBatchById(shipmentDetailList);
  1419 + if (!success) {
  1420 + throw new ServiceException("完成出库任务,更新出库详情失败");
  1421 + }
1419 1422 shipmentIdList = shipmentIdList.stream().distinct().collect(Collectors.toList());
1420 1423 for (Integer shipmentId : shipmentIdList) {
1421   - shipmentHeaderService.updateShipmentHeaderStatus(shipmentId);
  1424 + success = shipmentHeaderService.updateShipmentHeaderStatus(shipmentId);
  1425 + if (!success) {
  1426 + throw new ServiceException("完成出库任务,更新出库单头失败");
  1427 + }
1422 1428 }
  1429 + LogRecordContext.putVariable("extraJsonString", JSON.toJSONString(shipmentDetailList));
1423 1430 return Result.ok("完成出库任务");
1424 1431 }
1425 1432  
... ... @@ -1479,6 +1486,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
1479 1486 * @param taskHeader 任务
1480 1487 * @return Result 完成入库任务结果
1481 1488 */
  1489 + @Override
1482 1490 @Transactional(rollbackFor = Exception.class)
1483 1491 public Result completeEmptyInTask(TaskHeader taskHeader) {
1484 1492 String warehouseCode = taskHeader.getWarehouseCode();
... ... @@ -1523,6 +1531,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
1523 1531 * @param taskHeader
1524 1532 * @return
1525 1533 */
  1534 + @Override
1526 1535 @Transactional(rollbackFor = Exception.class)
1527 1536 public Result completeCycleCountTask(TaskHeader taskHeader) {
1528 1537 /*
... ... @@ -1745,6 +1754,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
1745 1754 * @param taskHeader 任务
1746 1755 * @return Result 完成出库任务结果
1747 1756 */
  1757 + @Override
1748 1758 @Transactional(rollbackFor = Exception.class)
1749 1759 public Result completeEmptyOutTask(TaskHeader taskHeader) {
1750 1760 String warehouseCode = taskHeader.getWarehouseCode();
... ... @@ -1799,6 +1809,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
1799 1809 * @param taskHeader 任务
1800 1810 * @return Result 完成移库任务结果
1801 1811 */
  1812 + @Override
1802 1813 @Transactional(rollbackFor = Exception.class)
1803 1814 public Result completeTransferTask(TaskHeader taskHeader) {
1804 1815 String warehouseCode = taskHeader.getWarehouseCode();
... ... @@ -1907,6 +1918,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
1907 1918 * @param taskHeader 任务
1908 1919 * @return Result 完成出库查看任务结果
1909 1920 */
  1921 + @Override
1910 1922 @Transactional(rollbackFor = Exception.class)
1911 1923 public Result completeCheckOutTask(TaskHeader taskHeader) {
1912 1924 String warehouseCode = taskHeader.getWarehouseCode();
... ... @@ -1976,6 +1988,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
1976 1988 * @param taskHeader 任务
1977 1989 * @return Result 完成跨站任务结果
1978 1990 */
  1991 + @Override
1979 1992 @Transactional(rollbackFor = Exception.class)
1980 1993 public Result completeOverStationTask(TaskHeader taskHeader) {
1981 1994 String warehouseCode = taskHeader.getWarehouseCode();
... ... @@ -2023,6 +2036,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
2023 2036 * @param taskHeader 任务
2024 2037 * @return Result 完成空托盘组入库任务结果
2025 2038 */
  2039 + @Override
2026 2040 @Transactional(rollbackFor = Exception.class)
2027 2041 public Result completeManyEmptyInTask(TaskHeader taskHeader) {
2028 2042 String warehouseCode = taskHeader.getWarehouseCode();
... ... @@ -2066,6 +2080,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
2066 2080 * @param taskHeader 任务
2067 2081 * @return Result 完成空托盘组出库任务结果
2068 2082 */
  2083 + @Override
2069 2084 @Transactional(rollbackFor = Exception.class)
2070 2085 public Result completeManyEmptyOutTask(TaskHeader taskHeader) {
2071 2086 String warehouseCode = taskHeader.getWarehouseCode();
... ...