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 |   70 ++++++++++++++++++++++++++++++----
 1 files changed, 61 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 cffe0f2..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,6 +4,7 @@
 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.*;
@@ -16,6 +17,8 @@
 import com.panzhihua.westcommittee.service.IComplaintCommentService;
 import com.panzhihua.westcommittee.service.IComplaintService;
 import com.panzhihua.westcommittee.service.IProblemTypeService;
+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;
@@ -25,8 +28,12 @@
 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>
@@ -58,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);
     }
 
     /**
@@ -193,6 +208,12 @@
 
 
 
+    @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) {
@@ -203,15 +224,21 @@
 
     @PostMapping("/assignComplain")
     @ApiOperation(value = "分配诉求")
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "complainId", value = "诉求id", required = true),
-            @ApiImplicitParam(name = "deptId", value = "单位id", required = true),
-            @ApiImplicitParam(name = "remark", value = "说明", required = true),
-    })
-    public R<?> assignComplain(@RequestParam Long complainId,@RequestParam Integer deptId,@RequestParam String remark) {
-        complaintService.assignComplain(getLoginUserInfo(),complainId,deptId,remark);
+    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();
+    }
+
 
 
     /**
@@ -241,10 +268,31 @@
         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);
@@ -255,6 +303,10 @@
             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);
         }
 

--
Gitblit v1.7.1