Commit d329f3c7fd36d90b9efe86e50ad9334772ecc601

Authored by 谭毅彬
1 parent e1ba967f

出库单操作记录提交

Signed-off-by: TanYibin <5491541@qq.com>
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&lt;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&lt;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
... ... @@ -864,35 +864,35 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
864 864 // 整盘入库、补充入库
865 865 case QuantityConstant.TASK_TYPE_WHOLERECEIPT:
866 866 case QuantityConstant.TASK_TYPE_SUPPLEMENTRECEIPT:
867   - result = completeReceiptTask(taskHeader);
  867 + result = taskHeaderService.completeReceiptTask(taskHeader);
868 868 break;
869 869 case QuantityConstant.TASK_TYPE_WHOLESHIPMENT:
870 870 case QuantityConstant.TASK_TYPE_SORTINGSHIPMENT:
871   - result = completeShipmentTask(taskHeader);
  871 + result = taskHeaderService.completeShipmentTask(taskHeader);
872 872 break;
873 873 case QuantityConstant.TASK_TYPE_CYCLECOUNT:
874   - result = completeCycleCountTask(taskHeader);
  874 + result = taskHeaderService.completeCycleCountTask(taskHeader);
875 875 break;
876 876 case QuantityConstant.TASK_TYPE_EMPTYRECEIPT:
877   - result = completeEmptyInTask(taskHeader);
  877 + result = taskHeaderService.completeEmptyInTask(taskHeader);
878 878 break;
879 879 case QuantityConstant.TASK_TYPE_EMPTYSHIPMENT:
880   - result = completeEmptyOutTask(taskHeader);
  880 + result = taskHeaderService.completeEmptyOutTask(taskHeader);
881 881 break;
882 882 case QuantityConstant.TASK_TYPE_TRANSFER:
883   - result = completeTransferTask(taskHeader);
  883 + result = taskHeaderService.completeTransferTask(taskHeader);
884 884 break;
885 885 case QuantityConstant.TASK_TYPE_CHECK_OUT:
886   - result = completeCheckOutTask(taskHeader);
  886 + result = taskHeaderService.completeCheckOutTask(taskHeader);
887 887 break;
888 888 case QuantityConstant.TASK_TYPE_OVER_STATION:
889   - result = completeOverStationTask(taskHeader);
  889 + result = taskHeaderService.completeOverStationTask(taskHeader);
890 890 break;
891 891 case QuantityConstant.TASK_TYPE_MANY_EMPTYRECEIPT:
892   - result = completeManyEmptyInTask(taskHeader);
  892 + result = taskHeaderService.completeManyEmptyInTask(taskHeader);
893 893 break;
894 894 case QuantityConstant.TASK_TYPE_MANY_EMPTYSHIPMENT:
895   - result = completeManyEmptyOutTask(taskHeader);
  895 + result = taskHeaderService.completeManyEmptyOutTask(taskHeader);
896 896 break;
897 897 default:
898 898 throw new ServiceException("不支持的任务类型" + taskType);
... ... @@ -1094,6 +1094,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
1094 1094 * @param taskHeader 任务
1095 1095 * @return AjaxResult 完成入库任务结果
1096 1096 */
  1097 + @Override
1097 1098 @Transactional(rollbackFor = Exception.class)
1098 1099 @OperationLog(bizId = "''", bizType = "'入库单追踪'", tag = "'详情入库'", extra = "#extraJsonString", msg = "''", recordReturnValue = true)
1099 1100 public Result completeReceiptTask(TaskHeader taskHeader) {
... ... @@ -1253,7 +1254,9 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
1253 1254 * @param taskHeader 任务
1254 1255 * @return result 完成出库任务
1255 1256 */
  1257 + @Override
1256 1258 @Transactional(rollbackFor = Exception.class)
  1259 + @OperationLog(bizId = "''", bizType = "'出库单追踪'", tag = "'详情出库'", extra = "#extraJsonString", msg = "''", recordReturnValue = true)
1257 1260 public Result completeShipmentTask(TaskHeader taskHeader) {
1258 1261 if (taskHeader == null) {
1259 1262 return Result.error("完成出库任务未找到,执行中止");
... ... @@ -1363,10 +1366,6 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
1363 1366 }
1364 1367 containerStatus = QuantityConstant.STATUS_CONTAINER_SOME;
1365 1368 }
1366   - success = shipmentDetailService.updateBatchById(shipmentDetailList);
1367   - if (!success) {
1368   - throw new ServiceException("完成出库任务,更新出库详情失败");
1369   - }
1370 1369 success = inventoryTransactionService.saveBatch(inventoryTransactionList);
1371 1370 if (!success) {
1372 1371 throw new ServiceException("完成出库任务,保存库存详情失败");
... ... @@ -1415,10 +1414,18 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
1415 1414 throw new ServiceException("合并入库库存失败");
1416 1415 }
1417 1416 }
  1417 + success = shipmentDetailService.updateBatchById(shipmentDetailList);
  1418 + if (!success) {
  1419 + throw new ServiceException("完成出库任务,更新出库详情失败");
  1420 + }
