CZT
2023-10-25 4a41dd96b1a288fee3343c405b3f3b0c08d5646c
src/main/java/com/fzzy/async/fzzy40/impl/Fzzy40Sync1205.java
@@ -7,18 +7,23 @@
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.Api1205Rep;
import com.fzzy.api.view.repository.ApiLogRep;
import com.fzzy.async.fzzy40.entity.Fz40InoutNoticeOut;
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.Fzzy40SyncNoticeOutRep;
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.text.SimpleDateFormat;
import java.util.*;
/**
@@ -34,6 +39,8 @@
    private final static String INOUT_TYPE_OUT = "OUT";
    @Autowired
    private Fzzy40Sync1202Rep fzzySync1202Rep;
    @Autowired
    private Fzzy40SyncInoutRecordItemRep fzzy40SyncInoutRecordItemRep;
    @Autowired
    private Fzzy40SyncNoticeOutRep fzzySyncNoticeOutRep;
    @Autowired
@@ -77,11 +84,11 @@
        Api1105 api1105;
        List<Fz40InoutNoticeOut> listInoutNotice;
        List<Api1205> api1205List;
        Calendar c = Calendar.getInstance();
        String ywsj = "";
        String num = "";
        Map<String, Integer> map = new HashMap<>();
        List<Fz40InoutRecordItem> listInoutRecordItem;
        for (Fz40InoutRecord sysData : list) {
            if(sysData.getRecordStatus().equals("DEL") || sysData.getRecordStatus().equals("ERROR")){
                continue;
            }
            if(null == sysData.getRecordWeight() || sysData.getRecordWeight() == 0){
                sysData.setRecordWeight(sysData.getSettleWeight());
            }
@@ -96,16 +103,6 @@
            }
            apiData = new Api1205();
            apiData.setCkywdh(Constant.INOUT_TYPE_15 + sysData.getId().substring(4));
            //判断业务时间与单据号是否匹配
            ywsj = DateFormatUtils.format(sysData.getCompleteTime(),"yyMMdd");
            if(!ywsj.equals(sysData.getId().substring(4, 10))){
                if(null == map.get(ywsj)){
                    map.put(ywsj, 10201);
                }
                num = String.valueOf(map.get(ywsj)).substring(1);
                apiData.setCkywdh(Constant.INOUT_TYPE_15 + ywsj + num);
                map.put(ywsj, map.get(ywsj) + 1);
            }
            //货位代码
            apiData.setHwdm(api1105.getHwdm());
@@ -114,28 +111,28 @@
            //通知单号
            apiData.setCktzdh(sysData.getNoticeId());
            apiData.setYwrq(sysData.getRegisterTime());
            apiData.setYwrq(DateUtils.parseDate(sysData.getId().substring(2, 10), new String[] { "yyyyMMdd" }));
            //获取合同号
            listInoutNotice = fzzySyncNoticeOutRep.listInoutNoticeOutById(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.getCkywdh());
                if(StringUtils.isNotEmpty(listInoutNotice.get(0).getContractId())){
                    apiData.setHth(api1105.getHwdm().substring(0,18) + listInoutNotice.get(0).getContractId());
                }
                if(StringUtils.isNotEmpty(listInoutNotice.get(0).getPlanId())){
                    apiData.setJhmxh(listInoutNotice.get(0).getPlanId());
                }
            }
            //运输工具,若为空,则默认给1-汽车
            apiData.setYsgj(StringUtils.isEmpty(sysData.getTransType()) ? "1":sysData.getTransType());
            //车船号
            apiData.setCch(sysData.getPlateNum());
            c.setTime(sysData.getRegisterTime());
            c.add(Calendar.MINUTE,-3);
            apiData.setDjsj(c.getTime());
            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);
            //粮食等级
@@ -149,29 +146,39 @@
            apiData.setShnd(StringUtils.isEmpty(sysData.getFoodYear())? DateFormatUtils.format(new Date(), "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);
            //皮重信息
            apiData.setPz(sysData.getEmptyWeight());
            if(!sysData.getEmptyWeightTime().after(sysData.getRegisterTime())){
                sysData.setEmptyWeightTime(DateUtils.addMinutes(sysData.getRegisterTime(), 25));
            }
            apiData.setPzjlsj(sysData.getEmptyWeightTime());
            apiData.setPzjby(sysData.getEmptyWeightUser());
            apiData.setPzjly(sysData.getEmptyWeightUser());
            //毛重信息
            apiData.setMz(sysData.getFullWeight());
            if(!sysData.getFullWeightTime().after(sysData.getEmptyWeightTime())){
                sysData.setFullWeightTime(DateUtils.addMinutes(sysData.getEmptyWeightTime(), 60));
            }
            apiData.setMzjlsj(sysData.getFullWeightTime());
            apiData.setMzjby(sysData.getFullWeightUser());
            apiData.setMzjly(sysData.getFullWeightUser());
            //净重
            apiData.setJz(sysData.getRecordWeight());
            c.setTime(sysData.getCompleteTime());
            c.add(Calendar.MINUTE,3);
            apiData.setCmsj(c.getTime());
            if(!sysData.getCompleteTime().after(sysData.getFullWeightTime())){
                sysData.setCompleteTime(DateUtils.addMinutes(sysData.getFullWeightTime(), 10));
            }
            apiData.setCmsj(sysData.getCompleteTime());
            //操作标志及最后更新时间
            apiData.setZhgxsj(c.getTime());
            apiData.setZhgxsj(sysData.getUpdateTime());
            //业务id、库区编码、同步时间
            apiData.setBizId(sysData.getId());
@@ -185,8 +192,30 @@
            }else {
                apiData.setCzbz(api1205List.get(0).getCzbz());
            }
            //保存数据
            api1205Rep.save(apiData);
            //判断是否为船运
            if(StringUtils.isNotEmpty(sysData.getTransType()) && sysData.getTransType().equals("3")){
                listInoutRecordItem = fzzy40SyncInoutRecordItemRep.findDataByRecordId(sysData.getId());
                if(null == listInoutRecordItem || listInoutRecordItem.isEmpty()){
                    api1205Rep.save(apiData);
                    continue;
                }
                int idNum = Integer.valueOf(sysData.getId().substring(12))*100 + 10001;
                for (Fz40InoutRecordItem fz40InoutRecordItem : listInoutRecordItem) {
                    if(fz40InoutRecordItem.getSettleWeight() <= 0){
                        continue;
                    }
                    apiData.setCkywdh(Constant.INOUT_TYPE_15 + sysData.getId().substring(4,10) + String.valueOf(idNum).substring(1));
                    apiData.setMz(fz40InoutRecordItem.getFullWeight());
                    apiData.setPz(fz40InoutRecordItem.getEmptyWeight());
                    apiData.setJz(fz40InoutRecordItem.getSettleWeight());
                    api1205Rep.save(apiData);
                    idNum ++;
                }
            }else {
                //保存数据
                api1205Rep.save(apiData);
            }
        }
        } catch (Exception e) {
            log.error("---同步失败----{}", e);