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<CaseInfo> getData() {
|
// CaseInfo lastCaseInfo = caseInfoMapper.getLastCaseInfo();
|
// log.info("xsd:{}",lastCaseInfo.getCreateTime());
|
// return R.ok(lastCaseInfo);
|
// }
|
//
|
// public R<CaseInfo> getData2() {
|
// CaseVo caseVo = new CaseVo();
|
// caseVo.setLastTime("2024-12-24 09:43:13");
|
// caseVo.setType(1);
|
// List<CaseInfo> caseInfoList = caseClient.getCaseInfo(caseVo);
|
// List<CaseInfo> 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<CaseInfo> caseInfoList = caseClient.getCaseInfo(caseVo);
|
log.info("xsdcaseInfoList:{}", caseInfoList.size());
|
caseVo.setType(2);
|
List<CaseInfo> 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<CaseInfoUnfold> caseInfoUnfoldList = new ArrayList<>();
|
List<CasePerson> casePersonList = new ArrayList<>();
|
List<CaseAgent> 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<CaseInfoUnfold> caseInfoUnfoldList1 = caseClient.getCaseInfoUnfold(caseInfo.getId());
|
if (caseInfoUnfoldList1 != null && caseInfoUnfoldList1.size() > 0) {
|
CaseInfoUnfold caseInfoUnfold = caseInfoUnfoldList1.get(0);
|
caseInfoUnfoldMapper.updateById(caseInfoUnfold);
|
}
|
}
|
//更新案子
|
return lastCaseInfo.getStatus();
|
}
|
|
}
|