自动化立体仓库 - WMS系统
zhangc
2025-02-20 7299282e6d9bfb7cf008477c2af888b3930bd716
兼容四期
5个文件已修改
152 ■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/OpenController.java 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/OrderController.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/OrderDetlController.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/OutController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/OpenController.java
@@ -1,14 +1,11 @@
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;
@@ -22,9 +19,7 @@
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;
@@ -138,6 +133,8 @@
            case "MO":
                mappingPakInOrderParam(param, true, "银座委外生产订单");
                mappingOrderParam(param, false, "银座未包装成品出库单");
                mappingOrderParamDB40(param, false, "半成品调拨单");
                mappingOrderParam40(param, false, "半成品出库单");
                if (!Cools.isEmpty(param.getChildren())) {
                    mappingOrderParamChild(param, false, "银座委外材料出库单");
                }
@@ -212,6 +209,8 @@
            case "MO":
                mappingPakInOrderParam(param, true, "银座生产订单");
                mappingOrderParam(param, false, "银座未包装成品出库单");
                mappingOrderParamDB40(param, false, "半成品调拨单");
                mappingOrderParam40(param, false, "半成品出库单");
                if (!Cools.isEmpty(param.getChildren())) {
                    mappingOrderParamChild(param, false, "银座生产材料出库单");
                }
@@ -477,6 +476,90 @@
        //return orderSyncParam;
    }
    private void mappingOrderParamDB40(OrderProdSyncParam param, boolean pakin, String docName) {
        //生成单据主体
        OrderSyncParam orderSyncParam = new OrderSyncParam();
        Synchro.Copy(param, orderSyncParam);
        if (Cools.isEmpty(orderSyncParam.getCPOID())) {
            orderSyncParam.setCPOID(param.getOrderNoT());
        }
        if (Cools.isEmpty(orderSyncParam.getDdate())) {
            orderSyncParam.setDdate(param.getOrderTime());
        }
        orderSyncParam.setCPOID("DC" + orderSyncParam.getCPOID());
        //生成单据明细
        OrderSyncParam.OrderDetl orderDetl = new OrderSyncParam.OrderDetl();
        Synchro.Copy(param, orderDetl);
        if (!(param.getCInvCode().startsWith("401") || param.getCInvCode().startsWith("402"))) {
            return;
        }
        //orderDetl.setcInvCode(param.getCInvCode());
        //orderDetl.setiQuantity(param.getIQuantity());
        orderDetl.setCDefine22(param.getIvouchrowno());
        //orderDetl.setbFree1(param.getBFree1());
        orderDetl.setId(param.getId());
        orderDetl.setIvouchrowno(param.getIvouchrowno());
        orderDetl.setINum(param.getINum());
        orderDetl.setIinvexchrate(param.getIinvexchrate());
        //添加单据明细到单据主体
        List<OrderSyncParam.OrderDetl> orderDetls = new ArrayList<>();
        orderDetls.add(orderDetl);
        orderSyncParam.setChildren(orderDetls);
//        String docName = param.getIQuantity() > 0 ?  "银座产品生产入库单" : "入库退回单";
//        boolean pakin = param.getIQuantity() > 0 ? true : false;
        openService.syncOrder(orderSyncParam, pakin, docName);
        //return orderSyncParam;
    }
    private void mappingOrderParam40(OrderProdSyncParam param, boolean pakin, String docName) {
        //生成单据主体
        OrderSyncParam orderSyncParam = new OrderSyncParam();
        Synchro.Copy(param, orderSyncParam);
        if (Cools.isEmpty(orderSyncParam.getCPOID())) {
            orderSyncParam.setCPOID(param.getOrderNoT());
        }
        if (Cools.isEmpty(orderSyncParam.getDdate())) {
            orderSyncParam.setDdate(param.getOrderTime());
        }
        orderSyncParam.setCPOID("EB" + orderSyncParam.getCPOID());
        //生成单据明细
        OrderSyncParam.OrderDetl orderDetl = new OrderSyncParam.OrderDetl();
        Synchro.Copy(param, orderDetl);
        if (!(param.getCInvCode().startsWith("401") || param.getCInvCode().startsWith("402"))) {
            return;
        }
        //orderDetl.setcInvCode(param.getCInvCode());
        //orderDetl.setiQuantity(param.getIQuantity());
        orderDetl.setCDefine22(param.getIvouchrowno());
        //orderDetl.setbFree1(param.getBFree1());
        orderDetl.setId(param.getId());
        orderDetl.setIvouchrowno(param.getIvouchrowno());
        orderDetl.setINum(param.getINum());
        orderDetl.setIinvexchrate(param.getIinvexchrate());
        //添加单据明细到单据主体
        List<OrderSyncParam.OrderDetl> orderDetls = new ArrayList<>();
        orderDetls.add(orderDetl);
        orderSyncParam.setChildren(orderDetls);
//        String docName = param.getIQuantity() > 0 ?  "银座产品生产入库单" : "入库退回单";
//        boolean pakin = param.getIQuantity() > 0 ? true : false;
        openService.syncOrder(orderSyncParam, pakin, docName);
        //return orderSyncParam;
    }
