自动化立体仓库 - WMS系统
ffb382ba34aca2dce08ab9e4ef09adc946cf23c8..44137e717170d9a9333e33a5237f3a468bd41113
2025-04-28 ZY
双数据源
44137e 对比 | 目录
2025-04-28 ZY
双数据源
0e49d5 对比 | 目录
2025-04-28 ZY
双数据源
a04129 对比 | 目录
68 文件已重命名
5个文件已修改
2个文件已删除
10个文件已添加
696 ■■■■ 已修改文件
src/main/java/com/zy/Boot.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/ReportToThirdService.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java 103 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java 171 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/config/ds/PrimaryDataSourceConfig.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/config/ds/SecondaryDataSourceConfig.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/constant/MesConstant.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/nc/entity/NccSaleDbckmxb.java 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/nc/entity/NccSaleXsckmx.java 137 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/nc/mapper/NccSaleDbckmxbMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/nc/mapper/NccSaleXsckmxMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/nc/task/PlanOrderTask.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/nc/task/handler/PlanOrderHandler.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/AdjDetlMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/ApiLogMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/ApiMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/AutoMoveMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/BasCrnErrorMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/BasCrnOptMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/BasCrnStatusMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/BasCrnpMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/BasDevpMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/BasErrLogMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/BasLocStsMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/BasPlcerrorMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/BasProcessProceduresMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/BasQualityTestingMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/BasWhsMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/BasWrkIotypeMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/BasWrkStatusMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/ConfigMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/DocLogMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/DocTypeMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/HostMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/LocCheckMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/LocDetlMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/LocMastMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/LocOwnerMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/LocRuleMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/ManLocDetlMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/MatMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/NodeMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/OperateLogMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/OrderDetlMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/OrderDetlPakinMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/OrderDetlPakoutMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/OrderMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/OrderPakinMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/OrderPakoutMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/OrderSettleMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/PackMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/PermissionMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/RequestLogMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/ResourceMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/RoleMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/RolePermissionMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/RoleResourceMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/RowLastnoMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/RowLastnoTypeMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/SaasLogMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/StaDescMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/StkPlcmMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/TagMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/TrayCodeMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/UserLoginMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/UserMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/ViewInOutMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/ViewStayTimeMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/ViewStockUseMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/ViewWorkInMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/WaitPakinLogMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/WaitPakinMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/WrkDetlLogMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/WrkDetlMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/WrkLastnoMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/WrkMastExecuteLogMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/WrkMastExecuteMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/WrkMastFourWarVehicleLogMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/WrkMastFourWarVehicleMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/WrkMastLogMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/WrkMastMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/nc/NccSaleDbckmxbMapper.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/nc/NccSaleXsckmxMapper.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper2/test 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/Boot.java
@@ -1,6 +1,7 @@
package com.zy;
import com.zy.common.utils.RandomValidateCodeUtil;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
src/main/java/com/zy/asrs/service/ReportToThirdService.java
New file
@@ -0,0 +1,12 @@
package com.zy.asrs.service;
import com.zy.asrs.entity.DocType;
import com.zy.asrs.entity.Order;
import com.zy.asrs.entity.OrderDetl;
import java.util.List;
public interface ReportToThirdService {
    void report(Order order, List<OrderDetl> orderDetls, DocType docType);
}
src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java
New file
@@ -0,0 +1,103 @@
package com.zy.asrs.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.core.common.Cools;
import com.core.exception.CoolException;
import com.zy.asrs.entity.DocType;
import com.zy.asrs.entity.Order;
import com.zy.asrs.entity.OrderDetl;
import com.zy.asrs.service.ApiLogService;
import com.zy.asrs.service.OrderService;
import com.zy.asrs.service.ReportToThirdService;
import com.zy.common.utils.HttpHandler;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.io.IOException;
import java.util.List;
@Service
@Slf4j
public class ReportToThirdServiceImpl implements ReportToThirdService {
    @Autowired
    private ApiLogService apiLogService;
    @Autowired
    private OrderService orderService;
    @Value("${NYNC.ip}")
    private String nyncIp;
    @Value("${NYNC.port}")
    private String port;
    @Value("${NYNC.saveRefDelivery}")
    private String saveRefDelivery;
    @Override
    public void report(Order order, List<OrderDetl> orderDetls, DocType docType) {
        Boolean http = false;
        switch (order.getDocType().toString()) {
            case "销售发货":
                http = http("", docType.getDocName(), nyncIp + port, saveRefDelivery);
                if (Cools.isEmpty(order.getShipCode()) || order.getShipCode().equalsIgnoreCase("1")) {
                }
                break;
            case "产成品入库":
                break;
            case "辅料采购入库":
                break;
            case "辅料及成品转库":
                break;
            case "自动包装入库":
                break;
            case "内部调拨":
                break;
            default:
                break;
        }
        if (http) {
            // 修改订单状态 4.完成 ===>> 6.已上报
            if (!orderService.updateSettle(order.getId(), 6L, null)) {
                throw new CoolException("服务器内部错误,请联系管理员");
            }
        }
    }
    private Boolean http(Object data, String docType, String url, String path) {
        String response = "";
        boolean success = false;
        try {
            response = new HttpHandler.Builder()
                    .setUri(url)
                    .setPath(path)
                    .setJson(JSON.toJSONString(data))
                    .build()
                    .doPost();
            JSONObject jsonObject = JSON.parseObject(response);
            if (jsonObject.getInteger("code").equals(1)) {
                return true;
            }
            log.error("请求接口失败!!!url:{};request:{};response:{}", url + path, JSON.toJSONString(data), response);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            apiLogService.save(
                    docType,
                    url + path,
                    null,
                    "127.0.0.1",
                    JSON.toJSONString(data),
                    response,
                    success
            );
        }
        return false;
    }
}
src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
@@ -3,22 +3,15 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.core.common.Cools;
import com.core.common.DateUtils;
import com.core.exception.CoolException;
import com.zy.asrs.entity.DocType;
import com.zy.asrs.entity.Order;
import com.zy.asrs.entity.OrderDetl;
import com.zy.asrs.service.ApiLogService;
import com.zy.asrs.service.DocTypeService;
import com.zy.asrs.service.OrderDetlService;
import com.zy.asrs.service.OrderService;
import com.zy.asrs.service.*;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.utils.OrderInAndOutUtil;
import com.zy.common.constant.MesConstant;
import com.zy.common.model.DetlDto;
import com.zy.common.model.MesPakinParam;
import com.zy.common.model.MesPakoutParam;
import com.zy.common.utils.HttpHandler;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -26,6 +19,7 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
@@ -42,10 +36,11 @@
    private OrderService orderService;
    @Autowired
    private OrderDetlService orderDetlService;
    @Autowired
    private ApiLogService apiLogService;
    @Autowired
    private DocTypeService docTypeService;
    @Autowired
    private ReportToThirdService reportToThirdService;
    @Transactional
    public ReturnT<String> startOrderIssuedOnceMore(Order order) {
@@ -55,7 +50,7 @@
        }
        Order order1 = OrderInAndOutUtil.selectByNo(order.getPakinPakoutStatus$(), order.getOrderNo());
        if (!Cools.isEmpty(order1)){
        if (!Cools.isEmpty(order1)) {
            return FAIL.setMsg("请等待...订单执行档案正在转历史档案!!!");
        }
        List<OrderDetl> orderDetls = OrderInAndOutUtil.selectByOrderId(order.getPakinPakoutStatus$(), order.getId());
@@ -65,12 +60,12 @@
        // 单据明细档
        List<OrderDetl> orderDetlList = orderDetlService.selectByOrderId(order.getId());
        for (OrderDetl orderDetl : orderDetlList){
            if (orderDetl.getQty().equals(0D)){
        for (OrderDetl orderDetl : orderDetlList) {
            if (orderDetl.getQty().equals(0D)) {
                continue;
            }
            orderDetl.setWorkQty(orderDetl.getQty());
            orderDetl.setAnfme(orderDetl.getAnfme()-orderDetl.getQty());
            orderDetl.setAnfme(orderDetl.getAnfme() - orderDetl.getQty());
            orderDetl.setQty(0D);
            orderDetlService.updateById(orderDetl);
        }
@@ -90,20 +85,20 @@
        }
        List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
        OrderInAndOutUtil.insertOrder(order.getPakinPakoutStatus$(),order);
        OrderInAndOutUtil.insertOrder(order.getPakinPakoutStatus$(), order);
        // 单据明细档
        List<DetlDto> list = new ArrayList<>();
        List<OrderDetl> orderDetlList = new ArrayList<>();
        for (OrderDetl detail : orderDetls) {
            DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(),detail.getBrand(),detail.getStandby1(),detail.getStandby2(),detail.getStandby3(),
                    detail.getBoxType1(),detail.getBoxType2(),detail.getBoxType3(), detail.getAnfme());
            DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getBrand(), detail.getStandby1(), detail.getStandby2(), detail.getStandby3(),
                    detail.getBoxType1(), detail.getBoxType2(), detail.getBoxType3(), detail.getAnfme());
            if (DetlDto.has(list, dto)) {
                DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch(),dto.getBrand(),dto.getStandby1(),dto.getStandby2(),dto.getStandby3(),dto.getBoxType1(),dto.getBoxType2(),dto.getBoxType3());
                DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch(), dto.getBrand(), dto.getStandby1(), dto.getStandby2(), dto.getStandby3(), dto.getBoxType1(), dto.getBoxType2(), dto.getBoxType3());
                assert detlDto != null;
                detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme());
                OrderDetl orderDetl = OrderDetl.find(orderDetlList, dto.getMatnr(), dto.getBatch(),dto.getBrand(),dto.getStandby1(),dto.getStandby2(),dto.getStandby3(),dto.getBoxType1(),dto.getBoxType2(),dto.getBoxType3());
                OrderDetl orderDetl = OrderDetl.find(orderDetlList, dto.getMatnr(), dto.getBatch(), dto.getBrand(), dto.getStandby1(), dto.getStandby2(), dto.getStandby3(), dto.getBoxType1(), dto.getBoxType2(), dto.getBoxType3());
                assert orderDetl != null;
                orderDetl.setAnfme(orderDetl.getAnfme() + detail.getAnfme());
            } else {
@@ -111,9 +106,9 @@
                orderDetlList.add(detail);
            }
        }
        for (OrderDetl orderDetl : orderDetlList){
        for (OrderDetl orderDetl : orderDetlList) {
            orderDetl.setWorkQty(0D);
            OrderInAndOutUtil.insertOrderDetl(order.getPakinPakoutStatus$(),order,orderDetl);
            OrderInAndOutUtil.insertOrderDetl(order.getPakinPakoutStatus$(), order, orderDetl);
        }
        // 修改订单状态 1.未作业 ===>> 2.作业中
        if (!orderService.updateSettle(order.getId(), 2L, null)) {
@@ -129,32 +124,32 @@
            return SUCCESS;
        }
        Order orderSou = orderService.selectByNo(order.getOrderNo());
        if (!orderSou.getSettle().equals(2L)){
        if (!orderSou.getSettle().equals(2L)) {
            return FAIL.setMsg("订单状态不正确,请联系管理员");
        }
        List<OrderDetl> orderDetlList = orderDetlService.selectByOrderId(orderSou.getId());
        List<OrderDetl> orderDetls = OrderInAndOutUtil.selectByOrderId(order.getPakinPakoutStatus$(), order.getId());
        for (OrderDetl orderDetlSou : orderDetlList){
            for (OrderDetl orderDetl : orderDetls){
                if (orderDetl.getQty().equals(0D)){
        for (OrderDetl orderDetlSou : orderDetlList) {
            for (OrderDetl orderDetl : orderDetls) {
                if (orderDetl.getQty().equals(0D)) {
                    continue;
                }
                if (orderDetlSou.beSimilar(orderDetl)){
                if (orderDetlSou.beSimilar(orderDetl)) {
                    double v = orderDetlSou.getAnfme() - orderDetlSou.getQty();
                    if (v<orderDetl.getQty() || orderDetl.getQty().equals(v)){
                    if (v < orderDetl.getQty() || orderDetl.getQty().equals(v)) {
                        orderDetlSou.setQty(orderDetlSou.getAnfme());
                        orderDetl.setQty(orderDetl.getQty() - v);
                        break;
                    } else {
                        orderDetlSou.setQty(orderDetlSou.getQty()+orderDetl.getQty());
                        orderDetlSou.setQty(orderDetlSou.getQty() + orderDetl.getQty());
                        orderDetl.setQty(0D);
                    }
                }
            }
        }
        for (OrderDetl orderDetlSou : orderDetlList){
        for (OrderDetl orderDetlSou : orderDetlList) {
            orderDetlService.updateById(orderDetlSou);
        }
        // 修改订单状态 2.作业中 ===>> 4.待上报
@@ -162,130 +157,20 @@
            throw new CoolException("服务器内部错误,请联系管理员");
        }
        // 修改订单状态 4.完成 ===>> 6.结束
        OrderInAndOutUtil.updateOrder(order.getPakinPakoutStatus$(),order.getId(),6L,null);
        OrderInAndOutUtil.updateOrder(order.getPakinPakoutStatus$(), order.getId(), 6L, null);
        return SUCCESS;
    }
    @Transactional
    public ReturnT<String> startOrderReport(Order order) {
        DocType docType = docTypeService.selectById(order.getDocType());
        if (null == docType) {
            return SUCCESS;
        }
        long settle = 6L;
        List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
        // 入库完成上报
        if (docType.getPakin() == 1) {
            MesPakinParam pakinParam = new MesPakinParam();
            pakinParam.setPakinTime(DateUtils.convert(order.getUpdateTime()));
            pakinParam.setLgortFrom("5008");
            pakinParam.setLgortTo("5006");
            for (OrderDetl orderDetl : orderDetls) {
                if (!orderDetl.getQty().equals(orderDetl.getAnfme())){
                    settle = 99L;//二次生成单据
                }
                String serial = Cools.isEmpty(orderDetl.getBatch()) ? "" : orderDetl.getBatch();
                pakinParam.getList().add(new MesPakinParam.Detl(orderDetl.getMatnr() + (Cools.isEmpty(serial) ? "" : "-" + serial), orderDetl.getAnfme()));
            }
            String response = "";
            boolean success = false;
            try {
//                response = new HttpHandler.Builder()
//                        .setUri(MesConstant.URL)
//                        .setPath(MesConstant.PAKIN_URL)
//                        .setJson(JSON.toJSONString(pakinParam))
//                        .build()
//                        .doPost();
//                JSONObject jsonObject = JSON.parseObject(response);
//                if (jsonObject.getInteger("code").equals(200)) {
                if (true) {
                    success = true;
                    // 修改订单状态 4.完成 ===>> 6.已上报
                    if (!orderService.updateSettle(order.getId(), settle, null)) {
                        throw new CoolException("服务器内部错误,请联系管理员");
                    }
                } else {
                    log.error("请求接口失败!!!url:{};request:{};response:{}", MesConstant.URL+MesConstant.PAKIN_URL, JSON.toJSONString(pakinParam), response);
                    throw new CoolException("上报mes系统失败");
                }
            } catch (Exception e) {
                log.error("fail", e);
//            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                return FAIL.setMsg(e.getMessage());
            } finally {
                try {
                    // 保存接口日志
                    apiLogService.save(
                            "成品库入库上报",
                            MesConstant.URL + MesConstant.PAKIN_URL,
                            null,
                            "127.0.0.1",
                            JSON.toJSONString(pakinParam),
                            response,
                            success
                    );
                } catch (Exception e) { log.error("", e); }
            }
        }
        // 出库完成上报
        if (docType.getPakout() == 1) {
            MesPakoutParam pakoutParam = new MesPakoutParam();
            pakoutParam.setTag(!order.getDocType$().equalsIgnoreCase("手动出库单"));
            pakoutParam.setPakoutTime(DateUtils.convert(order.getUpdateTime()));
            pakoutParam.setLgortFrom("5006");
            pakoutParam.setLgortTo("1111");
            if (!pakoutParam.isTag()) {
                pakoutParam.setKunnr("C1000");
            }
            pakoutParam.setOrderNo(order.getOrderNo());
            for (OrderDetl orderDetl : orderDetls) {
                if (!orderDetl.getQty().equals(orderDetl.getAnfme())){
                    settle = 99L;//二次生成单据
                }
                String serial = Cools.isEmpty(orderDetl.getBatch()) ? "" : orderDetl.getBatch();
                pakoutParam.getList().add(new MesPakoutParam.Detl(orderDetl.getMatnr() + (Cools.isEmpty(serial) ? "" : "-" + serial), orderDetl.getAnfme()));
            }
            String response = "";
            boolean success = false;
            try {
//                response = new HttpHandler.Builder()
//                        .setUri(MesConstant.URL)
//                        .setPath(MesConstant.PAKOUT_URL)
//                        .setJson(JSON.toJSONString(pakoutParam))
//                        .build()
//                        .doPost();
//                JSONObject jsonObject = JSON.parseObject(response);
//                if (jsonObject.getInteger("code").equals(200)) {
                if (true) {
                    success = true;
                    // 修改订单状态 4.完成 ===>> 6.已上报
                    if (!orderService.updateSettle(order.getId(), settle, null)) {
                        throw new CoolException("服务器内部错误,请联系管理员");
                    }
                } else {
                    log.error("请求接口失败!!!url:{};request:{};response:{}", MesConstant.URL+MesConstant.PAKOUT_URL, JSON.toJSONString(pakoutParam), response);
                    throw new CoolException("上报mes系统失败");
                }
            } catch (Exception e) {
                log.error("fail", e);
//            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                return FAIL.setMsg(e.getMessage());
            } finally {
                try {
                    // 保存接口日志
                    apiLogService.save(
                            "成品库出库上报",
                            MesConstant.URL + MesConstant.PAKOUT_URL,
                            null,
                            "127.0.0.1",
                            JSON.toJSONString(pakoutParam),
                            response,
                            success
                    );
                } catch (Exception e) { log.error("", e); }
            }
        }
        reportToThirdService.report(order, orderDetls, docType);
        return SUCCESS;
    }
}
src/main/java/com/zy/common/config/ds/PrimaryDataSourceConfig.java
@@ -1,7 +1,6 @@
package com.zy.common.config.ds;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
@@ -13,18 +12,18 @@
import javax.sql.DataSource;
@Configuration
@MapperScan(basePackages = {"com.zy.asrs.*.*", "com.zy.system.*.*"}, sqlSessionFactoryRef = "primarySqlSessionFactory")
@MapperScan(basePackages = {"com.zy.asrs.mapper", "com.zy.system.mapper"}, sqlSessionFactoryRef = "primarySqlSessionFactory")
public class PrimaryDataSourceConfig {
    @Bean(name = "primarySqlSessionFactory")
    @Primary
    public SqlSessionFactory primarySqlSessionFactory(@Qualifier("dataSource") DataSource dataSource) throws Exception {
        SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
    public MybatisSqlSessionFactoryBean primarySqlSessionFactory(@Qualifier("dataSource") DataSource dataSource) throws Exception {
        MybatisSqlSessionFactoryBean sessionFactory = new MybatisSqlSessionFactoryBean();
        sessionFactory.setDataSource(dataSource);
        // 设置MyBatis的Mapper XML文件路径
        sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver()
                .getResources("classpath:mapper/*.xml"));
        return sessionFactory.getObject();
                .getResources("classpath:mapper/asrs/*.xml"));
        return sessionFactory;
    }
    @Bean(name = "transactionManager")
src/main/java/com/zy/common/config/ds/SecondaryDataSourceConfig.java
@@ -1,5 +1,6 @@
package com.zy.common.config.ds;
import com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.annotation.MapperScan;
@@ -12,17 +13,17 @@
import javax.sql.DataSource;
@Configuration
@MapperScan(basePackages = "com.zy.nc", sqlSessionFactoryRef = "secondarySqlSessionFactory")
@MapperScan(basePackages = "com.zy.nc.mapper", sqlSessionFactoryRef = "secondarySqlSessionFactory")
public class SecondaryDataSourceConfig {
    @Bean(name = "secondarySqlSessionFactory")
    public SqlSessionFactory secondarySqlSessionFactory(@Qualifier("slaveDataSource") DataSource dataSource) throws Exception {
        SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
    public MybatisSqlSessionFactoryBean secondarySqlSessionFactory(@Qualifier("slaveDataSource") DataSource dataSource) throws Exception {
        MybatisSqlSessionFactoryBean  sessionFactory = new MybatisSqlSessionFactoryBean();
        sessionFactory.setDataSource(dataSource);
        // 设置MyBatis的Mapper XML文件路径
        sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver()
                .getResources("classpath:mapper2/*.xml"));
        return sessionFactory.getObject();
                .getResources("classpath:mapper/nc/*.xml"));
        return sessionFactory;
    }
    @Bean(name = "secondaryTransactionManager")
src/main/java/com/zy/common/constant/MesConstant.java
File was deleted
src/main/java/com/zy/nc/entity/NccSaleDbckmxb.java
New file
@@ -0,0 +1,108 @@
package com.zy.nc.entity;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
@Data
@TableName("ncc_sale_dbckmxb")
public class NccSaleDbckmxb implements Serializable {
    @TableId
    private String cgeneralhid;
    private String vbillcode;
    private String billtypename;
    private String dbilldate;
    private String cgeneralbid;
    private String zzbm;
    private String zzmc;
    private BigDecimal dblx;
    private String ckbm;
    private String ckmc;
    private String drzzbm;
    private String drzzmc;
    private String drckbm;
    private String drckmc;
    private BigDecimal djzt;
    private String kczt;
    private String wlbm;
    private String wlmc;
    private String zt;
    private String ccorrespondcode;
    private String zdw;
    private String fdw;
    private String bmbm;
    private String bmmc;
    private String khbm;
    private String khmc;
    private String khjc;
    private BigDecimal yfsl;
    private BigDecimal yfzsl;
    private BigDecimal sfzsl;
    private BigDecimal sffsl;
    private BigDecimal je;
    private String ts;
    private BigDecimal dr;
    private String btranendflag;
    private String csumid;
    private BigDecimal naccumoutbacknum;
    private BigDecimal naccumoutsignnum;
    private BigDecimal naccumvminum;
    private BigDecimal naccumwastnum;
    private BigDecimal ncorrespondastnum;
    private BigDecimal ncorrespondgrsnum;
    private BigDecimal ncorrespondnum;
    private BigDecimal ntotaltrannum;
    private BigDecimal ntranoutastnum;
    private BigDecimal ntranoutnum;
}
src/main/java/com/zy/nc/entity/NccSaleXsckmx.java
New file
@@ -0,0 +1,137 @@
package com.zy.nc.entity;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
@Data
@TableName("ncc_sale_xsckmx")
public class NccSaleXsckmx implements Serializable {
    @TableId(value = "cgeneralbid", type = IdType.INPUT)
    @TableField("cgeneralbid")
    private String cgeneralbid;
    private String cszzbm;
    private String xxzzmc;
    private String xsbmbm;
    private String xsbmmc;
    private String billcode;
    private String hts;
    private String billdate;
    private BigDecimal hdr;
    private String approdate;
    private String saler;
    private String djlx;
    private String storname;
    private String storcode;
    private String sssyb;
    private String custcode;
    private String custname;
    private String maker;
    private String approver;
    private String taudittime;
    private String status;
    private String crowno;
    private BigDecimal bdr;
    private String bts;
    private String mlbm;
    private String mlmc;
    private String wlu8name;
    private String mlgg;
    private String mlxh;
    private String mlflbm;
    private String mlflmc;
    private String zsjflbm;
    private String zsjflmc;
    private String mlzdw;
    private String mlfdw;
    private BigDecimal sffsl;
    private BigDecimal sfzsl;
    private BigDecimal norigtaxnetprice;
    private BigDecimal ntaxprice;
    private BigDecimal norigprice;
    private BigDecimal nprice;
    private BigDecimal ntaxmny;
    private BigDecimal nmny;
    private BigDecimal ntax;
    private String vbatchcode;
    private String jt1;
    private String jt2;
    private String jt3;
    private String gx;
    private String clcj;
    private String ytdjh;
    private String lydjh;
    private String xsqy;
    private String xsflbm;
    private String xsflmc;
    private String ckbm;
    private String ckmc;
    private String sjflbm;
    private String sjflmc;
}
src/main/java/com/zy/nc/mapper/NccSaleDbckmxbMapper.java
New file
@@ -0,0 +1,12 @@
package com.zy.nc.mapper;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.zy.nc.entity.NccSaleDbckmxb;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface NccSaleDbckmxbMapper extends BaseMapper<NccSaleDbckmxb> {
}
src/main/java/com/zy/nc/mapper/NccSaleXsckmxMapper.java
New file
@@ -0,0 +1,12 @@
package com.zy.nc.mapper;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.zy.nc.entity.NccSaleXsckmx;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface NccSaleXsckmxMapper extends BaseMapper<NccSaleXsckmx> {
}
src/main/java/com/zy/nc/task/PlanOrderTask.java
New file
@@ -0,0 +1,33 @@
package com.zy.nc.task;
import com.zy.asrs.task.core.ReturnT;
import com.zy.nc.task.handler.PlanOrderHandler;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@Slf4j
@Component
public class PlanOrderTask {
    @Autowired
    private PlanOrderHandler planOrderHandler;
    @Scheduled(cron = "0/3 * * * * ? ")
    public void execute1() {
        ReturnT<String> returnT = planOrderHandler.start1();
        if (!returnT.isSuccess()) {
            log.error(returnT.getMsg());
        }
    }
    @Scheduled(cron = "0/3 * * * * ? ")
    public void execute2() {
        ReturnT<String> returnT = planOrderHandler.start2();
        if (!returnT.isSuccess()) {
            log.error(returnT.getMsg());
        }
    }
}
src/main/java/com/zy/nc/task/handler/PlanOrderHandler.java
New file
@@ -0,0 +1,45 @@
package com.zy.nc.task.handler;
import com.alibaba.fastjson.JSONObject;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
import com.zy.nc.entity.NccSaleDbckmxb;
import com.zy.nc.entity.NccSaleXsckmx;
import com.zy.nc.mapper.NccSaleDbckmxbMapper;
import com.zy.nc.mapper.NccSaleXsckmxMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
@Slf4j
public class PlanOrderHandler extends AbstractHandler<String> {
    @Autowired
    private NccSaleXsckmxMapper nccSaleXsckmxMapper;
    @Autowired
    private NccSaleDbckmxbMapper nccSaleDbckmxbMapper;
    /**
     * 发货
     *
     * @return
     */
    public ReturnT<String> start1() {
        NccSaleXsckmx nccSaleXsckmx = nccSaleXsckmxMapper.selectById("1001A1100000000H9KKJ");
        log.info("shuju:{}", JSONObject.toJSON(nccSaleXsckmx));
        return SUCCESS;
    }
    /**
     * 调拨
     *
     * @return
     */
    public ReturnT<String> start2() {
        NccSaleDbckmxb nccSaleDbckmxb = nccSaleDbckmxbMapper.selectById("1001A1100000000H9KKJ");
        log.info("shuju:{}", JSONObject.toJSON(nccSaleDbckmxb));
        return SUCCESS;
    }
}
src/main/resources/application.yml
@@ -33,8 +33,7 @@
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver
mybatis-plus:
  mapper-locations: classpath:mapper/*.xml
logging:
  path: /stock/out/@pom.build.finalName@/logs
src/main/resources/mapper/asrs/AdjDetlMapper.xml
src/main/resources/mapper/asrs/ApiLogMapper.xml
src/main/resources/mapper/asrs/ApiMapper.xml
src/main/resources/mapper/asrs/AutoMoveMapper.xml
src/main/resources/mapper/asrs/BasCrnErrorMapper.xml
src/main/resources/mapper/asrs/BasCrnOptMapper.xml
src/main/resources/mapper/asrs/BasCrnStatusMapper.xml
src/main/resources/mapper/asrs/BasCrnpMapper.xml
src/main/resources/mapper/asrs/BasDevpMapper.xml
src/main/resources/mapper/asrs/BasErrLogMapper.xml
src/main/resources/mapper/asrs/BasLocStsMapper.xml
src/main/resources/mapper/asrs/BasPlcerrorMapper.xml
src/main/resources/mapper/asrs/BasProcessProceduresMapper.xml
src/main/resources/mapper/asrs/BasQualityTestingMapper.xml
src/main/resources/mapper/asrs/BasWhsMapper.xml
src/main/resources/mapper/asrs/BasWrkIotypeMapper.xml
src/main/resources/mapper/asrs/BasWrkStatusMapper.xml
src/main/resources/mapper/asrs/ConfigMapper.xml
src/main/resources/mapper/asrs/DocLogMapper.xml
src/main/resources/mapper/asrs/DocTypeMapper.xml
src/main/resources/mapper/asrs/HostMapper.xml
src/main/resources/mapper/asrs/LocCheckMapper.xml
src/main/resources/mapper/asrs/LocDetlMapper.xml
src/main/resources/mapper/asrs/LocMastMapper.xml
src/main/resources/mapper/asrs/LocOwnerMapper.xml
src/main/resources/mapper/asrs/LocRuleMapper.xml
src/main/resources/mapper/asrs/ManLocDetlMapper.xml
src/main/resources/mapper/asrs/MatMapper.xml
src/main/resources/mapper/asrs/NodeMapper.xml
src/main/resources/mapper/asrs/OperateLogMapper.xml
src/main/resources/mapper/asrs/OrderDetlMapper.xml
src/main/resources/mapper/asrs/OrderDetlPakinMapper.xml
src/main/resources/mapper/asrs/OrderDetlPakoutMapper.xml
src/main/resources/mapper/asrs/OrderMapper.xml
src/main/resources/mapper/asrs/OrderPakinMapper.xml
src/main/resources/mapper/asrs/OrderPakoutMapper.xml
src/main/resources/mapper/asrs/OrderSettleMapper.xml
src/main/resources/mapper/asrs/PackMapper.xml
src/main/resources/mapper/asrs/PermissionMapper.xml
src/main/resources/mapper/asrs/RequestLogMapper.xml
src/main/resources/mapper/asrs/ResourceMapper.xml
src/main/resources/mapper/asrs/RoleMapper.xml
src/main/resources/mapper/asrs/RolePermissionMapper.xml
src/main/resources/mapper/asrs/RoleResourceMapper.xml
src/main/resources/mapper/asrs/RowLastnoMapper.xml
src/main/resources/mapper/asrs/RowLastnoTypeMapper.xml
src/main/resources/mapper/asrs/SaasLogMapper.xml
src/main/resources/mapper/asrs/StaDescMapper.xml
src/main/resources/mapper/asrs/StkPlcmMapper.xml
src/main/resources/mapper/asrs/TagMapper.xml
src/main/resources/mapper/asrs/TrayCodeMapper.xml
src/main/resources/mapper/asrs/UserLoginMapper.xml
src/main/resources/mapper/asrs/UserMapper.xml
src/main/resources/mapper/asrs/ViewInOutMapper.xml
src/main/resources/mapper/asrs/ViewStayTimeMapper.xml
src/main/resources/mapper/asrs/ViewStockUseMapper.xml
src/main/resources/mapper/asrs/ViewWorkInMapper.xml
src/main/resources/mapper/asrs/WaitPakinLogMapper.xml
src/main/resources/mapper/asrs/WaitPakinMapper.xml
src/main/resources/mapper/asrs/WrkDetlLogMapper.xml
src/main/resources/mapper/asrs/WrkDetlMapper.xml
src/main/resources/mapper/asrs/WrkLastnoMapper.xml
src/main/resources/mapper/asrs/WrkMastExecuteLogMapper.xml
src/main/resources/mapper/asrs/WrkMastExecuteMapper.xml
src/main/resources/mapper/asrs/WrkMastFourWarVehicleLogMapper.xml
src/main/resources/mapper/asrs/WrkMastFourWarVehicleMapper.xml
src/main/resources/mapper/asrs/WrkMastLogMapper.xml
src/main/resources/mapper/asrs/WrkMastMapper.xml
src/main/resources/mapper/nc/NccSaleDbckmxbMapper.xml
New file
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zy.nc.mapper.NccSaleDbckmxbMapper">
</mapper>
src/main/resources/mapper/nc/NccSaleXsckmxMapper.xml
New file
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zy.nc.mapper.NccSaleXsckmxMapper">
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.zy.nc.entity.NccSaleXsckmx">
        <id column="cgeneralbid" property="cgeneralbid" />
    </resultMap>
</mapper>
src/main/resources/mapper2/test