| | |
| | | |
| | | @Override |
| | | public void getWorkOrderProcessFromU9(List<String> docNos) throws Exception { |
| | | List<String> noProcessDocNos = docNos; |
| | | List<String> noProcessDocNos = new ArrayList<>(docNos); |
| | | List<String> haveProcessDocNos = new ArrayList<>(); |
| | | ApsWorkOrderJobLog apsWorkOrderJobLog = new ApsWorkOrderJobLog(); |
| | | // 设置请求头 |
| | | HttpHeaders headers = new HttpHeaders(); |
| | | headers.setContentType(MediaType.APPLICATION_JSON); |
| | |
| | | ResponseEntity<String> response = restTemplate.postForEntity(u9WorkOrderProcessUrl, request, String.class); |
| | | String responseBody = response.getBody(); |
| | | JSONObject responseBodyJson = JSONObject.parseObject(responseBody); |
| | | ApsWorkOrderJobLog apsWorkOrderJobLog = new ApsWorkOrderJobLog(); |
| | | apsWorkOrderJobLog.setRequestData(requestBody.toJSONString()); |
| | | apsWorkOrderJobLog.setCreateTime(DateUtils.getNowDate()); |
| | | apsWorkOrderJobLog.setBizType("work_order_process"); |
| | | apsWorkOrderJobLog.setResult("SUCCESS"); |
| | | apsWorkOrderJobLogService.insertApsWorkOrderJobLog(apsWorkOrderJobLog); |
| | | List<String> haveProcessDocNos = new ArrayList<>(); |
| | | if (response.getStatusCode().is2xxSuccessful()) { |
| | | if(!StringUtils.isEmpty(responseBody)){ |
| | | if("200".equals(responseBodyJson.getString("status"))){ |
| | |
| | | List<ApsWorkOrderProcess> addList = new ArrayList<>(); |
| | | List<ApsWorkOrderProcess> updateList = new ArrayList<>(); |
| | | String nowDocNo = null; |
| | | for (Object o : jsonArray) { |
| | | JSONObject process = (JSONObject) o; |
| | | for (int i = 0,size=jsonArray.size();i<size;i++) { |
| | | JSONObject process = jsonArray.getJSONObject(i); |
| | | if (nowDocNo == null) { |
| | | nowDocNo = process.getString("DocNo"); |
| | | noProcessDocNos.remove(nowDocNo); |
| | |
| | | apsWorkOrderProcess.setCreateTime(DateUtils.getNowDate()); |
| | | addList.add(apsWorkOrderProcess); |
| | | // } |
| | | if(!nowDocNo.equals(process.getString("DocNo"))){ |
| | | if(!nowDocNo.equals(process.getString("DocNo")) || i==size-1){ |
| | | //更新工单同步工序状态 |
| | | docNos.remove(nowDocNo); |
| | | noProcessDocNos.remove(nowDocNo); |
| | | haveProcessDocNos.add(nowDocNo); |
| | | nowDocNo = process.getString("DocNo"); |
| | | } |
| | |
| | | apsWorkOrderJobLogService.updateApsWorkOrderJobLog(apsWorkOrderJobLog); |
| | | logger.info("【INSERT】获取并插入U9工序成功!【工单号:{}】", docNos); |
| | | } |
| | | Map<String, Object> param = new HashMap<>(); |
| | | param.put("status", "1"); |
| | | param.put("docNos", haveProcessDocNos); |
| | | apsWorkOrderJobMapper.updateApsWorkOrderJobPrccessStatus(param); |
| | | }else{ |
| | | if(!noProcessDocNos.isEmpty()){ |
| | | Map<String, Object> param = new HashMap<>(); |
| | | param.put("status", "2"); |
| | | param.put("docNos", noProcessDocNos); |
| | | apsWorkOrderJobMapper.updateApsWorkOrderJobPrccessStatus(param); |
| | | apsWorkOrderJobLog.setRequestData(requestBody.toJSONString()); |
| | | apsWorkOrderJobLog.setResponseData(response.getBody()); |
| | | apsWorkOrderJobLog.setResult("empty"); |
| | | apsWorkOrderJobLog.setUpdateTime(DateUtils.getNowDate()); |
| | | apsWorkOrderJobLogService.updateApsWorkOrderJobLog(apsWorkOrderJobLog); |
| | | } |
| | | break; |
| | | } |
| | | if(jsonArray.size()<1000){ |
| | | break; |
| | |
| | | throw new Exception("【ERROR】查询U9工序失败!【工单号:{"+ docNos +"}, 错误码:{"+ responseBodyJson.getString("status") +"},错误信息:{"+ responseBodyJson.getString("message") +"}】"); |
| | | } |
| | | } |
| | | if(!haveProcessDocNos.isEmpty()){ |
| | | Map<String, Object> param = new HashMap<>(); |
| | | param.put("status", "1"); |
| | | param.put("docNos", haveProcessDocNos); |
| | | apsWorkOrderJobMapper.updateApsWorkOrderJobPrccessStatus(param); |
| | | } |
| | | if(!noProcessDocNos.isEmpty()){ |
| | | Map<String, Object> param = new HashMap<>(); |
| | | param.put("status", "2"); |
| | | param.put("docNos", noProcessDocNos); |
| | | apsWorkOrderJobMapper.updateApsWorkOrderJobPrccessStatus(param); |
| | | apsWorkOrderJobLog.setRequestData(noProcessDocNos.toString()); |
| | | apsWorkOrderJobLog.setResponseData(""); |
| | | apsWorkOrderJobLog.setResult("empty"); |
| | | apsWorkOrderJobLog.setUpdateTime(DateUtils.getNowDate()); |
| | | apsWorkOrderJobLogService.updateApsWorkOrderJobLog(apsWorkOrderJobLog); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void syncWorkOrderProcessData(String status, Integer pageSize) { |
| | | try{ |
| | | Integer pageNum = 1; |
| | | //分页查询工单 |
| | | ApsWorkOrderJob apsWorkOrderJob = new ApsWorkOrderJob(); |
| | | if("".equals(status)){ |
| | |
| | | while (true){ |
| | | PageHelper.startPage(1, pageSize); |
| | | List<ApsWorkOrderJob> pageList = apsWorkOrderJobMapper.selectApsWorkOrderJobList(apsWorkOrderJob); |
| | | PageHelper.clearPage(); |
| | | if(!pageList.isEmpty()){ |
| | | long startTime = System.currentTimeMillis(); |
| | | List<String> docNos = new ArrayList<>(); |
| | |
| | | break; |
| | | } |
| | | lastDocNos = String.join(",", docNos); |
| | | long endTime = System.currentTimeMillis(); // 记录结束时间 |
| | | long duration = endTime - startTime; // 计算运行时间 |
| | | System.out.println("运行时间:"+ duration +"毫秒"); |
| | | } |
| | | pageNum++; |
| | | } |
| | | }else{ |
| | | while (true){ |
| | | PageHelper.startPage(1, pageSize); |
| | | List<ApsWorkOrderJob> pageList = apsWorkOrderJobMapper.selectApsWorkOrderJobList(apsWorkOrderJob); |
| | | PageHelper.clearPage(); |
| | | if(!pageList.isEmpty()){ |
| | | long startTime = System.currentTimeMillis(); |
| | | List<String> docNos = new ArrayList<>(); |
| | |
| | | } |
| | | if(!docNos.isEmpty()){ |
| | | getWorkOrderProcessFromU9(docNos); |
| | | long endTime = System.currentTimeMillis(); // 记录结束时间 |
| | | long duration = endTime - startTime; // 计算运行时间 |
| | | System.out.println("运行时间:"+ duration +"毫秒"); |
| | | }else{ |
| | | break; |
| | | } |
| | | }else{ |
| | | break; |
| | | } |
| | | pageNum++; |
| | | } |
| | | } |
| | | }catch (Exception e){ |