From 950264a579736c1c51f1efe4baf0ac1476d5748c Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期一, 02 十二月 2024 11:06:46 +0800
Subject: [PATCH] bug修改

---
 finance-system/src/main/resources/mapper/system/RegionMapper.xml                        |   17 ++
 finance-system/src/main/java/com/finance/system/vo/RegionVo.java                        |   27 ++++
 finance-system/src/main/java/com/finance/system/mapper/RegionMapper.java                |   22 +++
 finance-system/src/main/java/com/finance/system/service/impl/SysUserServiceImpl.java    |   16 ++
 finance-system/src/main/java/com/finance/system/service/impl/TbScoreServiceImpl.java    |    5 
 finance-system/src/main/java/com/finance/system/service/TbQuestionService.java          |    2 
 finance-system/src/main/java/com/finance/system/service/impl/TbQuestionServiceImpl.java |    5 
 finance-system/src/main/java/com/finance/system/service/impl/RegionServiceImpl.java     |   24 ++++
 finance-system/src/main/java/com/finance/system/service/impl/AsyncServiceImpl.java      |   66 ++++++----
 finance-system/src/main/java/com/finance/system/vo/ScoreRateDataVO.java                 |    5 
 finance-system/src/main/resources/mapper/system/TbScoreMapper.xml                       |   16 --
 finance-admin/src/main/java/com/finance/web/controller/service/ScreenService.java       |   31 +++-
 finance-system/src/main/java/com/finance/system/domain/Region.java                      |   54 +++++++++
 finance-system/src/main/java/com/finance/system/vo/DeptVO.java                          |    3 
 finance-system/src/main/java/com/finance/system/service/IRegionService.java             |   17 ++
 15 files changed, 253 insertions(+), 57 deletions(-)

diff --git a/finance-admin/src/main/java/com/finance/web/controller/service/ScreenService.java b/finance-admin/src/main/java/com/finance/web/controller/service/ScreenService.java
index 19e252a..2b63466 100644
--- a/finance-admin/src/main/java/com/finance/web/controller/service/ScreenService.java
+++ b/finance-admin/src/main/java/com/finance/web/controller/service/ScreenService.java
@@ -121,7 +121,7 @@
         ScoreRankVO scoreRankVO = tbScoreService.queryRankAndScoreByAreaCode("510000");
         riskAndTransferVO.setScoreRankVO(scoreRankVO);
         String previousQuarter = DateUtils.getPreviousQuarter();
-        // previousQuarter = "2024年一季度";
+        // previousQuarter = "2024年二季度";
         // 查询转移支付规模总额
         List<TbBasicData> list = tbBasicDataService.lambdaQuery()
                 .select(TbBasicData::getTransferPaymentScale)
@@ -241,10 +241,10 @@
     public List<RiskRankingVO> riskRanking() throws Exception {
         DataScreenConfigVO riskLevel = tbDataScreenConfigService.getRiskLevel();
         List<RiskLevelVO> riskLevelVOList = formatRiskLevel(riskLevel);
+        String previousQuarter = DateUtils.getPreviousQuarter();
+        // previousQuarter = "2024年二季度";
         List<RiskRankingVO> voList = tbScoreService.queryRiskRanking(
-                DateUtils.getPreviousQuarter());
-        // List<RiskRankingVO> voList = tbScoreService.queryRiskRanking(
-        //         "2024年一季度");
+                previousQuarter);
         int rank = 1;
         for (RiskRankingVO riskRankingVO : voList) {
             riskRankingVO.setRank(rank++);
@@ -268,7 +268,7 @@
 
     public List<QuestionVO> queryQuestions() throws Exception {
         String previousQuarter = DateUtils.getPreviousQuarter();
-        // previousQuarter = "2024年一季度";
+        // previousQuarter = "2024年二季度";
         List<TbQuestion> list = tbQuestionService.lambdaQuery()
                 .eq(TbQuestion::getQuarter, previousQuarter).list();
         return BeanUtils.copyList(list, QuestionVO.class);
@@ -284,7 +284,7 @@
         dataAnalysisVO.setRank(scoreRankVO.getRank());
         dataAnalysisVO.setScore(scoreRankVO.getScore());
         String previousQuarter = DateUtils.getPreviousQuarter();
-        // previousQuarter = "2024年一季度";
+        // previousQuarter = "2024年二季度";
         // 查询问题
         List<TbQuestion> list = tbQuestionService.lambdaQuery()
                 .eq(TbQuestion::getQuarter, previousQuarter)
@@ -365,6 +365,7 @@
                 scoreRateDataVO.setScore(0D);
                 scoreRateDataVO.setSubType(SubTypeEnum.getEnumByCode(i + 1));
                 scoreRateDataVO.setScoreRate(0D);
+                scoreRateDataVO.setMaxScore(0D);
             } else {
                 Double indicatorOne = getLevelThreeIndicators(voList, indicatorList.get(i)).stream()
                         .map(FieldAndScoreDataVO::getScore).reduce(Double::sum)
@@ -382,6 +383,9 @@
                         .divide(BigDecimal.valueOf(voList.get(i).getLevelOneIndicatorMaxScore()), 2,
                                 RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100L))
                         .doubleValue());
