| | |
| | | HttpHeaders headers = new HttpHeaders(); |
| | | headers.setContentType(MediaType.APPLICATION_JSON); |
| | | // 设置请求体 |
| | | JSONObject requestBody = new JSONObject(); |
| | | requestBody.put("DocList", docNos); |
| | | requestBody.put("PageIndex", 1); |
| | | requestBody.put("PageSize", 1000); |
| | | // 创建HttpEntity对象 |
| | | HttpEntity<String> request = new HttpEntity<>(requestBody.toJSONString(), headers); |
| | | // 发送POST请求 |
| | | 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"))){ |
| | | JSONArray jsonArray = responseBodyJson.getJSONArray("data"); |
| | | if (!jsonArray.isEmpty()) { |
| | | List<ApsWorkOrderProcess> addList = new ArrayList<>(); |
| | | List<ApsWorkOrderProcess> updateList = new ArrayList<>(); |
| | | String nowDocNo = null; |
| | | for (Object o : jsonArray) { |
| | | JSONObject process = (JSONObject) o; |
| | | if (nowDocNo == null) { |
| | | nowDocNo = process.getString("DocNo"); |
| | | docNos.remove(nowDocNo); |
| | | haveProcessDocNos.add(nowDocNo); |
| | | int pageSize = 1000; |
| | | int pageIndex = 1; |
| | | while (true){ |
| | | JSONObject requestBody = new JSONObject(); |
| | | requestBody.put("DocList", docNos); |
| | | requestBody.put("PageIndex", pageIndex); |
| | | requestBody.put("PageSize", pageSize); |
| | | // 创建HttpEntity对象 |
| | | HttpEntity<String> request = new HttpEntity<>(requestBody.toJSONString(), headers); |
| | | // 发送POST请求 |
| | | 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"))){ |
| | | JSONArray jsonArray = responseBodyJson.getJSONArray("data"); |
| | | if (!jsonArray.isEmpty()) { |
| | | List<ApsWorkOrderProcess> addList = new ArrayList<>(); |
| | | List<ApsWorkOrderProcess> updateList = new ArrayList<>(); |
| | | String nowDocNo = null; |
| | | for (Object o : jsonArray) { |
| | | JSONObject process = (JSONObject) o; |
| | | if (nowDocNo == null) { |
| | | nowDocNo = process.getString("DocNo"); |
| | | docNos.remove(nowDocNo); |
| | | haveProcessDocNos.add(nowDocNo); |
| | | } |
| | | Map<String, Object> params = new HashMap<>(); |
| | | params.put("docNo", process.getString("DocNo")); |
| | | params.put("opNum", process.getString("OpNum")); |
| | | params.put("opId", process.getString("OpID")); |
| | | Long existsId = apsWorkOrderProcessMapper.existsByDocNoOpNumOpId(params); |
| | | ApsWorkOrderProcess apsWorkOrderProcess = new ApsWorkOrderProcess(); |
| | | apsWorkOrderProcess.setItemCode(process.getString("ItemCode")); |
| | | apsWorkOrderProcess.setDocNo(process.getString("DocNo")); |
| | | apsWorkOrderProcess.setOpNum(process.getString("OpNum")); |
| | | apsWorkOrderProcess.setOpId(process.getString("OpID")); |
| | | apsWorkOrderProcess.setProcessName(process.getString("StdOp")); |
| | | apsWorkOrderProcess.setStandardTime(process.getBigDecimal("StandardTime")); |
| | | apsWorkOrderProcess.setPalnStartDate(process.getDate("PlanStartDate")); |
| | | apsWorkOrderProcess.setPlanCompleteDate(process.getDate("PlanCompleteDate")); |
| | | apsWorkOrderProcess.setProcessQty(process.getBigDecimal("ProcessQty")); |
| | | apsWorkOrderProcess.setScrapQty(process.getBigDecimal("ScrapQty")); |
| | | apsWorkOrderProcess.setOpStatus(process.getString("OpStatus")); |
| | | apsWorkOrderProcess.setOrg(process.getString("Org")); |
| | | apsWorkOrderProcess.setOrgCode(process.getString("OrgCode")); |
| | | apsWorkOrderProcess.setWorkCenter(process.getString("WorkCenter")); |
| | | if (existsId != null) { |
| | | apsWorkOrderProcess.setId(existsId); |
| | | apsWorkOrderProcess.setUpdateBy("task"); |
| | | apsWorkOrderProcess.setUpdateTime(DateUtils.getNowDate()); |
| | | updateList.add(apsWorkOrderProcess); |
| | | } else { |
| | | apsWorkOrderProcess.setId(IdUtil.getSnowflakeNextId()); |
| | | apsWorkOrderProcess.setCreateBy("task"); |
| | | apsWorkOrderProcess.setCreateTime(DateUtils.getNowDate()); |
| | | addList.add(apsWorkOrderProcess); |
| | | } |
| | | if(!nowDocNo.equals(process.getString("DocNo"))){ |
| | | //更新工单同步工序状态 |
| | | docNos.remove(nowDocNo); |
| | | haveProcessDocNos.add(nowDocNo); |
| | | nowDocNo = process.getString("DocNo"); |
| | | } |
| | | } |
| | | Map<String, Object> params = new HashMap<>(); |
| | | params.put("docNo", process.getString("DocNo")); |
| | | params.put("opNum", process.getString("OpNum")); |
| | | params.put("opId", process.getString("OpID")); |
| | | Long existsId = apsWorkOrderProcessMapper.existsByDocNoOpNumOpId(params); |
| | | ApsWorkOrderProcess apsWorkOrderProcess = new ApsWorkOrderProcess(); |
| | | apsWorkOrderProcess.setItemCode(process.getString("ItemCode")); |
| | | apsWorkOrderProcess.setDocNo(process.getString("DocNo")); |
| | | apsWorkOrderProcess.setOpNum(process.getString("OpNum")); |
| | | apsWorkOrderProcess.setOpId(process.getString("OpID")); |
| | | apsWorkOrderProcess.setProcessName(process.getString("StdOp")); |
| | | apsWorkOrderProcess.setStandardTime(process.getBigDecimal("StandardTime")); |
| | | apsWorkOrderProcess.setPalnStartDate(process.getDate("PlanStartDate")); |
| | | apsWorkOrderProcess.setPlanCompleteDate(process.getDate("PlanCompleteDate")); |
| | | apsWorkOrderProcess.setProcessQty(process.getBigDecimal("ProcessQty")); |
| | | apsWorkOrderProcess.setScrapQty(process.getBigDecimal("ScrapQty")); |
| | | apsWorkOrderProcess.setOpStatus(process.getString("OpStatus")); |
| | | apsWorkOrderProcess.setOrg(process.getString("Org")); |
| | | apsWorkOrderProcess.setOrgCode(process.getString("OrgCode")); |
| | | apsWorkOrderProcess.setWorkCenter(process.getString("WorkCenter")); |
| | | if (existsId != null) { |
| | | apsWorkOrderProcess.setId(existsId); |
| | | apsWorkOrderProcess.setUpdateBy("task"); |
| | | apsWorkOrderProcess.setUpdateTime(DateUtils.getNowDate()); |
| | | updateList.add(apsWorkOrderProcess); |
| | | } else { |
| | | apsWorkOrderProcess.setId(IdUtil.getSnowflakeNextId()); |
| | | apsWorkOrderProcess.setCreateBy("task"); |
| | | apsWorkOrderProcess.setCreateTime(DateUtils.getNowDate()); |
| | | addList.add(apsWorkOrderProcess); |
| | | if(!updateList.isEmpty()){ |
| | | apsWorkOrderProcessMapper.updateApsWorkOrderProcessBatch(updateList); |
| | | apsWorkOrderJobLog.setResult("ok update "+updateList.size()); |
| | | apsWorkOrderJobLog.setUpdateTime(DateUtils.getNowDate()); |
| | | apsWorkOrderJobLogService.updateApsWorkOrderJobLog(apsWorkOrderJobLog); |
| | | logger.info("【UPDATE】获取并更新U9工序成功!【工单号:{}】", docNos); |
| | | } |
| | | if(!nowDocNo.equals(process.getString("DocNo"))){ |
| | | //更新工单同步工序状态 |
| | | docNos.remove(nowDocNo); |
| | | haveProcessDocNos.add(nowDocNo); |
| | | nowDocNo = process.getString("DocNo"); |
| | | if(!addList.isEmpty()){ |
| | | apsWorkOrderProcessMapper.insertApsWorkOrderProcessBatch(addList); |
| | | apsWorkOrderJobLog.setResult("ok insert "+updateList.size()); |
| | | apsWorkOrderJobLog.setUpdateTime(DateUtils.getNowDate()); |
| | | 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(!docNos.isEmpty()){ |
| | | Map<String, Object> param = new HashMap<>(); |
| | | param.put("status", "2"); |
| | | param.put("docNos", docNos); |
| | | apsWorkOrderJobMapper.updateApsWorkOrderJobPrccessStatus(param); |
| | | apsWorkOrderJobLog.setRequestData(requestBody.toJSONString()); |
| | | apsWorkOrderJobLog.setResponseData(response.getBody()); |
| | | apsWorkOrderJobLog.setResult("empty"); |
| | | apsWorkOrderJobLog.setUpdateTime(DateUtils.getNowDate()); |
| | | apsWorkOrderJobLogService.updateApsWorkOrderJobLog(apsWorkOrderJobLog); |
| | | } |
| | | break; |
| | | } |
| | | if(!updateList.isEmpty()){ |
| | | apsWorkOrderProcessMapper.updateApsWorkOrderProcessBatch(updateList); |
| | | apsWorkOrderJobLog.setResult("ok update "+updateList.size()); |
| | | apsWorkOrderJobLog.setUpdateTime(DateUtils.getNowDate()); |
| | | apsWorkOrderJobLogService.updateApsWorkOrderJobLog(apsWorkOrderJobLog); |
| | | logger.info("【UPDATE】获取并更新U9工序成功!【工单号:{}】", docNos); |
| | | if(jsonArray.size()<1000){ |
| | | break; |
| | | } |
| | | if(!addList.isEmpty()){ |
| | | apsWorkOrderProcessMapper.insertApsWorkOrderProcessBatch(addList); |
| | | apsWorkOrderJobLog.setResult("ok insert "+updateList.size()); |
| | | apsWorkOrderJobLog.setUpdateTime(DateUtils.getNowDate()); |
| | | 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); |
| | | } |
| | | if(!docNos.isEmpty()){ |
| | | Map<String, Object> param = new HashMap<>(); |
| | | param.put("status", "2"); |
| | | param.put("docNos", docNos); |
| | | apsWorkOrderJobMapper.updateApsWorkOrderJobPrccessStatus(param); |
| | | pageIndex++; |
| | | }else{ |
| | | apsWorkOrderJobLog.setResponseData(response.getBody()); |
| | | apsWorkOrderJobLog.setResult("fail"); |
| | | apsWorkOrderJobLog.setUpdateTime(DateUtils.getNowDate()); |
| | | apsWorkOrderJobLogService.updateApsWorkOrderJobLog(apsWorkOrderJobLog); |
| | | logger.error("【ERROR】查询U9工序失败!【工单号:{}, 错误码:{},错误信息:{}】", docNos, responseBodyJson.getString("status"), responseBodyJson.getString("message")); |
| | | } |
| | | }else{ |
| | | apsWorkOrderJobLog.setResponseData(response.getBody()); |
| | | apsWorkOrderJobLog.setResult("fail"); |
| | | apsWorkOrderJobLog.setUpdateTime(DateUtils.getNowDate()); |
| | | apsWorkOrderJobLogService.updateApsWorkOrderJobLog(apsWorkOrderJobLog); |
| | | logger.error("【ERROR】查询U9工序失败!【工单号:{}, 错误码:{},错误信息:{}】", docNos, responseBodyJson.getString("status"), responseBodyJson.getString("message")); |
| | | logger.warn("【WARNING】未查询到U9工序!【工单号:{}】", docNos); |
| | | } |
| | | }else{ |
| | | logger.warn("【WARNING】未查询到U9工序!【工单号:{}】", docNos); |
| | | } else { |
| | | apsWorkOrderJobLog.setResponseData(response.getBody()); |
| | | apsWorkOrderJobLog.setResult("fail"); |
| | | apsWorkOrderJobLog.setUpdateTime(DateUtils.getNowDate()); |
| | | apsWorkOrderJobLogService.updateApsWorkOrderJobLog(apsWorkOrderJobLog); |
| | | throw new Exception("【ERROR】查询U9工序失败!【工单号:{"+ docNos +"}, 错误码:{"+ responseBodyJson.getString("status") +"},错误信息:{"+ responseBodyJson.getString("message") +"}】"); |
| | | } |
| | | } else { |
| | | apsWorkOrderJobLog.setResponseData(response.getBody()); |
| | | apsWorkOrderJobLog.setResult("fail"); |
| | | apsWorkOrderJobLog.setUpdateTime(DateUtils.getNowDate()); |
| | | apsWorkOrderJobLogService.updateApsWorkOrderJobLog(apsWorkOrderJobLog); |
| | | throw new Exception("【ERROR】查询U9工序失败!【工单号:{"+ docNos +"}, 错误码:{"+ responseBodyJson.getString("status") +"},错误信息:{"+ responseBodyJson.getString("message") +"}】"); |
| | | } |
| | | } |
| | | |