#
Administrator
昨天 0860a6d956dd77010d063ed06a65d70c9dab119c
src/main/java/com/zy/common/service/CommonService.java
@@ -1,5 +1,7 @@
package com.zy.common.service;
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;
@@ -12,19 +14,17 @@
import com.zy.common.utils.NavigateUtils;
import com.zy.common.utils.RedisUtil;
import com.zy.core.News;
import com.zy.core.enums.RedisKeyType;
import com.zy.core.enums.SlaveType;
import com.zy.core.enums.WrkIoType;
import com.zy.core.enums.WrkStsType;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.*;
import com.zy.core.model.StationObjModel;
import com.zy.core.model.command.StationCommand;
import com.zy.core.model.protocol.StationProtocol;
import com.zy.core.thread.StationThread;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Random;
import java.util.*;
@Slf4j
@Service
@@ -177,7 +177,10 @@
        if (!sourceCrnResult.getCrnNo().equals(targetCrnResult.getCrnNo())) {
            throw new CoolException("源库位和目标库位不在同一巷道");
        }
        List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wms_wrk_no", param.getTaskNo()));
        if (!wrkMasts.isEmpty()) {
            throw new CoolException("已经生成改任务号任务="+param.getTaskNo());
        }
        // 获取工作号
        int workNo = getWorkNo(WrkIoType.LOC_MOVE.id);
        // 保存工作档
@@ -222,6 +225,7 @@
    //入库任务
    public WrkMast createInTask(CreateInTaskParam param) {
        Date now = new Date();
//        String s = Utils.WMSLocToWCSLoc(param.getLocNo());
        LocMast locMast = locMastService.queryByLoc(param.getLocNo());
        if (null == locMast) {
            throw new CoolException(param.getLocNo() + "目标库位不存在");
@@ -248,16 +252,33 @@
        WrkMast wrkMast = new WrkMast();
        wrkMast.setWrkNo(workNo);
        wrkMast.setIoTime(now);
        wrkMast.setWrkSts(WrkStsType.NEW_INBOUND.sts); // 工作状态:1.生成入库任务
        wrkMast.setWrkSts(WrkStsType.INBOUND_DEVICE_RUN.sts); // 工作状态:3.设备搬运中
        wrkMast.setIoType(WrkIoType.IN.id); // 入出库状态: 1.入库
        wrkMast.setIoPri(ioPri);
        wrkMast.setLocNo(param.getLocNo()); // 目标库位
        wrkMast.setSourceStaNo(param.getSourceStaNo());//源站
        wrkMast.setStaNo(param.getStaNo());//目标站
        wrkMast.setWmsWrkNo(param.getTaskNo());
        if (!Cools.isEmpty(param.getSourceStaNo())&&!param.getSourceStaNo().equals("null")){
            wrkMast.setSourceStaNo(Integer.valueOf(param.getSourceStaNo()));//源站
        }
        wrkMast.setStaNo(Integer.valueOf(param.getStaNo()));//目标站
        wrkMast.setWmsWrkNo(String.valueOf(param.getTaskNo()));
        wrkMast.setBarcode(param.getBarcode());
        wrkMast.setAppeTime(now);
        wrkMast.setModiTime(now);
        StationThread stationThread = (StationThread) SlaveConnection.get(SlaveType.Devp, 1);
        StationCommand command = stationThread.getCommand(StationCommandType.WRITE_INFO,
                wrkMast.getWrkNo(), Integer.valueOf(param.getSourceStaNo()), Integer.valueOf(param.getSourceStaNo()), 0);
        Map<Integer, StationProtocol> statusMap = stationThread.getStatusMap();
        StationProtocol stationProtocol = statusMap.get(command.getStationId());
        JSONObject data = new JSONObject();
        data.put("oldTaskNo", stationProtocol.getTaskNo());
        data.put("newTaskNo", wrkMast.getWrkNo());
        data.put("command", command);
        data.put("stationId", command.getStationId());
        data.put("deviceNo", 1);
        redisUtil.set(RedisKeyType.RECEIVE_IN_TASK_CHANGE_STATION_TASK.key + command.getStationId(), JSON.toJSONString(data), 60 * 5);
        if (findCrnResult.getCrnType().equals(SlaveType.Crn)) {
            wrkMast.setCrnNo(findCrnResult.getCrnNo());
@@ -285,7 +306,7 @@
    //出库任务
    public boolean createOutTask(CreateOutTaskParam param) {
        Date now = new Date();
        LocMast locMast = locMastService.queryByLoc(param.getLocNo());
        LocMast locMast = locMastService.queryByLoc(param.getSourceLocNo());
        if (null == locMast) {
            throw new CoolException("源库位不存在");
        }
@@ -336,6 +357,19 @@
        wrkMast.setIoType(WrkIoType.OUT.id); // 入出库状态: 101.出库
        wrkMast.setIoPri(ioPri);
        wrkMast.setSourceLocNo(locMast.getLocNo()); // 源库位
        if(!Cools.isEmpty(param.getLocNo())) {
            //目标站点
            LocMast locMast1 = locMastService.queryByLoc(param.getLocNo());
            if (null == locMast1) {
                throw new CoolException("源库位不存在");
            }
            if (!locMast1.getLocSts().equals("O")) {
                throw new CoolException("目标库位不处于在库状态");
            }
            wrkMast.setLocNo(locMast1.getLocNo()); //目标库位
        }
        wrkMast.setSourceStaNo(sourceStationId);//源站
        wrkMast.setStaNo(staNo);//目标站
        wrkMast.setWmsWrkNo(param.getTaskNo());