YYC
2025-09-22 ee96821fc7990857ad6477690a5758f8c0ebaa66
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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
package com.fzzy.async.fzzy61.impl;
 
import com.fzzy.api.Constant;
import com.fzzy.api.data.PushProtocol;
import com.fzzy.api.entity.*;
import com.fzzy.api.service.ApiTriggerService;
import com.fzzy.api.utils.ContextUtil;
import com.fzzy.api.utils.FileUtils;
import com.fzzy.api.view.repository.*;
import com.fzzy.async.fzzy61.entity.Fz61InoutContract;
import com.fzzy.async.fzzy61.entity.Fz61InoutCustomer;
import com.fzzy.async.fzzy61.repository.Fzzy61Sync1201Rep;
import com.fzzy.async.fzzy61.repository.Fzzy61Sync1212Rep;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
 
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
 
/**
 * 合同信息数据接口
 */
@Slf4j
@Component
public class Fzzy61Sync1201 {
 
    @Autowired
    private Fzzy61Sync1212Rep fzzySync1212Rep;
    @Autowired
    private Fzzy61Sync1201Rep fzzySync1201Rep;
    @Autowired
    private ApiTriggerService apiTriggerService;
    @Autowired
    private ApiConfsRep apiConfsRep;
    @Autowired
    private FileUtils fileUtil;
    @Autowired
    private Api1109Rep api1109Rep;
    @Autowired
    private Api1201Rep api1201Rep;
    @Autowired
    private Api1102Rep api1102Rep;
    @Autowired
    private ApiLogRep apiLogRep;
 
 
    /**
     * 同步合同接口
     *
     * @param deptId
     * @param start
     * @param end
     */
    public void syncData(String kqdm, String deptId, Date start, Date end) {
 
        log.info("-------------1201合同信息接口数据开始同步------------------");
 
        //同步数据,只记录失败的信息
        ApiLog apiLog = new ApiLog();
        apiLog.setType(ApiLog.TYPE_SYNC);
        apiLog.setKqdm(deptId);
        apiLog.setUploadTime(new Date());
        apiLog.setInteId(Constant.API_CODE_1201);
        apiLog.setStatus(99);
        apiLog.setId(ContextUtil.getUUID());
        try {
            List<Fz61InoutContract> list = fzzySync1201Rep.listContract(deptId, start, end);
 
            if (null == list || list.isEmpty()) {
                log.debug("-------------没有获取到合同信息------------------");
                return;
            }
 
            //根据库区代码获取单位代码
            Api1102 api1201 = api1102Rep.findById(kqdm).get();
 
            Api1201 apiData;
            List<Api1201> api1201List;
            List<Fz61InoutCustomer> listCustomer;
            Api1109 api1109;
            List<Api1109> api1109List;
            for (Fz61InoutContract sysData : list) {
 
                apiData = new Api1201();
                //单位代码( 1101 接口的单位代 码) +自定义编码
                apiData.setHth(api1201.getDwdm() + sysData.getId());
                apiData.setHtmc(sysData.getName().trim());
                apiData.setDwdm(api1201.getDwdm());
 
                //业务类型
                apiData.setYwlx(sysData.getType());
                apiData.setHtzl(sysData.getType());
                //客户类型
                apiData.setKhlx(sysData.getCustomerType());
 
                //企业客户,需要设置信用码
                if ("1".equals(sysData.getCustomerType())) {
                    listCustomer = fzzySync1212Rep.getDataById(sysData.getCustomerId());
                    if (null == listCustomer || listCustomer.isEmpty()) {
                        continue;
                    }
                    apiData.setKhtyshxydm(listCustomer.get(0).getKhbh());
                    apiData.setSfzh(listCustomer.get(0).getCardId());
                    apiData.setLxrdh(listCustomer.get(0).getPhone());
                    apiData.setYzbm(StringUtils.isEmpty(listCustomer.get(0).getYzbm()) ? "000000" : listCustomer.get(0).getYzbm());
                    apiData.setDzyx(listCustomer.get(0).getDzyx());
                }
 
 
                apiData.setKhmc(sysData.getCustomerName());
                apiData.setFddbr(StringUtils.isEmpty(sysData.getCustomerSignUser()) ? null : sysData.getCustomerSignUser());
 
                apiData.setQdrq(sysData.getSigningTime());
 
                if (StringUtils.isEmpty(sysData.getFoodVariety())) {
                    continue;
                }
                //粮食品种
                String mappingCode = apiTriggerService.getMappingCode(Constant.TRIGGER_P_LSPZ, sysData.getFoodVariety());
                apiData.setLspzdm(mappingCode);
 
                mappingCode = apiTriggerService.getMappingCode(Constant.TRIGGER_P_LSXZ, sysData.getFoodType());
                apiData.setLsxzdm(mappingCode);
 
 
                apiData.setYsfs(StringUtils.isEmpty(sysData.getYsfs()) ? "以入仓数量为标准" : sysData.getYsfs());
 
                apiData.setFkfs(null == sysData.getFkfs() ? "1" : sysData.getFkfs().toString());
                //单价:元/吨
                apiData.setHtdj(sysData.getPrice() == null ? 0.0 : sysData.getPrice());
                apiData.setYdgxlssl(sysData.getContactAmount() == null ? 0.0 : sysData.getContactAmount());
 
                apiData.setHtzje(new BigDecimal(sysData.getMoney()));
 
                apiData.setJsyhtyzx(StringUtils.isEmpty(sysData.getJsyhtyzx()) ? "1" : sysData.getJsyhtyzx());
 
                mappingCode = apiTriggerService.getMappingCode(Constant.TRIGGER_P_BANK, sysData.getCustomerBank());
                apiData.setKhfkhh(mappingCode);
 
                apiData.setKhfzh(sysData.getCustomerBankAccount());
 
                apiData.setKhqyr(sysData.getCustomerSignUser());
 
                mappingCode = apiTriggerService.getMappingCode(Constant.TRIGGER_P_BANK, sysData.getBank());
                apiData.setBfkhh(mappingCode == null ? "999" : mappingCode);
 
                apiData.setBfzh(StringUtils.isEmpty(sysData.getBankAccount()) ? "100000000000000000" : sysData.getBankAccount());
 
                apiData.setWcrq(sysData.getEndTime());
                apiData.setLxrxm(StringUtils.isEmpty(sysData.getLxrxm()) ? apiData.getFddbr() : sysData.getLxrxm());
                apiData.setJsyhtbyzyy(StringUtils.isEmpty(sysData.getJsyhtbyzyy()) ? "结算与合同不一致原因" : sysData.getJsyhtbyzyy());
                apiData.setQddd(StringUtils.isEmpty(sysData.getSignAddress()) ? "签订地点" : sysData.getSignAddress());
                apiData.setTxdz(StringUtils.isEmpty(sysData.getTxdz()) ? "通讯地址" : sysData.getTxdz());
                apiData.setZhgxsj(sysData.getUpdateTime());
                apiData.setShr(StringUtils.isEmpty(sysData.getAuditUser()) ? "审批人" : sysData.getAuditUser());
                apiData.setShsj(sysData.getAuditDate() == null ? new Date() : sysData.getAuditDate());
                apiData.setSswcsj(sysData.getRelEndTime());
                apiData.setYdwcsj(sysData.getEndTime());
                apiData.setBfqyr(StringUtils.isEmpty(sysData.getSignUser()) ? "本方签约人" : sysData.getSignUser());
 
                //设置年度
                apiData.setLhnd(sysData.getYear());
 
                apiData.setSyncTime(new Date());
                apiData.setBizId(sysData.getId());
                apiData.setKqdm(kqdm);
 
                api1201List = api1201Rep.getDataById(apiData.getHth());
                if (null == api1201List || api1201List.isEmpty()) {
                    apiData.setCzbz(Constant.CZBZ_I);
                } else {
                    apiData.setCzbz(api1201List.get(0).getCzbz());
                }
 
                //保存数据
                api1201Rep.save(apiData);
                log.info("1201---合同同步数据:{}", apiData.toString());
 
                //若附件id不为空,则判断是否为上海协议,上海协议时,需同时同步合同附件信息
                if (StringUtils.isNotEmpty(sysData.getFileId())) {
                    //若为上海省平台协议,则需同时同步合同附件信息
                    List<ApiConfs> apiConfs = apiConfsRep.getDataByKqdm(kqdm);
                    if (null != apiConfs && PushProtocol.SB_SH_2023.getCode().equals(apiConfs.get(0).getPushProtocol())) {
                        api1109 = new Api1109();
                        //主键id
                        api1109.setId(apiData.getHth());
                        //文件路径
                        api1109.setWjdz(fileUtil.getCommonFilePath(sysData.getFileTime()) + sysData.getFileId());
 
                        String kzm = "pdf"; //扩展名:默认为pdf
                        String[] split = sysData.getFileId().split("\\.");
                        if (split.length > 0) {
                            kzm = split[split.length - 1];
                        }
 
                        //文件名称(合同号+扩展名)
                        api1109.setWjmc(apiData.getHth() + "." + kzm);
                        //文件类型
                        api1109.setWjlx("6"); //6-合同文件(pdf,jpg)
                        api1109.setYwdh(apiData.getHth()); //6-合同文件(pdf,jpg)
                        //操作标志及最后更新时间
                        api1109.setZhgxsj(new Date());
 
                        //业务id、库区编码、同步时间
                        api1109.setBizId(apiData.getHth());
                        api1109.setKqdm(kqdm);
                        api1109.setSyncTime(new Date());
                        api1109List = api1109Rep.getDataByBizId(api1109.getBizId());
                        if (null == api1109List || api1109List.isEmpty()) {
                            api1109.setCzbz(Constant.CZBZ_I);
                        } else {
                            api1109.setCzbz(api1109List.get(0).getCzbz());
                        }
                        //保存数据
                        api1109Rep.save(api1109);
                        log.info("1201---合同附件信息同步:{}", api1109.toString());
                    }
                }
            }
        } catch (Exception e) {
            log.error("---1201合同同步执行失败----{}", e.toString());
            apiLog.setResult("同步合同信息失败:" + e.getMessage());
            apiLogRep.save(apiLog);
        }
    }
}