From d320f67a7edbe887baac890a639c16e78432f2a3 Mon Sep 17 00:00:00 2001 From: huangjiayang <5265313@qq.com> Date: 星期二, 29 四月 2025 13:40:46 +0800 Subject: [PATCH] 【UPDATE】修改实体日期属性 --- aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWorkOrderProcessServiceImpl.java | 135 +++++++++++++++++++++++++++++++++++++------- 1 files changed, 112 insertions(+), 23 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 e815c21..220c6e7 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; /** * 鏌ヨ宸ュ崟宸ュ簭 @@ -148,6 +153,7 @@ 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"))){ @@ -160,6 +166,8 @@ 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")); @@ -171,43 +179,63 @@ 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"))){ //鏇存柊宸ュ崟鍚屾宸ュ簭鐘舵�� - apsWorkOrderJobMapper.updateApsWorkOrderJobPrccessStatus(nowDocNo); + docNos.remove(nowDocNo); + haveProcessDocNos.add(nowDocNo); nowDocNo = process.getString("DocNo"); } } 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); } + 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); } }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")); } @@ -217,39 +245,100 @@ } 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"); - List<ApsWorkOrderJob> list = apsWorkOrderJobMapper.selectApsWorkOrderJobList(apsWorkOrderJob); - int pageSize = 100; - int allPage = list.size()/pageSize; -// int allPage = 1; - for (int i = 1; i <= allPage; i++) { - long startTime = System.currentTimeMillis(); - PageHelper.startPage(i, pageSize); - List<ApsWorkOrderJob> pageList = apsWorkOrderJobMapper.selectApsWorkOrderJobList(apsWorkOrderJob); - if(!pageList.isEmpty()){ - 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.selectApsWorkOrderJobListDocNoNotNull(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{ + 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){ e.printStackTrace(); logger.error(e.getMessage()); } } + + @Override + public void insertIntoApsProcessRoute() { + apsWorkOrderProcessMapper.insertIntoApsProcessRoute(); + } + + @Override + 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