cy
2023-11-24 a5e195c4d1cf661ec0f1c03517ce3b5436b7e5b2
feat: 对仓库内物品按型号进行预警判断
1个文件已添加
7个文件已修改
432 ■■■■■ 已修改文件
consum-base/src/main/java/com/consum/base/controller/LWhWarningController.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/core/service/LWhWarningCoreServiceImpl.java 123 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/query/WhWarningQry.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/LWarehouseFlowCoreService.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/LWhGoodsRecordDetailsService.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/LWhWarningServiceImpl.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
deploy-jar-single/src/main/resources/application-dev.yml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
deploy-jar-single/src/main/resources/application-prod.yml 180 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/controller/LWhWarningController.java
@@ -1,11 +1,13 @@
package com.consum.base.controller;
import com.consum.base.BaseController;
import com.consum.base.core.service.LWhWarningCoreServiceImpl;
import com.consum.base.core.utils.CommonUtil;
import com.consum.base.pojo.query.WhWarningQry;
import com.consum.base.service.LWhWarningServiceImpl;
import com.consum.model.po.FinSysTenantUser;
import com.walker.db.page.GenericPager;
import com.walker.infrastructure.utils.DateUtils;
import com.walker.web.ResponseValue;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.GetMapping;
@@ -50,4 +52,20 @@
        return ResponseValue.success(genericPager);
    }
    @Resource
    private LWhWarningCoreServiceImpl lWhWarningCoreService;
    @GetMapping("/handerChenKuCun")
    public ResponseValue handerChenKuCun() {
        WhWarningQry param = CommonUtil.getObjFromReq(WhWarningQry.class);
        FinSysTenantUser sysInfo = this.getSysInfo();
        long dealTime = DateUtils.getDateTimeNumber(System.currentTimeMillis());
        lWhWarningCoreService.updateKuCun(param.getWarehouseType(), param.getBaseWarehouseId(), null, sysInfo, dealTime);
        return ResponseValue.success();
    }
}
consum-base/src/main/java/com/consum/base/core/service/LWhWarningCoreServiceImpl.java
New file
@@ -0,0 +1,123 @@
package com.consum.base.core.service;
import cn.hutool.core.convert.Convert;
import com.consum.base.service.BaseGoodsModelsServiceImpl;
import com.consum.base.service.BaseWarehouseServiceImpl;
import com.consum.base.service.LWhWarningServiceImpl;
import com.consum.model.po.BaseWarehouse;
import com.consum.model.po.FinSysTenantUser;
import com.consum.model.po.WhWarning;
import com.walker.infrastructure.utils.NumberGenerator;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
 * @ClassName LWhWarningCoreServiceImpl
 * @Author cy
 * @Date 2023/11/24
 * @Description
 * @Version 1.0
 **/
