无关风月
9 天以前 8d0bd68856c69ccc2a76f54a96fdd498ce3327c7
保洁巡检本周代码
1个文件已添加
6个文件已修改
217 ■■■■ 已修改文件
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TInspectorController.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TLeaveController.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TLocationController.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTaskController.java 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/TaskUtil.java 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/dto/TInspectorAuditDTO.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/model/TTemplateDetail.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TInspectorController.java
@@ -9,11 +9,11 @@
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.WebUtils;
import com.ruoyi.common.utils.bean.BeanUtils;
import com.ruoyi.framework.web.service.TokenService;
import com.ruoyi.system.model.TDept;
import com.ruoyi.system.model.TLocation;
import com.ruoyi.system.model.TProjectDept;
import com.ruoyi.system.model.TTaskDetail;
import com.ruoyi.system.dto.TInspectorAuditDTO;
import com.ruoyi.system.dto.TTaskAuditDTO;
import com.ruoyi.system.model.*;
import com.ruoyi.system.query.InsepectorListQuery;
import com.ruoyi.system.query.TaskListQuery;
import com.ruoyi.system.service.*;
@@ -30,6 +30,7 @@
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLEncoder;
import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
@@ -55,12 +56,16 @@
    @Resource
    private TTaskDetailService tTaskDetailService;
    @Resource
    private TokenService tokenService;
    @Resource
    private TDeptService deptService;
    @Resource
    private ISysUserService sysUserService;
    @Resource
    private TInspectorService inspectorService;
    @Resource
    private TTaskCleanService taskCleanerService;
    @ApiOperation(value = "督察记录分页列表")
    @PostMapping(value = "/pageList")
    public R<PageInfo<InspectorListVO>> pageList(@RequestBody InsepectorListQuery query) {
@@ -243,5 +248,78 @@
        inspectorService.removeById(id);
        return R.ok();
    }
    @Resource
    private TNoticeService noticeService;
    @Resource
    private TNoticeSetService noticeSetService;
    @Log(title = "审核任务", businessType = BusinessType.UPDATE)
    @ApiOperation(value = "审核任务")
    @PostMapping(value = "/audit")
    public R<Boolean> audit(@RequestBody TInspectorAuditDTO dto) {
        TTaskAuditDTO tTaskAuditDTO = new TTaskAuditDTO();
        BeanUtils.copyProperties(dto, tTaskAuditDTO);
        dto.setAuditTime(LocalDateTime.now());
        TTask task = taskCleanerService.getById(dto.getTaskId());
        TLocation location = locationService.getById(task.getLocationId());
        TNotice tNotice = new TNotice();
        TNoticeSet noticeSet = noticeSetService.lambdaQuery().eq(TNoticeSet::getType, 2).last("limit 1")
                .one();
        tNotice.setUserId(task.getPatrolInspector());
        tNotice.setStatus(1);
        tNotice.setDataId(task.getId());
        tNotice.setNoticeSetType(noticeSet.getNoticeType());
        if (dto.getAuditStatus()==2){
            tTaskAuditDTO.setHandleType(3);
            // 将任务修改为待整改
            task.setStatus(4);
            taskCleanerService.updateById(task);
            // 增加消息
            tNotice.setNoticeType(1);
            tNotice.setNoticeContent("【"+location.getLocationName()+"】任务不合格,请重新上传!");
        }else{
            tTaskAuditDTO.setHandleType(2);
            // 如果是初次审核就通过 将状态设置为已完成
            List<TTaskDetail> list = tTaskDetailService.lambdaQuery().eq(TTaskDetail::getTaskId, dto.getTaskId()).list();
            if (list.isEmpty()){
                if (dto.getClearStatus()==1){
                    task.setStatus(6);
                    dto.setStatus(4);
                    taskCleanerService.updateById(task);
                }else{
                    dto.setStatus(2);
                    task.setStatus(4);
                    taskCleanerService.updateById(task);
// 增加消息
                    tNotice.setNoticeType(1);
                    tNotice.setNoticeContent("【"+location.getLocationName()+"】任务不合格,请重新上传!");
                }
            }else{
                if (dto.getClearStatus()==1){
                    dto.setStatus(3);
                    task.setStatus(5);
                    taskCleanerService.updateById(task);
                    // 增加消息
                    tNotice.setNoticeType(2);
                    tNotice.setNoticeContent("【"+location.getLocationName()+"】任务已通过");
                }else{
                    dto.setStatus(2);
                    task.setStatus(4);
                    taskCleanerService.updateById(task);
                    // 增加消息
                    tNotice.setNoticeType(1);
                    tNotice.setNoticeContent("【"+location.getLocationName()+"】任务不合格,请重新上传!");
                }
            }
        }
        noticeService.save(tNotice);
        dto.setAuditPerson(tokenService.getLoginUser().getUserId()+"");
        inspectorService.updateById(dto);
        tTaskDetailService.save(tTaskAuditDTO);
        return R.ok();
    }
}
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TLeaveController.java
@@ -83,16 +83,25 @@
            LeaveAuditDetailVO leaveAuditDetailVO = new LeaveAuditDetailVO();
            BeanUtils.copyProperties(tLeaveAudit,leaveAuditDetailVO);
            if (tLeaveAudit.getAuditType()==2){
                if (sysUser!=null){
                    leaveAuditDetailVO.setNickName(sysUser.getNickName());
                    leaveAuditDetailVO.setAvatar(sysUser.getPhonenumber());
                for (String s : tLeaveAudit.getAuditId().split(",")) {
                    SysUser sysUser1 = sysUserService.selectUserById(Long.valueOf(s));
                    if (sysUser1!=null){
                        leaveAuditDetailVO.setAvatar(sysUser1.getAvatar());
                        leaveAuditDetailVO.setNickName(sysUser1.getNickName());
                        leaveAuditDetailVOS.add(leaveAuditDetailVO);
                    }
                }
            }else{
                // todo 最终审核人还未确定
                SysUser sysUser1 = sysUserService.selectUserById(Long.valueOf(tLeaveAudit.getAuditId()));
                // 查询审核人
                leaveAuditDetailVO.setNickName(sysUser1.getNickName());
                leaveAuditDetailVO.setAvatar(sysUser1.getAvatar());
                leaveAuditDetailVOS.add(leaveAuditDetailVO);
            }
        }
        leaveDetailVO.setList(leaveAuditDetailVOS);
        return R.ok();
        return R.ok(leaveDetailVO);
    }
}
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TLocationController.java
@@ -178,7 +178,7 @@
            res.add(temp);
        }
        pageInfo.setRecords(res);
        return R.ok();
        return R.ok(pageInfo);
    }
    @ApiOperation(value = "根据片区id查询保洁员列表 不分页")
    @GetMapping(value = "/listCleaner")
