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 list = fz40ToWhjlSync1212Rep.listApi1212(deptId); List apiInfoDataList; WhjlApi1212 apiData; for (Fz40WhjlInoutRecord sysData : list) { if(sysData.getRecordStatus().equals("DEL")) { //如果是删除状态,则不进行同步 log.info("1212---出入库记录-同步数据:{},状态为删除,不进行同步", sysData.getId()); continue; } List dept = apiInfoDataRep.getDataByDataId(sysData.getCompanyId()); WhjlApi1101 whjlApi1101 = JSONObject.parseObject(dept.get(0).getData(), WhjlApi1101.class); List 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 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(whjlApi1108.getHwbh().substring(0,28));//廒间编号 apiData.setAjmc(whjlApi1108.getHwmc());// TODO 廒间名称 // apiData.setPsmxid("");//配送车辆明细ID // apiData.setYjfamxid("");//应急方案明细ID apiData.setLspzbm(sysData.getFoodVariety());//品种编号 List lspz = apiTriggerRep.findNameByCode(sysData.getFoodVariety(),"LSPZ"); if(lspz != null && lspz.size() > 0){ apiData.setLspzmc(lspz.get(0).getName());//品种名称 } if (sysData.getFoodVariety().startsWith("2")){ apiData.setKctzbh("1234567891234567002");//库存台账ID apiData.setKctzcppcid("12312332132145002");//库存台账批次ID apiData.setJldwbm("12");//计量单位编码 apiData.setJldwmc("千克");//计量单位名称 apiData.setJsdwbm("21");//计数单位编码 apiData.setJsdwmc("袋");//计数单位名称 //小麦粉 apiData.setCpbh("FJL4a971ea2d319e518");//产品编号 apiData.setCpmc("精致小麦粉");//产品编号 } if (sysData.getFoodVariety().startsWith("1")){ apiData.setKctzbh("1234567891234567001");//库存台账ID apiData.setKctzcppcid("12312332132145001");//库存台账批次ID apiData.setJldwbm("12");//计量单位编码 apiData.setJldwmc("千克");//计量单位名称 apiData.setJsdwbm("21");//计数单位编码 apiData.setJsdwmc("袋");//计数单位名称 //大米 apiData.setCpbh("FJL0b1fc3761a2c0a46");//产品编号 apiData.setCpmc("长江绿地粳米");//产品编号 } if (sysData.getFoodVariety().startsWith("3")){ apiData.setKctzbh("1234567891234567003");//库存台账ID apiData.setKctzcppcid("12312332132145003");//库存台账批次ID apiData.setJldwbm("13");//计量单位编码 apiData.setJldwmc("升");//计量单位名称 apiData.setJsdwbm("23");//计数单位编码 apiData.setJsdwmc("瓶");//计数单位名称 //食用油 apiData.setCpbh("FJL60a5761059bf08df");//产品编号 apiData.setCpmc("菜籽油");//产品名称 } // 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(sysData.getRegisterTime());//生产日期 // 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); } } }