无关风月
18 小时以前 083c414ff683ab12e65069c6c0ba6871ed1ed09f
保洁巡检本周代码
13个文件已修改
197 ■■■■■ 已修改文件
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ReportController.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTaskController.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/TaskUtil.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TIndexController.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TUserController.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/utils/CodeGenerateUtils.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/applet/dto/IndexDTO.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/mapper/TTaskMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/model/TLocation.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/model/TTask.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/TTaskCleanService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTaskCleanServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/TTaskMapper.xml 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ReportController.java
@@ -227,6 +227,7 @@
        progressListVOPageInfo.setRecords(records);
        return R.ok(progressListVOPageInfo);
    }
    @ApiOperation(value = "任务进度导出")
    @Log(title = "任务进度导出", businessType = BusinessType.OTHER)
    @PostMapping(value = "/taskProgressExport")
@@ -502,6 +503,7 @@
        }
        return R.ok(res);
    }
    @ApiOperation(value = "任务报表导出")
    @PostMapping(value = "/taskDetailsExport")
    public void taskDetailsExport(@RequestBody TaskDetailsQuery query,HttpServletResponse response) throws IOException {
@@ -889,6 +891,7 @@
        }
        return R.ok(res);
    }
    @ApiOperation(value = "巡检人员报表导出")
    @PostMapping(value = "/patrolInspectorListExport")
    @Log(title = "巡检人员报表导出", businessType = BusinessType.OTHER)
@@ -1161,7 +1164,8 @@
                if (tDept!=null)
                    inspectorVO.setDeptName(tDept.getDeptName());
            }
            List<TInspector> collect = inspectors.stream().filter(e -> listAllTaskIds.contains(e.getTaskId())).collect(Collectors.toList());
            List<String> collect1 = listAll.stream().filter(e -> e.getPatrolInspector().equals(sysUser.getUserId() + "")).map(TTask::getId).collect(Collectors.toList());
            List<TInspector> collect = inspectors.stream().filter(e -> collect1.contains(e.getTaskId())).collect(Collectors.toList());
            inspectorVO.setTotal(collect.size());
            List<TInspector> status1 = collect.stream().filter(e -> e.getClearStatus() == 1).collect(Collectors.toList());
            List<TInspector> status2 = collect.stream().filter(e -> e.getClearStatus() == 2).collect(Collectors.toList());
