package com.fzzy.async.fzzy61.impl; import com.alibaba.fastjson.JSON; import com.fzzy.api.Constant; import com.fzzy.api.data.PushProtocol; import com.fzzy.api.entity.*; import com.fzzy.api.service.ApiCommonService; import com.fzzy.api.service.ApiTriggerService; import com.fzzy.api.utils.ContextUtil; import com.fzzy.api.view.repository.*; import com.fzzy.async.fzzy61.entity.Fz61DrugLogApply; import com.fzzy.async.fzzy61.entity.Fz61DrugLogDtl; import com.fzzy.async.fzzy61.entity.Fz61DrugLogPeople; import com.fzzy.async.fzzy61.repository.Fzzy61Sync1023Rep; import com.fzzy.async.fzzy61.repository.Fzzy61SyncDrugLogDtlRep; import com.fzzy.async.fzzy61.repository.Fzzy61SyncDrugLogPeopleRep; import com.fzzy.async.fzzy61.repository.Fzzy61SyncDrugLogWayRep; import com.fzzy.push.gd2022.ApiCodeConstant; import com.fzzy.push.gd2022.dto.Gd2022Api1023; import com.fzzy.push.gd2022.dto.Gd2022Api1023Dtl; import com.fzzy.push.gd2022.dto.Gd2022Api1023People; import com.fzzy.push.gd2022.dto.Gd2022Api1023Way; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * 熏蒸备案信息 * * @Author:YAN */ @Slf4j @Component public class Fzzy61Sync1023 { @Autowired private Api1101Rep api1101Rep; @Autowired private Api1102Rep api1102Rep; @Autowired private Api1105Rep api1105Rep; @Autowired private Fzzy61Sync1023Rep fzzy61Sync1023Rep; @Autowired private Fzzy61SyncDrugLogPeopleRep drugLogPeopleRep; @Autowired private Fzzy61SyncDrugLogWayRep drugLogWayRep; @Autowired private Fzzy61SyncDrugLogDtlRep drugLogDtlRep; @Autowired private ApiLogRep apiLogRep; @Autowired private ApiCommonService commonService; @Autowired private ApiInfoDataRep apiInfoDataRep; @Autowired private ApiTriggerService apiTriggerService; /** * 同步熏蒸备案信息 * * @param deptId * @param start * @param end */ public void syncData(String kqdm, String deptId, Date start, Date end) { log.info("-------------1023接口熏蒸备案信息开始同步------------------"); //同步数据,只记录失败的信息 ApiLog apiLog = new ApiLog(); apiLog.setType(ApiLog.TYPE_SYNC); apiLog.setKqdm(deptId); apiLog.setUploadTime(new Date()); apiLog.setInteId(ApiCodeConstant.API_9201); apiLog.setStatus(99); apiLog.setId(ContextUtil.getUUID()); try { List list = fzzy61Sync1023Rep.listDrugLogApply(deptId, start, end); if (null == list || list.isEmpty()) { log.info("-------------没有获取到熏蒸备案信息------------------"); return; } List dtlList; List wayList; List peopleList; Gd2022Api1023 GD2022Api1023; Gd2022Api1023Dtl gd2022Api1023Dtl; Gd2022Api1023Way gd2022Api1023Way; Gd2022Api1023People gd2022Api1023People; List apiInfoList; ApiInfoData infoData; for (Fz61DrugLogApply data : list) { GD2022Api1023 = new Gd2022Api1023(); BeanUtils.copyProperties(data, GD2022Api1023); GD2022Api1023.setXzbm(data.getXzbm().substring(8)); GD2022Api1023.setKqdm(kqdm); List api1102List = api1102Rep.findPushData(kqdm); if (null != api1102List && api1102List.size() > 0) { GD2022Api1023.setKqmc(api1102List.get(0).getKqmc()); } GD2022Api1023.setDwdm(kqdm.substring(0, 18)); List api1101List = api1101Rep.findPushData(kqdm); if (null != api1101List && api1101List.size() > 0) { GD2022Api1023.setDwmc(api1101List.get(0).getDwmc()); } GD2022Api1023.setYjmc(data.getDrugName()); GD2022Api1023.setYjlx(data.getDrugType()); GD2022Api1023.setLqrq(data.getLqsj()); GD2022Api1023.setZhgxsj(data.getUpdateTime()); if (data.getLqr().contains("、")) { GD2022Api1023.setLqr(data.getLqr().replace('、', '|')); } //储粮粮情明细表 List dtls = drugLogDtlRep.listDrugLogDtl(data.getXzbm()); Api1105 api1105 = commonService.getApi1105Cache(data.getDepotId()); gd2022Api1023Dtl = new Gd2022Api1023Dtl(); BeanUtils.copyProperties(data, gd2022Api1023Dtl); if (null != api1105) { gd2022Api1023Dtl.setCfmc(api1105.getHwmc()); gd2022Api1023Dtl.setCfdm(api1105.getHwdm().substring(0, 25)); } //粮食品种 String mappingCode = apiTriggerService.getMappingCode(Constant.TRIGGER_P_LSPZ, data.getFoodVariety()); gd2022Api1023Dtl.setLspzdm(mappingCode); gd2022Api1023Dtl.setLsxzdm(data.getFoodType()); gd2022Api1023Dtl.setLsdjdm(data.getFoodLevel()); gd2022Api1023Dtl.setLssl(data.getNumber()); gd2022Api1023Dtl.setSf(data.getPerWet()); gd2022Api1023Dtl.setZz(data.getPerImpurity()); dtlList = new ArrayList<>(); dtlList.add(gd2022Api1023Dtl); GD2022Api1023.setDtls(dtlList); // if (null != dtls && dtls.size() > 0) { // dtlList = new ArrayList<>(); // for (Fz61DrugLogDtl dtl : dtls) { // gdApi1023Dtl = new GdApi1023Dtl(); // BeanUtils.copyProperties(dtl, gdApi1023Dtl); // gdApi1023Dtl.setCfdm(dtl.getDepotId()); // gdApi1023Dtl.setLspzdm(dtl.getFoodVariety()); // gdApi1023Dtl.setLsxzdm(dtl.getFoodType()); // gdApi1023Dtl.setLsdjdm(dtl.getFoodLevel()); // gdApi1023Dtl.setLssl(dtl.getNumber()); // gdApi1023Dtl.setSf(dtl.getPerWet()); // gdApi1023Dtl.setZz(dtl.getPerImpurity()); // dtlList.add(gdApi1023Dtl); // } // gdApi1023.setDtls(dtlList); // } gd2022Api1023Way = new Gd2022Api1023Way(); BeanUtils.copyProperties(data, gd2022Api1023Way); wayList = new ArrayList<>(); wayList.add(gd2022Api1023Way); GD2022Api1023.setWays(wayList); // List ways = drugLogWayRep.listDrugLogWay(data.getXzbm()); // if (null != ways && ways.size() > 0) { // wayList = new ArrayList<>(); // for (Fz61DrugLogWay way : ways) { // gdApi1023Way = new GdApi1023Way(); // BeanUtils.copyProperties(way, gdApi1023Way); // wayList.add(gdApi1023Way); // } // gdApi1023.setWays(wayList); // } List peoples = drugLogPeopleRep.listDrugLogPeople(data.getXzbm()); if (null != peoples && peoples.size() > 0) { peopleList = new ArrayList<>(); for (Fz61DrugLogPeople people : peoples) { gd2022Api1023People = new Gd2022Api1023People(); BeanUtils.copyProperties(people, gd2022Api1023People); gd2022Api1023People.setXm(people.getMx()); if (StringUtils.isEmpty(people.getZyzg())) { gd2022Api1023People.setZyzg("中级"); } peopleList.add(gd2022Api1023People); } GD2022Api1023.setPeoples(peopleList); } //持久化保存,单独存入非国标接口表 infoData = new ApiInfoData(); infoData.setKqdm(kqdm); infoData.setInteType(Constant.API_CATEGORY_13); infoData.setInteId(ApiCodeConstant.API_9201); infoData.setBizType(PushProtocol.SB_GD_2023.getCode()); infoData.setUpdateTime(new Date()); infoData.setDataId(data.getXzbm()); apiInfoList = apiInfoDataRep.getDataByInteAndData(ApiCodeConstant.API_9201, data.getXzbm(), kqdm); if (null == apiInfoList || apiInfoList.isEmpty()) { GD2022Api1023.setCzbz(Constant.CZBZ_I); infoData.setCzbz(Constant.CZBZ_I); infoData.setId(ContextUtil.getUUID()); } else { GD2022Api1023.setCzbz(apiInfoList.get(0).getCzbz()); infoData.setCzbz(apiInfoList.get(0).getCzbz()); infoData.setId(apiInfoList.get(0).getId()); } infoData.setData(JSON.toJSONString(GD2022Api1023)); //保存数据 apiInfoDataRep.save(infoData); log.info("1023---同步数据:{}", GD2022Api1023.toString()); } } catch (Exception e) { log.error("---熏蒸备案同步执行失败----{}", e.toString()); apiLog.setResult("熏蒸备案信息同步执行失败:" + e.getMessage()); apiLogRep.save(apiLog); } } }