czt
2025-09-16 db74943b46ffb5245477894f394c368cc04f93e7
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
230
231
232
233
234
235
236
237
238
239
package com.fzzy.async.whhpjl.impl;
 
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.fzzy.api.Constant;
import com.fzzy.api.entity.ApiInfoData;
import com.fzzy.api.entity.ApiLog;
import com.fzzy.api.entity.ApiTrigger;
import com.fzzy.api.utils.ContextUtil;
import com.fzzy.api.view.repository.ApiInfoDataRep;
import com.fzzy.api.view.repository.ApiLogRep;
import com.fzzy.api.view.repository.ApiTriggerRep;
import com.fzzy.async.whhpjl.entity.Fz40WhjlDefaultContract;
import com.fzzy.async.whhpjl.entity.Fz40WhjlDefaultDepot;
import com.fzzy.async.whhpjl.entity.Fz40WhjlDefaultDept;
import com.fzzy.async.whhpjl.entity.Fz40WhjlInoutRecord;
import com.fzzy.async.whhpjl.repository.Fz40ToWhjlSync1101Rep;
import com.fzzy.async.whhpjl.repository.Fz40ToWhjlSync1107Rep;
import com.fzzy.async.whhpjl.repository.Fz40ToWhjlSync1212Rep;
import com.fzzy.otherview.whhpjl.WhjlConstant;
import com.fzzy.otherview.whhpjl.dto.*;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.time.DateFormatUtils;
import org.apache.commons.lang.time.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
 
 
import java.util.Date;
import java.util.List;
 
 
/**
 * 出入库记录信息
 *
 */
@Slf4j
@Component
public class Fz40ToWhjlSync1212 {
 
    @Autowired
    private Fz40ToWhjlSync1212Rep fz40ToWhjlSync1212Rep;
    @Autowired
    private ApiLogRep apiLogRep;
    @Autowired
    private ApiTriggerRep apiTriggerRep;
    @Autowired
    private ApiInfoDataRep apiInfoDataRep;
 