@@ -1180,11 +1184,15 @@
        }
        return R.ok(res);
    }
    @ApiOperation(value = "随机督察报表导出")
    @PostMapping(value = "/inspectorListExport")
    @Log(title = "随机督察报表导出", businessType = BusinessType.OTHER)
    public void inspectorListExport(@RequestBody InspectorQuery query) {
        query.setPatrolInspectorIds(null);
        List<SysUser> sysUsers = sysUserService.selectAllList();
        List<TTask> listAll = taskCleanerService.list();
        List<String> listAllTaskIds = listAll.stream().map(TTask::getId).collect(Collectors.toList());
        if (StringUtils.hasLength(query.getDeptName())){
            List<String> projectIds = projectDeptService.lambdaQuery().like(TProjectDept::getProjectName, query.getDeptName()).list()
                    .stream().map(TProjectDept::getId).collect(Collectors.toList());
@@ -1255,12 +1263,14 @@
                if (tDept!=null)
                    inspectorVO.setDeptName(tDept.getDeptName());
            }
            inspectorVO.setTotal(inspectors.size());
            List<TInspector> status1 = inspectors.stream().filter(e -> e.getClearStatus() == 1).collect(Collectors.toList());
            List<TInspector> status2 = inspectors.stream().filter(e -> e.getClearStatus() == 2).collect(Collectors.toList());
            List<TInspector> status4 = inspectors.stream().filter(e -> e.getStatus() == 1).collect(Collectors.toList());
            List<TInspector> status5 = inspectors.stream().filter(e -> e.getStatus() == 2).collect(Collectors.toList());
            List<TInspector> status6 = inspectors.stream().filter(e -> e.getStatus() == 3).collect(Collectors.toList());
            List<String> collect1 = listAll.stream().filter(e -> e.getPatrolInspector().equals(sysUser.getUserId() + "")).map(TTask::getId).collect(Collectors.toList());
            List<TInspector> collect = inspectors.stream().filter(e -> collect1.contains(e.getTaskId())).collect(Collectors.toList());
            inspectorVO.setTotal(collect.size());
            List<TInspector> status1 = collect.stream().filter(e -> e.getClearStatus() == 1).collect(Collectors.toList());
            List<TInspector> status2 = collect.stream().filter(e -> e.getClearStatus() == 2).collect(Collectors.toList());
            List<TInspector> status4 = collect.stream().filter(e -> e.getStatus() == 1).collect(Collectors.toList());
            List<TInspector> status5 = collect.stream().filter(e -> e.getStatus() == 2).collect(Collectors.toList());
            List<TInspector> status6 = collect.stream().filter(e -> e.getStatus() == 3).collect(Collectors.toList());
            inspectorVO.setNum1(status1.size());
            inspectorVO.setNum2(status2.size());
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTaskController.java
@@ -35,6 +35,7 @@
import org.springframework.util.StringUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import oshi.driver.mac.net.NetStat;
import javax.annotation.Resource;
import javax.servlet.ServletOutputStream;
@@ -62,6 +63,8 @@
    private TNoticeService noticeService;
    @Resource
    private TNoticeSetService noticeSetService;
    @Resource
    private TEarlyWarningService earlyWarningService;
    @Resource
    private TTaskDetailService taskDetailService;
@@ -205,6 +208,21 @@
        tNotice.setDataId(task.getId());
        tNotice.setNoticeSetType(noticeSet.getNoticeType());
        if (dto.getAuditStatus()==2){
            if (StringUtils.hasLength(location.getUnqualifiedTaskId())){
                if (location.getUnqualifiedTaskId().split(",").length==2){
                    // 已经两条不合格了 生成点位不合格预警记录
                    location.setUnqualifiedTaskId(location.getUnqualifiedTaskId()+","+dto.getTaskId());
                    TEarlyWarning tEarlyWarning = new TEarlyWarning();
                    tEarlyWarning.setWarningType(2);
                    tEarlyWarning.setTaskId(location.getUnqualifiedTaskId());
                    earlyWarningService.save(tEarlyWarning);
                    location.setUnqualifiedTaskId("");
                    locationService.updateById(location);
                }
            }else{
                location.setUnqualifiedTaskId(dto.getTaskId());
                locationService.updateById(location);
            }
            dto.setHandleType(3);
            // 将任务修改为待整改
            task.setStatus(4);
@@ -212,9 +230,24 @@
            // 增加消息
            tNotice.setNoticeType(1);
            tNotice.setNoticeContent("【"+location.getLocationName()+"】任务不合格,请重新上传!");
        }else{
            if (dto.getClearStatus()==2){
                if (StringUtils.hasLength(location.getUnqualifiedTaskId())){
                    if (location.getUnqualifiedTaskId().split(",").length==2){
                        // 已经两条不合格了 生成点位不合格预警记录
                        location.setUnqualifiedTaskId(location.getUnqualifiedTaskId()+","+dto.getTaskId());
                        TEarlyWarning tEarlyWarning = new TEarlyWarning();
                        tEarlyWarning.setWarningType(2);
                        tEarlyWarning.setTaskId(location.getUnqualifiedTaskId());
                        earlyWarningService.save(tEarlyWarning);
                        location.setUnqualifiedTaskId("");
                        locationService.updateById(location);
                    }
                }else{
                    location.setUnqualifiedTaskId(dto.getTaskId());
                    locationService.updateById(location);
                }
            }
            dto.setHandleType(2);
            // 如果是初次审核就通过 将状态设置为已完成
            List<TTaskDetail> list = tTaskDetailService.lambdaQuery()
ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/TaskUtil.java
@@ -120,6 +120,14 @@
        }
    }
    /**
     * 生成点位预警
     */
    // 每分钟执行一次
    public void earning() {
    }
    public void createInspection(TTemplate template) {
        // 查询所有的模板详情
        List<TTemplateDetail> list = templateDetailService.list(Wrappers.lambdaQuery(TTemplateDetail.class)
ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TIndexController.java
@@ -330,7 +330,9 @@
        List<TLocation> locationList = locationService.list();
        List<TLocationType> locationTypeList = locationTypeService.list();
        List<TTask> taskAll = taskCleanerService.lambdaQuery().eq(TTask::getPatrolInspector, userId).list();
        dto.setUserId(userId);
        List<TTask> taskAll = taskCleanerService.indexTask(dto);
//        List<TTask> taskAll = taskCleanerService.lambdaQuery().eq(TTask::getPatrolInspector, userId).list();
        // 获取今天凌晨00:00:00 和今天23:59:59 类型为LocalDateTime
        LocalDateTime startOfToday = LocalDateTime.of(LocalDate.now(), LocalTime.MIN);
        LocalDateTime endOfToday = LocalDateTime.of(LocalDate.now(), LocalTime.MAX);
@@ -470,12 +472,13 @@
                taskTodayVO.setLocationLat(tLocation.getLocationLat());
                taskTodayVO.setLocationName(tLocation.getLocationName());
                if(StringUtils.hasLength(dto.getLon())){
                    Map<String, String> distance = amapApiClient.getDistance(dto.getLon() + "," + dto.getLat(), tLocation.getLocationLon() + "," + tLocation.getLocationLat(), 1);
                    if (distance != null) {
                        taskTodayVO.setDistance(new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000)).setScale(2, BigDecimal.ROUND_HALF_EVEN));
                    } else {
                        taskTodayVO.setDistance(new BigDecimal("0"));
                    }
                    taskTodayVO.setDistance(tTask.getDistance().divide(new BigDecimal(1000),2, RoundingMode.HALF_DOWN));
//                    Map<String, String> distance = amapApiClient.getDistance(dto.getLon() + "," + dto.getLat(), tLocation.getLocationLon() + "," + tLocation.getLocationLat(), 1);
//                    if (distance != null) {
//                        taskTodayVO.setDistance(new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000)).setScale(2, BigDecimal.ROUND_HALF_EVEN));
//                    } else {
//                        taskTodayVO.setDistance(new BigDecimal("0"));
//                    }
                }else {
                    taskTodayVO.setDistance(new BigDecimal("0"));
                }
ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TUserController.java
@@ -562,8 +562,18 @@
                for (SysUser sysUser : collect) {
                    Long userRole1 = sysUserService.getUserRole(sysUser.getUserId());
                    SysRole sysRole1 = roleService.selectRoleById(userRole1);
//                    if (sysRole1 != null && sysRole1.getRoleName().equals("项目部负责人")) {
//                        if (userDept.getId().equals(sysUser.getDeptId())){
//                            LeaveAuditVO tLeaveAudit = new LeaveAuditVO();
//                            tLeaveAudit.setAvatar(sysUser.getAvatar());
//                            tLeaveAudit.setNickName(sysUser.getNickName());
//                            res.setAuditPerson(tLeaveAudit);
//                            res.setAuditPersonId(sysUser.getUserId() + "");
//                            break;
//                        }
//                    }
                    if (sysRole1 != null && sysRole1.getRoleName().equals("项目部负责人")) {
                        if (!sysRole.getRoleName().contains("项目部助理")){
                        if (userDept.getParentId().equals(sysUser.getDeptId())){
                            LeaveAuditVO tLeaveAudit = new LeaveAuditVO();
                            tLeaveAudit.setAvatar(sysUser.getAvatar());
@@ -572,6 +582,17 @@
                            res.setAuditPersonId(sysUser.getUserId() + "");
                            break;
                        }
                        }else{
                            if (userDept.getId().equals(sysUser.getDeptId())){
                                LeaveAuditVO tLeaveAudit = new LeaveAuditVO();
                                tLeaveAudit.setAvatar(sysUser.getAvatar());
                                tLeaveAudit.setNickName(sysUser.getNickName());
                                res.setAuditPerson(tLeaveAudit);
                                res.setAuditPersonId(sysUser.getUserId() + "");
                                break;
                            }
                        }
                    }
                }
            }