//    @PostMapping("/order/add")
//    public R re(@RequestHeader(required = false) String appkey,
//                HttpServletRequest request) throws IOException {
src/main/java/com/zy/asrs/controller/OrderController.java
@@ -1,6 +1,7 @@
package com.zy.asrs.controller;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.enums.SqlLike;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
@@ -220,16 +221,20 @@
    @RequestMapping(value = "/order/detls/pakin/page/auth/v2")
    @ManagerAuth
    public R orderDetlsV2(@RequestParam(defaultValue = "1") Integer curr,
                        @RequestParam(defaultValue = "100") Integer limit,
                        @RequestParam(required = false) String orderByField,
                        @RequestParam(required = false) String orderByType,
                        @RequestParam Map<String, Object> param) {
                          @RequestParam(defaultValue = "100") Integer limit,
                          @RequestParam(required = false) String orderByField,
                          @RequestParam(required = false) String orderByType,
                          @RequestParam Map<String, Object> param) {
        EntityWrapper<OrderDetl> wrapper = new EntityWrapper<>();
        excludeTrash(param);
        Object o = param.get("orderType");
        if (o != null) {
            String[] split = o.toString().split(",");
            wrapper.in("source", split);
            if (split[0].equals("39")) {
                wrapper.in("source", split).andNew().like("matnr", "401", SqlLike.RIGHT).or().like("matnr", "402", SqlLike.RIGHT);
            } else {
                wrapper.in("source", split);
            }
            param.remove("orderType");
        }
        convert(param, wrapper);
@@ -299,10 +304,11 @@
        List<DocType> pakins = docTypeService.selectList(new EntityWrapper<DocType>().eq("pakin", 1));
        List<Long> docIds = new ArrayList<>();
        for (DocType pakin : pakins) {
            if (pakin.getDocId() == 36||pakin.getDocId() == 39) {
            if (pakin.getDocId() == 36 || pakin.getDocId() == 39) {
                docIds.add(pakin.getDocId());
            }
        }
        wrapper.like("matnr", "50", SqlLike.RIGHT);
        wrapper.in("source", docIds);
        return R.ok(orderDetlService.selectPage(new Page<>(curr, limit), wrapper));
    }
@@ -348,6 +354,7 @@
                docIds.add(pakin.getDocId());
            }
        }
        wrapper.notLike("matnr", "401", SqlLike.RIGHT).notLike("matnr", "402", SqlLike.RIGHT);
        wrapper.in("source", docIds);
        Page<OrderDetl> page = orderDetlService.selectPage(new Page<>(curr, limit), wrapper);
        for (OrderDetl record : page.getRecords()) {
@@ -361,10 +368,10 @@
    @RequestMapping(value = "/order/bcpDb/detls/pakin/page/auth/v2")
    @ManagerAuth
    public R bcpDbOrderDetlsV2(@RequestParam(defaultValue = "1") Integer curr,
                             @RequestParam(defaultValue = "100") Integer limit,
                             @RequestParam(required = false) String orderByField,
                             @RequestParam(required = false) String orderByType,
                             @RequestParam Map<String, Object> param) {
                               @RequestParam(defaultValue = "100") Integer limit,
                               @RequestParam(required = false) String orderByField,
                               @RequestParam(required = false) String orderByType,
                               @RequestParam Map<String, Object> param) {
        EntityWrapper<OrderDetl> wrapper = new EntityWrapper<>();
        excludeTrash(param);
        Object o = param.get("orderType");
@@ -382,7 +389,8 @@
//                docIds.add(pakin.getDocId());
//            }
//        }
        //wrapper.in("source", docIds);
        wrapper.like("order_no", "DC", SqlLike.RIGHT);
        //     wrapper.in("source", docIds);
        Page<OrderDetl> page = orderDetlService.selectPage(new Page<>(curr, limit), wrapper);
        for (OrderDetl record : page.getRecords()) {
            Double sumAnfme = agvLocDetlService.getSumAnfmeDb(record.getMatnr(), record.getThreeCode(), 1);
src/main/java/com/zy/asrs/controller/OrderDetlController.java
@@ -1,6 +1,7 @@
package com.zy.asrs.controller;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.enums.SqlLike;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
@@ -16,7 +17,6 @@
import com.zy.common.web.BaseController;
import lombok.Synchronized;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StopWatch;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
@@ -199,10 +199,15 @@
        Object o = param.get("orderType");
        if (o != null) {
            String[] split = o.toString().split(",");
            wrapper.in("source", split);
            //-1说明是半成品箱壳出库单
            if (split[0].equals("-1")) {
                wrapper.like("order_no", "EB", SqlLike.RIGHT);
                wrapper.in("source", split);
            } else {
                wrapper.in("source", split);
            }
            param.remove("orderType");
        }
        convertLike(param, wrapper);
        if (!Cools.isEmpty(orderByField)) {
            wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));
src/main/java/com/zy/asrs/controller/OutController.java
@@ -160,6 +160,11 @@
    }
    /**
     * 二厂
     * @param ids
     * @return
     */
    @PostMapping("/bcp/out/pakout/preview/auth/v2")
    @ManagerAuth
    public R bcpPakoutPreviewV2(@RequestBody List<Long> ids) {
src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java
@@ -100,13 +100,17 @@
        //根据物料号和批次找到对应的库存,并且按照修改时间排序
        Wrapper<AgvLocDetl> wrapper = new EntityWrapper<AgvLocDetl>().eq("matnr", matnr).orderBy("modi_time");
        if (type != null) {
            if (type.equals(AsrsConstants.ERCHANG)){
            if (type.equals(AsrsConstants.ERCHANG)) {
                wrapper.notLike("loc_no", "F3");
            }else {
                wrapper.notLike("loc_no", "F1");
            } else {
                if (matnr.startsWith("401") || matnr.startsWith("402")) {
                    //wrapper.notLike("loc_no", "F3");
                } else {
                    wrapper.notLike("loc_no", "F1");
                }
            }
        }
        //一致有PE带批次字段导致,无法出库,就注释掉
        //一直有PE带批次字段导致,无法出库,就注释掉
        //wapperSetCondition(wrapper, "batch", batch);
        wapperSetCondition(wrapper, "three_code", csocode);
        //wapperSetCondition(wrapper, "dead_time", isoseq);
@@ -185,6 +189,7 @@
    }
    /*
    更新库存明细
     */