自动化立体仓库 - WMS系统
#
zyx
2024-03-18 8d3eb56caed299b6321ae044083f4dd63e3a237e
#
9个文件已修改
2个文件已添加
188 ■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/AgvIoWorkController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/AgvMobileController.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/AgvMobileTaskController.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/AgvMobileStartParam.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/AgvMobileService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/AgvWorkService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/web/AuthController.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/system/entity/license/CustomLicenseManager.java 64 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/AgvIoWorkController.java
@@ -146,8 +146,8 @@
    @RequestMapping("/empty/plate/in/start")
    @ManagerAuth(memo = "空板入库")
    public R emptyPlateInStart(@RequestParam String sourceStaNo) {
        return R.ok("入库启动成功").add(agvWorkService.emptyPlateIn(sourceStaNo, getUserId()));
    public R emptyPlateInStart(@RequestParam String sourceStaNo, String containerCode) {
        return R.ok("入库启动成功").add(agvWorkService.emptyPlateIn(sourceStaNo,containerCode,getUserId()));
    }
    @RequestMapping("/empty/plate/out/start")
src/main/java/com/zy/asrs/controller/AgvMobileController.java
@@ -2,6 +2,7 @@
import com.core.common.R;
import com.zy.asrs.entity.AgvBasDevp;
import com.zy.asrs.entity.param.AgvMobileStartParam;
import com.zy.asrs.entity.param.CombParam;
import com.zy.asrs.service.AgvBasDevpService;
import com.zy.asrs.service.AgvMobileService;
@@ -94,5 +95,31 @@
        return R.ok("生成工作档成功");
    }
    /*
    空板出库
     */
    @PostMapping("/pakin/empty/auth")
    @Synchronized
    public R pakinEmpty(@RequestBody List<AgvMobileStartParam> params){
        for (AgvMobileStartParam param : params){
            workService.emptyPlateIn(param.getDevNo(),param.getContainerCode(),getUserId());
        }
        return R.ok();
    }
    /*
    空板出库
     */
    @PostMapping("/pakout/empty/auth")
    @Synchronized
    public R pakoutEmpty(@RequestBody Map<String,Object> map){
        String devNo = map.get("devNo").toString();
        return R.ok();
    }
}
src/main/java/com/zy/asrs/controller/AgvMobileTaskController.java
New file
@@ -0,0 +1,13 @@
package com.zy.asrs.controller;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Slf4j
@RestController
@RequestMapping("/agv")
public class AgvMobileTaskController {
}
src/main/java/com/zy/asrs/entity/param/AgvMobileStartParam.java
New file
@@ -0,0 +1,16 @@
package com.zy.asrs.entity.param;
import lombok.Data;
@Data
public class AgvMobileStartParam {
    //站点
    private String devNo;
    //任务类型
    private String type;
    //容器码
    private String containerCode;
    //容器类型
    private String containerType;
}
src/main/java/com/zy/asrs/service/AgvMobileService.java
@@ -24,4 +24,8 @@
    List<AgvBasDevp> getAgvBasDevpByFloor(int floor);
    void pakinEmpty(String devNo, boolean pakin);
    void pakoutEmpty(String devNo);
}
src/main/java/com/zy/asrs/service/AgvWorkService.java
@@ -40,7 +40,7 @@
    /*
    空板入库
     */
    String emptyPlateIn(String sourceStaion, Long userId);
    String emptyPlateIn(String sourceStaion,String containerCode, Long userId);
    void emptyPlateOut(EmptyPlateOutParam param, Long userId);