@@ -645,6 +666,13 @@
            tLeaveAudit1.setAuditId(auditPerson.getUserId() + "");
            tLeaveAudit1.setAuditType(1);
            leaveAuditService.save(tLeaveAudit1);
            TLeaveAudit tLeaveAudit2 = new TLeaveAudit();
            tLeaveAudit2.setLeaveId(leaveDTO.getId());
            tLeaveAudit2.setAuditStatus(2);
            tLeaveAudit2.setAuditId(user.getUserId() + "," + auditPerson.getUserId());
            tLeaveAudit2.setAuditType(2);
            tLeaveAudit2.setAuditTime(LocalDateTime.now());
            leaveAuditService.save(tLeaveAudit2);
        } else if (!sysRole.getRoleName().equals("部门助理")) {
            // 审批人根据当前角色类型来
            if (sysRole.getRoleName().contains("片区负责人") || sysRole.getRoleName().contains("组长")|| sysRole.getRoleName().contains("队长")
@@ -657,6 +685,7 @@
                    SysRole sysRole1 = roleService.selectRoleById(userRole1);
                    if (sysRole1 != null && sysRole1.getRoleName().equals("项目部负责人")) {
                       if (!sysRole.getRoleName().contains("项目部助理")){
                        if (userDept.getParentId().equals(sysUser.getDeptId())){
                            LeaveAuditVO tLeaveAudit = new LeaveAuditVO();
                            tLeaveAudit.setAvatar(sysUser.getAvatar());
@@ -676,6 +705,28 @@
                            leaveAuditService.save(tLeaveAudit2);
                            break;
                        }
                       }else{
                           if (userDept.getId().equals(sysUser.getDeptId())){
                               LeaveAuditVO tLeaveAudit = new LeaveAuditVO();
                               tLeaveAudit.setAvatar(sysUser.getAvatar());
                               tLeaveAudit.setNickName(sysUser.getNickName());
                               TLeaveAudit tLeaveAudit1 = new TLeaveAudit();
                               tLeaveAudit1.setLeaveId(leaveDTO.getId());
                               tLeaveAudit1.setAuditStatus(1);
                               tLeaveAudit1.setAuditId(sysUser.getUserId() + "");
                               tLeaveAudit1.setAuditType(1);
                               leaveAuditService.save(tLeaveAudit1);
                               TLeaveAudit tLeaveAudit2 = new TLeaveAudit();
                               tLeaveAudit2.setLeaveId(leaveDTO.getId());
                               tLeaveAudit2.setAuditStatus(2);
                               tLeaveAudit2.setAuditId(user.getUserId() + "," + sysUser.getUserId());
                               tLeaveAudit2.setAuditType(2);
                               tLeaveAudit2.setAuditTime(LocalDateTime.now());
                               leaveAuditService.save(tLeaveAudit2);
                               break;
                           }
                       }
                    }
                }
            }
