luofl
2025-04-14 29562cfa14c5626c958e2c750400c6b06f2c3f23
迭代:4.11版本
5个文件已修改
123 ■■■■■ 已修改文件
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComplaintController.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ComplaintAuditRecord.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/ComplaintVO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintService.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComplaintController.java
@@ -68,6 +68,38 @@
        return R.ok();
    }
    /**
     * 诉求录入并上报
     */
    @PostMapping("/saveAndReport")
    @ApiOperation(value = "诉求录入并上报")
    public R<?> saveAndReport(@Valid @RequestBody ComplaintVO complaintVO) {
        complaintService.saveAndReport(complaintVO, getLoginUserInfo());
        return R.ok();
    }
    /**
     * 诉求录入并办结
     */
    @PostMapping("/saveAndComplete")
    @ApiOperation(value = "诉求录入并办结")
    public R<?> saveAndComplete(@Valid @RequestBody ComplaintSaveAndCompleteDTO complaintVO) {
        complaintService.saveAndComplete(complaintVO, getLoginUserInfo());
        return R.ok();
    }
    /**
     * 上报撤回
     */
    @PostMapping("/revoke")
    @ApiOperation(value = "诉求上报撤回")
    public R<?> reportWithdraw(@RequestBody ComplaintReportWithdrawDTO dto) {
        complaintService.reportWithdraw(dto, getLoginUserInfo());
        return R.ok();
    }
    @PostMapping("/list")
    @ApiOperation("工单列表")
    public R<Page<ComplaintVO>> complaintList(@RequestBody ComplaintQuery query) {
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ComplaintAuditRecord.java
@@ -53,7 +53,7 @@
    @TableField("audit_type")
    private Integer auditType;
    @ApiModelProperty(value = "审核状态 (-1:未提交审核,0:待审核 1:审核通过 2:审核驳回)")
    @ApiModelProperty(value = "审核状态 (-1:未提交审核,0:待审核 1:审核通过 2:审核驳回 3:上报撤回)")
    @TableField("audit_status")
    private Integer auditStatus;
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/ComplaintVO.java
@@ -71,6 +71,9 @@
    @ApiModelProperty(value = "审核按钮状态(0=显示,1=隐藏)")
    private Integer auditButtonStatus;
    @ApiModelProperty(value = "撤回按钮状态(0=显示,1=隐藏)")
    private Integer withdrawButtonStatus;
    @ApiModelProperty(value = "评价打分 0:不满意; 1:一般; 2:满意; 3:非常满意;")
    private Integer rate;
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintService.java
@@ -17,6 +17,7 @@
import com.panzhihua.sangeshenbian.model.vo.DispatchVO;
import com.panzhihua.sangeshenbian.warpper.MgtComplaintQuery;
import javax.validation.Valid;
import java.io.IOException;
import java.util.List;
@@ -68,12 +69,24 @@
     * @return
     */
    List<ComplaintProgress> progress(Long complaintId);
    void saveAndReport(ComplaintVO complaintVO, LoginUserInfoVO loginUserInfo);
    void saveAndComplete(@Valid ComplaintSaveAndCompleteDTO complaintVO, LoginUserInfoVO loginUserInfo);
    /**
     * 诉求上报
     */
    void saveReport(ComplaintReportDTO dto, LoginUserInfoVO loginUserInfoVO);
    /**
     * 诉求上报撤回
     */
    void reportWithdraw(ComplaintReportWithdrawDTO dto, LoginUserInfoVO loginUserInfoVO);
    /**
     * 诉求下派
     */
    void saveDispatch(ComplaintDispatch dto, LoginUserInfoVO loginUserInfoVO);
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java
@@ -34,6 +34,7 @@
import jodd.util.StringUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -175,6 +176,31 @@
        complaint.setClosingTime(new Date(System.currentTimeMillis() + config.getDemandProcessingTime() * 24 * 60 * 60 * 1000));
        // 保存诉求记录
        save(complaint);
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void saveAndReport(ComplaintVO complaintVO, LoginUserInfoVO loginUserInfo) {
        Complaint complaint = new Complaint();
        BeanUtil.copyProperties(complaintVO, complaint);
        saveComplaint(complaint, loginUserInfo);
        ComplaintReportDTO dto = new ComplaintReportDTO();
        dto.setComplaintId(complaint.getId());
        dto.setComment(complaintVO.getComment());
        saveReport(dto, loginUserInfo);
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void saveAndComplete(ComplaintSaveAndCompleteDTO complaintVO, LoginUserInfoVO loginUserInfo) {
        Complaint complaint = new Complaint();
        BeanUtil.copyProperties(complaintVO, complaint);
        saveComplaint(complaint, loginUserInfo);
        ComplaintCompletionDTO complaintCompletionDTO = complaintVO.getComplaintCompletionDTO();
        complaintCompletionDTO.setComplaintId(complaint.getId());
        complaintCompletionDTO.setId(complaint.getId());
        saveResult(complaintCompletionDTO, loginUserInfo);
    }
    @Override
@@ -411,6 +437,16 @@
                }
            }
        }
        Long auditCreateBy = vo.getAuditCreateBy();
        Long userId = loginUserInfo.getUserId();
        if (null != auditCreateBy && auditCreateBy.compareTo(userId) == 0 && vo.getStatus() == 5) {
            vo.setWithdrawButtonStatus(0);
        }else {
            vo.setWithdrawButtonStatus(1);
        }
    }
