From 2a64b537e8e3bce9ce030585a3da17d48379c0ad Mon Sep 17 00:00:00 2001 From: sfd <sun.sunshine@163.com> Date: 星期一, 26 五月 2025 15:04:45 +0800 Subject: [PATCH] 修改json类型转换错误 --- aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWorkOrderProcessServiceImpl.java | 99 ++++++++++++++++++++++++++++--------------------- 1 files changed, 56 insertions(+), 43 deletions(-) diff --git a/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWorkOrderProcessServiceImpl.java b/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWorkOrderProcessServiceImpl.java index 2920438..1a13dac 100644 --- a/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWorkOrderProcessServiceImpl.java +++ b/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWorkOrderProcessServiceImpl.java @@ -23,6 +23,7 @@ import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.client.RestTemplate; import java.util.ArrayList; @@ -131,8 +132,12 @@ return apsWorkOrderProcessMapper.deleteApsWorkOrderProcessById(id); } + @Transactional(rollbackFor = Exception.class) @Override public void getWorkOrderProcessFromU9(List<String> docNos) throws Exception { + List<String> noProcessDocNos = new ArrayList<>(docNos); + List<String> haveProcessDocNos = new ArrayList<>(); + ApsWorkOrderJobLog apsWorkOrderJobLog = new ApsWorkOrderJobLog(); // 璁剧疆璇锋眰澶� HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); @@ -150,13 +155,11 @@ 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"))){ @@ -165,18 +168,18 @@ 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"); - docNos.remove(nowDocNo); + noProcessDocNos.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); +// 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")); @@ -192,20 +195,20 @@ 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 { +// 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"))){ +// } + if(!nowDocNo.equals(process.getString("DocNo")) || i==size-1){ //鏇存柊宸ュ崟鍚屾宸ュ簭鐘舵�� - docNos.remove(nowDocNo); + noProcessDocNos.remove(nowDocNo); haveProcessDocNos.add(nowDocNo); nowDocNo = process.getString("DocNo"); } @@ -219,28 +222,11 @@ } if(!addList.isEmpty()){ apsWorkOrderProcessMapper.insertApsWorkOrderProcessBatch(addList); - apsWorkOrderJobLog.setResult("ok insert "+updateList.size()); + apsWorkOrderJobLog.setResult("ok insert "+addList.size()); apsWorkOrderJobLog.setUpdateTime(DateUtils.getNowDate()); apsWorkOrderJobLogService.updateApsWorkOrderJobLog(apsWorkOrderJobLog); logger.info("銆怚NSERT銆戣幏鍙栧苟鎻掑叆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(jsonArray.size()<1000){ break; @@ -264,11 +250,29 @@ throw new Exception("銆怑RROR銆戞煡璇9宸ュ簭澶辫触锛併�愬伐鍗曞彿锛歿"+ 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)){ @@ -281,6 +285,7 @@ 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<>(); @@ -292,15 +297,14 @@ 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<>(); @@ -311,15 +315,13 @@ } 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){ @@ -359,4 +361,15 @@ } return true; } + + @Override + public void syncProcessRouteData() { + apsWorkOrderProcessMapper.deleteApsProcessRoute(); + apsWorkOrderProcessMapper.insertIntoApsProcessRoute(); + } + + @Override + public void deleteApsWorkOrderProcess() { + apsWorkOrderProcessMapper.deleteApsWorkOrderProcess(); + } } -- Gitblit v1.9.3