ruoyi-common/src/main/java/com/ruoyi/common/utils/CodeGenerateUtils.java
@@ -69,7 +69,7 @@
        dateTime = dateTime.substring(0);
        String timestampPart = "" + (Math.random() * 10000) * (System.currentTimeMillis() / 10000);
        timestampPart = timestampPart.replace(".", "").replace("E", "");
        timestampPart = timestampPart.substring(0, 0);
        timestampPart = timestampPart.substring(0, 6);
        return dateTime + timestampPart;
    }
    /**
@@ -89,7 +89,10 @@
    }
    public static void main(String[] args) {
        System.err.println(generateVolumeSn("2"));
        for (int i = 0; i < 5; i++) {
            System.err.println(generateVolumeSn());
        }
    }
}
ruoyi-system/src/main/java/com/ruoyi/system/applet/dto/IndexDTO.java
@@ -13,4 +13,6 @@
    private String lon;
    @ApiModelProperty(value = "纬度")
    private String lat;
    @ApiModelProperty(value = "用户id 前端忽略")
    private Long userId;
}
ruoyi-system/src/main/java/com/ruoyi/system/mapper/TTaskMapper.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.common.basic.PageInfo;
import com.ruoyi.system.applet.dto.IndexDTO;
import com.ruoyi.system.applet.query.TaskUserListQuery;
import com.ruoyi.system.applet.vo.TaskUserListVO;
import com.ruoyi.system.model.TTask;
@@ -43,4 +44,6 @@
    List<ProgressListVO> taskProgressExport(@Param("query")TaskProgressQuery query);
    List<TLocationTaskListVO> pointInspectionHeatDetailTaskList(@Param("query")PointDetailQuery query, @Param("pageInfo")PageInfo<TLocationTaskListVO> pageInfo);
    List<TTask> indexTask(@Param("query") IndexDTO dto);
}
ruoyi-system/src/main/java/com/ruoyi/system/model/TLocation.java
@@ -76,6 +76,9 @@
    @ApiModelProperty(value = "点位纬度 终点")
    @TableField("location_lat_end")
    private String locationLatEnd;
    @ApiModelProperty(value = "不合格任务id 用于生成点位不合格预警,多个逗号拼接")
    @TableField("unqualified_task_id")
    private String unqualifiedTaskId;
    @ApiModelProperty(value = "任务数量")
    @TableField(exist = false)
ruoyi-system/src/main/java/com/ruoyi/system/model/TTask.java
@@ -10,6 +10,7 @@
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
@@ -47,6 +48,9 @@
    @ApiModelProperty(value = "点位id")
    @TableField("location_id")
    private String locationId;
    @ApiModelProperty(value = "距离 米")
    @TableField(exist = false)
    private BigDecimal distance;
    @ApiModelProperty(value = "巡检员id 对应sys_user表")
    @TableField("patrol_inspector")
ruoyi-system/src/main/java/com/ruoyi/system/service/TTaskCleanService.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.common.basic.PageInfo;
import com.ruoyi.system.applet.dto.IndexDTO;
import com.ruoyi.system.applet.query.TaskUserListQuery;
import com.ruoyi.system.applet.vo.TaskUserListVO;
import com.ruoyi.system.model.TTask;
@@ -47,4 +48,7 @@
     * @return
     */
    PageInfo<TLocationTaskListVO> pointInspectionHeatDetailTaskList(PointDetailQuery query);
    List<TTask> indexTask(IndexDTO dto);
}
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTaskCleanServiceImpl.java
@@ -7,6 +7,7 @@
import com.ruoyi.common.core.domain.BaseModel;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.system.applet.dto.IndexDTO;
import com.ruoyi.system.applet.query.TaskUserListQuery;
import com.ruoyi.system.applet.vo.TaskUserListVO;
import com.ruoyi.system.mapper.*;
@@ -198,5 +199,10 @@
        return pageInfo;
    }
    @Override
    public List<TTask> indexTask(IndexDTO dto) {
        return this.baseMapper.indexTask(dto);
    }
}
ruoyi-system/src/main/resources/mapper/system/TTaskMapper.xml
@@ -242,5 +242,34 @@
        </where>
         order by t1.implement_time desc
    </select>
    <select id="indexTask" resultType="com.ruoyi.system.model.TTask">
        select t1.*,
               ROUND(
                       6378.138 * 2 * ASIN(
                               SQRT(
                                       POW(
                                               SIN(
                                                       (
                                                           #{query.lat} * PI() / 180 - t2.location_lat * PI() / 180
                                                           ) / 2
                                               ),
                                               2
                                       ) + COS(#{query.lat} * PI() / 180) * COS(t2.location_lat * PI() / 180) * POW(
                                               SIN(
                                                       (
                                                           #{query.lon} * PI() / 180 - t2.location_lon * PI() / 180
                                                           ) / 2
                                               ),
                                               2
                                                                                                                )
                               )
                                      ) * 1000
               ) AS distance
        from t_task t1
        left join t_location t2 on t1.location_id = t2.id
        where t1.`disabled` = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
       and t1.patrol_inspector = #{query.userId}
    </select>
</mapper>