zyx
2024-07-20 a3776853fa6ff1c4a9805615a79852d54f700e3f
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderController.java
@@ -3,6 +3,8 @@
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.Query;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zy.asrs.common.domain.dto.DetlDto;
import com.zy.asrs.common.domain.dto.WrkTraceVo;
@@ -21,9 +23,12 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.web.bind.annotation.*;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.net.URLDecoder;
import java.util.*;
@RestController
@@ -86,16 +91,17 @@
                  @RequestParam(required = false) String condition,
                  @RequestParam(required = false) String timeRange,
                  @RequestParam Map<String, Object> param) {
        LambdaQueryWrapper<Order> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(Order::getHostId, getHostId());
        QueryWrapper<Order> wrapper = new QueryWrapper<>();
        wrapper.eq("host_id", getHostId());
        if (!Cools.isEmpty(condition)) {
            wrapper.like(Order::getId, condition);
            wrapper.like("id", condition);
        }
        if (!Cools.isEmpty(timeRange)) {
            String[] range = timeRange.split(RANGE_TIME_LINK);
            wrapper.ge(Order::getCreateTime, DateUtils.convert(range[0]));
            wrapper.le(Order::getCreateTime, DateUtils.convert(range[1]));
            wrapper.ge("create_time", DateUtils.convert(range[0]));
            wrapper.le("create_time", DateUtils.convert(range[1]));
        }
        allLike(Order.class, param.keySet(), wrapper, condition);
        return R.ok(orderService.page(new Page<>(curr, limit), wrapper));
    }
@@ -103,31 +109,37 @@
    @ManagerAuth
    public R head(@RequestParam(defaultValue = "1")Integer curr,
                  @RequestParam(defaultValue = "10")Integer limit,
                  @RequestParam(required = false) String condition,
                  @RequestParam(required = false)String orderByField,
                  @RequestParam(required = false)String orderByType,
                  @RequestParam Map<String, Object> param){
        LambdaQueryWrapper<Order> wrapper = new LambdaQueryWrapper<>();
                  @RequestParam Map<String, Object> param) throws UnsupportedEncodingException {
        condition = condition.trim();
        QueryWrapper<Order> wrapper = new QueryWrapper<>();
        excludeTrash(param);
        wrapper.eq(Order::getStatus, 1);
        wrapper.eq(Order::getHostId, getHostId());
        wrapper.eq("status", 1);
        wrapper.eq("host_id", getHostId());
        if (!Cools.isEmpty(param.get("order_no"))) {
            wrapper.eq(Order::getOrderNo, param.get("order_no"));
            wrapper.eq("order_no", param.get("order_no"));
        }
        if (!Cools.isEmpty(param.get("create_time"))) {
            String[] range = param.get("create_time").toString().split(RANGE_TIME_LINK);
            wrapper.ge(Order::getCreateTime, DateUtils.convert(range[0]));
            wrapper.le(Order::getCreateTime, DateUtils.convert(range[1]));
            wrapper.ge("create_time", DateUtils.convert(range[0]));
            wrapper.le("create_time", DateUtils.convert(range[1]));
        }
        if (!Cools.isEmpty(param.get("doc_type"))) {
            wrapper.eq(Order::getDocType, param.get("doc_type"));
            wrapper.eq("doc_type", param.get("doc_type"));
        }
        if (!Cools.isEmpty(param.get("docName"))) {
            DocType docType = docTypeService.getOne(new LambdaQueryWrapper<DocType>().eq(DocType::getDocName, param.get("docName")));
            wrapper.eq(Order::getDocType, docType.getDocId());
            String docName = URLDecoder.decode(param.get("docName").toString(), "UTF-8");
            DocType docType = docTypeService.getOne(new LambdaQueryWrapper<DocType>().eq(DocType::getDocName, docName));
            wrapper.eq("doc_type", docType.getDocId());
        }
        if (!Cools.isEmpty(param.get("settle"))) {
            wrapper.eq(Order::getSettle, param.get("settle"));
            wrapper.eq("settle", param.get("settle"));
        }
        param.remove("order_no");
        allLike(Order.class, param.keySet(), wrapper, condition);
        return R.ok(orderService.page(new Page<>(curr, limit), wrapper));
    }
@@ -211,10 +223,12 @@
        double totalQty = 0;
        double wrkQty = 0;
        double lackQty = 0;
        double endQty = 0;
        for (OrderDetl orderDetl : orderDetls) {
            totalQty = totalQty + orderDetl.getAnfme();
            wrkQty = wrkQty + orderDetl.getQty();
            double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getQty()).orElse(0.0D);
            wrkQty = wrkQty + orderDetl.getWorkQty();
            endQty = endQty + orderDetl.getQty();
            double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getWorkQty()).orElse(0.0D);
            if (issued > 0.0) {
                List<LocDetl> locDetls = locDetlService.queryStock(orderDetl.getMatnr(), orderDetl.getBatch(), hostId);
                for (LocDetl locDetl : locDetls) {
@@ -236,6 +250,9 @@
            WrkMast wrkMast = wrkMastService.getOne(new LambdaQueryWrapper<WrkMast>().eq(WrkMast::getWrkNo, wrkDetl.getWrkNo()).eq(WrkMast::getIoTime, wrkDetl.getIoTime()));
            if (wrkMast == null) {
                WrkMastLog wrkMastLog = wrkMastLogService.getOne(new LambdaQueryWrapper<WrkMastLog>().eq(WrkMastLog::getWrkNo, wrkDetl.getWrkNo()).eq(WrkMastLog::getIoTime, wrkDetl.getIoTime()));
                if (wrkMastLog.getIoType()==103){
                    wrkMastLog = wrkMastLogService.getOne(new LambdaQueryWrapper<WrkMastLog>().eq(WrkMastLog::getWrkNo, wrkDetl.getWrkNo()).eq(WrkMastLog::getIoTime, wrkDetl.getIoTime()).eq(WrkMastLog::getIoType,53));
                }
                if (wrkMastLog != null) {
                    wrkMast = new WrkMast();
                    BeanUtils.copyProperties(wrkMastLog, wrkMast);
@@ -264,6 +281,7 @@
                .add("totalQty", totalQty)
                .add("wrkQty", wrkQty)
                .add("lackQty", lackQty)
                .add("endQty",endQty)
        );
    }