自动化立体仓库 - WMS系统
zhangc
2025-02-07 04406757acdcf5cca2215adc390bca42ccd8bf3a
Merge branch 'phyzasrs-erp' into phyzasrs-erp-4

# Conflicts:
# src/main/java/com/zy/asrs/controller/OrderLogController.java
# src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
# src/main/resources/application.yml
5个文件已修改
98 ■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/OrderLogController.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java 41 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/OrderSyncScheduler.java 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/ReportDataScheduler.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/OrderLogController.java
@@ -1,6 +1,5 @@
package com.zy.asrs.controller;
import com.alibaba.excel.EasyExcel;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
@@ -9,18 +8,13 @@
import com.core.common.*;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.result.WrkTraceVo;
import com.zy.asrs.excel.CloseOrderReadListener;
import com.zy.asrs.excel.ExcelOrder;
import com.zy.asrs.service.*;
import com.zy.asrs.service.impl.OrderServiceImpl;
import com.zy.common.web.BaseController;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.util.*;
@Slf4j
@@ -45,8 +39,6 @@
    private LocDetlService locDetlService;
    @Autowired
    private MatService matService;
    @Autowired
    private OrderServiceImpl orderService;
    @RequestMapping(value = "/orderLog/nav/list/auth")
    @ManagerAuth
@@ -86,9 +78,7 @@
        EntityWrapper<OrderLog> wrapper = new EntityWrapper<>();
        excludeTrash(param);
        convert(param, wrapper);
        if (!Cools.isEmpty(orderByField)) {
            wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));
        } else {
        if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} else {
            wrapper.orderBy("settle").orderBy("create_time", false);
        }
        wrapper.eq("status", 1);
@@ -100,6 +90,9 @@
    public R head(@RequestParam Long orderId) {
        return R.ok().add(orderDetlLogService.selectList(new EntityWrapper<OrderDetlLog>().eq("order_id", orderId)));
    }
    @PostMapping(value = "/orderLog/wrk/trace/auth")
@@ -189,9 +182,7 @@
        EntityWrapper<OrderLog> wrapper = new EntityWrapper<>();
        excludeTrash(param);
        convert(param, wrapper);
        if (!Cools.isEmpty(orderByField)) {
            wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));
        }
        if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
        return R.ok(orderLogService.selectPage(new Page<>(curr, limit), wrapper));
    }
