自动化立体仓库 - WMS系统
zyx
2023-10-04 45c2bf51fae3030c8e22fa2f2016b64a28928547
AGV调试整改
12个文件已修改
117 ■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/AgvBasDevpController.java 57 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/AgvOpenController.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/AgvWaitPakinController.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/AgvLocMastServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/AgvWaitPakinServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/agvLocDetl/locDetl.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/common.js 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/agvWrkMast/wrkDetl.html 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/agvWrkMastLog/wrkDetlLog.html 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/AgvBasDevpController.java
@@ -206,15 +206,34 @@
     */
    @RequestMapping(value = "/basDevp/visualized/container/moveOut")
    public R visualiZedContainerMoveOut(@RequestBody Map<String,Object> map) {
        List<String> devNos = (List<String>) map.get("devNo");
        List<AgvWrkMast> agvWrkMastList = devNos.stream().map(devNo -> {
        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));
                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));
            if(agvWrkMast.getIoType() != 101 && agvWrkMast.getIoType() != 110){
                throw new CoolException("工作号为" + agvWrkMast.getWrkNo() + "类型不为101.出库,无法执行容器离场任务,请重新选择站点。");
            }
            return agvWrkMast;
        }).collect(Collectors.toList());
            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());
        try {
           int code = agvWrkMastService.containerMoveOut(agvWrkMastList);
@@ -245,14 +264,34 @@
     */
    @RequestMapping(value = "/basDevp/visualized/container/pickIn")
    public R visualiZedPickIn(@RequestBody Map<String,Object> map){
        List<String> devNos = (List<String>) map.get("devNo");
        List<AgvWrkMast> agvWrkMastList = devNos.stream().map(devNo -> {
        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));
                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));
            if(agvWrkMast.getIoType() == 101){
                throw new CoolException("工作号为" + agvWrkMast.getWrkNo() + "类型为101.出库,无法执行拣料入库任务,请重新选择站点。");
            }
            return agvWrkMast;
        }).collect(Collectors.toList());
            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/controller/AgvOpenController.java
@@ -71,8 +71,11 @@
        //save api log (appkey 后续添加)
        AppAuthUtil.auth("",param, request);
        AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("wrk_no", param.getTaskCode()));
        int wrkNo = Integer.parseInt(param.getTaskCode());
        if(wrkNo < 0){
            wrkNo = -wrkNo;
        }
        AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("wrk_no", wrkNo));
        if(Cools.isEmpty(agvWrkMast)){
            return R.error("任务编号错误");
        }
src/main/java/com/zy/asrs/controller/AgvWaitPakinController.java
@@ -10,10 +10,11 @@
import com.core.common.Cools;
import com.core.common.DateUtils;
import com.core.common.R;
import com.zy.asrs.entity.AgvBasDevp;
import com.zy.asrs.entity.AgvWaitPakin;
import com.zy.asrs.entity.WaitPakin;
import com.zy.asrs.service.AgvBasDevpService;
import com.zy.asrs.service.AgvWaitPakinService;
import com.zy.asrs.service.WaitPakinService;
import com.zy.common.web.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -29,6 +30,8 @@
    @Autowired
    private AgvWaitPakinService agvWaitPakinService;
    @Autowired
    private AgvBasDevpService agvBasDevpService;
    @RequestMapping(value = "/waitPakin/{id}/auth")
    @ManagerAuth
@@ -91,7 +94,13 @@
            return R.error();
        }
        for (AgvWaitPakin entity : list){
            agvWaitPakinService.delete(new EntityWrapper<>(entity));
            AgvBasDevp agvBasDevp = agvBasDevpService.selectOne(new EntityWrapper<AgvBasDevp>().eq("barcode", entity.getSuppCode()));
            if(Cools.isEmpty(agvBasDevp)){
                agvWaitPakinService.delete(new EntityWrapper<>(entity));
            }else {
                return R.error("料箱码为" + entity.getSuppCode() + "已绑定站点,请先从AGV站点管理解绑该料箱");
            }
        }
        return R.ok();
    }
