自动化立体仓库 - WMS系统
zyx
2023-10-19 4a4d927a42b43ceb4f052e3d654792626946f774
补货流程更新
9个文件已修改
97 ■■■■ 已修改文件
src/main/java/com/zy/asrs/service/AgvWaitPakinService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/AgvWaitPakinServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/AutoReplenishmentScheduler.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/AutoReplenishmentHandler.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/utils/Utils.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/web/WcsController.java 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/agvBasDevpVisualized/basDevp.html 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/AgvWaitPakinService.java
@@ -7,4 +7,6 @@
    public void updateIoStatus(int wrkNo, String ioStatus);
    public AgvWaitPakin selectByContainerCode(String containerCode);
}
src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
@@ -203,6 +203,10 @@
    @Override
    public void combBinding(String barcode, String stationCode) {
        if(Cools.isEmpty(agvWaitPakinService.selectByContainerCode(barcode))){
            throw new CoolException("该料箱未组托,无法绑定站点");
        }
        AgvBasDevp agvBasDevp = agvBasDevpService.selectOne(new EntityWrapper<AgvBasDevp>().eq("barcode", barcode));
        if(!Cools.isEmpty(agvBasDevp)){
src/main/java/com/zy/asrs/service/impl/AgvWaitPakinServiceImpl.java
@@ -26,4 +26,9 @@
            this.update(agvWaitPakin,new EntityWrapper<AgvWaitPakin>().eq("supp_code",agvWaitPakin.getZpallet()));
        });
    }
    @Override
    public AgvWaitPakin selectByContainerCode(String containerCode) {
        return this.selectOne(new EntityWrapper<AgvWaitPakin>().eq("supp_code",containerCode));
    }
}
src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
@@ -13,12 +13,14 @@
import com.zy.asrs.service.LocDetlService;
import com.zy.asrs.service.LocMastService;
import com.zy.asrs.service.StaDescService;
import com.zy.asrs.utils.Utils;
import com.zy.common.model.LocDto;
import com.zy.common.model.QueryStockPreDo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@@ -229,6 +231,21 @@
        return this.baseMapper.selectLocNo(matnr);
    }
    public Set<String> selectLocNo(String matnr, String batch, String csocode, String isocode) {
        Wrapper<LocDetl> wrapper = new EntityWrapper<LocDetl>().eq("matnr", matnr);
        Utils.confirmOnlyMat(wrapper,matnr,batch,csocode,isocode);
        List<LocDetl> locDetls = this.selectList(wrapper);
        Set<String> locNos = new HashSet<>();
        locDetls.forEach(locDetl -> {
            locNos.add(locDetl.getLocNo());
        });
        return locNos;
    }
    @Override
    public int updateStockFreeze(String matnr, String locNo, Integer stockFreeze) {
        return this.baseMapper.updateStockFreeze(matnr, locNo, stockFreeze);
src/main/java/com/zy/asrs/task/AutoReplenishmentScheduler.java
@@ -9,6 +9,7 @@
import com.zy.asrs.task.handler.AutoReplenishmentHandler;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.util.List;
@@ -27,7 +28,7 @@
    /*
    定时处理自动补货单据
     */
    //@Scheduled(cron = "0/5 * * * * ? ")
    @Scheduled(cron = "0/5 * * * * ? ")
    public void excute(){
        DocType docType = docTypeService.selectOne(new EntityWrapper<DocType>().eq("doc_name", "自动补货单"));
        List<Order> orderList = orderService.selectList(new EntityWrapper<Order>()
src/main/java/com/zy/asrs/task/handler/AutoReplenishmentHandler.java
@@ -75,9 +75,14 @@
            }
            String matnr = orderDetl.getMatnr();
            String batch = orderDetl.getBatch();
            String csocode = orderDetl.getThreeCode();
            String isocode = orderDetl.getDeadTime();
            Double orderAnfme = orderDetl.getAnfme();
            List<String> locNosSearch = locDetlService.selectLocNo(matnr);
            //List<String> locNosSearch = locDetlService.selectLocNo(matnr);
            Set<String> locNosSearch = locDetlService.selectLocNo(matnr, batch, csocode, isocode);
            for(String locNo : locNosSearch){
                List<LocDetl> locDetls = locDetlService.selectByLocNo(locNo);
src/main/java/com/zy/asrs/utils/Utils.java
@@ -400,4 +400,11 @@
        wapperSetCondition(wrapper,"isoseq",isoseq);
    }
    public static void confirmOnlyMat(Wrapper wrapper, String matnr, String batch, String threeCode, String deadTime){
        wapperSetCondition(wrapper,"matnr",matnr);
        wapperSetCondition(wrapper,"three_code",threeCode);
        wapperSetCondition(wrapper,"dead_time",deadTime);
        wapperSetCondition(wrapper,"batch",batch);
    }
}
src/main/java/com/zy/common/web/WcsController.java
@@ -313,13 +313,14 @@
        Integer wrkNo = param.getWrkNo();
        List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkNo);
        wrkDetls.forEach(wrkDetl -> {
            AgvWaitPakin agvWaitPakin = new AgvWaitPakin();
            BeanUtils.copyProperties(wrkDetl,agvWaitPakin);
            agvWaitPakin.setIoStatus("Y");
            agvWaitPakin.setModiTime(now);
            agvWaitPakin.setAppeTime(now);
            agvWaitPakinService.insert(agvWaitPakin);
            if(!Cools.isEmpty(wrkDetl.getSuppCode()) && Cools.isEmpty(agvWaitPakinService.selectByContainerCode(wrkDetl.getSuppCode()))){
                AgvWaitPakin agvWaitPakin = new AgvWaitPakin();
                BeanUtils.copyProperties(wrkDetl,agvWaitPakin);
                agvWaitPakin.setIoStatus("Y");
                agvWaitPakin.setModiTime(now);
                agvWaitPakin.setAppeTime(now);
                agvWaitPakinService.insert(agvWaitPakin);
            }
        });
        return R.ok();
