无关风月
6 小时以前 5e2d78f61bf7d1513d5d5c8cd55442133a6e898e
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TInspectorController.java
@@ -17,8 +17,11 @@
import com.ruoyi.system.query.InsepectorListQuery;
import com.ruoyi.system.query.TaskListQuery;
import com.ruoyi.system.service.*;
import com.ruoyi.system.utils.TemplateMessageSendUtil;
import com.ruoyi.system.vo.system.InspectorListVO;
import com.ruoyi.system.vo.system.TaskListVO;
import com.ruoyi.web.controller.tool.EmailUtils;
import com.ruoyi.web.controller.tool.MsgUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.poi.ss.usermodel.Workbook;
@@ -71,47 +74,62 @@
    public R<PageInfo<InspectorListVO>> pageList(@RequestBody InsepectorListQuery query) {
        List<SysUser> sysUsers = sysUserService.selectAllList();
        List<TLocation> locationList = locationService.list();
        if (StringUtils.hasLength(query.getDeptName())){
            List<String> projectIds = projectDeptService.lambdaQuery().like(TProjectDept::getProjectName, query.getDeptName()).list()
        if (StringUtils.hasLength(query.getDeptName())) {
            List<TProjectDept> list = projectDeptService.lambdaQuery().like(TProjectDept::getProjectName, query.getDeptName()).list();
            List<String> projectIds = list
                    .stream().map(TProjectDept::getId).collect(Collectors.toList());
            List<String> deptIds = deptService.lambdaQuery().like(TDept::getDeptName, query.getDeptName()).list()
                    .stream().map(TDept::getId).collect(Collectors.toList());
            for (TProjectDept projectDept : list) {
                if (projectDept.getParentId().equals("0")){
                    List<TProjectDept> list1 = projectDeptService.lambdaQuery().eq(TProjectDept::getParentId, projectDept.getId()).list();
                    List<String> collect = list1.stream().map(TProjectDept::getId).collect(Collectors.toList());
                    projectIds.addAll(collect);
                }
            }
            projectIds.addAll(deptIds);
            if (projectIds.isEmpty()){
            if (projectIds.isEmpty()) {
                return R.ok(new PageInfo<>());
            }
            if (StringUtils.hasLength(query.getPhonenumber())){
            // 用户ids
            List<Long> collect = sysUsers.stream().filter(e -> e.getDeptType() == 1 && projectIds.contains(e.getDeptId())).map(SysUser::getUserId)
                    .collect(Collectors.toList());
            List<Long> collect1 = sysUsers.stream().filter(e -> e.getDeptType() == 2 && deptIds.contains(e.getDeptId())).map(SysUser::getUserId)
                    .collect(Collectors.toList());
            collect.addAll(collect1);
            if (collect.isEmpty()) {
                return R.ok(new PageInfo<>());
            }
            query.setPatrolInspectorIds(collect);
            if (StringUtils.hasLength(query.getPhonenumber())) {
                List<Long> patrolInspectorIds = sysUsers.stream().filter(sysUser ->
                        sysUser.getPhonenumber().equals(query.getPhonenumber())
                                && projectIds.contains(sysUser.getDeptId())
                ).map(SysUser::getUserId).collect(Collectors.toList());
                if (patrolInspectorIds.isEmpty()){
                if (patrolInspectorIds.isEmpty()) {
                    return R.ok(new PageInfo<>());
                } else {
                    patrolInspectorIds = patrolInspectorIds.stream().filter(query.getPatrolInspectorIds()::contains).collect(Collectors.toList());
                    query.setPatrolInspectorIds(patrolInspectorIds);
                }
                query.setPatrolInspectorIds(patrolInspectorIds);
            }
        }
        if (StringUtils.hasLength(query.getPhonenumber())){
            List<Long> patrolInspectorIds = sysUsers.stream().filter(sysUser ->
                    sysUser.getPhonenumber().equals(query.getPhonenumber())
                    sysUser.getPhonenumber().contains(query.getPhonenumber())
            ).map(SysUser::getUserId).collect(Collectors.toList());
            if (!query.getPatrolInspectorIds().isEmpty()){
            if (query.getPatrolInspectorIds()!=null&&!query.getPatrolInspectorIds().isEmpty()){
                // 取交集
                patrolInspectorIds = patrolInspectorIds.stream().filter(query.getPatrolInspectorIds()::contains).collect(Collectors.toList());
            }
            query.setPatrolInspectorIds(patrolInspectorIds);
            if (patrolInspectorIds.isEmpty()){
                return R.ok(new PageInfo<>());
            }
            query.setPatrolInspectorIds(patrolInspectorIds);
        }
        if (query.getClearStatus()!=null){
            List<String> collect = tTaskDetailService.lambdaQuery().eq(TTaskDetail::getClearStatus, query.getClearStatus())
                    .list().stream().distinct().map(TTaskDetail::getTaskId).collect(Collectors.toList());
            query.setTaskIds(collect);
            if (collect.isEmpty()){
                return R.ok(new PageInfo<>());
            }
        }
        if (query.getLocationType()!=null){
            List<String> collect = locationList.stream().filter(e -> e.getLocationType().equals(query.getLocationType())).map(TLocation::getId)
                    .collect(Collectors.toList());
@@ -135,6 +153,10 @@
                }
                query.setLocationIds(collect);
            }
        }
        if (StringUtils.hasLength(query.getEndTime())){
            String replace = query.getEndTime().replace(" 00:00:00", " 23:59:59");
            query.setEndTime(replace);
        }
        return R.ok(inspectorService.pageList(query));
    }
@@ -254,10 +276,16 @@
    private TNoticeService noticeService;
    @Resource
    private TNoticeSetService noticeSetService;
    @Resource
    private TDictDataService dictDataService;
    @Resource
    private MsgUtils msgUtils;
    @Resource
    private TemplateMessageSendUtil templateMessageSendUtil;
    @Log(title = "审核任务", businessType = BusinessType.UPDATE)
    @ApiOperation(value = "审核任务")
    @PostMapping(value = "/audit")
    public R<Boolean> audit(@RequestBody TInspectorAuditDTO dto) {
    public R<Boolean> audit(@RequestBody TInspectorAuditDTO dto) throws Exception {
        TTaskAuditDTO tTaskAuditDTO = new TTaskAuditDTO();
        BeanUtils.copyProperties(dto, tTaskAuditDTO);
        TTask task = taskCleanerService.getById(dto.getTaskId());
@@ -269,14 +297,36 @@
        tNotice.setStatus(1);
        tNotice.setDataId(task.getId());
        tNotice.setNoticeSetType(noticeSet.getNoticeType());
        TInspector byId = inspectorService.getById(dto.getId());
        SysUser sysUser = sysUserService.selectUserById(Long.valueOf(task.getPatrolInspector()));
        // 邮箱
        TDictData email = dictDataService.lambdaQuery().eq(TDictData::getDataType,4).one();
        // 授权码
        TDictData code = dictDataService.lambdaQuery().eq(TDictData::getDataType,5).one();
        if (dto.getAuditStatus()==1){
            if (dto.getClearStatus()==2){
            if (byId.getClearStatus()==2){
                tTaskAuditDTO.setHandleType(3);
                dto.setStatus(2);
                // 增加消息
                tNotice.setNoticeType(1);
                tNotice.setNoticeType(8);
                tNotice.setNoticeContent("【"+location.getLocationName()+"】督察任务不合格,请重新上传!");
                noticeService.save(tNotice);
                switch (noticeSet.getNoticeType()) {
                    case 1:
                        msgUtils.sendMsg5(sysUser.getPhonenumber(), location.getLocationName());
                        break;
                    case 2:
                        if (StringUtils.hasLength(email.getDataContent()) && StringUtils.hasLength(code.getDataContent())) {
                            EmailUtils.sendEmail(sysUser.getEmail(), email.getDataContent(), code.getDataContent(), "【"+location.getLocationName()+"】任务督察不合格,请及时整改!");
                        }
                        break;
                    case 3:
                        if (StringUtils.hasLength(sysUser.getOpenId())){
                            templateMessageSendUtil.wxTemplateProblemRectificationRequest(sysUser.getOpenId(),
                                    location.getLocationName(),dto.getAuditRemark());
                        }
                        break;
                }
            }else{
                if (dto.getAuditTime()!=null){
                    dto.setStatus(3);
@@ -290,6 +340,57 @@
        dto.setAuditPerson(tokenService.getLoginUser().getUserId()+"");
        inspectorService.updateById(dto);
        return R.ok();
//        TInspector byId = inspectorService.getById(dto.getId());
//
//        TTaskAuditDTO tTaskAuditDTO = new TTaskAuditDTO();
//        BeanUtils.copyProperties(dto, tTaskAuditDTO);
//        TLocation location = locationService.getById(byId.getLocationId());
//        TNotice tNotice = new TNotice();
//        TNoticeSet noticeSet = noticeSetService.lambdaQuery().eq(TNoticeSet::getType, 2).last("limit 1")
//                .one();
//        tNotice.setUserId(location.getLocationLeader());
//        tNotice.setStatus(1);
//        tNotice.setDataId(byId.getId());
//        tNotice.setNoticeSetType(noticeSet.getNoticeType());
//        SysUser sysUser = sysUserService.selectUserById(Long.valueOf(location.getLocationLeader()));
//        // 邮箱
//        TDictData email = dictDataService.lambdaQuery().eq(TDictData::getDataType,4).one();
//        // 授权码
//        TDictData code = dictDataService.lambdaQuery().eq(TDictData::getDataType,5).one();
//        if (dto.getAuditStatus()==1){
//            if (byId.getClearStatus()==2){
//                tTaskAuditDTO.setHandleType(3);
//                dto.setStatus(2);
//                // 增加消息
//                tNotice.setNoticeType(8);
//                tNotice.setNoticeContent("【"+location.getLocationName()+"】督察任务不合格,请重新上传!");
//                noticeService.save(tNotice);
//                switch (noticeSet.getNoticeType()) {
//                    case 1:
//                        msgUtils.sendMsg5(sysUser.getPhonenumber(), location.getLocationName());
//                        break;
//                    case 2:
//                        if (StringUtils.hasLength(email.getDataContent()) && StringUtils.hasLength(code.getDataContent())) {
//                            EmailUtils.sendEmail(sysUser.getEmail(), email.getDataContent(), code.getDataContent(), "【"+location.getLocationName()+"】任务督察不合格,请及时整改!");
//                        }
//                        break;
//                    case 3:
//                        break;
//                }
//            }else{
//                if (dto.getAuditTime()!=null){
//                    dto.setStatus(3);
//                }else{
//                    dto.setStatus(4);
//                }
//            }
//        }
//        dto.setAuditTime(LocalDateTime.now());
//        dto.setAuditPerson(tokenService.getLoginUser().getUserId()+"");
//        inspectorService.updateById(dto);
//        return R.ok();
    }
}