@@ -275,6 +275,8 @@
    @GetMapping("/import-template")
    public void importTemplate() {
        List<TLocationImportExcel> locationImportExcels = new ArrayList<>();
        TLocationImportExcel tLocationImportExcel = new TLocationImportExcel();
        locationImportExcels.add(tLocationImportExcel);
        Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), TLocationImportExcel.class, locationImportExcels);
        HttpServletResponse response = WebUtils.response();
        ServletOutputStream outputStream = null;
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTaskController.java
@@ -196,17 +196,36 @@
        }else{
            dto.setHandleType(2);
            // 如果是初次审核就通过 将状态设置为已完成
            List<TTaskDetail> list = taskDetailService.lambdaQuery().eq(TTaskDetail::getTaskId, dto.getTaskId()).list();
            List<TTaskDetail> list = tTaskDetailService.lambdaQuery().eq(TTaskDetail::getTaskId, dto.getTaskId()).list();
            if (list.isEmpty()){
                task.setStatus(6);
                taskCleanerService.updateById(task);
                if (dto.getClearStatus()==1){
                    task.setStatus(6);
                    taskCleanerService.updateById(task);
                }else{
                    task.setStatus(4);
                    taskCleanerService.updateById(task);
// 增加消息
                    tNotice.setNoticeType(1);
                    tNotice.setNoticeContent("【"+location.getLocationName()+"】任务不合格,请重新上传!");
                }
            }else{
                task.setStatus(5);
                taskCleanerService.updateById(task);
                if (dto.getClearStatus()==1){
                    task.setStatus(5);
                    taskCleanerService.updateById(task);
                    // 增加消息
                    tNotice.setNoticeType(2);
                    tNotice.setNoticeContent("【"+location.getLocationName()+"】任务已通过");
                }else{
                    task.setStatus(4);
                    taskCleanerService.updateById(task);
                    // 增加消息
                    tNotice.setNoticeType(1);
                    tNotice.setNoticeContent("【"+location.getLocationName()+"】任务不合格,请重新上传!");
                }
            }
            // 增加消息
            tNotice.setNoticeType(2);
            tNotice.setNoticeContent("【"+location.getLocationName()+"】任务已通过");
        }
        noticeService.save(tNotice);
        dto.setAuditPerson(tokenService.getLoginUser().getUserId()+"");
ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/TaskUtil.java
@@ -6,6 +6,7 @@
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.utils.CodeGenerateUtils;
import com.ruoyi.system.mapper.TCleanerMapper;
import com.ruoyi.system.model.*;
import com.ruoyi.system.service.*;
@@ -17,6 +18,7 @@
import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
@@ -55,7 +57,10 @@
    private TTaskCleanService taskCleanService;
    @Scheduled(cron = "0 0 0 * * ?")
    // 每一个小时执行一次
