From 029de836702607a95ccb0a69a74efcea52ddc451 Mon Sep 17 00:00:00 2001
From: czt <czt18638530771@163.com>
Date: 星期四, 25 九月 2025 19:35:38 +0800
Subject: [PATCH] 上海对农数据接口调整2

---
 src/main/java/com/fzzy/async/fzzy61/impl/Fzzy61Sync1302.java |  284 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 284 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/fzzy/async/fzzy61/impl/Fzzy61Sync1302.java b/src/main/java/com/fzzy/async/fzzy61/impl/Fzzy61Sync1302.java
new file mode 100644
index 0000000..7747828
--- /dev/null
+++ b/src/main/java/com/fzzy/async/fzzy61/impl/Fzzy61Sync1302.java
@@ -0,0 +1,284 @@
+package com.fzzy.async.fzzy61.impl;
+
+import com.fzzy.api.Constant;
+import com.fzzy.api.entity.Api1105;
+import com.fzzy.api.entity.Api1302;
+import com.fzzy.api.entity.ApiLog;
+import com.fzzy.api.service.ApiCommonService;
+import com.fzzy.api.utils.ContextUtil;
+import com.fzzy.api.view.repository.Api1302Rep;
+import com.fzzy.api.view.repository.ApiLogRep;
+import com.fzzy.async.fzzy61.entity.Fz61Grain;
+import com.fzzy.async.fzzy61.repository.Fzzy61Sync1302Rep;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+
+
+/**
+ * 娓╂箍搴︽娴嬫暟鎹悓姝�
+ *
+ * @author czt
+ * @date 2022-09-07 14:41
+ */
+@Slf4j
+@Component
+public class Fzzy61Sync1302 {
+
+    @Autowired
+    private Fzzy61Sync1302Rep fzzySync1302Rep;
+    @Autowired
+    private ApiCommonService commonService;
+    @Autowired
+    private Api1302Rep api1302Rep;
+    @Autowired
+    private ApiLogRep apiLogRep;
+
+
+    /**
+     * 鍚屾骞跺皝瑁呬繚瀛樻俯婀垮害妫�娴嬫暟鎹�
+     *
+     * @param deptId 绯荤粺瀵瑰簲搴撳尯缂栫爜
+     * @param start  璧峰鏃堕棿
+     * @param end    鎴鏃堕棿
+     */
+    public void syncData(String kqdm, String deptId, Date start, Date end) {
+
+        log.info("-------------1302鎺ュ彛娓╂箍搴︽暟鎹紑濮嬪悓姝�------------------");
+        //鍚屾鏁版嵁锛屽彧璁板綍澶辫触鐨勪俊鎭�
+        ApiLog apiLog = new ApiLog();
+        apiLog.setType(ApiLog.TYPE_SYNC);
+        apiLog.setKqdm(deptId);
+        apiLog.setUploadTime(new Date());
+        apiLog.setInteId(Constant.API_CODE_1302);
+        apiLog.setStatus(99);
+        apiLog.setId(ContextUtil.getUUID());
+        try {
+            List<Fz61Grain> list = fzzySync1302Rep.findByReceiveDate(start, end);
+
+            if (null == list || list.isEmpty()) {
+                log.info("1302娓╂箍搴�---鍚屾鏁版嵁锛氭病鏈夋煡璇㈠埌闇�瑕佸悓姝ョ殑鏁版嵁");
+                return;
+            }
+
+            Date syncTime = new Date();
+            Api1302 api1302;
+            Api1105 api1105;
+            List<Api1302> api1302List;
+            for (Fz61Grain fz61Grain : list) {
+                //鑾峰彇璐т綅淇℃伅
+                api1105 = commonService.getApi1105Cache(fz61Grain.getDepotId());
+                if (null == api1105) {
+                    continue;
+                }
+
+                //鐢辫揣浣嶄唬鐮�+妫�娴嬫棩鏈�     锛坹yyyMMdd锛� +4 浣嶉『搴忓彿缁勬垚  --2019 1128 0819
+                api1302 = new Api1302();
+                api1302.setWsdjcdh(api1105.getHwdm() + fz61Grain.getBatchId());
+                api1302.setJcsj(fz61Grain.getReceiveDate());
+                api1302.setHwdm(api1105.getHwdm());
+
+                api1302.setCfww(fz61Grain.getTempOut() == null ? 0.00 : fz61Grain.getTempOut());
+                if (null == fz61Grain.getHumidityOut() || fz61Grain.getHumidityOut() < 0) {
+                    api1302.setCfws(-1);
+                } else {
+                    api1302.setCfws(fz61Grain.getHumidityOut());
+                }
+
+                api1302.setCfnw(fz61Grain.getTempIn() == null ? 0.00 : fz61Grain.getTempIn());
+                if (null == fz61Grain.getHumidityIn() || fz61Grain.getHumidityIn() < 0) {
+                    api1302.setCfns(0);
+                } else {
+                    api1302.setCfns(fz61Grain.getHumidityIn());
+                }
+
+                api1302.setLszgw(fz61Grain.getTempMax() == null ? 0.00 : fz61Grain.getTempMax());
+                api1302.setLspjw(fz61Grain.getTempAve() == null ? 0.00 : fz61Grain.getTempAve());
+                api1302.setLszdw(fz61Grain.getTempMin() == null ? 0.00 : fz61Grain.getTempMin());
+
+                //鍒ゆ柇绮鏈�浣庢俯銆佸钩鍧囨俯銆佹渶楂樻俯鏄惁绗﹀悎閫昏緫
+                if (api1302.getLszdw() >= api1302.getLspjw()) {
+                    continue;
+                }
+                if (api1302.getLspjw() >= api1302.getLszgw()) {
+                    continue;
+                }
+
+                //娓╁害闆嗗悎
+                if (StringUtils.isEmpty(fz61Grain.getCableCir())) {
+                    api1302.setLswdzjh(getTempPointList1(fz61Grain.getPoints(), fz61Grain.getCable()));
+                    api1302.setLssdzjh(getHumPointList1(fz61Grain.getPoints(), fz61Grain.getCable()));
+                    if(StringUtils.isEmpty(api1302.getLswdzjh())){
+                        continue;
+                    }
+                    if(StringUtils.isEmpty(api1302.getLssdzjh())){
+                        continue;
+                    }
+                } else {
+                    api1302.setLswdzjh(getTempPointList2(fz61Grain.getPoints(), fz61Grain.getCable(), fz61Grain.getCableCir()));
+                    api1302.setLssdzjh(getHumPointList2(fz61Grain.getPoints(), fz61Grain.getCable(), fz61Grain.getCableCir()));
+                    if(StringUtils.isEmpty(api1302.getLswdzjh())){
+                        continue;
+                    }
+                    if(StringUtils.isEmpty(api1302.getLssdzjh())){
+                        continue;
+                    }
+                }
+
+                api1302.setZhgxsj(new Date());
+
+                api1302.setBizId(fz61Grain.getBatchId());
+                api1302.setKqdm(api1105.getKqdm());
+                api1302.setSyncTime(syncTime);
+                api1302List = api1302Rep.getDataByWsdjcdh(api1302.getWsdjcdh());
+                if (null == api1302List || api1302List.isEmpty()) {
+                    api1302.setCzbz(Constant.CZBZ_I);
+                } else {
+                    api1302.setCzbz(api1302List.get(0).getCzbz());
+                }
+                log.info("1302娓╂箍搴�---鍚屾鏁版嵁锛�" + api1302.toString());
+                api1302Rep.save(api1302);
+            }
+
+        } catch (Exception e) {
+            log.error("---鍚屾澶辫触----{}", e.toString());
+            apiLog.setResult("鍚屾澶辫触锛�" + e.getMessage());
+            apiLogRep.save(apiLog);
+        }
+
+    }
+
+    public static void main(String[] args) {
+        String point = "31.8,20.0,15.1,18.6,28.2,14.3,11.3,16.1,28.1,15.6,13.3,18.4,28.8,16.6,10.2,14.4,27.8,14.3,10.8,16.0,27.5,14.5,11.7,17.1,26.5,13.6,10.1,15.0,29.7,17.4,13.8,17.8,29.7,18.6,15.0,18.6,26.4,13.5,9.2,13.1,27.6,11.8,8.9,13.5,28.1,12.0,8.6,12.8,27.8,11.6,7.6,12.4,26.1,10.8,7.5,12.6,27.8,10.3,7.1,12.0,26.1,11.3,8.5,12.7,28.6,16.9,12.9,17.7,29.1,12.3,8.8,12.1,27.4,11.9,8.6,12.8,29.0,11.5,7.6,11.1,26.9,10.2,8.0,12.7,27.0,9.6,7.7,13.5,26.7,9.5,7.1,12.3,26.3,10.7,8.4,13.4,27.6,15.9,11.5,15.8,28.7,12.6,8.7,12.2,28.1,12.2,8.8,12.5,30.3,11.9,8.0,12.0,27.9,11.1,7.8,11.5,26.3,10.1,7.8,12.0,27.2,10.5,6.9,11.1,27.1,11.6,9.5,13.6,27.4,14.8,10.7,16.6,27.7,12.4,9.1,13.0,27.7,13.2,9.0,12.8,27.5,12.1,8.1,12.6,26.6,11.8,7.3,12.3,26.8,10.5,8.0,13.3,26.3,11.0,7.6,12.5,26.1,10.6,8.5,13.5,29.8,21.3,15.5,17.8,28.3,18.2,11.6,12.8,29.4,17.4,13.0,16.1,28.4,22.3,14.6,15.4,28.7,17.5,11.8,15.2,26.5,14.6,10.9,14.8,27.8,15.3,10.3,14.8,27.6,16.7,13.6,17.4";
+        String cable = "4-6-8";
+        String tempPointList1 = getTempPointList1(point, cable);
+        System.out.println(tempPointList1);
+    }
+
+    /**
+     * 鑾峰彇骞虫柟浠撶殑娓╁害鍊奸泦鍚堬紝鏍煎紡锛氭俯搴﹀��,灞傛暟,琛屾暟,鍒楁暟|娓╁害鍊�,灞傛暟,琛屾暟,鍒楁暟|娓╁害鍊�,灞傛暟,琛屾暟,鍒楁暟
+     *
+     * @return
+     */
+    private static String getTempPointList1(String point, String cable) {
+        String[] cab = cable.split("-");
+        int c = Integer.valueOf(cab[0]);
+        int h = Integer.valueOf(cab[1]);
+        int l = Integer.valueOf(cab[2]);
+
+        String[] points = point.split(",");
+        String result = "";
+        if (c * h * l > points.length) {
+            return result;
+        }
+        for (int i = 1; i <= l; i++) {
+            for (int j = 1; j <= h; j++) {
+                for (int z = 1; z <= c; z++) {
+                    result += ("|" + points[((i-1)*h+j-1)*c + z -1] + "," + z + "," + j + "," + i);
+                }
+            }
+        }
+        if(result.length() > 0){
+            result = result.substring(1);
+        }
+        return result;
+    }
+
+    /**
+     * 鑾峰彇绛掍粨鐨勬俯搴﹀�奸泦鍚堬紝鏍煎紡锛氭俯搴﹀��,鍦堟暟,鐐规暟,灞傛暟|娓╁害鍊�,鍦堟暟,鐐规暟,灞傛暟|娓╁害鍊�,鍦堟暟,鐐规暟,灞傛暟
+     *
+     * @return
+     */
+    private String getTempPointList2(String point, String cable, String cableCir) {
+        String[] cab = cable.split("-");
+        String[] cabCir = cableCir.split("-");
+
+        int q = cab.length;  //鍦堟暟
+        int c = Integer.valueOf(cabCir[0]);  //灞傛暟
+        int g = 0;  //鍦堟牴鏁�
+        int g1 = 1;  //鍦堣捣濮嬫牴鏁�
+        int g2 = 0;  //鍦堟埅姝㈡牴鏁�
+
+        String[] points = point.split(",");
+        String result = "";
+        for (int i = 1; i <= q; i++) {
+            g1 += g2;
+            g = Integer.valueOf(cab[i - 1]);
+            g2 += g;
+            for (int j = g1; j <= g2; j++) {
+                for (int z = 1; z <= c; z++) {
+                    result += ("|" + points[(j - 1) * c + z - 1] + "," + i + "," + j + "," + z);
+                }
+            }
+
+        }
+        if(result.length() > 0){
+            result = result.substring(1);
+        }
+        return result;
+    }
+
+    /**
+     * 鑾峰彇骞虫柟浠撶殑婀垮害鍊奸泦鍚堬紝鏍煎紡锛氭箍搴�,灞傛暟,琛屾暟,鍒楁暟|婀垮害,灞傛暟,琛屾暟,鍒楁暟|婀垮害,灞傛暟,琛屾暟,鍒楁暟
+     *
+     * @return
+     */
+    private String getHumPointList1(String point, String cable) {
+        String[] cab = cable.split("-");
+        int c = Integer.valueOf(cab[0]);
+        int h = Integer.valueOf(cab[1]);
+        int l = Integer.valueOf(cab[2]);
+
+        // String[] points = point.split(",");
+        String result = "";
+        for (int i = 1; i <= l; i++) {
+            for (int j = 1; j <= h; j++) {
+                for (int z = 1; z <= c; z++) {
+                    result += ("|" + "-1" + "," + z + "," + j + "," + i);
+                }
+            }
+        }
+        if(result.length() > 0){
+            result = result.substring(1);
+        }
+        return result;
+    }
+
+    /**
+     * 鑾峰彇绛掍粨鐨勬箍搴﹀�奸泦鍚堬紝鏍煎紡锛氭箍搴�,鍦堟暟,鐐规暟,灞傛暟|婀垮害,鍦堟暟,鐐规暟,灞傛暟|婀垮害,鍦堟暟,鐐规暟,灞傛暟
+     *
+     * @return
+     */
+    private String getHumPointList2(String point, String cable, String cableCir) {
+        String[] cab = cable.split("-");
+        String[] cabCir = cableCir.split("-");
+
+        int q = cab.length;  //鍦堟暟
+        int c = Integer.valueOf(cabCir[0]);  //灞傛暟
+        int g = 0;  //鍦堟牴鏁�
+        int g1 = 1;  //鍦堣捣濮嬫牴鏁�
+        int g2 = 0;  //鍦堟埅姝㈡牴鏁�
+
+        //  String[] points = point.split(",");
+        String result = "";
+        for (int i = 1; i <= q; i++) {
+            g1 += g2;
+            g = Integer.valueOf(cab[i - 1]);
+            g2 += g;
+            for (int j = g1; j <= g2; j++) {
+                for (int z = 1; z <= c; z++) {
+                    result += ("|" + "-1" + "," + i + "," + j + "," + z);
+                }
+            }
+
+        }
+        if(result.length() > 0){
+            result = result.substring(1);
+        }
+        return result;
+    }
+}

--
Gitblit v1.9.3