From 039abee6b27058ca46b1e1e82aa0b5407a5dad44 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期一, 28 七月 2025 15:25:26 +0800
Subject: [PATCH] 优化 和修改bug

---
 springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/controller/ComplaintController.java |  113 ++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 104 insertions(+), 9 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/controller/ComplaintController.java b/springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/controller/ComplaintController.java
index a0980ac..9ffd9f1 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/controller/ComplaintController.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/controller/ComplaintController.java
@@ -4,27 +4,36 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
 import com.panzhihua.common.model.vos.R;
 import com.panzhihua.westcommittee.annotation.DistributedLock;
 import com.panzhihua.westcommittee.model.dto.*;
 import com.panzhihua.westcommittee.model.entity.*;
+import com.panzhihua.westcommittee.model.query.BasePage;
 import com.panzhihua.westcommittee.model.query.ComplaintQuery;
 import com.panzhihua.westcommittee.model.vo.ComplaintVO;
 import com.panzhihua.westcommittee.model.vo.DispatchVO;
+import com.panzhihua.westcommittee.model.vo.SysUserVO;
 import com.panzhihua.westcommittee.service.IComplaintCommentService;
 import com.panzhihua.westcommittee.service.IComplaintService;
 import com.panzhihua.westcommittee.service.IProblemTypeService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
+import com.panzhihua.westcommittee.warpper.GetHouseAddressQuery;
+import com.panzhihua.westcommittee.warpper.IdentityInformation;
+import io.swagger.annotations.*;
 import lombok.RequiredArgsConstructor;
+import org.checkerframework.checker.units.qual.C;
+import org.springframework.beans.BeanUtils;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
+import java.text.SimpleDateFormat;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
+
+import static cn.hutool.core.util.ObjectUtil.isNull;
 
 /**
  * <p>
@@ -56,8 +65,16 @@
     @ApiOperation(value = "录入诉求")
     @DistributedLock(lockName = "complaint_serial_number_lock")
     public R<?> save(@Valid @RequestBody Complaint complaint) {
-        complaintService.saveComplaint(complaint, getLoginUserInfo());
-        return R.ok();
+        HashMap<String, String> map = complaintService.saveComplaint(complaint, getLoginUserInfo());
+        return R.ok(map);
+    }
+
+
+    @GetMapping("/getHouseAddress")
+    @ApiOperation(value = "录入诉求-获取详细地址")
+    public R<Page<String>> getHouseAddress(GetHouseAddressQuery query) {
+        Page<String> addressList =  complaintService.getHouseAddress(query);
+        return R.ok(addressList);
     }
 
     /**
@@ -98,7 +115,7 @@
 
     @GetMapping("/detail")
     @ApiOperation("工单详情")
-    public R<ComplaintVO> detail(@ApiParam(name = "id", value = "工单id", required = true) Long id) {
+    public R<ComplaintVO> detail(Long id) {
         return R.ok(complaintService.detail(id,getLoginUserInfo()));
     }
 
@@ -174,7 +191,7 @@
      * 上报审核
      */
     @PostMapping("/reportAudit")
-    @ApiOperation(value = "问题上报审核")
+    @ApiOperation(value = "问题上报审核并指派")
     public R<?> reportAudit(@RequestBody ComplaintReporAuditDTO dto) {
         complaintService.reportAudit(dto, getLoginUserInfo());
         return R.ok();
@@ -188,8 +205,42 @@
     public R<List<DispatchVO>> getDispatchList() {
         return R.ok(complaintService.getDispatchList(getLoginUserInfo()));
     }
-    
-    
+
+
+
+    @GetMapping("/getAllocationList")
+    @ApiOperation(value = "获取分配派单位列表")
+    public R<List<DispatchVO>> getAllocationList() {
+        return R.ok(complaintService.getAllocationList(getLoginUserInfo()));
+    }
+
+    @GetMapping("/getDeptUserList")
+    @ApiOperation(value = "获取当前单位用户列表")
+    public R<Page<SysUserVO>> getDeptUserList(BasePage page) {
+        return R.ok(complaintService.getDeptUserList(getLoginUserInfo(),page));
+    }
+
+
+
+    @PostMapping("/assignComplain")
+    @ApiOperation(value = "分配诉求")
+    public R<?> assignComplain(@Valid@RequestBody AssignComplainDto dto) {
+
+        complaintService.assignComplain(getLoginUserInfo(),dto.getComplainId(),dto.getDeptId(),dto.getRemark(),dto.getProblemType());
+
+        return R.ok();
+    }
+
+    @PostMapping("/setProblemType")
+    @ApiOperation(value = "分配问题类型")
+    public R<?> assignComplain(@Valid @RequestBody SetProblemTypeDto dto) {
+        // 判断是否管理员
+        complaintService.setProblemType(getLoginUserInfo(),dto);
+        return R.ok();
+    }
+
+
+
     /**
      * 评价诉求
      * @param complaintComment
@@ -215,6 +266,50 @@
         complaint.setStatus(8);
         complaint.setCommentRate(complaintComment.getRate());
         complaintService.updateById(complaint);
+        // 不满意 重新生成诉求
+        if(complaintComment.getRate()==0){
+            // 获取当前日期(年月日)
+            String datePrefix = new SimpleDateFormat("yyyyMMdd").format(new Date());
+
+            // 查询当前日期的最大流水号
+            Complaint lastComplaint = complaintService.getOne(new LambdaQueryWrapper<Complaint>()
+                    .likeRight(Complaint::getSerialNumber, datePrefix) // 查询以当前日期开头的流水号
+                    .orderByDesc(Complaint::getSerialNumber)
+                    .last("limit 1"));
+
+            String serialNumber;
+            if (isNull(lastComplaint)) {
+                // 如果当天没有记录,从 0001 开始
+                serialNumber = datePrefix + "0001";
+            } else {
+                // 获取当前日期的最大流水号,并递增
+                String lastSerialNumber = lastComplaint.getSerialNumber();
+                int num = Integer.parseInt(lastSerialNumber.substring(lastSerialNumber.length() - 4)); // 提取后4位数字
+                serialNumber = datePrefix + String.format("%04d", num + 1); // 递增并格式化为4位
+            }
+            Complaint complaint1 = new Complaint();
+            BeanUtils.copyProperties(complaint,complaint1);
+            complaint1.setStatus(0);
+            complaint1.setSerialNumber(serialNumber);
+            complaint1.setAssignStatus(0);
+            complaint1.setCreateTime(new Date());
+            complaint1.setId(null);
+            complaint1.setCompletionTime(null);
+            complaint1.setCompletionUserId(null);
+            complaint1.setCompletionUsername(null);
+            complaint1.setCompletionUserPhone(null);
+            complaint1.setCompletionImages(null);
+            complaint1.setCompletionUserLevel(null);
+            complaint1.setCompletionDescription(null);
+            complaint1.setCompletionVideos(null);
+            complaint1.setCompletionOtherDescription(null);
+            complaint1.setRemark(null);
+            complaint1.setNowLevelTime(new Date());
+            complaint1.setNowLevelSms(0);
+            complaint1.setRedispatch(1);
+            complaintService.save(complaint1);
+        }
+
         return R.ok();
     }
 

--
Gitblit v1.7.1