    /**
     * 出入库记录信息
     *
     * @param kqdm
     * @param deptId
     * @param start
     * @param end
     */
    public void syncData(String kqdm, String deptId, Date start, Date end) {
        log.info("-------------1212接口数据开始同步------------------");
 
        //同步数据,只记录失败的信息
        ApiLog apiLog = new ApiLog();
        apiLog.setType(ApiLog.TYPE_SYNC);
        apiLog.setKqdm(deptId);
        apiLog.setUploadTime(new Date());
        apiLog.setInteId(Constant.API_CODE_1212);
        apiLog.setStatus(99);
        apiLog.setId(ContextUtil.getUUID());
        try {
            List<Fz40WhjlInoutRecord> list = fz40ToWhjlSync1212Rep.listApi1212(deptId);
            List<ApiInfoData> apiInfoDataList;
            WhjlApi1212 apiData;
            for (Fz40WhjlInoutRecord sysData : list) {
                List<ApiInfoData> dept = apiInfoDataRep.getDataByDataId(sysData.getCompanyId());
                WhjlApi1101 whjlApi1101 = JSONObject.parseObject(dept.get(0).getData(), WhjlApi1101.class);
                List<ApiInfoData> deptArea = apiInfoDataRep.getDataByDataId(sysData.getDeptId());
                WhjlApi1102 whjlApi1102 = JSONObject.parseObject(deptArea.get(0).getData(), WhjlApi1102.class);
                apiData = new WhjlApi1212();
                apiData.setCrkid(sysData.getId());
                apiData.setJlqybh(whjlApi1101.getJlqybh());//军粮企业编号
                apiData.setJlqymc(whjlApi1101.getJlqymc());//军粮企业名称
                apiData.setJgzdbh(whjlApi1102.getJgzdbh());//军供站点编码
                apiData.setJgzdmc(whjlApi1102.getJgzdmc());//军供站点名称
                apiData.setYwrq(DateUtils.parseDate(sysData.getId().substring(2, 10), new String[]{"yyyyMMdd"}));
                if(sysData.getType().equals("IN")){
                    apiData.setCrklx("入库");
                    apiData.setYwlx("日常出入库");//出入库类型: 日常出入库/日常出库/应急入库/应急出库/盘点入库/盘点出库/转仓入库/转仓出库
                }
                if(sysData.getType().equals("OUT")){
                    apiData.setCrklx("出库");
                    apiData.setYwlx("日常出库");//出入库类型: 日常出入库/日常出库/应急入库/应急出库/盘点入库/盘点出库/转仓入库/转仓出库
                }
 
//                apiData.setCrkpz("");//出入库凭证
//                apiData.setJljgqybh("");//加工企业编码
//                apiData.setJljgqymc("");//加工企业名称
//                apiData.setKhbh("");//客户编号
//                apiData.setGlzxm("");//客户名称
//                apiData.setShdw("");//收货单位
//                apiData.setShlxr("");//收货联系人
//                apiData.setRjfaid("");//应急方案id
//                apiData.setJhid("");//筹措计划iD
//                apiData.setHtid("");//合同ID
//                apiData.setPsmxid("");//配送任务id
 
                apiData.setYscch(sysData.getPlateNum());//运输车船号
                apiData.setCyr(sysData.getUserName());//承运人
                apiData.setCyrdh(StringUtils.isBlank(sysData.getUserContact()) ? "18336564986" : sysData.getUserContact());//承运人电话
 
//                apiData.setBz("");//备注
//                apiData.setCrkmxid("");//出入库明细id
 
 
                List<ApiInfoData> dataByDataId = apiInfoDataRep.getDataByDataId(sysData.getDepotId());
                WhjlApi1108 whjlApi1108 = new WhjlApi1108();
                if(dataByDataId != null && dataByDataId.size()>0){
                    whjlApi1108 = JSONObject.parseObject(dataByDataId.get(0).getData(), WhjlApi1108.class);
                }
                apiData.setHwbh(whjlApi1108.getHwbh());//货位编号
                apiData.setHwmc(whjlApi1108.getHwmc());//货位名称
                apiData.setAjbh(apiData.getHwbh().substring(0,28));//廒间编号
                apiData.setAjmc(apiData.getHwmc());// TODO 廒间名称
 
                apiData.setKctzbh(sysData.getId().substring(2));//库存台账ID
                apiData.setKctzcppcid(sysData.getId().substring(2));//库存台账批次ID
//                apiData.setPsmxid("");//配送车辆明细ID
 
//                apiData.setYjfamxid("");//应急方案明细ID
                apiData.setLspzbm(sysData.getFoodVariety());//品种编号
                List<ApiTrigger> lspz = apiTriggerRep.findNameByCode(sysData.getFoodVariety(),"LSPZ");
                if(lspz != null && lspz.size() > 0){
                    apiData.setLspzmc(lspz.get(0).getName());//品种名称
                }
                if (sysData.getFoodVariety().equals("2")){
 
                    //小麦粉
                    apiData.setCpbh("FJL89570583ec0a2571");//产品编号
                    apiData.setCpmc("小麦粉");//产品编号
                }
                if (sysData.getFoodVariety().equals("1")){
 
                    //大米
                    apiData.setCpbh("FJLdf09130205a43278");//产品编号
                    apiData.setCpmc("大米");//产品编号
 
                }
                if (sysData.getFoodVariety().equals("3")){
 
                    //食用油
                    apiData.setCpbh("FJL3e7ba1605ebd5dec");//产品编号
                    apiData.setCpmc("食用油");//产品编号
                }
                apiData.setJldwbm("12");//计量单位编码
                apiData.setJldwmc("千克");//计量单位名称
                apiData.setJsdwbm("21");//计数单位编码
                apiData.setJsdwmc("袋");//计数单位名称
 
//                apiData.setCrklx("");//出入库类型
 
                apiData.setCrksl((double) sysData.getBzbjs());//出入库数量
                apiData.setCrkzl(sysData.getSettleWeight());//出入库重量
 
//                apiData.setQcsl(0.00);//期初数量
//                apiData.setQmsl(0.00);//期末数量
//                apiData.setQczl(0.00);//期初重量
//                apiData.setQmzl(0.00);//期末重量
//                apiData.setShsl(0.00);//损耗数量
//                apiData.setShzl(0.00);//损耗重量
//                apiData.setYsyq("");//验收要求
//                apiData.setSfhx("");//是否核销
//                apiData.setQkxm("");//欠款项目
 
                apiData.setDj(sysData.getPrice());//单价
                apiData.setJe(apiData.getDj()*apiData.getCrkzl());//金额
                apiData.setCpdj("一等");//产品等级 关联产品接口
 
//                apiData.setCd("");//产地
//                apiData.setSccj("");//生产厂家
//                apiData.setGg("");//规格型号
//                apiData.setCppc("");//产品批次
//                apiData.setScrq(null);//生产日期
//                apiData.setBzq(null);//保质期
//                apiData.setCkfs("");//出库方式
                apiData.setDjsj(sysData.getRegisterTime());//登记时间
//                apiData.setZz("");//站长
//                apiData.setJjy("");//质检员
                apiData.setSxh(Integer.valueOf(sysData.getId().substring(6)));//顺序号
//                apiData.setDdid("");//订单id
//                apiData.setCrktzdid("");//出入库通知单id
//                apiData.setCrktzdmxid("");//出入库通知单明细ID
//                apiData.setDjr("");//登记人
 
 
//                WhjlCheck zjbgwj = new WhjlCheck();
//                zjbgwj.setJybgwjid("");//检验报告文件ID
//                zjbgwj.setJyrq(null);//检验日期
//                zjbgwj.setJylx("");//检验类型
//                zjbgwj.setWjlx("");//文件类型
//                zjbgwj.setWjm("");//文件名
//                zjbgwj.setWjlj("");//文件路径
//                zjbgwj.setWjdx("");//文件大小
 
 
                //持久化保存,单独存入非国标接口表
                ApiInfoData infoData = new ApiInfoData();
                infoData.setId(sysData.getId());
                infoData.setKqdm(kqdm);
                infoData.setInteType(WhjlConstant.API_CATEGORY_12);
                infoData.setInteId(WhjlConstant.API_CODE_1212);
                infoData.setUpdateTime(new Date());
                infoData.setDataId(sysData.getId());
                infoData.setRemarks("备注信息");
 
                //设置操作标志
                apiInfoDataList = apiInfoDataRep.getDataByDataId(infoData.getDataId());
                if (null == apiInfoDataList || apiInfoDataList.isEmpty()) {
                    apiData.setCzbz(Constant.CZBZ_I);
                    infoData.setCzbz(Constant.CZBZ_I);
                } else {
                    apiData.setCzbz(apiInfoDataList.get(0).getCzbz());
                    infoData.setCzbz(apiInfoDataList.get(0).getCzbz());
                }
 
                infoData.setData(JSON.toJSONString(apiData));
                apiInfoDataRep.save(infoData);
 
 
                log.info("1212---出入库记录-同步数据:{}", apiData.toString());
 
            }
        } catch (Exception e) {
            log.error("---1212合同-同步数据执行失败----{}", e.getMessage());
            apiLog.setResult("1212合同信息同步失败:" + e.getMessage());
            apiLogRep.save(apiLog);
        }
    }
 
}