igds-basic/src/main/java/com/ld/igds/grain/manager/GrainManager.java
@@ -810,15 +810,19 @@ GrainData grainData; Building building; String height; Double length; //ç´å¾ Double diameter; Double bulkWeight; Double storage = 0.0; Double volume = 0.0; Double deVolume; for (Depot depot : depotList) { //è·å仿¿ä¿¡æ¯ï¼è®¾ç½®å»ºçé«åº¦ height = null; //è·å仿¿ç´å¾ length = 0.0; diameter = 0.0; deVolume = 0.0; //容é bulkWeight = depot.getBulkWeight(); grainData = coreGrainService.listLiquidHeight(companyId, depot.getId()); @@ -833,7 +837,10 @@ height = building.getHeight() + ""; } if (null != building.getLength()) { length = building.getLength(); diameter = building.getLength(); } if (null != building.getDeVolume()) { deVolume = building.getDeVolume(); } } } @@ -842,7 +849,9 @@ grainData.setDepotHeight(height); if (null != bulkWeight && StringUtils.isNotEmpty(grainData.getOilHeight())) { Double oilHeight = Double.valueOf(grainData.getOilHeight()); storage = 3.14 * Math.pow(length / 2, 2) * oilHeight * bulkWeight; //计ç®ä½ç§¯ volume = 3.14 * Math.pow(diameter / 2, 2) * oilHeight - deVolume; storage = volume * bulkWeight; } grainData.setStorage(storage); igds-core/src/main/java/com/ld/igds/models/Building.java
@@ -72,6 +72,10 @@ @PropertyDef(label = "çä»ä½ç§¯", description = "åä½ï¼ç«æ¹ç±³") private Double volume; @Column(name = "DE_VOLUME_", precision = 16, scale = 2) @PropertyDef(label = "æ£é¤ä½ç§¯", description = "åä½ï¼ç«æ¹ç±³") private Double deVolume; @Column(name = "DOOR_NUM_") @PropertyDef(label = "ä»é¨æ°") private Integer doorNum; igds-core/src/main/java/com/ld/igds/view/Building.view.xml
@@ -83,6 +83,10 @@ <Property name="property">height</Property> <Property name="align">center</Property> </DataColumn> <DataColumn name="diameter"> <Property name="property">diameter</Property> <Property name="align">center</Property> </DataColumn> <DataColumn> <Property name="property">ground</Property> <Property name="name">ground</Property> @@ -226,6 +230,11 @@ <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">deVolume</Property> <Property name="property">deVolume</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">doorNum</Property> <Property name="property">doorNum</Property> <Editor/> igds-core/src/main/java/com/ld/igds/view/service/BuildingService.java
@@ -3,13 +3,10 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; import org.apache.commons.lang3.StringUtils; import org.hibernate.Session; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import com.bstek.bdf2.core.orm.hibernate.HibernateDao; import com.bstek.dorado.data.entity.EntityState; import com.bstek.dorado.data.entity.EntityUtils; @@ -25,6 +22,8 @@ */ @Component public class BuildingService extends HibernateDao { String BEAN_ID = "core.buildingService"; @Autowired private RedisUtil redisUtil; @@ -62,7 +61,7 @@ } data.setCompanyId(ContextUtil.getCompanyId()); session.saveOrUpdate(data); refreshCache(data.getCompanyId()); refreshCache(data.getCompanyId(), data.getDeptId()); } finally { session.flush(); session.close(); @@ -102,7 +101,7 @@ } } refreshCache(items.get(0).getCompanyId()); refreshCache(items.get(0).getCompanyId(), items.get(0).getDeptId()); } finally { session.flush(); session.close(); @@ -121,23 +120,46 @@ List<Building> result = (List<Building>) redisUtil.get(key); if (null == result) { refreshCache(companyId); refreshCache(companyId, deptId); return null; } if(null == deptId) return result; return result.stream().filter(item -> item.getDeptId().equals(deptId)) .collect(Collectors.toList()); return result; } @SuppressWarnings("unchecked") public Building getCacheBuilding(String companyId, String deptId, String buildingId) { if(StringUtils.isEmpty(companyId)){ companyId = ContextUtil.getCompanyId(); } String key = RedisConst.buildKey(companyId, RedisConst.KEY_BUILDING_LIST); List<Building> result = (List<Building>) redisUtil.get(key); if (null == result) { refreshCache(companyId, deptId); return null; } for (Building building : result) { if(buildingId.equals(building.getId())){ return building; } } return null; } public void refreshCache(String companyId) { public void refreshCache(String companyId, String deptId) { Map<String, Object> parameter = new HashMap<String, Object>(); parameter.put("companyId", companyId); parameter.put("deptId", deptId); List<Building> list = this.loadData(parameter); redisUtil.set(RedisConst.buildKey(companyId, RedisConst.KEY_BUILDING_LIST),list); redisUtil.set(RedisConst.buildKey(companyId, deptId, RedisConst.KEY_BUILDING_LIST),list); } } igds-core/src/main/java/models/igds.model.xml
@@ -97,13 +97,18 @@ <Property name="displayFormat">0.00 ç±³</Property> </PropertyDef> <PropertyDef name="diameter"> <Property name="label">çä»ç´å¾</Property> <Property name="displayFormat">0.00 ç±³</Property> <Property name="label">çä»/æ²¹ç½ç´å¾</Property> <Property name="displayFormat">0.000 ç±³</Property> <Property name="dataType">Double</Property> </PropertyDef> <PropertyDef name="volume"> <Property name="label">çä»ä½ç§¯</Property> <Property name="displayFormat">0.00 ç«æ¹ç±³</Property> <Property name="displayFormat">0.000 ç«æ¹ç±³</Property> <Property name="dataType">Double</Property> </PropertyDef> <PropertyDef name="deVolume"> <Property name="label">æ£é¤ä½ç§¯</Property> <Property name="displayFormat">0.000 ç«æ¹ç±³</Property> <Property name="dataType">Double</Property> </PropertyDef> <PropertyDef name="doorNum"> igds-protocol-bhzn/src/main/java/com/ld/igds/protocol/bhzn/ServerRunner.java
@@ -29,14 +29,20 @@ @Override public void run(String... strings) throws Exception { if (configData.getActive().indexOf("fzzy") >= 0) { bhznGrainServerEngine1.start(BhznGrainV1ServerEngine.PORT); return; } if (configData.getActive().indexOf("pro") >= 0) { //å¾é»ãFZZYäºæå¡å¨ä½¿ç¨ //å¾é»æå¡å¨ä½¿ç¨ bhznGrainServerEngine1.start(BhznGrainV1ServerEngine.PORT); //æ±è¥¿èµ£å·ã广ä¸é«å·ä½¿ç¨ // bhznGrainServerEngine2.start(BhznGrainV2ServerEngine.PORT); //广ä¸é«å·ä½¿ç¨ // bhznVerbServerEngine.start(BhznVerbServerEngine.PORT); return; } if (configData.getActive().indexOf("dev") >= 0) { bhznGrainServerEngine1.start(BhznGrainV1ServerEngine.PORT); igds-protocol-bhzn/src/main/java/com/ld/igds/protocol/bhzn/grainv1/msg/AnalysisService.java
@@ -68,12 +68,19 @@ */ public void analysis(String sessionKey, IoMessage message) throws Exception { String companyId = ContextUtil.getDefaultCompanyId(); //FZZYäºæå¡å¨-许æåç²® if("1000".equals(companyId)){ companyId = "5323"; } message.setCompanyId(companyId); //注å if (BhznGrainV1ServerUtils.FUNCTION_ID_F1.equals(message.getFunctionId())) { //DO NOTHING log.info("主æº------->>å¹³å°ï¼æ³¨åä¿¡æ¯æ¥æ={}", message); DeviceSer ser = coreSerService.getCacheSerBySn("5323",message.getAddr()); DeviceSer ser = coreSerService.getCacheSerBySn(message.getCompanyId(), message.getAddr()); if(ser!= null ){ ser.setIp(message.getIp()); ser.setPort(message.getPort()); @@ -111,7 +118,7 @@ //æ ¹æ®åæºå°åè·ååæºä¿¡æ¯ DeviceSer ser = coreSerService.getCacheSer("5323", message.getAddr()); DeviceSer ser = coreSerService.getCacheSer(message.getCompanyId(), message.getAddr()); if (ser == null) { replayGrain(message); log.error("主æº-------->>å¹³å°ï¼è§£æç²®æ å¤±è´¥ï¼æªè·åå°ç³»ç»ç²®æ 主æºé ç½®ï¼" + message.getAddr()); @@ -158,7 +165,7 @@ int cableY = 1; int cableX = 1; if(DepotType.TYPE_01.equals(depot.getDepotType())){ if(DepotType.TYPE_01.getCode().equals(depot.getDepotType())){ cableZ = Integer.valueOf(attCable[0]); cableY = Integer.valueOf(attCable[1]); cableX = Integer.valueOf(attCable[2]); @@ -239,7 +246,7 @@ int cableY = 1; int cableX = 1; if(DepotType.TYPE_01.equals(depot.getDepotType())){ if(DepotType.TYPE_01.getCode().equals(depot.getDepotType())){ cableZ = Integer.valueOf(attCable[0]); cableY = Integer.valueOf(attCable[1]); cableX = Integer.valueOf(attCable[2]); @@ -326,7 +333,7 @@ int cableY = 1; int cableX = 1; if(DepotType.TYPE_01.equals(depot.getDepotType())){ if(DepotType.TYPE_01.getCode().equals(depot.getDepotType())){ cableZ = Integer.valueOf(attCable[0]); cableY = Integer.valueOf(attCable[1]); cableX = Integer.valueOf(attCable[2]); @@ -476,7 +483,7 @@ private void analysisTh(IoMessage message) { try { THDto th = new THDto(); th.setCompanyId("5323"); th.setCompanyId(message.getCompanyId()); String data = message.getContent(); String houseNo = data.substring(0, 2); String t = data.substring(4, 8); igds-protocol-bhzn/src/main/java/com/ld/igds/protocol/bhzn/grainv1/msg/message/IoMessage.java
@@ -9,6 +9,7 @@ private String ip; private int port; private String companyId; private String pcAddr; private String addr; igds-protocol-fzzy3/src/main/java/com/ld/igds/protocol/fzzy/ServerRunner.java
@@ -22,6 +22,9 @@ @Override public void run(String... strings) throws Exception { if (configData.getActive().indexOf("fzzy") >= 0) { FzzyServerEngine.start(FzzyServerEngine.default_port); } if (configData.getActive().indexOf("dev") >= 0) { FzzyServerEngine.start(FzzyServerEngine.default_port); } igds-protocol-iot/src/main/java/com/ld/igds/protocol/iot/ServerRunner.java
@@ -34,6 +34,11 @@ return; } //FZZY-äºæå¡å¨ç¯å¢ if (configData.getActive().indexOf("fzzy") >= 0) { iotServerEngine.start(IotServerEngine.PORT); } if (configData.getActive().indexOf("pro") >= 0) { iotServerEngine.start(IotServerEngine.PORT); fzzyServerEngine.start(9307); igds-protocol-iot/src/main/java/com/ld/igds/protocol/iot/height/analysis/AnalysisHeightService.java
@@ -1,13 +1,18 @@ package com.ld.igds.protocol.iot.height.analysis; import com.ld.igds.common.CoreCommonService; import com.ld.igds.constant.RedisConst; import com.ld.igds.grain.dto.GrainData; import com.ld.igds.models.Building; import com.ld.igds.models.Depot; import com.ld.igds.models.DeviceIot; import com.ld.igds.models.DeviceSer; import com.ld.igds.protocol.iot.height.analysis.message.DeviceAttr; import com.ld.igds.protocol.iot.height.analysis.message.DeviceAttrInfo; import com.ld.igds.util.RedisUtil; import com.ld.igds.view.service.BuildingService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -27,7 +32,10 @@ @Autowired private RedisUtil redisUtil; @Autowired private CoreCommonService coreCommonService; @Autowired private BuildingService buildingService; /** * @param deviceAttr @@ -36,12 +44,45 @@ public void analysis(DeviceAttr deviceAttr , DeviceSer ser ,DeviceIot deviceIot) { try{ List<DeviceAttrInfo> deviceAttrInfos = deviceAttr.getTerminalAttrInfoList(); String herght =(deviceAttrInfos.get(2).getValue()); String height =(deviceAttrInfos.get(2).getValue()); GrainData data = new GrainData(); data.setOilHeight(herght); data.setOilHeight(height); data.setReceiveDate(new Date()); data.setDepotId(deviceIot.getDepotId()); data.setCompanyId(ser.getCompanyId()); // //计ç®å¨é // Depot depot = coreCommonService.getCacheDepot(ser.getCompanyId(), deviceIot.getDepotId()); // // if(null != depot){ // Building building; // //容é // Double bulkWeight = depot.getBulkWeight(); // if (null != depot.getBuildingId()) { // building = buildingService.getCacheBuilding(depot.getCompanyId(),depot.getDeptId(), depot.getBuildingId()); // if (null != building) { // if (null != building.getHeight()) { // height = building.getHeight() + ""; // } // if (null != building.getLength()) { // diameter = building.getLength(); // } // if (null != building.getDeVolume()) { // deVolume = building.getDeVolume(); // } // } // } // // grainData.setDepotData(depot); // grainData.setDepotHeight(height); // if (null != bulkWeight && StringUtils.isNotEmpty(grainData.getOilHeight())) { // Double oilHeight = Double.valueOf(grainData.getOilHeight()); // //计ç®ä½ç§¯ // volume = 3.14 * Math.pow(diameter / 2, 2) * oilHeight - deVolume; // storage = volume * bulkWeight; // } // // grainData.setStorage(storage); // } redisUtil.set(RedisConst.buildKey(ser.getCompanyId(),RedisConst.KEY_DEPOT_HEIGHT,deviceIot.getDepotId()),data); log.info("é«åº¦è§£æå®æï¼" + data.toString()); }catch (Exception e){ igds-protocol-zldz/src/main/java/com/ld/igds/protocol/zldz/ServerRunner.java
@@ -23,7 +23,7 @@ @Override public void run(String... strings) throws Exception { // if ("fzzy".equals(configData.getActive())) { if (configData.getActive().indexOf("fzzy") >= 0) { ZldzServerEngine.start(9201); return; } @@ -36,8 +36,6 @@ //飿£è´è¿é»è®¤é¨ç½²æå¡å½ååºç¨ä½¿ç¨9000ç«¯å£ if (configData.getActive().indexOf("pro") >= 0) { //FZZYå¹³å° // ZldzServerEngine.start(9201); //å ¶ä»å¹³å° ZldzServerEngine.start(9000); return; igds-web/src/main/resources/application-fzzy.yml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,80 @@ ########################## 飿£è´è¿-ç²®æ æå¡å¨ ########################## server: port: 8201 context-path: / connection-timeout: 5000 tomcat: uri-encoding: UTF-8 ########################## datasourcec ########################## spring: datasource: db-base: name: db-base type: com.alibaba.druid.pool.DruidDataSource url: jdbc:mysql://127.0.0.1:3306/igds_master_v35?useUnicode=true&characterEncoding=utf-8 driver-class-name: com.mysql.jdbc.Driver username: root password: ukJp12Qf+elyBvGHkJ5MQMa95pfVm0oFBHefdEgDFKoFSjbgYa9PYfv5vlem5nvoXjQsP9tIIo53DvSbsl160Q== public-key: config-decrypt: true initial-size: 5 min-idle: 5 max-active: 50 max-wait: 60000 time-between-eviction-runs-millis: 60000 min-evictable-idle-time-millis: 300000 validation-query: select 1 from dual test-whileIdle: true test-on-borrow: false test-on-return: false pool-prepared-statements: true max-pool-prepared-statement-per-connection-size: 20 filters: stat connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000 use-global-data-source-stat: true remove-abandoned: true remove-abandoned-timeout: 1800 log-abandoned: true db-sqlite: name: db-sqlite url: jdbc:sqlite:D:/app/igds/db/iot_cfg.db driver-class-name: org.sqlite.JDBC type: com.alibaba.druid.pool.DruidDataSource username: password: # Redisç¸å ³é ç½® redis: database: 0 host: 127.0.0.1 port: 6379 password: Abc123.. # è¿æ¥æ± æå¤§è¿æ¥æ°ï¼ä½¿ç¨è´å¼è¡¨ç¤ºæ²¡æéå¶ï¼ pool: max-active: 200 max-wait: -1 max-idle: 10 min-idle: 0 timeout: 6000 license: subject: ld_license publicAlias: publicCert storePass: PUBLICFZZYXXJSGFYXGS888888 licensePath: C:/license/license.lic publicKeysStorePath: C:/license/publicCerts.keystore ########################## IGDS ########################## ## ç³»ç»æ¥å£è·¯ç±é ç½® æ³¨ææ°å妿以0å¼å¤´çè¯ï¼åå°ä¼åºç°è½¬ä¹ï¼è¯·æ·»å "" igds: default: companyId: 1000 sys-name: æºæ §ç²®åºç®¡çç³»ç» logo: logo-default.png logo-title: logo-title-default.png support: æºæ §ç²®æ ç²®æ äºç®¡çå¹³å° grian-add-point: N media-ip: 124.71.162.207 media-port: 18000 file-path: C:/IGDS/FILE/ igds-web/src/main/resources/application-pro.yml
@@ -1,4 +1,4 @@ ########################## 广ä¸ä½å±±ç¦ ååº ########################## ########################## 广ä¸å¾é»é¡¹ç® ########################## server: port: 8888 context-path: / @@ -64,17 +64,17 @@ subject: ld_license publicAlias: publicCert storePass: PUBLICFZZYXXJSGFYXGS888888 licensePath: C:/IGDS/license/license.lic publicKeysStorePath: C:/IGDS/license/publicCerts.keystore licensePath: D:/IGDS/license/license.lic publicKeysStorePath: D:/IGDS/license/publicCerts.keystore ########################## IGDS ########################## ## ç³»ç»æ¥å£è·¯ç±é ç½® æ³¨ææ°å妿以0å¼å¤´çè¯ï¼åå°ä¼åºç°è½¬ä¹ï¼è¯·æ·»å "" igds: default: companyId: 5329 companyId: 5322 sys-name: æºæ §ç²®åºç®¡çç³»ç» logo: logo-default.png logo-title: logo-title-default.png support: 飿£è´è¿ä¿¡æ¯ææ¯è¡ä»½æéå ¬å¸ support: æºæ §ç²®åºç»¼å管çå¹³å° grian-add-point: N file-path: C:/IGDS/FILE/ file-path: D:/IGDS/FILE/ igds-web/src/main/resources/logback-spring.xml
@@ -141,4 +141,38 @@ </root> </springProfile> <!-- FZZY-ç²®æ ç产ç¯å¢ --> <springProfile name="fzzy"> <!-- æ¯å¤©äº§çä¸ä¸ªæä»¶ --> <appender name="PRO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!-- æä»¶è·¯å¾ --> <file>${PRO_LOG_HOME}/${APP_MODEL}-info.log</file> <!-- æ¥å¿è®°å½å¨çæ»å¨çç¥ï¼ææ¥æï¼æå¤§å°è®°å½ --> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- æä»¶åç§° --> <fileNamePattern>${PRO_LOG_HOME}/${APP_MODEL}-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern> <!--æ¥å¿æä»¶ä¿çå¤©æ° --> <maxHistory>60</maxHistory> <!-- æ¥å¿å¤§å° --> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>100MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> </rollingPolicy> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern> <charset>UTF-8</charset> </encoder> <layout class="ch.qos.logback.classic.PatternLayout"> <pattern>${PATTERN}</pattern> </layout> </appender> <logger name="org.hibernate.tool" level="WARN"/> <logger name="com.bstek.dorado" level="WARN"/> <root level="info"> <appender-ref ref="PRO_FILE"/> </root> </springProfile> </configuration>