src/main/java/com/zy/asrs/controller/OpenController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/entity/param/ReturnOrderConfirmParam.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/OpenService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/task/OrderSyncScheduler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/OrderMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/controller/OpenController.java
@@ -495,7 +495,7 @@ @PostMapping("/returnOrder/auth/v1") @AppAuth(memo = "退库单单据下发") public synchronized R returnOrder(@RequestHeader(required = false) String appkey, @RequestBody GroupOrderConfirmParam param, @RequestBody ReturnOrderConfirmParam param, HttpServletRequest request) { auth(appkey, param, request); openService.returnOrder(param); src/main/java/com/zy/asrs/entity/param/ReturnOrderConfirmParam.java
New file @@ -0,0 +1,18 @@ package com.zy.asrs.entity.param; import lombok.Data; import java.util.List; @Data public class ReturnOrderConfirmParam { private String orderNumber; //组货单号 private String packageGroupNo; // 多个包装组号 private List<VolumeNumber> volumeNumbers; // 多个包装组号 @Data public static class VolumeNumber { private String volumeNumber; } } src/main/java/com/zy/asrs/service/OpenService.java
@@ -156,7 +156,7 @@ R groupOrderConfirm(GroupOrderConfirmParam param); R returnOrder(GroupOrderConfirmParam param); R returnOrder(ReturnOrderConfirmParam param); } src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -2344,16 +2344,19 @@ @Override @Transactional public R returnOrder(GroupOrderConfirmParam param) { public R returnOrder(ReturnOrderConfirmParam param) { if (Cools.isEmpty(param.getOrderNumber())) { param.setOrderNumber("THCK" + snowflakeIdWorker.nextId() + ""); } // 1. 查询单据是否存在 Order order = orderMapper.selectOrderByOrderNo(param.getGroupOrderNumber()); Order order = orderMapper.selectOrderByOrderNo(param.getOrderNumber()); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); if (order == null) { // 1.1 不存在,新建单据 order = new Order(); order.setOrderNo(param.getGroupOrderNumber()); order.setStatus(Integer.valueOf(param.getGroupStatus())); order.setOrderNo(param.getOrderNumber()); order.setStatus(1); order.setOrderTime(sdf.format(new Date())); order.setCreateTime(new Date()); order.setSettle(1L); @@ -2361,34 +2364,31 @@ orderMapper.insert(order); } else { // 1.2 存在,更新单据状态 order.setStatus(Integer.valueOf(param.getGroupStatus())); order.setStatus(1); orderMapper.updateById(order); } orderDetlMapper.delete( new EntityWrapper<OrderDetl>().eq("order_no", param.getGroupOrderNumber()) new EntityWrapper<OrderDetl>().eq("order_no", param.getOrderNumber()) ); // 2. 一一对应遍历 List<GroupOrderConfirmParam.PackageGroupNo> pkgList = param.getPackageGroupNos(); List<GroupOrderConfirmParam.VolumeNumber> volList = param.getVolumeNumbers(); List<ReturnOrderConfirmParam.VolumeNumber> volList = param.getVolumeNumbers(); int size = Math.min(pkgList.size(), volList.size()); // 防止越界 for (int i = 0; i < size; i++) { GroupOrderConfirmParam.PackageGroupNo pg = pkgList.get(i); GroupOrderConfirmParam.VolumeNumber vn = volList.get(i); for (int i = 0; i < volList.size(); i++) { ReturnOrderConfirmParam.VolumeNumber vn = volList.get(i); // 查询是否已存在该 detl OrderDetl detl = orderDetlMapper.selectByOrderNoAndPkgGroupNoAndVolumeNo( param.getGroupOrderNumber(), pg.getPackageGroupNo(), vn.getVolumeNumber() param.getOrderNumber(), param.getPackageGroupNo(), vn.getVolumeNumber() ); if (detl == null) { detl = new OrderDetl(); detl.setOrderId(order.getId()); detl.setOrderNo(param.getGroupOrderNumber()); detl.setOrderNo(param.getOrderNumber()); detl.setCreateTime(new Date()); detl.setAnfme(1.0); detl.setBrand(pg.getPackageGroupNo()); // 包装组号 detl.setBrand(param.getPackageGroupNo()); // 包装组号 detl.setModel(vn.getVolumeNumber()); // 卷号 orderDetlMapper.insert(detl); } src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
@@ -74,6 +74,29 @@ } @Scheduled(cron = "0/9 * * * * ? ") @Async("orderThreadPool") public void completeAndReport2() { Config config = configMapper.selectConfigByCode("RETURN_REPORT"); if (config == null || config.getStatus() == 0 || Cools.isEmpty(config.getValue())) { return; } List<Order> orders = orderService.selectComplete(); for (Order order : orders) { try { ReturnT<String> result = orderSyncHandler.start(order); if (!result.isSuccess()) { log.error("单据[orderNo={}]上报erp失败", order.getOrderNo()); } } catch (Exception e) { log.error("单据[orderNo={}]上报erp失败", order.getOrderNo()); log.error("订单" + order + "处理失败,异常信息:" + e); } } } @Scheduled(cron = "0/30 * * * * ? ") public void complete() { src/main/resources/mapper/OrderMapper.xml
@@ -85,6 +85,22 @@ mo.create_time asc </select> <select id="selectComplete2" resultMap="BaseResultMap"> select top 5 mo.* from man_order mo inner join man_doc_type mt on mo.doc_type = mt.doc_id where mt.pakout = 1 and mo.settle = 5 and mo.status = 1 and mo.doc_type = 26 order by mo.create_time asc </select> <insert id="addToLogTable"> INSERT INTO man_order_log SELECT * FROM man_order WHERE id = #{id} </insert>