//    @Scheduled(cron = "0 0 0 * * ?")
    @Scheduled(fixedRate = 1500000000)
    public void dayOfCreateInspection() {
        try {
@@ -75,6 +80,8 @@
    }
    public void createInspection(TTemplate template) {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date = new Date();
        // 查询所有的模板详情
        List<TTemplateDetail> list = templateDetailService.list(Wrappers.lambdaQuery(TTemplateDetail.class)
                .eq(TTemplateDetail::getTemplateId, template.getId()));
@@ -116,9 +123,11 @@
            // 获取项目部列表
            List<TProjectDept> projectDeptList;
            if(CollectionUtils.isEmpty(projectDeptIds)){
                projectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class));
                projectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class)
                        .ne(TProjectDept::getParentId,0));
            }else {
                projectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class)
                        .ne(TProjectDept::getParentId,0)
                        .in(TProjectDept::getId, projectDeptIds));
                // 所过所有的项目部都被抽取了,则重新抽取,并且清空项目部权重
                if(CollectionUtils.isEmpty(projectDeptList)){
@@ -131,7 +140,8 @@
            if(projectDepts.size() < num2){
                List<String> proIds = projectDepts.stream().map(TProjectDept::getId).collect(Collectors.toList());
                List<TProjectDept> projectDeptList1 = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class)
                        .notIn(TProjectDept::getId, proIds));
                        .notIn(TProjectDept::getId, proIds)
                        .ne(TProjectDept::getParentId,0));
                redisCache.deleteObject(detail.getId() + PROJECT_DEPT_WEIGHT);
                List<TProjectDept> projectDepts1 = randomSelection(projectDeptList1, num2 - projectDepts.size());
                List<String> proIds1 = projectDepts1.stream().map(TProjectDept::getId).collect(Collectors.toList());
@@ -147,7 +157,7 @@
            // 拿到抽取的项目部下的所有保洁员
            List<TProjectDept> tProjectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class)
                    .in(TProjectDept::getParentId, proIds));
                    .in(TProjectDept::getId, proIds));
            // 获取片区id
            List<String> areaIds = tProjectDeptList.stream().map(TProjectDept::getId).collect(Collectors.toList());
            if(CollectionUtils.isEmpty(areaIds)){
@@ -159,6 +169,9 @@
                    .in(TCleaner::getProjectId, areaIds));
            int cleanerSums = num1 * Integer.parseInt(count + "");
            // 获取每天需要抽取的保洁员数,向上取整
            if (cleanerSums <cycle){
                cleanerSums = cycle;
            }
            int dayCleanerCount = cleanerSums / cycle;
            // 获取保洁员权重
@@ -256,12 +269,16 @@
                    SysUser sysUser = sysUsers.get(0);
                    task.setPatrolInspector(sysUser.getUserId().toString());
                    task.setPatrolInspectorDept(sysUser.getDeptId());
                    task.setUserId(sysUser.getUserId());
                }
                task.setStatus(1);
                task.setLocationId(tLocation.getId());
                task.setImplementTime(LocalDateTime.now().plusDays(1));
                task.setTaskType(1);
                task.setTemplateId(detail.getId());
                String nameAndCode = CodeGenerateUtils.generateVolumeSn();
                task.setTaskName(nameAndCode);
                task.setTaskCode(nameAndCode);
                tasks.add(task);
            }
            taskCleanService.saveBatch(tasks);
ruoyi-system/src/main/java/com/ruoyi/system/dto/TInspectorAuditDTO.java
New file
@@ -0,0 +1,15 @@
package com.ruoyi.system.dto;
import com.ruoyi.system.model.TInspector;
import com.ruoyi.system.model.TTaskDetail;
import io.swagger.annotations.ApiModel;
import lombok.Data;
@Data
@ApiModel(value = "督察任务审核DTO")
public class TInspectorAuditDTO extends TInspector {
}
ruoyi-system/src/main/java/com/ruoyi/system/model/TTemplateDetail.java
@@ -1,6 +1,8 @@
package com.ruoyi.system.model;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.ruoyi.common.core.domain.BaseModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@@ -22,7 +24,7 @@
@EqualsAndHashCode(callSuper = false)
@TableName("t_template_detail")
@ApiModel(value="TTemplateDetail对象", description="任务模板详情")
public class TTemplateDetail extends BaseModel {
public class TTemplateDetail implements Serializable {
    private static final long serialVersionUID = 1L;
@@ -66,5 +68,34 @@
    @ApiModelProperty(value = "当前周期值")
    @TableField("current_value")
    private Integer currentValue;
    @ApiModelProperty(value = "记录创建人,前端忽略")
    @TableField(value = "create_by", fill = FieldFill.INSERT)
    private String createBy;
    /**
     * 新增和更新执行
     */
    @ApiModelProperty(value = "记录修改人,前端忽略")
    @TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE)
    private String updateBy;
    /**
     * 删除  未删除
     */
    @JsonIgnore
    @TableField("`disabled`")
    @TableLogic
    private Boolean disabled;
    @ApiModelProperty(value = "记录创建时间,前端忽略")
    @TableField("create_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime createTime;
    /**
     * 最后修改时间
     */
    @ApiModelProperty(value = "记录修改时间,前端忽略")
    @TableField("update_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime updateTime;
}