From 6444a9330beb9bead5265d8b57373057c999dfa9 Mon Sep 17 00:00:00 2001 From: yuyongle <1150359267@qq.com> Date: Thu, 7 Aug 2025 17:34:18 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86=E5=B7=A5=E5=8D=95bu?= =?UTF-8?q?g?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ServiceWorkOrdersTypeController.java | 2 - .../dromara/property/domain/CleanOrder.java | 10 ++++- .../property/domain/InspectionRoutePoint.java | 7 +++- .../property/domain/ServiceWorkOrders.java | 6 +-- .../property/domain/TbVisitorManagement.java | 4 ++ .../property/domain/bo/CleanOrderBo.java | 8 ++++ .../domain/bo/InspectionRoutePointBo.java | 5 +++ .../domain/bo/TbVisitorManagementBo.java | 5 ++- .../property/domain/vo/CleanOrderVo.java | 8 ++++ .../domain/vo/InspectionRoutePointVo.java | 8 ++-- .../domain/vo/TbVisitorManagementVo.java | 5 ++- .../impl/ServiceWorkOrdersServiceImpl.java | 15 +++++-- .../ServiceWorkOrdersTypeServiceImpl.java | 3 ++ .../dromara/property/tasks/MachineTasks.java | 15 +++++-- .../property/tasks/ServiceWorkOrderTasks.java | 42 +++++++++++++++++++ 15 files changed, 122 insertions(+), 21 deletions(-) create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/tasks/ServiceWorkOrderTasks.java diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/ServiceWorkOrdersTypeController.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/ServiceWorkOrdersTypeController.java index 725498ed..82d06c3c 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/ServiceWorkOrdersTypeController.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/ServiceWorkOrdersTypeController.java @@ -107,7 +107,6 @@ public class ServiceWorkOrdersTypeController extends BaseController { /** * 查询【工单类型】树结构 */ - @SaCheckPermission("system:workOrdersType:list") @GetMapping("/typeTree") public R> typeTree() { return R.ok(serviceWorkOrdersTypeService.typeTree()); @@ -119,7 +118,6 @@ public class ServiceWorkOrdersTypeController extends BaseController { * @param bo 工单类型 * @return 工单类型列表 */ - @SaCheckPermission("system:workOrdersType:list") @GetMapping("/queryList") public R> queryList(ServiceWorkOrdersTypeBo bo) { return R.ok(serviceWorkOrdersTypeService.queryList(bo)); diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/CleanOrder.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/CleanOrder.java index 53cf2f3c..b897e896 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/CleanOrder.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/CleanOrder.java @@ -60,6 +60,14 @@ public class CleanOrder extends TenantEntity { * 保洁类型 */ private String type; + /** + * 签到方式(1现场拍照2摄像头签到) + */ + private String signType; + /** + * 签到图片 + */ + private String signImgUrl; /** * 评价 */ @@ -69,7 +77,7 @@ public class CleanOrder extends TenantEntity { */ private String serviceEvaluaText; /** - * 图片 + * 评价图片 */ private String imgUrl; /** diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/InspectionRoutePoint.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/InspectionRoutePoint.java index 7746ccfb..9ed9968b 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/InspectionRoutePoint.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/InspectionRoutePoint.java @@ -1,5 +1,7 @@ package org.dromara.property.domain; +import jakarta.validation.constraints.NotNull; +import org.dromara.common.core.validate.EditGroup; import org.dromara.common.tenant.core.TenantEntity; import com.baomidou.mybatisplus.annotation.*; import lombok.Data; @@ -55,9 +57,10 @@ public class InspectionRoutePoint extends TenantEntity { private String remark; /** - * 搜索值 + * 排序 */ - private String searchValue; + @NotNull(message = "排序不能为空", groups = { EditGroup.class }) + private Integer sort; } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/ServiceWorkOrders.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/ServiceWorkOrders.java index a52fb76b..69c57064 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/ServiceWorkOrders.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/ServiceWorkOrders.java @@ -40,7 +40,7 @@ public class ServiceWorkOrders extends TenantEntity { */ private String orderName; /** - * 权重 + * 权重(1一般2紧急3危急) */ private String processingWeight; /** @@ -67,11 +67,11 @@ public class ServiceWorkOrders extends TenantEntity { /** * 处理人姓名 */ - private long handler; + private Long handler; /** * 抄送人 */ - private long ccPeople; + private Long ccPeople; /** * 地址 diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbVisitorManagement.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbVisitorManagement.java index ebfca824..391a472b 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbVisitorManagement.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbVisitorManagement.java @@ -43,6 +43,10 @@ public class TbVisitorManagement extends TenantEntity { * 访客电话 */ private String visitorPhone; + /** + * 身份证/军 + */ + private String idCard; /** * 拜访事由 diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/CleanOrderBo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/CleanOrderBo.java index fd6daed4..1d407561 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/CleanOrderBo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/CleanOrderBo.java @@ -49,6 +49,14 @@ public class CleanOrderBo extends BaseEntity { */ @NotBlank(message = "保洁类型不能为空", groups = { AddGroup.class, EditGroup.class }) private String type; + /** + * 签到方式(1现场拍照2摄像头签到) + */ + private String signType; + /** + * 签到图片 + */ + private String signImgUrl; /** * 保洁id */ diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/InspectionRoutePointBo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/InspectionRoutePointBo.java index c202fcd2..59e5c69b 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/InspectionRoutePointBo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/InspectionRoutePointBo.java @@ -33,6 +33,11 @@ public class InspectionRoutePointBo extends BaseEntity { */ // @NotNull(message = "巡检路线id不能为空", groups = { AddGroup.class, EditGroup.class }) private Long routeId; + /** + * 排序 + */ + @NotNull(message = "排序不能为空", groups = { EditGroup.class }) + private Integer sort; /** * 巡检点id diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbVisitorManagementBo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbVisitorManagementBo.java index 2da2f5b6..ca82d5a9 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbVisitorManagementBo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbVisitorManagementBo.java @@ -51,7 +51,10 @@ public class TbVisitorManagementBo extends BaseEntity { */ @NotBlank(message = "访客电话不能为空", groups = { AddGroup.class, EditGroup.class }) private String visitorPhone; - + /** + * 身份证/军 + */ + private String idCard; /** * 拜访事由 */ diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CleanOrderVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CleanOrderVo.java index e078a789..ca959c81 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CleanOrderVo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CleanOrderVo.java @@ -55,6 +55,14 @@ public class CleanOrderVo implements Serializable { * 保洁类型 */ private String type; + /** + * 签到方式(1现场拍照2摄像头签到) + */ + private String signType; + /** + * 签到图片 + */ + private String signImgUrl; /** * 评价 */ diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/InspectionRoutePointVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/InspectionRoutePointVo.java index f3d4d648..f1213800 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/InspectionRoutePointVo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/InspectionRoutePointVo.java @@ -2,6 +2,8 @@ package org.dromara.property.domain.vo; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; +import jakarta.validation.constraints.NotNull; +import org.dromara.common.core.validate.EditGroup; import org.dromara.property.domain.InspectionRoutePoint; import cn.idev.excel.annotation.ExcelIgnoreUnannotated; import cn.idev.excel.annotation.ExcelProperty; @@ -76,10 +78,10 @@ public class InspectionRoutePointVo implements Serializable { private String remark; /** - * 搜索值 + * 排序 */ - @ExcelProperty(value = "搜索值") - private String searchValue; + @NotNull(message = "排序不能为空", groups = { EditGroup.class }) + private Integer sort; } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbVisitorManagementVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbVisitorManagementVo.java index 1edf997f..4f1bd4f6 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbVisitorManagementVo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbVisitorManagementVo.java @@ -56,7 +56,10 @@ public class TbVisitorManagementVo implements Serializable { */ @ExcelProperty(value = "访客电话") private String visitorPhone; - + /** + * 身份证/军 + */ + private String idCard; /** * 拜访事由 */ diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/ServiceWorkOrdersServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/ServiceWorkOrdersServiceImpl.java index 17bd272f..b9372f60 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/ServiceWorkOrdersServiceImpl.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/ServiceWorkOrdersServiceImpl.java @@ -51,7 +51,6 @@ import java.util.stream.Collectors; public class ServiceWorkOrdersServiceImpl implements IServiceWorkOrdersService { private final ServiceWorkOrdersMapper baseMapper; - private final ServiceWorkOrdersTypeMapper serviceWorkOrdersTypeMapper; private final ServiceWorkOrdersTypeMapper typesMapper; private final ResidentPersonMapper residentPersonMapper; private final ServiceWorkOrdersRecordMapper workOrdersRecordMapper; @@ -160,11 +159,19 @@ public class ServiceWorkOrdersServiceImpl implements IServiceWorkOrdersService { } private LambdaQueryWrapper buildQueryWrapper(ServiceWorkOrdersBo bo) { + //查询类型下子类型id + LambdaQueryWrapper OrdersTypeWrapper = new LambdaQueryWrapper<>(); + OrdersTypeWrapper.eq(ServiceWorkOrdersType::getParentId,bo.getType()); + List serviceWorkOrdersTypes = typesMapper.selectList(OrdersTypeWrapper); + List typeIds = serviceWorkOrdersTypes.stream() + .map(ServiceWorkOrdersType::getId) + .collect(Collectors.toList()); + typeIds.add(bo.getType()); Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.orderByAsc(ServiceWorkOrders::getId); lqw.eq(StringUtils.isNotBlank(bo.getOrderNo()), ServiceWorkOrders::getOrderNo, bo.getOrderNo()); - lqw.eq(ObjectUtil.isNotEmpty(bo.getStatus()), ServiceWorkOrders::getStatus, bo.getStatus()); + lqw.eq(StringUtils.isNotBlank(bo.getStatus()), ServiceWorkOrders::getStatus, bo.getStatus()); lqw.like(StringUtils.isNotBlank(bo.getOrderName()), ServiceWorkOrders::getOrderName, bo.getOrderName()); lqw.eq(bo.getDispatchTime() != null, ServiceWorkOrders::getDispatchTime, bo.getDispatchTime()); lqw.like(StringUtils.isNotBlank(bo.getInitiatorName()), ServiceWorkOrders::getInitiatorPeople, bo.getInitiatorName()); @@ -173,7 +180,7 @@ public class ServiceWorkOrdersServiceImpl implements IServiceWorkOrdersService { lqw.eq(bo.getPlanCompleTime() != null, ServiceWorkOrders::getPlanCompleTime, bo.getPlanCompleTime()); lqw.eq(bo.getCompleTime() != null, ServiceWorkOrders::getCompleTime, bo.getCompleTime()); lqw.eq(Objects.nonNull(bo.getServiceEvalua()), ServiceWorkOrders::getServiceEvalua, bo.getServiceEvalua()); - lqw.eq(Objects.nonNull(bo.getType()), ServiceWorkOrders::getType, bo.getType()); + lqw.in(Objects.nonNull(bo.getType()), ServiceWorkOrders::getType, typeIds); lqw.eq(StringUtils.isNotBlank(bo.getProcessingWeight()), ServiceWorkOrders::getProcessingWeight, bo.getProcessingWeight()); lqw.eq(StringUtils.isNotBlank(bo.getSearchValue()), ServiceWorkOrders::getSearchValue, bo.getSearchValue()); return lqw; @@ -459,7 +466,7 @@ public class ServiceWorkOrdersServiceImpl implements IServiceWorkOrdersService { Integer count = entry.getValue().intValue(); // 查询类型名称 - ServiceWorkOrdersType serviceWorkOrdersType = serviceWorkOrdersTypeMapper.selectById(typeId); + ServiceWorkOrdersType serviceWorkOrdersType = typesMapper.selectById(typeId); String type = serviceWorkOrdersType != null ? serviceWorkOrdersType.getOrderTypeName() : "未知类型"; // 添加到结果中 diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/ServiceWorkOrdersTypeServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/ServiceWorkOrdersTypeServiceImpl.java index 2a971429..48912b8b 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/ServiceWorkOrdersTypeServiceImpl.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/ServiceWorkOrdersTypeServiceImpl.java @@ -1,6 +1,7 @@ package org.dromara.property.service.impl; import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.MapstructUtils; @@ -80,9 +81,11 @@ public class ServiceWorkOrdersTypeServiceImpl implements IServiceWorkOrdersTypeS LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.orderByAsc(ServiceWorkOrdersType::getSort); lqw.eq(StringUtils.isNotBlank(bo.getOrderTypeNo()), ServiceWorkOrdersType::getOrderTypeNo, bo.getOrderTypeNo()); + lqw.eq(StringUtils.isNotBlank(bo.getOrderTypeNo()), ServiceWorkOrdersType::getOrderTypeNo, bo.getOrderTypeNo()); lqw.like(StringUtils.isNotBlank(bo.getOrderTypeName()), ServiceWorkOrdersType::getOrderTypeName, bo.getOrderTypeName()); lqw.eq(StringUtils.isNotBlank(bo.getOperationMode()), ServiceWorkOrdersType::getOperationMode, bo.getOperationMode()); lqw.eq(StringUtils.isNotBlank(bo.getSearchValue()), ServiceWorkOrdersType::getSearchValue, bo.getSearchValue()); + lqw.eq(ObjectUtil.isNotEmpty(bo.getParentId()), ServiceWorkOrdersType::getParentId, bo.getParentId()); lqw.isNull(bo.getFilterSubNodes() != null && bo.getFilterSubNodes(), ServiceWorkOrdersType::getParentId); lqw.ne(bo.getExcludeId()!=null,ServiceWorkOrdersType::getId,bo.getExcludeId()); return lqw; diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/tasks/MachineTasks.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/tasks/MachineTasks.java index 10fd845f..af701d25 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/tasks/MachineTasks.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/tasks/MachineTasks.java @@ -18,6 +18,9 @@ import org.dromara.property.mapper.MachineMaintainPlanStaffMapper; import org.dromara.property.mapper.MachineMaintainTaskMapper; import org.dromara.property.mapper.ResidentPersonMapper; import org.dromara.property.service.IMachineMaintainPlanService; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -39,17 +42,21 @@ import static org.dromara.common.mybatis.core.mapper.BaseMapperPlus.log; * @Date:2025/7/17 09:25 * @Description: **/ -@Validated +@Component @RequiredArgsConstructor -@RestController -@RequestMapping("/machineTask") +//@Validated +//@RequiredArgsConstructor +//@RestController +//@RequestMapping("/machineTask") public class MachineTasks { private final IMachineMaintainPlanService machineMaintainPlanService; private final MachineMaintainTaskMapper machineMaintainTaskMapper; private final MachineMaintainPlanStaffMapper machineMaintainPlanStaffMapper; private final ResidentPersonMapper residentPersonMapper; - @GetMapping("/taskId") + //@GetMapping("/taskId") + @Scheduled(cron = "0 0 3 * * ?") + @Transactional(rollbackFor = Exception.class) public void doMachineMaintainPianTask() { // 查询所有启用状态的巡检计划 MachineMaintainPlanBo machineMaintainPlanBo= new MachineMaintainPlanBo(); diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/tasks/ServiceWorkOrderTasks.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/tasks/ServiceWorkOrderTasks.java new file mode 100644 index 00000000..a0ad8082 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/tasks/ServiceWorkOrderTasks.java @@ -0,0 +1,42 @@ +package org.dromara.property.tasks; + +import cn.hutool.core.collection.CollUtil; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.dromara.property.domain.ServiceWorkOrders; +import org.dromara.property.mapper.ServiceWorkOrdersMapper; +import org.springframework.stereotype.Component; + +import java.util.List; + +import org.dromara.common.log.annotation.Log; + +/** + * @Author:yuyongle + * @Date:2025/8/7 14:21 + * @Description:自动派单 + **/ +@Slf4j +@Component +@RequiredArgsConstructor +public class ServiceWorkOrderTasks { + private ServiceWorkOrdersMapper workOrdersMapper; + + //查询状态为创建工单的工单 + private void handleServiceWorkOrder() { + List serviceWorkOrderList = workOrdersMapper.selectList( + new LambdaQueryWrapper() + .eq(ServiceWorkOrders::getStatus, "0")); + if(CollUtil.isNotEmpty(serviceWorkOrderList)){ + serviceWorkOrderList.stream().forEach(s->{ + + }); + }else { + log.info("派单工单为:{}",serviceWorkOrderList.size()); + } + + } +}