@Service
public class LWhWarningCoreServiceImpl {
    @Resource
    private LWhWarningServiceImpl lWhWarningService;
    @Resource
    private BaseWarehouseServiceImpl baseWarehouseService;
    @Resource
    private BaseGoodsModelsServiceImpl baseGoodsModelsService;
    /**
     * 当库存变动时调用该方法
     *
     * @param warehouseType
     * @param warehouseId
     * @param baseModelIdList
     */
    public void updateKuCun(Short warehouseType, Long warehouseId, List<Long> baseModelIdList, FinSysTenantUser sysInfo, Long dealTime) {
        if (baseModelIdList == null) {
            baseModelIdList = new ArrayList<>();
        }
        // 获取到达到阈值的物品
        List<Map<String, Object>> kuCunNotifyList = lWhWarningService.checkKuCun(warehouseType, warehouseId, baseModelIdList);
        //
//        log.info("没有达到阈值的物品");
        if (CollectionUtils.isEmpty(kuCunNotifyList)) {
            kuCunNormalModel(warehouseType, warehouseId, baseModelIdList);
            return;
        }
        // 将数据插入库存预警【WH_WARNING】
        BaseWarehouse baseWarehouses = baseWarehouseService.get(new BaseWarehouse(warehouseId));
        List<Long> kuCunNotifyModelIdList = new ArrayList<>(kuCunNotifyList.size());
        List<WhWarning> warningList = new ArrayList<>(kuCunNotifyList.size());
        for (Map<String, Object> notifyKuCun : kuCunNotifyList) {
            Long baseGoodsModelsId = Convert.toLong(notifyKuCun.get("baseGoodsModelsId"));
            kuCunNotifyModelIdList.add(baseGoodsModelsId);
            Integer lowerLimit = Convert.toInt(notifyKuCun.get("lowerLimit"));
            Integer upperLimit = Convert.toInt(notifyKuCun.get("upperLimit"));
            Integer warningType = Convert.toInt(notifyKuCun.get("warningType"));
            Integer goodsNum = Convert.toInt(notifyKuCun.get("goodsNum"));
            WhWarning whWarning = new WhWarning();
            List<Map<String, Object>> modelInfoList = baseGoodsModelsService.queryGoodsModelInfo(baseGoodsModelsId);
            Map<String, Object> modelInfo = modelInfoList.get(0);
            whWarning.setId(NumberGenerator.getLongSequenceNumber());
            whWarning.setWarehouseType(0);
            whWarning.setBaseWarehouseId(warehouseId);
            whWarning.setBaseWarehouseName(baseWarehouses.getWarehouseName());
            whWarning.setBaseGoodsTemplateId(Convert.toLong(modelInfo.get("goodsId")));
            whWarning.setBaseGoodsTemplateName(Convert.toStr(modelInfo.get("goodsName")));
            whWarning.setBaseGoodsModelsId(baseGoodsModelsId);
            whWarning.setBaseGoodsModelsName((String) modelInfo.get("modelName"));
            whWarning.setGoodsType(2);
            whWarning.setWarningType(warningType);
            whWarning.setUpperLimit(upperLimit);
            whWarning.setLowerLimit(lowerLimit);
            whWarning.setWarehouseCount(goodsNum);
            whWarning.setWarningTime(dealTime);
            whWarning.setStates(1);
            whWarning.setOperatorId(sysInfo.getId());
            whWarning.setOperatorName(sysInfo.getUserName());
            whWarning.setDealTime(dealTime);
            whWarning.setAgencyId(Convert.toLong(sysInfo.getTenantId()));
            whWarning.setAgencyName(sysInfo.getTenantName());
            warningList.add(whWarning);
        }
        //修改以前的预警状态
        baseModelIdList.removeAll(kuCunNotifyModelIdList);
        kuCunNormalModel(warehouseType, warehouseId, baseModelIdList);
        //批量插入预警
        lWhWarningService.insertBatch(warningList);
    }
    private String KU_CUN_NORMAL_MODEL = "update WH_WARNING set STATES=2 where WAREHOUSE_TYPE=? and BASE_WAREHOUSE_ID=?";
    private int kuCunNormalModel(Short warehouseType, Long warehouseId, List<Long> baseModelIdList) {
        if (CollectionUtils.isEmpty(baseModelIdList)) {
            return 1;
        }
        ArrayList<Object> params = new ArrayList<>();
        params.add(warehouseType);
        params.add(warehouseId);
        StringBuilder sql = new StringBuilder(KU_CUN_NORMAL_MODEL);
        if (!org.springframework.util.CollectionUtils.isEmpty(baseModelIdList)) {
            sql.append(" and BASE_GOODS_MODELS_ID in(?)");
            params.add(baseModelIdList);
        }
        return lWhWarningService.update(sql.toString(), params.toArray());
    }
}
consum-base/src/main/java/com/consum/base/pojo/query/WhWarningQry.java
@@ -32,7 +32,7 @@
    private Long agencyId;
    @ApiModelProperty("仓库类型")
    private Long warehouseType;
    private Short warehouseType;
    @ApiModelProperty("仓库id")
    private Long baseWarehouseId;
