From f31db99e67cc3e4a4092b4957af1076b634e6b48 Mon Sep 17 00:00:00 2001
From: CZT <czt18638530771@163.com>
Date: 星期五, 15 十二月 2023 17:23:55 +0800
Subject: [PATCH] 修复粮情数据转换

---
 src/main/java/com/fzzy/async/fzzy40/impl/Fzzy40Sync1202.java |  163 +++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 113 insertions(+), 50 deletions(-)

diff --git a/src/main/java/com/fzzy/async/fzzy40/impl/Fzzy40Sync1202.java b/src/main/java/com/fzzy/async/fzzy40/impl/Fzzy40Sync1202.java
index c1eed03..bc58a58 100644
--- a/src/main/java/com/fzzy/async/fzzy40/impl/Fzzy40Sync1202.java
+++ b/src/main/java/com/fzzy/async/fzzy40/impl/Fzzy40Sync1202.java
@@ -1,24 +1,26 @@
 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.view.repository.Api1201Rep;
 import com.fzzy.api.view.repository.Api1202Rep;
+import com.fzzy.api.view.repository.Api1404Rep;
 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.*;
 
 /**
@@ -36,11 +38,17 @@
     @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 Api1404Rep api1404Rep;
     @Autowired
     private ApiCommonService commonService;
     @Autowired
@@ -77,16 +85,18 @@
             Api1105 api1105;
             List<Fz40InoutNoticeIn> listInoutNotice;
             List<Api1202> api1202List;
-            Calendar c = Calendar.getInstance();
-            String ywsj = "";
-            String num = "";
-            Map<String, Integer> map = new HashMap<>();
+            List<Fz40InoutRecordItem> listInoutRecordItem;
+            List<Api1201> api1201List;
+            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,66 +107,74 @@
                 apiData = new Api1202();
 
                 apiData.setRkywdh(Constant.INOUT_TYPE_14 + 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.setRkywdh(Constant.INOUT_TYPE_14 + ywsj + num);
-                    map.put(ywsj, map.get(ywsj) + 1);
-                }
 
                 //璐т綅浠g爜
                 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().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 (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.getDataByBizId(listInoutNotice.get(0).getPlanId());
+                        if(null != api1404List && api1404List.size() > 0){
+                            apiData.setJhmxh(api1404List.get(0).getJhmxdh());
+                        }
+                    }
                 }
 
-                apiData.setXxdz(StringUtils.isEmpty(sysData.getUserAddress()) ? "璇︾粏鍦板潃":sysData.getUserAddress());
+                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());
-                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);
 
                 //绮鎬ц川
                 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(new Date(), "yyyy") : sysData.getFoodYear());
 
                 //浜у湴浠g爜
-                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 (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());
@@ -165,6 +183,12 @@
 
                 //鐨噸淇℃伅
                 apiData.setPz(sysData.getEmptyWeight());
+                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());
                 apiData.setPzjby(sysData.getEmptyWeightUser());
                 apiData.setPzjly(sysData.getEmptyWeightUser());
@@ -172,32 +196,71 @@
                 //鎵i噸 鍖栭獙鎬绘墸閲�
                 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());
+                }
                 //鍏跺畠
-                apiData.setQtkl( 0 - sysData.getDeOther());
+                apiData.setQtkl(0 - sysData.getDeOther());
                 //鍊间粨 鐜板満鎵i噸
-                apiData.setXckl( 0 - sysData.getDeHandle());
+                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());
                 apiData.setKqdm(kqdm);
                 apiData.setSyncTime(new Date());
-                api1202List = api1202Rep.getDataById(apiData.getRkywdh());
-                if(null == api1202List || api1202List.isEmpty()){
-                    apiData.setCzbz(Constant.CZBZ_I);
-                }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;
+                    }
+
+                    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());
+                        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 {
+                    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);
                 }
 
-                //淇濆瓨鏁版嵁
-                api1202Rep.save(apiData);
                 log.info("1202---鍚屾鏁版嵁锛歿}", apiData.toString());
             }
         } catch (Exception e) {

--
Gitblit v1.9.3