From d59b127388b6064fb01d6f28834d49e560257f2f Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期一, 14 十月 2024 17:01:57 +0800
Subject: [PATCH] #

---
 zy-acs-flow/src/map/constants.js                                                       |   11 +
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AgvDataService.java       |   48 ++++++
 zy-acs-flow/public/map/agv/ctuEmptyFullBattery.svg                                     |   36 +++++
 zy-acs-flow/public/map/agv/ctuEmptyHalfBattery.svg                                     |   36 +++++
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/domain/MapWsAgvVo.java            |    6 
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/MapDataWsScheduler.java |    5 
 zy-acs-flow/public/map/agv/ctuLoadedHalfBattery.svg                                    |   42 ++++++
 zy-acs-flow/public/map/agv/ctuLoadedNoBattery.svg                                      |   43 ++++++
 zy-acs-flow/src/map/tool.js                                                            |   98 ++++++++++++-
 zy-acs-flow/public/map/agv/ctuLoadedFullBattery.svg                                    |   42 ++++++
 zy-acs-flow/src/map/MapPage.jsx                                                        |    4 
 zy-acs-flow/public/map/agv/ctuEmptyNoBattery.svg                                       |   37 +++++
 12 files changed, 392 insertions(+), 16 deletions(-)

diff --git a/zy-acs-flow/public/map/agv/ctuEmptyFullBattery.svg b/zy-acs-flow/public/map/agv/ctuEmptyFullBattery.svg
new file mode 100644
index 0000000..9943124
--- /dev/null
+++ b/zy-acs-flow/public/map/agv/ctuEmptyFullBattery.svg
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg id="_鍥惧眰_2" data-name="鍥惧眰 2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 66.7 108.22">
+  <defs>
+    <style>
+      .cls-1 {
+        fill: #70b92f;
+      }
+
+      .cls-2 {
+        fill: #82e9f4;
+      }
+
+      .cls-3 {
+        fill: #5cbfcc;
+      }
+
+      .cls-4, .cls-5 {
+        fill: #eaeaea;
+      }
+
+      .cls-5 {
+        stroke: #4d9600;
+        stroke-miterlimit: 10;
+        stroke-width: 3.49px;
+      }
+    </style>
+  </defs>
+  <g id="_鍥惧眰_1-2" data-name="鍥惧眰 1">
+    <rect class="cls-3" x="5.3" y="7" width="56.1" height="97.85" rx="5.58" ry="5.58"/>
+    <rect class="cls-2" x="10.6" width="45.5" height="39" rx="10.53" ry="10.53"/>
+    <rect class="cls-5" x="10.49" y="9.5" width="45" height="23" rx="2.57" ry="2.57"/>
+    <rect class="cls-4" x="11.74" y="70.21" width="43.23" height="38.01" rx="2.53" ry="2.53"/>
+    <rect class="cls-2" x="0" y="41.63" width="66.7" height="34.34" rx="8.19" ry="8.19"/>
+    <rect class="cls-1" x="15.16" y="14" width="35.39" height="14"/>
+  </g>
+</svg>
\ No newline at end of file
diff --git a/zy-acs-flow/public/map/agv/ctuEmptyHalfBattery.svg b/zy-acs-flow/public/map/agv/ctuEmptyHalfBattery.svg
new file mode 100644
index 0000000..8b5526a
--- /dev/null
+++ b/zy-acs-flow/public/map/agv/ctuEmptyHalfBattery.svg
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg id="_鍥惧眰_2" data-name="鍥惧眰 2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 66.7 108.22">
+  <defs>
+    <style>
+      .cls-1 {
+        fill: #70b92f;
+      }
+
+      .cls-2 {
+        fill: #82e9f4;
+      }
+
+      .cls-3 {
+        fill: #5cbfcc;
+      }
+
+      .cls-4, .cls-5 {
+        fill: #eaeaea;
+      }
+
+      .cls-5 {
+        stroke: #4d9600;
+        stroke-miterlimit: 10;
+        stroke-width: 3.49px;
+      }
+    </style>
+  </defs>
+  <g id="_鍥惧眰_1-2" data-name="鍥惧眰 1">
+    <rect class="cls-3" x="5.3" y="7" width="56.1" height="97.85" rx="5.58" ry="5.58"/>
+    <rect class="cls-2" x="10.6" width="45.5" height="39" rx="10.53" ry="10.53"/>
+    <rect class="cls-5" x="10.49" y="9.5" width="45" height="23" rx="2.57" ry="2.57"/>
+    <rect class="cls-4" x="11.74" y="70.21" width="43.23" height="38.01" rx="2.53" ry="2.53"/>
+    <rect class="cls-2" x="0" y="41.63" width="66.7" height="34.34" rx="8.19" ry="8.19"/>
+    <rect class="cls-1" x="15.16" y="14" width="17.83" height="14"/>
+  </g>
+</svg>
\ No newline at end of file
diff --git a/zy-acs-flow/public/map/agv/ctuEmptyNoBattery.svg b/zy-acs-flow/public/map/agv/ctuEmptyNoBattery.svg
new file mode 100644
index 0000000..eb541a1
--- /dev/null
+++ b/zy-acs-flow/public/map/agv/ctuEmptyNoBattery.svg
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg id="_鍥惧眰_2" data-name="鍥惧眰 2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 66.7 108.22">
+  <defs>
+    <style>
+      .cls-1 {
+        stroke: #e50012;
+        stroke-miterlimit: 10;
+        stroke-width: 3.49px;
+      }
+
+      .cls-1, .cls-2 {
+        fill: #eaeaea;
+      }
+
+      .cls-3 {
+        fill: #82e9f4;
+      }
+
+      .cls-4 {
+        fill: #5cbfcc;
+      }
+
+      .cls-5 {
+        font-family: huxiaobo-gdh, huxiaobo-gdh;
+        font-size: 26.52px;
+      }
+    </style>
+  </defs>
+  <g id="_鍥惧眰_1-2" data-name="鍥惧眰 1">
+    <rect class="cls-4" x="5.3" y="7" width="56.1" height="97.85" rx="5.58" ry="5.58"/>
+    <rect class="cls-3" x="10.6" width="45.5" height="39" rx="10.53" ry="10.53"/>
+    <rect class="cls-1" x="10.85" y="9.5" width="45" height="23" rx="2.57" ry="2.57"/>
+    <rect class="cls-2" x="11.74" y="70.21" width="43.23" height="38.01" rx="2.53" ry="2.53"/>
+    <rect class="cls-3" x="0" y="41.63" width="66.7" height="34.34" rx="8.19" ry="8.19"/>
+    <text class="cls-5" transform="translate(25.56 30.78) scale(.71 1)"><tspan x="0" y="0">锛�</tspan></text>
+  </g>
+</svg>
\ No newline at end of file
diff --git a/zy-acs-flow/public/map/agv/ctuLoadedFullBattery.svg b/zy-acs-flow/public/map/agv/ctuLoadedFullBattery.svg
new file mode 100644
index 0000000..3cbc57d
--- /dev/null
+++ b/zy-acs-flow/public/map/agv/ctuLoadedFullBattery.svg
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg id="_鍥惧眰_2" data-name="鍥惧眰 2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 66.7 108.22">
+  <defs>
+    <style>
+      .cls-1 {
+        fill: #70b92f;
+      }
+
+      .cls-2 {
+        fill: #82e9f4;
+      }
+
+      .cls-3 {
+        fill: #5cbfcc;
+      }
+
+      .cls-4 {
+        fill: #deaf76;
+      }
+
+      .cls-5, .cls-6 {
+        fill: #eaeaea;
+      }
+
+      .cls-6 {
+        stroke: #4d9600;
+        stroke-miterlimit: 10;
+        stroke-width: 3.49px;
+      }
+    </style>
+  </defs>
+  <g id="_鍥惧眰_1-2" data-name="鍥惧眰 1">
+    <rect class="cls-3" x="5.3" y="7" width="56.1" height="97.85" rx="5.58" ry="5.58"/>
+    <rect class="cls-2" x="10.6" width="45.5" height="39" rx="10.53" ry="10.53"/>
+    <rect class="cls-6" x="10.49" y="9.5" width="45" height="23" rx="2.57" ry="2.57"/>
+    <rect class="cls-5" x="11.74" y="70.21" width="43.23" height="38.01" rx="2.53" ry="2.53"/>
+    <rect class="cls-4" x="14.65" y="90" width="37.83" height="14.77" rx="1.59" ry="1.59"/>
+    <rect class="cls-4" x="14.65" y="72.06" width="37.83" height="14.77" rx="1.59" ry="1.59"/>
+    <rect class="cls-2" x="0" y="41.63" width="66.7" height="34.34" rx="8.19" ry="8.19"/>
+    <rect class="cls-1" x="15.16" y="14" width="35.39" height="14"/>
+  </g>
+</svg>
\ No newline at end of file
diff --git a/zy-acs-flow/public/map/agv/ctuLoadedHalfBattery.svg b/zy-acs-flow/public/map/agv/ctuLoadedHalfBattery.svg
new file mode 100644
index 0000000..34940d0
--- /dev/null
+++ b/zy-acs-flow/public/map/agv/ctuLoadedHalfBattery.svg
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg id="_鍥惧眰_2" data-name="鍥惧眰 2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 66.7 108.22">
+  <defs>
+    <style>
+      .cls-1 {
+        fill: #70b92f;
+      }
+
+      .cls-2 {
+        fill: #82e9f4;
+      }
+
+      .cls-3 {
+        fill: #5cbfcc;
+      }
+
+      .cls-4 {
+        fill: #deaf76;
+      }
+
+      .cls-5, .cls-6 {
+        fill: #eaeaea;
+      }
+
+      .cls-6 {
+        stroke: #4d9600;
+        stroke-miterlimit: 10;
+        stroke-width: 3.49px;
+      }
+    </style>
+  </defs>
+  <g id="_鍥惧眰_1-2" data-name="鍥惧眰 1">
+    <rect class="cls-3" x="5.3" y="7" width="56.1" height="97.85" rx="5.58" ry="5.58"/>
+    <rect class="cls-2" x="10.6" width="45.5" height="39" rx="10.53" ry="10.53"/>
+    <rect class="cls-6" x="10.49" y="9.5" width="45" height="23" rx="2.57" ry="2.57"/>
+    <rect class="cls-5" x="11.74" y="70.21" width="43.23" height="38.01" rx="2.53" ry="2.53"/>
+    <rect class="cls-4" x="14.65" y="90" width="37.83" height="14.77" rx="1.59" ry="1.59"/>
+    <rect class="cls-4" x="14.65" y="72.06" width="37.83" height="14.77" rx="1.59" ry="1.59"/>
+    <rect class="cls-2" x="0" y="41.63" width="66.7" height="34.34" rx="8.19" ry="8.19"/>
+    <rect class="cls-1" x="15.16" y="14" width="17.83" height="14"/>
+  </g>
+</svg>
\ No newline at end of file
diff --git a/zy-acs-flow/public/map/agv/ctuLoadedNoBattery.svg b/zy-acs-flow/public/map/agv/ctuLoadedNoBattery.svg
new file mode 100644
index 0000000..1e7691e
--- /dev/null
+++ b/zy-acs-flow/public/map/agv/ctuLoadedNoBattery.svg
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg id="_鍥惧眰_2" data-name="鍥惧眰 2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 66.7 108.22">
+  <defs>
+    <style>
+      .cls-1 {
+        stroke: #e50012;
+        stroke-miterlimit: 10;
+        stroke-width: 3.49px;
+      }
+
+      .cls-1, .cls-2 {
+        fill: #eaeaea;
+      }
+
+      .cls-3 {
+        fill: #82e9f4;
+      }
+
+      .cls-4 {
+        fill: #5cbfcc;
+      }
+
+      .cls-5 {
+        fill: #deaf76;
+      }
+
+      .cls-6 {
+        font-family: huxiaobo-gdh, huxiaobo-gdh;
+        font-size: 26.52px;
+      }
+    </style>
+  </defs>
+  <g id="_鍥惧眰_1-2" data-name="鍥惧眰 1">
+    <rect class="cls-4" x="5.3" y="7" width="56.1" height="97.85" rx="5.58" ry="5.58"/>
+    <rect class="cls-3" x="10.6" width="45.5" height="39" rx="10.53" ry="10.53"/>
+    <rect class="cls-1" x="10.85" y="9.5" width="45" height="23" rx="2.57" ry="2.57"/>
+    <rect class="cls-2" x="11.74" y="70.21" width="43.23" height="38.01" rx="2.53" ry="2.53"/>
+    <rect class="cls-5" x="14.43" y="91" width="37.83" height="14.77" rx="1.59" ry="1.59"/>
+    <rect class="cls-5" x="14.43" y="73.06" width="37.83" height="14.77" rx="1.59" ry="1.59"/>
+    <rect class="cls-3" x="0" y="41.63" width="66.7" height="34.34" rx="8.19" ry="8.19"/>
+    <text class="cls-6" transform="translate(25.56 30.81) scale(.71 1)"><tspan x="0" y="0">锛�</tspan></text>
+  </g>
+</svg>
\ No newline at end of file
diff --git a/zy-acs-flow/src/map/MapPage.jsx b/zy-acs-flow/src/map/MapPage.jsx
index 17a7f13..1d34847 100644
--- a/zy-acs-flow/src/map/MapPage.jsx
+++ b/zy-acs-flow/src/map/MapPage.jsx
@@ -84,8 +84,8 @@
 
             await Http.fetchMapData();
             websocket.connect();
