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("FJLdf09130205a43002");//产品编号
|
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);
|
}
|
}
|
|
}
|