@@ -589,6 +625,8 @@
                .orderByAsc(ComplaintProgress::getCreateTime).list();
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void saveReport(ComplaintReportDTO dto, LoginUserInfoVO loginUserInfoVO) {
@@ -697,6 +735,41 @@
    }
    @Override
    public void reportWithdraw(ComplaintReportWithdrawDTO dto, LoginUserInfoVO loginUserInfoVO) {
        ComplaintAuditRecord complaintAuditRecord = complaintAuditRecordService.getOne(new LambdaQueryWrapper<ComplaintAuditRecord>()
                .eq(ComplaintAuditRecord::getComplaintId, dto.getComplaintId())
                .eq(ComplaintAuditRecord::getAuditType, 2)
                .eq(ComplaintAuditRecord::getLatestFlag, true));
        if (Objects.isNull(complaintAuditRecord)) {
            throw new ServiceException("未找到相关记录");
        }
        complaintAuditRecord.setAuditStatus(3);
        complaintAuditRecord.setUpdateBy(loginUserInfoVO.getUserId());
        complaintAuditRecord.setUpdateTime(new Date());
        complaintAuditRecord.setLatestFlag(false);
        complaintAuditRecordService.updateById(complaintAuditRecord);
        // 获取上一条记录
        ComplaintAuditRecord lastRecord = complaintAuditRecordService.getOne(new LambdaQueryWrapper<ComplaintAuditRecord>()
                .ne(ComplaintAuditRecord::getId, complaintAuditRecord.getId())
                .eq(ComplaintAuditRecord::getComplaintId, dto.getComplaintId())
                .eq(ComplaintAuditRecord::getAuditType, 2)
                .eq(ComplaintAuditRecord::getLatestFlag, false)
                .orderByDesc(ComplaintAuditRecord::getSort)
        );
        if (Objects.nonNull(lastRecord)) {
            // 复制上一条记录
            ComplaintAuditRecord newRecord = new ComplaintAuditRecord();
            BeanUtils.copyProperties(lastRecord, newRecord);
            newRecord.setId(null);
            newRecord.setLatestFlag(true);
            newRecord.setUpdateBy(loginUserInfoVO.getUserId());
            newRecord.setUpdateTime(new Date());
            complaintAuditRecordService.save(newRecord);
        }
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void saveDispatch(ComplaintDispatch dto, LoginUserInfoVO loginUserInfoVO) {
        IdentityInformation identityInformation = identityInformationService.getCurrentIdentityInformation(loginUserInfoVO);