自动化立体仓库 - WMS系统
1
zhang
3 天以前 13bdad370f0b35b68f79a75f8183a23135e45225
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;
@@ -13,6 +14,7 @@
import com.zy.asrs.service.*;
import com.zy.common.model.DetlDto;
import com.zy.common.web.BaseController;
import com.zy.system.service.ConfigService;
import lombok.Synchronized;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
@@ -57,6 +59,8 @@
    private AgvLocDetlService agvLocDetlService;
    @Autowired
    private FlowLogService flowLogService;
    @Autowired
    private ConfigService configService;
    @GetMapping("/doc/type/list")
    @Transactional
@@ -215,6 +219,52 @@
//        return R.ok(orderDetlService.selectPage(new Page<>(curr, limit), wrapper));
    }
    //  入库订单明细
    @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) {
        EntityWrapper<OrderDetl> wrapper = new EntityWrapper<>();
        excludeTrash(param);
        Object o = param.get("orderType");
        param.remove("orderType");
        convert(param, wrapper);
        if (o != null) {
            String[] split = o.toString().split(",");
            if (split[0].equals("39")) {
                //wrapper.andNew().like("matnr", "401", SqlLike.RIGHT).or().like("matnr", "402", SqlLike.RIGHT).andNew().in("source", split);
                wrapper.in("source", split);
                List<String> m = configService.getMatCode();
                if (!Cools.isEmpty(m)) {
                    for (int i = 0; i < m.size(); i++) {
                        if (i == 0) {
                            wrapper.andNew().like("matnr", m.get(i), SqlLike.RIGHT);
                        } else {
                            wrapper.or().like("matnr", m.get(i), SqlLike.RIGHT);
                        }
                    }
                }
            } else {
                wrapper.in("source", split);
            }
        }
//        List<DocType> pakins = docTypeService.selectList(new EntityWrapper<DocType>().eq("pakin", 1));
//        List<Long> docIds = new ArrayList<>();
//        for (DocType pakin : pakins) {
//            if (pakin.getDocId() != 32) {
//                docIds.add(pakin.getDocId());
//            }
//        }
        Page<OrderDetl> orderDetlPage = orderDetlService.selectPage(new Page<>(curr, limit), wrapper);
        return R.ok(orderDetlPage);
    }
    @RequestMapping(value = "/order/detls/pakin")
    @ManagerAuth
    public R orderDetlsIn(@RequestParam(defaultValue = "1") Integer curr,
@@ -269,11 +319,22 @@
        List<DocType> pakins = docTypeService.selectList(new EntityWrapper<DocType>().eq("pakin", 1));
        List<Long> docIds = new ArrayList<>();
        for (DocType pakin : pakins) {
            if (pakin.getDocId() == 36) {
            if (pakin.getDocId() == 36 || pakin.getDocId() == 39 || pakin.getDocId() == 19) {
                docIds.add(pakin.getDocId());
            }
        }
        wrapper.in("source", docIds);
        List<String> m = configService.getMatCode2();
        if (!Cools.isEmpty(m)) {
            for (int i = 0; i < m.size(); i++) {
                if (i == 0) {
                    wrapper.andNew().like("matnr", m.get(i), SqlLike.RIGHT);
                } else {
                    wrapper.or().like("matnr", m.get(i), SqlLike.RIGHT);
                }
            }
        }
        //wrapper.like("matnr", "50", SqlLike.RIGHT);
        return R.ok(orderDetlService.selectPage(new Page<>(curr, limit), wrapper));
    }
@@ -318,10 +379,58 @@
                docIds.add(pakin.getDocId());
            }
        }
        //wrapper.notLike("matnr", "401", SqlLike.RIGHT).notLike("matnr", "402", SqlLike.RIGHT);
        //wrapper.in("source", docIds);
        wrapper.in("source", docIds);
        List<String> m = configService.getMatCode();
        if (!Cools.isEmpty(m)) {
            for (int i = 0; i < m.size(); i++) {
                if (i == 0) {
                    wrapper.andNew().notLike("matnr", m.get(i), SqlLike.RIGHT);
                } else {
                    wrapper.or().notLike("matnr", m.get(i), SqlLike.RIGHT);
                }
            }
        }
        Page<OrderDetl> page = orderDetlService.selectPage(new Page<>(curr, limit), wrapper);
        for (OrderDetl record : page.getRecords()) {
            Double sumAnfme = agvLocDetlService.getSumAnfmeDb(record.getMatnr(), record.getThreeCode(), 1);
            record.setStock(sumAnfme == null ? 0 : sumAnfme);
        }
        return R.ok(page);
    }
    @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) {
        EntityWrapper<OrderDetl> wrapper = new EntityWrapper<>();
        excludeTrash(param);
        Object o = param.get("orderType");
        if (o != null) {
            String[] split = o.toString().split(",");
            wrapper.in("source", split);
            param.remove("orderType");
        }
        convert(param, wrapper);
//        return R.ok(orderDetlService.getPakoutPage(toPage(curr, limit, param, OrderDetl.class)));
//        List<DocType> pakins = docTypeService.selectList(new EntityWrapper<DocType>().eq("pakout", 1));
//        List<Long> docIds = new ArrayList<>();
//        for (DocType pakin : pakins) {
//            if (pakin.getDocId() == 33) {
//                docIds.add(pakin.getDocId());
//            }
//        }
        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.getSumAnfmeDb2(record.getMatnr(), record.getThreeCode(), 1);
            record.setStock(sumAnfme == null ? 0 : sumAnfme);
        }
        return R.ok(page);
