#
zjj
3 天以前 c904f735e0b8a488ef56744c08f8e10258639bce
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -7,16 +7,11 @@
import com.core.common.R;
import com.core.exception.CoolException;
import com.zy.asrs.domain.enums.TaskStatusType;
import com.zy.asrs.entity.StaDesc;
import com.zy.asrs.entity.TaskWrk;
import com.zy.asrs.entity.ToWmsDTO;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.TaskOverParam;
import com.zy.asrs.entity.param.WMSAndAGVInterfaceParam;
import com.zy.asrs.entity.param.taskCreateParam;
import com.zy.asrs.service.ApiLogService;
import com.zy.asrs.service.OpenService;
import com.zy.asrs.service.StaDescService;
import com.zy.asrs.service.TaskWrkService;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.Utils;
import com.zy.common.utils.HttpHandler;
import com.zy.core.DevpThread;
@@ -48,6 +43,11 @@
    @Autowired
    private StaDescService staDescService;
    @Autowired
    private BasCrnpService basCrnpService;
    @Autowired
    private LocMastService locMastService;
    @Value("${wms.url}")
@@ -61,6 +61,22 @@
    @Override
    public R taskCreate(taskCreateParam param) {
        //禁用堆垛机后不可下发任务
//        BasCrnp basCrnp = basCrnpService.selectOne(new EntityWrapper<BasCrnp>().eq("crn_no", param.getCrn()));
//        if ((param.getIoType() == 3 || param.getIoType() == 1 ) && basCrnp.getInEnable().equals("N")){
//            throw new CoolException("生成任务失败,堆垛机不可用");
//        } else if (param.getIoType() == 2 && basCrnp.getOutEnable().equals("N")) {
//            throw new CoolException("生成任务失败,堆垛机不可用");
//        }
        //禁用库位后不可下发出库任务
        if (param.getIoType() == 2){
            String wcsLocNo = Utils.getWcsLocNo(param.getStartPoint());
            LocMast locMast = locMastService.selectByLocNo(wcsLocNo);
            if (locMast.getLocSts().equals("J")){
                throw new CoolException("生成出库任务失败,库位被禁用");
            }
        }
        TaskWrk taskWrk = taskWrkService.selectByTaskNo(param.getTaskNo());
        if (taskWrk != null) {
            throw new CoolException(param.getTaskNo() + "任务已存在,请勿重复提交");
@@ -146,11 +162,11 @@
        JSONObject jsonObject = JSON.parseObject(response);
        apiLogService.save("wms请求入库码头接口"
        apiLogService.save("请求入库码头接口"
                ,wmsUrl+"wcsManager/wcsInterface/inboundTaskApply"
                ,null
                ,"127.0.0.1"
                ,JSON.toJSONString(param)
                ,JSON.toJSONString(toWmsDTO)
                ,response
                ,true
        );
@@ -175,12 +191,19 @@
                staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
                        .eq("crn_no",data.getTaskTunnel())
                        .eq("type_no",1)
                        .lt("crn_stn",200));
                        .lt("stn_no",200));
            }else if (param.getWharfSource().contains("H")){
                staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
                        .eq("crn_no",data.getTaskTunnel())
                        .eq("type_no",1)
                        .lt("stn_no",400)
                        .gt("stn_no",200));
            }else {
                staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
                        .eq("crn_no",data.getTaskTunnel())
                        .eq("type_no",1)
                        .ge("crn_stn",200));
                        .lt("stn_no",500)
                        .ge("stn_no",400));
            }
            map1.put("taskTunnel", staDesc.getStnDesc());
            //map1.put("taskTunnel", "J-1104");
@@ -190,13 +213,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());
@@ -214,10 +237,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()) {
@@ -229,16 +255,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();
    }
@@ -266,8 +296,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()));
@@ -302,10 +342,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()));
                }
            }