1418 1421 shipmentIdList = shipmentIdList.stream().distinct().collect(Collectors.toList());
1419 1422 for (Integer shipmentId : shipmentIdList) {
1420   - shipmentHeaderService.updateShipmentHeaderStatus(shipmentId);
  1423 + success = shipmentHeaderService.updateShipmentHeaderStatus(shipmentId);
  1424 + if (!success) {
  1425 + throw new ServiceException("完成出库任务,更新出库单头失败");
  1426 + }
1421 1427 }
  1428 + LogRecordContext.putVariable("extraJsonString", JSON.toJSONString(shipmentDetailList));
1422 1429 return Result.ok("完成出库任务");
1423 1430 }
1424 1431  
... ... @@ -1478,6 +1485,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
1478 1485 * @param taskHeader 任务
1479 1486 * @return Result 完成入库任务结果
1480 1487 */
  1488 + @Override
1481 1489 @Transactional(rollbackFor = Exception.class)
1482 1490 public Result completeEmptyInTask(TaskHeader taskHeader) {
1483 1491 String warehouseCode = taskHeader.getWarehouseCode();
... ... @@ -1522,6 +1530,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
1522 1530 * @param taskHeader
1523 1531 * @return
1524 1532 */
  1533 + @Override
1525 1534 @Transactional(rollbackFor = Exception.class)
1526 1535 public Result completeCycleCountTask(TaskHeader taskHeader) {
1527 1536 /*
... ... @@ -1744,6 +1753,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
1744 1753 * @param taskHeader 任务
1745 1754 * @return Result 完成出库任务结果
1746 1755 */
  1756 + @Override
1747 1757 @Transactional(rollbackFor = Exception.class)
1748 1758 public Result completeEmptyOutTask(TaskHeader taskHeader) {
1749 1759 String warehouseCode = taskHeader.getWarehouseCode();
... ... @@ -1798,6 +1808,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
1798 1808 * @param taskHeader 任务
1799 1809 * @return Result 完成移库任务结果
1800 1810 */
  1811 + @Override
1801 1812 @Transactional(rollbackFor = Exception.class)
1802 1813 public Result completeTransferTask(TaskHeader taskHeader) {
1803 1814 String warehouseCode = taskHeader.getWarehouseCode();
... ... @@ -1906,6 +1917,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
1906 1917 * @param taskHeader 任务
1907 1918 * @return Result 完成出库查看任务结果
1908 1919 */
  1920 + @Override
1909 1921 @Transactional(rollbackFor = Exception.class)
1910 1922 public Result completeCheckOutTask(TaskHeader taskHeader) {
1911 1923 String warehouseCode = taskHeader.getWarehouseCode();
... ... @@ -1975,6 +1987,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
1975 1987 * @param taskHeader 任务
1976 1988 * @return Result 完成跨站任务结果
1977 1989 */
  1990 + @Override
1978 1991 @Transactional(rollbackFor = Exception.class)
1979 1992 public Result completeOverStationTask(TaskHeader taskHeader) {
1980 1993 String warehouseCode = taskHeader.getWarehouseCode();
... ... @@ -2022,6 +2035,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
2022 2035 * @param taskHeader 任务
2023 2036 * @return Result 完成空托盘组入库任务结果
2024 2037 */
  2038 + @Override
2025 2039 @Transactional(rollbackFor = Exception.class)
2026 2040 public Result completeManyEmptyInTask(TaskHeader taskHeader) {
2027 2041 String warehouseCode = taskHeader.getWarehouseCode();
... ... @@ -2065,6 +2079,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
2065 2079 * @param taskHeader 任务
2066 2080 * @return Result 完成空托盘组出库任务结果
2067 2081 */
  2082 + @Override
2068 2083 @Transactional(rollbackFor = Exception.class)
2069 2084 public Result completeManyEmptyOutTask(TaskHeader taskHeader) {
2070 2085 String warehouseCode = taskHeader.getWarehouseCode();
... ...