自动化立体仓库 - WMS系统
ZY
2025-03-25 40631d025469ac3fb60a57dfab1d9022cb0298a6
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;
@@ -9,14 +10,15 @@
import com.core.common.Cools;
import com.core.common.DateUtils;
import com.core.common.R;
import com.zy.asrs.entity.AgvWrkDetl;
import com.zy.asrs.entity.DocType;
import com.zy.asrs.entity.Order;
import com.zy.asrs.entity.OrderDetl;
import com.zy.asrs.mapper.AgvWrkDetlMapper;
import com.zy.asrs.service.*;
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;
@@ -39,6 +41,9 @@
    private LocDetlService locDetlService;
    @Autowired
    private AgvLocDetlService agvLocDetlService;
    @Autowired
    private AgvWrkDetlMapper agvWrkDetlMapper;
    @RequestMapping(value = "/orderDetl/{id}/auth")
    @ManagerAuth
@@ -183,6 +188,8 @@
        for (OrderDetl record : page.getRecords()) {
            Double sumAnfme = agvLocDetlService.getSumAnfme(record.getMatnr(), record.getThreeCode());
            record.setStock(sumAnfme == null ? 0 : sumAnfme);
            //Double workNum = agvWrkDetlMapper.sumAnfmeByMatnr(record.getMatnr(), record.getThreeCode(), record.getOrderNo());
            //record.setWorkNum(workNum == null ? 0 : workNum);
        }
        return R.ok(page);
    }
@@ -197,12 +204,25 @@
        EntityWrapper<OrderDetl> wrapper = new EntityWrapper<>();
        excludeTrash(param);
        Object o = param.get("orderType");
        boolean flag = false;
        if (o != null) {
            String[] split = o.toString().split(",");
            wrapper.in("source", split);
            //-1说明是半成品箱壳出库单
            if (split[0].equals("-1")) {
                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.andNew().like("matnr", "401", SqlLike.RIGHT).or().like("matnr", "402", SqlLike.RIGHT).andNew().in("source", docIds);
                flag = true;
            } else {
                wrapper.in("source", split);
            }
            param.remove("orderType");
        }
        convertLike(param, wrapper);
        if (!Cools.isEmpty(orderByField)) {
            wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));
@@ -219,8 +239,15 @@
//        wrapper.in("source", docIds);
        Page<OrderDetl> page = orderDetlService.selectPage(new Page<>(curr, limit), wrapper);
        for (OrderDetl record : page.getRecords()) {
            Double sumAnfme = agvLocDetlService.getSumAnfme(record.getMatnr(), record.getThreeCode());
            Double sumAnfme;
            if (flag) {
                sumAnfme = agvLocDetlService.getSumAnfme2(record.getMatnr(), record.getThreeCode());
            } else {
                sumAnfme = agvLocDetlService.getSumAnfme(record.getMatnr(), record.getThreeCode());
            }
            record.setStock(sumAnfme == null ? 0 : sumAnfme);
            //Double workNum = agvWrkDetlMapper.sumAnfmeByMatnr(record.getMatnr(), record.getThreeCode(), record.getOrderNo());
            //record.setWorkNum(workNum == null ? 0 : workNum);
        }
        return R.ok(page);
    }
