广州市综治平台后端
xusd
2025-06-07 36306491396230522fa20585c2621a7fc899849a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
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();
    }
 
}