自动化立体仓库 - WMS系统
dubin
1 天以前 322e78c971769c8417810ac0dc4cdad065d40d3f
src/main/java/com/zy/common/web/WcsController.java
@@ -17,6 +17,8 @@
import com.zy.common.model.LocTypeDto;
import com.zy.common.model.StartupDto;
import com.zy.common.service.CommonService;
import com.zy.common.web.param.ChangeLocParam;
import com.zy.common.web.param.ReportParam;
import com.zy.common.web.param.SearchLocParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -258,8 +260,8 @@
    @ResponseBody
    @Transactional
    public synchronized R getLocNo2(@RequestBody SearchLocParam param) {
        if (Cools.isEmpty(param.getIoType())) {
            return R.error("入出库类型不能为空");
        if ((param.isEmptyMk() && param.isFullPlt()) || (!param.isFullPlt() && !param.isEmptyMk())) {
            return R.error("空托/满托信号不能同时为true/false");
        }
        if (Cools.isEmpty(param.getSourceStaNo())) {
            return R.error("源站编号不能为空");
@@ -327,7 +329,10 @@
        }
        Date now = new Date();
        if (param.getIoType() == 107) {//盘点再入库
        /**
         * 此处存在问题 如确实需要用此接口 请根据实际情况修改
         */
        if (param.isFullPlt()) {//盘点再入库
            try{
                // 检索库位
                List<KeyValueVo> list = locDetls.stream().map(item -> new KeyValueVo(item.getMatnr(), item.getBatch())).distinct().collect(Collectors.toList());
@@ -406,8 +411,8 @@
    @ResponseBody
    public synchronized R getLocNo(@RequestBody SearchLocParam param) {
        log.info("收到WCS入库接口请求====>>入参:{}", param);
        if (Cools.isEmpty(param.getIoType())) {
            return R.error("入出库类型不能为空");
        if ((param.isEmptyMk() && param.isFullPlt()) || (!param.isFullPlt() && !param.isEmptyMk())) {
            return R.error("空托/满托信号不能同时为true/false");
        }
        if (Cools.isEmpty(param.getSourceStaNo())) {
            return R.error("源站编号不能为空");
@@ -421,7 +426,7 @@
            return R.ok(locNo3);
        }else {
            List<WaitPakin> waitPakins = null;
            if (param.getIoType() == 1) {
            if (param.isFullPlt()) {
                if (Cools.isEmpty(param.getBarcode())) {
                    return R.error("条码不能为空");
                }
@@ -452,16 +457,12 @@
            LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
            StartupDto dto = null;
            switch (param.getIoType()) {
                case 1://满托盘入库
                    assert waitPakins != null;
                    dto = startupFullPutStore(param.getSourceStaNo(), param.getBarcode(), locTypeDto, waitPakins);
                    break;
                case 10://空托盘入库
                    dto = emptyPlateIn(param.getSourceStaNo(), locTypeDto, param.getBarcode());
                    break;
                default:
                    break;
            if (param.isFullPlt()) {
                assert waitPakins != null;
                dto = startupFullPutStore(param.getSourceStaNo(), param.getBarcode(), locTypeDto, waitPakins);
            }
            if (param.isEmptyMk()){
                dto = emptyPlateIn(param.getSourceStaNo(), locTypeDto, param.getBarcode());
            }
            log.info("WCS入库接口返参:{},托盘码:{}", dto, param.getBarcode());
            return R.ok().add(dto);
@@ -470,6 +471,54 @@
    }
    /**
     * WCS上报接口
     * @param param
     * @return
     */
    @PostMapping("/openapi/report")
    public synchronized R report(@RequestBody ReportParam param){
        if (Cools.isEmpty(param)){
            return R.error("参数为空");
        }
        if (Cools.isEmpty(param.getSuperTaskNo())){
            return R.error("WMS工作号为空");
        }
        workService.reportHandler(param);
        return R.ok();
    }
    @RequestMapping("/openapi/change/loc")
    public synchronized R changeLoc(@RequestBody ChangeLocParam param){
        if (Cools.isEmpty(param)){
            return R.error("参数为空");
        }
        if (Cools.isEmpty(param.getLocNo())){
            return R.error("移库的库位号为空");
        }
        StartupDto dto = commonService.changeLocNo(param);
        Date now = new Date();
        // 生成工作档
        WrkMast wrkMast = new WrkMast();
        wrkMast.setWrkNo(dto.getWorkNo());
        wrkMast.setIoTime(now);
        wrkMast.setWrkSts(11L);
        wrkMast.setIoPri(15D);
        wrkMast.setIoType(11);
        wrkMast.setCrnNo(dto.getCrnNo());
        wrkMast.setSourceLocNo(param.getLocNo());
        wrkMast.setLocNo(dto.getLocNo());
        wrkMast.setFullPlt("Y"); // 满板:N
        wrkMast.setPicking("N"); // 拣料
        wrkMast.setExitMk("N"); // 退出
        wrkMast.setEmptyMk("N"); // 空板
        wrkMast.setLinkMis("Y");
        // 操作人员数据
        wrkMast.setAppeTime(now);
        wrkMast.setModiTime(now);
        return wrkMastService.insert(wrkMast) ? R.ok(dto) : R.error("移库失败");
    }
    @PostMapping("/auto/emptyIn/v1")
    @ResponseBody
    public R autoEmptyIn(@RequestBody LocTypeDto locTypeDto){