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