修改了巡检明细bug
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
package org.dromara.property.controller.mobile;
|
||||
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.property.domain.bo.InspectionTaskBo;
|
||||
import org.dromara.property.domain.vo.InspectionTaskVo;
|
||||
import org.dromara.property.domain.vo.mobile.MInspectionTaskVo;
|
||||
import org.dromara.property.service.IInspectionTaskService;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* @author yuyongle
|
||||
* @version 1.0
|
||||
* @description: 移动端巡检任务
|
||||
* @date 2025/9/1 11:18
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/mobile/inspectionTask")
|
||||
public class MInspectionTaskController extends BaseController {
|
||||
private final IInspectionTaskService inspectionTaskService;
|
||||
|
||||
/**
|
||||
* 移动端查询巡检任务列表
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<MInspectionTaskVo> list(InspectionTaskBo bo, PageQuery pageQuery) {
|
||||
return inspectionTaskService.mQueryPageList(bo, pageQuery);
|
||||
}
|
||||
}
|
@@ -0,0 +1,36 @@
|
||||
package org.dromara.property.controller.mobile;
|
||||
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.property.domain.bo.InspectionTaskDetailBo;
|
||||
import org.dromara.property.domain.vo.mobile.MInspectionPointVo;
|
||||
import org.dromara.property.service.IInspectionPointService;
|
||||
import org.dromara.property.service.IInspectionTaskDetailService;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* @author yuyongle
|
||||
* @version 1.0
|
||||
* @description: TODO
|
||||
* @date 2025/9/1 17:13
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/mobile/taskDetail")
|
||||
public class MInspectionTaskDetailController extends BaseController {
|
||||
private final IInspectionTaskDetailService inspectionTaskDetailService;
|
||||
/**
|
||||
* 查询巡检点列表
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<MInspectionPointVo> list(InspectionTaskDetailBo bo, PageQuery pageQuery) {
|
||||
return inspectionTaskDetailService.mQueryPageList(bo,pageQuery);
|
||||
}
|
||||
}
|
@@ -45,7 +45,7 @@ public class InspectionTask extends TenantEntity {
|
||||
private Long actUserId;
|
||||
|
||||
/**
|
||||
* 巡检方式
|
||||
*巡检方式(0现场拍照,1现场扫码)
|
||||
*/
|
||||
private String taskType;
|
||||
|
||||
@@ -55,7 +55,7 @@ public class InspectionTask extends TenantEntity {
|
||||
private String transferDesc;
|
||||
|
||||
/**
|
||||
* 巡检状态
|
||||
* 巡检状态(0未开始1巡检中,2巡检完成3已超时)
|
||||
*/
|
||||
private String status;
|
||||
|
||||
|
@@ -51,11 +51,6 @@ public class InspectionTaskDetail extends TenantEntity {
|
||||
*/
|
||||
private Long pointId;
|
||||
|
||||
/**
|
||||
* 巡检方式
|
||||
*/
|
||||
private String patrolType;
|
||||
|
||||
/**
|
||||
* 签到类型(1.现场拍照、2.摄像头签到、3.现场扫码)
|
||||
*/
|
||||
@@ -64,12 +59,7 @@ public class InspectionTaskDetail extends TenantEntity {
|
||||
/**
|
||||
* 实际巡检时间
|
||||
*/
|
||||
private Date actualInspectionTime;
|
||||
|
||||
/**
|
||||
* 实际签到状态(1已签到2.未签到)
|
||||
*/
|
||||
private String actualSignState;
|
||||
private Date inspectionTime;
|
||||
|
||||
/**
|
||||
* 巡检状态(0未完成,1已完成)
|
||||
@@ -91,10 +81,6 @@ public class InspectionTaskDetail extends TenantEntity {
|
||||
*/
|
||||
private String actualInspectionPerson;
|
||||
|
||||
/**
|
||||
* 任务状态
|
||||
*/
|
||||
private String taskStatus;
|
||||
|
||||
/**
|
||||
* 巡检结果
|
||||
@@ -111,11 +97,6 @@ public class InspectionTaskDetail extends TenantEntity {
|
||||
*/
|
||||
private String inspectionLocation;
|
||||
|
||||
/**
|
||||
* 实际巡检时间
|
||||
*/
|
||||
private Date inspectionTime;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
|
@@ -40,6 +40,10 @@ public class ResidentPerson extends TenantEntity {
|
||||
* 联系电话
|
||||
*/
|
||||
private String phone;
|
||||
/**
|
||||
* 密码
|
||||
*/
|
||||
private String password;
|
||||
/**
|
||||
* 人员类型
|
||||
*/
|
||||
@@ -84,6 +88,14 @@ public class ResidentPerson extends TenantEntity {
|
||||
* 状态
|
||||
*/
|
||||
private Long state;
|
||||
/**
|
||||
* 用户角色(1管理员2普通用户)
|
||||
*/
|
||||
private String userRoles;
|
||||
/**
|
||||
* 是否审核通过(1通过2不通过)
|
||||
*/
|
||||
private String isAudit;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
|
@@ -52,11 +52,6 @@ public class InspectionTaskDetailBo extends BaseEntity {
|
||||
*/
|
||||
private Long pointId;
|
||||
|
||||
/**
|
||||
* 巡检方式
|
||||
*/
|
||||
private String patrolType;
|
||||
|
||||
/**
|
||||
* 签到类型(1.现场拍照、2.摄像头签到、3.现场扫码)
|
||||
*/
|
||||
@@ -92,10 +87,6 @@ public class InspectionTaskDetailBo extends BaseEntity {
|
||||
*/
|
||||
private String actualInspectionPerson;
|
||||
|
||||
/**
|
||||
* 任务状态
|
||||
*/
|
||||
private String taskStatus;
|
||||
|
||||
/**
|
||||
* 巡检结果
|
||||
|
@@ -48,7 +48,7 @@ public class ResidentPersonBo extends BaseEntity {
|
||||
* 性别
|
||||
*/
|
||||
@NotNull(message = "性别不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||
private Long gender;
|
||||
private Integer gender;
|
||||
|
||||
/**
|
||||
* 证件号
|
||||
@@ -126,5 +126,12 @@ public class ResidentPersonBo extends BaseEntity {
|
||||
*/
|
||||
private Integer rosterType = 2;
|
||||
|
||||
|
||||
/**
|
||||
* 用户角色(1管理员2普通用户)
|
||||
*/
|
||||
private String userRoles;
|
||||
/**
|
||||
* 是否审核通过(1通过2不通过)
|
||||
*/
|
||||
private String isAudit;
|
||||
}
|
||||
|
@@ -62,12 +62,6 @@ public class InspectionTaskDetailVo implements Serializable {
|
||||
@ExcelProperty(value = "巡检点id")
|
||||
private Long pointId;
|
||||
|
||||
/**
|
||||
* 巡检方式
|
||||
*/
|
||||
@ExcelProperty(value = "巡检方式")
|
||||
private String patrolType;
|
||||
|
||||
/**
|
||||
* 签到类型(1.现场拍照、2.摄像头签到、3.现场扫码)
|
||||
*/
|
||||
@@ -114,13 +108,6 @@ public class InspectionTaskDetailVo implements Serializable {
|
||||
*/
|
||||
@ExcelProperty(value = "实际巡检人")
|
||||
private String actualInspectionPerson;
|
||||
|
||||
/**
|
||||
* 任务状态
|
||||
*/
|
||||
@ExcelProperty(value = "任务状态")
|
||||
private String taskStatus;
|
||||
|
||||
/**
|
||||
* 巡检结果
|
||||
*/
|
||||
|
@@ -63,7 +63,7 @@ public class InspectionTaskVo implements Serializable {
|
||||
* 巡检人名称
|
||||
*/
|
||||
@ExcelProperty(value = "巡检人名称")
|
||||
private Long actUserName;
|
||||
private String actUserName;
|
||||
|
||||
/**
|
||||
* 巡检方式
|
||||
|
@@ -0,0 +1,67 @@
|
||||
package org.dromara.property.domain.vo.mobile;
|
||||
|
||||
|
||||
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import cn.idev.excel.annotation.ExcelProperty;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import org.dromara.property.domain.InspectionTaskDetail;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @author yuyongle
|
||||
* @version 1.0
|
||||
* @description: TODO
|
||||
* @date 2025/9/1 16:24
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = InspectionTaskDetail.class)
|
||||
public class MInspectionPointVo {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
@ExcelProperty(value = "主键id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 巡检点id
|
||||
*/
|
||||
@ExcelProperty(value = "巡检点id")
|
||||
private Long pointId;
|
||||
/**
|
||||
* 巡检点名称
|
||||
*/
|
||||
@ExcelProperty(value = "巡检点名称")
|
||||
private String pointName;
|
||||
|
||||
/**
|
||||
* 巡检状态(0未完成,1已完成)
|
||||
*/
|
||||
@ExcelProperty(value = "巡检状态(0未完成,1已完成)")
|
||||
private String inspectionState;
|
||||
|
||||
/**
|
||||
* 巡检结果
|
||||
*/
|
||||
@ExcelProperty(value = "巡检结果")
|
||||
private String inspectionResults;
|
||||
|
||||
/**
|
||||
* 点开始时间
|
||||
*/
|
||||
@ExcelProperty(value = "点开始时间")
|
||||
private Date pointStartTime;
|
||||
|
||||
/**
|
||||
* 点结束时间
|
||||
*/
|
||||
@ExcelProperty(value = "点结束时间")
|
||||
private Date pointEndTime;
|
||||
}
|
@@ -0,0 +1,107 @@
|
||||
package org.dromara.property.domain.vo.mobile;
|
||||
|
||||
|
||||
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import cn.idev.excel.annotation.ExcelProperty;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import org.dromara.property.domain.InspectionTask;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @author yuyongle
|
||||
* @version 1.0
|
||||
* @description: 巡检任务
|
||||
* @date 2025/9/1 14:01
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = InspectionTask.class)
|
||||
public class MInspectionTaskVo implements Serializable {
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
@ExcelProperty(value = "主键id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 巡检计划id
|
||||
*/
|
||||
@ExcelProperty(value = "巡检计划id")
|
||||
private Long inspectionPlanId;
|
||||
|
||||
/**
|
||||
* 巡检计划名称
|
||||
*/
|
||||
private String planName;
|
||||
|
||||
/**
|
||||
* 实际巡检时间
|
||||
*/
|
||||
@ExcelProperty(value = "实际巡检时间")
|
||||
private Date actInsTime;
|
||||
|
||||
/**
|
||||
* 当前巡检人
|
||||
*/
|
||||
@ExcelProperty(value = "当前巡检人")
|
||||
private Long actUserId;
|
||||
|
||||
/**
|
||||
* 巡检人名称
|
||||
*/
|
||||
@ExcelProperty(value = "巡检人名称")
|
||||
private String actUserName;
|
||||
|
||||
/**
|
||||
* 巡检方式
|
||||
*/
|
||||
@ExcelProperty(value = "巡检方式")
|
||||
private String taskType;
|
||||
|
||||
/**
|
||||
* 转移描述
|
||||
*/
|
||||
@ExcelProperty(value = "转移描述")
|
||||
private String transferDesc;
|
||||
|
||||
/**
|
||||
* 巡检状态
|
||||
*/
|
||||
@ExcelProperty(value = "巡检状态")
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
/**
|
||||
* 计划巡检时间范围
|
||||
*/
|
||||
private String planInsTime;
|
||||
/**
|
||||
* 巡检进度
|
||||
*/
|
||||
private String inspectionProgress;
|
||||
|
||||
/**
|
||||
* 计划巡检人id
|
||||
*/
|
||||
private String planUserId;
|
||||
/**
|
||||
* 计划巡检人姓名
|
||||
*/
|
||||
private String planUserName;
|
||||
/**
|
||||
* 搜索值
|
||||
*/
|
||||
@ExcelProperty(value = "搜索值")
|
||||
private String searchValue;
|
||||
}
|
@@ -3,6 +3,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.property.domain.bo.InspectionPointBo;
|
||||
import org.dromara.property.domain.vo.InspectionPointVo;
|
||||
import org.dromara.property.domain.vo.mobile.MInspectionPointVo;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
@@ -64,4 +65,5 @@ public interface IInspectionPointService {
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
}
|
||||
|
@@ -1,10 +1,10 @@
|
||||
package org.dromara.property.service;
|
||||
|
||||
import org.dromara.property.domain.InspectionTaskDetail;
|
||||
import org.dromara.property.domain.vo.InspectionTaskDetailVo;
|
||||
import org.dromara.property.domain.bo.InspectionTaskDetailBo;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.property.domain.vo.mobile.MInspectionPointVo;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
@@ -66,4 +66,14 @@ public interface IInspectionTaskDetailService {
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
//移动端
|
||||
/**
|
||||
* APP端查询巡检明细列表
|
||||
*
|
||||
* @param bo
|
||||
* @param pageQuery
|
||||
* @return
|
||||
*/
|
||||
TableDataInfo<MInspectionPointVo> mQueryPageList(InspectionTaskDetailBo bo, PageQuery pageQuery);
|
||||
}
|
||||
|
@@ -4,6 +4,7 @@ import org.dromara.property.domain.vo.InspectionTaskVo;
|
||||
import org.dromara.property.domain.bo.InspectionTaskBo;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.property.domain.vo.mobile.MInspectionTaskVo;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
@@ -65,4 +66,16 @@ public interface IInspectionTaskService {
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
/**
|
||||
* app端查询列表
|
||||
*/
|
||||
/**
|
||||
* 分页查询巡检任务列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 巡检任务分页列表
|
||||
*/
|
||||
TableDataInfo<MInspectionTaskVo> mQueryPageList(InspectionTaskBo bo, PageQuery pageQuery);
|
||||
}
|
||||
|
@@ -3,8 +3,12 @@ package org.dromara.property.service.impl;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.date.DatePattern;
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
@@ -22,23 +26,18 @@ import org.dromara.property.domain.bo.InspectionPlanBo;
|
||||
import org.dromara.property.domain.bo.InspectionPlanStaffBo;
|
||||
import org.dromara.property.domain.bo.MachineMaintainPlanBo;
|
||||
import org.dromara.property.domain.bo.MachineMaintainPlanStaffBo;
|
||||
import org.dromara.property.domain.vo.InspectionPlanDetailVo;
|
||||
import org.dromara.property.domain.vo.InspectionPlanStaffVo;
|
||||
import org.dromara.property.domain.vo.InspectionPlanVo;
|
||||
import org.dromara.property.domain.vo.ResidentPersonVo;
|
||||
import org.dromara.property.mapper.InspectionPlanMapper;
|
||||
import org.dromara.property.mapper.InspectionPlanStaffMapper;
|
||||
import org.dromara.property.mapper.InspectionRouteMapper;
|
||||
import org.dromara.property.mapper.ResidentPersonMapper;
|
||||
import org.dromara.property.domain.vo.*;
|
||||
import org.dromara.property.mapper.*;
|
||||
import org.dromara.property.service.IInspectionPlanService;
|
||||
import org.dromara.system.api.RemoteUserService;
|
||||
import org.dromara.system.api.domain.vo.RemoteUserVo;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalTime;
|
||||
import java.time.ZoneId;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@@ -56,6 +55,8 @@ public class InspectionPlanServiceImpl implements IInspectionPlanService {
|
||||
private final ResidentPersonMapper residentPersonMapper;
|
||||
private final InspectionPlanStaffMapper inspectionPlanStaffMapper;
|
||||
private final InspectionRouteMapper inspectionRouteMapper;
|
||||
private final InspectionRoutePointMapper inspectionRoutePointMapper;
|
||||
private final InspectionTaskMapper inspectionTaskMapper;
|
||||
|
||||
@DubboReference
|
||||
private RemoteUserService remoteUserService;
|
||||
@@ -159,10 +160,170 @@ public class InspectionPlanServiceImpl implements IInspectionPlanService {
|
||||
inspectionPlanStaffMapper.insert(convert);
|
||||
}
|
||||
}
|
||||
doInspectionPianTask(add);
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据计划生成任务
|
||||
*
|
||||
* @param inspectionPlan
|
||||
*/
|
||||
public void doInspectionPianTask(InspectionPlan inspectionPlan) {
|
||||
// 如果没有有效计划,直接返回
|
||||
if (ObjectUtil.isEmpty(inspectionPlan)) {
|
||||
return;
|
||||
}
|
||||
// 处理每个巡检计划
|
||||
// 获取今天的起始时间
|
||||
LocalDateTime todayStart = LocalDateTime.now().with(LocalTime.MIN);
|
||||
// 获取今天的结束时间
|
||||
LocalDateTime todayEnd = LocalDateTime.now().with(LocalTime.MAX);
|
||||
LambdaQueryWrapper<InspectionTask> inspectionTaskWrapper = new LambdaQueryWrapper<>();
|
||||
inspectionTaskWrapper.eq(InspectionTask::getInspectionPlanId, inspectionPlan.getId());
|
||||
inspectionTaskWrapper.between(InspectionTask::getCreateTime, Date.from(todayStart.atZone(ZoneId.systemDefault()).toInstant()), Date.from(todayEnd.atZone(ZoneId.systemDefault()).toInstant()));
|
||||
boolean exists = inspectionTaskMapper.exists(inspectionTaskWrapper);
|
||||
if (!exists) {
|
||||
// 根据不同的巡检周期执行相应处理
|
||||
switch (inspectionPlan.getInspectionPlanPeriod()) {
|
||||
case "1":
|
||||
// 处理按月/天的巡检计划
|
||||
handleMonthlyDailyPlan(inspectionPlan);
|
||||
break;
|
||||
case "2":
|
||||
// 处理按周的巡检计划
|
||||
handleWeeklyDailyPlan(inspectionPlan);
|
||||
break;
|
||||
default:
|
||||
// 对于未知的巡检周期类型,记录警告日志
|
||||
log.warn("未知类型");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理按月/天的巡检计划
|
||||
*
|
||||
* @param plan 巡检计划信息
|
||||
*/
|
||||
private void handleMonthlyDailyPlan(InspectionPlan plan) {
|
||||
LambdaQueryWrapper<InspectionPlanStaff> staffQueryWrapper = Wrappers.lambdaQuery();
|
||||
staffQueryWrapper.eq(InspectionPlanStaff::getInspectionPlanId, plan.getId());
|
||||
//查询该计划巡查人员
|
||||
List<InspectionPlanStaffVo> inspectionPlanStaffVos = inspectionPlanStaffMapper.selectVoList(staffQueryWrapper);
|
||||
List<Long> userIdList = inspectionPlanStaffVos.stream().map(vo -> vo.getUserId()).distinct().collect(Collectors.toList());
|
||||
List<ResidentPersonVo> residentPersonVoList = residentPersonMapper.selectVoByIds(userIdList);
|
||||
// 使用Optional安全处理可能为null的对象
|
||||
Optional.ofNullable(plan).ifPresent(p -> {
|
||||
DateTime today = DateUtil.date();
|
||||
DateTime startDate = DateUtil.date(plan.getStartDate());
|
||||
DateTime endDate = DateUtil.date(plan.getEndDate());
|
||||
String day = DateUtil.today().split("-")[2];
|
||||
List<String> inspectionDayList = Arrays.asList(p.getInspectionDay().split(","));
|
||||
if (DateUtil.isIn(today, startDate, endDate) && inspectionDayList.contains(day)) {
|
||||
InspectionTask task = new InspectionTask();
|
||||
task.setInspectionPlanId(p.getId());
|
||||
task.setTaskType(plan.getSignType());
|
||||
task.setPlanInsTime(startDate + "~" + p.getEndTime());
|
||||
task.setTenantId(plan.getTenantId());
|
||||
task.setStatus("0");
|
||||
if (CollectionUtil.isNotEmpty(inspectionPlanStaffVos)) {
|
||||
String userIds = residentPersonVoList.stream().map(vo -> vo.getId().toString()).collect(Collectors.joining(","));
|
||||
|
||||
String userNames = residentPersonVoList.stream().map(vo -> vo.getUserName()).collect(Collectors.joining(","));
|
||||
task.setPlanUserId(ObjectUtil.isNotEmpty(userIds) ? userIds : "");
|
||||
task.setPlanUserName(ObjectUtil.isNotEmpty(userNames) ? userNames : "");
|
||||
}
|
||||
boolean b = inspectionTaskMapper.insert(task) > 0;
|
||||
if (b) {
|
||||
createTaskDetail(task, plan);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理按周的巡检计划
|
||||
*
|
||||
* @param plan 巡检计划信息
|
||||
*/
|
||||
private void handleWeeklyDailyPlan(InspectionPlan plan) {
|
||||
LambdaQueryWrapper<InspectionPlanStaff> staffQueryWrapper = Wrappers.lambdaQuery();
|
||||
staffQueryWrapper.eq(InspectionPlanStaff::getInspectionPlanId, plan.getId());
|
||||
//查询该计划巡查人员
|
||||
List<InspectionPlanStaffVo> inspectionPlanStaffVos = inspectionPlanStaffMapper.selectVoList(staffQueryWrapper);
|
||||
// 使用Optional安全处理可能为null的对象
|
||||
Optional.ofNullable(plan).ifPresent(p -> {
|
||||
DateTime today = DateUtil.date();
|
||||
DateTime startDate = DateUtil.date(plan.getStartDate());
|
||||
DateTime endDate = DateUtil.date(plan.getEndDate());
|
||||
String week = String.valueOf(DateUtil.dayOfWeek(DateUtil.date()));
|
||||
List<String> inspectionWorkdayList = Arrays.asList(p.getInspectionWorkday().split(","));
|
||||
if (DateUtil.isIn(today, startDate, endDate) && inspectionWorkdayList.contains(week)) {
|
||||
InspectionTask task = new InspectionTask();
|
||||
task.setInspectionPlanId(p.getId());
|
||||
task.setInspectionPlanId(p.getId());
|
||||
task.setTaskType(plan.getSignType());
|
||||
task.setPlanInsTime(startDate + "~" + p.getEndTime());
|
||||
task.setTenantId(plan.getTenantId());
|
||||
task.setStatus("0");
|
||||
if (CollectionUtil.isNotEmpty(inspectionPlanStaffVos)) {
|
||||
String userIds = inspectionPlanStaffVos.stream().map(vo -> vo.getUserId().toString()).collect(Collectors.joining(","));
|
||||
|
||||
String userNames = inspectionPlanStaffVos.stream().map(InspectionPlanStaffVo::getUserName).collect(Collectors.joining(","));
|
||||
|
||||
task.setPlanUserId(userIds);
|
||||
task.setPlanUserName(userNames);
|
||||
} else {
|
||||
task.setPlanUserId("");
|
||||
task.setPlanUserName("");
|
||||
}
|
||||
boolean b = inspectionTaskMapper.insert(task) > 0;
|
||||
if (b) {
|
||||
createTaskDetail(task, plan);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据任务生成任务明细
|
||||
*/
|
||||
private void createTaskDetail(InspectionTask task, InspectionPlan plan) {
|
||||
//查询该计划路线关联的巡检点
|
||||
List<InspectionRoutePointVo> inspectionRoutePointVoList = inspectionRoutePointMapper.selectVoList(
|
||||
new LambdaQueryWrapper<InspectionRoutePoint>()
|
||||
.eq(InspectionRoutePoint::getRouteId, plan.getInspectionRouteId()));
|
||||
Assert.isTrue(CollUtil.isNotEmpty(inspectionRoutePointVoList), "该计划路线没有关联的巡检点");
|
||||
//收集巡检点id
|
||||
List<Long> pointIds = inspectionRoutePointVoList.stream().map(vo -> vo.getPointId()).toList();
|
||||
List<InspectionRoutePointVo> inspectionRoutePointVos = inspectionRoutePointMapper.selectVoByIds(pointIds);
|
||||
Assert.isTrue(CollUtil.isNotEmpty(inspectionRoutePointVos), "未找到巡检点");
|
||||
inspectionRoutePointVos.forEach(vo -> {
|
||||
InspectionTaskDetail taskDetail = new InspectionTaskDetail();
|
||||
taskDetail.setTaskId(task.getId());
|
||||
taskDetail.setRouteId(vo.getRouteId());
|
||||
taskDetail.setPointId(vo.getPointId());
|
||||
// 分割
|
||||
String[] parts = StrUtil.splitToArray(task.getPlanInsTime(), '~');
|
||||
String dateTimeStr1 = parts[0]; // 完整时间
|
||||
String timeStr2 = parts[1]; // 只有时间部分
|
||||
|
||||
// 提取第一个时间的日期部分(前10位)
|
||||
String datePart = dateTimeStr1.substring(0, 10);
|
||||
String dateTimeStr2 = datePart + " " + timeStr2;
|
||||
// 使用 Hutool 解析为 Date 对象
|
||||
Date startDate = DateUtil.parse(dateTimeStr1, DatePattern.NORM_DATETIME_FORMAT);
|
||||
Date endDate = DateUtil.parse(dateTimeStr2, DatePattern.NORM_DATETIME_FORMAT);
|
||||
taskDetail.setPointStartTime(startDate);
|
||||
taskDetail.setPointEndTime(endDate);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改巡检计划
|
||||
*
|
||||
@@ -173,20 +334,21 @@ public class InspectionPlanServiceImpl implements IInspectionPlanService {
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean updateByBo(InspectionPlanBo bo) {
|
||||
InspectionPlan update = MapstructUtils.convert(bo, InspectionPlan.class);
|
||||
validEntityBeforebo(bo.getId(),bo);
|
||||
validEntityBeforebo(bo.getId(), bo);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforebo(Long id,InspectionPlanBo bo) {
|
||||
private void validEntityBeforebo(Long id, InspectionPlanBo bo) {
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
if(CollUtil.isNotEmpty(bo.getInspectionPlanStaffBoList())){
|
||||
if (CollUtil.isNotEmpty(bo.getInspectionPlanStaffBoList())) {
|
||||
QueryWrapper<InspectionPlanStaff> staffLambdaQueryWrapper = new QueryWrapper<>();
|
||||
staffLambdaQueryWrapper.eq("inspection_plan_id", id);
|
||||
inspectionPlanStaffMapper.delete(staffLambdaQueryWrapper);
|
||||
List<InspectionPlanStaffBo> inspectionPlanStaffBoList = bo.getInspectionPlanStaffBoList();
|
||||
inspectionPlanStaffBoList.stream().forEach(s->{
|
||||
inspectionPlanStaffBoList.stream().forEach(s -> {
|
||||
s.setInspectionPlanId(id);
|
||||
});
|
||||
inspectionPlanStaffMapper.insertBatch(BeanUtil.copyToList(inspectionPlanStaffBoList, InspectionPlanStaff.class));
|
||||
|
@@ -17,6 +17,7 @@ import org.dromara.property.domain.bo.InspectionPointBo;
|
||||
import org.dromara.property.domain.vo.InspectionItemVo;
|
||||
import org.dromara.property.domain.vo.InspectionPlanVo;
|
||||
import org.dromara.property.domain.vo.InspectionPointVo;
|
||||
import org.dromara.property.domain.vo.mobile.MInspectionPointVo;
|
||||
import org.dromara.property.mapper.InspectionItemMapper;
|
||||
import org.dromara.property.mapper.InspectionPlanMapper;
|
||||
import org.dromara.property.mapper.InspectionPointMapper;
|
||||
@@ -52,7 +53,7 @@ public class InspectionPointServiceImpl implements IInspectionPointService {
|
||||
* @return 巡检点
|
||||
*/
|
||||
@Override
|
||||
public InspectionPointVo queryById(Long id){
|
||||
public InspectionPointVo queryById(Long id) {
|
||||
return baseMapper.selectVoById(id);
|
||||
}
|
||||
|
||||
@@ -77,9 +78,9 @@ public class InspectionPointServiceImpl implements IInspectionPointService {
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
List<InspectionItemVo> inspectionItemVos = inspectionItemMapper.selectVoByIds(itemIdList);
|
||||
result.getRecords().stream().forEach(s->{
|
||||
result.getRecords().stream().forEach(s -> {
|
||||
InspectionItemVo inspectionItemVo = inspectionItemVos.stream().filter(vo -> vo.getId() != null && vo.getId().equals(s.getItemId())).findFirst().orElse(null);
|
||||
s.setItemName(ObjectUtil.isNotEmpty(inspectionItemVo)?inspectionItemVo.getItemName():null);
|
||||
s.setItemName(ObjectUtil.isNotEmpty(inspectionItemVo) ? inspectionItemVo.getItemName() : null);
|
||||
});
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
@@ -144,7 +145,7 @@ public class InspectionPointServiceImpl implements IInspectionPointService {
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(InspectionPoint entity){
|
||||
private void validEntityBeforeSave(InspectionPoint entity) {
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
@@ -158,7 +159,7 @@ public class InspectionPointServiceImpl implements IInspectionPointService {
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
if (isValid) {
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
|
@@ -1,5 +1,8 @@
|
||||
package org.dromara.property.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
@@ -9,7 +12,9 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.property.domain.InspectionStaff;
|
||||
import org.dromara.property.domain.vo.InspectionPointVo;
|
||||
import org.dromara.property.domain.vo.mobile.MInspectionPointVo;
|
||||
import org.dromara.property.mapper.InspectionPointMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.property.domain.bo.InspectionTaskDetailBo;
|
||||
import org.dromara.property.domain.vo.InspectionTaskDetailVo;
|
||||
@@ -17,9 +22,11 @@ import org.dromara.property.domain.InspectionTaskDetail;
|
||||
import org.dromara.property.mapper.InspectionTaskDetailMapper;
|
||||
import org.dromara.property.service.IInspectionTaskDetailService;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 巡检明细Service业务层处理
|
||||
@@ -33,6 +40,7 @@ import java.util.Collection;
|
||||
public class InspectionTaskDetailServiceImpl implements IInspectionTaskDetailService {
|
||||
|
||||
private final InspectionTaskDetailMapper baseMapper;
|
||||
private final InspectionPointMapper inspectionPointMapper;
|
||||
|
||||
/**
|
||||
* 查询巡检明细
|
||||
@@ -80,15 +88,11 @@ public class InspectionTaskDetailServiceImpl implements IInspectionTaskDetailSer
|
||||
lqw.eq(bo.getRouteId() != null, InspectionTaskDetail::getRouteId, bo.getRouteId());
|
||||
lqw.eq(bo.getPlanId() != null, InspectionTaskDetail::getPlanId, bo.getPlanId());
|
||||
lqw.eq(bo.getPointId() != null, InspectionTaskDetail::getPointId, bo.getPointId());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getPatrolType()), InspectionTaskDetail::getPatrolType, bo.getPatrolType());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getSignType()), InspectionTaskDetail::getSignType, bo.getSignType());
|
||||
lqw.eq(bo.getActualInspectionTime() != null, InspectionTaskDetail::getActualInspectionTime, bo.getActualInspectionTime());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getActualSignState()), InspectionTaskDetail::getActualSignState, bo.getActualSignState());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getInspectionState()), InspectionTaskDetail::getInspectionState, bo.getInspectionState());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getInspectionImage()), InspectionTaskDetail::getInspectionImage, bo.getInspectionImage());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getPlanInspectionPerson()), InspectionTaskDetail::getPlanInspectionPerson, bo.getPlanInspectionPerson());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getActualInspectionPerson()), InspectionTaskDetail::getActualInspectionPerson, bo.getActualInspectionPerson());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getTaskStatus()), InspectionTaskDetail::getTaskStatus, bo.getTaskStatus());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getInspectionResults()), InspectionTaskDetail::getInspectionResults, bo.getInspectionResults());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getInspectionDesc()), InspectionTaskDetail::getInspectionDesc, bo.getInspectionDesc());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getInspectionLocation()), InspectionTaskDetail::getInspectionLocation, bo.getInspectionLocation());
|
||||
@@ -150,4 +154,47 @@ public class InspectionTaskDetailServiceImpl implements IInspectionTaskDetailSer
|
||||
}
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
//移动端
|
||||
/**
|
||||
* APP端查询巡检明细列表
|
||||
*
|
||||
* @param bo
|
||||
* @param pageQuery
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<MInspectionPointVo> mQueryPageList(InspectionTaskDetailBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<InspectionTaskDetail> lqw = buildQueryWrapper(bo);
|
||||
Page<InspectionTaskDetailVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
// 转换 VO 类型
|
||||
List<MInspectionPointVo> mInspectionTaskDetailVo=new ArrayList<>();
|
||||
// 转换并设置 typeName
|
||||
if(CollUtil.isNotEmpty(result.getRecords())){
|
||||
//收集巡检点id
|
||||
List<Long> pointIdList = result.getRecords().stream().map(InspectionTaskDetailVo::getPointId).collect(Collectors.toList());
|
||||
//查询巡检点转成巡检点名称转成map id->名称
|
||||
Map<Long, String> pointNameMap = inspectionPointMapper.selectVoByIds(pointIdList).stream().collect(Collectors.toMap(InspectionPointVo::getId, InspectionPointVo::getPointName));
|
||||
mInspectionTaskDetailVo = result.getRecords().stream().map(vo -> {
|
||||
MInspectionPointVo mVo = BeanUtil.copyProperties(vo, MInspectionPointVo.class);
|
||||
dataProcessing(mVo,pointNameMap);
|
||||
return mVo;
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
// 构建分页结果
|
||||
Page<MInspectionPointVo> pageResult = new Page<>();
|
||||
pageResult.setRecords(mInspectionTaskDetailVo);
|
||||
pageResult.setTotal(result.getTotal());
|
||||
pageResult.setCurrent(result.getCurrent());
|
||||
pageResult.setSize(result.getSize());
|
||||
return TableDataInfo.build(pageResult);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param mInspectionTaskDetailVo
|
||||
* @param pointNameMap
|
||||
*/
|
||||
private void dataProcessing(MInspectionPointVo mInspectionTaskDetailVo, Map<Long, String> pointNameMap){
|
||||
mInspectionTaskDetailVo.setPointName( ObjectUtil.defaultIfNull(pointNameMap.get(mInspectionTaskDetailVo.getPointId()), "未知点位"));
|
||||
}
|
||||
}
|
||||
|
@@ -1,5 +1,9 @@
|
||||
package org.dromara.property.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
@@ -9,14 +13,14 @@ import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.property.domain.InspectionPlan;
|
||||
import org.dromara.property.domain.InspectionTask;
|
||||
import org.dromara.property.domain.InspectionTaskDetail;
|
||||
import org.dromara.property.domain.*;
|
||||
import org.dromara.property.domain.bo.InspectionTaskBo;
|
||||
import org.dromara.property.domain.vo.InspectionItemVo;
|
||||
import org.dromara.property.domain.vo.InspectionPlanVo;
|
||||
import org.dromara.property.domain.vo.InspectionPointVo;
|
||||
import org.dromara.property.domain.vo.InspectionTaskVo;
|
||||
import org.dromara.property.mapper.InspectionPlanMapper;
|
||||
import org.dromara.property.mapper.InspectionTaskMapper;
|
||||
import org.dromara.property.domain.vo.mobile.MInspectionTaskVo;
|
||||
import org.dromara.property.mapper.*;
|
||||
import org.dromara.property.service.IInspectionTaskService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -26,6 +30,7 @@ import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static java.util.stream.Collectors.toMap;
|
||||
import static java.util.stream.Collectors.toSet;
|
||||
@@ -42,8 +47,10 @@ import static java.util.stream.Collectors.toSet;
|
||||
public class InspectionTaskServiceImpl implements IInspectionTaskService {
|
||||
|
||||
private final InspectionTaskMapper baseMapper;
|
||||
@Autowired
|
||||
private final InspectionTaskDetailMapper inspectionTaskDetailMapper;
|
||||
private final InspectionPlanMapper inspectionPlanMapper;
|
||||
private final InspectionItemMapper inspectionItemMapper;
|
||||
private final InspectionPointMapper inspectionPointMapper;
|
||||
|
||||
/**
|
||||
* 查询巡检任务
|
||||
@@ -52,7 +59,7 @@ public class InspectionTaskServiceImpl implements IInspectionTaskService {
|
||||
* @return 巡检任务
|
||||
*/
|
||||
@Override
|
||||
public InspectionTaskVo queryById(Long id){
|
||||
public InspectionTaskVo queryById(Long id) {
|
||||
InspectionTaskVo inspectionTaskVo = baseMapper.selectVoById(id);
|
||||
InspectionPlanVo inspectionPlanVo = inspectionPlanMapper.selectVoById(inspectionTaskVo.getInspectionPlanId());
|
||||
inspectionTaskVo.setPlanName(inspectionPlanVo.getPlanName());
|
||||
@@ -75,6 +82,7 @@ public class InspectionTaskServiceImpl implements IInspectionTaskService {
|
||||
}
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
private void addPlanNameInfo(Page<InspectionTaskVo> inspectionTaskVoPage) {
|
||||
// 提取用户userId,方便批量查询
|
||||
Set<Long> planIds = inspectionTaskVoPage.getRecords().stream().map(InspectionTaskVo::getInspectionPlanId).collect(toSet());
|
||||
@@ -85,6 +93,7 @@ public class InspectionTaskServiceImpl implements IInspectionTaskService {
|
||||
// 将查询补充的信息添加到Vo中
|
||||
inspectionTaskVoPage.getRecords().forEach(e -> e.setPlanName(hashMap.get(e.getInspectionPlanId())));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询符合条件的巡检任务列表
|
||||
*
|
||||
@@ -147,7 +156,7 @@ public class InspectionTaskServiceImpl implements IInspectionTaskService {
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(InspectionTask entity){
|
||||
private void validEntityBeforeSave(InspectionTask entity) {
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
@@ -162,9 +171,92 @@ public class InspectionTaskServiceImpl implements IInspectionTaskService {
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
if (isValid) {
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
/**
|
||||
* app端查询列表
|
||||
*/
|
||||
/**
|
||||
* 分页查询巡检任务列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 巡检任务分页列表
|
||||
*/
|
||||
@Override
|
||||
|
||||
public TableDataInfo<MInspectionTaskVo> mQueryPageList(InspectionTaskBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<InspectionTask> lqw = buildQueryWrapper(bo);
|
||||
// 查询得到 Page<InspectionTaskVo>
|
||||
Page<InspectionTaskVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
// 手动转换为 Page<MInspectionTaskVo>
|
||||
Page<MInspectionTaskVo> voPage = new Page<>();
|
||||
voPage.setCurrent(result.getCurrent());
|
||||
voPage.setSize(result.getSize());
|
||||
voPage.setTotal(result.getTotal());
|
||||
voPage.setPages(result.getPages());
|
||||
// 转换 records 列表
|
||||
List<MInspectionTaskVo> voList = result.getRecords().stream()
|
||||
.map(this::convertToMInspectionTaskVo) // 或使用构造函数、BeanUtils.copyProperties 等
|
||||
.collect(Collectors.toList());
|
||||
|
||||
voPage.setRecords(voList);
|
||||
|
||||
return TableDataInfo.build(voPage);
|
||||
}
|
||||
|
||||
// 转换方法:根据需求填充 MInspectionTaskVo 字段
|
||||
private MInspectionTaskVo convertToMInspectionTaskVo(InspectionTaskVo vo) {
|
||||
MInspectionTaskVo mVo = BeanUtil.copyProperties(vo, MInspectionTaskVo.class);
|
||||
|
||||
Long taskId = vo.getId();
|
||||
Long inspectionPlanId = vo.getInspectionPlanId();
|
||||
|
||||
if (taskId == null || inspectionPlanId == null) {
|
||||
mVo.setInspectionProgress("0%");
|
||||
return mVo;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// 3. 查询该任务已完成的巡检明细(已完成的点)
|
||||
List<InspectionTaskDetail> finishedDetails = inspectionTaskDetailMapper.selectList(
|
||||
new LambdaQueryWrapper<InspectionTaskDetail>()
|
||||
.eq(InspectionTaskDetail::getTaskId, taskId)
|
||||
);
|
||||
if (finishedDetails.size() == 0) {
|
||||
mVo.setInspectionProgress("0%");
|
||||
return mVo;
|
||||
}
|
||||
//查询巡检项目
|
||||
InspectionItem inspectionItem = inspectionItemMapper.selectOne(
|
||||
new LambdaQueryWrapper<InspectionItem>()
|
||||
.eq(InspectionItem::getId, finishedDetails.get(0).getPointId())
|
||||
);
|
||||
if(ObjectUtil.isNotEmpty(inspectionItem)){
|
||||
// 2. 查询该巡检项下的所有巡检点(总点数)
|
||||
List<InspectionPoint> allPoints = inspectionPointMapper.selectList(
|
||||
new LambdaQueryWrapper<InspectionPoint>()
|
||||
.eq(InspectionPoint::getItemId, inspectionItem)
|
||||
);
|
||||
int totalCount = CollUtil.isEmpty(allPoints) ? 0 : allPoints.size();
|
||||
if (totalCount == 0) {
|
||||
mVo.setInspectionProgress("0%");
|
||||
return mVo;
|
||||
}
|
||||
int finishedCount = CollUtil.size(finishedDetails);
|
||||
// 4. 计算进度
|
||||
String progress = NumberUtil.formatPercent(finishedCount * 1.0 / totalCount, 0); // 如 "60%"
|
||||
mVo.setInspectionProgress(progress);
|
||||
}else {
|
||||
mVo.setInspectionProgress("0");
|
||||
}
|
||||
|
||||
return mVo;
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -123,6 +123,11 @@ public class ResidentPersonServiceImpl implements IResidentPersonService {
|
||||
|
||||
// 首次入驻新用户权限组默认使用公司权限
|
||||
ResidentUnitVo ruVo = residentUnitService.queryById(bo.getUnitId());
|
||||
add.setPassword("123456");
|
||||
//查询该单位下是否有管理员
|
||||
new LambdaQueryWrapper<ResidentPerson>().eq(ResidentPerson::getUnitId, bo.getUnitId())
|
||||
.eq(ResidentPerson::getUserRoles, "1");
|
||||
|
||||
add.setAuthGroupId(ruVo.getAuthGroupId());
|
||||
add.setAuthBegDate(ruVo.getAuthBegDate());
|
||||
add.setAuthEndDate(ruVo.getAuthEndDate());
|
||||
|
@@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.property.domain.ResidentPerson;
|
||||
import org.dromara.property.mapper.ResidentPersonMapper;
|
||||
import org.dromara.property.service.IResidentPersonService;
|
||||
import org.dromara.property.service.ITbRoomService;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -19,6 +20,7 @@ import org.dromara.property.domain.vo.ResidentUnitVo;
|
||||
import org.dromara.property.domain.ResidentUnit;
|
||||
import org.dromara.property.mapper.ResidentUnitMapper;
|
||||
import org.dromara.property.service.IResidentUnitService;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
@@ -42,6 +44,7 @@ public class ResidentUnitServiceImpl implements IResidentUnitService {
|
||||
private final ITbRoomService roomService;
|
||||
|
||||
private final IResidentPersonService personService;
|
||||
private final ResidentPersonMapper personMapper;
|
||||
|
||||
/**
|
||||
* 查询入驻单位
|
||||
@@ -122,16 +125,37 @@ public class ResidentUnitServiceImpl implements IResidentUnitService {
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean insertByBo(ResidentUnitBo bo) {
|
||||
ResidentUnit add = MapstructUtils.convert(bo, ResidentUnit.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
addResidentPerson(add);
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增一个管理员
|
||||
* @param unit
|
||||
*/
|
||||
private void addResidentPerson(ResidentUnit unit) {
|
||||
ResidentPerson residentPerson = new ResidentPerson();
|
||||
residentPerson.setUserName(unit.getContactPerson());
|
||||
residentPerson.setPhone(unit.getPhone().toString());
|
||||
residentPerson.setGender(1L);
|
||||
residentPerson.setState(2L);
|
||||
residentPerson.setUserRoles("1");
|
||||
residentPerson.setIsAudit("1");
|
||||
residentPerson.setAuthGroupId(unit.getAuthGroupId());
|
||||
residentPerson.setAuthBegDate(unit.getAuthBegDate());
|
||||
residentPerson.setAuthEndDate(unit.getAuthEndDate());
|
||||
residentPerson.setUnitId(unit.getId());
|
||||
residentPerson.setUnitName(unit.getName());
|
||||
personMapper.insert(residentPerson);
|
||||
}
|
||||
/**
|
||||
* 修改入驻单位
|
||||
*
|
||||
|
@@ -9,7 +9,6 @@ import org.apache.rocketmq.spring.core.RocketMQListener;
|
||||
import org.dromara.sis.rocketmq.RocketMqConstants;
|
||||
import org.dromara.sis.rocketmq.domain.HighDensity;
|
||||
import org.dromara.sis.service.IEventAlarmReportService;
|
||||
import org.dromara.sis.service.IZeroSensationPassageService;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user