+                scoreRateDataVO.setMaxScore(
+                        getLevelThreeIndicators(voList, indicatorList.get(i)).get(0)
+                                .getLevelOneIndicatorMaxScore());
             }
             result.add(scoreRateDataVO);
         }
@@ -425,7 +429,8 @@
                         .orElse(BigDecimal.ZERO).setScale(2, RoundingMode.HALF_UP).doubleValue();
                 scoreDataVO.setLastScore(indicatorOneLastYear);
                 scoreDataVO.setScore(indicatorOne);
-                scoreDataVO.setMaxScore(voList.get(0).getLevelOneIndicatorMaxScore());
+                scoreDataVO.setMaxScore(getLevelThreeIndicators(voList, indicatorList.get(i)).get(0)
+                        .getLevelOneIndicatorMaxScore());
                 scoreDataVO.setSubType(SubTypeEnum.getEnumByCode(i + 1));
             }
             scoreDataVOList.add(scoreDataVO);
@@ -549,13 +554,13 @@
     public List<DeptCalculateDetailVO> deptCalculateDetail(DeptCalculateDetailQuery query)
             throws Exception {
         String previousQuarter = DateUtils.getPreviousQuarter();
-        // previousQuarter = "2024年一季度";
+        // previousQuarter = "2024年二季度";
         return tbScoreService.deptCalculateDetail(query, previousQuarter);
     }
 
     public CurrentFieldsDetailVO viewRawData(String areaCode) throws Exception {
         String previousQuarter = DateUtils.getPreviousQuarter();
-        // previousQuarter = "2024年一季度";
+        // previousQuarter = "2024年二季度";
         Optional<TbBasicData> basicDataOptional = tbBasicDataService.lambdaQuery()
                 .eq(TbBasicData::getDeptAreaCode, areaCode)
                 .eq(TbBasicData::getQuarter, previousQuarter).oneOpt();
@@ -587,7 +592,13 @@
                 .likeRight(SysUser::getAreaCode, cityCode).or(cityCode.equals("5101"))
                 .in(cityCode.equals("5101"), SysUser::getAreaCode, "510008", "510015", "510017",
                         "510025")
-                .orderByAsc(!areaCode.equals("510100"), SysUser::getAreaCode)
+                .or(cityCode.equals("5106"))
+                .eq(cityCode.equals("5106"), SysUser::getAreaCode, "510049")
+                .or(cityCode.equals("5109"))
+                .eq(cityCode.equals("5109"), SysUser::getAreaCode, "510077")
+                .orderByAsc(!areaCode.equals("510100") && !areaCode.equals("510600")
+                                && !areaCode.equals("510900"),
+                        SysUser::getAreaCode)
                 .list();
         return list;
     }
