ws
2024-10-31 5408346178dd12b7ab78fb51c76f59c300a7e153
src/main/java/com/fzzy/async/fzzy40/impl/Fzzy40Sync1202.java
@@ -1,18 +1,16 @@
package com.fzzy.async.fzzy40.impl;
import com.fzzy.api.Constant;
import com.fzzy.api.entity.Api1105;
import com.fzzy.api.entity.Api1202;
import com.fzzy.api.entity.ApiLog;
import com.fzzy.api.entity.*;
import com.fzzy.api.service.ApiCommonService;
import com.fzzy.api.service.ApiTriggerService;
import com.fzzy.api.utils.ContextUtil;
import com.fzzy.api.utils.DateUtil;
import com.fzzy.api.view.repository.Api1202Rep;
import com.fzzy.api.view.repository.ApiLogRep;
import com.fzzy.api.view.repository.*;
import com.fzzy.async.fzzy40.entity.Fz40InoutNoticeIn;
import com.fzzy.async.fzzy40.entity.Fz40InoutRecord;
import com.fzzy.async.fzzy40.entity.Fz40InoutRecordItem;
import com.fzzy.async.fzzy40.repository.Fzzy40Sync1202Rep;
import com.fzzy.async.fzzy40.repository.Fzzy40SyncInoutRecordItemRep;
import com.fzzy.async.fzzy40.repository.Fzzy40SyncNoticeInRep;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
@@ -21,7 +19,6 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.text.SimpleDateFormat;
import java.util.*;
/**
@@ -39,11 +36,21 @@
    @Autowired
    private Fzzy40Sync1202Rep fzzySync1202Rep;
    @Autowired
    private Fzzy40SyncInoutRecordItemRep fzzy40SyncInoutRecordItemRep;
    @Autowired
    private Fzzy40SyncNoticeInRep fzzySyncNoticeInRep;
    @Autowired
    private ApiTriggerService apiTriggerService;
    @Autowired
    private Api1201Rep api1201Rep;
    @Autowired
    private Api1202Rep api1202Rep;
    @Autowired
    private Api1204Rep api1204Rep;
    @Autowired
    private Api1208Rep api1208Rep;
    @Autowired
    private Api1404Rep api1404Rep;
    @Autowired
    private ApiCommonService commonService;
    @Autowired
@@ -80,12 +87,19 @@
            Api1105 api1105;
            List<Fz40InoutNoticeIn> listInoutNotice;
            List<Api1202> api1202List;
            List<Fz40InoutRecordItem> listInoutRecordItem;
            List<Api1201> api1201List;
            List<Api1204> api1204List;
            List<Api1404> api1404List;
            for (Fz40InoutRecord sysData : list) {
                if(null == sysData.getRecordWeight() || sysData.getRecordWeight() == 0){
                if (sysData.getRecordStatus().equals("DEL") || sysData.getRecordStatus().equals("ERROR")) {
                    continue;
                }
                if (null == sysData.getRecordWeight() || sysData.getRecordWeight() == 0) {
                    sysData.setRecordWeight(sysData.getSettleWeight());
                }
                //判断净重是否大于0,等于0表示不合格,不进行同步上传
                if(null == sysData.getRecordWeight() || sysData.getRecordWeight() == 0){
                if (null == sysData.getRecordWeight() || sysData.getRecordWeight() == 0) {
                    continue;
                }
                //获取货位信息
@@ -97,39 +111,49 @@
                apiData.setRkywdh(Constant.INOUT_TYPE_14 + sysData.getId().substring(4));
                //判断业务时间与单据号是否匹配,若不匹配,则更改业务时间为单据号所在的时间
                SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
                Date time = dateFormat.parse(sysData.getId().substring(2, 10));
                int numDay = DateUtil.difDay(DateUtil.getCurZero(sysData.getCompleteTime()), DateUtil.getCurZero(time));
                if(numDay != 0){
                    sysData.setFullWeightTime(DateUtils.addDays(sysData.getFullWeightTime(), numDay));
                    sysData.setEmptyWeightTime(DateUtils.addDays(sysData.getEmptyWeightTime(), numDay));
                    sysData.setCompleteTime(DateUtils.addDays(sysData.getCompleteTime(), numDay));
                }
                //货位代码
                apiData.setHwdm(api1105.getHwdm());
                apiData.setYwlx(Constant.INOUT_TYPE_2);
                apiData.setYwrq(sysData.getCompleteTime());
                apiData.setCyr(sysData.getUserName());
                apiData.setYwrq(DateUtils.parseDate(sysData.getId().substring(2, 10), new String[]{"yyyyMMdd"}));
                apiData.setCyr(sysData.getUserName().trim());
                //默认一个随便值
                apiData.setLxdh(StringUtils.isEmpty(sysData.getUserContact()) ? "13012345678" : sysData.getUserContact().trim());
                apiData.setSfzh(null == sysData.getUserId() ? "410183200010100000" : sysData.getUserId().trim());
                if (StringUtils.isEmpty(sysData.getUserId()) || sysData.getUserId().length() != 18) {
                    sysData.setUserId("410183199003187055");
                }
                apiData.setSfzh(sysData.getUserId());
                //获取合同号
                //获取通知单信息,查询合同号和计划明细号
                listInoutNotice = fzzySyncNoticeInRep.listInoutNoticeInById(sysData.getNoticeId());
                if(null != listInoutNotice && listInoutNotice.size() >0){
                    apiData.setHth(api1105.getHwdm().substring(0,18) + listInoutNotice.get(0).getContractId());
                }else {
                    apiData.setHth(api1105.getHwdm().substring(0,18) + apiData.getRkywdh());
                if (null != listInoutNotice && listInoutNotice.size() > 0) {
                    //合同号
                    if (StringUtils.isNotEmpty(listInoutNotice.get(0).getContractId())) {
                        api1201List = api1201Rep.getDataByBizId(listInoutNotice.get(0).getContractId());
                        if (null != api1201List && api1201List.size() > 0) {
                            apiData.setHth(api1201List.get(0).getHth());
                        }
                    }
                    if (StringUtils.isNotEmpty(listInoutNotice.get(0).getPlanId())) {
                        api1404List = api1404Rep.getDataByBizIdAndKqdm(listInoutNotice.get(0).getPlanId(), kqdm);
                        if (null != api1404List && api1404List.size() > 0) {
                            apiData.setJhmxh(api1404List.get(0).getJhmxdh());
                            if (StringUtils.isEmpty(sysData.getFoodYear())) {
                                sysData.setFoodYear(api1404List.get(0).getShnd());
                            }
                        }
                    }
                }
                apiData.setXxdz(StringUtils.isEmpty(sysData.getUserAddress()) ? "详细地址":sysData.getUserAddress());
                //粮权单位归属代码
                List<Api1208> dataByHwdm = api1208Rep.findDataByHwdm(apiData.getHwdm());
                apiData.setLqgsdwdm(StringUtils.isEmpty(dataByHwdm.get(0).getLqgsdwdm()) ? apiData.getHwdm().substring(0, 18) : dataByHwdm.get(0).getLqgsdwdm());
                apiData.setXxdz(StringUtils.isEmpty(sysData.getUserAddress()) ? "详细地址" : sysData.getUserAddress());
                //运输工具,若为空,则默认给1-汽车
                apiData.setYsgj(StringUtils.isEmpty(sysData.getTransType()) ? "1":sysData.getTransType());
                apiData.setYsgj(StringUtils.isEmpty(sysData.getTransType()) ? "1" : sysData.getTransType());
                //车船号
                apiData.setCch(sysData.getPlateNum().trim());
@@ -137,36 +161,45 @@
                apiData.setDjsj(sysData.getRegisterTime());
                //粮食品种
                String mappingCode = apiTriggerService.getMappingCode(Constant.TRIGGER_P_LSPZ, sysData.getFoodVariety());
                String mappingCode = apiTriggerService.getMappingCode(Constant.TRIGGER_P_LSPZ, sysData.getFoodVariety().substring(0, 3));
                apiData.setLspzdm(mappingCode);
                //粮食性质
                mappingCode = apiTriggerService.getMappingCode(Constant.TRIGGER_P_LSXZ, sysData.getFoodType());
                apiData.setLsxzdm(mappingCode);
                apiData.setShnd(StringUtils.isEmpty(sysData.getFoodYear())? DateFormatUtils.format(new Date(), "yyyy") :sysData.getFoodYear());
                apiData.setShnd(StringUtils.isEmpty(sysData.getFoodYear()) ? DateFormatUtils.format(sysData.getRegisterTime(), "yyyy") : sysData.getFoodYear());
                //产地代码
                String cddm = commonService.getFoodLocationIdFromCache(sysData.getFoodLocation());
                apiData.setCddm(cddm);
                mappingCode = commonService.getFoodLocationIdFromCache(sysData.getFoodLocation());
                if (StringUtils.isEmpty(mappingCode)) {
                    mappingCode = apiData.getHwdm().substring(2, 8);
                }
                apiData.setCddm(mappingCode);
                //检斤类型,默认0-称重入库
                apiData.setJjlx("0");
                //毛重信息
                apiData.setMz(sysData.getFullWeight());
                if(!sysData.getFullWeightTime().after(sysData.getRegisterTime())){
                if (null == sysData.getFullWeightTime()) {
                    sysData.setFullWeightTime(DateUtils.addMinutes(sysData.getRegisterTime(), 25));
                }
                if (!sysData.getFullWeightTime().after(sysData.getRegisterTime())) {
                    sysData.setFullWeightTime(DateUtils.addMinutes(sysData.getRegisterTime(), 25));
                }
                apiData.setMzjlsj(sysData.getFullWeightTime());
                apiData.setMzjby(sysData.getFullWeightUser());
                apiData.setMzjly(sysData.getFullWeightUser());
                apiData.setZcy(sysData.getHandleUser());
                apiData.setZcy(null == sysData.getHandleUser() ? sysData.getFullWeightUser() : sysData.getHandleUser());
                //皮重信息
                apiData.setPz(sysData.getEmptyWeight());
                if(!sysData.getEmptyWeightTime().after(sysData.getFullWeightTime())){
                if (null == sysData.getEmptyWeightTime()) {
                    sysData.setEmptyWeightTime(DateUtils.addMinutes(sysData.getFullWeightTime(), 60));
                }
                if (!sysData.getEmptyWeightTime().after(sysData.getFullWeightTime())) {
                    sysData.setEmptyWeightTime(DateUtils.addMinutes(sysData.getFullWeightTime(), 60));
                }
                apiData.setPzjlsj(sysData.getEmptyWeightTime());
@@ -176,13 +209,31 @@
                //扣重 化验总扣重
                apiData.setZjklxj(sysData.getDeCheck());
                apiData.setBzwkl(0 - sysData.getDePackage());
                apiData.setBzbjs(sysData.getBzbjs());
                apiData.setCmsj(sysData.getCompleteTime());
                //结算单号
                if (StringUtils.isNotEmpty(sysData.getSettleId())) {
                    apiData.setRkjsdh(kqdm + sysData.getSettleId());
                }
                if (StringUtils.isNotEmpty(apiData.getHth())) {
                    api1204List = api1204Rep.getDataByHthAndHwdm(apiData.getHth(), apiData.getHwdm());
                    if (null == api1204List || api1204List.isEmpty()) {
                        api1204List = api1204Rep.getDataByHth(apiData.getHth());
                        if (null != api1204List && api1204List.size() > 0) {
                            apiData.setRkjsdh(api1204List.get(0).getRkjsdh());
                        }
                    } else {
                        apiData.setRkjsdh(api1204List.get(0).getRkjsdh());
                    }
                }
                //其它
                apiData.setQtkl( 0 - sysData.getDeOther());
                apiData.setQtkl(0 - sysData.getDeOther());
                //值仓 现场扣重
                apiData.setXckl( 0 - sysData.getDeHandle());
                apiData.setXckl(0 - sysData.getDeHandle());
                apiData.setJz(sysData.getRecordWeight());
                if(!sysData.getCompleteTime().after(sysData.getEmptyWeightTime())){
                if (!sysData.getCompleteTime().after(sysData.getEmptyWeightTime())) {
                    sysData.setCompleteTime(DateUtils.addMinutes(sysData.getEmptyWeightTime(), 10));
                }
                apiData.setCmsj(sysData.getCompleteTime());
@@ -194,15 +245,72 @@
                apiData.setBizId(sysData.getId());
                apiData.setKqdm(kqdm);
                apiData.setSyncTime(new Date());
                apiData.setBz(null == sysData.getRemarks() ? "备注" : sysData.getRemarks());
                apiData.setKlyy("扣量原因");
                apiData.setCmqrmgryxm(StringUtils.isEmpty(sysData.getRegisterUser()) ? "登记人" : sysData.getRegisterUser());
                apiData.setDjmgryxm(StringUtils.isEmpty(sysData.getRegisterUser()) ? "登记人" : sysData.getRegisterUser());
                //01:表示大型汽车号牌,黄底黑字; 02:表示小型汽车号牌,蓝底白字; 03:表示新能源汽车号牌,绿底黑 字;
                //04:表示农用车车牌号,绿底白字; LS:表示临时虚拟号牌,仅限于售 粮车无固定号牌时使用
                apiData.setCchlx("01");
                apiData.setLdd("装粮地点");
                apiData.setQzsfzkl(0.0);
                apiData.setQzzzzkl(0.0);
                apiData.setQzgwcmkl(0.0);
                apiData.setQzhhkl(0.0);
                apiData.setQzbwslkl(0.0);
                apiData.setQzhlmkl(0.0);
                apiData.setQzsmlkl(0.0);
                apiData.setQzzjmlkl(0.0);
                apiData.setQzqtkl(0.0);
                apiData.setZkhyy("增扣价原因");
                apiData.setZxzydw(api1105.getBgdw());
                if (sysData.getCompanyId().equals("5329")) {
                    apiData.setLqgsdwdm("91440604MA56D2AM1X");
                }
                api1202List = api1202Rep.getDataById(apiData.getRkywdh());
                if(null == api1202List || api1202List.isEmpty()){
                if (null == api1202List || api1202List.isEmpty()) {
                    apiData.setCzbz(Constant.CZBZ_I);
                }else {
                } else {
                    apiData.setCzbz(api1202List.get(0).getCzbz());
                }
                //判断是否为船运
                if (StringUtils.isNotEmpty(sysData.getTransType()) && sysData.getTransType().equals("3")) {
                    listInoutRecordItem = fzzy40SyncInoutRecordItemRep.findDataByRecordId(sysData.getId());
                    if (null == listInoutRecordItem || listInoutRecordItem.isEmpty()) {
                        api1202Rep.save(apiData);
                        continue;
                    }
                //保存数据
                api1202Rep.save(apiData);
                    int idNum = Integer.valueOf(sysData.getId().substring(12)) * 100 + 10001;
                    for (Fz40InoutRecordItem fz40InoutRecordItem : listInoutRecordItem) {
                        if ("DEL".equals(fz40InoutRecordItem.getRecordStatus())) {
                            continue;
                        }
                        if (fz40InoutRecordItem.getSettleWeight() <= 0) {
                            continue;
                        }
                        apiData.setRkywdh(Constant.INOUT_TYPE_14 + sysData.getId().substring(4, 10) + String.valueOf(idNum).substring(1));
                        apiData.setMz(fz40InoutRecordItem.getFullWeight());
                        apiData.setPz(fz40InoutRecordItem.getEmptyWeight());
                        apiData.setJz(fz40InoutRecordItem.getSettleWeight());
                        apiData.setMzjlsj(fz40InoutRecordItem.getFullWeightTime());
                        apiData.setPzjlsj(fz40InoutRecordItem.getEmptyWeightTime());
                        apiData.setQtkl(0 - fz40InoutRecordItem.getDe());
                        api1202List = api1202Rep.getDataById(apiData.getRkywdh());
                        if (null == api1202List || api1202List.isEmpty()) {
                            apiData.setCzbz(Constant.CZBZ_I);
                        } else {
                            apiData.setCzbz(api1202List.get(0).getCzbz());
                        }
                        api1202Rep.save(apiData);
                        idNum++;
                    }
                } else {
                    //保存数据
                    api1202Rep.save(apiData);
                }
                log.info("1202---同步数据:{}", apiData.toString());
            }
        } catch (Exception e) {