src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java
@@ -14,6 +14,7 @@
import com.zy.asrs.service.AgvLocMastService;
import com.zy.asrs.service.AgvWrkDetlService;
import com.zy.common.model.LocDto;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -23,6 +24,7 @@
import java.util.stream.Collectors;
@Service
@Slf4j
public class AgvLocDetlServiceImpl extends ServiceImpl<AgvLocDetlMapper, AgvLocDetl> implements AgvLocDetlService {
    @Autowired
@@ -36,6 +38,7 @@
        List<AgvWrkDetl> agvWrkDetls = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", taskCode));
        agvWrkDetls.stream().map(agvWrkDetl -> {
            AgvLocDetl agvLocDetl = new AgvLocDetl();
            log.info("agvWrkDetl: " + agvLocDetl.getBarcode());
            BeanUtils.copyProperties(agvWrkDetl, agvLocDetl);
            agvLocDetl.setLocNo(locNo);
            this.insert(agvLocDetl);
src/main/java/com/zy/asrs/service/impl/AgvLocMastServiceImpl.java
@@ -57,6 +57,17 @@
        for(int row=rowIndex; row<=rowMax; row++) {
            for (int bay = bayIndex; bay <= bayMax; bay++) {
                for (int lev = levIndex; lev <= levMax; lev++) {
                    if(row == 8 || row == 9){
                        if((bay >=8 && bay <=11)
                                || (bay >= 20 && bay <=23)
                                || (bay>=37 && bay <=39)
                                || (bay>=50 && bay <=52)
                                || (bay>=63 && bay <=64)
                                || (bay>=79 && bay <=80)){
                            continue;
                        }
                    }
                    AgvLocMast loc = new AgvLocMast();
                    String locRow = row < 10 ? "-00" + row : "-0" + row;
                    String locBay = bay < 10 ? "-00" + bay : "-0" + bay;
src/main/java/com/zy/asrs/service/impl/AgvWaitPakinServiceImpl.java
@@ -23,7 +23,7 @@
        List<AgvWaitPakin> agvWaitPakinList = this.selectList(new EntityWrapper<AgvWaitPakin>().eq("zpallet", agvWrkMast.getBarcode()));
        agvWaitPakinList.stream().forEach(agvWaitPakin -> {
            agvWaitPakin.setIoStatus("Y");
            this.update(agvWaitPakin,new EntityWrapper<AgvWaitPakin>().eq("zpallet",agvWaitPakin.getZpallet()));
            this.update(agvWaitPakin,new EntityWrapper<AgvWaitPakin>().eq("supp_code",agvWaitPakin.getZpallet()));
        });
    }
}
src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
@@ -208,7 +208,7 @@
            Date now = new Date();
            //生成工作党
            AgvWrkMast wrkMast = createWrkMast(107, 21L, locDetl.getLocNo(), agvBasDevp.getDevNo(), agvLocDetl.getZpallet(), now, userId);
            AgvWrkMast wrkMast = createWrkMast(107, 21L, locDetl.getLocNo(), agvBasDevp.getDevNo(), agvLocDetl.getSuppCode(), now, userId);
            //生成工作明细档
            createWrkDetlReWrite(locDetl.getMatnr(),wrkMast.getWrkNo(),null,locDetl.getBatch(),locDetl.getCount(),wrkMast.getBarcode(),now,userId,agvLocDetl.getThreeCode(),agvLocDetl.getDeadTime());
            //修改库位信息
@@ -238,7 +238,7 @@
        Date now = new Date();
        //生成移库工作档
        AgvWrkMast wrkMast = createWrkMast(11, 21L, sourceLocNo, targetLocNo, sourceLocDetl.getZpallet(), now, userId);
        AgvWrkMast wrkMast = createWrkMast(11, 21L, sourceLocNo, targetLocNo, sourceLocDetl.getSuppCode(), now, userId);
        //生成工作党明细
        createWrkDetlReWrite(sourceLocDetl.getMatnr(),wrkMast.getWrkNo(),null,sourceLocDetl.getBatch(),sourceLocDetl.getAnfme(),sourceLocDetl.getZpallet(),now,userId,sourceLocDetl.getThreeCode(),sourceLocDetl.getDeadTime());
        //修改目标库位状态
@@ -465,7 +465,7 @@
        wrkDetl.setIoTime(now);
        wrkDetl.setBatch(batch);
        wrkDetl.setAnfme(anfme); // 数量
        wrkDetl.setZpallet(zpallet); // 托盘条码
        wrkDetl.setSuppCode(zpallet); // 托盘条码
        wrkDetl.setAppeUser(userId);
        wrkDetl.setAppeTime(now);
        wrkDetl.setModiUser(userId);
src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java
@@ -130,7 +130,12 @@
            AgvTaskkDescribeParam agvTaskkDescribeParam = new AgvTaskkDescribeParam();
            agvTaskParam.setTaskDescribe(agvTaskkDescribeParam);
            //AgvTaskParam
            agvTaskParam.setTaskCode(agvWrkMast.getWrkNo().toString());
            if(agvWrkMast.getIoType() == 53 || agvWrkMast.getIoType() == 57){
                agvTaskParam.setTaskCode(-agvWrkMast.getWrkNo() + "");
            }else{
                agvTaskParam.setTaskCode(agvWrkMast.getWrkNo() + "");
            }
            agvTaskParam.setTaskPriority(agvWrkMast.getIoPri().intValue());
            //AgvTaskkDescribeParam
src/main/webapp/static/js/agvLocDetl/locDetl.js
@@ -6,11 +6,11 @@
        {field: 'matnr', align: 'center',title: '存货编码', sort:true}
        ,{field: 'maktx', align: 'center',title: '存货名称', sort:true}
        ,{field: 'orderNo', align: 'center',title: '单据编号', hide: false}
        ,{field: 'batch', align: 'center',title: '序列码', width: 300, sort:true, hide: true}
        ,{field: 'batch', align: 'center',title: '序列码', width: 300}
        ,{field: 'anfme', align: 'center',title: '数量'}
        ,{field: 'suppCode', align: 'center',title: '料箱码'}
        ,{field: 'threeCode', align: 'center',title: '销售订单号'}
        ,{field: 'dead_time', align: 'center',title: '销售订单行号'}
        ,{field: 'deadTime', align: 'center',title: '销售订单行号'}
        ,{field: 'specs', align: 'center',title: '规格型号', hide: false}
        ,{field: 'model', align: 'center',title: '通用型号', hide: false}
src/main/webapp/static/js/common.js
@@ -225,8 +225,7 @@
var detlCols = [
    ,{field: 'zpallet', align: 'center',title: '托盘条码', hide: true}
    ,{field: 'zpallet', align: 'center',title: '托盘条码', hide: false}
    ,{field: 'suppCode', align: 'center',title: '料箱码', hide: false}
    ,{field: 'suppCode', align: 'center',title: '料箱码', hide: true}
    ,{field: 'suppCode', align: 'center',title: '料箱码', hide: false, width: 110}
    ,{field: 'matnr', align: 'center',title: '存货编码',hide: true}
    ,{field: 'matnr', align: 'center',title: '存货编码'}
    ,{field: 'batch', align: 'center',title: '序列码', width: 300, sort:true, hide: true}
src/main/webapp/views/agvWrkMast/wrkDetl.html
@@ -32,7 +32,9 @@
        var cols = [
            {field: 'wrkNo', align: 'center',title: '工作号'}
            ,{field: 'ioTime$', align: 'center',title: '工作时间'}
            ,{field: 'anfme', align: 'center',title: '数量'}
        ];
        arrRemove(detlCols,  'field', 'zpallet');
        cols.push.apply(cols, detlCols);
        return cols;
    }
src/main/webapp/views/agvWrkMastLog/wrkDetlLog.html
@@ -39,7 +39,9 @@
        let cols = [
            {field: 'wrkNo', align: 'center',title: '工作号'}
            ,{field: 'ioTime$', align: 'center',title: '工作时间',width:160}
            ,{field: 'anfme', align: 'center',title: '数量'}
        ];
        arrRemove(detlCols,  'field', 'zpallet');
        cols.push.apply(cols, detlCols);
        return cols;
    }