From a7a8a50f48c1bff5ddc52b3bad1782328f8043d8 Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期五, 12 四月 2024 18:50:20 +0800 Subject: [PATCH] 基础数据配置接口修改 --- ruoyi-system/src/main/java/com/ruoyi/system/listener/HistoryDataListener.java | 102 ++++++++++++++++++++++++++++++++------------------- 1 files changed, 64 insertions(+), 38 deletions(-) diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/listener/HistoryDataListener.java b/ruoyi-system/src/main/java/com/ruoyi/system/listener/HistoryDataListener.java index f084ed3..4a4ed90 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/listener/HistoryDataListener.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/listener/HistoryDataListener.java @@ -18,6 +18,7 @@ import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.CalculateUtil; import com.ruoyi.common.utils.CollUtils; +import com.ruoyi.common.utils.DateUtils; import com.ruoyi.system.domain.TbBasicData; import com.ruoyi.system.domain.TbBasicDataConfig; import com.ruoyi.system.domain.TbBasicDataConfigDetail; @@ -73,42 +74,6 @@ this.tbScoreService = tbScoreService; this.sysUserService = sysUserService; this.quarter = quarter; - } - - private static String validateFields(Map.Entry<Integer, String> integerStringEntry, - Map<Integer, String> dataMap, TbField field) { - String value = dataMap.get(integerStringEntry.getKey()); - if (FieldTypeEnum.NUMBER.equals(field.getFieldType())) { - Integer numMin = field.getNumMin(); - Integer numMax = field.getNumMax(); - if (Objects.nonNull(numMin) && Objects.nonNull(numMax)) { - if (numMin > Integer.parseInt(value) || numMax < Integer.parseInt(value)) { - throw new ServiceException( - String.format("字段(%s)的内容不在%d~%d范围内", field.getFieldName(), - numMin, numMax)); - } - } - } - if (FieldInputTypeEnum.MANUAL_INPUT.equals(field.getTextInputType()) - && FieldTypeEnum.TEXT.equals(field.getFieldType())) { - Integer textMinNum = field.getTextMinNum(); - Integer textMaxNum = field.getTextMaxNum(); - if (Objects.nonNull(textMinNum) && Objects.nonNull(textMaxNum)) { - if (textMinNum > value.length() || textMaxNum < value.length()) { - throw new ServiceException( - String.format("字段(%s)的内容长度超出%d~%d的范围", - field.getFieldName(), - textMinNum, textMaxNum)); - } - } - } - if (FieldTypeEnum.PERCENTAGE.equals(field.getFieldType())) { - if (0 > Double.parseDouble(value) || 100 < Double.parseDouble(value)) { - throw new ServiceException( - String.format("字段(%s)的内容不在0~100范围内", field.getFieldName())); - } - } - return value; } @Override @@ -190,6 +155,7 @@ tbBasicData.setDeptAreaCode(areaCode); tbBasicData.setRemark(dataMap.get(remarkIndex)); tbBasicData.setStatus(ReportingStatusEnum.MISSING_DATA); + tbBasicData.setReportingTime(DateUtils.getQuarterDate(quarter)); tbBasicDataService.saveOrUpdate(tbBasicData); tbBasicDataFieldService.remove(Wrappers.<TbBasicDataField>lambdaQuery() .eq(TbBasicDataField::getBasicDataId, tbBasicData.getId())); @@ -233,6 +199,11 @@ return tbBasicDataList; } + /** + * 需要导入的数据 + * + * @return List<Map < Integer, String>> + */ private List<Map<Integer, String>> getMapList() { for (int i = 0; i < cachedDataList.size(); i++) { if (cachedDataList.get(i).get(0).equals("栏号")) { @@ -242,6 +213,11 @@ return null; } + /** + * 表头 + * + * @return Map<Integer, String> + */ private Map<Integer, String> getHeadMap() { for (int i = 0; i < cachedDataList.size(); i++) { if (cachedDataList.get(i).get(0).equals("栏号")) { @@ -251,9 +227,58 @@ return null; } + /** + * 校验字段内容 + * + * @param integerStringEntry 动态字段表头Entry + * @param dataMap 数据map + * @param field 字段 + * @return 值 + */ + private static String validateFields(Map.Entry<Integer, String> integerStringEntry, + Map<Integer, String> dataMap, TbField field) { + String value = dataMap.get(integerStringEntry.getKey()); + if (FieldTypeEnum.NUMBER.equals(field.getFieldType())) { + Integer numMin = field.getNumMin(); + Integer numMax = field.getNumMax(); + if (Objects.nonNull(numMin) && Objects.nonNull(numMax)) { + if (numMin > Integer.parseInt(value) || numMax < Integer.parseInt(value)) { + throw new ServiceException( + String.format("字段(%s)的内容不在%d~%d范围内", field.getFieldName(), + numMin, numMax)); + } + } + } + if (FieldInputTypeEnum.MANUAL_INPUT.equals(field.getTextInputType()) + && FieldTypeEnum.TEXT.equals(field.getFieldType())) { + Integer textMinNum = field.getTextMinNum(); + Integer textMaxNum = field.getTextMaxNum(); + if (Objects.nonNull(textMinNum) && Objects.nonNull(textMaxNum)) { + if (textMinNum > value.length() || textMaxNum < value.length()) { + throw new ServiceException( + String.format("字段(%s)的内容长度超出%d~%d的范围", + field.getFieldName(), + textMinNum, textMaxNum)); + } + } + } + if (FieldTypeEnum.PERCENTAGE.equals(field.getFieldType())) { + if (0 > Double.parseDouble(value) || 100 < Double.parseDouble(value)) { + throw new ServiceException( + String.format("字段(%s)的内容不在0~100范围内", field.getFieldName())); + } + } + return value; + } + + /** + * 计算得分 + * + * @param tbBasicDataList 基础数据集合 + */ private void calculateScore(List<TbBasicData> tbBasicDataList) { + List<TbScore> scoreList = new ArrayList<>(); for (TbBasicData tbBasicData : tbBasicDataList) { - List<TbScore> scoreList = new ArrayList<>(); //计算得分 List<TbBasicDataConfig> list = tbBasicDataConfigService.lambdaQuery() .eq(TbBasicDataConfig::getStatus, ShowStatusEnum.SHOW).list(); @@ -337,7 +362,8 @@ } } } - tbScoreService.saveBatch(scoreList); } + tbScoreService.saveBatch(scoreList); + log.info(String.format("基础数据%s计算得分成功!", JSON.toJSONString(tbBasicDataList))); } } -- Gitblit v1.7.1