package cn.huge.module.griddata.service; import cn.huge.base.common.bo.R; import cn.huge.base.common.utils.DateUtils; import cn.huge.module.client.api.impl.CaseClientImpl; import cn.huge.module.griddata.dao.mapper.CaseInfoMapper; import cn.huge.module.griddata.dao.mapper.CaseInfoUnfoldMapper; import cn.huge.module.griddata.domain.CaseAgent; import cn.huge.module.griddata.domain.CaseInfo; import cn.huge.module.griddata.domain.CaseInfoUnfold; import cn.huge.module.griddata.domain.CasePerson; import cn.huge.module.griddata.domain.vo.CaseVo; import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.annotations.Case; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.stream.Collectors; @Service @Slf4j public class GridDataSyncService { @Resource private CaseInfoMapper caseInfoMapper; @Resource private CaseInfoUnfoldMapper caseInfoUnfoldMapper; @Resource private CaseClientImpl caseClient; @Resource private CaseInfoService caseInfoService; @Resource private CaseInfoUnfoldService caseInfoUnfoldService; @Resource private CasePersonService casePersonService; @Resource private CaseAgentService caseAgentService; // public R getData() { // CaseInfo lastCaseInfo = caseInfoMapper.getLastCaseInfo(); // log.info("xsd:{}",lastCaseInfo.getCreateTime()); // return R.ok(lastCaseInfo); // } // // public R getData2() { // CaseVo caseVo = new CaseVo(); // caseVo.setLastTime("2024-12-24 09:43:13"); // caseVo.setType(1); // List caseInfoList = caseClient.getCaseInfo(caseVo); // List insert = new ArrayList<>(); // insert.add(caseInfoList.get(1)); // log.info("xsd:{}",insert.get(0)); // caseInfoService.saveOrUpdateBatch(insert, insert.size()); // return R.ok(caseInfoList.get(1)); // } // @Scheduled(cron = "0 0/1 * * * ?") @Transactional(rollbackFor = Exception.class) public int syncData() { int count = 0; log.info("xsdcreateTime:{}", 1); CaseInfo lastCaseInfo = caseInfoMapper.getLastCaseInfo(); log.info("xsdcreateTime:{}", 2); String createTime = lastCaseInfo.getCreateTime(); log.info("xsdcreateTime:{}", createTime); CaseVo caseVo = new CaseVo(); caseVo.setLastTime(createTime); caseVo.setType(1); List caseInfoList = caseClient.getCaseInfo(caseVo); log.info("xsdcaseInfoList:{}", caseInfoList.size()); caseVo.setType(2); List caseInfoUpdateList = caseClient.getCaseInfo(caseVo); log.info("xsdcaseInfoUpdateList:{}", caseInfoUpdateList.size()); if (caseInfoList != null && caseInfoList.size() > 0) caseInfoService.saveOrUpdateBatch(caseInfoList, caseInfoList.size()); if (caseInfoUpdateList != null && caseInfoUpdateList.size() > 0) caseInfoService.updateBatchById(caseInfoUpdateList, caseInfoUpdateList.size()); List caseInfoUnfoldList = new ArrayList<>(); List casePersonList = new ArrayList<>(); List caseAgentList = new ArrayList<>(); for (CaseInfo caseInfo : caseInfoList) { caseInfoUnfoldList.addAll(caseClient.getCaseInfoUnfold(caseInfo.getId())); casePersonList.addAll(caseClient.getCasePerson(caseInfo.getId())); caseAgentList.addAll(caseClient.getCaseAgent(caseInfo.getId())); } log.info("xsdinsert:{}", caseInfoUnfoldList.size()); log.info("xsdinsert:{}", casePersonList.size()); log.info("xsdinsert:{}", caseAgentList.size()); //插入案子 if (caseInfoUnfoldList.size() > 0) caseInfoUnfoldService.saveOrUpdateBatch(caseInfoUnfoldList, caseInfoUnfoldList.size()); if (caseAgentList.size() > 0) caseAgentService.saveOrUpdateBatch(caseAgentList, caseAgentList.size()); if (casePersonList.size() > 0) casePersonService.saveOrUpdateBatch(casePersonList, casePersonList.size()); //获取需要更新的案子 log.info("xsdupdate:{}", caseInfoUpdateList.size()); for (CaseInfo caseInfo : caseInfoUpdateList) { List caseInfoUnfoldList1 = caseClient.getCaseInfoUnfold(caseInfo.getId()); if (caseInfoUnfoldList1 != null && caseInfoUnfoldList1.size() > 0) { CaseInfoUnfold caseInfoUnfold = caseInfoUnfoldList1.get(0); caseInfoUnfoldMapper.updateById(caseInfoUnfold); } } //更新案子 return lastCaseInfo.getStatus(); } }