-            websocket.onMessage = (data) => {
-                Tool.generateDynamicGraphic(curZone, data);
+            websocket.onMessage = (wsMsg) => {
+                Tool.generateDynamicGraphic(curZone, JSON.parse(wsMsg));
             }
 
             setTimeout(() => {
diff --git a/zy-acs-flow/src/map/constants.js b/zy-acs-flow/src/map/constants.js
index 2256db6..00b8c0e 100644
--- a/zy-acs-flow/src/map/constants.js
+++ b/zy-acs-flow/src/map/constants.js
@@ -22,6 +22,15 @@
     CHARGE: 1,
     DIRECTION: 1,
 
-    AGV: 2,
+    AGV: 3,
     POINT: 2,
 })
+
+export const AGV_STATUS_MODE = Object.freeze({
+    EMPTY_NO_BATTERY: 1,
+    EMPTY_HALF_BATTERY: 2,
+    EMPTY_FULL_BATTERY: 3,
+    LOADED_NO_BATTERY: 4,
+    LOADED_HALF_BATTERY: 5,
+    LOADED_FULL_BATTERY: 6,
+})
\ No newline at end of file
diff --git a/zy-acs-flow/src/map/tool.js b/zy-acs-flow/src/map/tool.js
index 2aafe7c..18ba33e 100644
--- a/zy-acs-flow/src/map/tool.js
+++ b/zy-acs-flow/src/map/tool.js
@@ -3,6 +3,7 @@
 import {
     DEVICE_TYPE,
     DEVICE_Z_INDEX,
+    AGV_STATUS_MODE,
 } from './constants';
 
 import shelf from '/map/shelf.svg';
@@ -10,6 +11,13 @@
 import station from '/map/station.svg';
 import direction from '/map/direction.svg';
 import point from '/map/point.svg';
+// agv
+import ctuEmptyNoBattery from '/map/agv/ctuEmptyNoBattery.svg';
+import ctuEmptyHalfBattery from '/map/agv/ctuEmptyHalfBattery.svg';
+import ctuEmptyFullBattery from '/map/agv/ctuEmptyFullBattery.svg';
+import ctuLoadedNoBattery from '/map/agv/ctuLoadedNoBattery.svg';
+import ctuLoadedHalfBattery from '/map/agv/ctuLoadedHalfBattery.svg';
+import ctuLoadedFullBattery from '/map/agv/ctuLoadedFullBattery.svg';
 
 let app, mapContainer, themeMode;
 let selectedSprite, effectTick, effectHalfCircle, effectRectangle;
@@ -47,7 +55,7 @@
     }
 }
 
