自动化立体仓库 - WMS系统
zhangc
2025-01-08 bcb6146f20a823861c15775ca8c396e6505035db
优化定时任务及日志输出,调整订单同步逻辑
6个文件已修改
65 ■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/OpenController.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/AgvWarnScheduler.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/OrderSyncScheduler.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/ReportDataScheduler.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/OpenController.java
@@ -1,15 +1,19 @@
package com.zy.asrs.controller;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.annotations.AppAuth;
import com.core.common.BaseRes;
import com.core.common.Cools;
import com.core.common.R;
import com.core.exception.CoolException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.zy.asrs.entity.ApiLog;
import com.zy.asrs.entity.param.CheckParam;
import com.zy.asrs.entity.param.MatSyncParam;
import com.zy.asrs.entity.param.OrderProdSyncParam;
import com.zy.asrs.entity.param.OrderSyncParam;
import com.zy.asrs.service.ApiLogService;
import com.zy.asrs.service.OpenService;
import com.zy.common.utils.Synchro;
import com.zy.common.web.BaseController;
@@ -18,7 +22,9 @@
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -38,6 +44,11 @@
    @Autowired
    private OpenService openService;
    @Autowired
    private ApiLogService apiLogService;
    /**
     * 库存统计
@@ -69,7 +80,7 @@
    private void auth(String appkey, Object obj, HttpServletRequest request) {
        log.info("{}接口被访问;appkey:{};请求数据:{}", "open/sensorType/list/auth/v1", appkey, JSON.toJSONString(obj));
        //log.info("{}接口被访问;appkey:{};请求数据:{}", "open/sensorType/list/auth/v1", appkey, JSON.toJSONString(obj));
        request.setAttribute("cache", obj);
        if (!auth) {
            return;
@@ -107,7 +118,7 @@
    public synchronized R orderPakin(@RequestHeader(required = false) String appkey,
                                     @RequestBody Map<String, Object> map,
                                     HttpServletRequest request) {
        log.info("生成入库单据,{}", JSON.toJSONString(map));
        //log.info("生成入库单据,{}", JSON.toJSONString(map));
        OrderProdSyncParam param = JSON.parseObject(JSON.toJSONString(map), OrderProdSyncParam.class);
        auth(appkey, param, request);
        if (Cools.isEmpty(param)) {
@@ -184,7 +195,7 @@
    @AppAuth(memo = "同步工单单据")
    public synchronized R orderPakout(@RequestHeader(required = false) String appkey,
                                      @RequestBody Map<String, Object> map) {
        log.info("同步工单单据,{}", JSON.toJSONString(map));
        //log.info("同步工单单据,{}", JSON.toJSONString(map));
        OrderProdSyncParam param = JSON.parseObject(JSON.toJSONString(map), OrderProdSyncParam.class);
        auth(appkey, param, request);
        if (Cools.isEmpty(param)) {
@@ -256,7 +267,7 @@
    public synchronized R orderPakin2(@RequestHeader(required = false) String appkey,
                                      @RequestBody Map<String, Object> map,
                                      HttpServletRequest request) {
        log.info("生成入库单据,{}", JSON.toJSONString(map));
        //log.info("生成入库单据,{}", JSON.toJSONString(map));
        OrderProdSyncParam param = JSON.parseObject(JSON.toJSONString(map), OrderProdSyncParam.class);
        auth(appkey, param, request);
        if (Cools.isEmpty(param)) {
@@ -465,4 +476,25 @@
        //return orderSyncParam;
    }
//    @PostMapping("/order/add")
//    public R re(@RequestHeader(required = false) String appkey,
//                HttpServletRequest request) throws IOException {
//        List<ApiLog> apiLogs = apiLogService.selectList(new EntityWrapper<ApiLog>().eq("url", "/phyzwms/open/asrs/order/pakin/default/v1").eq("response", "{\"msg\":\"服务器错误\",\"code\":500}").ge("create_time", "2025-01-06 00:00:00"));
//        for (ApiLog apiLog : apiLogs) {
//            Map<String, Object> param = new HashMap<>();
//            ObjectMapper mapper = new ObjectMapper();
//            if (!Cools.isEmpty(apiLog.getRequest())) {
//                param = mapper.readValue(apiLog.getRequest(), Map.class);
//                try {
//                    orderPakin(appkey, param, request);
//                } catch (Exception e) {
//
//                }
//            }
//        }
//        return R.ok();
//
//    }
}
src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java
@@ -56,10 +56,10 @@
        long flowId = snowflakeIdWorker.nextId();
        agvWrkDetls.stream().map(agvWrkDetl -> {
            AgvLocDetl agvLocDetl = new AgvLocDetl();
            log.info("agvWrkDetl: " + agvLocDetl.getBarcode());
            //log.info("agvWrkDetl: " + agvLocDetl.getBarcode());
            BeanUtils.copyProperties(agvWrkDetl, agvLocDetl);
            agvLocDetl.setLocNo(locNo);
            log.info("zc添加库存日志:{}", JSON.toJSON(agvLocDetl));
            //log.info("zc添加库存日志:{}", JSON.toJSON(agvLocDetl));
            this.insert(agvLocDetl);
            // 流水 -- 新增订单明细
            OrderDetl orderDetl = orderDetlService.selectItem(agvWrkDetl.getOrderNo(), agvWrkDetl.getMatnr(), agvWrkDetl.getBatch(), agvWrkDetl.getThreeCode());
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -1,5 +1,6 @@
package com.zy.asrs.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.BaseRes;
import com.core.common.Cools;
@@ -24,9 +25,7 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -886,11 +885,11 @@
        }
        Date now = new Date();
        Order order = orderMapping(param, now, pakin, docName);
        StringBuffer tel = new StringBuffer();
        Set<String> set = new HashSet<>();
        for (OrderSyncParam.OrderDetl child : param.getChildren()) {
            tel.append(child.getCDefine22()).append(";");
            set.add(child.getCDefine22());
        }
        order.setTel(tel.toString());
        order.setTel(JSON.toJSONString(set));
        orderService.insert(order);
        param.getChildren().forEach(od -> {
            OrderDetl orderDetl = orderDetlMapping(order, od, now);
src/main/java/com/zy/asrs/task/AgvWarnScheduler.java
@@ -69,7 +69,7 @@
        for (AgvWarn agvWarn : agvWarnList) {
            Integer warnTime = getWarnTime(agvWarn.getTimes(), first.getValue(), second.getValue(), third.getValue());
            DateTime begin = DateUtil.parse(agvWarn.getBeginTime(), "yyyy-MM-dd HH:mm:ss");
            if (DateUtil.offsetMinute(begin, warnTime).before(new Date())) {
            if (DateUtil.offsetMinute(new Date(), -warnTime).after(begin)) {
                buffer = new StringBuffer();
                buffer.append(processRegion(agvs, agvWarn.getRobotCode()) + "[" + agvWarn.getRobotCode() + "]号AGV小车报警了\n");
                buffer.append("报警类型:" + agvWarn.getWarnContent() + "\n");
src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
@@ -50,7 +50,7 @@
    }
    //@Scheduled(cron = "0/5 * * * * ? ")
    @Scheduled(fixedDelay = 5000)
    @Scheduled(fixedDelay = 600000)
    //@Async("orderThreadPool")
    public void completeAndReport() {
        String erpReport = Parameter.get().getErpReport();
@@ -102,7 +102,9 @@
    public void completeOrder() {
        List<Order> orderList = orderService.selectList(new EntityWrapper<Order>().eq("settle", 2).isNotNull("plt_type"));
        orderList.forEach(order -> {
            orderService.checkComplete(order.getOrderNo(), order.getPltType());
            if (order.getPltType() != null) {
                orderService.checkComplete(order.getOrderNo(), order.getPltType());
            }
        });
    }
src/main/java/com/zy/asrs/task/ReportDataScheduler.java
@@ -62,7 +62,6 @@
    @Scheduled(fixedDelay = 30000)
    public void execute() {
        log.info("定时任务开始执行");
        if (!flag) {
            return;
        }
@@ -78,7 +77,6 @@
                }
            }
        }
        log.info("定时任务结束执行");
    }
    //获取mes token信息