diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/mobile/MInspectionTaskController.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/mobile/MInspectionTaskController.java new file mode 100644 index 00000000..c54525cc --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/mobile/MInspectionTaskController.java @@ -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 list(InspectionTaskBo bo, PageQuery pageQuery) { + return inspectionTaskService.mQueryPageList(bo, pageQuery); + } +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/mobile/MInspectionTaskDetailController.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/mobile/MInspectionTaskDetailController.java new file mode 100644 index 00000000..1eac4a9e --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/mobile/MInspectionTaskDetailController.java @@ -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 list(InspectionTaskDetailBo bo, PageQuery pageQuery) { + return inspectionTaskDetailService.mQueryPageList(bo,pageQuery); + } +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/InspectionTask.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/InspectionTask.java index a6a7a104..4a317e69 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/InspectionTask.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/InspectionTask.java @@ -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; diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/InspectionTaskDetail.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/InspectionTaskDetail.java index 5d1b45cd..be920a68 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/InspectionTaskDetail.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/InspectionTaskDetail.java @@ -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; - /** * 备注 */ diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/ResidentPerson.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/ResidentPerson.java index 70b1259c..00f96171 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/ResidentPerson.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/ResidentPerson.java @@ -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; /** * 备注 */ diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/InspectionTaskDetailBo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/InspectionTaskDetailBo.java index 1582ae77..b09e18b8 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/InspectionTaskDetailBo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/InspectionTaskDetailBo.java @@ -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; /** * 巡检结果 diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/ResidentPersonBo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/ResidentPersonBo.java index 46a087f1..47fbb1c2 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/ResidentPersonBo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/ResidentPersonBo.java @@ -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; } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/InspectionTaskDetailVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/InspectionTaskDetailVo.java index 4fbc9878..479b7b04 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/InspectionTaskDetailVo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/InspectionTaskDetailVo.java @@ -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; - /** * 巡检结果 */ diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/InspectionTaskVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/InspectionTaskVo.java index ebf22122..dcd475aa 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/InspectionTaskVo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/InspectionTaskVo.java @@ -63,7 +63,7 @@ public class InspectionTaskVo implements Serializable { * 巡检人名称 */ @ExcelProperty(value = "巡检人名称") - private Long actUserName; + private String actUserName; /** * 巡检方式 diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/mobile/MInspectionPointVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/mobile/MInspectionPointVo.java new file mode 100644 index 00000000..26920080 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/mobile/MInspectionPointVo.java @@ -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; +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/mobile/MInspectionTaskVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/mobile/MInspectionTaskVo.java new file mode 100644 index 00000000..0353545a --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/mobile/MInspectionTaskVo.java @@ -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; +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/IInspectionPointService.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/IInspectionPointService.java index 95beaa24..215b14b2 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/IInspectionPointService.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/IInspectionPointService.java @@ -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 ids, Boolean isValid); + } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/IInspectionTaskDetailService.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/IInspectionTaskDetailService.java index 47497e69..8a404105 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/IInspectionTaskDetailService.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/IInspectionTaskDetailService.java @@ -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 ids, Boolean isValid); + + //移动端 + /** + * APP端查询巡检明细列表 + * + * @param bo + * @param pageQuery + * @return + */ + TableDataInfo mQueryPageList(InspectionTaskDetailBo bo, PageQuery pageQuery); } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/IInspectionTaskService.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/IInspectionTaskService.java index a0906f27..25e44210 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/IInspectionTaskService.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/IInspectionTaskService.java @@ -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 ids, Boolean isValid); + + /** + * app端查询列表 + */ + /** + * 分页查询巡检任务列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 巡检任务分页列表 + */ + TableDataInfo mQueryPageList(InspectionTaskBo bo, PageQuery pageQuery); } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/InspectionPlanServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/InspectionPlanServiceImpl.java index d060ce78..5bb675a3 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/InspectionPlanServiceImpl.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/InspectionPlanServiceImpl.java @@ -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 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 staffQueryWrapper = Wrappers.lambdaQuery(); + staffQueryWrapper.eq(InspectionPlanStaff::getInspectionPlanId, plan.getId()); + //查询该计划巡查人员 + List inspectionPlanStaffVos = inspectionPlanStaffMapper.selectVoList(staffQueryWrapper); + List userIdList = inspectionPlanStaffVos.stream().map(vo -> vo.getUserId()).distinct().collect(Collectors.toList()); + List 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 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 staffQueryWrapper = Wrappers.lambdaQuery(); + staffQueryWrapper.eq(InspectionPlanStaff::getInspectionPlanId, plan.getId()); + //查询该计划巡查人员 + List 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 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 inspectionRoutePointVoList = inspectionRoutePointMapper.selectVoList( + new LambdaQueryWrapper() + .eq(InspectionRoutePoint::getRouteId, plan.getInspectionRouteId())); + Assert.isTrue(CollUtil.isNotEmpty(inspectionRoutePointVoList), "该计划路线没有关联的巡检点"); + //收集巡检点id + List pointIds = inspectionRoutePointVoList.stream().map(vo -> vo.getPointId()).toList(); + List 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 staffLambdaQueryWrapper = new QueryWrapper<>(); staffLambdaQueryWrapper.eq("inspection_plan_id", id); inspectionPlanStaffMapper.delete(staffLambdaQueryWrapper); List inspectionPlanStaffBoList = bo.getInspectionPlanStaffBoList(); - inspectionPlanStaffBoList.stream().forEach(s->{ + inspectionPlanStaffBoList.stream().forEach(s -> { s.setInspectionPlanId(id); }); inspectionPlanStaffMapper.insertBatch(BeanUtil.copyToList(inspectionPlanStaffBoList, InspectionPlanStaff.class)); diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/InspectionPointServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/InspectionPointServiceImpl.java index deb1c310..b47d781c 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/InspectionPointServiceImpl.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/InspectionPointServiceImpl.java @@ -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 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 ids, Boolean isValid) { - if(isValid){ + if (isValid) { //TODO 做一些业务上的校验,判断是否需要校验 } return baseMapper.deleteByIds(ids) > 0; diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/InspectionTaskDetailServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/InspectionTaskDetailServiceImpl.java index e9b4d1db..cebbe748 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/InspectionTaskDetailServiceImpl.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/InspectionTaskDetailServiceImpl.java @@ -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 mQueryPageList(InspectionTaskDetailBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + // 转换 VO 类型 + List mInspectionTaskDetailVo=new ArrayList<>(); + // 转换并设置 typeName + if(CollUtil.isNotEmpty(result.getRecords())){ + //收集巡检点id + List pointIdList = result.getRecords().stream().map(InspectionTaskDetailVo::getPointId).collect(Collectors.toList()); + //查询巡检点转成巡检点名称转成map id->名称 + Map 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 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 pointNameMap){ + mInspectionTaskDetailVo.setPointName( ObjectUtil.defaultIfNull(pointNameMap.get(mInspectionTaskDetailVo.getPointId()), "未知点位")); + } } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/InspectionTaskServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/InspectionTaskServiceImpl.java index dd44bf47..383c5f4c 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/InspectionTaskServiceImpl.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/InspectionTaskServiceImpl.java @@ -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 inspectionTaskVoPage) { // 提取用户userId,方便批量查询 Set 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 ids, Boolean isValid) { - if(isValid){ + if (isValid) { //TODO 做一些业务上的校验,判断是否需要校验 } return baseMapper.deleteByIds(ids) > 0; } + /** + * app端查询列表 + */ + /** + * 分页查询巡检任务列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 巡检任务分页列表 + */ + @Override + + public TableDataInfo mQueryPageList(InspectionTaskBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + // 查询得到 Page + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + // 手动转换为 Page + Page voPage = new Page<>(); + voPage.setCurrent(result.getCurrent()); + voPage.setSize(result.getSize()); + voPage.setTotal(result.getTotal()); + voPage.setPages(result.getPages()); + // 转换 records 列表 + List 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 finishedDetails = inspectionTaskDetailMapper.selectList( + new LambdaQueryWrapper() + .eq(InspectionTaskDetail::getTaskId, taskId) + ); + if (finishedDetails.size() == 0) { + mVo.setInspectionProgress("0%"); + return mVo; + } + //查询巡检项目 + InspectionItem inspectionItem = inspectionItemMapper.selectOne( + new LambdaQueryWrapper() + .eq(InspectionItem::getId, finishedDetails.get(0).getPointId()) + ); + if(ObjectUtil.isNotEmpty(inspectionItem)){ + // 2. 查询该巡检项下的所有巡检点(总点数) + List allPoints = inspectionPointMapper.selectList( + new LambdaQueryWrapper() + .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; + } + } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/ResidentPersonServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/ResidentPersonServiceImpl.java index 4bd985f0..1c0310cc 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/ResidentPersonServiceImpl.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/ResidentPersonServiceImpl.java @@ -123,6 +123,11 @@ public class ResidentPersonServiceImpl implements IResidentPersonService { // 首次入驻新用户权限组默认使用公司权限 ResidentUnitVo ruVo = residentUnitService.queryById(bo.getUnitId()); + add.setPassword("123456"); + //查询该单位下是否有管理员 + new LambdaQueryWrapper().eq(ResidentPerson::getUnitId, bo.getUnitId()) + .eq(ResidentPerson::getUserRoles, "1"); + add.setAuthGroupId(ruVo.getAuthGroupId()); add.setAuthBegDate(ruVo.getAuthBegDate()); add.setAuthEndDate(ruVo.getAuthEndDate()); diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/ResidentUnitServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/ResidentUnitServiceImpl.java index fb2f95ec..9bd9fa87 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/ResidentUnitServiceImpl.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/ResidentUnitServiceImpl.java @@ -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); + } /** * 修改入驻单位 * diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/rocketmq/consumer/HighDensityConsumer.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/rocketmq/consumer/HighDensityConsumer.java index 677f876a..427cb115 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/rocketmq/consumer/HighDensityConsumer.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/rocketmq/consumer/HighDensityConsumer.java @@ -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; /**