diff --git a/jwtech-system/src/main/java/com/kms/build/controller/BsSgcJsjdBuiChangeController.java b/jwtech-system/src/main/java/com/kms/build/controller/BsSgcJsjdBuiChangeController.java index 8b466c9e..ec9c6f63 100644 --- a/jwtech-system/src/main/java/com/kms/build/controller/BsSgcJsjdBuiChangeController.java +++ b/jwtech-system/src/main/java/com/kms/build/controller/BsSgcJsjdBuiChangeController.java @@ -95,7 +95,7 @@ public class BsSgcJsjdBuiChangeController extends BaseController BaseEntityUtils.preInsert(bsSgcJsjdBuiChange); boolean save = bsSgcJsjdBuiChangeService.save(bsSgcJsjdBuiChange); if(save){ - warningJudgment.ChangeWarn(bsSgcJsjdBuiChange, WarnType.SECTION_CHANGES); + warningJudgment.ChangeWarn(bsSgcJsjdBuiChange); } return toAjax(save); } diff --git a/jwtech-system/src/main/java/com/kms/build/controller/BsSgcJsjdBuiGzbzjController.java b/jwtech-system/src/main/java/com/kms/build/controller/BsSgcJsjdBuiGzbzjController.java index 51f2c0d7..8d7d9405 100644 --- a/jwtech-system/src/main/java/com/kms/build/controller/BsSgcJsjdBuiGzbzjController.java +++ b/jwtech-system/src/main/java/com/kms/build/controller/BsSgcJsjdBuiGzbzjController.java @@ -94,7 +94,7 @@ public class BsSgcJsjdBuiGzbzjController extends BaseController { BaseEntityUtils.preInsert(bsSgcJsjdBuiGzbzj); AjaxResult ajaxResult = toAjax(bsSgcJsjdBuiGzbzjService.save(bsSgcJsjdBuiGzbzj)); - warningJudgment.GzbzjWarn(bsSgcJsjdBuiGzbzj, WarnType.SALARY_DEPOSIT); + warningJudgment.GzbzjWarn(bsSgcJsjdBuiGzbzj); return ajaxResult; } diff --git a/jwtech-system/src/main/java/com/kms/build/controller/BsSgcJsjdBuiSalaryEnsureController.java b/jwtech-system/src/main/java/com/kms/build/controller/BsSgcJsjdBuiSalaryEnsureController.java index 34ef5b51..884a918f 100644 --- a/jwtech-system/src/main/java/com/kms/build/controller/BsSgcJsjdBuiSalaryEnsureController.java +++ b/jwtech-system/src/main/java/com/kms/build/controller/BsSgcJsjdBuiSalaryEnsureController.java @@ -93,7 +93,7 @@ public class BsSgcJsjdBuiSalaryEnsureController extends BaseController { BaseEntityUtils.preInsert(bsSgcJsjdBuiSalaryEnsure); boolean save = bsSgcJsjdBuiSalaryEnsureService.save(bsSgcJsjdBuiSalaryEnsure); - warningJudgment.salaryEnsureWarn(bsSgcJsjdBuiSalaryEnsure,WarnType.MARGIN_PAYMENT_TIME); + warningJudgment.salaryEnsureWarn(bsSgcJsjdBuiSalaryEnsure); return toAjax(save); } diff --git a/jwtech-system/src/main/java/com/kms/build/controller/BsSgcJsjdBuiSubProjectQualityController.java b/jwtech-system/src/main/java/com/kms/build/controller/BsSgcJsjdBuiSubProjectQualityController.java index 79e2c3a4..c21759b8 100644 --- a/jwtech-system/src/main/java/com/kms/build/controller/BsSgcJsjdBuiSubProjectQualityController.java +++ b/jwtech-system/src/main/java/com/kms/build/controller/BsSgcJsjdBuiSubProjectQualityController.java @@ -16,6 +16,7 @@ import com.kms.build.service.BsSgcJsjdBuiUnitQualityRateService; import com.kms.common.utils.BaseEntityUtils; +import com.kms.warn.WarningJudgment; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; @@ -58,6 +59,9 @@ public class BsSgcJsjdBuiSubProjectQualityController extends BaseController @Autowired private BsSgcJsjdBuiUnitProjectService bsSgcJsjdBuiUnitProjectService; + @Autowired + WarningJudgment warningJudgment; + /** * 查询分部工程质量评定列表 @@ -114,13 +118,15 @@ public class BsSgcJsjdBuiSubProjectQualityController extends BaseController bsSgcJsjdBuiUnitQualityRateService.save(qualityRate); String id = qualityRate.getId(); bsSgcJsjdBuiSubProjectQuality.setUnitId(id); - return toAjax(bsSgcJsjdBuiSubProjectQualityService.save(bsSgcJsjdBuiSubProjectQuality)); + boolean save = bsSgcJsjdBuiSubProjectQualityService.save(bsSgcJsjdBuiSubProjectQuality); + warningJudgment.detectionWarn(bsSgcJsjdBuiSubProjectQuality); + return toAjax(save); }else { bsSgcJsjdBuiSubProjectQuality.setUnitId(one.getId()); - return toAjax(bsSgcJsjdBuiSubProjectQualityService.save(bsSgcJsjdBuiSubProjectQuality)); + boolean save = bsSgcJsjdBuiSubProjectQualityService.save(bsSgcJsjdBuiSubProjectQuality); + warningJudgment.detectionWarn(bsSgcJsjdBuiSubProjectQuality); + return toAjax(save); } - - } /** diff --git a/jwtech-system/src/main/java/com/kms/earlyStage/controller/SpecialProjectInfoController.java b/jwtech-system/src/main/java/com/kms/earlyStage/controller/SpecialProjectInfoController.java index 3e49e262..b53eb524 100644 --- a/jwtech-system/src/main/java/com/kms/earlyStage/controller/SpecialProjectInfoController.java +++ b/jwtech-system/src/main/java/com/kms/earlyStage/controller/SpecialProjectInfoController.java @@ -176,7 +176,6 @@ public class SpecialProjectInfoController extends BaseController { SysDept sysDept = sysDeptService.get(deptId); specialProjectInfo.setAdcd(sysDept.getXzqhName()); } - return toAjax(specialProjectInfoService.save(specialProjectInfo)); } diff --git a/jwtech-system/src/main/java/com/kms/earlyStage/domain/SpecialProjectInfo.java b/jwtech-system/src/main/java/com/kms/earlyStage/domain/SpecialProjectInfo.java index 302e46b1..346b0331 100644 --- a/jwtech-system/src/main/java/com/kms/earlyStage/domain/SpecialProjectInfo.java +++ b/jwtech-system/src/main/java/com/kms/earlyStage/domain/SpecialProjectInfo.java @@ -97,8 +97,6 @@ public class SpecialProjectInfo extends BaseEntity * 行政区划 */ @ApiModelProperty("行政区划") - @TableField(exist = false) - @NoQuery - private String Adcd; + private String adcd; } diff --git a/jwtech-system/src/main/java/com/kms/warn/WarnOperate.java b/jwtech-system/src/main/java/com/kms/warn/WarnOperate.java index d540609a..d00e5a93 100644 --- a/jwtech-system/src/main/java/com/kms/warn/WarnOperate.java +++ b/jwtech-system/src/main/java/com/kms/warn/WarnOperate.java @@ -30,7 +30,7 @@ public class WarnOperate { bsSgcJsjdWarnResult.setWarnResult(warnResult); bsSgcJsjdWarnResult.preInsert(); bsSgcJsjdWarnResult.setCreateUid("1"); //系统账号 - bsSgcJsjdWarnResult.setResultType("1"); //预警 + bsSgcJsjdWarnResult.setResultType("2"); //预警 bsSgcJsjdWarnResultService.save(bsSgcJsjdWarnResult); }else { one.setWarnResult(warnResult); diff --git a/jwtech-system/src/main/java/com/kms/warn/WarnType.java b/jwtech-system/src/main/java/com/kms/warn/WarnType.java index 01976ff8..40930bae 100644 --- a/jwtech-system/src/main/java/com/kms/warn/WarnType.java +++ b/jwtech-system/src/main/java/com/kms/warn/WarnType.java @@ -16,11 +16,15 @@ public enum WarnType { //标段单次变更金额超过500万元,或单项变更金额超过标段合同价5% SECTION_EXCEED("A001","001","标段单次变更金额超过500万元,或单项变更金额超过标段合同价5%",null), //保证金的缴纳时间与施工令时间进行比对,大于20个工作日 - MARGIN_PAYMENT_TIME("D001","004","保证金的缴纳时间与施工令时间进行比对,大于%个工作日",null), + MARGIN_PAYMENT_TIME("D001","004","保证金的缴纳时间与施工令时间进行比对,大于20个工作日",null), //专用账户余额等于小于0 - SALARY_DEPOSIT("D002","004","专用账户余额为%",null), + SALARY_DEPOSIT("D002","004","专用账户余额为%s",null), //标段变更次数累计超过20次的,非基本建设程序项目的标段变更次数累计超过10次的 - SECTION_CHANGES("A003","001","标段变更次数累计%次,超过20次","基本建设程序项目的标段变更次数累计%次,超过10次"); + SECTION_CHANGES("A003","001","标段变更次数累计%s次,超过20次","基本建设程序项目的标段变更次数累计%s次,超过10次"), + //检测结果合格率<90% + DETECTION_QUALIFICATION_RATE("A001","003","检测结果合格率为%s,小于90%",null), + //超过合同工期6个月未完成验收 + EXCEEDING_CONTRACT_PERIOD("A001","007","超过合同工期6个月未完成验收",null); private String warnType; private String warnSubType; @@ -44,7 +48,7 @@ public enum WarnType { public String replaceString(String warnResult,String target){ - return warnResult.replaceAll("%",target); + return warnResult.replaceAll("%s",target); } } diff --git a/jwtech-system/src/main/java/com/kms/warn/WarningJudgment.java b/jwtech-system/src/main/java/com/kms/warn/WarningJudgment.java index 2b8abc30..0abb873d 100644 --- a/jwtech-system/src/main/java/com/kms/warn/WarningJudgment.java +++ b/jwtech-system/src/main/java/com/kms/warn/WarningJudgment.java @@ -2,46 +2,50 @@ package com.kms.warn; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.kms.build.domain.BsSgcJsjdBuiChange; -import com.kms.build.domain.BsSgcJsjdBuiConstrMeas; -import com.kms.build.domain.BsSgcJsjdBuiGzbzj; -import com.kms.build.domain.BsSgcJsjdBuiSalaryEnsure; -import com.kms.build.service.BsSgcJsjdBuiChangeService; -import com.kms.build.service.BsSgcJsjdBuiConstrMeasService; -import com.kms.build.service.BsSgcJsjdBuiSalaryEnsureService; +import com.jianwei.common.utils.StringUtils; +import com.kms.build.domain.*; +import com.kms.build.service.*; +import com.kms.warn.warnconfig.HolidayUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.scheduling.annotation.Async; -import java.lang.reflect.Array; import java.math.BigDecimal; -import java.nio.charset.StandardCharsets; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Arrays; +import java.time.Instant; +import java.util.Calendar; import java.util.Date; @Async @Configuration public class WarningJudgment { + public static final String redisKey = "warn:queue"; + @Autowired WarnOperate warnOperate; + @Autowired + RedisTemplate redisTemplate; + @Autowired BsSgcJsjdBuiSalaryEnsureService bsSgcJsjdBuiSalaryEnsureService; @Autowired BsSgcJsjdBuiConstrMeasService bsSgcJsjdBuiConstrMeasService; @Autowired BsSgcJsjdBuiChangeService bsSgcJsjdBuiChangeService; + @Autowired + BsSgcJsjdBuiSubProjectQualityService bsSgcJsjdBuiSubProjectQualityService; + @Autowired + BsSgcJsjdBuiContInfoService bsSgcJsjdBuiContInfoService; /** * 农民工工资保证金预警 * @param - * @param warnType + * @param */ - public void salaryEnsureWarn(BsSgcJsjdBuiSalaryEnsure salaryEnsure, WarnType warnType){ + public void salaryEnsureWarn(BsSgcJsjdBuiSalaryEnsure salaryEnsure){ + WarnType warnType = WarnType.MARGIN_PAYMENT_TIME; String proCode = salaryEnsure.getProCode(); String proNo = salaryEnsure.getProNo(); BsSgcJsjdBuiConstrMeas one = bsSgcJsjdBuiConstrMeasService.getOne(Wrappers.lambdaQuery(BsSgcJsjdBuiConstrMeas.class) @@ -63,9 +67,10 @@ public class WarningJudgment { /** * 农名工工资保证金专用账户预警 * @param - * @param warnType + * @param */ - public void GzbzjWarn(BsSgcJsjdBuiGzbzj bsSgcJsjdBuiGzbzj, WarnType warnType){ + public void GzbzjWarn(BsSgcJsjdBuiGzbzj bsSgcJsjdBuiGzbzj){ + WarnType warnType = WarnType.MARGIN_PAYMENT_TIME; String proNo = bsSgcJsjdBuiGzbzj.getProNo(); String projectCode = bsSgcJsjdBuiGzbzj.getProjectCode(); String balance = bsSgcJsjdBuiGzbzj.getBalance(); @@ -79,7 +84,8 @@ public class WarningJudgment { /** * 标段变更预警 */ - public void ChangeWarn(BsSgcJsjdBuiChange bsSgcJsjdBuiChange,WarnType warnType){ + public void ChangeWarn(BsSgcJsjdBuiChange bsSgcJsjdBuiChange){ + WarnType warnType = WarnType.SECTION_CHANGES; String proCode = bsSgcJsjdBuiChange.getProCode(); String proNo = bsSgcJsjdBuiChange.getProNo(); QueryWrapper query = Wrappers.query(); @@ -98,6 +104,40 @@ public class WarningJudgment { } + /** + * 检测结果合格率预警 + */ + public void detectionWarn(BsSgcJsjdBuiSubProjectQuality bsSgcJsjdBuiSubProjectQuality){ + WarnType warnType = WarnType.DETECTION_QUALIFICATION_RATE; + String cellProjectRate = bsSgcJsjdBuiSubProjectQuality.getCellProjectRate(); + String proNo = bsSgcJsjdBuiSubProjectQuality.getProNo(); + String proCode = bsSgcJsjdBuiSubProjectQuality.getProCode(); + if(StringUtils.isNotEmpty(cellProjectRate)){ + Double aDouble = Double.valueOf(cellProjectRate); + if(aDouble<90){ + warnOperate.sendWarn(proNo,proCode,warnType, warnType.replaceString(warnType.getOtherResult(),cellProjectRate)); + } + } + } + + /** + * 合同超期预警 + */ + public void exceedingWarn(BsSgcJsjdBuiContInfo bsSgcJsjdBuiContInfo){ + WarnType exceedingContractPeriod = WarnType.EXCEEDING_CONTRACT_PERIOD; + String contractDuration = bsSgcJsjdBuiContInfo.getContractDuration(); + Integer integer = Integer.valueOf(contractDuration); //几月 + + Date commencementTime = bsSgcJsjdBuiContInfo.getCommencementTime(); + Calendar instance = Calendar.getInstance(); + instance.setTime(commencementTime); + instance.add(Calendar.MONTH,integer); +// redisTemplate.opsForZSet().add() + + } + + + } diff --git a/jwtech-system/src/main/java/com/kms/warn/HolidayUtil.java b/jwtech-system/src/main/java/com/kms/warn/warnconfig/HolidayUtil.java similarity index 99% rename from jwtech-system/src/main/java/com/kms/warn/HolidayUtil.java rename to jwtech-system/src/main/java/com/kms/warn/warnconfig/HolidayUtil.java index 598c124a..f084ed2b 100644 --- a/jwtech-system/src/main/java/com/kms/warn/HolidayUtil.java +++ b/jwtech-system/src/main/java/com/kms/warn/warnconfig/HolidayUtil.java @@ -1,4 +1,4 @@ -package com.kms.warn; +package com.kms.warn.warnconfig; import cn.hutool.core.date.DateUtil; import com.jwtech.util.StringUtil; import org.apache.commons.lang.StringUtils; diff --git a/jwtech-system/src/main/java/com/kms/warn/TaskPoolConfig.java b/jwtech-system/src/main/java/com/kms/warn/warnconfig/TaskPoolConfig.java similarity index 98% rename from jwtech-system/src/main/java/com/kms/warn/TaskPoolConfig.java rename to jwtech-system/src/main/java/com/kms/warn/warnconfig/TaskPoolConfig.java index 37d4ba6f..372bafcd 100644 --- a/jwtech-system/src/main/java/com/kms/warn/TaskPoolConfig.java +++ b/jwtech-system/src/main/java/com/kms/warn/warnconfig/TaskPoolConfig.java @@ -1,4 +1,4 @@ -package com.kms.warn; +package com.kms.warn.warnconfig; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; diff --git a/jwtech-system/src/main/java/com/kms/warn/warnconfig/WarnRo.java b/jwtech-system/src/main/java/com/kms/warn/warnconfig/WarnRo.java new file mode 100644 index 00000000..9afed2d1 --- /dev/null +++ b/jwtech-system/src/main/java/com/kms/warn/warnconfig/WarnRo.java @@ -0,0 +1,15 @@ +package com.kms.warn.warnconfig; + +import com.kms.warn.WarnType; +import lombok.Data; + +@Data +public class WarnRo { + + WarnType warnType; + + String proNo; + + String proCode; + +}