-export const generateSprite = (deviceType) => {
+export const generateSprite = (deviceType, source) => {
     let sprite;
     switch (deviceType) {
         case DEVICE_TYPE.SHELF:
@@ -75,6 +83,15 @@
             sprite.zIndex = DEVICE_Z_INDEX.DIRECTION;
             break;
 
+
+        case DEVICE_TYPE.AGV:
+            if (source) {
+                sprite = new PIXI.Sprite(PIXI.Texture.from(source, { resourceOptions: { scale: 1 } }));
+            }
+            sprite.width = 300;
+            sprite.height = 500;
+            sprite.zIndex = DEVICE_Z_INDEX.AGV;
+            break
         case DEVICE_TYPE.POINT:
             sprite = new PIXI.Sprite(PIXI.Texture.from(point, { resourceOptions: { scale: 1 } }));
             // sprite.width = 112;
@@ -99,6 +116,17 @@
         type: type,
         uuid: generateID()
     };
+}
+
+export const querySprite = (type, no) => {
+    if (!mapContainer) {
+        return;
+    }
+    for (const sprite of mapContainer.children) {
+        if (sprite.data?.type === type && sprite.data?.no === no) {
+            return sprite;
+        }
+    }
 }
 
 export const markSprite = (sprite) => {
@@ -379,23 +407,71 @@
 }
 
 
+// service ------------------------
 
+export const getAgvStatusMode = (backpack, battery) => {
+    if (backpack === 0) {
+        if (battery < 10) {
+            return AGV_STATUS_MODE.EMPTY_NO_BATTERY;
+        }
+        if (battery < 80) {
+            return AGV_STATUS_MODE.EMPTY_HALF_BATTERY;
+        }
+        return AGV_STATUS_MODE.EMPTY_FULL_BATTERY;
+    } else {
+        if (battery < 10) {
+            return AGV_STATUS_MODE.LOADED_NO_BATTERY;
+        }
+        if (battery < 80) {
+            return AGV_STATUS_MODE.LOADED_HALF_BATTERY;
+        }
+        return AGV_STATUS_MODE.LOADED_FULL_BATTERY;
+    }
+}
 
-
-
-
-
-
-
-
-
+export const generateAgvSpriteTexture = (agvStatusMode) => {
+    switch (agvStatusMode) {
+        case AGV_STATUS_MODE.EMPTY_NO_BATTERY:
+            return ctuEmptyNoBattery;
+        case AGV_STATUS_MODE.EMPTY_HALF_BATTERY:
+            return ctuEmptyHalfBattery;
+        case AGV_STATUS_MODE.EMPTY_FULL_BATTERY:
+            return ctuEmptyFullBattery;
+        case AGV_STATUS_MODE.LOADED_NO_BATTERY:
+            return ctuLoadedNoBattery;
+        case AGV_STATUS_MODE.LOADED_HALF_BATTERY:
+            return ctuLoadedHalfBattery;
+        case AGV_STATUS_MODE.LOADED_FULL_BATTERY:
+            return ctuLoadedFullBattery;
+        default:
+            return;
+    }
+}
 
 
 // dynamic graphic ----------------
 
 export const generateDynamicGraphic = (curZone, data) => {
+    console.log("ws", curZone, data);
 
-    const dynamicData = JSON.parse(data);
-    console.log("ws", curZone, dynamicData);
+    for (const agvVo of data.agvVos) {
+        showAgvSprite(curZone, agvVo)
+    }
 
+}
+
+const showAgvSprite = (curZone, agvVo) => {
+    const { agvNo, code, direction, backpack, battery, ...rest } = agvVo;
+    if (!code) { return }
+    const codeSprite = querySprite(DEVICE_TYPE.POINT, code);
+    if (!codeSprite) { return }
+    let agvSprite = querySprite(DEVICE_TYPE.AGV, agvNo);
+    if (!agvSprite) {
+        agvSprite = generateSprite(DEVICE_TYPE.AGV, generateAgvSpriteTexture(getAgvStatusMode(backpack, battery)));
+        initSprite(agvSprite, DEVICE_TYPE.AGV);
+        agvSprite.data.no = agvNo;
+        agvSprite.position.set(codeSprite.position.x, codeSprite.position.y);
+        mapContainer.addChild(agvSprite);
+        // viewFeature(shuttle, setCurSPrite); // todo
+    }
 }
\ No newline at end of file
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/domain/MapWsAgvVo.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/domain/MapWsAgvVo.java
index ff37c36..08adcab 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/domain/MapWsAgvVo.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/domain/MapWsAgvVo.java
@@ -12,4 +12,10 @@
 
     private String code;
 
+    private Double direction = 0.0;
+
+    private Integer backpack = 0;
+
+    private Double battery;
+
 }
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/MapDataWsScheduler.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/MapDataWsScheduler.java
index 84b7755..7a3095b 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/MapDataWsScheduler.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/MapDataWsScheduler.java
@@ -52,8 +52,9 @@
             MapWsAgvVo vo = new MapWsAgvVo();
             vo.setAgvNo(agv.getUuid());
             vo.setCode(code.getData());
