mitao
2025-02-24 33e5113e02e32b8553c5f4edd07eb1f149594f04
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java
@@ -9,7 +9,6 @@
import com.panzhihua.sangeshenbian.model.dto.ComplaintProcessDTO;
import com.panzhihua.sangeshenbian.model.entity.Complaint;
import com.panzhihua.common.exceptions.ServiceException;
import com.panzhihua.common.model.vos.LoginUserInfoVO;
import com.panzhihua.sangeshenbian.enums.ReportTypeEnum;
import com.panzhihua.sangeshenbian.model.dto.*;
import com.panzhihua.sangeshenbian.model.entity.*;
@@ -30,15 +29,17 @@
import com.panzhihua.sangeshenbian.model.vo.ComplaintVO;
import com.panzhihua.sangeshenbian.service.ISystemUserService;
import lombok.RequiredArgsConstructor;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Optional;
import java.util.List;
import static cn.hutool.core.util.ObjectUtil.isNull;
@@ -51,7 +52,7 @@
 * @since 2025-02-22
 */
@Service
@RequiredArgsConstructor
@RequiredArgsConstructor(onConstructor_ = {@Lazy})
public class ComplaintServiceImpl extends ServiceImpl<ComplaintMapper, Complaint> implements IComplaintService {
    private final ISystemUserService systemUserService;
    private final IComplaintFlowService complaintFlowService;
@@ -125,11 +126,11 @@
                    break;
                case 3:
                    //街道
                    targetId = systemUser.getStreetCode();
                    targetId = systemUser.getStreetId().toString();
                    break;
                case 4:
                    //社区
                    targetId = systemUser.getCommunityCode();
                    targetId = systemUser.getCommunityId().toString();
                    break;
            }
            isSuperior = 1;
@@ -154,6 +155,10 @@
            List<ComplaintFlow> list = complaintFlowService.lambdaQuery().eq(ComplaintFlow::getComplaintId, id).orderByAsc(ComplaintFlow::getCreateTime).list();
            detail.setComplaintFlows(list);
        }
        //查询办理进度
        List<ComplaintProgress> list = complaintProgressService.lambdaQuery().eq(ComplaintProgress::getComplaintId, id)
                .orderByAsc(ComplaintProgress::getCreateTime).list();
        detail.setComplaintProgresses(list);
        return detail;
    }
@@ -161,13 +166,14 @@
     * 办理进度录入
     *
     * @param dto
     * @param userId
     * @param loginUserInfoVO
     */
    @Override
    public void saveProcess(ComplaintProcessDTO dto,Long userId) {
    public void saveProcess(ComplaintProcessDTO dto, LoginUserInfoVO loginUserInfoVO) {
        ComplaintProgress complaintProgress = BeanUtil.copyProperties(dto, ComplaintProgress.class);
        complaintProgress.setCreateTime(new Date());
        complaintProgress.setCreateBy(userId);
        complaintProgress.setCreateBy(loginUserInfoVO.getUserId());
        complaintProgress.setCreateByName(loginUserInfoVO.getName());
        complaintProgressService.save(complaintProgress);
    }
@@ -186,7 +192,16 @@
        complaint.setCompletionTime(new Date());
        this.updateById(complaint);
    }
    /**
     * 办理进度列表
     * @param complaintId
     * @return
     */
    @Override
    public List<ComplaintProgress> progress(Long complaintId) {
        //查询办理进度
        return complaintProgressService.lambdaQuery().eq(ComplaintProgress::getComplaintId, complaintId)
                .orderByAsc(ComplaintProgress::getCreateTime).list();
    }
    @Override
@@ -213,7 +228,7 @@
            // 使用基本类型比较并补充默认分支
            if (accountLevel == ReportTypeEnum.COMMUNITY.getCode()) {
                superiorId = Long.parseLong(adminUser.getStreetCode());
                superiorId = adminUser.getStreetId().longValue();
            } else if (accountLevel == ReportTypeEnum.STREET.getCode()) {
                superiorId = Long.parseLong(adminUser.getDistrictsCode());
            } else if (accountLevel == ReportTypeEnum.DISTRICT.getCode()) {
@@ -261,9 +276,9 @@
        // 使用基本类型比较并补充默认分支
        if (accountLevel == ReportTypeEnum.STREET.getCode()) {
            superiorId = Long.parseLong(adminUser.getCommunityCode());
            superiorId = adminUser.getCommunityId().longValue();
        } else if (accountLevel == ReportTypeEnum.DISTRICT.getCode()) {
            superiorId = Long.parseLong(adminUser.getStreetCode());
            superiorId = adminUser.getStreetId().longValue();
        } else if (accountLevel == ReportTypeEnum.CITY.getCode()) {
            superiorId = Long.parseLong(adminUser.getDistrictsCode());
        } else {
@@ -358,9 +373,10 @@
            throw new ServiceException("未知的账号等级");
        }
        return dispatchVOList;
    }
    /**
     * 获取待办诉求
     * @param page
     * @param basePage
     * @param loginUserInfo
     * @return
     */
@@ -384,11 +400,11 @@
                    break;
                case 3:
                    //街道
                    targetId = systemUser.getStreetCode();
                    targetId = systemUser.getStreetId().toString();
                    break;
                case 4:
                    //社区
                    targetId = systemUser.getCommunityCode();
                    targetId = systemUser.getCommunityId().toString();
                    break;
            }
            isSuperior = 1;
@@ -399,5 +415,17 @@
        Page<ComplaintTodoVO> page = baseMapper.getTodoList(new Page<>(basePage.getPageNum(), basePage.getPageSize()), targetId,isSuperior);
        return page;
    }
    /**
     * 延期情况说明
     * @param complaintId
     * @return
     */
    @Override
    public ComplaintAuditRecord delayDetail(Long complaintId) {
        return complaintAuditRecordService.lambdaQuery().eq(ComplaintAuditRecord::getComplaintId, complaintId)
                .eq(ComplaintAuditRecord::getAuditType, 1)
                .eq(ComplaintAuditRecord::getLatestFlag, true)
                .last("LIMIT 1").one();
    }
}