| | |
| | | import com.zy.asrs.service.*; |
| | | import com.zy.common.service.AgvCommonService; |
| | | import com.zy.common.utils.HttpHandler; |
| | | import com.zy.system.entity.Config; |
| | | 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; |
| | |
| | | @Service |
| | | @Slf4j |
| | | public class AgvWrkMastServiceImp extends ServiceImpl<AgvWrkMastMapper, AgvWrkMast> implements AgvWrkMastService { |
| | | |
| | | @Value("${agv.flag}") |
| | | private boolean flag; |
| | | |
| | | @Value("${agv.url}") |
| | | private String url; |
| | |
| | | private AgvCommonService agvCommonService; |
| | | @Autowired |
| | | private AgvWrkMastService agvWrkMastService; |
| | | @Autowired |
| | | private ConfigService configService; |
| | | |
| | | |
| | | public void updateWrkStsByWrkNo(int wrkNo, long wrkSts) { |
| | | public Boolean updateWrkStsByWrkNo(int wrkNo, long wrkSts) { |
| | | AgvWrkMast agvWrkMast = this.selectById(wrkNo); |
| | | //判断要修改的工作档状态是否合理,如果不合理则抛出异常 |
| | | checkWrkSts(agvWrkMast, wrkSts); |
| | | agvWrkMast.setWrkSts(wrkSts); |
| | | agvWrkMast.setModiTime(new Date()); |
| | | this.updateById(agvWrkMast); |
| | | return this.updateById(agvWrkMast); |
| | | } |
| | | |
| | | public void updateWrkStsByWrkNo(int wrkNo, long wrkSts, String manuType, long userId) { |
| | |
| | | agvWrkMast.setWrkNo(-agvWrkMast.getWrkNo()); |
| | | } |
| | | agvTaskCreateParam.setTaskCode(agvWrkMast.getWrkNo().toString()); |
| | | switch (agvWrkMast.getIoType()) { |
| | | case 114: |
| | | case 108: |
| | | case 12: |
| | | agvTaskCreateParam.setTaskTyp("F06"); |
| | | break; |
| | | case 109: |
| | | if (agvWrkMast.getWrkSts() == 201) { |
| | | Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "FOUR")); |
| | | if (config != null && config.getStatus() == 1 && config.getValue().equals("1") && processUseTiShengJi(agvWrkMast.getSourceLocNo(), agvWrkMast.getLocNo())) { |
| | | // TODO 四期 |
| | | } else { |
| | | switch (agvWrkMast.getIoType()) { |
| | | case 114: |
| | | case 108: |
| | | case 12: |
| | | agvTaskCreateParam.setTaskTyp("F06"); |
| | | } else { |
| | | break; |
| | | case 109: |
| | | if (agvWrkMast.getWrkSts() == 201) { |
| | | agvTaskCreateParam.setTaskTyp("F06"); |
| | | } else { |
| | | agvTaskCreateParam.setTaskTyp("F01"); |
| | | } |
| | | break; |
| | | case 1: |
| | | case 57: |
| | | // 入库任务是只有 接驳位 -- > 库位 |
| | | AgvLocMast loc = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", agvWrkMast.getLocNo())); |
| | | String locSub = loc.getLocNo().substring(loc.getLocNo().length() - 4).substring(0, 2).substring(0, 2); |
| | | AgvBasDevp agvBasDevp = agvBasDevpService.selectByDevNo(agvWrkMast.getSourceLocNo()); |
| | | if ("02".equals(locSub)) { |
| | | if (agvBasDevp.getFloor() == 4) { |
| | | agvTaskCreateParam.setTaskTyp("F01"); |
| | | } else { |
| | | agvTaskCreateParam.setTaskTyp("F06"); |
| | | } |
| | | |
| | | } else { |
| | | // 目标楼层位1楼 但源库位(接驳位)在吸塑二楼 |
| | | if (agvBasDevp.getFloor() == 4) { |
| | | agvTaskCreateParam.setTaskTyp("F06"); |
| | | } else { |
| | | agvTaskCreateParam.setTaskTyp("F01"); |
| | | } |
| | | |
| | | |
| | | } |
| | | break; |
| | | default: |
| | | agvTaskCreateParam.setTaskTyp("F01"); |
| | | } |
| | | break; |
| | | case 1: |
| | | case 57: |
| | | // 入库任务是只有 接驳位 -- > 库位 |
| | | AgvLocMast loc = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", agvWrkMast.getLocNo())); |
| | | String locSub = loc.getLocNo().substring(loc.getLocNo().length() - 4).substring(0, 2).substring(0, 2); |
| | | AgvBasDevp agvBasDevp = agvBasDevpService.selectByDevNo(agvWrkMast.getSourceLocNo()); |
| | | if ("02".equals(locSub)) { |
| | | if (agvBasDevp.getFloor() == 4) { |
| | | agvTaskCreateParam.setTaskTyp("F01"); |
| | | } else { |
| | | agvTaskCreateParam.setTaskTyp("F06"); |
| | | } |
| | | |
| | | } else { |
| | | // 目标楼层位1楼 但源库位(接驳位)在吸塑二楼 |
| | | if (agvBasDevp.getFloor() == 4) { |
| | | agvTaskCreateParam.setTaskTyp("F06"); |
| | | } else { |
| | | agvTaskCreateParam.setTaskTyp("F01"); |
| | | } |
| | | |
| | | |
| | | } |
| | | break; |
| | | default: |
| | | agvTaskCreateParam.setTaskTyp("F01"); |
| | | break; |
| | | break; |
| | | } |
| | | } |
| | | |
| | | agvTaskCreateParam.setPositionCodePath(agvTaskParamList); |
| | | |
| | | } |
| | | |
| | | // TODO 四期 |
| | | private boolean processUseTiShengJi(String sourceLocNo, String locNo) { |
| | | // 判断是否是提升机 |
| | | if (sourceLocNo.startsWith("YZ")) { |
| | | if (sourceLocNo.endsWith("01F2") && !locNo.startsWith("YZ") && locNo.endsWith("F4") ) { |
| | | // 从生产二厂的库位到吸塑二厂的点位上 |
| | | return true; |
| | | } else if (sourceLocNo.endsWith("01F2") && locNo.startsWith("YZ") && locNo.endsWith("02F1")) { |
| | | // 从生产二厂的库位到吸塑二厂的库位 |
| | | return true; |
| | | } else if (sourceLocNo.endsWith("02F1") && locNo.startsWith("YZ") && locNo.endsWith("01F2")) { |
| | | // 吸塑二楼的库位到生产二厂的库位 |
| | | return true; |
| | | } else if (sourceLocNo.endsWith("02F1") && !locNo.startsWith("YZ") && locNo.endsWith("F2")) { |
| | | // 吸塑二楼的库位到生产二厂的点位 |
| | | return true; |
| | | } |
| | | } else { |
| | | if (sourceLocNo.endsWith("F4") && locNo.startsWith("YZ") && locNo.endsWith("01F2")) { |
| | | // 从吸塑二楼的点位到生产二厂的库位 |
| | | return true; |
| | | } else if (sourceLocNo.endsWith("F2") && locNo.startsWith("YZ") && locNo.endsWith("02F1")) { |
| | | // 从生产二厂的点位到吸塑二楼的库位 |
| | | return true; |
| | | } |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | private int doHttpRequest(Object requestParam, String namespace, String url, String path, String appkey, String ip) { |
| | | if (!flag) { |
| | | return 1; |
| | | } |
| | | String response = ""; |
| | | boolean success = false; |
| | | int code = 0; |
| | | try { |
| | | response = new HttpHandler.Builder() |
| | | .setUri(url) |
| | |
| | | .doPost(); |
| | | JSONObject jsonObject = JSON.parseObject(response); |
| | | |
| | | int code = Integer.parseInt(jsonObject.get("code").toString()); |
| | | code = Integer.parseInt(jsonObject.get("code").toString()); |
| | | if (code != 0) { |
| | | if (code == 6) { |
| | | log.info("AGV任务单号已上报:{}", response); |
| | |
| | | return code; |
| | | } catch (Exception e) { |
| | | log.error(e.getMessage()); |
| | | //TODO 张超 |
| | | throw new CoolException("调用AGV响应错误"); |
| | | //return 1; |
| | | } finally { |
| | | apiLogService.save( |
| | | namespace, |
| | | url + path, |
| | | appkey, |
| | | ip, |
| | | JSON.toJSONString(JSONObject.toJSONString(requestParam)), |
| | | response, |
| | | success |
| | | ); |
| | | if (code != 6) { |
| | | apiLogService.save( |
| | | namespace, |
| | | url + path, |
| | | appkey, |
| | | ip, |
| | | JSON.toJSONString(JSONObject.toJSONString(requestParam)), |
| | | response, |
| | | success |
| | | ); |
| | | } |
| | | } |
| | | |
| | | } |