自动化立体仓库 - WCS系统
#
LSH
2024-03-29 e7dd8396e19f538e5f51ced927e2f62e1f75fa63
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -4,6 +4,7 @@
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.core.common.R;
import com.core.exception.CoolException;
import com.zy.asrs.controller.CrnController;
import com.zy.asrs.controller.OpenController;
@@ -270,6 +271,7 @@
                                    if (staNoCrnNo==0){
                                        basDevp.setStaErr(1);
                                        basDevpService.updateById(basDevp);
                                        log.error("站点号异常"+inSta.getStaNo());
                                        throw new CoolException("站点号异常"+inSta.getStaNo());
                                    }else {
                                        LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
@@ -278,6 +280,7 @@
                                        if (Cools.isEmpty(locMast)){
                                            basDevp.setStaErr(1);
                                            basDevpService.updateById(basDevp);
                                            log.error("站点号异常"+inSta.getStaNo());
                                            throw new CoolException("站点号异常"+inSta.getStaNo());
                                        }
                                    }
@@ -285,6 +288,7 @@
//                                    log.error("扫码检测程序异常"+inSta.getStaNo()+"异常信息"+e);
                                    // 退回
                                    log.error("扫码检测程序异常"+inSta.getStaNo()+errMsg);
                                    log.error("扫码检测程序异常,异常信息"+e);
                                    staProtocol.setWorkNo((short)9999);
                                    staProtocol.setStaNo(inSta.getStaNo().shortValue());
@@ -327,7 +331,7 @@
                                        );
                                    }catch (Exception e){
                                        log.error("wcs派发库位不为空上报wms", getWmsDto.getWrkNo());
                                        throw new CoolException("wcs派发入库任务上报wms失败");
                                        throw new CoolException("wcs派发入库任务上报wms失败,异常信息:"+e);
                                    }
                                }
@@ -386,24 +390,36 @@
            for (CrnSlave.CrnStn crnStn : crnSlave.getCrnOutStn()) {
                List<StaDesc> staDescs = staDescMapper.selectList(new EntityWrapper<StaDesc>().eq("crn_no", crnSlave.getId()).eq("crn_stn", crnStn.getStaNo()));
                for (StaDesc staDesc : staDescs){
                    // 获取堆垛机出库站信息
                    DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
                    StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
                    if (staProtocol == null) {
                        continue;
                    } else {
                        staProtocol = staProtocol.clone();
                    }
                    if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == 0)) {
                        // 查询工作档
                        TaskWrk taskWrk = taskWrkMapper.selectCrnStaWorking(crnSlave.getId(), staDesc.getStnNo().toString());
                        if (taskWrk == null) {
                    try{
                        // 获取堆垛机出库站信息
                        DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
                        StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
                        if (staProtocol == null) {
                            continue;
                        } else {
                            staProtocol = staProtocol.clone();
                        }
                        siteController.siteDetlUpdate(Integer.valueOf(taskWrk.getTargetPoint()),taskWrk.getWrkNo().shortValue(),(short)0,"Y",false,false);
                        taskWrk.setStatus(5);
                        taskWrk.setWrkSts(14);
                        taskWrkService.updateById(taskWrk);
                        if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == 0)) {
                            // 查询工作档
                            TaskWrk taskWrk = taskWrkMapper.selectCrnStaWorking(crnSlave.getId(), staDesc.getStnNo().toString());
                            if (taskWrk == null) {
                                continue;
                            }
                            log.info("下发输送线任务:taskWrk:"+JSON.toJSONString(taskWrk));
                            R r = siteController.siteDetlUpdate(Integer.valueOf(taskWrk.getTargetPoint()), taskWrk.getWrkNo().shortValue(), (short) 0, "Y", false, false);
                            JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(r));
                            if (jsonObject.getInteger("code").equals(200)){
                                log.info("下发输送线任务成功:taskWrk:"+JSON.toJSONString(taskWrk));
                                taskWrk.setStatus(5);
                                taskWrk.setWrkSts(14);
                                taskWrkService.updateById(taskWrk);
                            }else {
                                log.error("下发输送线任务失败:taskWrk:"+JSON.toJSONString(taskWrk));
                                log.error("下发输送线任务失败:异常信息:"+JSON.toJSONString(r));
                            }
                        }
                    }catch (Exception e){
                        log.error("出库到出库站异常:异常信息:"+e);
                    }
                }
@@ -934,7 +950,7 @@
                crnController.crnTaskComplete(crnOperatorParam);
                if(!Cools.isEmpty(taskWrk)){
                    if(taskWrk.getIoType()==1&&taskWrk.getWrkSts()==3){
                    if(taskWrk.getIoType()==1 && taskWrk.getWrkSts()==3){
                        taskWrk.setWrkSts(4);//入库完成
                        taskWrk.setStatus(5);//完结
                        //更新库位状态