From f7b699b0da8aa185edeb38dc1abaaf964ba41d95 Mon Sep 17 00:00:00 2001 From: Junjie <540245094@qq.com> Date: 星期五, 02 八月 2024 09:15:01 +0800 Subject: [PATCH] # --- zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/WorkServiceImpl.java | 91 ++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 84 insertions(+), 7 deletions(-) diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/WorkServiceImpl.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/WorkServiceImpl.java index 92c46ad..5d793ba 100644 --- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/WorkServiceImpl.java +++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/WorkServiceImpl.java @@ -4,6 +4,7 @@ import com.zy.asrs.framework.exception.CoolException; import com.zy.asrs.wms.asrs.entity.*; import com.zy.asrs.wms.asrs.entity.enums.LocStsType; +import com.zy.asrs.wms.asrs.entity.enums.OrderSettleType; import com.zy.asrs.wms.asrs.entity.param.GeneratePakInParam; import com.zy.asrs.wms.asrs.service.*; import org.springframework.beans.factory.annotation.Autowired; @@ -30,11 +31,19 @@ @Autowired private TaskDetlFieldService taskDetlFieldService; @Autowired + private OrderService orderService; + @Autowired private OrderDetlService orderDetlService; @Autowired private LocService locService; @Autowired private LocStsService locStsService; + @Autowired + private TaskLogService taskLogService; + @Autowired + private TaskDetlLogService taskDetlLogService; + @Autowired + private TaskDetlFieldLogService taskDetlFieldLogService; @Override public String generateTaskNo(Long taskType) { @@ -129,17 +138,32 @@ throw new CoolException("缁勬墭閫氱煡妗f洿鏂板け璐�"); } - //鏇存柊璁㈠崟鏁版嵁 + //鏇存柊璁㈠崟鏄庣粏鏁版嵁 OrderDetl orderDetl = orderDetlService.getById(taskDetl.getDetlId()); if(orderDetl == null){ - throw new CoolException("璁㈠崟鏁版嵁寮傚父"); + throw new CoolException("璁㈠崟鏄庣粏涓嶅瓨鍦�"); } orderDetl.setWorkQty(orderDetl.getWorkQty() + taskDetl.getAnfme()); orderDetl.setUpdateTime(new Date()); boolean orderDetlUpdate = orderDetlService.updateById(orderDetl); if(!orderDetlUpdate){ - throw new CoolException("璁㈠崟鏇存柊澶辫触"); + throw new CoolException("璁㈠崟鏄庣粏鏇存柊澶辫触"); + } + + //鑾峰彇璁㈠崟 + Order order = orderService.getById(taskDetl.getOrderId()); + if(order == null){ + throw new CoolException("璁㈠崟涓嶅瓨鍦�"); + } + + //鏇存柊璁㈠崟鐘舵�� + if (order.getOrderSettle().equals(OrderSettleType.WAIT.val())) { + order.setOrderSettle(OrderSettleType.WORKING.val()); + order.setUpdateTime(new Date()); + if (!orderService.updateById(order)) { + throw new CoolException("璁㈠崟鏁版嵁鏇存柊澶辫触"); + } } } @@ -149,6 +173,34 @@ boolean locUpdate = locService.updateById(loc); if(!locUpdate){ throw new CoolException("搴撲綅鐘舵�佹洿鏂板け璐�"); + } + + return true; + } + + @Override + public boolean completeTask(Long taskId) { + Task task = taskService.getById(taskId); + if(task == null){ + throw new CoolException("浠诲姟涓嶅瓨鍦�"); + } + + List<TaskDetl> taskDetls = taskDetlService.getTaskDetlByTaskId(taskId); + if (taskDetls.isEmpty()) { + throw new CoolException("浠诲姟鏄庣粏涓嶅瓨鍦�"); + } + + if (task.getTaskType() < 100) { + //鍏ュ簱 + task.setTaskSts(99L);//99.鍏ュ簱瀹屾垚 + }else { + //鍑哄簱 + task.setTaskSts(199L);//199.鍑哄簱瀹屾垚 + } + + task.setUpdateTime(new Date()); + if (!taskService.updateById(task)) { + throw new CoolException("浠诲姟鏇存柊澶辫触"); } return true; @@ -236,10 +288,28 @@ } } - //鍒犻櫎鏄庣粏鎵╁睍 - boolean removeField = taskDetlFieldService.remove(new LambdaQueryWrapper<TaskDetlField>().eq(TaskDetlField::getDetlId, taskDetl.getId())); - if(!removeField){ - throw new CoolException("鍥炴粴鎵╁睍鏄庣粏澶辫触"); + List<TaskDetlField> detlFields = taskDetlFieldService.list(new LambdaQueryWrapper<TaskDetlField>().eq(TaskDetlField::getDetlId, taskDetl.getId())); + for (TaskDetlField detlField : detlFields) { + //鏄庣粏鎵╁睍瀛楁鏁版嵁淇濆瓨鑷冲巻鍙叉。 + TaskDetlFieldLog taskDetlFieldLog = new TaskDetlFieldLog(); + taskDetlFieldLog.sync(detlField); + if (!taskDetlFieldLogService.save(taskDetlFieldLog)) { + throw new CoolException("鏄庣粏鎵╁睍瀛楁杞巻鍙叉。妗堝け璐�"); + } + + //鍒犻櫎鏄庣粏鎵╁睍 + boolean removeField = taskDetlFieldService.removeById(detlField.getId()); + if(!removeField){ + throw new CoolException("鍥炴粴鎵╁睍鏄庣粏澶辫触"); + } + } + + + //鏄庣粏鏁版嵁淇濆瓨鑷冲巻鍙叉。 + TaskDetlLog taskDetlLog = new TaskDetlLog(); + taskDetlLog.sync(taskDetl); + if (!taskDetlLogService.save(taskDetlLog)) { + throw new CoolException("鏄庣粏鏁版嵁杞巻鍙叉。妗堝け璐�"); } //鍒犻櫎鏄庣粏 @@ -249,6 +319,13 @@ } } + //鏁版嵁淇濆瓨鑷冲巻鍙叉。 + TaskLog taskLog = new TaskLog(); + taskLog.sync(task); + if (!taskLogService.save(taskLog)) { + throw new CoolException("浠诲姟妗f杞巻鍙叉。妗堝け璐�"); + } + //鍒犻櫎浠诲姟 boolean removeTask = taskService.removeById(taskId); if(!removeTask){ -- Gitblit v1.9.1