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/Fzzy40Sync1203.java |  219 ++++++++++++++++++++++++++++++------------------------
 1 files changed, 121 insertions(+), 98 deletions(-)

diff --git a/src/main/java/com/fzzy/async/fzzy40/impl/Fzzy40Sync1203.java b/src/main/java/com/fzzy/async/fzzy40/impl/Fzzy40Sync1203.java
index ded0330..c259b4b 100644
--- a/src/main/java/com/fzzy/async/fzzy40/impl/Fzzy40Sync1203.java
+++ b/src/main/java/com/fzzy/async/fzzy40/impl/Fzzy40Sync1203.java
@@ -1,28 +1,28 @@
 package com.fzzy.async.fzzy40.impl;
 
 import com.fzzy.api.Constant;
-import com.fzzy.api.entity.Api1105;
-import com.fzzy.api.entity.Api1203;
-import com.fzzy.api.entity.ApiLog;
-import com.fzzy.api.entity.GbCheckItem;
-import com.fzzy.api.service.ApiCommonService;
+import com.fzzy.api.entity.*;
 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.Api1203Rep;
 import com.fzzy.api.view.repository.ApiLogRep;
 import com.fzzy.api.view.repository.GbCheckItemRep;
 import com.fzzy.async.fzzy40.entity.Fz40CheckItem;
 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.Fzzy40Sync1203Rep;
+import com.fzzy.async.fzzy40.repository.Fzzy40SyncInoutRecordItemRep;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.StringUtils;
 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;
