From d1fa8d11e65b97f4b8a0a9af0c776c12328ddcf8 Mon Sep 17 00:00:00 2001
From: luofl <1442745593@qq.com>
Date: 星期一, 17 三月 2025 14:58:36 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev-2.0' into dev-2.0

---
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java |   48 ++++++++++++++++++++++++++++++++++--------------
 1 files changed, 34 insertions(+), 14 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java
index 5ddfd0c..54f5a6b 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java
@@ -9,6 +9,7 @@
 import com.deepoove.poi.XWPFTemplate;
 import com.panzhihua.common.model.vos.LoginUserInfoVO;
 import com.panzhihua.common.model.vos.sangeshenbian.SystemUserVo;
+import com.panzhihua.common.redis.RedisUtils;
 import com.panzhihua.sangeshenbian.enums.RateEnum;
 import com.panzhihua.sangeshenbian.model.dto.ComplaintCompletionDTO;
 import com.panzhihua.sangeshenbian.model.dto.ComplaintProcessDTO;
@@ -81,6 +82,7 @@
     private final IComplaintCommentService complaintCommentService;
     private final HttpServletResponse response;
     private final IPartyMemberService partyMemberService;
+    private final RedisUtils redisUtils;
 
     @Override
     public void saveComplaint(Complaint complaint, LoginUserInfoVO loginUserInfoVO) {
@@ -108,24 +110,32 @@
         complaint.setSerialNumber(serialNumber);
         Optional<SystemUser> systemUserOpt = systemUserService.getSystemUserAdminByPhone(loginUserInfoVO.getPhone());
         Integer accountLevel = 5;
-        if (systemUserOpt.isPresent()) {
+        //获取当前身份,1=党员,2=管理员
+        Integer identity = (Integer) redisUtils.get("identity:" + loginUserInfoVO.getPhone());
+        if (systemUserOpt.isPresent() && identity == 2) {
             SystemUser systemUser = systemUserOpt.get();
             accountLevel = systemUser.getAccountLevel();
             switch (accountLevel) {
                 case 1:
                     //市级
                     complaint.setCityCode(510400);
+                    complaint.setReportUserName(systemUser.getName());
+                    complaint.setReportUserPhone(systemUser.getPhone());
                     break;
                 case 2:
                     //区县级
                     complaint.setCityCode(510400);
                     complaint.setDistrictsCode(Integer.valueOf(systemUser.getDistrictsCode()));
+                    complaint.setReportUserName(systemUser.getName());
+                    complaint.setReportUserPhone(systemUser.getPhone());
                     break;
                 case 3:
                     //街道
                     complaint.setCityCode(510400);
                     complaint.setDistrictsCode(Integer.valueOf(systemUser.getDistrictsCode()));
                     complaint.setStreetId(Long.valueOf(systemUser.getStreetId()));
+                    complaint.setReportUserName(systemUser.getName());
+                    complaint.setReportUserPhone(systemUser.getPhone());
                     break;
                 case 4:
                     //社区
@@ -133,25 +143,31 @@
                     complaint.setDistrictsCode(Integer.valueOf(systemUser.getDistrictsCode()));
                     complaint.setStreetId(Long.valueOf(systemUser.getStreetId()));
                     complaint.setCommunityId(systemUser.getCommunityId());
+                    complaint.setReportUserName(systemUser.getName());
+                    complaint.setReportUserPhone(systemUser.getPhone());
                     break;
                 case 5:
-                    //社区
+                    //党员
                     complaint.setCityCode(510400);
                     complaint.setDistrictsCode(Integer.valueOf(systemUser.getDistrictsCode()));
                     complaint.setStreetId(Long.valueOf(systemUser.getStreetId()));
                     complaint.setCommunityId(systemUser.getCommunityId());
                     PartyMember partyMember = partyMemberService.getPartyMemberByPhone(loginUserInfoVO.getPhone());
                     complaint.setPartyMemberId(partyMember.getId());
+                    complaint.setReportUserName(partyMember.getName());
+                    complaint.setReportUserPhone(partyMember.getPhone());
                     break;
             }
         } else{
             PartyMember partyMember = partyMemberService.getPartyMemberByPhone(loginUserInfoVO.getPhone());
-            //社区
+            //党员
             complaint.setCityCode(510400);
             complaint.setDistrictsCode(Integer.valueOf(partyMember.getDistrictsCode()));
             complaint.setStreetId(Long.valueOf(partyMember.getStreetId()));
             complaint.setCommunityId(partyMember.getCommunityId());
             complaint.setPartyMemberId(partyMember.getId());
+            complaint.setReportUserName(partyMember.getName());
+            complaint.setReportUserPhone(partyMember.getPhone());
         }
         complaint.setReportType(accountLevel);
         // 设置其他字段
@@ -182,8 +198,10 @@
         Optional<SystemUser> systemUserByPhone = systemUserService.getSystemUserAdminByPhone(loginUserInfoVO.getPhone());
         Long targetId = null;
         Integer accountLevel = 5;
+        //获取当前身份,1=党员,2=管理员
+        Integer identity = (Integer) redisUtils.get("identity:" + loginUserInfoVO.getPhone());
         //上级
-        if (systemUserByPhone.isPresent()) {
+        if (systemUserByPhone.isPresent() && identity == 2) {
             SystemUser systemUser = systemUserByPhone.get();
             accountLevel = systemUser.getAccountLevel();
             switch (accountLevel) {
@@ -384,8 +402,10 @@
         Optional<SystemUser> systemUserByPhone = systemUserService.getSystemUserAdminByPhone(loginUserInfoVO.getPhone());
         String targetId = "";
         Integer accountLevel = 5;
+        //获取当前身份,1=党员,2=管理员
+        Integer identity = (Integer) redisUtils.get("identity:" + loginUserInfoVO.getPhone());
         //上级
-        if (systemUserByPhone.isPresent()) {
+        if (systemUserByPhone.isPresent() && identity == 2) {
             SystemUser systemUser = systemUserByPhone.get();
             accountLevel = systemUser.getAccountLevel();
             switch (accountLevel) {
@@ -934,22 +954,22 @@
         response.setCharacterEncoding("utf-8");
         String fileName = URLEncoder.encode("诉求数据", "UTF-8").replaceAll("\\+", "%20");
         response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
-        EasyExcel.write(response.getOutputStream(), PartyMemberExcel.class)
+        EasyExcel.write(response.getOutputStream(), ComplaintExcel.class)
                 .sheet("诉求数据")
                 .doWrite(complaintExcels);
     }
 
     @Override
     public void downloadFile(Long id,Integer type) throws IOException {
-        Complaint complaint = getById(id);
+        Complaint complaint = baseMapper.getDetailBg(id);
         if (Objects.isNull(complaint)) {
             throw new ServiceException("该诉求不存在");
         }
          //查询社区信息
-        BcRegion region = bcRegionService.lambdaQuery().eq(BcRegion::getRegionCode, complaint.getDistrictsCode()).last("LIMIT 1").one();
-        ComStreet street = comStreetService.lambdaQuery().eq(ComStreet::getStreetId, complaint.getStreetId()).one();
-        ComAct act = comActService.lambdaQuery().eq(ComAct::getCommunityId, complaint.getCommunityId()).one();
-        String community = region.getRegionName() +"-"+ street.getName() + act.getName();
+        BcRegion region = bcRegionService.getDistrictByCode(complaint.getDistrictsCode().toString());
+        ComStreet street = comStreetService.getById(complaint.getStreetId().toString());
+        ComAct act = comActService.getById(complaint.getCommunityId());
+        String community = region.getRegionName() +"-"+ street.getName() + "-"+ act.getName();
         PartyMember partyMember = null;
         if (Objects.nonNull(complaint.getPartyMemberId())){
              partyMember = partyMemberService.getById(complaint.getPartyMemberId());
@@ -973,12 +993,12 @@
         map.put("community", community);
         map.put("problemType", complaint.getProblemType());
         map.put("descriptionContent", complaint.getDescriptionContent());
-        map.put("reportType", Objects.nonNull(complaint.getPartyMemberId())?"党员": "上级"); //TODO待修改
+        map.put("reportType", ReportTypeEnum.fromCode(complaint.getReportType()).getDescription());
         map.put("partyOrganization",Objects.nonNull(partyMember)? partyMember.getPartyOrganization() : "");
         map.put("name", complaint.getName());
         map.put("contactNumber", complaint.getContactNumber());
-        map.put("nickname", Objects.nonNull(partyMember)? partyMember.getName() : "");
-        map.put("phone", Objects.nonNull(partyMember)? partyMember.getPhone() : "");
+        map.put("nickname", complaint.getReportUserName());
+        map.put("phone", complaint.getReportUserPhone());
         List<ComplaintProgress> list = complaintProgressService.lambdaQuery().eq(ComplaintProgress::getComplaintId, id).orderByAsc(ComplaintProgress::getCreateTime).list();
         StringBuilder sb = new StringBuilder();
         if (CollUtil.isNotEmpty(list)) {

--
Gitblit v1.7.1