diff --git a/finance-system/src/main/java/com/finance/system/domain/Region.java b/finance-system/src/main/java/com/finance/system/domain/Region.java
new file mode 100644
index 0000000..faa4154
--- /dev/null
+++ b/finance-system/src/main/java/com/finance/system/domain/Region.java
@@ -0,0 +1,54 @@
+package com.finance.system.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 省市区三级联动
+ * </p>
+ *
+ * @author mitao
+ * @since 2024-05-21
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("t_region")
+@ApiModel(value = "Region对象", description = "省市区三级联动")
+public class Region implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "主键ID")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "城市名称")
+    @TableField("name")
+    private String name;
+
+    @TableField("code")
+    private String code;
+
+    @TableField("citycode")
+    private String citycode;
+
+    @ApiModelProperty(value = "父级ID")
+    @TableField("parent_id")
+    private Integer parentId;
+
+    @ApiModelProperty(value = "英文名称")
+    @TableField("english")
+    private String english;
+
+
+}
diff --git a/finance-system/src/main/java/com/finance/system/mapper/RegionMapper.java b/finance-system/src/main/java/com/finance/system/mapper/RegionMapper.java
new file mode 100644
index 0000000..f19405f
--- /dev/null
+++ b/finance-system/src/main/java/com/finance/system/mapper/RegionMapper.java
@@ -0,0 +1,22 @@
+package com.finance.system.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.finance.system.domain.Region;
+import com.finance.system.vo.RegionVo;
+import java.util.List;
+
+/**
+ * <p>
+ * 省市区三级联动 Mapper 接口
+ * </p>
+ *
+ * @author mitao
+ * @since 2024-05-21
+ */
+public interface RegionMapper extends BaseMapper<Region> {
+
+    List<RegionVo> listRegionVo();
+
+    Region getRegionByCode(String code);
+}
diff --git a/finance-system/src/main/java/com/finance/system/service/IRegionService.java b/finance-system/src/main/java/com/finance/system/service/IRegionService.java
new file mode 100644
index 0000000..19b606c
--- /dev/null
+++ b/finance-system/src/main/java/com/finance/system/service/IRegionService.java
@@ -0,0 +1,17 @@
+package com.finance.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.finance.system.domain.Region;
+
+/**
+ * <p>
+ * 省市区三级联动 服务类
+ * </p>
+ *
+ * @author mitao
+ * @since 2024-05-21
+ */
+public interface IRegionService extends IService<Region> {
+
+    Region getParentByCode(String code);
+}
diff --git a/finance-system/src/main/java/com/finance/system/service/TbQuestionService.java b/finance-system/src/main/java/com/finance/system/service/TbQuestionService.java
index 6037f7d..06d2570 100644
--- a/finance-system/src/main/java/com/finance/system/service/TbQuestionService.java
+++ b/finance-system/src/main/java/com/finance/system/service/TbQuestionService.java
@@ -20,7 +20,7 @@
 
     void addQuestion(QuestionDTO dto) throws Exception;
 
-    void editQuestion(QuestionUpdDTO dto);
+    void editQuestion(QuestionUpdDTO dto) throws Exception;
 
     PageDTO<QuestionVO> pageQuestion(QuestionQuery dto);
 
diff --git a/finance-system/src/main/java/com/finance/system/service/impl/AsyncServiceImpl.java b/finance-system/src/main/java/com/finance/system/service/impl/AsyncServiceImpl.java
index fff6c41..a3c3d15 100644
--- a/finance-system/src/main/java/com/finance/system/service/impl/AsyncServiceImpl.java
+++ b/finance-system/src/main/java/com/finance/system/service/impl/AsyncServiceImpl.java
@@ -1,5 +1,7 @@
 package com.finance.system.service.impl;
 
+import static com.finance.common.enums.IndicatorItemEnum.INDICATOR_ITEM8;
+
 import cn.hutool.core.date.DateUtil;
 import com.alibaba.fastjson2.JSONArray;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -346,23 +348,29 @@
                     score = res ? 0 : vo.getMaxScore();
                     break;
                 case INDICATOR_ITEM9:
+                    // 预算管理方面-“三保”保障情况-“三保”需求占可用财力的比重
                     BigDecimal au = getBigDecimal(sysUser.getAreaName(), deptFieldsMap,
                             BasicDataFieldEnum.BASIC_DATA_FIELD45);
                     BigDecimal r = getBigDecimal(sysUser.getAreaName(), deptFieldsMap,
                             BasicDataFieldEnum.BASIC_DATA_FIELD13);
                     res1 = validateDivisorValue(r);
                     score = 0D;
