自动化立体仓库 - WMS系统
#
luxiaotao1123
2021-03-26 cd2fff830de5a879ef2e6b18adebcbe46f28392a
src/main/java/com/zy/asrs/controller/OpenController.java
@@ -1,18 +1,17 @@
package com.zy.asrs.controller;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.core.common.R;
import com.core.exception.CoolException;
import com.zy.asrs.entity.BasDevp;
import com.zy.asrs.entity.LocDetl;
import com.zy.asrs.entity.MatCode;
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.entity.param.OpenApiStockOutParam;
import com.zy.asrs.entity.result.PakoutVo;
import com.zy.asrs.entity.result.StoPreTab;
import com.zy.asrs.service.BasDevpService;
import com.zy.asrs.service.LocDetlService;
import com.zy.asrs.service.MatCodeService;
import com.zy.asrs.service.WorkService;
import com.zy.asrs.service.*;
import com.zy.common.model.LocDetlDto;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
@@ -40,6 +39,8 @@
    private WorkService workService;
    @Autowired
    private BasDevpService basDevpService;
    @Autowired
    private WrkMastService wrkMastService;
    @PostMapping("/stockOut/prew")
    @Transactional
@@ -96,6 +97,10 @@
        List<PakoutVo> result = new ArrayList<>();
        if (!Cools.isEmpty(params)) {
            for (OpenApiStockOutParam param : params) {
                // 推荐货位补仓工作档防重
                if (wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("packed", param.getAllotNo()).le("wrk_sts", 14)) > 0) {
                    throw new CoolException("当前补仓任务正在执行,请耐心等待");
                }
                Double sumAnfme = Optional.ofNullable(locDetlService.getSumAnfme(param.getMatnr())).orElse(0.0D);
                if (sumAnfme < param.getAnfme()) {
                    throw new CoolException(param.getMatnr() + "物料数量不足,缺货数量:" + (param.getAnfme() - sumAnfme));
@@ -116,7 +121,7 @@
                            dto.setLocDetl(locDetl);
                            dto.setCount(issued>=locDetl.getAnfme()?locDetl.getAnfme():issued);
                            detlDtos.add(dto);
                            workService.stockOut(staNo, detlDtos, 101, 9527L);
                            workService.stockOut(staNo, detlDtos, 101, 9527L, param.getAllotNo());
                        // 拣料
                        } else {
                            BasDevp staNo = basDevpService.checkSiteStatus(107);
@@ -125,7 +130,7 @@
                            dto.setLocDetl(locDetl);
                            dto.setCount(issued>=locDetl.getAnfme()?locDetl.getAnfme():issued);
                            detlDtos.add(dto);
                            workService.stockOut(staNo, detlDtos, 103, 9527L);
                            workService.stockOut(staNo, detlDtos, 103, 9527L, param.getAllotNo());
                        }
                        PakoutVo pakoutVo = new PakoutVo();