consum-base/src/main/java/com/consum/base/service/LWarehouseFlowCoreService.java
@@ -1,23 +1,22 @@
package com.consum.base.service;
import com.consum.base.core.utils.LockManage;
import com.consum.model.po.BaseWarehouse;
import com.consum.model.po.LWarehouseFlow;
import com.consum.model.po.LWhFormProcure;
import com.consum.model.po.LWhGoodsRecord;
import com.consum.model.po.LWhProcureModel;
import com.consum.model.po.*;
import com.walker.infrastructure.utils.CollectionUtils;
import com.walker.infrastructure.utils.NumberGenerator;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
import org.springframework.jdbc.core.namedparam.SqlParameterSource;
import org.springframework.jdbc.core.simple.SimpleJdbcCall;
import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
 * @ClassName LWarehouseFlowService
@@ -36,6 +35,14 @@
    private LWhGoodsRecordService lWhGoodsRecordService;
    private BaseGoodsTemplateServiceImpl baseGoodsTemplateService;
    @Value("${spring.datasource.dataBaseName}")
    private String dataBaseName;
    @PostConstruct
    public void init() {
        this.simpleJdbcCall = new SimpleJdbcCall(jdbcTemplate).withCatalogName(dataBaseName).withProcedureName("InsertL_WH_GOODS");
    }
    @Autowired
    public LWarehouseFlowCoreService(JdbcTemplate jdbcTemplate, LWarehouseFlowService lWarehouseFlowService, LWhGoodsService lWhGoodsService,
        BaseGoodsTemplateServiceImpl baseGoodsTemplateService, LWhGoodsRecordService lWhGoodsRecordService) {
@@ -44,7 +51,6 @@
        this.baseGoodsTemplateService = baseGoodsTemplateService;
        this.lWhGoodsService = lWhGoodsService;
        this.lWhGoodsRecordService = lWhGoodsRecordService;
        this.simpleJdbcCall = new SimpleJdbcCall(jdbcTemplate).withProcedureName("InsertL_WH_GOODS");
    }
    /**
@@ -140,7 +146,8 @@
                    sameGoodsInsertMore(warehouseFlowId, warehouseType, warehouseId, whGoodsRecordId, (short) 1, warehouseName,
                        classification, tempGoodsId, goodsName, baseGoodsModelsId, modelName,
                        supplier, buyType, goodsUnit, price, procureTime, 1, dealTime, counts);
                };
                }
                ;
                whGoodsRecord.setTotalPrice(totalPrice);
            }
            lWhGoodsRecordService.insert(whGoodsRecord);
consum-base/src/main/java/com/consum/base/service/LWhGoodsRecordDetailsService.java
@@ -3,12 +3,14 @@
import com.walker.jdbc.service.BaseServiceImpl;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
import org.springframework.jdbc.core.namedparam.SqlParameterSource;
import org.springframework.jdbc.core.simple.SimpleJdbcCall;
import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct;
import java.util.List;
import java.util.Map;
@@ -23,10 +25,20 @@
    private final JdbcTemplate jdbcTemplate;
    private SimpleJdbcCall simpleJdbcCall;
    @Value("${spring.datasource.dataBaseName}")
    private String dataBaseName;
    @PostConstruct
    public void init() {
        this.simpleJdbcCall = new SimpleJdbcCall(jdbcTemplate)
                .withCatalogName(dataBaseName)
                .withProcedureName("insert_WH_GOODS_RECORD_DETAILS");
    }
    @Autowired
    public LWhGoodsRecordDetailsService(JdbcTemplate jdbcTemplate) {
        this.jdbcTemplate = jdbcTemplate;
        this.simpleJdbcCall = new SimpleJdbcCall(jdbcTemplate).withProcedureName("insert_WH_GOODS_RECORD_DETAILS");
    }
    public void sameGoodsInsertMore(List<Long> outGoodsId, long whGoodsRecordId, short thisType) {
consum-base/src/main/java/com/consum/base/service/LWhWarningServiceImpl.java
@@ -3,11 +3,13 @@
import com.consum.base.core.utils.MapperUtil;
import com.consum.base.pojo.query.WhWarningQry;
import com.walker.db.page.GenericPager;
import com.walker.infrastructure.utils.CollectionUtils;
import com.walker.infrastructure.utils.StringUtils;
import com.walker.jdbc.service.BaseServiceImpl;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
@@ -51,7 +53,8 @@
        }
        if (param.getGoodsTemplateId() != null) {
            sql.append(" AND goodsTemp.id=:goodsTemplateId");
            paramts.put("goodsTemplateId", param.getGoodsTemplateId());        }
            paramts.put("goodsTemplateId", param.getGoodsTemplateId());
        }
        //分类
        if (param.getCategoryId() != null) {
            sql.append(" AND cate.id=:categoryId");
@@ -69,4 +72,64 @@
        return selectSplit(sql.toString(), paramts, param.getPageNum(), param.getPageSize(), new MapperUtil());
    }
    /**
     * 查询指定仓库的库存是否超预警
     *
     * @param warehouseType
     * @param warehouseId
     * @param baseModelId
     */
    private String CHECK_KUCUN_PREFIX = "SELECT warnConf.*,goods.goods_Num,CASE WHEN warnConf.LOWER_LIMIT>=goods.goods_Num THEN 2 WHEN warnConf.UPPER_LIMIT<=goods.goods_Num THEN 1 END AS WARNING_TYPE FROM (";
    private String CHECK_KUCUN_CONFIG_PREFIX = "SELECT WAREHOUSE_TYPE,BASE_WAREHOUSE_ID,BASE_GOODS_MODELS_ID,LOWER_LIMIT,UPPER_LIMIT FROM WH_WARNING_CONFIG";
    private String CHECK_KUCUN_CONFIG_WHERE = " WHERE 1=1";
    private String CHECK_KUCUN_CONFIG_JOINTKUCUN = ") warnConf LEFT JOIN (";
    private String CHECK_KUCUN_KUCUN_PREFIX = "SELECT WAREHOUSE_TYPE,WAREHOUSE_ID,BASE_GOODS_MODELS_ID,count(1) goods_Num FROM L_WH_GOODS";
    private String CHECK_KUCUN_KUCUN_WHERE = " WHERE 1=1";
    private String CHECK_KUCUN_KUCUN_END = " GROUP BY BASE_GOODS_MODELS_ID)";
    private String CHECK_KUCUN_END = "goods ON goods.BASE_GOODS_MODELS_ID=warnConf.BASE_GOODS_MODELS_ID AND goods.WAREHOUSE_TYPE=warnConf.WAREHOUSE_TYPE AND goods.BASE_GOODS_MODELS_ID=warnConf.BASE_GOODS_MODELS_ID WHERE (warnConf.LOWER_LIMIT>=goods.goods_Num OR warnConf.UPPER_LIMIT<=goods.goods_Num)";
    public List<Map<String, Object>> checkKuCun(Short warehouseType, Long warehouseId, List<Long> baseModelIdList) {
        StringBuilder checkKucunPrefix = new StringBuilder(CHECK_KUCUN_PREFIX);
        StringBuilder checkKucunConfigPrefix = new StringBuilder(CHECK_KUCUN_CONFIG_PREFIX);
        StringBuilder checkKucunConfigWhere = new StringBuilder(CHECK_KUCUN_CONFIG_WHERE);
        StringBuilder checkKucunConfigJointkucun = new StringBuilder(CHECK_KUCUN_CONFIG_JOINTKUCUN);
        StringBuilder checkKucunKucunPrefix = new StringBuilder(CHECK_KUCUN_KUCUN_PREFIX);
        StringBuilder checkKucunKucunWhere = new StringBuilder(CHECK_KUCUN_KUCUN_WHERE);
        StringBuilder checkKucunKucunEnd = new StringBuilder(CHECK_KUCUN_KUCUN_END);
        StringBuilder checkKucunEnd = new StringBuilder(CHECK_KUCUN_END);
        Map<String, Object> paramMap = new HashMap<>();
        if (warehouseType != null) {
            checkKucunConfigWhere.append(" and WAREHOUSE_TYPE =:ConfigWarehouseType");
            paramMap.put("ConfigWarehouseType", warehouseType);
            checkKucunKucunWhere.append(" and WAREHOUSE_TYPE =:KuCunWarehouseType");
            paramMap.put("KuCunWarehouseType", warehouseType);
        }
        if (warehouseId != null) {
            checkKucunConfigWhere.append(" and BASE_WAREHOUSE_ID =:ConfigWarehouseId");
            paramMap.put("ConfigWarehouseId", warehouseId);
            checkKucunKucunWhere.append(" and WAREHOUSE_ID =:KuCunWarehouseId");
            paramMap.put("KuCunWarehouseId", warehouseId);
        }
        if (!CollectionUtils.isEmpty(baseModelIdList)) {
            checkKucunConfigWhere.append(" and BASE_GOODS_MODELS_ID in(:ConfigBaseModelIds)");
            paramMap.put("ConfigBaseModelIds", baseModelIdList);
            checkKucunKucunWhere.append(" and BASE_GOODS_MODELS_ID in(:KuCunBaseModelIds)");
            paramMap.put("KuCunBaseModelIds", baseModelIdList);
        }
        checkKucunPrefix.append(checkKucunConfigPrefix)
                .append(checkKucunConfigWhere)
                .append(checkKucunConfigJointkucun)
                .append(checkKucunKucunPrefix)
                .append(checkKucunKucunWhere)
                .append(checkKucunKucunEnd)
                .append(checkKucunEnd);
        return select(checkKucunPrefix.toString(), paramMap, new MapperUtil());
    }
}
deploy-jar-single/src/main/resources/application-dev.yml
@@ -5,9 +5,10 @@
    # 是否显示dao中打印的SQL语句
    show-sql: true