@@ -332,8 +333,22 @@
    @ResponseBody
    public R start(@RequestBody ReplenishmentParam param){
        String containerCode = param.getContainerCode();
        if(Cools.isEmpty(containerCode)){
            throw new CoolException("料箱码为空");
        }
        if(!Character.isDigit(containerCode.charAt(0))){
            containerCode = containerCode.substring(3,containerCode.length());
        }
        AgvBasDevp agvBasDevp = agvBasDevpService.getByDevNo(param.getDevNo());
        if(Cools.isEmpty(agvBasDevp) || !"O".equals(agvBasDevp.getLocSts())){
            throw new CoolException("当前站点不存在或者站点不为空");
        }
        //绑定站点
        agvBasDevpService.updateLocStsAndBarcodeByDevNo(param.getDevNo(),"F",param.getContainerCode());
        agvBasDevpService.updateLocStsAndBarcodeByDevNo(param.getDevNo(),"F",containerCode);
        //生成工作档
        List<AgvBasDevp> agvBasDevpList = agvBasDevpService.selectList(new EntityWrapper<AgvBasDevp>().eq("dev_no", param.getDevNo()));
@@ -343,4 +358,5 @@
        return R.ok();
    }
}
src/main/webapp/views/agvBasDevpVisualized/basDevp.html
@@ -35,7 +35,7 @@
    <!-- 待添加 -->
    <div id="data-search-btn" class="layui-btn-container layui-form-item">
        <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">搜索</button>
        <button id="searchByStaion" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="searchByStaion">搜索</button>
        <button id="checkAll" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="checkAll">全选</button>
        <button id="uncheckAll" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="uncheckAll">反选</button>
        <button id="start" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="start">启动入库</button>
@@ -157,11 +157,11 @@
        });
        // 搜索
        form.on('submit(search)', function (data) {
            param = null;
            param = {'stationCode' : $('#rowSelect').val()};
            loadData(param);
        });
        // form.on('submit(search)', function (data) {
        //     param = null;
        //     param = {'stationCode' : $('#rowSelect').val()};
        //     loadData(param);
        // });
        //全选
        form.on('submit(checkAll)', function () {
@@ -171,6 +171,14 @@
            }
        });
        //搜索
        form.on('submit(searchByStaion)', function () {
            console.log("search.....")
            param = null;
            param = {'stationCode' : $('#rowSelect').val()};
            loadData(param);
        });
        //反选
        form.on('submit(uncheckAll)', function () {
            var cks = document.querySelectorAll("#tb input");