db/origin/jeecgboot-mysql-5.7.sql
jeecg-boot-base-core/src/main/java/org/jeecg/common/system/util/JwtUtil.java
@@ -37,7 +37,7 @@ public class JwtUtil { /**Token有效期为1小时(Token在reids中缓存时间为两倍)*/ public static final long EXPIRE_TIME = 60 * 60 * 1000; public static final long EXPIRE_TIME = 1000 * 24 * 60 * 60 * 1000; static final String WELL_NUMBER = SymbolConstant.WELL_NUMBER + SymbolConstant.LEFT_CURLY_BRACKET; /** jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryOrder.java
@@ -156,5 +156,5 @@ /**电能消耗*/ @ApiModelProperty(value = "电能消耗") private Double electric; private Double watt; } jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryOrderTrend.java
@@ -92,5 +92,5 @@ /**电能消耗*/ @ApiModelProperty(value = "电能消耗") private Double electric; private Double watt; } jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/DryOrderTrendVo.java
@@ -67,7 +67,7 @@ /**电能消耗*/ @ApiModelProperty(value = "电能消耗") private Double electric; private Double watt; public DryOrderTrendVo(RealTimeDataVo realTimeDataVo) { @@ -81,6 +81,8 @@ this.turn = realTimeDataVo.getTurntime(); this.totalTime = realTimeDataVo.getTime3(); this.orderId = realTimeDataVo.getOrderId(); this.watt = realTimeDataVo.getWatt(); this.steam = realTimeDataVo.getSteam(); this.tim = new Date(); } } jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/DryOrderVo.java
@@ -71,6 +71,9 @@ /**预计剩余时间*/ @ApiModelProperty(value = "预计剩余时间") private Integer remain; /**当前阶段预计剩余时间*/ @ApiModelProperty(value = "当前阶段预计剩余时间") private Integer curRemain; /**设备*/ @ApiModelProperty(value = "设备", example = "S1001") private String equId; @@ -84,15 +87,17 @@ @ApiModelProperty(value = "租户id", example = "1000") private Integer tenantId; /**工单状态 * 上料 * 翻料 * 干燥 * 称重 * 出料 * * 0: 准备 * 1: 上料 * 2: 生产 * fan1: 干燥 * roller4: 翻料 * roller5: 出料 * 3: 暂停 * 4: 完成 * */ @ApiModelProperty(value = "工单状态") private String orderStatus; private Integer orderStatus; /**操作人*/ @ApiModelProperty(value = "操作人") @@ -105,7 +110,7 @@ /**电能消耗*/ @ApiModelProperty(value = "电能消耗") private Double electric; private Double watt; /**故障*/ @ApiModelProperty(value = "故障") private String fault; @@ -130,6 +135,30 @@ /**热风 true/冷风 false*/ private Boolean wind; /**对比机台号*/ private List<String> compEqpNum; /**对比机台效率*/ private List<Double> compEqpEffic; /**接管状态 0:自动 1:手动 */ private Integer state_auto; /**风箱状态 0:低位静止 1:高位静止 2:正在上升 3:正在下降*/ private Integer state_windbox; /**滚筒状态 0:高位静止 1:低位静止 2:正在上升 3:正在下降 4:正转 5:反转*/ private Integer state_roller; /**风机状态 0:关闭 1:开启*/ private Integer state_fan; /**蒸汽阀状态 0:关闭 1:开启*/ private Integer state_valve; public DryOrderVo(RealTimeDataVo realTimeDataVo) { this.id = IdUtil.fastSimpleUUID(); this.code = realTimeDataVo.getWorkorder(); @@ -153,6 +182,11 @@ this.tenantId = realTimeDataVo.getTenantid(); this.orderTime = new Date(); this.yield = realTimeDataVo.getWeight3(); this.watt = realTimeDataVo.getWatt(); this.steam = realTimeDataVo.getSteam(); this.envHum = realTimeDataVo.getEnvhum(); this.envTemp = realTimeDataVo.getEnvtemp(); this.remain = realTimeDataVo.getAi_total_time(); this.orderStatus = realTimeDataVo.getWorkorder_status(); } } jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/RealTimeDataVo.java
@@ -1,7 +1,12 @@ package org.jeecg.modules.dry.vo; import io.swagger.annotations.ApiModelProperty; import io.swagger.models.auth.In; import lombok.Data; import lombok.ToString; import org.jeecg.modules.dry.entity.DryEquipment; import java.util.List; @Data @ToString @@ -63,5 +68,47 @@ /**热风 true/冷风 false*/ private Boolean wind; /**环境温度*/ private Double envtemp; /**环境湿度*/ private Double envhum; /**电能消耗**/ private Double watt; /**蒸汽消耗**/ private Double steam; /**状态**/ /**故障**/ private String fault; private Integer ai_total_time; private Integer ai_time; private List<DryEquipment> eqpCodes; /**接管状态 0:自动 1:手动 */ private Integer state_auto; /**风箱状态 0:低位静止 1:高位静止 2:正在上升 3:正在下降*/ private Integer state_windbox; /**滚筒状态 0:高位静止 1:低位静止 2:正在上升 3:正在下降 4:正转 5:反转*/ private Integer state_roller; /**风机状态 0:关闭 1:开启*/ private Integer state_fan; /**蒸汽阀状态 0:关闭 1:开启*/ private Integer state_valve; /**工单状态*/ private Integer workorder_status; } jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryEquipmentController.java
@@ -98,6 +98,9 @@ queryWrapper.orderByAsc("code"); List<DryEquipment> eqps = dryEquipmentService.list(queryWrapper); eqps.stream().forEach(item -> { item.setType(dryEqpTypeService.getById(item.getType()).getName()); }); return Result.OK(eqps); } jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryRealTimeDataServiceImpl.java
@@ -22,6 +22,8 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.text.DecimalFormat; import java.util.ArrayList; import java.util.List; import java.util.Map; @Slf4j @@ -74,6 +76,18 @@ orderVo.setLowalarm(realTimeDataVo.getLowalarm()); orderVo.setWind(realTimeDataVo.getWind()); orderVo.setOriginWeight(realTimeDataVo.getWeight2()); orderVo.setWatt(realTimeDataVo.getWatt()); orderVo.setSteam(realTimeDataVo.getSteam()); orderVo.setEnvHum(realTimeDataVo.getEnvhum()); orderVo.setEnvTemp(realTimeDataVo.getEnvtemp()); orderVo.setRemain(realTimeDataVo.getAi_total_time()); orderVo.setCurRemain(realTimeDataVo.getAi_time()); orderVo.setState_fan(realTimeDataVo.getState_fan()); orderVo.setState_roller(realTimeDataVo.getState_roller()); orderVo.setState_auto(realTimeDataVo.getState_auto()); orderVo.setState_windbox(realTimeDataVo.getState_windbox()); orderVo.setState_valve(realTimeDataVo.getState_valve()); orderVo.setOrderStatus(realTimeDataVo.getWorkorder_status()); DryOrderTrendVo trendVo = new DryOrderTrendVo(realTimeDataVo); // 2.2 保存工单含水率变化 或 重量变化 saveOrderTrendVo(trendVo, orderVo); @@ -209,7 +223,43 @@ @Override public Result<?> queryMachineRealTImeData(RealTimeDataVo realTimeDataVo) { TenantContext.setTenant(realTimeDataVo.getTenantid()+""); DryOrderVo orderVo = (DryOrderVo) redisUtil.hget(CacheConstants.RedisKeyEnum.WORK_ORDER.getCode(), realTimeDataVo.getTenantid()+"_"+realTimeDataVo.getMachineid()); LambdaQueryWrapper<DryEquipment> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(DryEquipment::getTenantId, realTimeDataVo.getTenantid()); queryWrapper.eq(DryEquipment::getEnable, "Y"); List<DryEquipment> dryEquipments = equipmentService.list(queryWrapper); List<String> list = new ArrayList<>(); List<Double> dList = new ArrayList<>(); DryOrderVo orderVo = (DryOrderVo) redisUtil.hget(CacheConstants.RedisKeyEnum.WORK_ORDER.getCode(), realTimeDataVo.getTenantid() + "_" + realTimeDataVo.getMachineid()); try { if (dryEquipments != null && dryEquipments.size() > 0) { dryEquipments.stream().forEach(item -> { DryOrderVo order = (DryOrderVo) redisUtil.hget(CacheConstants.RedisKeyEnum.WORK_ORDER.getCode(), realTimeDataVo.getTenantid() + "_" + item.getCode()); if (order != null) { double v = order.getOriginWeight() - order.getYield(); list.add(item.getName().substring(0, item.getName().indexOf('#')+1)); if (v > 0) { DecimalFormat df = new DecimalFormat("#.00"); dList.add(Double.valueOf(df.format(v / order.getDryTime() * 60))); } else { dList.add(50d); } } }); } if (orderVo != null) { orderVo.setCompEqpNum(list); orderVo.setCompEqpEffic(dList); } }catch (Exception e) { e.printStackTrace(); } return Result.ok(orderVo); } } jeecg-module-dry/jeecg-module-dry-start/src/main/resources/application.yml
@@ -13,3 +13,5 @@ server-addr: @config.server-addr@ discovery: server-addr: ${spring.cloud.nacos.config.server-addr} inetutils: preferred-networks: 192.168 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/LoginController.java
@@ -88,26 +88,26 @@ //update-begin--Author:scott Date:20190805 for:暂时注释掉密码加密逻辑,有点问题 //update-begin-author:taoyan date:20190828 for:校验验证码 String captcha = sysLoginModel.getCaptcha(); if(captcha==null){ result.error500("验证码无效"); return result; } String lowerCaseCaptcha = captcha.toLowerCase(); // String captcha = sysLoginModel.getCaptcha(); // if(captcha==null){ // result.error500("验证码无效"); // return result; // } // String lowerCaseCaptcha = captcha.toLowerCase(); //update-begin-author:taoyan date:2022-9-13 for: VUEN-2245 【漏洞】发现新漏洞待处理20220906 // 加入密钥作为混淆,避免简单的拼接,被外部利用,用户自定义该密钥即可 String origin = lowerCaseCaptcha+sysLoginModel.getCheckKey()+jeecgBaseConfig.getSignatureSecret(); String origin = sysLoginModel.getCheckKey()+jeecgBaseConfig.getSignatureSecret(); String realKey = Md5Util.md5Encode(origin, "utf-8"); //update-end-author:taoyan date:2022-9-13 for: VUEN-2245 【漏洞】发现新漏洞待处理20220906 Object checkCode = redisUtil.get(realKey); //当进入登录页时,有一定几率出现验证码错误 #1714 if(checkCode==null || !checkCode.toString().equals(lowerCaseCaptcha)) { log.warn("验证码错误,key= {} , Ui checkCode= {}, Redis checkCode = {}", sysLoginModel.getCheckKey(), lowerCaseCaptcha, checkCode); result.error500("验证码错误"); // 改成特殊的code 便于前端判断 result.setCode(HttpStatus.PRECONDITION_FAILED.value()); return result; } // if(checkCode==null || !checkCode.toString().equals(lowerCaseCaptcha)) { // log.warn("验证码错误,key= {} , Ui checkCode= {}, Redis checkCode = {}", sysLoginModel.getCheckKey(), lowerCaseCaptcha, checkCode); // result.error500("验证码错误"); // // 改成特殊的code 便于前端判断 // result.setCode(HttpStatus.PRECONDITION_FAILED.value()); // return result; // } //update-end-author:taoyan date:20190828 for:校验验证码 //1. 校验用户是否有效 jeecg-server-cloud/jeecg-cloud-gateway/src/main/resources/application.yml
@@ -27,6 +27,8 @@ allowedOriginPatterns: "*" allowedMethods: "*" allowedHeaders: "*" # inetutils: # preferred-networks: 192.168 #Sentinel配置 sentinel: transport: pom.xml
@@ -430,7 +430,7 @@ <!--当前环境--> <profile.name>dev</profile.name> <!--Nacos服务地址--> <config.server-addr>192.168.19.168:8848</config.server-addr> <config.server-addr>jeecg-boot-nacos:8848</config.server-addr> </properties> </profile> <!-- 测试 -->