# 数据库链接
    dataBaseName: low_consum_manage_dev
    username: root
    password: Bjjmy_2020
    url: jdbc:mysql://116.198.40.76:3306/low_consum_manage_dev?useUnicode=true&characterEncoding=UTF-8&useSSL=false
    url: jdbc:mysql://116.198.40.76:3306/${spring.datasource.dataBaseName}?useUnicode=true&characterEncoding=UTF-8&useSSL=false
# Druid连接池
    type: com.walker.jdbc.ds.MyDruidDataSource
    druid:
deploy-jar-single/src/main/resources/application-prod.yml
@@ -1,62 +1,15 @@
spring:
  application:
    name: projectProgress
    name: lowConsum
  datasource:
    # 是否显示dao中打印的SQL语句
    show-sql: true
    ##    driver-class-name: sunje.goldilocks.jdbc.GoldilocksDriver
    # 注意:MySQL服务端,需要调整两个参数,否则服务端会主动断开连接
    # wait_timeout: 超过改时间(秒)服务端主动断开
    # interactive_timeout: 客户端工具交互超过这个时间(秒)会端口,表现为navicat
    # Oracle配置,2023-06-25
    #    username: FINANCE_OPS_PROD
    #    password: FINANCE_OPS_PROD
    #    driver-class-name: oracle.jdbc.OracleDriver
    #    url: jdbc:oracle:thin:@10.8.10.2:1521/pdb_YWZC
    #    username: C##FINANCE_OPS_TEST
    #    password: FINANCE_OPS_TEST
    #    driver-class-name: oracle.jdbc.OracleDriver
    #    url: jdbc:oracle:thin:@116.198.40.76:1521/cdb1
    # 数据库链接
    username: root
    password: Bjjmy_2020
    url: jdbc:mysql://116.198.40.76:3306/project_progress_manage_dev?useUnicode=true&characterEncoding=UTF-8&useSSL=false
    #    username: root
    #    password: Bjjmy_2020
    #    url: jdbc:mysql://116.198.40.76:3306/iplatform?useUnicode=true&characterEncoding=UTF-8&useSSL=false
    # 达梦数据库
    #    driver-class-name: dm.jdbc.driver.DmDriver
    #    username: iplatform
    #    password: iplatform
    #    url: jdbc:dm://116.198.39.83:5236?schema=iplatform
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    # 使用 Hikari 连接池
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    #    type: com.walker.jdbc.ds.DefaultDataSource
    #    hikari:
    #      minimum-idle: 5
    #      idle-timeout: 600000
    #      pool-name: databasePool_walker
    #      # 连接最大超时时间
    #      connection-timeout: 30000
    #      # 连接池最大数量
    #      maximum-pool-size: 10
    #      # 控制池中连接最大生存期
    #      # max-lifetime: 70000
    #      # 此属性控制测试连接是否活跃的最长时间。此值必须小于 connectionTimeout
    #      validation-timeout: 10000
    #      #
    #      connection-test-query: select 1
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    # 使用 Druid 连接池
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    dataBaseName: low_consum_manage_dev
    url: jdbc:mysql://192.200.0.49:3306/${spring.datasource.dataBaseName}?useUnicode=true&characterEncoding=UTF-8&useSSL=false
    # Druid连接池
    type: com.walker.jdbc.ds.MyDruidDataSource
    druid:
      initial-size: 5
