zzgtfwq
22 小时以前 bca069bc5858219548fc5e1bcfc659e4758f3576
#26-03-10-00
5个文件已修改
138 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java 110 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/config/AdminInterceptor.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/MainProcess.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -278,27 +278,8 @@
                        JSONObject jsonObject = JSON.parseObject(response);
                        if (jsonObject != null && jsonObject.getInteger("code") != null && jsonObject.getInteger("code") == 200) {
                            log.info("入库任务申请成功,等待WMS下发任务。条码:{},站点:{}", barcode, inSta.getStaNo());
                            staProtocol.setStaNo((short)0);
                            staProtocol.setWorkNo(0);//设置为9998等待上位机下发任务/9997是空板入库判断,待下发时也写入9998
                            boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                            if (!result) {
                                LedErrorThreadUtil.ledErrorThread("更新plc站点信息失败!站点号:"+inSta.getStaNo(),inSta.getLed(), LedErrorAreaType.ONE_OTHER.getDesc());
                                throw new CoolException("更新plc站点信息失败");
                            }
                            Thread.sleep(300);
                            StaProtocol staProtocol2 = devpThread.getStation().get(inSta.getStaNo());
                            if (staProtocol2 == null) {
                                continue;
                            } else {
                                staProtocol2 = staProtocol2.clone();
                            }
                            staProtocol2.setStaNo(inSta.getStaNo().shortValue());
                            staProtocol2.setWorkNo(9998);//设置为9998等待上位机下发任务/9997是空板入库判断,待下发时也写入9998
                            boolean result2 = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol2));
                            if (!result2) {
                                LedErrorThreadUtil.ledErrorThread("更新plc站点信息失败!站点号:"+inSta.getStaNo(),inSta.getLed(), LedErrorAreaType.ONE_OTHER.getDesc());
                                throw new CoolException("更新plc站点信息失败");
                            }
                            devpThread.setPakMk(staProtocol.getSiteId(), false,9998);
                        } else {
                            //                            // 获取工作号
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -3,14 +3,14 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.core.exception.CoolException;
import com.zy.asrs.entity.WrkDetl;
import com.zy.asrs.entity.WrkLastno;
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.entity.param.TaskCreateParam;
import com.zy.asrs.entity.param.TaskStatusFeedbackParam;
import com.zy.asrs.service.ApiLogService;
import com.zy.asrs.service.OpenService;
import com.zy.asrs.service.WrkDetlService;
import com.zy.asrs.service.WrkMastService;
import com.zy.asrs.service.*;
import com.zy.common.service.CommonService;
import com.zy.common.utils.HttpHandler;
import com.zy.core.cache.MessageQueue;
@@ -44,7 +44,10 @@
    @Autowired
    private ApiLogService apiLogService;
    @Autowired
    private WrkLastnoService wrkLastnoService;
    @Autowired
    private RowLastnoService rowLastnoService;
    @Autowired
    private CommonService commonService;
    
@@ -112,7 +115,45 @@
        }
        return false;
    }
    /**
     * 生成工作号
     *
     * @param wrkMk
     * @return workNo(工作号)
     */
    public int getWorkNo(Integer wrkMk) {
        WrkLastno wrkLastno = wrkLastnoService.selectById(wrkMk);
        if (Cools.isEmpty(wrkLastno)) {
            throw new CoolException("数据异常,请联系管理员");
        }
        int workNo = wrkLastno.getWrkNo();
        int sNo = wrkLastno.getSNo();
        int eNo = wrkLastno.getENo();
        workNo = workNo >= eNo ? sNo : workNo + 1;
        while (true) {
            WrkMast wrkMast = wrkMastService.selectById(workNo);
            if (null != wrkMast) {
                workNo = workNo >= eNo ? sNo : workNo + 1;
            } else {
                break;
            }
        }
        // 修改序号记录
        if (workNo > 0) {
            wrkLastno.setWrkNo(workNo);
            wrkLastnoService.updateById(wrkLastno);
        }
        // 检验
        if (workNo == 0) {
            throw new CoolException("生成工作号失败,请联系管理员");
        } else {
            if (wrkMastService.selectById(workNo) != null) {
                throw new CoolException("生成工作号" + workNo + "在工作档中已存在");
            }
        }
        return workNo;
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean taskCreate(TaskCreateParam param) {
@@ -124,21 +165,22 @@
            //21:拣选出库 22:拣选入库
            //31:盘点出库 32:盘点入库
            switch (param.getIoType()){
                case 1:  Inbound = false;break;
                case 2 : Inbound = true;break;
                case 3:  Inbound = false;break;
                case 1:  Inbound = false;ioType = 101;break;
                case 2 : Inbound = true;ioType = 1;break;
                case 3:  Inbound = false;ioType = 11;break;
                case 11: Inbound = false;ioType = 110;break;
                case 12: Inbound = true;break;
                case 12: Inbound = true;ioType = 10;break;
                case 21: Inbound = false;ioType = 103;break;
                case 22: Inbound = true;break;
                case 22: Inbound = true;ioType = 53;break;
                case 31: Inbound = false;ioType = 107;break;
                case 32: Inbound = true;break;
                case 32: Inbound = true;ioType = 57;break;
            }
            // 2. 保存WrkMast
            WrkMast wrkMast = new WrkMast();
            int workNo = getWorkNo(0);
            if(param.getIoType() == 2 || param.getIoType() == 12){
                wrkMast.setWrkNo(Integer.valueOf(param.getTaskNo()));
                wrkMast.setWrkNo(workNo);
                wrkMast.setUserNo(param.getTaskNo());
                wrkMast.setIoType(param.getIoType() != 2?10:1);
                wrkMast.setIoPri(param.getTaskPriority() != null ? param.getTaskPriority().doubleValue() : 11.0);
                wrkMast.setBarcode(param.getBarcode());
@@ -150,7 +192,8 @@
            }else if(param.getIoType() == 22 || param.getIoType() == 32){
                wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode",param.getBarcode()));
                wrkMast.setWrkSts(param.getIoType() != 32 ? 53L: 57L);
                wrkMast.setWrkNo(Integer.valueOf(param.getTaskNo()));
                wrkMast.setWrkNo(workNo);
                wrkMast.setUserNo(param.getTaskNo());
                wrkMast.setIoPri(param.getTaskPriority() != null ? param.getTaskPriority().doubleValue() : 11.0);
                wrkMast.setBarcode(param.getBarcode());
                wrkMast.setMemo(param.getMemo());
@@ -159,7 +202,8 @@
                wrkMast.setLocNo(param.getTargetLocNo());
                wrkMast.setSourceLocNo(param.getSourceLocNo());
            }else if(param.getIoType() == 3){
                wrkMast.setWrkNo(Integer.valueOf(param.getTaskNo()));
                wrkMast.setWrkNo(workNo);
                wrkMast.setUserNo(param.getTaskNo());
                wrkMast.setIoType(11);
                wrkMast.setIoPri(param.getTaskPriority() != null ? param.getTaskPriority().doubleValue() : 12.0);
                wrkMast.setBarcode(param.getBarcode());
@@ -169,7 +213,8 @@
                wrkMast.setLocNo(param.getTargetLocNo());
                wrkMast.setSourceLocNo(param.getSourceLocNo());
            }else{
                wrkMast.setWrkNo(Integer.valueOf(param.getTaskNo()));
                wrkMast.setWrkNo(workNo);
                wrkMast.setUserNo(param.getTaskNo());
                wrkMast.setIoType(ioType);
                wrkMast.setIoPri(param.getTaskPriority() != null ? param.getTaskPriority().doubleValue() : 11.0);
                wrkMast.setBarcode(param.getBarcode());
@@ -185,11 +230,39 @@
            }else{
                wrkMast.setWrkSts(11L);
            }
            String locNo = null;
            if(param.getSourceLocNo() != null){
                locNo = param.getSourceLocNo();
            }
            if(param.getTargetLocNo() !=null){
                locNo = param.getTargetLocNo();
            }
// 取前两位
            int rowNo = Integer.parseInt(locNo.substring(0, 2));
            int crnNo;
            if (rowNo >= 1 && rowNo <= 4) {
                crnNo = 1;
            } else if (rowNo >= 5 && rowNo <= 8) {
                crnNo = 2;
            } else if (rowNo >= 9 && rowNo <= 10) {
                crnNo = 3;
            } else if (rowNo >= 11 && rowNo <= 14) {
                crnNo = 4;
            } else {
                throw new IllegalArgumentException("排号超出范围: " + rowNo);
            }
            wrkMast.setCrnNo(crnNo);
            wrkMast.setModiTime(new Date());
            wrkMast.setAppeTime(new Date());
            wrkMast.setWrkDate(new Date());
            if(param.getIoType() == 22 || param.getIoType() == 32){
                wrkMastService.updateById(wrkMast);
            }else{
            wrkMastService.insert(wrkMast);
            }
            // 3. 保存WrkDetl
            if (param.getDetlList() != null && !param.getDetlList().isEmpty()) {
@@ -225,8 +298,7 @@
            }
            
            return true;
        } catch (Exception e) {
            log.error("任务下发异常", e);
        } catch (Exception e) { log.error("任务下发异常", e);
             try {
                apiLogService.save("任务下发",
                        "/taskCreate",
src/main/java/com/zy/common/config/AdminInterceptor.java
@@ -51,7 +51,7 @@
        if ("OPTIONS".equalsIgnoreCase(request.getMethod())) {
//            System.out.println("✅ 放行 OPTIONS 预检请求");
            // 手动设置 CORS 头
            response.setHeader("Access-Control-Allow-Origin", "http://10.10.10.250:8080");
            response.setHeader("Access-Control-Allow-Origin", "http://127.0.0.1:8080");
            response.setHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");
            response.setHeader("Access-Control-Allow-Headers", "Content-Type, Access-Token, token");
            response.setHeader("Access-Control-Allow-Credentials", "true");
src/main/java/com/zy/core/MainProcess.java
@@ -58,7 +58,7 @@
//                    continue;
//                }
                //盘点拣料再入库
                mainService.stnToCrnStnPick();
//                mainService.stnToCrnStnPick();
                // 入库  ===>> 入库站到堆垛机站,根据条码扫描生成入库工作档
                mainService.generateStoreWrkFile(); // 组托
src/main/resources/application.yml
@@ -40,6 +40,7 @@
wms:
  rgvOpen: false
  url: 127.0.0.1:8080/zzgtasrs
  urlWMS: 127.0.0.1:8056/actionapi/HighAsRs
  comb: mobile/combAuto/wcs/auth
#License相关配置