-                    if (!res1) {
-                        BigDecimal divided = au.divide(r, 4, RoundingMode.HALF_UP);
-                        if (divided.compareTo(BigDecimal.valueOf(0.6D)) > 0) {
-                            BigDecimal add = BigDecimal.valueOf(0.6D).subtract(divided)
-                                    .multiply(BigDecimal.valueOf(100D))
-                                    .divide(BigDecimal.valueOf(4D), 4, RoundingMode.HALF_UP)
-                                    .add(BigDecimal.valueOf(8))
-                                    .setScale(2, RoundingMode.HALF_UP);
-                            score = add.compareTo(BigDecimal.ZERO) >= 0 ? add.doubleValue() : 0D;
-                        } else {
-                            score = vo.getMaxScore();
+                    TbScore tbScore = scoreList.stream().filter(s -> s.getBasicDataConfigId()
+                            .equals(INDICATOR_ITEM8.getCode())).findFirst().orElse(null);
+                    if (tbScore != null) {
+                        if (!res1 && tbScore.getScore() != 0) {
+                            BigDecimal divided = au.divide(r, 4, RoundingMode.HALF_UP);
+                            if (divided.compareTo(BigDecimal.valueOf(0.6D)) > 0) {
+                                BigDecimal add = BigDecimal.valueOf(0.6D).subtract(divided)
+                                        .multiply(BigDecimal.valueOf(100D))
+                                        .divide(BigDecimal.valueOf(4D), 4, RoundingMode.HALF_UP)
+                                        .add(BigDecimal.valueOf(8))
+                                        .setScale(1, RoundingMode.HALF_UP);
+                                score = add.compareTo(BigDecimal.ZERO) >= 0 ? add.doubleValue()
+                                        : 0D;
+                            } else {
+                                score = vo.getMaxScore();
+                            }
                         }
                     }
                     break;
@@ -400,7 +408,7 @@
                                 .divide(BigDecimal.valueOf(0.1D), 4, RoundingMode.HALF_UP)
                                 .multiply(BigDecimal.valueOf(0.6D))
                                 .add(BigDecimal.valueOf(3D))
-                                .setScale(2, RoundingMode.HALF_UP);
+                                .setScale(1, RoundingMode.HALF_UP);
                         part1 = add.compareTo(BigDecimal.ZERO) < 0 ? BigDecimal.ZERO : add;
                     } else {
                         part1 = BigDecimal.valueOf(3D);
@@ -433,7 +441,7 @@
                                     .multiply(BigDecimal.valueOf(100D))
                                     .divide(BigDecimal.valueOf(3D), 4, RoundingMode.HALF_UP)
                                     .add(BigDecimal.valueOf(vo.getMaxScore()))
-                                    .setScale(2, RoundingMode.HALF_UP).doubleValue();
+                                    .setScale(1, RoundingMode.HALF_UP).doubleValue();
                         } else {
                             score = vo.getMaxScore();
                         }
@@ -462,7 +470,7 @@
                         BigDecimal add = deptDividendValue.subtract(divided1)
                                 .divide(BigDecimal.valueOf(5D), 4, RoundingMode.HALF_UP)
                                 .add(BigDecimal.valueOf(vo.getMaxScore()))
-                                .setScale(2, RoundingMode.HALF_UP);
+                                .setScale(1, RoundingMode.HALF_UP);
                         score = add.compareTo(BigDecimal.ZERO) < 0 ? 0D : add.doubleValue();
                     } else {
                         score = vo.getMaxScore();
@@ -489,9 +497,10 @@
                             BasicDataFieldEnum.BASIC_DATA_FIELD15);// 696635
                     BigDecimal ab = getBigDecimal(sysUser.getAreaName(), deptFieldsMap,
                             BasicDataFieldEnum.BASIC_DATA_FIELD23); // 56552
