| | |
| | | import com.zy.system.service.ConfigService; |
| | | 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 java.util.*; |
| | |
| | | private LiftAction liftAction; |
| | | @Autowired |
| | | private BasWrkStatusService wrkStatusService; |
| | | @Value("${asrs.wmsUrl}") |
| | | private String wmsUrl; |
| | | |
| | | |
| | | public boolean isInEnable(DevpThread devpThread, Integer staNo) { |
| | |
| | | if (staProtocol.isAutoing() && staProtocol.isLoading() && isInEnable(devpThread, inSta.getStaNo()) && !staProtocol.isEmptyMk() && (workNo == 0 || (workNo >= 9990 && workNo <= 9999)) && staProtocol.isPakMk()) { |
| | | String barcode = staProtocol.getBarcode(); |
| | | // 判断重复工作档 |
| | | WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("source_sta_no", inSta.getStaNo()).eq("wrk_sts", WrkStsType.NEW_INBOUND.sts).eq("barcode", barcode)); |
| | | if (wrkMast != null) { |
| | | WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("source_sta_no", inSta.getStaNo()).eq("barcode", barcode)); |
| | | if (wrkMast != null && wrkMast.getWrkSts() == WrkStsType.NEW_INBOUND.sts) { |
| | | News.error("工作档已存在,工作号={}", wrkMast.getWrkNo()); |
| | | //判断时提升机侧,还是无提升机测 |
| | | staProtocol.setWorkNo(Short.parseShort(String.valueOf(wrkMast.getWrkNo()))); |
| | |
| | | wrkMast.setWrkSts(WrkStsType.INBOUND_DEVICE_RUN.sts); |
| | | wrkMast.setModiTime(new Date()); |
| | | wrkMastService.updateById(wrkMast); |
| | | } else if (wrkMast != null && wrkMast.getWrkSts() != WrkStsType.NEW_INBOUND.sts) { |
| | | continue; |
| | | } |
| | | try { |
| | | String wmsUrl = "192.168.10.201:8080/fyxcwms"; |
| | | SearchLocParam param = new SearchLocParam(); |
| | | param.setBarcode(barcode); |
| | | param.setIoType(1); |
| | | param.setSourceStaNo(inSta.getStaNo()); |
| | | param.setLocType1(staProtocol.getLocType1().shortValue()); |
| | | param.setLocType1((short) 1); |
| | | String response = new HttpHandler.Builder() |
| | | .setUri(wmsUrl) |
| | | .setPath("/rpc/pakin/loc/v1") |
| | |
| | | News.error("入库申请失败,任务数据={},请求响应={}", JSON.toJSON(param), JSON.toJSON(jsonObject)); |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | log.error("调用wms报错1,{}", e.getMessage()); |
| | | } |
| | | } |
| | | } else if (inSta.getStaNo() == 1012 || inSta.getStaNo() == 1022) { |
| | | // 获取入库站信息 |
| | | DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1); |
| | | StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo()); |
| | | if (staProtocol == null) { |
| | | continue; |
| | | } else { |
| | | staProtocol = staProtocol.clone(); |
| | | } |
| | | Short workNo = staProtocol.getWorkNo(); |
| | | if (staProtocol.isAutoing() && staProtocol.isLoading() && isInEnable(devpThread, inSta.getStaNo()) && !staProtocol.isEmptyMk() && (workNo == 0 || (workNo >= 9990 && workNo <= 9999)) && staProtocol.isPakMk()) { |
| | | String barcode = staProtocol.getBarcode(); |
| | | // 判断重复工作档 |
| | | WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("source_sta_no", inSta.getStaNo()).eq("barcode", barcode)); |
| | | if (wrkMast == null) { |
| | | try { |
| | | SearchLocParam param = new SearchLocParam(); |
| | | param.setBarcode(barcode); |
| | | param.setIoType(1); |
| | | param.setSourceStaNo(inSta.getStaNo()); |
| | | param.setLocType1((short) 1); |
| | | String response = new HttpHandler.Builder() |
| | | .setUri(wmsUrl) |
| | | .setPath("/rpc/pakin/loc/v1") |
| | | .setJson(JSON.toJSONString(param)) |
| | | .build() |
| | | .doPost(); |
| | | JSONObject jsonObject = JSON.parseObject(response); |
| | | Integer code = jsonObject.getInteger("code"); |
| | | if (code.equals(200)) { |
| | | |
| | | } else { |
| | | String msg = jsonObject.getString("msg"); |
| | | HashMap<String, String> hashMap = new HashMap<>(); |
| | | hashMap.put("msg", msg); |
| | | hashMap.put("sta", inSta.getStaNo().toString()); |
| | | new HttpHandler.Builder() |
| | | .setUri(wmsUrl) |
| | | .setPath("/rpc/led/getError") |
| | | .setJson(JSON.toJSONString(hashMap)) |
| | | .build() |
| | | .doPost(); |
| | | News.error("入库申请失败,任务数据={},请求响应={}", JSON.toJSON(param), JSON.toJSON(jsonObject)); |
| | | } |
| | | } catch (Exception e) { |
| | | log.error("调用wms报错2,{}", e.getMessage()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } catch (Exception e) { |
| | |
| | | short staNo = 1012; |
| | | if (wrkMast.getSourceStaNo() == 1022) { |
| | | staNo = 1023; |
| | | } else if (wrkMast.getSourceStaNo() == 1031 || wrkMast.getSourceStaNo() == 1032) { |
| | | staNo = 1032; |
| | | } |
| | | |
| | | staProtocol = staProtocol.clone(); |
| | |
| | | News.info("{}任务,{}站点,托盘码不匹配,站点托盘码:{},任务托盘码:{}", wrkMast.getWrkNo(), staProtocol.getSiteId(), staProtocol.getBarcode(), wrkMast.getBarcode()); |
| | | return false; |
| | | } |
| | | } else { |
| | | } else if (sourceStaNo == 1012) { |
| | | if (staProtocol.getWorkNo().intValue() != wrkMast.getWrkNo()) { |
| | | News.info("{}任务,{}站点,任务号不一致", wrkMast.getWrkNo(), staProtocol.getSiteId()); |
| | | return false; |
| | | } |
| | | if (!staProtocol.getBarcode().equals(wrkMast.getBarcode())) { |
| | | News.info("{}任务,{}站点,托盘码不匹配,站点托盘码:{},任务托盘码:{}", wrkMast.getWrkNo(), staProtocol.getSiteId(), staProtocol.getBarcode(), wrkMast.getBarcode()); |
| | | return false; |
| | | } |
| | | } else if (sourceStaNo == 1032 || sourceStaNo == 1031) { |
| | | if (staProtocol.getWorkNo().intValue() != wrkMast.getWrkNo()) { |
| | | News.info("{}任务,{}站点,任务号不一致", wrkMast.getWrkNo(), staProtocol.getSiteId()); |
| | | return false; |
| | |
| | | String locNo = "0200305"; |
| | | if (wrkMast.getSourceStaNo() == 1012) { |
| | | locNo = "0200301"; |
| | | } else if (wrkMast.getSourceStaNo() == 1032 || wrkMast.getSourceStaNo() == 1031) { |
| | | locNo = "0200308"; |
| | | } |
| | | boolean dispatchShuttle = shuttleDispatchUtils.searchDispatchShuttleS(wrkMast.getWrkNo(), locNo, wrkMast.getLocNo(), "TRANSPORT_LIFT"); |
| | | if (!dispatchShuttle) { |
| | |
| | | return false; |
| | | } |
| | | |
| | | int lev = 105; |
| | | if (wrkMast.getSourceStaNo() == 1012) { |
| | | lev = 101; |
| | | int lev = 101; |
| | | if (wrkMast.getSourceStaNo() == 1021) { |
| | | //TODO |
| | | // lev = 105; |
| | | lev = 1021; |
| | | } else if (wrkMast.getSourceStaNo() == 1032 || wrkMast.getSourceStaNo() == 1031) { |
| | | lev = 1031; |
| | | } |
| | | //获取提升机命令 |
| | | List<LiftCommand> liftCommands = liftThread.getPalletInCommand(wrkMast.getWrkNo(), sourceStaNo, lev); |
| | |
| | | String locNo = "0200305"; |
| | | if (wrkMast.getStaNo() == 1011) { |
| | | locNo = "0200301"; |
| | | } else if (wrkMast.getStaNo() == 1032) { |
| | | locNo = "0200308"; |
| | | } |
| | | boolean dispatchShuttle = shuttleDispatchUtils.searchDispatchShuttleS(wrkMast.getWrkNo(), wrkMast.getSourceLocNo(), locNo, "TRANSPORT_LIFT"); |
| | | if (!dispatchShuttle) { |
| | |
| | | } |
| | | |
| | | private void shuttleMoveExecuteTransportNoLift(WrkMast wrkMast) { |
| | | if (12 == Utils.getRow(wrkMast.getSourceLocNo()) && 3 == Utils.getBay(wrkMast.getSourceLocNo())) { |
| | | WrkMast mainWrk = wrkMastService.selectByWorkNo(wrkMast.getMainWrkNo()); |
| | | if (mainWrk != null && mainWrk.getIoType() == 1) { |
| | | //入库 |
| | | noLiftInService.shuttleMoveExecute(wrkMast); |
| | | } else { |
| | | noLiftInService.shuttleMoveExecute(wrkMast, mainWrk.getStaNo()); |
| | | } else if (mainWrk != null && mainWrk.getIoType() == 101) { |
| | | //出库 |
| | | noLiftOutService.shuttleMoveExecute(wrkMast); |
| | | } |