@@ -370,6 +479,21 @@
            return R.error("单据编号已存在");
        }
        Date now = new Date();
        if (param.getDocType() == 33) {
            for (OrderDetl orderDetl : param.getOrderDetlList()) {
                boolean flag = false;
                List<String> matCode = configService.getMatCode();
                for (String s : matCode) {
                    if (orderDetl.getMatnr().startsWith(s)) {
                        flag = true;
                    }
                }
                if (flag) {
                    param.setOrderNo("DC" + param.getOrderNo());
                    break;
                }
            }
        }
        order = new Order(
                String.valueOf(snowflakeIdWorker.nextId()),    // 编号[非空]
                param.getOrderNo(),    // 订单编号
@@ -487,9 +611,22 @@
            }
        }
        if (param.getDocType().intValue() == 32) {
            String ono = "DB";
            for (OrderDetl orderDetl : param.getOrderDetlList()) {
                boolean flag2 = false;
                List<String> matCode = configService.getMatCode();
                for (String s : matCode) {
                    if (orderDetl.getMatnr().startsWith(s)) {
                        flag2 = true;
                    }
                }
                if (flag2) {
                    ono = "DC";
                }
            }
            order = new Order(
                    String.valueOf(snowflakeIdWorker.nextId()),    // 编号[非空]
                    "DB" + param.getOrderNo(),    // 订单编号
                    ono + param.getOrderNo(),    // 订单编号
                    DateUtils.convert(now),    // 单据日期
                    33L,    // 单据类型
                    null,    // 项目编号
@@ -877,13 +1014,17 @@
    }
    @RequestMapping(value = "/order/update/auth")
    @ManagerAuth
    @ManagerAuth(memo = "修改订单状态")
    public R update(Order order) {
        if (Cools.isEmpty(order) || null == order.getId()) {
            return R.error("参数缺失");
        }
        order.setUpdateBy(getUserId());
        order.setUpdateTime(new Date());
        Long settle = order.getSettle();
        if (settle != null && settle == 6) {
            order.setMemo(Cools.isEmpty(order.getMemo()) ? "手动完结" : order.getMemo() + "手动完结");
        }
        if (!orderService.updateById(order)) {
            throw new CoolException("修改订单失败");
        }
@@ -1113,7 +1254,19 @@
            }
            // 生成调拨单
            if (docType.getDocId().intValue() == 32) {
                String dbUuid = "DB" + odNo;
                String dbUuid;
                boolean flag3 = false;
                List<String> matCode = configService.getMatCode();
                for (String s : matCode) {
                    if (matnr.startsWith(s)) {
                        flag3 = true;
                    }
                }
                if (!Cools.isEmpty(matnr) && flag3) {
                    dbUuid = "DC" + odNo;
                } else {
                    dbUuid = "DB" + odNo;
                }
                Order order2 = orderService.selectByNo(dbUuid);
                if (null == order2) {
                    order2 = new Order(
@@ -1380,7 +1533,19 @@
                odNo += "_O";
            }
            if (docName.contains("调拨单")) {
                odNo = "DB" + odNo;
                boolean flag6 = false;
                List<String> matCode = configService.getMatCode();
                for (String s : matCode) {
                    if (matnr.startsWith(s)) {
                        flag6 = true;
                    }
                }
                if (!Cools.isEmpty(matnr) && flag6) {
                    odNo = "DC" + odNo;
                } else {
                    odNo = "DB" + odNo;
                }
                //odNo = "DB" + odNo;
            } else if (docName.contains("加工单")) {
                odNo = "JG" + odNo;
            } else {