@@ -77,18 +30,12 @@
      pool-prepared-statements: true
      max-open-prepared-statements: 100
      use-global-data-source-stat: true
  #  redis:
  #    host: 127.0.0.1
  #    port: 6379
  #    database: 10
  #    #password: Jmy2019.
  # Redis
  redis:
    host: 116.198.40.76
    host: 192.200.0.49
    port: 6379
    database: 11
    password: Jmy2019.
  mvc:
    pathmatch:
@@ -104,9 +51,9 @@
      max-request-size: 300MB
server:
  port: 8082
  port: 9301
  servlet:
    context-path: /progress
    context-path: /
    session:
      timeout: 30m
@@ -122,9 +69,7 @@
    com:
      walker: debug
      iplatform: debug
      finance: debug
      cti: debug
      robot: error
      progess: debug
  charset:
    # 控制台编码
@@ -141,9 +86,9 @@
      # 例如: 日期为:2023/07/13 ,则打包文件之后为: log/ota.2023-07-13.0.gz,0表示日志的第一部分,后续就是,1,2,3...
      # 如果是压缩包,里面会多一个名log/ota.2023-07-13.0的日志文件
      # 如下面的例子,打包之后为: log/2023-07/ota.2020-07-13.0.log,这是一个日志文件
      file-name-pattern: ${logging.file.path}%d{yyyy-MM}/finance.%d{yyyy-MM-dd}.%i.log
      file-name-pattern: ${logging.file.path}%d{yyyy-MM}/progess.%d{yyyy-MM-dd}.%i.log
  file:
    name: ${logging.file.path}finance.log
    name: ${logging.file.path}consum.log
    path: D:/log/
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -181,65 +126,25 @@
  security:
    # 匿名可访问地址(开放地址)
    anonymous-list:
      - /platform/fin/sc
      - /chat/auto/robot/**
      - /login
      - /register
      - /captcha/*      # 验证码统一放开
      - /file/** # 文件上传
      - /platform/fin/sc # 一键生成
      - /login # 登录
      - /register # 注册
      - /captcha/* # 验证码统
      - /test/**        # 开发测试,仅开发板可用
      - /swagger-resources/** # swagger
      - /swagger-ui/**  # swagger
      - /v3/**          # swagger
      - /pay/notify/**  # 支付通知
      - /jmreport/**    # 积木报表
      - /api/cti/net/** # 网络连接状态检测
      - /api/cti/customer/** # 客服设置
      - /api/** # 呼叫中心回调
      - /platform/fin/**
      - /platform/fin/sys/org/**
      - /platform/fin/sys/user/**
      - /platform/fin/sys/project/**
      - /platform/fin/sys/tenant/**
      - /platform/fin/sys/tenant/user/**
      - /robot/**
      - /platform/fin/supplier/**
      - /chat/user/** #聊天
      - /third_party/budget/login
      - /platform/fin/project/** # 预算一体化登录对接,前端访问的登录地址。2023-07-03
      - /platform/fin/sys/server/**
      - /platform/fin/project/category/**
      - platform/fin/sys/tenant/user/**   #用户
      - /platform/fin/project/**
      - /platform/fin/event/**
      - /admin/platform/fin/project/*
      - /platform/fin/sla/config/**
      - /platform/fin/library/**
      - /platform/fin/sla/**
      - /platform/fin/supplier/user/getRole
      - /admin/platform/fin/sys/tenant/user/*   # 预算一体化登录对接,前端访问的登录地址。2023-07-03
      - /system/role/**
      - /robot/test/**
      - /platform/fin/node/**
      - /platform/fin/project/member/**   #团队成员
      - /robot/**
      - /platform/fin/init/jn/**  #初始化接口
      - /platform/fin/project/manage/**
      - /platform/fin/sla/config/**  #初始化接口
      - /platform/fin/sla/**  #初始化接口
      - /platform/fin/cate/user/select/sla/**  #初始化接口
      - /platform/fin/sta/template/**  #满意度接口
      - /system/dict/type
      - /platform/fin/chat/reply/** #快捷回复
      - /platform/fin/file/upload #文件上传,请勿禁用和配置
      - /file/** #请勿禁用和配置
      - /platform/fin/node/define/select
      - /platform/fin/cate/user/**
      - /platform/fin/node/define/**
      # 预算一体化登录对接,前端访问的登录地址。2023-07-03
      - /system/** # 系统设置
      - /pc/** # PC端接口
      - /wx/** # 微信端接口
    # 允许所有认证用户都可访问地址,请慎重否则权限都过大,一般API都应该设置在这里
    permit-list:
      #      - /permit # 公用权限,2023-03-13,平台代码已经添加过了,这里不需要配置
      - /getInfo
      - /system/**
      - /p/**
      - /getRouters
      - /getMenus # 新界面菜单,2023-05-12
      - /logout
@@ -310,14 +215,13 @@
    # FileStoreType = FileSystem 本地磁盘存储根路径
    file-root: d:/tmp/
    ftp:
      ip: 116.198.40.76
      ip: 192.200.0.28
      port: 22
      user-name: mysftp
      password: Bjjmy_2020
      password: Jmy@2023
      private-key:
      # ftp服务上面的存储根路径,只能是linux路径
      #      file-root: /files/
      file-root: /train/
      file-root: /lowconsum/
  # 接口文档生成,swagger3,2023-02-23
  swagger:
@@ -326,34 +230,6 @@
    title: 云原生微服务平台
    description: 一个快速web开发框架
  # TCP通信配置,2023-04-17
  tcp:
    # 是否开启引擎
    enabled: true
    # 是否打开心跳
    open-heart-beat: false
    # 心跳时间(秒),2023-08-28
    heart-beat-seconds: 120
    # 是否显示详细日志
    show-log: false
    # 请求队列类型:memory 基于内存
    queue-type: memory
    # tcp方式要扫描的请求对象的包空间
    scan-packages-tcp: com.walker.tcp,com.iplatform.tcp
    # websocket方式要扫描的请求对象的包空间
    scan-packages-ws: com.iplatform.tcp.util.ws,com.finance.chat.util.ws
    # tcp长连接的端口
    port-tcp: 7878
    # websocket连接端口
    port-ws: 60000
    # websocket连接uri
    websocket-uri: ws://172.16.60.41:60000/websocket
    # 通信线程数量
    boss-thread-num: 2
    # 业务处理线程数量
    worker-thread-num: 4
    # 启用自定义连接管理器,如果true则业务需要提供自定义实现(配置),2023-07-18
    custom-connection-manager: true
  # 推送模块配置,2023-04-25
  push:
@@ -373,9 +249,3 @@
    mail-server: smtp.126.com
    mail-from: hnzzzhsl@126.com
    mail-password: test
fin:
  projectCode: CZT_YS_YTH_001
  # 区分省级CODE
  provinceCode: 410000000