自动化立体仓库 - WMS系统
zyx
2024-04-08 a74c3785d62ca46027031e2431ed8c39373f313d
修复相同目标位任务管控bug
更改 订单出库时可修改数量
5个文件已修改
85 ■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/AgvBasDevpController.java 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/AutoReplenishmentScheduler.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/order/out.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/orderTable.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/AgvBasDevpController.java
@@ -19,7 +19,6 @@
import org.springframework.web.bind.annotation.*;
import java.util.*;
import java.util.stream.Collectors;
@RestController
@RequestMapping("/agv")
@@ -212,60 +211,15 @@
     */
    @RequestMapping(value = "/basDevp/visualized/container/moveOut")
    public R visualiZedContainerMoveOut(@RequestBody Map<String,Object> map) {
        List<String> devNos = new ArrayList<>();
        List<AgvWrkMast> agvWrkMastList = new ArrayList<>();
        try {
            devNos = (List<String>) map.get("devNo");
            agvWrkMastList = devNos.stream().map(devNo -> {
                AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", devNo).eq("wrk_sts",205L));
        String barcode = map.get("barcode").toString();
        AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("barcode", barcode).eq("wrk_sts",205L));
                if(agvWrkMast.getIoType() != 101 && agvWrkMast.getIoType() != 110){
                    throw new CoolException("工作号为" + agvWrkMast.getWrkNo() + "类型不为101.出库,无法执行容器离场任务,请重新选择站点。");
                }
                return agvWrkMast;
            }).collect(Collectors.toList());
        }catch (Exception e){
            String devNo = map.get("devNo").toString();
            AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", devNo).eq("wrk_sts",205L));
            if(agvWrkMast.getIoType() != 101 && agvWrkMast.getIoType() != 110){
                throw new CoolException("工作号为" + agvWrkMast.getWrkNo() + "类型不为101.出库,无法执行容器离场任务,请重新选择站点。");
            }
            agvWrkMastList.add(agvWrkMast);
        }
//        List<AgvWrkMast> agvWrkMastList = devNos.stream().map(devNo -> {
//            AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", devNo));
//            if(agvWrkMast.getIoType() != 101 && agvWrkMast.getIoType() != 110){
//                throw new CoolException("工作号为" + agvWrkMast.getWrkNo() + "类型不为101.出库,无法执行容器离场任务,请重新选择站点。");
//            }
//            return agvWrkMast;
//        }).collect(Collectors.toList());
        agvWrkMastList.forEach(agvWrkMast -> {
            agvWrkMast.setWrkSts(206L);
            agvWrkMastService.updateById(agvWrkMast);
        });
//        try {
//           int code = agvWrkMastService.containerMoveOut(agvWrkMastList);
//           if(code == 0){
//               //将工作党状态改为容器离场
//               agvWrkMastList.forEach(agvWrkMast -> {
//                   agvWrkMast.setWrkSts(206L);
//                   agvWrkMastService.updateById(agvWrkMast);
//               });
//               //修改站点状态
////               devNos.forEach(devNo -> {
////                   AgvBasDevp agvBasDevp = agvBasDevpService.selectById(devNo);
////                   agvBasDevp.setBarcode("");
////                   agvBasDevp.setLocSts("O");
////                   agvBasDevpService.updateById(agvBasDevp);
////               });
//           }
//        } catch (IOException e) {
//            e.printStackTrace();
//            return R.error("容器离场失败");
//        }
        return R.ok("容器离场成功");
    }
@@ -275,36 +229,17 @@
     */
    @RequestMapping(value = "/basDevp/visualized/container/pickIn")
    public R visualiZedPickIn(@RequestBody Map<String,Object> map){
        List<String> devNos = new ArrayList<>();
        List<AgvWrkMast> agvWrkMastList = new ArrayList<>();
        try {
            devNos = (List<String>) map.get("devNo");
            agvWrkMastList = devNos.stream().map(devNo -> {
                AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", devNo).eq("wrk_sts",205L));
                if(agvWrkMast.getIoType() == 101){
                    throw new CoolException("工作号为" + agvWrkMast.getWrkNo() + "类型为101.出库,无法执行拣料入库任务,请重新选择站点。");
                }
                return agvWrkMast;
            }).collect(Collectors.toList());
        }catch (Exception e){
            String devNo = map.get("devNo").toString();
            AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", devNo).eq("wrk_sts",205L));
        String barcode = map.get("barcode").toString();
        AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("barcode", barcode).eq("wrk_sts",205L));
            if (agvWrkMast != null) {
                if(agvWrkMast.getIoType() == 101){
                    throw new CoolException("工作号为" + agvWrkMast.getWrkNo() + "类型为101.出库,无法执行拣料入库任务,请重新选择站点。");
                }
            agvWrkMast.setLocNo(devNo);
                agvWrkMastList.add(agvWrkMast);
            }
        }
//        List<String> devNos = (List<String>) map.get("devNo");
//        List<AgvWrkMast> agvWrkMastList = devNos.stream().map(devNo -> {
//            AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", devNo));
//            if(agvWrkMast.getIoType() == 101){
//                throw new CoolException("工作号为" + agvWrkMast.getWrkNo() + "类型为101.出库,无法执行拣料入库任务,请重新选择站点。");
//            }
//            return agvWrkMast;
//        }).collect(Collectors.toList());
        agvWorkService.pickIn(agvWrkMastList);
src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java
@@ -130,7 +130,7 @@
                    //检测当前工作任务中的站点是否已有有作业中的任务
                    AgvWrkMast agvWrkMastWorking = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>()
                            .eq("loc_no", agvWrkMast.getLocNo())
                            .ge("loc_sts", 202L));
                            .ge("wrk_sts", 202L));
                    if(!Cools.isEmpty(agvWrkMastWorking)){
                        return;
src/main/java/com/zy/asrs/task/AutoReplenishmentScheduler.java
@@ -94,7 +94,7 @@
    /*
    定时处理自动补货单据
     */
    @Scheduled(cron = "0/10 * * * * ? ")
    //@Scheduled(cron = "0/10 * * * * ? ")
    public void excuteOrder(){
        DocType docType = docTypeService.selectOne(new EntityWrapper<DocType>().eq("doc_name", "自动补货单"));
        List<Order> orderList = orderService.selectList(new EntityWrapper<Order>()
src/main/webapp/static/js/order/out.js
@@ -177,7 +177,7 @@
                        {field: 'orderNo', title: '单据编号', merge: true, align: 'center'},
                        {field: 'title', title: '商品', merge: true, align: 'center', width: 350},
                        {field: 'batch', title: '序列码', align: 'center'},
                        {field: 'anfme', title: '数量', align: 'center', width: 90, style: 'font-weight: bold'},
                        {field: 'anfme', title: '数量', align: 'center', width: 90, style: 'font-weight: bold', edit:true},
                        {field: 'locNo', title: '货位', align: 'center', templet: '#locNoTpl'},
                        {field: 'staNos', align: 'center', title: '出库站', merge: ['locNo'], templet: '#tbBasicTbStaNos'},
                        // {type: 'checkbox', merge: ['locNo']},
src/main/webapp/static/js/orderTable.js
@@ -40,7 +40,7 @@
        defaultToolbar: [],
        cols: [[
            {type: 'checkbox'},
            {field: 'orderTime', title: '日期'},
            {field: 'createTime$', title: '日期'},
            {field: 'orderNo', title: '单据编号', align: 'center'}
        ]],
        done: function (res, curr, count) {