huangjiayang
2025-04-29 d320f67a7edbe887baac890a639c16e78432f2a3
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;
@@ -178,20 +179,24 @@
                            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);
                            }
@@ -205,12 +210,14 @@
                        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(!addList.isEmpty()){
                            apsWorkOrderProcessMapper.insertApsWorkOrderProcessBatch(addList);
                            apsWorkOrderJobLog.setResult("ok insert "+updateList.size());
                            apsWorkOrderJobLog.setUpdateTime(DateUtils.getNowDate());
                            apsWorkOrderJobLogService.updateApsWorkOrderJobLog(apsWorkOrderJobLog);
                            logger.info("【INSERT】获取并插入U9工序成功!【工单号:{}】", docNos);
                        }
@@ -219,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("【ERROR】查询U9工序失败!【工单号:{}, 错误码:{},错误信息:{}】", docNos, responseBodyJson.getString("status"), responseBodyJson.getString("message"));
                }
@@ -235,6 +245,7 @@
        } 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") +"}】");
        }
@@ -245,16 +256,13 @@
        try{
            //分页查询工单
            ApsWorkOrderJob apsWorkOrderJob = new ApsWorkOrderJob();
            if(status==null){
            if("".equals(status)){
                status = "0";
            }
            if(pageSize==null){
                pageSize = 100;
            }
            apsWorkOrderJob.setProcessStatus(status);
            // 补查之前没有查到工序的工单
            if("2".equals(status)){
                int total = apsWorkOrderJobMapper.selectApsWorkOrderJobList(apsWorkOrderJob).size();
                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);
@@ -279,12 +287,18 @@
                        long startTime = System.currentTimeMillis();
                        List<String> docNos = new ArrayList<>();
                        for (ApsWorkOrderJob apsWorkOrderJob1 : pageList){
                            docNos.add(apsWorkOrderJob1.getDocNo());
                            if(apsWorkOrderJob1.getDocNo()!=null){
                                docNos.add(apsWorkOrderJob1.getDocNo());
                            }
                        }
                        getWorkOrderProcessFromU9(docNos);
                        long endTime = System.currentTimeMillis(); // 记录结束时间
                        long duration = endTime - startTime; // 计算运行时间
                        System.out.println("运行时间:"+ duration +"毫秒");
                        if(!docNos.isEmpty()){
                            getWorkOrderProcessFromU9(docNos);
                            long endTime = System.currentTimeMillis(); // 记录结束时间
                            long duration = endTime - startTime; // 计算运行时间
                            System.out.println("运行时间:"+ duration +"毫秒");
                        }else{
                            break;
                        }
                    }else{
                        break;
                    }
@@ -314,9 +328,13 @@
            JSONArray docListArray = requestBodyJson.getJSONArray("DocList");
            List<String> docNos = new ArrayList<>();
            for (int i = 0; i < docListArray.size(); i++) {
                docNos.add(docListArray.getString(i));
                if(docListArray.getString(i)!=null){
                    docNos.add(docListArray.getString(i));
                }
            }
            getWorkOrderProcessFromU9(docNos);
            if(!docNos.isEmpty()){
                getWorkOrderProcessFromU9(docNos);
            }
        }catch (Exception e){
            e.printStackTrace();
            return false;