package com.fzzy.async.fzzy40.impl; import com.alibaba.fastjson2.JSON; import com.fzzy.api.Constant; 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.fzzy40.entity.Fz40DrugLogApply; import com.fzzy.async.fzzy40.entity.Fz40DrugLogDtl; import com.fzzy.async.fzzy40.entity.Fz40DrugLogPeople; import com.fzzy.async.fzzy40.repository.*; import com.fzzy.push.gd2022.ApiCodeConstant; 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 Fzzy40Sync9201 { @Autowired private Api1101Rep api1101Rep; @Autowired private Api1102Rep api1102Rep; @Autowired private Fzzy40Sync9201Rep fzzy40Sync9201Rep; @Autowired private Fzzy40SyncDrugLogPeopleRep drugLogPeopleRep; @Autowired private Fzzy40SyncDrugLogDtlRep drugLogDtlRep; @Autowired private ApiLogRep apiLogRep; @Autowired private ApiCommonService commonService; @Autowired private ApiTriggerService apiTriggerService; @Autowired private Api9201Rep api9201Rep; /** * 同步熏蒸备案信息 * * @param deptId * @param start * @param end */ public void syncData(String kqdm, String deptId, Date start, Date end) { log.info("-------------9201接口熏蒸备案信息开始同步------------------"); //同步数据,只记录失败的信息 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 = fzzy40Sync9201Rep.listDrugLogApply(deptId, start, end); if (null == list || list.isEmpty()) { log.info("-------------没有获取到熏蒸备案信息------------------"); return; } List dtlList; List wayList; List peopleList; List api9201List; Api1105 api1105; Api9201 api9201; Gd2022Api1023Dtl api9201Dtl; Gd2022Api1023Way api9201Way; Gd2022Api1023People api9201People; for (Fz40DrugLogApply data : list) { api9201 = new Api9201(); BeanUtils.copyProperties(data, api9201); api9201.setBizId(data.getXzbm()); api9201.setId(data.getXzbm()); api9201.setXzbm(data.getXzbm().substring(8)); api9201.setKqdm(kqdm); List api1102List = api1102Rep.findPushData(kqdm); if (null != api1102List && api1102List.size() > 0) { api9201.setKqmc(api1102List.get(0).getKqmc()); } api9201.setDwdm(kqdm.substring(0, 18)); List api1101List = api1101Rep.findPushData(kqdm); if (null != api1101List && api1101List.size() > 0) { api9201.setDwmc(api1101List.get(0).getDwmc()); } api9201.setYjmc(data.getDrugName().trim()); api9201.setYjlx(data.getDrugType().trim()); api9201.setLqrq(data.getLqsj()); api9201.setZhgxsj(data.getUpdateTime()); api9201.setXcfzr(data.getXcfzr().trim()); if (data.getLqr().contains("、")) { api9201.setLqr(data.getLqr().replace('、', '|').trim()); } //储粮粮情明细表 List dtls = drugLogDtlRep.listDrugLogDtl(data.getXzbm()); if (null != dtls && dtls.size() > 0) { dtlList = new ArrayList<>(); for (Fz40DrugLogDtl dtl : dtls) { api9201Dtl = new Gd2022Api1023Dtl(); BeanUtils.copyProperties(dtl, api9201Dtl); api1105 = commonService.getApi1105Cache(dtl.getDepotId()); if (null != api1105) { api9201Dtl.setCfmc(api1105.getHwmc()); api9201Dtl.setCfdm(api1105.getHwdm().substring(0, 25)); } //粮食品种 String mappingCode = apiTriggerService.getMappingCode(Constant.TRIGGER_P_LSPZ, dtl.getFoodVariety()); api9201Dtl.setLspzdm(mappingCode); mappingCode = apiTriggerService.getMappingCode(Constant.TRIGGER_P_LSXZ, dtl.getFoodType()); api9201Dtl.setLsxzdm(mappingCode); api9201Dtl.setLsdjdm(dtl.getFoodLevel()); api9201Dtl.setLssl(dtl.getNumber()); api9201Dtl.setSf(dtl.getPerWet()); api9201Dtl.setZz(dtl.getPerImpurity()); dtlList.add(api9201Dtl); } api9201.setDtl(JSON.toJSONString(dtlList)); api9201List = api9201Rep.getDataByBizId(api9201.getBizId()); if (null == api9201List || api9201List.isEmpty()) { api9201.setCzbz(Constant.CZBZ_I); } else { api9201.setCzbz(api9201List.get(0).getCzbz()); } } // BeanUtils.copyProperties(data, api9201Dtl); // dtlList = new ArrayList<>(); // dtlList.add(api9201Dtl); // api9201.setDtl(JSON.toJSONString(dtlList)); api9201Way = new Gd2022Api1023Way(); BeanUtils.copyProperties(data, api9201Way); wayList = new ArrayList<>(); api9201Way.setSqfs(data.getSqfs().trim()); api9201Way.setXzfs(data.getXzfs().trim()); wayList.add(api9201Way); api9201.setWay(JSON.toJSONString(wayList)); List peoples = drugLogPeopleRep.listDrugLogPeople(data.getXzbm()); if (null != peoples && peoples.size() > 0) { peopleList = new ArrayList<>(); for (Fz40DrugLogPeople people : peoples) { api9201People = new Gd2022Api1023People(); BeanUtils.copyProperties(people, api9201People); api9201People.setXm(people.getMx().trim()); api9201People.setZw(people.getZw().trim()); api9201People.setXzrwfg(people.getXzrwfg().trim()); api9201People.setStzk(people.getStzk().trim()); if (StringUtils.isEmpty(people.getZyzg())) { people.setZyzg("培训合格"); } api9201People.setZyzg(people.getZyzg().trim()); peopleList.add(api9201People); } api9201.setPeople(JSON.toJSONString(peopleList)); api9201List = api9201Rep.getDataByBizId(api9201.getBizId()); if (null == api9201List || api9201List.isEmpty()) { api9201.setCzbz(Constant.CZBZ_I); } else { api9201.setCzbz(api9201List.get(0).getCzbz()); } } api9201Rep.save(api9201); log.info("9201---同步数据:{}", api9201.toString()); } } catch (Exception e) { log.error("---熏蒸备案同步执行失败----{}", e); apiLog.setResult("熏蒸备案信息同步执行失败:" + e.getMessage()); apiLogRep.save(apiLog); } } }