#
zjj
2025-07-02 d3f3d4b309cfb285fcbbc48b91c4046111c7e9cd
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -22,14 +22,15 @@
import com.zy.core.model.Task;
import com.zy.core.model.protocol.StaProtocol;
import com.zy.core.properties.SlaveProperties;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.*;
@Slf4j
@Service
public class OpenServiceImpl implements OpenService {
@@ -94,6 +95,8 @@
        taskWrk.setIoPri(param.getTaskPriority());//优先级
        taskWrk.setBarcode(param.getBarcode());//条码
        taskWrk.setCrnNo(param.getCrn());
        String stats = "";
        String wcsLocNo = "";
        if(param.getIoType() == 1){
            taskWrk.setWrkSts(1);
            if (!Cools.isEmpty(param.getTargetPoint())) {
@@ -105,14 +108,18 @@
            taskWrk.setWrkSts(11);
            if (!Cools.isEmpty(param.getStartPoint())) {
                taskWrk.setStartPoint(Utils.getWcsLocNo(param.getStartPoint()));//起点
                wcsLocNo = taskWrk.getStartPoint();
                taskWrk.setOriginStartPoint(param.getStartPoint());
                stats = "R";
            }
            taskWrk.setTargetPoint(param.getTargetPoint());
        }else if (param.getIoType() == 3){
            taskWrk.setWrkSts(11);
            if (!Cools.isEmpty(param.getStartPoint())) {
                taskWrk.setStartPoint(Utils.getWcsLocNo(param.getStartPoint()));//起点
                wcsLocNo = taskWrk.getStartPoint();
                taskWrk.setOriginStartPoint(param.getStartPoint());
                stats = "R";
            }
        }
@@ -121,6 +128,18 @@
        if (!Cools.isEmpty(param.getMemo())) {
            taskWrk.setMemo(param.getMemo());//备注
        }
        // 更新库位状态,入库还没分配库位,扫码之后才分配
//        if (param.getIoType() == 2 || param.getIoType() == 3) {
//            try {
//            LocMast locMast = locMastService.selectByLocNo(wcsLocNo);
//            locMast.setLocSts(stats);
//            log.info("-----入库更新库位状态为:R成功----------"+ locMast.getLocNo());
//            locMastService.updateById(locMast);
//            } catch (Exception e){
//                log.error("-----出库更新库位状态为:R异常----------"+ e);
//            }
//        }
        if (!taskWrkService.insert(taskWrk)) {
            return R.error("创建任务失败");
@@ -138,6 +157,11 @@
            list = getInEnableRoadway();
        }else {
            list = getInEnableRoadway2();
        }
        if (Cools.isEmpty(list)){
            log.warn("无可入巷道,请稍后再试");
            return R.error("无可入巷道");
        }
@@ -162,7 +186,7 @@
        JSONObject jsonObject = JSON.parseObject(response);
        apiLogService.save("wms请求入库码头接口"
        apiLogService.save("请求入库码头接口"
                ,wmsUrl+"wcsManager/wcsInterface/inboundTaskApply"
                ,null
                ,"127.0.0.1"
@@ -213,13 +237,13 @@
    }
    @Override
    public void getAgvTaskOver(TaskOverParam param) {
    public R getAgvTaskOver(TaskOverParam param) {
        // 根据输送线plc遍历
        for (DevpSlave devp : slaveProperties.getDevp()) {
            StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
                    .eq("stn_desc", param.getWharfCode()));
            if (Cools.isEmpty(staDesc)){
                throw new RuntimeException("未查询到站点信息");
                throw new CoolException("未查询到站点信息");
            }
            // 获取入库站信息
            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
@@ -237,10 +261,13 @@
                    staProtocol.setStaNo((short)0);
                    boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(3, staProtocol));
                    if (result) {
                        return R.ok("取货完成");
                    } else {
                        throw new RuntimeException("agv返回完成后,命令下发失败");
                        throw new CoolException("agv返回完成后,命令下发失败");
                    }
                }else {
                    return R.error("取货站点状态有误,有物信号:"+staProtocol.isLoading()
                            +",车辆信号:"+staProtocol.isCar()+",工作号:"+staProtocol.getWorkNo());
                }
            }else {
                for (DevpSlave.Sta inSta : devp.getInSta()) {
@@ -252,16 +279,20 @@
                            staProtocol.setStaNo(inSta.getStaNo().shortValue());
                            boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(3, staProtocol));
                            if (result) {
                                return R.ok("放货完成");
                            } else {
                                throw new RuntimeException("agv返回完成后,命令下发失败");
                                throw new CoolException("agv返回完成后,命令下发失败");
                            }
                        }else {
                            return R.error("放货站点状态有误,有物信号:"+staProtocol.isLoading()
                                    +",车辆信号:"+staProtocol.isCar()+",工作号:"+staProtocol.getWorkNo());
                        }
                    }
                }
            }
        }
        return R.ok();
    }
@@ -289,8 +320,18 @@
                    staProtocol = staProtocol.clone();
                }
                Short workNo = staProtocol.getWorkNo();
                if (workNo == 0 && !staProtocol.isLoading()){
                if (workNo == 0 && !staProtocol.isLoading() && staProtocol.isAutoing()){
                    if (Cools.isEmpty( map.get(inSta.getStaNo()))){
                        continue;
                    }
                    BasCrnp crnp = basCrnpService.selectOne(new EntityWrapper<BasCrnp>().eq("crn_no", map.get(inSta.getStaNo())));
                    if (Cools.isEmpty(crnp)){
                        continue;
                    }
                    if (crnp.getInEnable().equals("N")){
                        continue;
                    }
                    if (crnp.getCrnSts()!=3){
                        continue;
                    }
                    list.add( map.get(inSta.getStaNo()));
@@ -325,10 +366,20 @@
                    staProtocol = staProtocol.clone();
                }
                Short workNo = staProtocol.getWorkNo();
                if (workNo == 0 && !staProtocol.isLoading()){
                if (workNo == 0 && !staProtocol.isLoading() && staProtocol.isAutoing()){
                    if (Cools.isEmpty( map.get(inSta.getStaNo()))){
                        continue;
                    }
                    BasCrnp crnp = basCrnpService.selectOne(new EntityWrapper<BasCrnp>().eq("crn_no", map.get(inSta.getStaNo())));
                    if (Cools.isEmpty(crnp)){
                        continue;
                    }
                    if (crnp.getInEnable().equals("N")){
                        continue;
                    }
                    if (crnp.getCrnSts()!=3){
                        continue;
                    }
                    list.add( map.get(inSta.getStaNo()));
                }
            }