src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
@@ -25,7 +25,6 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat;
@@ -126,20 +125,21 @@
        }
        // 如果 作业数量等于单据总数量 && 工作明细档中无该单据的数据 && AGV工作明细档中无该单据的数据
        int count = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("order_no", orderNo));
        boolean wrkDeltExist = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().like("order_no", orderNo)) < 1;
        boolean agvWrkDetlExist = agvWrkDetlService.selectCount(new EntityWrapper<AgvWrkDetl>().like("order_no", orderNo)) < 1;
        boolean waitPakinExist = agvWaitPakinService.selectCount(new EntityWrapper<AgvWaitPakin>().like("order_no", orderNo)) < 1;
        //int count = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("order_no", orderNo));
        //boolean wrkDeltExist = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().like("order_no", orderNo)) < 1;
        //boolean agvWrkDetlExist = agvWrkDetlService.selectCount(new EntityWrapper<AgvWrkDetl>().like("order_no", orderNo)) < 1;
        //boolean waitPakinExist = agvWaitPakinService.selectCount(new EntityWrapper<AgvWaitPakin>().like("order_no", orderNo)) < 1;
        ManPakOut manPakOut = manPakOutService.selectByOrderWithName(orderNo);
        //ManPakOut manPakOut = manPakOutService.selectByOrderWithName(orderNo);
        boolean manPakoutExist = Cools.isEmpty(manPakOut) || (manPakOut.getPayment() != null && manPakOut.getPayment() == 1);
        if (complete && wrkDeltExist && agvWrkDetlExist && waitPakinExist && manPakoutExist) {
        //boolean manPakoutExist = Cools.isEmpty(manPakOut) || (manPakOut.getPayment() != null && manPakOut.getPayment() == 1);
        //if (complete && wrkDeltExist && agvWrkDetlExist && waitPakinExist && manPakoutExist) {
        if (complete) {
            if (pltType == null) {
                if (!this.updateSettle(order.getId(), 4L, 9528L)) {
                if (!this.updateSettle(order.getId(), 6L, 9528L)) {
                    throw new CoolException("修改订单【orderNo = " + order.getOrderNo() + "】状态为已完成失败");
                }
            } else if (!this.updateSettle2(order.getId(), 4L, pltType, DateUtils.convert(new Date(), DateUtils.yyyyMMddHHmmsssss_F))) {
            } else if (!this.updateSettle2(order.getId(), 6L, pltType, DateUtils.convert(new Date(), DateUtils.yyyyMMddHHmmsssss_F))) {
                throw new CoolException("修改订单【orderNo = " + order.getOrderNo() + "】状态为已完成失败");
            }
        } else {
@@ -172,16 +172,17 @@
        }
        // 如果 作业数量等于单据总数量 && 工作明细档中无该单据的数据 && AGV工作明细档中无该单据的数据
        int count = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("order_no", orderNo));
        boolean wrkDeltExist = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().like("order_no", orderNo)) < 1;
        boolean agvWrkDetlExist = agvWrkDetlService.selectCount(new EntityWrapper<AgvWrkDetl>().like("order_no", orderNo)) < 1;
        boolean waitPakinExist = agvWaitPakinService.selectCount(new EntityWrapper<AgvWaitPakin>().like("order_no", orderNo)) < 1;
        ManPakOut manPakOut = manPakOutService.selectByOrderWithName(orderNo);
        boolean manPakoutExist = Cools.isEmpty(manPakOut) || (manPakOut.getPayment() != null && manPakOut.getPayment() == 1);
        if (complete && wrkDeltExist && agvWrkDetlExist && waitPakinExist && manPakoutExist) {
            if (!this.updateSettle(order.getId(), 4L, 9528L)) {
        //int count = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("order_no", orderNo));
//        boolean wrkDeltExist = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().like("order_no", orderNo)) < 1;
//        boolean agvWrkDetlExist = agvWrkDetlService.selectCount(new EntityWrapper<AgvWrkDetl>().like("order_no", orderNo)) < 1;
//        boolean waitPakinExist = agvWaitPakinService.selectCount(new EntityWrapper<AgvWaitPakin>().like("order_no", orderNo)) < 1;
//
//        ManPakOut manPakOut = manPakOutService.selectByOrderWithName(orderNo);
//
//        boolean manPakoutExist = Cools.isEmpty(manPakOut) || (manPakOut.getPayment() != null && manPakOut.getPayment() == 1);
//        if (complete && wrkDeltExist && agvWrkDetlExist && waitPakinExist && manPakoutExist) {
        if (complete) {
            if (!this.updateSettle(order.getId(), 6L, 9528L)) {
                throw new CoolException("修改订单【orderNo = " + order.getOrderNo() + "】状态为已完成失败");
            }
        }
src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
@@ -47,7 +47,7 @@
    private Integer page = 1;
    private Integer size = 100;
    private Integer size = 200;
    @Scheduled(cron = "0 0 1 * * ? ")
    public void clearApiLog() {
@@ -67,21 +67,21 @@
            List<Order> orders = orderService.selectComplete();
            for (Order order : orders) {
                //如果是调拨单则进行判断
                if (order.getDocType() == 33) {
                    //查询库存中是否存在该订单的物料信息,存在则不处理该订单
                    List<OrderDetl> orderDetlList = orderDetlService.selectByOrderId(order.getId());
                    Boolean flag = false;
                    for (OrderDetl orderDetl : orderDetlList) {
                        List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("matnr", orderDetl.getMatnr()).eq("three_code", orderDetl.getThreeCode()));
                        if (!Cools.isEmpty(agvLocDetls)) {
                            //只要有一项订单明细存在,则标识为true,跳过该订单
                            flag = true;
                        }
                    }
                    if (flag) {
                        continue;
                    }
                }
//                if (order.getDocType() == 33) {
//                    //查询库存中是否存在该订单的物料信息,存在则不处理该订单
//                    List<OrderDetl> orderDetlList = orderDetlService.selectByOrderId(order.getId());
//                    Boolean flag = false;
//                    for (OrderDetl orderDetl : orderDetlList) {
//                        List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("matnr", orderDetl.getMatnr()).eq("three_code", orderDetl.getThreeCode()));
//                        if (!Cools.isEmpty(agvLocDetls)) {
//                            //只要有一项订单明细存在,则标识为true,跳过该订单
//                            flag = true;
//                        }
//                    }
//                    if (flag) {
//                        continue;
//                    }
//                }
                ReturnT<String> result = orderSyncHandler.start(order);
                if (!result.isSuccess()) {
                    //log.error("单据[orderNo={}]上报erp失败", order.getOrderNo());
@@ -109,7 +109,7 @@
    定时查询状态为2.作业中的单据,检查是否完成
     */
    //@Scheduled(cron = "0 */1 * * * ? ")
    @Scheduled(fixedDelay = 600000)
    @Scheduled(fixedDelay = 120000)
    public void completeOrder() {
        try {
            Page<Order> settle = orderService.selectPage(new Page<Order>(page, size), new EntityWrapper<Order>().eq("settle", 2));
src/main/java/com/zy/asrs/task/ReportDataScheduler.java
@@ -140,7 +140,7 @@
    }
    @Scheduled(fixedDelay = 1000 * 60 * 30)
    //@Scheduled(fixedDelay = 1000 * 60 * 30)
    public void executeStock() {
        if (!flag) {
            return;
src/main/resources/application.yml
@@ -1,4 +1,4 @@
spring:
  profiles:
    #dev loc prod
    active: dev
    active: prod