zy-asrs-admin/src/components/taskLog/showTaskDetlLog/index.vue
@@ -186,7 +186,7 @@ <script> export default { name: 'showOrderDetlLogComponent' name: 'showTaskDetlLogComponent' } </script> zy-asrs-admin/src/views/in/waitPakin/edit.vue
@@ -98,10 +98,11 @@ let result = await orderDetlQuery(id); let tmp = [] result.data.forEach((item) => { let count = item.anfme - item.qty - item.workQty; tmp.push({ value: item.id, label: item.mat$.matnr + '-' + item.anfme, anfme: item.anfme label: item.mat$.matnr + '-' + count, anfme: count }) }) orderDetlQueryList.value = tmp; zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/WaitPakinController.java
@@ -5,23 +5,23 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.zy.asrs.framework.common.Cools; import com.zy.asrs.framework.common.R; import com.zy.asrs.framework.exception.CoolException; import com.zy.asrs.wms.asrs.entity.*; import com.zy.asrs.wms.asrs.entity.enums.OrderSettleType; import com.zy.asrs.wms.asrs.service.*; import com.zy.asrs.wms.common.annotation.OperationLog; import com.zy.asrs.wms.common.domain.BaseParam; import com.zy.asrs.wms.common.domain.KeyValVo; import com.zy.asrs.wms.common.domain.PageParam; import com.zy.asrs.wms.asrs.entity.WaitPakin; import com.zy.asrs.wms.asrs.service.WaitPakinService; import com.zy.asrs.wms.system.controller.BaseController; import com.zy.asrs.wms.utils.ExcelUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.*; @RestController @RequestMapping("/api") @@ -29,6 +29,14 @@ @Autowired private WaitPakinService waitPakinService; @Autowired private OrderService orderService; @Autowired private OrderDetlService orderDetlService; @Autowired private LocService locService; @Autowired private TaskService taskService; @PreAuthorize("hasAuthority('asrs:waitPakin:list')") @PostMapping("/waitPakin/page") @@ -53,10 +61,45 @@ @PreAuthorize("hasAuthority('asrs:waitPakin:save')") @OperationLog("添加组托通知档") @PostMapping("/waitPakin/save") @Transactional public R save(@RequestBody WaitPakin waitPakin) { if (waitPakin.getAnfme() <= 0) { return R.error("组托数量错误"); } List<Loc> locList = locService.list(new LambdaQueryWrapper<Loc>().eq(Loc::getBarcode, waitPakin.getBarcode())); if (!locList.isEmpty()) { return R.error("托盘已在库"); } List<Task> taskList = taskService.list(new LambdaQueryWrapper<Task>().eq(Task::getBarcode, waitPakin.getBarcode())); if (!taskList.isEmpty()) { return R.error("托盘正在入库中"); } if (!waitPakinService.save(waitPakin)) { return R.error("添加失败"); } OrderDetl orderDetl = orderDetlService.getById(waitPakin.getDetlId()); if (orderDetl == null) { throw new CoolException("订单明细不存在"); } //获取订单 Order order = orderService.getById(orderDetl.getOrderId()); if(order == null){ throw new CoolException("订单不存在"); } //更新订单状态 if (order.getOrderSettle().equals(OrderSettleType.INIT.val())) { order.setOrderSettle(OrderSettleType.WAIT.val()); order.setUpdateTime(new Date()); if (!orderService.updateById(order)) { throw new CoolException("订单数据更新失败"); } } return R.ok("添加成功"); } zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/OrderDetlFieldLog.java
@@ -4,6 +4,7 @@ import java.text.SimpleDateFormat; import java.util.Date; import com.zy.asrs.common.utils.Synchro; import com.zy.asrs.wms.asrs.service.MatFieldService; import com.zy.asrs.wms.asrs.service.OrderDetlLogService; import com.zy.asrs.wms.system.entity.Host; @@ -230,5 +231,9 @@ return null; } public void sync(Object source) { Synchro.Copy(source, this); } } zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/OrderDetlLog.java
@@ -189,6 +189,15 @@ return null; } public Mat getMat$(){ MatService service = SpringUtils.getBean(MatService.class); Mat mat = service.getById(this.matId); if (!Cools.isEmpty(mat)){ return mat; } return null; } public String getHostId$(){ HostService service = SpringUtils.getBean(HostService.class); Host host = service.getById(this.hostId); zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/OrderLog.java
@@ -4,6 +4,7 @@ import java.text.SimpleDateFormat; import java.util.Date; import com.zy.asrs.common.utils.Synchro; import com.zy.asrs.wms.asrs.service.OrderSettleService; import com.zy.asrs.wms.asrs.service.OrderTypeService; import com.zy.asrs.wms.system.entity.Host; @@ -37,7 +38,7 @@ * ID */ @ApiModelProperty(value= "ID") @TableId(value = "id", type = IdType.AUTO) @TableId(value = "id", type = IdType.INPUT) private Long id; /** @@ -230,5 +231,8 @@ return null; } public void sync(Object source) { Synchro.Copy(source, this); } } zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/TaskDetlLog.java
@@ -237,6 +237,15 @@ return null; } public Mat getMat$(){ MatService service = SpringUtils.getBean(MatService.class); Mat mat = service.getById(this.matId); if (!Cools.isEmpty(mat)){ return mat; } return null; } public String getHostId$(){ HostService service = SpringUtils.getBean(HostService.class); Host host = service.getById(this.hostId); zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/TaskLog.java
@@ -192,7 +192,7 @@ TaskStsService service = SpringUtils.getBean(TaskStsService.class); TaskSts taskSts = service.getById(this.taskSts); if (!Cools.isEmpty(taskSts)){ return String.valueOf(taskSts.getId()); return String.valueOf(taskSts.getTitle()); } return null; } @@ -201,7 +201,7 @@ TaskTypeService service = SpringUtils.getBean(TaskTypeService.class); TaskType taskType = service.getById(this.taskType); if (!Cools.isEmpty(taskType)){ return String.valueOf(taskType.getId()); return String.valueOf(taskType.getTitle()); } return null; } 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; @@ -29,6 +30,8 @@ private OrderDetlFieldService orderDetlFieldService; @Autowired private TaskDetlFieldService taskDetlFieldService; @Autowired private OrderService orderService; @Autowired private OrderDetlService orderDetlService; @Autowired @@ -135,17 +138,32 @@ throw new CoolException("组托通知档更新失败"); } //更新订单数据 //更新订单明细数据 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("订单数据更新失败"); } } } zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/OrderTimer.java
New file @@ -0,0 +1,96 @@ package com.zy.asrs.wms.asrs.timer; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.plugins.IgnoreStrategy; import com.baomidou.mybatisplus.core.plugins.InterceptorIgnoreHelper; import com.zy.asrs.framework.exception.CoolException; import com.zy.asrs.wms.asrs.entity.*; import com.zy.asrs.wms.asrs.entity.enums.OrderSettleType; import com.zy.asrs.wms.asrs.service.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; import java.util.List; @Component public class OrderTimer { @Autowired private OrderService orderService; @Autowired private OrderDetlService orderDetlService; @Autowired private OrderDetlFieldService orderDetlFieldService; @Autowired private OrderLogService orderLogService; @Autowired private OrderDetlLogService orderDetlLogService; @Autowired private OrderDetlFieldLogService orderDetlFieldLogService; @Scheduled(cron = "0/3 * * * * ? ") @Transactional public void orderToHistory() { InterceptorIgnoreHelper.handle(IgnoreStrategy.builder().tenantLine(true).build()); try { List<Order> list = orderService.list(new LambdaQueryWrapper<Order>().eq(Order::getOrderSettle, OrderSettleType.COMPLETE.val())); if (list.isEmpty()) { return; } for (Order order : list) { //转历史档 OrderLog orderLog = new OrderLog(); orderLog.sync(order); if (!orderLogService.save(orderLog)) { throw new CoolException("订单转历史档失败"); } //订单明细转历史档 List<OrderDetl> orderDetls = orderDetlService.list(new LambdaQueryWrapper<OrderDetl>().eq(OrderDetl::getOrderId, order.getId())); for (OrderDetl orderDetl : orderDetls) { OrderDetlLog orderDetlLog = new OrderDetlLog(); orderDetlLog.sync(orderDetl); if(!orderDetlLogService.save(orderDetlLog)) { throw new CoolException("订单明细转历史档失败"); } //明细扩展字段转历史档 List<OrderDetlField> orderDetlFields = orderDetlFieldService.list(new LambdaQueryWrapper<OrderDetlField>().eq(OrderDetlField::getDetlId, orderDetl.getId())); for (OrderDetlField orderDetlField : orderDetlFields) { OrderDetlFieldLog orderDetlFieldLog = new OrderDetlFieldLog(); orderDetlFieldLog.sync(orderDetlField); if(!orderDetlFieldLogService.save(orderDetlFieldLog)) { throw new CoolException("明细扩展字段转历史档失败"); } //删除明细扩展字段 if (!orderDetlFieldService.removeById(orderDetlField.getId())) { throw new CoolException("删除明细扩展字段失败"); } } //删除订单明细 if (!orderDetlService.removeById(orderDetl.getId())) { throw new CoolException("删除订单明细失败"); } } //删除订单 if (!orderService.removeById(order.getId())) { throw new CoolException("删除订单失败"); } } } catch (Exception e) { e.printStackTrace(); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); }finally { InterceptorIgnoreHelper.clearIgnoreStrategy(); } } } zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskLogTimer.java
@@ -11,6 +11,7 @@ import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; import java.util.Date; import java.util.List; @@ -122,7 +123,7 @@ order.setOrderSettle(OrderSettleType.COMPLETE.val()); order.setUpdateTime(new Date()); if (!orderService.save(order)) { if (!orderService.updateById(order)) { throw new CoolException("订单更新失败"); } } @@ -133,6 +134,7 @@ } catch (Exception e) { e.printStackTrace(); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); }finally { InterceptorIgnoreHelper.clearIgnoreStrategy(); } @@ -146,6 +148,7 @@ } catch (Exception e) { e.printStackTrace(); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); }finally { InterceptorIgnoreHelper.clearIgnoreStrategy(); } zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskTimer.java
@@ -11,6 +11,7 @@ import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; import java.util.Date; import java.util.List; @@ -114,6 +115,7 @@ } } catch (Exception e) { e.printStackTrace(); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); }finally { InterceptorIgnoreHelper.clearIgnoreStrategy(); } @@ -127,6 +129,7 @@ } catch (Exception e) { e.printStackTrace(); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); }finally { InterceptorIgnoreHelper.clearIgnoreStrategy(); }