zhanghl
2025-05-22 93e554de49b2b87c337df71ea9ece51dd4e1d31d
aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsBomHeaderJobServiceImpl.java
@@ -3,8 +3,10 @@
import cn.hutool.core.util.IdUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.aps.common.core.constant.SecurityConstants;
import com.aps.common.core.utils.DateUtils;
import com.aps.common.core.utils.StringUtils;
import com.aps.common.core.utils.uuid.IdUtils;
import com.aps.job.domain.ApsBomHeaderJob;
import com.aps.job.domain.ApsBomLineJob;
import com.aps.job.domain.ApsWorkOrderJobLog;
@@ -12,6 +14,7 @@
import com.aps.job.mapper.ApsBomLineJobMapper;
import com.aps.job.mapper.ApsWorkOrderJobLogMapper;
import com.aps.job.service.IApsBomHeaderJobService;
import com.aps.system.api.RemoteCoreService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpEntity;
@@ -48,6 +51,9 @@
    @Autowired
    private RestTemplate restTemplate;
    @Autowired
    private RemoteCoreService remoteCoreService;
    /**
     * 查询BOM Header 数据管理
@@ -125,14 +131,19 @@
    @Override
    public boolean syncBomData(Integer pageIndex, Integer pageSize, String orgCode, String itemCodeList) {
        JSONObject requestBody = new JSONObject();
        ResponseEntity<String> response = null;
        ApsWorkOrderJobLog jobLog = new ApsWorkOrderJobLog();
        String batchNum = "";
        try {
            // 设置请求头
            HttpHeaders headers = new HttpHeaders();
            headers.setContentType(MediaType.APPLICATION_JSON);
            // 设置请求体
            while (true) {
                ApsWorkOrderJobLog jobLog = new ApsWorkOrderJobLog();
                JSONObject requestBody = new JSONObject();
                batchNum = IdUtils.fastSimpleUUID();
                jobLog = new ApsWorkOrderJobLog();
                requestBody = new JSONObject();
                requestBody.put("PageIndex", pageIndex);
                requestBody.put("PageSize", pageSize);
                if(!StringUtils.isEmpty(orgCode)){
@@ -141,7 +152,7 @@
                // 创建HttpEntity对象
                HttpEntity<String> request = new HttpEntity<>(requestBody.toJSONString(), headers);
                // 发送POST请求
                ResponseEntity<String> response = restTemplate.postForEntity(getBomUrl, request, String.class);
                response = restTemplate.postForEntity(getBomUrl, request, String.class);
                JSONObject responseBodyJson = JSONObject.parseObject(response.getBody());
                if (response.getStatusCode().is2xxSuccessful() && "200".equals(responseBodyJson.getString("status"))) {
                    JSONArray jsonArray = responseBodyJson.getJSONArray("data");
@@ -160,6 +171,7 @@
                            insertBomHeader.setStartDate(DateUtils.parseDate(bomHeader.getString("HEffectiveDate")));
                            insertBomHeader.setEndDate(DateUtils.parseDate(bomHeader.getString("HDisableDate")));
                            insertBomHeader.setOrgCode(bomHeader.getString("HOrgName").contains("沈阳")?"FORTUNE":bomHeader.getString("HOrgName").contains("南通")?"FORTUNA":bomHeader.getString("HOrgName").contains("北京")?"FORTUBE":bomHeader.getString("HOrgName"));
                            insertBomHeader.setCreateBy(batchNum);
                            headerList.add(insertBomHeader);
                            for(Object line : bomLines){
                                JSONObject lineJson = (JSONObject) line;
@@ -173,6 +185,7 @@
                                bomLine.setStartDate(DateUtils.parseDate(lineJson.getString("LEffectiveDate")));
                                bomLine.setEndDate(DateUtils.parseDate(lineJson.getString("LDisableDate")));
                                bomLine.setOrgCode(lineJson.getString("LOrgName").contains("沈阳")?"FORTUNE":lineJson.getString("LOrgName").contains("南通")?"FORTUNA":lineJson.getString("LOrgName").contains("北京")?"FORTUBE":lineJson.getString("LOrgName"));
                                bomLine.setCreateBy(batchNum);
                                lineList.add(bomLine);
                            }
                        }
@@ -198,6 +211,7 @@
                        jobLog.setCreateTime(DateUtils.getNowDate());
                        jobLog.setBizType("bom");
                        jobLog.setResult("header:"+headerList.size() + " line:"+lineList.size());
                        jobLog.setCreateBy(batchNum);
                        jobLogMapper.insertApsWorkOrderJobLog(jobLog);
                        pageIndex++;
                    }else{
@@ -211,12 +225,22 @@
                    jobLog.setCreateTime(DateUtils.getNowDate());
                    jobLog.setBizType("bom");
                    jobLog.setResult("error");
                    jobLog.setCreateBy(batchNum);
                    jobLogMapper.insertApsWorkOrderJobLog(jobLog);
                    break;
                }
            }
        }catch (Exception e){
            e.printStackTrace();
            jobLog.setRequestData(requestBody.toJSONString());
            jobLog.setResponseData(response.getBody());
            jobLog.setPageNum(Long.valueOf(pageIndex));
            jobLog.setPageCount(Long.valueOf(pageSize));
            jobLog.setCreateTime(DateUtils.getNowDate());
            jobLog.setBizType("bom");
            jobLog.setResult("error");
            jobLog.setCreateBy(batchNum);
            jobLogMapper.insertApsWorkOrderJobLog(jobLog);
            return false;
        }
        return true;
@@ -240,6 +264,7 @@
            if(!res){
                return false;
            }
            remoteCoreService.setBomDataToRedis(SecurityConstants.INNER);
            apsBomHeaderJobMapper.deleteApsBomHeader();
            apsBomLineJobMapper.deleteApsBomLine();
            apsBomHeaderJobMapper.insertIntoApsBomHeader();