-                    BigDecimal add = t.add(ab).divide(month.multiply(
-                                    BigDecimal.valueOf(12D)).multiply(BigDecimal.valueOf(0.05D)), 2,
-                            RoundingMode.HALF_UP);
+                    BigDecimal add = t.add(ab).divide(month, 4, RoundingMode.HALF_UP)
+                            .multiply(BigDecimal.valueOf(12D))
+                            .multiply(BigDecimal.valueOf(0.05D))
+                            .setScale(1, RoundingMode.HALF_UP);
                     score = bk.compareTo(add) > 0 ? 0D : vo.getMaxScore();
                     break;
                 case INDICATOR_ITEM20:
@@ -509,7 +518,7 @@
                                 RoundingMode.HALF_UP);
                         score = d1.compareTo(d2) < 0 ? d1.divide(d2, 4, RoundingMode.HALF_UP)
                                 .multiply(BigDecimal.valueOf(vo.getMaxScore()))
-                                .setScale(2, RoundingMode.HALF_UP).doubleValue()
+                                .setScale(1, RoundingMode.HALF_UP).doubleValue()
                                 : vo.getMaxScore();
                     } else {
                         score = vo.getMaxScore();
@@ -641,7 +650,7 @@
             score = deptDivided.subtract(provinceDivided)
                     .multiply(BigDecimal.valueOf(100L))
                     .add(BigDecimal.valueOf(vo.getMaxScore()))
-                    .setScale(2, RoundingMode.HALF_UP);
+                    .setScale(1, RoundingMode.HALF_UP);
             score = score.compareTo(BigDecimal.ZERO) >= 0 ? score : BigDecimal.ZERO;
         } else {
             score = BigDecimal.valueOf(vo.getMaxScore());
@@ -672,7 +681,7 @@
             score = provinceDivided.subtract(deptDivided)
                     .multiply(BigDecimal.valueOf(100L))
                     .add(BigDecimal.valueOf(vo.getMaxScore()))
-                    .setScale(2, RoundingMode.HALF_UP);
+                    .setScale(1, RoundingMode.HALF_UP);
             score = score.compareTo(BigDecimal.ZERO) >= 0 ? score : BigDecimal.ZERO;
         }
         return score.doubleValue();
