|  |  |  | 
|---|
|  |  |  | import com.core.common.DateUtils; | 
|---|
|  |  |  | import com.core.common.R; | 
|---|
|  |  |  | import com.core.exception.CoolException; | 
|---|
|  |  |  | import com.zy.asrs.domain.enums.LedErrorAreaType; | 
|---|
|  |  |  | import com.zy.asrs.domain.enums.WorkNoType; | 
|---|
|  |  |  | import com.zy.asrs.entity.*; | 
|---|
|  |  |  | import com.zy.asrs.mapper.*; | 
|---|
|  |  |  | 
|---|
|  |  |  | // 退回 | 
|---|
|  |  |  | if (back) { | 
|---|
|  |  |  | // led 异常显示 | 
|---|
|  |  |  | LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed()); | 
|---|
|  |  |  | if (ledThread != null) { | 
|---|
|  |  |  | ErrMsg errMsg1 = new ErrMsg(); | 
|---|
|  |  |  | errMsg1.setErrMsg(errMsg); | 
|---|
|  |  |  | errMsg1.setArea("1"); | 
|---|
|  |  |  | MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errMsg1)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | LedErrorThreadUtil.ledErrorThread(errMsg,inSta.getLed(), LedErrorAreaType.FOUR_BARCODE.getDesc()); | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | // led 异常显示 | 
|---|
|  |  |  | LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed()); | 
|---|
|  |  |  | if (ledThread != null) { | 
|---|
|  |  |  | ErrMsg errMsg1 = new ErrMsg(); | 
|---|
|  |  |  | errMsg1.setErrMsg("入库请求失败"+jsonObject.getInteger("code")); | 
|---|
|  |  |  | errMsg1.setArea("1"); | 
|---|
|  |  |  | MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errMsg1)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | LedErrorThreadUtil.ledErrorThread("入库请求失败"+jsonObject.getInteger("code"),inSta.getLed(), LedErrorAreaType.ONE_OTHER.getDesc()); | 
|---|
|  |  |  | log.error("请求接口失败!!!url:{};request:{};response:{}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 尺寸检测异常 | 
|---|
|  |  |  | boolean back = false; | 
|---|
|  |  |  | String errMsg = "异常:"; | 
|---|
|  |  |  | String errMsg = inSta.getStaNo()+"站点:"; | 
|---|
|  |  |  | if (staProtocol.isFrontErr()) { | 
|---|
|  |  |  | errMsg = errMsg+"前超限;"; | 
|---|
|  |  |  | back = true; | 
|---|
|  |  |  | 
|---|
|  |  |  | // 退回 | 
|---|
|  |  |  | if (back) { | 
|---|
|  |  |  | // led 异常显示 | 
|---|
|  |  |  | LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed()); | 
|---|
|  |  |  | if (ledThread != null) { | 
|---|
|  |  |  | ErrMsg errMsg1 = new ErrMsg(); | 
|---|
|  |  |  | errMsg1.setErrMsg(errMsg); | 
|---|
|  |  |  | errMsg1.setArea("1"); | 
|---|
|  |  |  | MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errMsg1)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | LedErrorThreadUtil.ledErrorThread(errMsg,inSta.getLed(), LedErrorAreaType.FOUR_BARCODE.getDesc()); | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | // led 异常显示 | 
|---|
|  |  |  | LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed()); | 
|---|
|  |  |  | if (ledThread != null) { | 
|---|
|  |  |  | ErrMsg errMsg1 = new ErrMsg(); | 
|---|
|  |  |  | errMsg1.setErrMsg("入库请求失败"+jsonObject.getInteger("code")); | 
|---|
|  |  |  | errMsg1.setArea("1"); | 
|---|
|  |  |  | MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errMsg1)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | LedErrorThreadUtil.ledErrorThread("入库请求失败"+jsonObject.getInteger("code"),inSta.getLed(), LedErrorAreaType.ONE_OTHER.getDesc()); | 
|---|
|  |  |  | log.error("请求接口失败!!!url:{};request:{};response:{}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 尺寸检测异常 | 
|---|
|  |  |  | boolean back = false; | 
|---|
|  |  |  | String errMsg = "异常:"; | 
|---|
|  |  |  | String errMsg = inSta.getStaNo()+"站点:"; | 
|---|
|  |  |  | if (staProtocol.isFrontErr()) { | 
|---|
|  |  |  | errMsg = errMsg+"前超限;"; | 
|---|
|  |  |  | back = true; | 
|---|
|  |  |  | 
|---|
|  |  |  | // 退回 | 
|---|
|  |  |  | if (back) { | 
|---|
|  |  |  | // led 异常显示 | 
|---|
|  |  |  | LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed()); | 
|---|
|  |  |  | if (ledThread != null) { | 
|---|
|  |  |  | ErrMsg errMsg1 = new ErrMsg(); | 
|---|
|  |  |  | errMsg1.setErrMsg(errMsg); | 
|---|
|  |  |  | errMsg1.setArea("1"); | 
|---|
|  |  |  | MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errMsg1)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | LedErrorThreadUtil.ledErrorThread(errMsg,inSta.getLed(), LedErrorAreaType.FOUR_BARCODE.getDesc()); | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | //                        if (!result) { | 
|---|
|  |  |  | //                            throw new CoolException("更新plc站点信息失败"); | 
|---|
|  |  |  | //                        } | 
|---|
|  |  |  | String msg =inSta.getStaNo()+"站点条码异常,条码="+barcode; | 
|---|
|  |  |  | LedErrorThreadUtil.ledErrorThread(msg,inSta.getLed(), LedErrorAreaType.FOUR_BARCODE.getDesc()); | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | if (wrkMast111 != null) { | 
|---|
|  |  |  | LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed()); | 
|---|
|  |  |  | barcodeThread.setBarcode(""); | 
|---|
|  |  |  | staProtocol.setWorkNo(wrkMast111.getWrkNo()); | 
|---|
|  |  |  | staProtocol.setStaNo(wrkMast111.getStaNo()); | 
|---|
|  |  |  | StaProtocol staProtocol1 = new StaProtocol(); | 
|---|
|  |  |  | staProtocol1.setSiteId(staProtocol.getSiteId()); | 
|---|
|  |  |  | staProtocol1.setWorkNo(wrkMast111.getWrkNo()); | 
|---|
|  |  |  | staProtocol1.setStaNo(wrkMast111.getStaNo()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | devpThread.setPakMk(staProtocol.getSiteId(), false,637); | 
|---|
|  |  |  | boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); | 
|---|
|  |  |  | devpThread.setPakMk(staProtocol1.getSiteId(), false,637); | 
|---|
|  |  |  | boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol1)); | 
|---|
|  |  |  | if (!result) { | 
|---|
|  |  |  | if (ledThread != null) { | 
|---|
|  |  |  | ErrMsg errMsg1 = new ErrMsg(); | 
|---|
|  |  |  | errMsg1.setErrMsg("更新plc站点信息失败!站点好:"+inSta.getStaNo()); | 
|---|
|  |  |  | errMsg1.setErrMsg("更新plc站点信息失败!站点号:"+inSta.getStaNo()); | 
|---|
|  |  |  | errMsg1.setArea("1"); | 
|---|
|  |  |  | MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errMsg1)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | WrkMast wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode); | 
|---|
|  |  |  | if (wrkMast != null) { | 
|---|
|  |  |  | log.error("工作档中已存在该站状态为( 2.设备上走 )的数据,工作号={}", wrkMast.getWrkNo()); | 
|---|
|  |  |  | String msg ="工作档中已存在"+inSta.getStaNo()+"站点数据,工作号="+wrkMast.getWrkNo(); | 
|---|
|  |  |  | LedErrorThreadUtil.ledErrorThread(msg,inSta.getLed(),LedErrorAreaType.TWO_PAKIN.getDesc()); | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //                    // 获取入库通知档 | 
|---|
|  |  |  | 
|---|
|  |  |  | StartupDto dto = jsonObject.getObject("data", StartupDto.class); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | StaProtocol staProtocol1 = new StaProtocol(); | 
|---|
|  |  |  | staProtocol1.setSiteId(staProtocol.getSiteId()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | barcodeThread.setBarcode(""); | 
|---|
|  |  |  | staProtocol.setWorkNo(dto.getWorkNo()); | 
|---|
|  |  |  | staProtocol1.setWorkNo(dto.getWorkNo()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if(Cools.isEmpty(dto.getRgvNo()) || dto.getRgvNo() <= 0) { | 
|---|
|  |  |  | staProtocol.setStaNo(dto.getStaNo()); | 
|---|
|  |  |  | staProtocol1.setStaNo(dto.getStaNo()); | 
|---|
|  |  |  | } else {//如果存在RGV编号,说明需要RGV接驳,先下发任务到RGV源站 | 
|---|
|  |  |  | staProtocol.setStaNo(dto.getRgvSstaNo()); | 
|---|
|  |  |  | staProtocol1.setStaNo(dto.getRgvSstaNo()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | devpThread.setPakMk(staProtocol.getSiteId(), false,695); | 
|---|
|  |  |  | boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); | 
|---|
|  |  |  | devpThread.setPakMk(staProtocol1.getSiteId(), false,695); | 
|---|
|  |  |  | boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol1)); | 
|---|
|  |  |  | if (!result) { | 
|---|
|  |  |  | LedErrorThreadUtil.ledErrorThread("更新plc站点信息失败!站点号:"+inSta.getStaNo(),inSta.getLed(),LedErrorAreaType.ONE_OTHER.getDesc()); | 
|---|
|  |  |  | throw new CoolException("更新plc站点信息失败"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | try{ | 
|---|
|  |  |  | if (ledThread != null) { | 
|---|
|  |  |  | ErrMsg errMsg1 = new ErrMsg(); | 
|---|
|  |  |  | errMsg1.setErrMsg("更新plc站点信息失败!站点好:"+inSta.getStaNo()); | 
|---|
|  |  |  | errMsg1.setArea("1"); | 
|---|
|  |  |  | MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errMsg1)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | throw new CoolException("更新plc站点信息失败"); | 
|---|
|  |  |  | } catch (Exception e){ | 
|---|
|  |  |  | log.error("入库成功!电视机信息更新失败,小料箱入库!!!request:{};response:{}",JSON.toJSONString(param), response); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | log.error("请求接口失败!!!url:{};request:{};response:{}", wmsUrl + "/rpc/pakin/pair/station/single/loc/v1", JSON.toJSONString(param), response); | 
|---|
|  |  |  | String msg = inSta.getStaNo()+"站点:"+jsonObject.getString("msg"); | 
|---|
|  |  |  | LedErrorThreadUtil.ledErrorThread(msg,inSta.getLed(), LedErrorAreaType.TWO_PAKIN.getDesc()); | 
|---|
|  |  |  | Thread.sleep(1000); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | e.printStackTrace(); | 
|---|
|  |  |  | TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 尺寸检测异常 | 
|---|
|  |  |  | boolean back = false; | 
|---|
|  |  |  | String errMsg = "异常:"; | 
|---|
|  |  |  | String errMsg = inSta.getStaNo()+"站点:"; | 
|---|
|  |  |  | if (staProtocol.isFrontErr()) { | 
|---|
|  |  |  | errMsg = errMsg+"前超限;"; | 
|---|
|  |  |  | back = true; | 
|---|
|  |  |  | 
|---|
|  |  |  | if (ledThread != null) { | 
|---|
|  |  |  | ErrMsg errMsg1 = new ErrMsg(); | 
|---|
|  |  |  | errMsg1.setErrMsg(errMsg); | 
|---|
|  |  |  | errMsg1.setArea("1"); | 
|---|
|  |  |  | errMsg1.setArea("4"); | 
|---|
|  |  |  | MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errMsg1)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | 
|---|
|  |  |  | if (wrkMast != null) { | 
|---|
|  |  |  | LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed()); | 
|---|
|  |  |  | barcodeThread.setBarcode(""); | 
|---|
|  |  |  | staProtocol.setWorkNo(wrkMast.getWrkNo()); | 
|---|
|  |  |  | staProtocol.setStaNo(wrkMast.getStaNo()); | 
|---|
|  |  |  | StaProtocol staProtocol1 = new StaProtocol(); | 
|---|
|  |  |  | staProtocol1.setWorkNo(wrkMast.getWrkNo()); | 
|---|
|  |  |  | staProtocol1.setStaNo(wrkMast.getStaNo()); | 
|---|
|  |  |  | staProtocol1.setSiteId(staProtocol.getSiteId()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | devpThread.setPakMk(staProtocol.getSiteId(), false,843); | 
|---|
|  |  |  | log.info("锁定标记flase===》N===》站点号:{},工作号:{},条码:{}",staProtocol.getSiteId(),staProtocol.getWorkNo(),barcode); | 
|---|
|  |  |  | boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); | 
|---|
|  |  |  | devpThread.setPakMk(staProtocol1.getSiteId(), false,843); | 
|---|
|  |  |  | log.info("锁定标记flase===》N===》站点号:{},工作号:{},条码:{}",staProtocol1.getSiteId(),staProtocol1.getWorkNo(),barcode); | 
|---|
|  |  |  | boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol1)); | 
|---|
|  |  |  | if (!result) { | 
|---|
|  |  |  | if (ledThread != null) { | 
|---|
|  |  |  | ErrMsg errMsg1 = new ErrMsg(); | 
|---|
|  |  |  | errMsg1.setErrMsg("更新plc站点信息失败!站点好:"+inSta.getStaNo()); | 
|---|
|  |  |  | errMsg1.setErrMsg("更新plc站点信息失败!站点号:"+inSta.getStaNo()); | 
|---|
|  |  |  | errMsg1.setArea("1"); | 
|---|
|  |  |  | MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errMsg1)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | JSONObject jsonObject = JSON.parseObject(response); | 
|---|
|  |  |  | if (jsonObject.getInteger("code").equals(200)) { | 
|---|
|  |  |  | StartupDto dto = jsonObject.getObject("data", StartupDto.class); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | StaProtocol staProtocol1 = new StaProtocol(); | 
|---|
|  |  |  | staProtocol1.setSiteId(staProtocol.getSiteId()); | 
|---|
|  |  |  | barcodeThread.setBarcode(""); | 
|---|
|  |  |  | staProtocol.setWorkNo(dto.getWorkNo()); | 
|---|
|  |  |  | staProtocol1.setWorkNo(dto.getWorkNo()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if(Cools.isEmpty(dto.getRgvNo()) || dto.getRgvNo() <= 0) { | 
|---|
|  |  |  | staProtocol.setStaNo(dto.getStaNo()); | 
|---|
|  |  |  | staProtocol1.setStaNo(dto.getStaNo()); | 
|---|
|  |  |  | } else {//如果存在RGV编号,说明需要RGV接驳,先下发任务到RGV源站 | 
|---|
|  |  |  | staProtocol.setStaNo(dto.getRgvSstaNo()); | 
|---|
|  |  |  | staProtocol1.setStaNo(dto.getRgvSstaNo()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | devpThread.setPakMk(staProtocol.getSiteId(), false,892); | 
|---|
|  |  |  | log.info("锁定标记flase===》N===》站点号:{},工作号:{},条码:{}",staProtocol.getStaNo(),staProtocol.getWorkNo(),barcode); | 
|---|
|  |  |  | boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); | 
|---|
|  |  |  | devpThread.setPakMk(staProtocol1.getSiteId(), false,892); | 
|---|
|  |  |  | log.info("锁定标记flase===》N===》站点号:{},工作号:{},条码:{}",staProtocol1.getStaNo(),staProtocol1.getWorkNo(),barcode); | 
|---|
|  |  |  | boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol1)); | 
|---|
|  |  |  | if (!result) { | 
|---|
|  |  |  | throw new CoolException("更新plc站点信息失败"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | try{ | 
|---|
|  |  |  | LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed()); | 
|---|
|  |  |  | if (ledThread != null) { | 
|---|
|  |  |  | ErrMsg errMsg1 = new ErrMsg(); | 
|---|
|  |  |  | MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errMsg1)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } catch (Exception e){ | 
|---|
|  |  |  | log.error("入库成功!电视机信息更新失败,大料箱入库!!!request:{};response:{}",JSON.toJSONString(param), response); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //                        } else  if (jsonObject.getInteger("code").equals(700)){ | 
|---|
|  |  |  | //                            SearchLocParam param2 = new SearchLocParam(); | 
|---|
|  |  |  | //                            param2.setBarcode(barcode); | 
|---|
|  |  |  | 
|---|
|  |  |  | //                            } | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | log.error("请求接口失败!!!url:{};request:{};response:{}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response); | 
|---|
|  |  |  | String msg = jsonObject.getString("msg"); | 
|---|
|  |  |  | LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (ledThread != null) { | 
|---|
|  |  |  | ErrMsg errMsg1 = new ErrMsg(); | 
|---|
|  |  |  | errMsg1.setErrMsg("入库失败!站点号:"+inSta.getStaNo()+"==》失败原因:"+msg); | 
|---|
|  |  |  | errMsg1.setArea("1"); | 
|---|
|  |  |  | MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errMsg1)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | String msg = inSta.getStaNo()+"站点:"+jsonObject.getString("msg"); | 
|---|
|  |  |  | LedErrorThreadUtil.ledErrorThread(msg,inSta.getLed(),LedErrorAreaType.TWO_PAKIN.getDesc()); | 
|---|
|  |  |  | Thread.sleep(1000); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|