@@ -289,6 +316,79 @@
        for (OrderDetl record : page.getRecords()) {
            Double sumAnfme = agvLocDetlService.getSumAnfmeProcessed(record.getMatnr(), record.getThreeCode());
            record.setStock(sumAnfme == null ? 0 : sumAnfme);
            //Double workNum = agvWrkDetlMapper.sumAnfmeByMatnr(record.getMatnr(), record.getThreeCode(), record.getOrderNo());
            //record.setWorkNum(workNum == null ? 0 : workNum);
        }
        return R.ok(page);
    }
    @RequestMapping(value = "/orderDetl/pakout/list/authV8")
    @ManagerAuth
    public R pakoutList8(@RequestParam(defaultValue = "1") Integer curr,
                         @RequestParam(defaultValue = "10") Integer limit,
                         @RequestParam(required = false) String orderByField,
                         @RequestParam(required = false) String orderByType,
                         @RequestParam Map<String, Object> param) {
        EntityWrapper<OrderDetl> wrapper = new EntityWrapper<>();
        excludeTrash(param);
        convertLike(param, wrapper);
        if (!Cools.isEmpty(orderByField)) {
            wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));
        } else {
            wrapper.orderBy("create_time", false);
        }
        List<DocType> pakins = docTypeService.selectList(new EntityWrapper<DocType>().eq("pakout", 1));
        List<Long> docIds = new ArrayList<>();
        for (DocType pakin : pakins) {
            if (pakin.getDocId() == 34) {
                docIds.add(pakin.getDocId());
            }
        }
        wrapper.in("source", docIds);
        Page<OrderDetl> page = orderDetlService.selectPage(new Page<>(curr, limit), wrapper);
        for (OrderDetl record : page.getRecords()) {
            Double sumAnfme = agvLocDetlService.getSumAnfmeProcessed2(record.getMatnr(), record.getThreeCode());
            record.setStock(sumAnfme == null ? 0 : sumAnfme);
            //Double workNum = agvWrkDetlMapper.sumAnfmeByMatnr(record.getMatnr(), record.getThreeCode(), record.getOrderNo());
            //record.setWorkNum(workNum == null ? 0 : workNum);
        }
        return R.ok(page);
    }
    @RequestMapping(value = "/orderDetl/pakout/list/authV9")
    @ManagerAuth
    public R pakoutList9(@RequestParam(defaultValue = "1") Integer curr,
                         @RequestParam(defaultValue = "10") Integer limit,
                         @RequestParam(required = false) String orderByField,
                         @RequestParam(required = false) String orderByType,
                         @RequestParam Map<String, Object> param) {
        EntityWrapper<OrderDetl> wrapper = new EntityWrapper<>();
        excludeTrash(param);
        convertLike(param, wrapper);
        if (!Cools.isEmpty(orderByField)) {
            wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));
        } else {
            wrapper.orderBy("create_time", false);
        }
        List<DocType> pakins = docTypeService.selectList(new EntityWrapper<DocType>().eq("pakout", 1));
        List<Long> docIds = new ArrayList<>();
        for (DocType pakin : pakins) {
            if (pakin.getDocId() == 48) {
                docIds.add(pakin.getDocId());
            }
        }
        wrapper.in("source", docIds);
        Page<OrderDetl> page = orderDetlService.selectPage(new Page<>(curr, limit), wrapper);
        for (OrderDetl record : page.getRecords()) {
            Double sumAnfme = agvLocDetlService.getSumAnfmeProcessed2(record.getMatnr(), record.getThreeCode());
            record.setStock(sumAnfme == null ? 0 : sumAnfme);
            //Double workNum = agvWrkDetlMapper.sumAnfmeByMatnr(record.getMatnr(), record.getThreeCode(), record.getOrderNo());
            //record.setWorkNum(workNum == null ? 0 : workNum);
        }
        return R.ok(page);
@@ -322,11 +422,22 @@
        for (OrderDetl record : page.getRecords()) {
            Double sumAnfme = agvLocDetlService.getSumAnfme(record.getMatnr(), record.getThreeCode());
            record.setStock(sumAnfme == null ? 0 : sumAnfme);
            //Double workNum = agvWrkDetlMapper.sumAnfmeByMatnr(record.getMatnr(), record.getThreeCode(), record.getOrderNo());
            //record.setWorkNum(workNum == null ? 0 : workNum);
        }
        return R.ok(page);
    }
    @RequestMapping(value = "/orderDetl/pakout/workNum")
    @ManagerAuth
    public R listWorkDetl() {
        List<AgvWrkDetl> agvWrkDetls = agvWrkDetlMapper.listAnfmeByMatnr();
        return R.ok(agvWrkDetls);
    }
    private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper) {
        for (Map.Entry<String, Object> entry : map.entrySet()) {
            String val = String.valueOf(entry.getValue());