From b5f05a2ed6cee045ba74e6cef030d8aae6192296 Mon Sep 17 00:00:00 2001 From: zhanghl <253316343@qq.com> Date: 星期一, 28 四月 2025 14:47:57 +0800 Subject: [PATCH] 增加Hutool工具包 --- aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWorkOrderProcessServiceImpl.java | 117 ++++++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 93 insertions(+), 24 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 39ea457..d8b8a7a 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 @@ -1,5 +1,6 @@ package com.aps.job.service.impl; +import cn.hutool.core.util.IdUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.aps.common.core.utils.DateUtils; @@ -7,6 +8,7 @@ import com.aps.job.domain.ApsWorkOrderJob; import com.aps.job.domain.ApsWorkOrderJobLog; import com.aps.job.domain.ApsWorkOrderProcess; +import com.aps.job.mapper.ApsWorkOrderJobLogMapper; import com.aps.job.mapper.ApsWorkOrderJobMapper; import com.aps.job.mapper.ApsWorkOrderProcessMapper; import com.aps.job.service.IApsWorkOrderJobLogService; @@ -53,6 +55,9 @@ @Autowired private IApsWorkOrderJobLogService apsWorkOrderJobLogService; + + @Autowired + private ApsWorkOrderJobLogMapper apsWorkOrderJobLogMapper; /** * 鏌ヨ宸ュ崟宸ュ簭 @@ -174,19 +179,25 @@ apsWorkOrderProcess.setDocNo(process.getString("DocNo")); apsWorkOrderProcess.setOpNum(process.getString("OpNum")); apsWorkOrderProcess.setOpId(process.getString("OpID")); - apsWorkOrderProcess.setProcessName(process.getString("WorkCenter")); - apsWorkOrderProcess.setStandardTime(process.getFloat("StandardTime")); + apsWorkOrderProcess.setProcessName(process.getString("StdOp")); + apsWorkOrderProcess.setStandardTime(process.getBigDecimal("StandardTime")); apsWorkOrderProcess.setPalnStartDate(process.getDate("PlanStartDate")); apsWorkOrderProcess.setPlanCompleteDate(process.getDate("PlanCompleteDate")); - apsWorkOrderProcess.setProcessQty(process.getFloat("ProcessQty")); - apsWorkOrderProcess.setScrapQty(process.getFloat("ScrapQty")); + 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"))){ @@ -199,12 +210,14 @@ if(!updateList.isEmpty()){ apsWorkOrderProcessMapper.updateApsWorkOrderProcessBatch(updateList); apsWorkOrderJobLog.setResult("ok update "+updateList.size()); + apsWorkOrderJobLog.setUpdateTime(DateUtils.getNowDate()); apsWorkOrderJobLogService.updateApsWorkOrderJobLog(apsWorkOrderJobLog); logger.info("銆怳PDATE銆戣幏鍙栧苟鏇存柊U9宸ュ簭鎴愬姛锛併�愬伐鍗曞彿锛歿}銆�", docNos); } if(!addList.isEmpty()){ apsWorkOrderProcessMapper.insertApsWorkOrderProcessBatch(addList); apsWorkOrderJobLog.setResult("ok insert "+updateList.size()); + apsWorkOrderJobLog.setUpdateTime(DateUtils.getNowDate()); apsWorkOrderJobLogService.updateApsWorkOrderJobLog(apsWorkOrderJobLog); logger.info("銆怚NSERT銆戣幏鍙栧苟鎻掑叆U9宸ュ簭鎴愬姛锛併�愬伐鍗曞彿锛歿}銆�", docNos); } @@ -213,13 +226,16 @@ param.put("docNos", haveProcessDocNos); apsWorkOrderJobMapper.updateApsWorkOrderJobPrccessStatus(param); } - Map<String, Object> param = new HashMap<>(); - param.put("status", "2"); - param.put("docNos", docNos); - apsWorkOrderJobMapper.updateApsWorkOrderJobPrccessStatus(param); + if(!docNos.isEmpty()){ + Map<String, Object> param = new HashMap<>(); + param.put("status", "2"); + param.put("docNos", docNos); + apsWorkOrderJobMapper.updateApsWorkOrderJobPrccessStatus(param); + } }else{ apsWorkOrderJobLog.setResponseData(response.getBody()); apsWorkOrderJobLog.setResult("fail"); + apsWorkOrderJobLog.setUpdateTime(DateUtils.getNowDate()); apsWorkOrderJobLogService.updateApsWorkOrderJobLog(apsWorkOrderJobLog); logger.error("銆怑RROR銆戞煡璇9宸ュ簭澶辫触锛併�愬伐鍗曞彿锛歿}, 閿欒鐮侊細{}锛岄敊璇俊鎭細{}銆�", docNos, responseBodyJson.getString("status"), responseBodyJson.getString("message")); } @@ -229,32 +245,63 @@ } else { apsWorkOrderJobLog.setResponseData(response.getBody()); apsWorkOrderJobLog.setResult("fail"); + apsWorkOrderJobLog.setUpdateTime(DateUtils.getNowDate()); apsWorkOrderJobLogService.updateApsWorkOrderJobLog(apsWorkOrderJobLog); throw new Exception("銆怑RROR銆戞煡璇9宸ュ簭澶辫触锛併�愬伐鍗曞彿锛歿"+ docNos +"}, 閿欒鐮侊細{"+ responseBodyJson.getString("status") +"}锛岄敊璇俊鎭細{"+ responseBodyJson.getString("message") +"}銆�"); } } @Override - public void syncWorkOrderProcessData() { + public void syncWorkOrderProcessData(String status, Integer pageSize) { try{ //鍒嗛〉鏌ヨ宸ュ崟 ApsWorkOrderJob apsWorkOrderJob = new ApsWorkOrderJob(); - apsWorkOrderJob.setProcessStatus("0"); - while (true){ - PageHelper.startPage(1, 100); - List<ApsWorkOrderJob> pageList = apsWorkOrderJobMapper.selectApsWorkOrderJobList(apsWorkOrderJob); - if(!pageList.isEmpty()){ - long startTime = System.currentTimeMillis(); - List<String> docNos = new ArrayList<>(); - for (ApsWorkOrderJob apsWorkOrderJob1 : pageList){ - docNos.add(apsWorkOrderJob1.getDocNo()); + if("".equals(status)){ + status = "0"; + } + apsWorkOrderJob.setProcessStatus(status); + // 琛ユ煡涔嬪墠娌℃湁鏌ュ埌宸ュ簭鐨勫伐鍗� + if("2".equals(status)){ + int total = apsWorkOrderJobMapper.selectApsWorkOrderJobList(apsWorkOrderJob).size(); + int pages = total % pageSize == 0 ? total / pageSize : total / pageSize + 1; + for (int i = 1; i <= pages; i++){ + PageHelper.startPage(i, pageSize); + List<ApsWorkOrderJob> pageList = apsWorkOrderJobMapper.selectApsWorkOrderJobList(apsWorkOrderJob); + if(!pageList.isEmpty()){ + long startTime = System.currentTimeMillis(); + List<String> docNos = new ArrayList<>(); + for (ApsWorkOrderJob apsWorkOrderJob1 : pageList){ + docNos.add(apsWorkOrderJob1.getDocNo()); + } + getWorkOrderProcessFromU9(docNos); + long endTime = System.currentTimeMillis(); // 璁板綍缁撴潫鏃堕棿 + long duration = endTime - startTime; // 璁$畻杩愯鏃堕棿 + System.out.println("杩愯鏃堕棿锛�"+ duration +"姣"); } - getWorkOrderProcessFromU9(docNos); - long endTime = System.currentTimeMillis(); // 璁板綍缁撴潫鏃堕棿 - long duration = endTime - startTime; // 璁$畻杩愯鏃堕棿 - System.out.println("杩愯鏃堕棿锛�"+ duration +"姣"); - }else{ - break; + } + }else{ + while (true){ + PageHelper.startPage(1, pageSize); + List<ApsWorkOrderJob> pageList = apsWorkOrderJobMapper.selectApsWorkOrderJobList(apsWorkOrderJob); + if(!pageList.isEmpty()){ + long startTime = System.currentTimeMillis(); + List<String> docNos = new ArrayList<>(); + for (ApsWorkOrderJob apsWorkOrderJob1 : pageList){ + if(apsWorkOrderJob1.getDocNo()!=null){ + docNos.add(apsWorkOrderJob1.getDocNo()); + } + } + if(!docNos.isEmpty()){ + getWorkOrderProcessFromU9(docNos); + long endTime = System.currentTimeMillis(); // 璁板綍缁撴潫鏃堕棿 + long duration = endTime - startTime; // 璁$畻杩愯鏃堕棿 + System.out.println("杩愯鏃堕棿锛�"+ duration +"姣"); + }else{ + break; + } + }else{ + break; + } } } }catch (Exception e){ @@ -272,4 +319,26 @@ public void deleteApsProcessRoute() { apsWorkOrderProcessMapper.deleteApsProcessRoute(); } + + @Override + public boolean retryRequestWorkOrderProcessByLogId(Long id) { + try { + ApsWorkOrderJobLog apsWorkOrderJobLog = apsWorkOrderJobLogMapper.selectApsWorkOrderJobLogById(id); + JSONObject requestBodyJson = JSONObject.parseObject(apsWorkOrderJobLog.getRequestData()); + JSONArray docListArray = requestBodyJson.getJSONArray("DocList"); + List<String> docNos = new ArrayList<>(); + for (int i = 0; i < docListArray.size(); i++) { + if(docListArray.getString(i)!=null){ + docNos.add(docListArray.getString(i)); + } + } + if(!docNos.isEmpty()){ + getWorkOrderProcessFromU9(docNos); + } + }catch (Exception e){ + e.printStackTrace(); + return false; + } + return true; + } } -- Gitblit v1.9.3