src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
@@ -42,6 +42,8 @@
    private AgvLocDetlService agvLocDetlService;
    @Autowired
    private AgvWrkMastService agvWrkMastService;
    @Autowired
    private AgvWorkService agvWorkService;
    /*
@@ -255,4 +257,20 @@
        }).collect(Collectors.toList());
    }
    @Override
    public void pakinEmpty(String devNo, boolean pakin) {
        //当前站点信息
        AgvBasDevp agvBasDevp = agvBasDevpService.selectById(devNo);
        //寻找相同类型的库位
        //生成空盘工作档
        //更改库位状态以及站点状态
    }
    @Override
    public void pakoutEmpty(String devNo) {
    }
}
src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
@@ -314,13 +314,25 @@
    空板入库
     */
    @Transactional
    public String emptyPlateIn(String sourceStaion, Long userId) {
    public String emptyPlateIn(String sourceStaion,String containerCode, Long userId) {
        if(!pakinCheck()){
        }
        Date now = new Date();
        // 源站点状态检测
        AgvBasDevp agvBasDevp = agvBasDevpService.selectById(sourceStaion);
        if(!agvBasDevp.getLocSts().equals("O")){
            throw new CoolException("当前工作位状态为" + agvBasDevp.getLocSts()+",无法进行空板入库");
        }
        //判断当前容器是否存在任务
        AgvWrkMast agvWrkMast = agvWrkMastService.selectByContainerCode(containerCode);
        if(!Cools.isEmpty(agvWrkMast)){
        }
        // 检索库位
        AgvLocMast locMast = agvCommonService.getLocNo(null, agvBasDevp.getFloor());
        // 生成工作档 10.空板入库
@@ -775,4 +787,12 @@
        }
    }
    //入库前检查
    private boolean pakinCheck(){
        return true;
    }
}
src/main/java/com/zy/common/web/AuthController.java
@@ -4,7 +4,10 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.core.annotations.ManagerAuth;
import com.core.common.*;
import com.core.common.AesUtils;
import com.core.common.Cools;
import com.core.common.DateUtils;
import com.core.common.R;
import com.core.exception.CoolException;
import com.zy.common.CodeRes;
import com.zy.common.entity.Parameter;
@@ -14,7 +17,6 @@
import com.zy.common.properties.SystemProperties;
import com.zy.common.utils.RandomValidateCodeUtil;
import com.zy.system.entity.*;
import com.zy.system.entity.license.LicenseVerify;
import com.zy.system.service.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -51,11 +53,11 @@
    @ManagerAuth(value = ManagerAuth.Auth.NONE, memo = "登录")
    public R loginAction(String username, String password){
        //验证许可证是否有效
        LicenseVerify licenseVerify = new LicenseVerify();
        boolean verify = licenseVerify.verify();
        if (!verify) {//许可证已失效
            return R.parse(CodeRes.SYSTEM_20001);
        }
//        LicenseVerify licenseVerify = new LicenseVerify();
//        boolean verify = licenseVerify.verify();
//        if (!verify) {//许可证已失效
//            return R.parse(CodeRes.SYSTEM_20001);
//        }
        if (username.equals("super") && password.equals(Cools.md5(superPwd))) {
            Map<String, Object> res = new HashMap<>();
            res.put("username", username);
src/main/java/com/zy/system/entity/license/CustomLicenseManager.java
@@ -122,38 +122,38 @@
    @Override
    protected synchronized void validate(final LicenseContent content)
            throws LicenseContentException {
        //1. 首先调用父类的validate方法
        super.validate(content);
        //2. 然后校验自定义的License参数
        //License中可被允许的参数信息
        LicenseCheck expectedCheckModel = (LicenseCheck) content.getExtra();
        //当前服务器真实的参数信息
        LicenseCheck serverCheckModel = getServerInfos();
        if(expectedCheckModel != null && serverCheckModel != null){
            //校验IP地址
            if(!checkIpAddress(expectedCheckModel.getIpAddress(),serverCheckModel.getIpAddress())){
                //throw new LicenseContentException("当前服务器的IP没在授权范围内");
            }
            //校验Mac地址
            if(!checkIpAddress(expectedCheckModel.getMacAddress(),serverCheckModel.getMacAddress())){
                //throw new LicenseContentException("当前服务器的Mac地址没在授权范围内");
            }
            //校验主板序列号
            if(!checkSerial(expectedCheckModel.getMainBoardSerial(),serverCheckModel.getMainBoardSerial())){
                throw new LicenseContentException("当前服务器的主板序列号没在授权范围内");
            }
            //校验CPU序列号
            if(!checkSerial(expectedCheckModel.getCpuSerial(),serverCheckModel.getCpuSerial())){
                throw new LicenseContentException("当前服务器的CPU序列号没在授权范围内");
            }
        }else{
            throw new LicenseContentException("不能获取服务器硬件信息");
        }
//        //1. 首先调用父类的validate方法
//        super.validate(content);
//
//        //2. 然后校验自定义的License参数
//        //License中可被允许的参数信息
//        LicenseCheck expectedCheckModel = (LicenseCheck) content.getExtra();
//        //当前服务器真实的参数信息
//        LicenseCheck serverCheckModel = getServerInfos();
//
//        if(expectedCheckModel != null && serverCheckModel != null){
//            //校验IP地址
//            if(!checkIpAddress(expectedCheckModel.getIpAddress(),serverCheckModel.getIpAddress())){
//                //throw new LicenseContentException("当前服务器的IP没在授权范围内");
//            }
//
//            //校验Mac地址
//            if(!checkIpAddress(expectedCheckModel.getMacAddress(),serverCheckModel.getMacAddress())){
//                //throw new LicenseContentException("当前服务器的Mac地址没在授权范围内");
//            }
//
//            //校验主板序列号
//            if(!checkSerial(expectedCheckModel.getMainBoardSerial(),serverCheckModel.getMainBoardSerial())){
//                throw new LicenseContentException("当前服务器的主板序列号没在授权范围内");
//            }
//
//            //校验CPU序列号
//            if(!checkSerial(expectedCheckModel.getCpuSerial(),serverCheckModel.getCpuSerial())){
//                throw new LicenseContentException("当前服务器的CPU序列号没在授权范围内");
//            }
//        }else{
//            throw new LicenseContentException("不能获取服务器硬件信息");
//        }
    }
src/main/resources/application.yml
@@ -10,7 +10,7 @@
    enabled: false
  datasource:
    driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
    url: jdbc:sqlserver://localhost:1433;databasename=phyzasrs
    url: jdbc:sqlserver://192.168.4.188:1433;databasename=phyzasrs
#    url: jdbc:sqlserver://192.168.4.15:1433;databasename=tzskasrs
    #url: jdbc:sqlserver://10.10.10.40:1433;databasename=tzskasrs
    username: sa