From 4ab167bd46cc342c08d3fad9cfa10baf02817114 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期二, 20 八月 2024 17:17:25 +0800
Subject: [PATCH] 合同模板修改
---
ycl-server/src/main/java/com/ycl/task/ContractTask.java | 36 ++++++
ycl-server/src/main/java/com/ycl/platform/service/impl/TContractServiceImpl.java | 96 +++++----------
ycl-common/src/main/java/enumeration/ContractRule.java | 58 ++++-----
ycl-server/src/main/java/com/ycl/handler/CustomCellWriteHandler.java | 153 +++++++++++--------------
4 files changed, 165 insertions(+), 178 deletions(-)
diff --git a/ycl-common/src/main/java/enumeration/ContractRule.java b/ycl-common/src/main/java/enumeration/ContractRule.java
index 1e8080b..0ee418a 100644
--- a/ycl-common/src/main/java/enumeration/ContractRule.java
+++ b/ycl-common/src/main/java/enumeration/ContractRule.java
@@ -3,9 +3,7 @@
import lombok.Getter;
import java.util.Arrays;
-import java.util.Collections;
import java.util.List;
-import java.util.stream.Collectors;
/**
* @author gonghl
@@ -14,46 +12,42 @@
@Getter
public enum ContractRule {
- CONTRACT_RULE_1("瑙嗛骞冲潎鍦ㄧ嚎鐜�", Arrays.asList("CONTRACT_RULE_2", "CONTRACT_RULE_3", "CONTRACT_RULE_4", "CONTRACT_RULE_5")),
- CONTRACT_RULE_2("鈮�98%", Collections.EMPTY_LIST),
- CONTRACT_RULE_3("95%鈮よ棰戝钩鍧囧湪绾跨巼锛�98%", Collections.EMPTY_LIST),
- CONTRACT_RULE_4("90%鈮よ棰戝钩鍧囧湪绾跨巼锛�95%", Collections.EMPTY_LIST),
- CONTRACT_RULE_5("锛�90%", Collections.EMPTY_LIST),
- CONTRACT_RULE_6("鍓嶇鎰熺煡婧愭不鐞嗗伐浣�", Arrays.asList("CONTRACT_RULE_7", "CONTRACT_RULE_8", "CONTRACT_RULE_9")),
- CONTRACT_RULE_7("鏃堕挓鍚屾锛堣秴杩嚶�3绉掍负涓嶅悎鏍硷級", Collections.EMPTY_LIST),
- CONTRACT_RULE_8("OSD鏍囪瘑", Collections.EMPTY_LIST),
- CONTRACT_RULE_9("涓�鏈轰竴妗�", Collections.EMPTY_LIST),
- CONTRACT_RULE_10("瀛樺偍鏁呴殰", Arrays.asList("CONTRACT_RULE_11", "CONTRACT_RULE_12")),
- CONTRACT_RULE_11("鍥犲瓨鍌ㄨ澶囥�佷簯瀛樺偍杞欢绛夊紩璧峰钩鍙颁笉鑳芥甯告煡鐪嬪巻鍙插浘鍍忥紝椤诲湪24灏忔椂鎺掗櫎鏁呴殰", Collections.EMPTY_LIST),
- CONTRACT_RULE_12("鍥犺棰戞垨鑰呭浘鐗囦涪澶卞鑷撮噸瑕佹浜嬩欢涓嶈兘鍥炴斁鎴栨煡鐪�", Collections.EMPTY_LIST),
- CONTRACT_RULE_13("瀵逛簬鍓嶇鐐逛綅寮傚父鎯呭喌鐨勫鐞�", List.of("CONTRACT_RULE_14")),
- CONTRACT_RULE_14("闀滃ご鏁呴殰鎴栨薄鏌撴垨鏍戞灊閬尅鎴栨灙鏈鸿瑙掑亸绉绘甯歌搴︽垨琛ュ厜鐏簲浜湭浜�", Collections.EMPTY_LIST),
- CONTRACT_RULE_15("寤虹珛鏁版嵁鐩戞祴缁存姢鏈哄埗", List.of("CONTRACT_RULE_16")),
- CONTRACT_RULE_16("涓爣浜哄簲褰撳缓绔嬫暟鎹洃娴嬬淮鎶ゆ満鍒讹紝褰撳彂鐢熸暟鎹紓甯告儏鍐垫椂锛屽簲鍦� 24 灏忔椂鍐呮仮澶嶃�傦紙鏁版嵁寮傚父鍖呮嫭瀹炴椂鐩戞帶鎴栧綍鍍忚棰戞媺娴佸け璐ワ紝鍥剧墖鑾峰彇澶辫触銆佽瑙夎绠楄В鏋愬紓甯哥瓑锛夈��", Collections.EMPTY_LIST),
- CONTRACT_RULE_17("纭繚褰曞儚瀹屾暣涓嶅畾鏈熷鎵�鏈夌偣浣嶅綍鍍忓畬鏁存�ф娊鏌�", Arrays.asList("CONTRACT_RULE_18", "CONTRACT_RULE_19", "CONTRACT_RULE_20", "CONTRACT_RULE_21", "CONTRACT_RULE_22")),
- CONTRACT_RULE_18("姣忚矾瑙嗛绱涓㈠け10鍒嗛挓浠ュ唴", Collections.EMPTY_LIST),
- CONTRACT_RULE_19("涓㈠け10-60 鍒嗛挓", Collections.EMPTY_LIST),
- CONTRACT_RULE_20("涓㈠け1 灏忔椂-4 灏忔椂锛堝惈锛�", Collections.EMPTY_LIST),
- CONTRACT_RULE_21("涓㈠け4 灏忔椂-12 灏忔椂锛堝惈锛�", Collections.EMPTY_LIST),
- CONTRACT_RULE_22("涓㈠け12 灏忔椂浠ヤ笂", Collections.EMPTY_LIST),
- CONTRACT_RULE_23("纭繚鍥剧墖瀹屾暣涓嶅畾鏈熷鎵�鏈変汉鑴歌溅杈嗕互鍙婃櫤鑳藉墠绔姄鎷嶇殑鍥剧墖瀹屾暣鎬ф娊鏌�", List.of("CONTRACT_RULE_24")),
- CONTRACT_RULE_24("鍙戠幇鍚庡彴瀛樺偍涓嶈兘璋冨彇鍓嶇璁惧鍥剧墖", Collections.EMPTY_LIST),
+ CONTRACT_RULE_Online(1,"璁惧骞冲潎鍦ㄧ嚎鐜�", 0),
+
+ CONTRACT_RULE_2(2,"鍓嶇鎰熺煡婧愭不鐞嗗伐浣�", 0),
+ CONTRACT_RULE_Time(3,"鏃堕挓鍚屾锛堣秴杩嚶�3绉掍负涓嶅悎鏍硷級", 2),
+ CONTRACT_RULE_OSD(4,"OSD鏍囪瘑", 2),
+ CONTRACT_RULE_OneFile(5,"涓�鏈轰竴妗�", 2),
+
+ CONTRACT_RULE_6(6,"瀛樺偍鏁呴殰", 0),
+ CONTRACT_RULE_7(7,"鍥犲瓨鍌ㄨ澶囥�佷簯瀛樺偍杞欢绛夊紩璧峰钩鍙颁笉鑳芥甯告煡鐪嬪巻鍙插浘鍍忥紝椤诲湪24灏忔椂鎺掗櫎鏁呴殰", 6),
+ CONTRACT_RULE_8(8,"鍥犺棰戞垨鑰呭浘鐗囦涪澶卞鑷撮噸瑕佹浜嬩欢涓嶈兘鍥炴斁鎴栨煡鐪�", 6),
+
+ CONTRACT_RULE_9(9,"瀵逛簬鍓嶇鐐逛綅寮傚父鎯呭喌鐨勫鐞�", 0),
+ CONTRACT_RULE_10(10,"闀滃ご鏁呴殰鎴栨薄鏌撴垨鏍戞灊閬尅鎴栨灙鏈鸿瑙掑亸绉绘甯歌搴︽垨琛ュ厜鐏簲浜湭浜�", 9),
+
+ CONTRACT_RULE_13(13,"纭繚褰曞儚瀹屾暣涓嶅畾鏈熷鎵�鏈夌偣浣嶅綍鍍忓畬鏁存�ф娊鏌�", 0),
+
+ CONTRACT_RULE_19(19,"纭繚鍥剧墖瀹屾暣涓嶅畾鏈熷鎵�鏈変汉鑴歌溅杈嗕互鍙婃櫤鑳藉墠绔姄鎷嶇殑鍥剧墖瀹屾暣鎬ф娊鏌�", 0),
+ CONTRACT_RULE_20(20,"鍙戠幇鍚庡彴瀛樺偍涓嶈兘璋冨彇鍓嶇璁惧鍥剧墖", 19),
+
;
-
+ private final Integer id;
private final String name;
- private final List<String> children;
+ private final Integer parentId;
- ContractRule(String name, List<String> children) {
+ ContractRule(Integer id, String name, Integer parentId) {
+ this.id = id;
this.name = name;
- this.children = children;
+ this.parentId = parentId;
}
public static List<ContractRule> getParent() {
- return Arrays.stream(ContractRule.values()).filter(contractRule -> !contractRule.getChildren().isEmpty()).toList();
+ return Arrays.stream(ContractRule.values()).filter(contractRule -> contractRule.parentId ==0).toList();
}
public static List<ContractRule> getChildren(ContractRule parent) {
- return parent.getChildren().stream().map(ContractRule::valueOf).collect(Collectors.toList());
+ return Arrays.stream(ContractRule.values()).filter(contractRule -> parent.id.equals(contractRule.parentId)).toList();
}
}
diff --git a/ycl-server/src/main/java/com/ycl/handler/CustomCellWriteHandler.java b/ycl-server/src/main/java/com/ycl/handler/CustomCellWriteHandler.java
index 41b9066..5899d2a 100644
--- a/ycl-server/src/main/java/com/ycl/handler/CustomCellWriteHandler.java
+++ b/ycl-server/src/main/java/com/ycl/handler/CustomCellWriteHandler.java
@@ -14,6 +14,7 @@
import org.apache.poi.ss.util.CellRangeAddressList;
import org.apache.poi.ss.util.CellReference;
import org.apache.poi.xssf.usermodel.XSSFDataValidation;
+import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.Arrays;
@@ -29,18 +30,17 @@
* 鎵�浠ヨ兘鍋氱殑鑷畾涔夋搷浣滃緢涓板瘜
*/
// static class CustomCellWriteHandler {
-
- @Override
- public void afterCellDispose(CellWriteHandlerContext context) {
- // 褰撳墠鐨� cell
- Cell cell = context.getCell();
- // 杩欓噷鍙互瀵筩ell杩涜浠讳綍鎿嶄綔
- // 杩欓噷灏辫鑰冭檻 浣犺閽堝鍝竴鍒楄繘琛屼釜鎬у寲澶勭悊 涓�瀹氳璁板緱鍔犲垽鏂� 鍥犱负姣忎釜 cell 閮戒細鎵ц鍒拌繖閲� 鎵�浠ヨ璁板緱鍖哄垎
- if (BooleanUtils.isTrue(context.getHead()) && cell.getColumnIndex() == 1) {
- // 1 琛ㄧず 鐪侀偅涓�鍒� 瑕佸鐪佸競鍖鸿繘琛岃仈鍔ㄤ笅鎷夊鐞�
- ExcelAreaUtil.writeAreaInfo(context, 0);
- }
+ @Override
+ public void afterCellDispose(CellWriteHandlerContext context) {
+ // 褰撳墠鐨� cell
+ Cell cell = context.getCell();
+ // 杩欓噷鍙互瀵筩ell杩涜浠讳綍鎿嶄綔
+ // 杩欓噷灏辫鑰冭檻 浣犺閽堝鍝竴鍒楄繘琛屼釜鎬у寲澶勭悊 涓�瀹氳璁板緱鍔犲垽鏂� 鍥犱负姣忎釜 cell 閮戒細鎵ц鍒拌繖閲� 鎵�浠ヨ璁板緱鍖哄垎
+ if (BooleanUtils.isTrue(context.getHead()) && cell.getColumnIndex() == 1) {
+ // 1 琛ㄧず 鐪侀偅涓�鍒� 瑕佸鐪佸競鍖鸿繘琛岃仈鍔ㄤ笅鎷夊鐞�
+ ExcelAreaUtil.writeAreaInfo(context, 0);
}
+ }
// }
public static class ExcelAreaUtil {
@@ -76,7 +76,7 @@
// 鍑嗗鐐规暟鎹�
List<AreaInfo> provinceList = new ArrayList<>();
for (ContractRule contractRule : ContractRule.getParent()) {
- provinceList.add(new AreaInfo(contractRule.getName(), ContractRule.getChildren(contractRule).stream().map(ContractRule::getName).toList()));
+ provinceList.add(new AreaInfo(contractRule.getName(), CollectionUtils.isEmpty(ContractRule.getChildren(contractRule)) ? null : ContractRule.getChildren(contractRule).stream().map(ContractRule::getName).toList()));
}
// 鑾峰彇鍒板綋鍓嶇殑 excel 鍥犱负瑕佸垱寤洪殣钘忕殑 sheet 涔熷氨鏄渷甯傚尯鐨勫疄闄呭唴瀹归兘鏉ヨ嚜浜庨殣钘忕殑 sheet
@@ -96,23 +96,24 @@
for (AreaInfo pro : provinceList) {
String pName = pro.getName();
List<String> cList = pro.getAreaList();
- Row cRow = hideSheet.createRow(rowId++);
- cRow.createCell(0).setCellValue(pName);
- for (int j = 0; j < cList.size(); j++) {
- String cInfo = cList.get(j);
- Cell cCell = cRow.createCell(j + 1);
- cCell.setCellValue(cInfo);
+ if (!CollectionUtils.isEmpty(cList)) {
+ Row cRow = hideSheet.createRow(rowId++);
+ cRow.createCell(0).setCellValue(pName);
+ for (int j = 0; j < cList.size(); j++) {
+ String cInfo = cList.get(j);
+ Cell cCell = cRow.createCell(j + 1);
+ cCell.setCellValue(cInfo);
+ }
+
+ // 娣诲姞鍚嶇О绠$悊鍣�
+ String range = getRange(1, rowId, cList.size());
+ Name name = workbook.createName();
+ // key涓嶅彲閲嶅
+ name.setNameName(pName);
+ String formula = "area!" + range;
+ name.setRefersToFormula(formula);
}
-
- // 娣诲姞鍚嶇О绠$悊鍣�
- String range = getRange(1, rowId, cList.size());
- Name name = workbook.createName();
- // key涓嶅彲閲嶅
- name.setNameName(pName);
- String formula = "area!" + range;
- name.setRefersToFormula(formula);
}
-
// 缁欑渷娣诲姞涓嬫媺
int lastRow = 100;
setDataValidation(sheet, 1, lastRow, startIndex, startIndex);
@@ -134,7 +135,7 @@
CellRangeAddressList provRangeAddressList = new CellRangeAddressList(firstRow, lastRow, firstCol, lastCol);
DataValidation provinceDataValidation = dvHelper.createValidation(provConstraint, provRangeAddressList);
// 楠岃瘉
- provinceDataValidation.createErrorBox("error", "璇烽�夋嫨姝g‘鐨勭渷浠�");
+ provinceDataValidation.createErrorBox("error", "璇烽�夋嫨姝g‘鐨勮鍒�");
provinceDataValidation.setShowErrorBox(true);
provinceDataValidation.setSuppressDropDownArrow(true);
sheetPro.addValidationData(provinceDataValidation);
@@ -196,63 +197,45 @@
private static List<CalculateRule> getExcelData() {
ArrayList<CalculateRule> list = new ArrayList<>();
- CalculateRule calculateRule1 = new CalculateRule();
- calculateRule1.setId(1);
- calculateRule1.setRuleName("瑙嗛骞冲潎鍦ㄧ嚎鐜�");
- calculateRule1.setRuleCondition("鈮�98%");
- calculateRule1.setMax(98D);
- calculateRule1.setDeductCategory(RuleDeductCategoryEnum.DEDUCT_POINTS);
- calculateRule1.setCalcFraction(0.00);
- list.add(calculateRule1);
- CalculateRule calculateRule2 = new CalculateRule();
- calculateRule2.setRuleName("瑙嗛骞冲潎鍦ㄧ嚎鐜�");
- calculateRule2.setRuleCondition("95%鈮よ棰戝钩鍧囧湪绾跨巼锛�98%");
- calculateRule2.setMax(97D);
- calculateRule2.setMin(95D);
- calculateRule2.setDeductCategory(RuleDeductCategoryEnum.DEDUCT_POINTS);
- calculateRule2.setCalcFraction(5.00);
- list.add(calculateRule2);
- CalculateRule calculateRule3 = new CalculateRule();
- calculateRule3.setRuleName("瑙嗛骞冲潎鍦ㄧ嚎鐜�");
- calculateRule3.setRuleCondition("90%鈮よ棰戝钩鍧囧湪绾跨巼锛�95%");
- calculateRule3.setMax(94D);
- calculateRule3.setMin(90D);
- calculateRule3.setDeductCategory(RuleDeductCategoryEnum.DEDUCT_POINTS);
- calculateRule3.setCalcFraction(10.00);
- list.add(calculateRule3);
- CalculateRule calculateRule33 = new CalculateRule();
- calculateRule33.setRuleName("瑙嗛骞冲潎鍦ㄧ嚎鐜�");
- calculateRule33.setRuleCondition("锛�90%");
- calculateRule33.setMin(89D);
- calculateRule33.setDeductCategory(RuleDeductCategoryEnum.DEDUCT_POINTS);
- calculateRule33.setCalcFraction(10.00);
- list.add(calculateRule33);
- CalculateRule calculateRule4 = new CalculateRule();
- calculateRule4.setId(2);
- calculateRule4.setRuleName("鍓嶇鎰熺煡婧愭不鐞嗗伐浣�");
- calculateRule4.setRuleCondition("鏃堕挓鍚屾锛堣秴杩嚶�3绉掍负涓嶅悎鏍硷級");
- calculateRule4.setDeductCategory(RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY);
- calculateRule4.setCalcFraction(0.1);
- list.add(calculateRule4);
- CalculateRule calculateRule7 = new CalculateRule();
- calculateRule7.setRuleName("鍓嶇鎰熺煡婧愭不鐞嗗伐浣�");
- calculateRule7.setRuleCondition("OSD鏍囪瘑");
- list.add(calculateRule7);
- CalculateRule calculateRule6 = new CalculateRule();
- calculateRule6.setRuleName("鍓嶇鎰熺煡婧愭不鐞嗗伐浣�");
- calculateRule6.setRuleCondition("涓�鏈轰竴妗�");
- list.add(calculateRule6);
- CalculateRule calculateRule5 = new CalculateRule();
- calculateRule5.setId(3);
- calculateRule5.setRuleName("鍚庡彴绯荤粺鐨勪繚闅�");
- calculateRule5.setRuleCondition("鍗曟鏁呴殰鏃堕暱鑻ヨ秴鍑�72灏忔椂涓嶈冻144灏忔椂鐨勶紝姣忚秴鍑�12灏忔椂锛堜笉瓒�12灏忔椂鎸�12灏忔椂璁★級");
- calculateRule5.setMax(144D);
- calculateRule5.setMin(72D);
- calculateRule5.setDeductCategory(RuleDeductCategoryEnum.MULTIPLY_POINTS_AFTER_DIVIDING_QUANTITY);
- calculateRule5.setCalcFraction(2.00);
- calculateRule5.setCalcUnit(12);
- list.add(calculateRule5);
+
+ setTemplateRule(list,1,"璁惧骞冲潎鍦ㄧ嚎鐜�","鈮�98%",null,98D,RuleDeductCategoryEnum.DEDUCT_POINTS,0.00);
+ setTemplateRule(list,null,"璁惧骞冲潎鍦ㄧ嚎鐜�","95%鈮よ澶囧钩鍧囧湪绾跨巼锛�98%",97D,95D,RuleDeductCategoryEnum.DEDUCT_POINTS,5.00);
+ setTemplateRule(list,null,"璁惧骞冲潎鍦ㄧ嚎鐜�","90%鈮よ澶囧钩鍧囧湪绾跨巼锛�95%",94D,90D,RuleDeductCategoryEnum.DEDUCT_POINTS,10.00);
+ setTemplateRule(list,null,"璁惧骞冲潎鍦ㄧ嚎鐜�","锛�90%",89D,null,RuleDeductCategoryEnum.DEDUCT_POINTS,20.00);
+
+ setTemplateRule(list,2,"鍓嶇鎰熺煡婧愭不鐞嗗伐浣�","鏃堕挓鍚屾锛堣秴杩嚶�3绉掍负涓嶅悎鏍硷級",null,null,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,0.1);
+ setTemplateRule(list,null,"鍓嶇鎰熺煡婧愭不鐞嗗伐浣�","OSD鏍囪瘑",null,null,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,0.1);
+ setTemplateRule(list,null,"鍓嶇鎰熺煡婧愭不鐞嗗伐浣�","涓�鏈轰竴妗�",null,null,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,0.1);
+
+ setTemplateRule(list,3,"瀛樺偍鏁呴殰","鍥犲瓨鍌ㄨ澶囥�佷簯瀛樺偍杞欢绛夊紩璧峰钩鍙颁笉鑳芥甯告煡鐪嬪巻鍙插浘鍍�,鍗曟鏁呴殰鏃堕暱鍦�24灏忔椂浠ュ唴鐨�",24D,null,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,0.5);
+ setTemplateRule(list,null,"瀛樺偍鏁呴殰","鍥犲瓨鍌ㄨ澶囥�佷簯瀛樺偍杞欢绛夊紩璧峰钩鍙颁笉鑳芥甯告煡鐪嬪巻鍙插浘鍍�,鍗曟鏁呴殰鏃堕暱鑻ヨ秴鍑�24灏忔椂浠ヤ笂銆�",null,24D,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,1.0);
+ setTemplateRule(list,null,"瀛樺偍鏁呴殰","鍥犺棰戞垨鑰呭浘鐗囦涪澶卞鑷撮噸瑕佹浜嬩欢涓嶈兘鍥炴斁鎴栨煡鐪�",null,null,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,2.0);
+
+ setTemplateRule(list,4,"瀵逛簬鍓嶇鐐逛綅寮傚父鎯呭喌鐨勫鐞�","闀滃ご鏁呴殰鎴栨薄鏌撴垨鏍戞灊閬尅鎴栨灙鏈鸿瑙掑亸绉绘甯歌搴︽垨琛ュ厜鐏簲浜湭浜�,24灏忔椂鍚庢湭淇鐨�",null,24D,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,0.5);
+ setTemplateRule(list,null,"瀵逛簬鍓嶇鐐逛綅寮傚父鎯呭喌鐨勫鐞�","闀滃ご鏁呴殰鎴栨薄鏌撴垨鏍戞灊閬尅鎴栨灙鏈鸿瑙掑亸绉绘甯歌搴︽垨琛ュ厜鐏簲浜湭浜�,48灏忔椂鍚庢湭淇鐨�",null,48D,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,1.0);
+
+ setTemplateRule(list,5,"纭繚褰曞儚瀹屾暣涓嶅畾鏈熷鎵�鏈夌偣浣嶅綍鍍忓畬鏁存�ф娊鏌�","姣忚矾瑙嗛绱涓㈠け10鍒嗛挓浠ュ唴",10D,null,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,0.2);
+ setTemplateRule(list,null,"纭繚褰曞儚瀹屾暣涓嶅畾鏈熷鎵�鏈夌偣浣嶅綍鍍忓畬鏁存�ф娊鏌�","涓㈠け10-60 鍒嗛挓",10D,60D,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,0.5);
+ setTemplateRule(list,null,"纭繚褰曞儚瀹屾暣涓嶅畾鏈熷鎵�鏈夌偣浣嶅綍鍍忓畬鏁存�ф娊鏌�","涓㈠け1 灏忔椂-4 灏忔椂锛堝惈锛�",60D,240D,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,1.0);
+ setTemplateRule(list,null,"纭繚褰曞儚瀹屾暣涓嶅畾鏈熷鎵�鏈夌偣浣嶅綍鍍忓畬鏁存�ф娊鏌�","涓㈠け4 灏忔椂-12 灏忔椂锛堝惈锛�",240D,720D,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,1.5);
+ setTemplateRule(list,null,"纭繚褰曞儚瀹屾暣涓嶅畾鏈熷鎵�鏈夌偣浣嶅綍鍍忓畬鏁存�ф娊鏌�","涓㈠け12 灏忔椂浠ヤ笂",null,720D,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,2.0);
+
+ setTemplateRule(list,6,"纭繚鍥剧墖瀹屾暣涓嶅畾鏈熷鎵�鏈変汉鑴歌溅杈嗕互鍙婃櫤鑳藉墠绔姄鎷嶇殑鍥剧墖瀹屾暣鎬ф娊鏌�","鍙戠幇鍚庡彴瀛樺偍涓嶈兘璋冨彇鍓嶇璁惧鍥剧墖",null,null,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,2.0);
+
+
return list;
}
-}
\ No newline at end of file
+ private static void setTemplateRule(ArrayList<CalculateRule> list,Integer id,String ruleName,String condition,Double max,Double min,RuleDeductCategoryEnum deductCategoryEnum,Double calcFraction) {
+ CalculateRule calculateRule = new CalculateRule();
+ calculateRule.setId(id);
+ calculateRule.setRuleName(ruleName);
+ calculateRule.setRuleCondition(condition);
+ calculateRule.setMax(max);
+ calculateRule.setMin(min);
+ calculateRule.setDeductCategory(deductCategoryEnum);
+ calculateRule.setCalcFraction(calcFraction);
+ list.add(calculateRule);
+ }
+
+}
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/TContractServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/TContractServiceImpl.java
index 747dd0e..03bc5de 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/TContractServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/TContractServiceImpl.java
@@ -79,69 +79,43 @@
private List<CalculateRule> getExcelData() {
ArrayList<CalculateRule> list = new ArrayList<>();
- CalculateRule calculateRule1 = new CalculateRule();
- calculateRule1.setId(1);
- calculateRule1.setRuleName("瑙嗛骞冲潎鍦ㄧ嚎鐜�");
- calculateRule1.setRuleCondition("鈮�98%");
- calculateRule1.setMax(98D);
- calculateRule1.setDeductCategory(RuleDeductCategoryEnum.DEDUCT_POINTS);
- calculateRule1.setCalcFraction(0.00);
- list.add(calculateRule1);
- CalculateRule calculateRule2 = new CalculateRule();
- calculateRule2.setRuleName("瑙嗛骞冲潎鍦ㄧ嚎鐜�");
- calculateRule2.setRuleCondition("95%鈮よ棰戝钩鍧囧湪绾跨巼锛�98%");
- calculateRule2.setMax(97D);
- calculateRule2.setMin(95D);
- calculateRule2.setDeductCategory(RuleDeductCategoryEnum.DEDUCT_POINTS);
- calculateRule2.setCalcFraction(5.00);
- list.add(calculateRule2);
- CalculateRule calculateRule3 = new CalculateRule();
- calculateRule3.setRuleName("瑙嗛骞冲潎鍦ㄧ嚎鐜�");
- calculateRule3.setRuleCondition("90%鈮よ棰戝钩鍧囧湪绾跨巼锛�95%");
- calculateRule3.setMax(94D);
- calculateRule3.setMin(90D);
- calculateRule3.setDeductCategory(RuleDeductCategoryEnum.DEDUCT_POINTS);
- calculateRule3.setCalcFraction(10.00);
- list.add(calculateRule3);
- CalculateRule calculateRule33 = new CalculateRule();
- calculateRule33.setRuleName("瑙嗛骞冲潎鍦ㄧ嚎鐜�");
- calculateRule33.setRuleCondition("锛�90%");
- calculateRule33.setMin(89D);
- calculateRule33.setDeductCategory(RuleDeductCategoryEnum.DEDUCT_POINTS);
- calculateRule33.setCalcFraction(10.00);
- list.add(calculateRule33);
- CalculateRule calculateRule4 = new CalculateRule();
- calculateRule4.setId(2);
- calculateRule4.setRuleName("鍓嶇鎰熺煡婧愭不鐞嗗伐浣�");
- calculateRule4.setRuleCondition("鏃堕挓鍚屾锛堣秴杩嚶�3绉掍负涓嶅悎鏍硷級");
- calculateRule4.setDeductCategory(RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY);
- calculateRule4.setCalcFraction(0.1);
- list.add(calculateRule4);
- CalculateRule calculateRule7 = new CalculateRule();
- calculateRule7.setRuleName("鍓嶇鎰熺煡婧愭不鐞嗗伐浣�");
- calculateRule7.setRuleCondition("OSD鏍囪瘑");
- calculateRule7.setDeductCategory(RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY);
- calculateRule7.setCalcFraction(0.1);
- list.add(calculateRule7);
- CalculateRule calculateRule6 = new CalculateRule();
- calculateRule6.setRuleName("鍓嶇鎰熺煡婧愭不鐞嗗伐浣�");
- calculateRule6.setRuleCondition("涓�鏈轰竴妗�");
- calculateRule6.setDeductCategory(RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY);
- calculateRule6.setCalcFraction(0.1);
- list.add(calculateRule6);
- CalculateRule calculateRule5 = new CalculateRule();
- calculateRule5.setId(3);
- calculateRule5.setRuleName("鍚庡彴绯荤粺鐨勪繚闅�");
- calculateRule5.setRuleCondition("鍗曟鏁呴殰鏃堕暱鑻ヨ秴鍑�72灏忔椂涓嶈冻144灏忔椂鐨勶紝姣忚秴鍑�12灏忔椂锛堜笉瓒�12灏忔椂鎸�12灏忔椂璁★級");
- calculateRule5.setMax(144D);
- calculateRule5.setMin(72D);
- calculateRule5.setDeductCategory(RuleDeductCategoryEnum.MULTIPLY_POINTS_AFTER_DIVIDING_QUANTITY);
- calculateRule5.setCalcFraction(2.00);
- calculateRule5.setCalcUnit(12);
- list.add(calculateRule5);
+ setTemplateRule(list,1,"璁惧骞冲潎鍦ㄧ嚎鐜�","鈮�98%",null,98D,RuleDeductCategoryEnum.DEDUCT_POINTS,0.00);
+ setTemplateRule(list,null,"璁惧骞冲潎鍦ㄧ嚎鐜�","95%鈮よ澶囧钩鍧囧湪绾跨巼锛�98%",97D,95D,RuleDeductCategoryEnum.DEDUCT_POINTS,5.00);
+ setTemplateRule(list,null,"璁惧骞冲潎鍦ㄧ嚎鐜�","90%鈮よ澶囧钩鍧囧湪绾跨巼锛�95%",94D,90D,RuleDeductCategoryEnum.DEDUCT_POINTS,10.00);
+ setTemplateRule(list,null,"璁惧骞冲潎鍦ㄧ嚎鐜�","锛�90%",89D,null,RuleDeductCategoryEnum.DEDUCT_POINTS,20.00);
+
+ setTemplateRule(list,2,"鍓嶇鎰熺煡婧愭不鐞嗗伐浣�","鏃堕挓鍚屾锛堣秴杩嚶�3绉掍负涓嶅悎鏍硷級",null,null,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,0.1);
+ setTemplateRule(list,null,"鍓嶇鎰熺煡婧愭不鐞嗗伐浣�","OSD鏍囪瘑",null,null,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,0.1);
+ setTemplateRule(list,null,"鍓嶇鎰熺煡婧愭不鐞嗗伐浣�","涓�鏈轰竴妗�",null,null,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,0.1);
+
+ setTemplateRule(list,3,"瀛樺偍鏁呴殰","鍥犲瓨鍌ㄨ澶囥�佷簯瀛樺偍杞欢绛夊紩璧峰钩鍙颁笉鑳芥甯告煡鐪嬪巻鍙插浘鍍�,鍗曟鏁呴殰鏃堕暱鍦�24灏忔椂浠ュ唴鐨�",24D,null,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,0.5);
+ setTemplateRule(list,null,"瀛樺偍鏁呴殰","鍥犲瓨鍌ㄨ澶囥�佷簯瀛樺偍杞欢绛夊紩璧峰钩鍙颁笉鑳芥甯告煡鐪嬪巻鍙插浘鍍�,鍗曟鏁呴殰鏃堕暱鑻ヨ秴鍑�24灏忔椂浠ヤ笂銆�",null,24D,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,1.0);
+ setTemplateRule(list,null,"瀛樺偍鏁呴殰","鍥犺棰戞垨鑰呭浘鐗囦涪澶卞鑷撮噸瑕佹浜嬩欢涓嶈兘鍥炴斁鎴栨煡鐪�",null,null,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,2.0);
+
+ setTemplateRule(list,4,"瀵逛簬鍓嶇鐐逛綅寮傚父鎯呭喌鐨勫鐞�","闀滃ご鏁呴殰鎴栨薄鏌撴垨鏍戞灊閬尅鎴栨灙鏈鸿瑙掑亸绉绘甯歌搴︽垨琛ュ厜鐏簲浜湭浜�,24灏忔椂鍚庢湭淇鐨�",null,24D,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,0.5);
+ setTemplateRule(list,null,"瀵逛簬鍓嶇鐐逛綅寮傚父鎯呭喌鐨勫鐞�","闀滃ご鏁呴殰鎴栨薄鏌撴垨鏍戞灊閬尅鎴栨灙鏈鸿瑙掑亸绉绘甯歌搴︽垨琛ュ厜鐏簲浜湭浜�,48灏忔椂鍚庢湭淇鐨�",null,48D,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,1.0);
+
+ setTemplateRule(list,5,"纭繚褰曞儚瀹屾暣涓嶅畾鏈熷鎵�鏈夌偣浣嶅綍鍍忓畬鏁存�ф娊鏌�","姣忚矾瑙嗛绱涓㈠け10鍒嗛挓浠ュ唴",10D,null,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,0.2);
+ setTemplateRule(list,null,"纭繚褰曞儚瀹屾暣涓嶅畾鏈熷鎵�鏈夌偣浣嶅綍鍍忓畬鏁存�ф娊鏌�","涓㈠け10-60 鍒嗛挓",60D,10D,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,0.5);
+ setTemplateRule(list,null,"纭繚褰曞儚瀹屾暣涓嶅畾鏈熷鎵�鏈夌偣浣嶅綍鍍忓畬鏁存�ф娊鏌�","涓㈠け1 灏忔椂-4 灏忔椂锛堝惈锛�",240D,60D,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,1.0);
+ setTemplateRule(list,null,"纭繚褰曞儚瀹屾暣涓嶅畾鏈熷鎵�鏈夌偣浣嶅綍鍍忓畬鏁存�ф娊鏌�","涓㈠け4 灏忔椂-12 灏忔椂锛堝惈锛�",720D,240D,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,1.5);
+ setTemplateRule(list,null,"纭繚褰曞儚瀹屾暣涓嶅畾鏈熷鎵�鏈夌偣浣嶅綍鍍忓畬鏁存�ф娊鏌�","涓㈠け12 灏忔椂浠ヤ笂",null,720D,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,2.0);
+
+ setTemplateRule(list,6,"纭繚鍥剧墖瀹屾暣涓嶅畾鏈熷鎵�鏈変汉鑴歌溅杈嗕互鍙婃櫤鑳藉墠绔姄鎷嶇殑鍥剧墖瀹屾暣鎬ф娊鏌�","鍙戠幇鍚庡彴瀛樺偍涓嶈兘璋冨彇鍓嶇璁惧鍥剧墖",null,null,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,2.0);
+
return list;
}
-
+ private static void setTemplateRule(ArrayList<CalculateRule> list,Integer id,String ruleName,String condition,Double max,Double min,RuleDeductCategoryEnum deductCategoryEnum,Double calcFraction) {
+ CalculateRule calculateRule = new CalculateRule();
+ calculateRule.setId(id);
+ calculateRule.setRuleName(ruleName);
+ calculateRule.setRuleCondition(condition);
+ calculateRule.setMax(max);
+ calculateRule.setMin(min);
+ calculateRule.setDeductCategory(deductCategoryEnum);
+ calculateRule.setCalcFraction(calcFraction);
+ list.add(calculateRule);
+ }
@Override
@Transactional
@SneakyThrows
diff --git a/ycl-server/src/main/java/com/ycl/task/ContractTask.java b/ycl-server/src/main/java/com/ycl/task/ContractTask.java
new file mode 100644
index 0000000..bb95a81
--- /dev/null
+++ b/ycl-server/src/main/java/com/ycl/task/ContractTask.java
@@ -0,0 +1,36 @@
+package com.ycl.task;
+
+
+import com.ycl.platform.mapper.TContractMapper;
+import com.ycl.platform.mapper.TMonitorMapper;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.mongodb.core.MongoTemplate;
+import org.springframework.stereotype.Component;
+
+/**
+ * 鍚堝悓鑰冩牳瀹氭椂浠诲姟
+ */
+@Slf4j
+@Component("contractTask")
+public class ContractTask {
+ @Autowired
+ private MongoTemplate mongoTemplate;
+ @Autowired
+ private TMonitorMapper monitorMapper;
+ @Autowired
+ private TContractMapper contractMapper;
+
+ /**
+ * 鍚堝悓鑰冩牳 鍦ㄧ嚎鐜囨瘡鏃ヤ换鍔℃娴�
+ * 鏌ョ敓鏁堢殑鍚堝悓鍏宠仈鐨勫叕鍙革紝鑾峰彇unitId闆嗗悎
+ * 鏍规嵁unitId鏌ヨ瀵瑰簲鐐逛綅鑾峰彇鍚勪釜鍏徃绠$悊鐨勮澶嘔ds
+ * 鏌ヨ涓夌璁惧鍦ㄧ嚎涓嶅湪绾挎儏鍐碉紝灏佽涓轰竴涓猰ap<鍥芥爣鐮�,鍦ㄧ嚎鐘舵��>
+ * 璁$畻姣忔棩姣忓鍏徃鐨勫湪绾跨巼瀛樺叆redis
+ * 鏈堝簳璁$畻骞冲潎鍊硷紝鏍规嵁鍦ㄧ嚎鐜囧拰鍚堝悓鏍囧噯鎵e噺鍒嗘暟
+ */
+ public void onlineCheck() {
+// contractMapper.selectByRuleName();
+ }
+
+}
--
Gitblit v1.8.0