CZT
2023-10-11 564295458c720206db9b5194b90481b711f4b010
更改配置及筒仓偏移量
已修改14个文件
已添加1个文件
296 ■■■■ 文件已修改
igds-basic/src/main/java/com/ld/igds/grain/manager/GrainManager.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-core/src/main/java/com/ld/igds/models/Building.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-core/src/main/java/com/ld/igds/view/Building.view.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-core/src/main/java/com/ld/igds/view/service/BuildingService.java 42 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-core/src/main/java/models/igds.model.xml 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-protocol-bhzn/src/main/java/com/ld/igds/protocol/bhzn/ServerRunner.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-protocol-bhzn/src/main/java/com/ld/igds/protocol/bhzn/grainv1/msg/AnalysisService.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-protocol-bhzn/src/main/java/com/ld/igds/protocol/bhzn/grainv1/msg/message/IoMessage.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-protocol-fzzy3/src/main/java/com/ld/igds/protocol/fzzy/ServerRunner.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-protocol-iot/src/main/java/com/ld/igds/protocol/iot/ServerRunner.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-protocol-iot/src/main/java/com/ld/igds/protocol/iot/height/analysis/AnalysisHeightService.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-protocol-zldz/src/main/java/com/ld/igds/protocol/zldz/ServerRunner.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-web/src/main/resources/application-fzzy.yml 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-web/src/main/resources/application-pro.yml 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-web/src/main/resources/logback-spring.xml 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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>