@@ -744,18 +753,19 @@
     private Double getScoreByMonth(BigDecimal deptDividendValue, BigDecimal deptDivisorValue,
             BigDecimal currentMonth, BasicDataConfigVO vo) {
         double score;
-        BigDecimal divided1 = deptDividendValue.divide(deptDivisorValue, 2,
+        BigDecimal divided1 = deptDividendValue.divide(deptDivisorValue, 4,
                 RoundingMode.HALF_UP);
-        BigDecimal divided2 = currentMonth.divide(BigDecimal.valueOf(12D), 2,
+        BigDecimal divided2 = currentMonth.divide(BigDecimal.valueOf(12D), 4,
                 RoundingMode.HALF_UP);
         if (divided1.compareTo(
-                currentMonth.divide(BigDecimal.valueOf(12D), 2, RoundingMode.HALF_UP))
+                currentMonth.divide(BigDecimal.valueOf(12D), 4, RoundingMode.HALF_UP))
                 < 0) {
             BigDecimal add = divided1.subtract(divided2)
                     .multiply(BigDecimal.valueOf(100D))
-                    .divide(BigDecimal.valueOf(5D), 2,
+                    .divide(BigDecimal.valueOf(5D), 4,
                             RoundingMode.HALF_UP)
-                    .add(BigDecimal.valueOf(vo.getMaxScore()));
+                    .add(BigDecimal.valueOf(vo.getMaxScore()))
+                    .setScale(1, RoundingMode.HALF_UP);
             score = add.compareTo(BigDecimal.ZERO) < 0 ? 0D : add.doubleValue();
         } else {
             score = vo.getMaxScore();
@@ -783,6 +793,7 @@
     @Override
     public void subtractScoreWithFixedRules(String deptAreaCode) throws Exception {
         String previousQuarter = DateUtils.getPreviousQuarter();
+        // previousQuarter = "2024年二季度";
         TbBasicData tbBasicData = tbBasicDataMapper.selectOne(
                 Wrappers.lambdaQuery(TbBasicData.class).eq(TbBasicData::getQuarter, previousQuarter)
                         .eq(TbBasicData::getDeptAreaCode, deptAreaCode));
@@ -829,15 +840,16 @@
                     // 23:风险防控方面-债务管理-隐性债务化解
                     questionList = getQuestList(list, deptAreaCode,
                             QuestionTypeEnum.ENUM6);
-                    score = CollUtils.isNotEmpty(questionList) ? vo.getMaxScore() : -3D;
+                    score = CollUtils.isNotEmpty(questionList) ? -3D : vo.getMaxScore();
                     break;
                 case INDICATOR_ITEM24:
                     // 24:风险防控方面-债务管理-日常监督发现问题
                     questionList = getQuestList(list, deptAreaCode,
                             QuestionTypeEnum.ENUM7);
                     if (CollUtils.isNotEmpty(questionList)) {
-                        score = -18D + questionList.size() * -1D;
+                        score = questionList.size() * -1D;
                     }
+                    break;
                 case INDICATOR_ITEM25:
                     // 25:风险防控方面-日常监督发现问题
                     questionList = getQuestList(list, deptAreaCode,
diff --git a/finance-system/src/main/java/com/finance/system/service/impl/RegionServiceImpl.java b/finance-system/src/main/java/com/finance/system/service/impl/RegionServiceImpl.java
new file mode 100644
index 0000000..f2bcc02
--- /dev/null
+++ b/finance-system/src/main/java/com/finance/system/service/impl/RegionServiceImpl.java
@@ -0,0 +1,24 @@
+package com.finance.system.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.finance.system.domain.Region;
+import com.finance.system.mapper.RegionMapper;
+import com.finance.system.service.IRegionService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 省市区三级联动 服务实现类
+ * </p>
+ *
+ * @author mitao
+ * @since 2024-05-21
+ */
+@Service
+public class RegionServiceImpl extends ServiceImpl<RegionMapper, Region> implements IRegionService {
+
+    @Override
+    public Region getParentByCode(String code) {
+        return baseMapper.getRegionByCode(code);
+    }
+}
diff --git a/finance-system/src/main/java/com/finance/system/service/impl/SysUserServiceImpl.java b/finance-system/src/main/java/com/finance/system/service/impl/SysUserServiceImpl.java
index ce57ad9..98c4359 100644
--- a/finance-system/src/main/java/com/finance/system/service/impl/SysUserServiceImpl.java
+++ b/finance-system/src/main/java/com/finance/system/service/impl/SysUserServiceImpl.java
@@ -7,6 +7,7 @@
 import com.finance.common.constant.UserConstants;
 import com.finance.common.core.domain.entity.SysRole;
 import com.finance.common.core.domain.entity.SysUser;
+import com.finance.common.enums.AreaLevelEnum;
 import com.finance.common.enums.UserTypeEnum;
 import com.finance.common.exception.ServiceException;
 import com.finance.common.utils.BeanUtils;
@@ -14,6 +15,7 @@
 import com.finance.common.utils.StringUtils;
 import com.finance.common.utils.bean.BeanValidators;
 import com.finance.common.utils.spring.SpringUtils;
+import com.finance.system.domain.Region;
 import com.finance.system.domain.SysPost;
 import com.finance.system.domain.SysUserPost;
 import com.finance.system.domain.SysUserRole;
@@ -23,6 +25,7 @@
 import com.finance.system.mapper.SysUserPostMapper;
 import com.finance.system.mapper.SysUserRoleMapper;
 import com.finance.system.query.SysUserQuery;
+import com.finance.system.service.IRegionService;
 import com.finance.system.service.ISysConfigService;
 import com.finance.system.service.ISysUserService;
 import com.finance.system.vo.DeptVO;
@@ -70,6 +73,8 @@
 
     @Autowired
     protected Validator validator;
+    @Autowired
+    private IRegionService regionService;
 
     /**
      * 根据条件分页查询用户列表
@@ -623,6 +628,15 @@
                         deptName)
                 .orderByDesc(SysUser::getCreateTime)
                 .list();
-        return BeanUtils.copyList(list, DeptVO.class);
+        List<DeptVO> deptVOS = BeanUtils.copyList(list, DeptVO.class);
+        deptVOS = deptVOS.stream()
+                .filter(item -> null != item.getAreaLevel() && item.getAreaLevel()
+                        .equals(AreaLevelEnum.COUNTY)).peek(item -> {
+                    Region region = regionService.getParentByCode(item.getAreaCode());
+                    if (region != null) {
+                        item.setCityName(region.getName());
+                    }
+                }).collect(Collectors.toList());
+        return deptVOS;
     }
 }
diff --git a/finance-system/src/main/java/com/finance/system/service/impl/TbQuestionServiceImpl.java b/finance-system/src/main/java/com/finance/system/service/impl/TbQuestionServiceImpl.java
index e50f21a..9c1e832 100644
--- a/finance-system/src/main/java/com/finance/system/service/impl/TbQuestionServiceImpl.java
+++ b/finance-system/src/main/java/com/finance/system/service/impl/TbQuestionServiceImpl.java
@@ -48,17 +48,18 @@
         TbQuestion tbQuestion = BeanUtils.copyBean(dto, TbQuestion.class);
         tbQuestion.setType(dto.getType());
         String previousQuarter = DateUtils.getPreviousQuarter();
-        // previousQuarter = "2024年一季度";
+        // previousQuarter = "2024年二季度";
         tbQuestion.setQuarter(previousQuarter);
         this.save(tbQuestion);
         asyncService.subtractScoreWithFixedRules(dto.getDeptAreaCode());
     }
 
     @Override
-    public void editQuestion(QuestionUpdDTO dto) {
+    public void editQuestion(QuestionUpdDTO dto) throws Exception {
         TbQuestion tbQuestion = BeanUtils.copyBean(dto, TbQuestion.class);
         tbQuestion.setType(dto.getType());
         this.updateById(tbQuestion);
+        asyncService.subtractScoreWithFixedRules(dto.getDeptAreaCode());
     }
 
     @Override
diff --git a/finance-system/src/main/java/com/finance/system/service/impl/TbScoreServiceImpl.java b/finance-system/src/main/java/com/finance/system/service/impl/TbScoreServiceImpl.java
index c79ef28..31ee68d 100644
--- a/finance-system/src/main/java/com/finance/system/service/impl/TbScoreServiceImpl.java
+++ b/finance-system/src/main/java/com/finance/system/service/impl/TbScoreServiceImpl.java
@@ -117,7 +117,7 @@
     @Override
     public ScoreRankVO queryRankAndScoreByAreaCode(String areaCode) throws Exception {
         String previousQuarter = DateUtils.getPreviousQuarter();
-        // previousQuarter = "2024年一季度";
+        // previousQuarter = "2024年二季度";
         List<ScoreRankVO> voList = baseMapper.queryRankAndScoreByAreaCode(areaCode,
                 previousQuarter);
         if (CollUtils.isNotEmpty(voList)) {
@@ -155,7 +155,8 @@
         vo.setCalculateType(config.getCalculateType());
         Page<ScoreDetailVO> page = new Page<>(query.getPageNum(), query.getPageSize());
         String previousQuarter = DateUtils.getPreviousQuarter();
-        previousQuarter = "2023年一季度";
+        // previousQuarter = "2024年二季度";
+        query.setPreviousQuarter(previousQuarter);
         Page<ScoreDetailVO> pageVO = baseMapper.fieldsDetail(query, page, areaCodeList);
         vo.setTotal(pageVO.getTotal());
         vo.setPages(pageVO.getPages());
diff --git a/finance-system/src/main/java/com/finance/system/vo/DeptVO.java b/finance-system/src/main/java/com/finance/system/vo/DeptVO.java
index 1304bea..af0dd8f 100644
--- a/finance-system/src/main/java/com/finance/system/vo/DeptVO.java
+++ b/finance-system/src/main/java/com/finance/system/vo/DeptVO.java
@@ -19,6 +19,9 @@
 
     @ApiModelProperty(value = "部门id")
     private Long userId;
+    
+    @ApiModelProperty(value = "所属市")
+    private String cityName;
 
     @ApiModelProperty(value = "部门地区")
     private String areaName;
diff --git a/finance-system/src/main/java/com/finance/system/vo/RegionVo.java b/finance-system/src/main/java/com/finance/system/vo/RegionVo.java
new file mode 100644
index 0000000..261c851
--- /dev/null
+++ b/finance-system/src/main/java/com/finance/system/vo/RegionVo.java
@@ -0,0 +1,27 @@
+package com.finance.system.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import java.util.List;
+import lombok.Data;
+
+@Data
+public class RegionVo {
+
+    @ApiModelProperty(value = "区域代码")
+    private String value;
+
+    @ApiModelProperty(value = "区域名称")
+    private String label;
+
+    @ApiModelProperty(value = "子级列表")
+    private List<RegionVo> children;
+
+    @ApiModelProperty(value = "id")
+    private Long id;
+
+    @ApiModelProperty(value = "父级id")
+    private Long parentId;
+
+    @ApiModelProperty(value = "层级")
+    private Integer level;
+}
\ No newline at end of file
diff --git a/finance-system/src/main/java/com/finance/system/vo/ScoreRateDataVO.java b/finance-system/src/main/java/com/finance/system/vo/ScoreRateDataVO.java
index 964dca4..fe74352 100644
--- a/finance-system/src/main/java/com/finance/system/vo/ScoreRateDataVO.java
+++ b/finance-system/src/main/java/com/finance/system/vo/ScoreRateDataVO.java
@@ -19,9 +19,12 @@
     @ApiModelProperty("得分率")
     private Double scoreRate;
 
+    @ApiModelProperty("总分")
+    private Double maxScore;
+
     @ApiModelProperty(value = "配置类型子类型(1=指标一 2=指标二 3=指标三 4=指标四)")
     private SubTypeEnum subType;
-    
+
     @ApiModelProperty("排名")
     private Integer rank;
 }
diff --git a/finance-system/src/main/resources/mapper/system/RegionMapper.xml b/finance-system/src/main/resources/mapper/system/RegionMapper.xml
new file mode 100644
index 0000000..a35b7dd
--- /dev/null
+++ b/finance-system/src/main/resources/mapper/system/RegionMapper.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.finance.system.mapper.RegionMapper">
+
+  <select id="listRegionVo" resultType="com.finance.system.vo.RegionVo">
+    SELECT tr.id id, tr.parent_id parentId, tr.level level, tr.code value, tr.name label
+    FROM t_region tr
+  </select>
+  <select id="getRegionByCode" resultType="com.finance.system.domain.Region"
+    parameterType="java.lang.String">
+    SELECT t2.*
+    FROM t_region t1
+           JOIN t_region t2 ON t1.parent_id = t2.id
+    WHERE t1.code = #{code}
+  </select>
+</mapper>
diff --git a/finance-system/src/main/resources/mapper/system/TbScoreMapper.xml b/finance-system/src/main/resources/mapper/system/TbScoreMapper.xml
index 1ef4e11..244cb56 100644
--- a/finance-system/src/main/resources/mapper/system/TbScoreMapper.xml
+++ b/finance-system/src/main/resources/mapper/system/TbScoreMapper.xml
@@ -72,19 +72,9 @@
       CURDATE())
       AND su.user_id in (SELECT user_id
       FROM sys_user
-      WHERE (
-      (
-      #{areaCode} = '510000'
-      AND area_code LIKE CONCAT( SUBSTRING( #{areaCode}, 1, 2 ), '%' ))
-      OR (
-      #{areaCode} != '510000'
-      AND area_code LIKE CONCAT( SUBSTRING( #{areaCode}, 1, 4 ), '%' ))
-      OR (
-      #{areaCode}= '510100'
-      AND area_code IN ( '510008', '510015', '510017', '510025' ))
+      WHERE user_type = 2
+      AND area_level in (1,2,3,4)
       )
-      AND user_type = 2
-      AND area_level in (1,2,3,4))
     </where>
 
     GROUP BY tbc.dept_area_code
@@ -127,7 +117,7 @@
         AND su.area_code=#{query.areaCode}
       </if>
       <if test="query.previousQuarter != null and query.previousQuarter != ''">
-        AND tbd.quarter=#{previousQuarter}
+        AND tbd.quarter=#{query.previousQuarter}
       </if>
       group by su.area_code
     </where>

--
Gitblit v1.7.1