+import java.text.SimpleDateFormat;
+import java.util.*;
 
 /**
  * 绮鍏ュ簱妫�楠屼俊鎭�
@@ -39,16 +39,17 @@
     @Autowired
     private Fzzy40Sync1202Rep fzzySync1202Rep;
     @Autowired
+    private Fzzy40SyncInoutRecordItemRep fzzy40SyncInoutRecordItemRep;
+    @Autowired
     private Fzzy40Sync1203Rep fzzySync1203Rep;
-
     @Autowired
     private ApiTriggerService apiTriggerService;
+    @Autowired
+    private Api1202Rep api1202Rep;
     @Autowired
     private Api1203Rep api1203Rep;
     @Autowired
     private GbCheckItemRep gbCheckItemRep;
-    @Autowired
-    private ApiCommonService commonService;
     @Autowired
     private ApiLogRep apiLogRep;
 
@@ -81,7 +82,6 @@
             }
 
             Api1203 apiData;
-            Api1105 api1105;
             List<Fz40CheckItem> fz40CheckItems;
             List<GbCheckItem> gbCheckList;
             String jyxm;
@@ -89,13 +89,29 @@
             String zkj;
             String zkl;
             List<Api1203> api1203List;
+            List<Api1202> api1102List;
+            List<Fz40InoutRecordItem> listInoutRecordItem;
+            List<String> listIds;
             for (Fz40InoutRecord sysData : list) {
-                if(null == sysData.getRecordWeight() || sysData.getRecordWeight() == 0){
-                    sysData.setRecordWeight(sysData.getSettleWeight());
-                }
-                //鍒ゆ柇鍑�閲嶆槸鍚﹀ぇ浜�0锛岀瓑浜�0琛ㄧず涓嶅悎鏍硷紝涓嶈繘琛屽悓姝ヤ笂浼�
-                if(null == sysData.getRecordWeight() || sysData.getRecordWeight() == 0){
-                    continue;
+                listIds = new ArrayList<>();
+                //鍒ゆ柇鏄惁涓鸿埞杩�
+                if(StringUtils.isNotEmpty(sysData.getTransType()) && sysData.getTransType().equals("3")){
+                    listInoutRecordItem = fzzy40SyncInoutRecordItemRep.findDataByRecordId(sysData.getId());
+                    if(null != listInoutRecordItem && listInoutRecordItem.size() > 0){
+                        int idNum = Integer.valueOf(sysData.getId().substring(12))*100 + 10001;
+
+                        for (Fz40InoutRecordItem fz40InoutRecordItem : listInoutRecordItem) {
+                            if ("DEL".equals(fz40InoutRecordItem.getRecordStatus())) {
+                                continue;
+                            }
+                            listIds.add(Constant.INOUT_TYPE_14 + sysData.getId().substring(4,10) + String.valueOf(idNum).substring(1));
+                            idNum ++;
+                        }
+                    }else {
+                        listIds.add(Constant.INOUT_TYPE_14 + sysData.getId().substring(4));
+                    }
+                }else {
+                    listIds.add(Constant.INOUT_TYPE_14 + sysData.getId().substring(4));
                 }
 
                 //鑾峰彇鍏ュ簱璐ㄦ淇℃伅
@@ -105,91 +121,98 @@
                     continue;
                 }
 
-                //鑾峰彇璐т綅淇℃伅
-                api1105 = commonService.getApi1105Cache(sysData.getDepotId());
-                if (null == api1105) {
-                    continue;
-                }
-
-                apiData = new Api1203();
-
-                apiData.setRkjydh(Constant.INOUT_TYPE_14 + sysData.getId().substring(4));
-
-                //璐т綅浠g爜
-                apiData.setHwdm(api1105.getHwdm());
-                apiData.setRkywdh(apiData.getRkjydh());
-                if(null == sysData.getFullWeightTime()){
-                    sysData.setFullWeightTime(DateUtils.addMinutes(sysData.getRegisterTime(), 5));
-                }
-                apiData.setQysj(sysData.getFullWeightTime());
-                apiData.setQyrxm(sysData.getCheckUser());
-                //鎵︽牱鏂瑰紡 2-鏅鸿兘闅忔満
-                apiData.setQyfs("2");
-
-                //妫�娴嬮」锛屾娴嬪�硷紝澧炴墸浠峰強澧炴墸閲�
-                jyxm = "";
-                jyz = "";
-                zkj = "";
-                zkl = "";
-                for (Fz40CheckItem fz40CheckItem : fz40CheckItems) {
-                    gbCheckList = gbCheckItemRep.findByBizCode(fz40CheckItem.getStandardId());
-
-                    if (gbCheckList == null || gbCheckList.isEmpty()) {
+                for (String listId : listIds) {
+                    //鏌ヨ绮鍏ュ簱淇℃伅锛岃嫢涓虹┖鍒欎笉杩涜鍚屾涓婁紶
+                    api1102List = api1202Rep.getDataById(listId);
+                    if(null == api1102List || api1102List.isEmpty()){
                         continue;
                     }
-                    if (StringUtils.isEmpty(fz40CheckItem.getValue())) {
-                        continue;
+
+                    apiData = new Api1203();
+
+                    apiData.setRkjydh(api1102List.get(0).getRkywdh());
+                    //璐т綅浠g爜
+                    apiData.setHwdm(api1102List.get(0).getHwdm());
+                    apiData.setRkywdh(api1102List.get(0).getRkywdh());
+                    if(null == sysData.getFullWeightTime()){
+                        sysData.setFullWeightTime(DateUtils.addMinutes(sysData.getRegisterTime(), 5));
                     }
-                    jyxm += gbCheckList.get(0).getCode() + ",";
-                    jyz += fz40CheckItem.getValue() + ",";
-                    zkj += ",0.0";
-                    zkl += ",0.0";
+
+                    //鍒ゆ柇涓氬姟鏃堕棿涓庡崟鎹彿鏄惁鍖归厤锛岃嫢涓嶅尮閰嶏紝鍒欐洿鏀逛笟鍔℃椂闂翠负鍗曟嵁鍙锋墍鍦ㄧ殑鏃堕棿
+                    SimpleDateFormat dateFormat = new SimpleDateFormat("yyMMdd");
+                    Date time = dateFormat.parse(apiData.getRkjydh().substring(2, 8));
+                    int numDay = DateUtil.difDay(DateUtil.getCurZero(sysData.getRegisterTime()), DateUtil.getCurZero(time));
+                    if(numDay != 0){
+                        sysData.setRegisterTime(DateUtils.addDays(sysData.getRegisterTime(), numDay));
+                    }
+
+                    apiData.setQysj(sysData.getRegisterTime());
+                    apiData.setQyrxm(sysData.getCheckUser());
+                    //鎵︽牱鏂瑰紡 2-鏅鸿兘闅忔満
+                    apiData.setQyfs("2");
+
+                    //妫�娴嬮」锛屾娴嬪�硷紝澧炴墸浠峰強澧炴墸閲�
+                    jyxm = "";
+                    jyz = "";
+                    zkj = "";
+                    zkl = "";
+                    for (Fz40CheckItem fz40CheckItem : fz40CheckItems) {
+                        gbCheckList = gbCheckItemRep.findByBizCode(fz40CheckItem.getStandardId());
+
+                        if (gbCheckList == null || gbCheckList.isEmpty()) {
+                            continue;
+                        }
+                        if (StringUtils.isEmpty(fz40CheckItem.getValue())) {
+                            continue;
+                        }
+                        jyxm += gbCheckList.get(0).getCode() + ",";
+                        jyz += fz40CheckItem.getValue() + ",";
+                        zkj += ",0.0";
+                        zkl += ",0.0";
+                    }
+
+                    apiData.setJyxm(jyxm);
+                    apiData.setJyz(jyz);
+                    apiData.setZkj(StringUtils.isEmpty(zkj)?"":zkj.substring(1));
+                    apiData.setZkl(StringUtils.isEmpty(zkl)?"":zkl.substring(1));
+                    if("UNPASS".equals(sysData.getCheckStatus())){
+                        apiData.setJyjg("0");
+                    }else {
+                        apiData.setJyjg("1");
+                    }
+                    apiData.setJyrxm(sysData.getCheckUser());
+                    apiData.setJysj(DateUtils.addMinutes(sysData.getRegisterTime(), 30));
+
+                    //绮鍝佺
+                    String mappingCode = apiTriggerService.getMappingCode(Constant.TRIGGER_P_LSPZ, sysData.getFoodVariety().substring(0,3));
+                    apiData.setLspzdm(mappingCode);
+
+                    //淇濈鍛樺鏍�
+                    apiData.setBgyfh(apiData.getJyjg());
+                    apiData.setSpaqzbsfhg("1");
+
+                    //绮绛夌骇
+                    mappingCode = apiTriggerService.getMappingCode(Constant.TRIGGER_P_LSDJ, sysData.getFoodLevel());
+                    apiData.setLsdd(mappingCode);
+
+                    //鎿嶄綔鏍囧織鍙婃渶鍚庢洿鏂版椂闂�
+                    apiData.setZhgxsj(sysData.getCompleteTime());
+
+                    //涓氬姟id銆佸簱鍖虹紪鐮併�佸悓姝ユ椂闂�
+                    apiData.setBizId(sysData.getId());
+                    apiData.setKqdm(kqdm);
+                    apiData.setSyncTime(new Date());
+
+                    api1203List = api1203Rep.getDataById(apiData.getRkjydh());
+                    if(null == api1203List || api1203List.isEmpty()){
+                        apiData.setCzbz(Constant.CZBZ_I);
+                    }else {
+                        apiData.setCzbz(api1203List.get(0).getCzbz());
+                    }
+
+                    api1203Rep.save(apiData);
+                    log.info("1203---鍚屾鏁版嵁锛歿}", apiData.toString());
                 }
-
-                apiData.setJyxm(jyxm);
-                apiData.setJyz(jyz);
-                apiData.setZkj(zkj.substring(1));
-                apiData.setZkl(zkl.substring(1));
-                if("UNPASS".equals(sysData.getCheckStatus())){
-                    apiData.setJyjg("0");
-                }
-                if("PASS".equals(sysData.getCheckStatus())){
-                    apiData.setJyjg("1");
-                }
-                apiData.setJyrxm(sysData.getCheckUser());
-                apiData.setJysj(DateUtils.addMinutes(sysData.getFullWeightTime(), 5));
-
-                //绮鍝佺
-                String mappingCode = apiTriggerService.getMappingCode(Constant.TRIGGER_P_LSPZ, sysData.getFoodVariety());
-                apiData.setLspzdm(mappingCode);
-
-                //绮瀹氱瓑
-
-                //淇濈鍛樺鏍�
-
-
-                //绮绛夌骇
-                mappingCode = apiTriggerService.getMappingCode(Constant.TRIGGER_P_LSDJ, sysData.getFoodLevel());
-                apiData.setLsdd(mappingCode);
-
-                //鎿嶄綔鏍囧織鍙婃渶鍚庢洿鏂版椂闂�
-                apiData.setZhgxsj(sysData.getCompleteTime());
-
-                //涓氬姟id銆佸簱鍖虹紪鐮併�佸悓姝ユ椂闂�
-                apiData.setBizId(sysData.getId());
-                apiData.setKqdm(kqdm);
-                apiData.setSyncTime(new Date());
-
-                api1203List = api1203Rep.getDataById(apiData.getRkjydh());
-                if(null == api1203List || api1203List.isEmpty()){
-                    apiData.setCzbz(Constant.CZBZ_I);
-                }else {
-                    apiData.setCzbz(api1203List.get(0).getCzbz());
-                }
-
-                //淇濆瓨鏁版嵁
-                api1203Rep.save(apiData);
-                log.info("1203---鍚屾鏁版嵁锛歿}", apiData.toString());
             }
         } catch (Exception e) {
             log.error("---鍚屾澶辫触----{}", e);

--
Gitblit v1.9.3