-
-
+            vo.setDirection(agvDetail.getAgvAngle());
+            vo.setBackpack(agvDetail.getTempQua());
+            vo.setBattery(vo.getBattery());
             agvVos.add(vo);
         }
 
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AgvDataService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AgvDataService.java
index b98d2ab..1371a0a 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AgvDataService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AgvDataService.java
@@ -166,6 +166,30 @@
 
         detail.setSensorSts((long) mesBody.getSensorStatusFlags());
 
+        int tempQua = 0;
+        if (mesBody.isTempLoc1()) {
+            tempQua ++;
+        }
+        if (mesBody.isTempLoc2()) {
+            tempQua ++;
+        }
+        if (mesBody.isTempLoc3()) {
+            tempQua ++;
+        }
+        if (mesBody.isTempLoc4()) {
+            tempQua ++;
+        }
+        if (mesBody.isTempLoc5()) {
+            tempQua ++;
+        }
+        if (mesBody.isTempLoc6()) {
+            tempQua ++;
+        }
+        if (mesBody.isTempLoc7()) {
+            tempQua ++;
+        }
+        detail.setTempQua(tempQua);
+
     }
 
     // 鏃犵爜瀹炴椂鏁版嵁鍖�
@@ -194,6 +218,30 @@
 
         detail.setSensorSts((long) mesBody.getSensorStatusFlags());
 
+        int tempQua = 0;
+        if (mesBody.isTempLoc1()) {
+            tempQua ++;
+        }
+        if (mesBody.isTempLoc2()) {
+            tempQua ++;
+        }
+        if (mesBody.isTempLoc3()) {
+            tempQua ++;
+        }
+        if (mesBody.isTempLoc4()) {
+            tempQua ++;
+        }
+        if (mesBody.isTempLoc5()) {
+            tempQua ++;
+        }
+        if (mesBody.isTempLoc6()) {
+            tempQua ++;
+        }
+        if (mesBody.isTempLoc7()) {
+            tempQua ++;
+        }
+        detail.setTempQua(tempQua);
+
     }
 
     // 蹇冭烦鍖�

--
Gitblit v1.9.1