CZT
2023-10-25 4a41dd96b1a288fee3343c405b3f3b0c08d5646c
src/main/java/com/fzzy/async/fzzy40/impl/Fzzy40Sync1202.java
@@ -7,20 +7,25 @@
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.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;
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.Calendar;
import java.util.Date;
import java.util.List;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
/**
 * 粮食入库信息
@@ -36,6 +41,8 @@
    @Autowired
    private Fzzy40Sync1202Rep fzzySync1202Rep;
    @Autowired
    private Fzzy40SyncInoutRecordItemRep fzzy40SyncInoutRecordItemRep;
    @Autowired
    private Fzzy40SyncNoticeInRep fzzySyncNoticeInRep;
    @Autowired
@@ -78,8 +85,11 @@
            Api1105 api1105;
            List<Fz40InoutNoticeIn> listInoutNotice;
            List<Api1202> api1202List;
            Calendar c = Calendar.getInstance();
            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());
                }
@@ -99,35 +109,37 @@
                //货位代码
                apiData.setHwdm(api1105.getHwdm());
                apiData.setYwlx(Constant.INOUT_TYPE_2);
                apiData.setYwrq(sysData.getRegisterTime());
                apiData.setYwrq(DateUtils.parseDate(sysData.getId().substring(2, 10), new String[] { "yyyyMMdd" }));
                apiData.setCyr(sysData.getUserName());
                //默认一个随便值
                apiData.setLxdh(StringUtils.isEmpty(sysData.getUserContact()) ? "13012345678" : sysData.getUserContact());
                apiData.setLxdh(StringUtils.isEmpty(sysData.getUserContact()) ? "13012345678" : sysData.getUserContact().trim());
                apiData.setSfzh(null == sysData.getUserId() ? "410183200010100000" : sysData.getUserId());
                apiData.setSfzh(null == sysData.getUserId() ? "410183200010100000" : sysData.getUserId().trim());
                //获取合同号
                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(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());
                    }
                }
                apiData.setXxdz(sysData.getUserAddress());
                apiData.setXxdz(StringUtils.isEmpty(sysData.getUserAddress()) ? "详细地址":sysData.getUserAddress());
                //运输工具,若为空,则默认给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.setCch(sysData.getPlateNum().trim());
                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);
                //粮食性质
@@ -137,14 +149,20 @@
                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);
                //检斤类型,默认0-称重入库
                apiData.setJjlx("0");
                //毛重信息
                apiData.setMz(sysData.getFullWeight());
                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());
@@ -153,6 +171,9 @@
                //皮重信息
                apiData.setPz(sysData.getEmptyWeight());
                if(!sysData.getEmptyWeightTime().after(sysData.getFullWeightTime())){
                    sysData.setEmptyWeightTime(DateUtils.addMinutes(sysData.getFullWeightTime(), 60));
                }
                apiData.setPzjlsj(sysData.getEmptyWeightTime());
                apiData.setPzjby(sysData.getEmptyWeightUser());
                apiData.setPzjly(sysData.getEmptyWeightUser());
@@ -166,12 +187,13 @@
                apiData.setXckl( 0 - sysData.getDeHandle());
                apiData.setJz(sysData.getRecordWeight());
                c.setTime(sysData.getCompleteTime());
                c.add(Calendar.MINUTE,3);
                apiData.setCmsj(c.getTime());
                if(!sysData.getCompleteTime().after(sysData.getEmptyWeightTime())){
                    sysData.setCompleteTime(DateUtils.addMinutes(sysData.getEmptyWeightTime(), 10));
                }
                apiData.setCmsj(sysData.getCompleteTime());
                //操作标志及最后更新时间
                apiData.setZhgxsj(c.getTime());
                apiData.setZhgxsj(sysData.getUpdateTime());
                //业务id、库区编码、同步时间
                apiData.setBizId(sysData.getId());
@@ -183,11 +205,36 @@
                }else {
                    apiData.setCzbz(api1202List.get(0).getCzbz());
                }
                //保存数据
                api1202Rep.save(apiData);
                //判断是否为船运
                if(StringUtils.isNotEmpty(sysData.getTransType()) && sysData.getTransType().equals("3")){
                    listInoutRecordItem = fzzy40SyncInoutRecordItemRep.findDataByRecordId(sysData.getId());
                    if(null == listInoutRecordItem || listInoutRecordItem.isEmpty()){
                        api1202Rep.save(apiData);
                        continue;
                    }
                    int idNum = Integer.valueOf(sysData.getId().substring(12))*100 + 10001;
                    for (Fz40InoutRecordItem fz40InoutRecordItem : listInoutRecordItem) {
                        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());
                        api1202Rep.save(apiData);
                        idNum ++;
                    }
                }else {
                    //保存数据
                    api1202Rep.save(apiData);
                }
                log.info("1202---同步数据:{}", apiData.toString());
            }
        } catch (Exception e) {
            log.error("---同步失败----{}", e);
            apiLog.setResult("同步失败:" + e.getMessage());
            apiLogRep.save(apiLog);