From 0b90663d3d2153f54d29f9bebdf4cf015eae81b6 Mon Sep 17 00:00:00 2001 From: yuyongle <1150359267@qq.com> Date: Mon, 21 Jul 2025 14:37:15 +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 --- .../property/domain/ServiceWorkOrders.java | 24 +++---- .../domain/ServiceWorkOrdersRecord.java | 45 ++++++++++++++ .../domain/ServiceWorkOrdersType.java | 10 --- .../domain/bo/ServiceWorkOrdersBo.java | 18 +----- .../domain/bo/ServiceWorkOrdersRecordBo.java | 53 ++++++++++++++++ .../domain/bo/ServiceWorkOrdersTypeBo.java | 15 ----- .../domain/vo/ServiceWorkOrdersInfoVo.java | 14 ++++- .../vo/ServiceWorkOrdersRecordInfoVo.java | 55 ++++++++++++++++ .../domain/vo/ServiceWorkOrdersRecordVo.java | 62 +++++++++++++++++++ .../domain/vo/ServiceWorkOrdersTypeVo.java | 11 ---- .../domain/vo/ServiceWorkOrdersVo.java | 37 +++++------ .../mapper/ServiceWorkOrdersRecordMapper.java | 17 +++++ .../impl/ServiceWorkOrdersServiceImpl.java | 58 +++++++++++++++-- .../ServiceWorkOrdersRecordMapper.xml | 7 +++ 14 files changed, 329 insertions(+), 97 deletions(-) create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/domain/ServiceWorkOrdersRecord.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/ServiceWorkOrdersRecordBo.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/ServiceWorkOrdersRecordInfoVo.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/ServiceWorkOrdersRecordVo.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/ServiceWorkOrdersRecordMapper.java create mode 100644 ruoyi-modules/Property/src/main/resources/mapper/Property/ServiceWorkOrdersRecordMapper.xml 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 ed5a881c..7dc875ee 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 @@ -47,7 +47,7 @@ public class ServiceWorkOrders extends TenantEntity { /** * 状态 */ - private Integer status; + private String status; /** * 派单时间 @@ -55,15 +55,19 @@ public class ServiceWorkOrders extends TenantEntity { private Date dispatchTime; /** - * 发起人姓名 + * 发起人 */ - private String initiatorName; + private long initiatorPeople; /** * 处理人姓名 */ - private String handler; + private long handler; + /** + * 抄送人 + */ + private long ccPeople; /** * 地址 @@ -88,17 +92,7 @@ public class ServiceWorkOrders extends TenantEntity { /** * 是否超时 */ - private Integer isTimeOut; - - /** - * 创建人id - */ - private Long createById; - - /** - * 更新人id - */ - private Long updateById; + private String isTimeOut; } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/ServiceWorkOrdersRecord.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/ServiceWorkOrdersRecord.java new file mode 100644 index 00000000..9e35cc17 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/ServiceWorkOrdersRecord.java @@ -0,0 +1,45 @@ +package org.dromara.property.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 工单接单记录对象 service_work_orders_record + * + * @author mocheng + * @date 2025-07-21 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("service_work_orders_record") +public class ServiceWorkOrdersRecord extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * id + */ + @TableId(value = "id") + private Long id; + + /** + * 工单id + */ + private Long orderId; + + + /** + * 状态(0创建工单,1已派单2已抢单3处理中,4已完成) + */ + private String status; + + /** + * 处理人 + */ + private Long handler; +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/ServiceWorkOrdersType.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/ServiceWorkOrdersType.java index ea18036f..95677afb 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/ServiceWorkOrdersType.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/ServiceWorkOrdersType.java @@ -57,16 +57,6 @@ public class ServiceWorkOrdersType extends TenantEntity { */ private Integer isTransfers; - /** - * 创建人id - */ - private Long createById; - - /** - * 更新人id - */ - private Long updateById; - /** * 搜索值 */ diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/ServiceWorkOrdersBo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/ServiceWorkOrdersBo.java index 4fbf80cf..7e0dd8b9 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/ServiceWorkOrdersBo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/ServiceWorkOrdersBo.java @@ -46,7 +46,7 @@ public class ServiceWorkOrdersBo extends BaseEntity { /** * 状态 */ - private Integer status; + private String status; /** * 派单时间 @@ -62,7 +62,7 @@ public class ServiceWorkOrdersBo extends BaseEntity { /** * 处理人姓名 */ - private String handler; + private Long handler; /** * 地址 @@ -87,18 +87,6 @@ public class ServiceWorkOrdersBo extends BaseEntity { /** * 是否超时 */ - private Integer isTimeOut; - - /** - * 创建人id - */ - private Long createById; - - /** - * 更新人id - */ - private Long updateById; - - + private String isTimeOut; } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/ServiceWorkOrdersRecordBo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/ServiceWorkOrdersRecordBo.java new file mode 100644 index 00000000..0575d095 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/ServiceWorkOrdersRecordBo.java @@ -0,0 +1,53 @@ +package org.dromara.property.domain.bo; + +import org.dromara.property.domain.ServiceWorkOrdersRecord; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 工单接单记录业务对象 service_work_orders_record + * + * @author mocheng + * @date 2025-07-21 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = ServiceWorkOrdersRecord.class, reverseConvertGenerate = false) +public class ServiceWorkOrdersRecordBo extends BaseEntity { + + /** + * id + */ + @NotNull(message = "id不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 工单id + */ + @NotBlank(message = "工单id不能为空", groups = { AddGroup.class, EditGroup.class }) + private long orderId; + + /** + * 状态(0创建工单,1已派单2已抢单3处理中,4已完成) + */ + @NotBlank(message = "状态(0创建工单,1已派单2已抢单3处理中,4已完成)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String status; + + /** + * 处理人 + */ + @NotNull(message = "处理人不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long handler; + + /** + * 搜索值 + */ + private String searchValue; + + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/ServiceWorkOrdersTypeBo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/ServiceWorkOrdersTypeBo.java index d02facda..ab0d9a20 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/ServiceWorkOrdersTypeBo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/ServiceWorkOrdersTypeBo.java @@ -60,19 +60,4 @@ public class ServiceWorkOrdersTypeBo extends BaseEntity { */ private Integer isTransfers; - /** - * 创建人id - */ - private Long createById; - - /** - * 更新人id - */ - private Long updateById; - - /** - * 搜索值 - */ - private String searchValue; - } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/ServiceWorkOrdersInfoVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/ServiceWorkOrdersInfoVo.java index 72ebaada..3e2b2498 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/ServiceWorkOrdersInfoVo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/ServiceWorkOrdersInfoVo.java @@ -5,10 +5,12 @@ import cn.idev.excel.annotation.ExcelProperty; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; import org.dromara.property.domain.ServiceWorkOrders; +import org.dromara.property.domain.ServiceWorkOrdersRecord; import java.io.Serial; import java.io.Serializable; import java.util.Date; +import java.util.List; /** * @Author:yuyongle @@ -51,7 +53,7 @@ public class ServiceWorkOrdersInfoVo implements Serializable { * 状态 */ @ExcelProperty(value = "状态") - private Integer status; + private String status; /** * 派单时间 @@ -80,7 +82,7 @@ public class ServiceWorkOrdersInfoVo implements Serializable { * 处理人姓名 */ @ExcelProperty(value = "处理人姓名") - private String handler; + private Long handler; /** * 处理人姓名文本 */ @@ -120,7 +122,7 @@ public class ServiceWorkOrdersInfoVo implements Serializable { * 是否超时 */ @ExcelProperty(value = "是否超时") - private Integer isTimeOut; + private String isTimeOut; /** * 类型名称 */ @@ -131,4 +133,10 @@ public class ServiceWorkOrdersInfoVo implements Serializable { */ @ExcelProperty(value = "创建时间") private Date createTime; + /** + *工单记录 + */ + private List workOrdersRecordVoList; + + } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/ServiceWorkOrdersRecordInfoVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/ServiceWorkOrdersRecordInfoVo.java new file mode 100644 index 00000000..dbae9eac --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/ServiceWorkOrdersRecordInfoVo.java @@ -0,0 +1,55 @@ +package org.dromara.property.domain.vo; + +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.ServiceWorkOrdersRecord; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + +/** + * 工单接单记录视图对象 service_work_orders_record + * + * @author mocheng + * @date 2025-07-21 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = ServiceWorkOrdersRecord.class) +public class ServiceWorkOrdersRecordInfoVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * id + */ + @ExcelProperty(value = "id") + private Long id; + + /** + * 状态(0创建工单,1已派单2已抢单3处理中,4已完成) + */ + @ExcelProperty(value = "状态(0创建工单,1已派单2已抢单3处理中,4已完成)") + private String status; + + /** + * 处理人 + */ + @ExcelProperty(value = "处理人") + private Long handler; + /** + * 处理人 + */ + @ExcelProperty(value = "处理人") + private String handlerName; + /** + * 创建时间 + */ + @ExcelProperty(value = "创建时间") + private Date createTime; +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/ServiceWorkOrdersRecordVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/ServiceWorkOrdersRecordVo.java new file mode 100644 index 00000000..8471f476 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/ServiceWorkOrdersRecordVo.java @@ -0,0 +1,62 @@ +package org.dromara.property.domain.vo; + +import org.dromara.property.domain.ServiceWorkOrdersRecord; +import cn.idev.excel.annotation.ExcelIgnoreUnannotated; +import cn.idev.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 工单接单记录视图对象 service_work_orders_record + * + * @author mocheng + * @date 2025-07-21 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = ServiceWorkOrdersRecord.class) +public class ServiceWorkOrdersRecordVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * id + */ + @ExcelProperty(value = "id") + private Long id; + + /** + * 工单id + */ + @ExcelProperty(value = "工单id") + private String orderId; + + /** + * 状态(0创建工单,1已派单2已抢单3处理中,4已完成) + */ + @ExcelProperty(value = "状态(0创建工单,1已派单2已抢单3处理中,4已完成)") + private String status; + + /** + * 处理人 + */ + @ExcelProperty(value = "处理人") + private Long handler; + + /** + * 创建时间 + */ + @ExcelProperty(value = "创建时间") + private Date createTime; + + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/ServiceWorkOrdersTypeVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/ServiceWorkOrdersTypeVo.java index a590211e..b56c3c54 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/ServiceWorkOrdersTypeVo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/ServiceWorkOrdersTypeVo.java @@ -68,17 +68,6 @@ public class ServiceWorkOrdersTypeVo implements Serializable { @ExcelProperty(value = "是否支持转单(0支持,1不支持)") private Integer isTransfers; - /** - * 创建人id - */ - @ExcelProperty(value = "创建人id") - private Long createById; - - /** - * 更新人id - */ - @ExcelProperty(value = "更新人id") - private Long updateById; /** * 搜索值 diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/ServiceWorkOrdersVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/ServiceWorkOrdersVo.java index 163becd8..17f30a4e 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/ServiceWorkOrdersVo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/ServiceWorkOrdersVo.java @@ -59,7 +59,7 @@ public class ServiceWorkOrdersVo implements Serializable { * 状态 */ @ExcelProperty(value = "状态") - private int status; + private String status; /** * 派单时间 @@ -68,10 +68,19 @@ public class ServiceWorkOrdersVo implements Serializable { private Date dispatchTime; /** - * 发起人姓名 + * 发起人 */ - @ExcelProperty(value = "发起人姓名") - private String initiatorName; + private long initiatorPeople; + + + /** + * 处理人姓名 + */ + private long handler; + /** + * 抄送人 + */ + private long ccPeople; /** * 发起人姓名文本 */ @@ -83,12 +92,6 @@ public class ServiceWorkOrdersVo implements Serializable { */ @ExcelProperty(value = "发起人手机号") private String initiatorPhone; - - /** - * 处理人姓名 - */ - @ExcelProperty(value = "处理人姓名") - private String handler; /** * 处理人姓名文本 */ @@ -124,19 +127,7 @@ public class ServiceWorkOrdersVo implements Serializable { * 是否超时 */ @ExcelProperty(value = "是否超时") - private int isTimeOut; - - /** - * 创建人id - */ - @ExcelProperty(value = "创建人id") - private Long createById; - - /** - * 更新人id - */ - @ExcelProperty(value = "更新人id") - private Long updateById; + private String isTimeOut; /** * 搜索值 diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/ServiceWorkOrdersRecordMapper.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/ServiceWorkOrdersRecordMapper.java new file mode 100644 index 00000000..6fcaff3b --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/ServiceWorkOrdersRecordMapper.java @@ -0,0 +1,17 @@ +package org.dromara.property.mapper; + +import org.apache.ibatis.annotations.Mapper; +import org.dromara.property.domain.ServiceWorkOrdersRecord; +import org.dromara.property.domain.vo.ServiceWorkOrdersRecordVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 工单接单记录Mapper接口 + * + * @author mocheng + * @date 2025-07-21 + */ +@Mapper +public interface ServiceWorkOrdersRecordMapper extends BaseMapperPlus { + +} 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 866ef1d5..ca4cdcc5 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 @@ -1,6 +1,7 @@ package org.dromara.property.service.impl; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -12,12 +13,15 @@ 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.ResidentPerson; import org.dromara.property.domain.ServiceWorkOrders; +import org.dromara.property.domain.ServiceWorkOrdersRecord; import org.dromara.property.domain.ServiceWorkOrdersType; import org.dromara.property.domain.bo.ServiceWorkOrdersBo; import org.dromara.property.domain.vo.*; import org.dromara.property.mapper.ResidentPersonMapper; import org.dromara.property.mapper.ServiceWorkOrdersMapper; +import org.dromara.property.mapper.ServiceWorkOrdersRecordMapper; import org.dromara.property.mapper.ServiceWorkOrdersTypeMapper; import org.dromara.property.service.IServiceWorkOrdersService; import org.springframework.stereotype.Service; @@ -40,6 +44,7 @@ public class ServiceWorkOrdersServiceImpl implements IServiceWorkOrdersService { private final ServiceWorkOrdersMapper baseMapper; private final ServiceWorkOrdersTypeMapper typesMapper; private final ResidentPersonMapper residentPersonMapper; + private final ServiceWorkOrdersRecordMapper workOrdersRecordMapper; /** * 查询【工单处理】 @@ -55,7 +60,7 @@ public class ServiceWorkOrdersServiceImpl implements IServiceWorkOrdersService { if (Objects.nonNull(serviceWorkOrdersTypeVo)) { serviceWorkOrdersInfoVo.setTypeName(serviceWorkOrdersTypeVo.getOrderTypeName()); } - ResidentPersonVo residentPersonVo = residentPersonMapper.selectVoById(Long.valueOf(serviceWorkOrdersVo.getInitiatorName())); + ResidentPersonVo residentPersonVo = residentPersonMapper.selectVoById(Long.valueOf(serviceWorkOrdersVo.getInitiatorPeople())); if (Objects.nonNull(residentPersonVo)) { serviceWorkOrdersInfoVo.setInitiatorNameText(residentPersonVo.getUserName()); serviceWorkOrdersInfoVo.setInitiatorPhone(residentPersonVo.getPhone()); @@ -65,6 +70,23 @@ public class ServiceWorkOrdersServiceImpl implements IServiceWorkOrdersService { serviceWorkOrdersInfoVo.setHandlerText(residentPersonHandler.getUserName()); serviceWorkOrdersInfoVo.setHandlerPhone(residentPersonHandler.getPhone()); } + //查询工单处理记录 + List serviceWorkOrdersRecordVoList = workOrdersRecordMapper.selectVoList(new LambdaQueryWrapper() + .eq(ServiceWorkOrdersRecord::getOrderId, id)); + if (CollUtil.isNotEmpty(serviceWorkOrdersRecordVoList)) { + List serviceWorkOrdersRecordInfoVos = BeanUtil.copyToList(serviceWorkOrdersRecordVoList, ServiceWorkOrdersRecordInfoVo.class); + ListresidentPersonIdList = serviceWorkOrdersRecordInfoVos.stream() + .map(vo -> vo.getHandler()) + .distinct() + .collect(Collectors.toList()); + List residentPeople = residentPersonMapper.selectByIds(residentPersonIdList); + serviceWorkOrdersRecordInfoVos.stream().forEach(workOrdersRecordVo->{ + ResidentPerson residentPerson = residentPeople.stream() + .filter(vo -> vo.getId() != null && vo.getId().equals(serviceWorkOrdersVo.getHandler())).findFirst().orElse(null); + workOrdersRecordVo.setHandlerName(residentPerson.getUserName()); + }); + serviceWorkOrdersInfoVo.setWorkOrdersRecordVoList(serviceWorkOrdersRecordInfoVos); + } return serviceWorkOrdersInfoVo; } @@ -87,11 +109,15 @@ public class ServiceWorkOrdersServiceImpl implements IServiceWorkOrdersService { .distinct() .collect(Collectors.toList()); List serviceWorkOrdersTypeVoList = typesMapper.selectVoByIds(typeList); + if (ObjectUtil.isEmpty(serviceWorkOrdersTypeVoList)) { + return TableDataInfo.build(result); + } List serviceWorkOrdersVoList = new ArrayList<>(); result.getRecords().stream().forEach(s -> { ServiceWorkOrdersTypeVo serviceWorkOrdersTypeVo = serviceWorkOrdersTypeVoList.stream() .filter(vo -> vo.getId() != null && vo.getId().equals(s.getType())).findFirst().orElse(null); - s.setTypeName(serviceWorkOrdersTypeVo.getOrderTypeName()); + + s.setTypeName(ObjectUtil.isNotNull(serviceWorkOrdersTypeVo) ? serviceWorkOrdersTypeVo.getOrderTypeName() : null); serviceWorkOrdersVoList.add(s); }); return TableDataInfo.build(new Page().setRecords(serviceWorkOrdersVoList)); @@ -116,8 +142,8 @@ public class ServiceWorkOrdersServiceImpl implements IServiceWorkOrdersService { lqw.eq(StringUtils.isNotBlank(bo.getOrderNo()), ServiceWorkOrders::getOrderNo, bo.getOrderNo()); 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::getInitiatorName, bo.getInitiatorName()); - lqw.eq(StringUtils.isNotBlank(bo.getHandler()), ServiceWorkOrders::getHandler, bo.getHandler()); + lqw.like(StringUtils.isNotBlank(bo.getInitiatorName()), ServiceWorkOrders::getInitiatorPeople, bo.getInitiatorName()); + lqw.eq(ObjectUtil.isNotEmpty(bo.getHandler()), ServiceWorkOrders::getHandler, bo.getHandler()); lqw.eq(StringUtils.isNotBlank(bo.getLocation()), ServiceWorkOrders::getLocation, bo.getLocation()); lqw.eq(bo.getPlanCompleTime() != null, ServiceWorkOrders::getPlanCompleTime, bo.getPlanCompleTime()); lqw.eq(bo.getCompleTime() != null, ServiceWorkOrders::getCompleTime, bo.getCompleTime()); @@ -138,10 +164,16 @@ public class ServiceWorkOrdersServiceImpl implements IServiceWorkOrdersService { public Boolean insertByBo(ServiceWorkOrdersBo bo) { ServiceWorkOrders add = MapstructUtils.convert(bo, ServiceWorkOrders.class); add.setOrderNo("GD" + IdUtil.getSnowflakeNextIdStr()); + add.setStatus("0"); validEntityBeforeSave(add); boolean flag = baseMapper.insert(add) > 0; if (flag) { bo.setId(add.getId()); + ServiceWorkOrdersRecord serviceWorkOrdersRecord = new ServiceWorkOrdersRecord(); + serviceWorkOrdersRecord.setOrderId(add.getId()); + serviceWorkOrdersRecord.setStatus(add.getStatus()); + serviceWorkOrdersRecord.setHandler(add.getHandler()); + workOrdersRecordMapper.insert(serviceWorkOrdersRecord); } return flag; } @@ -156,7 +188,7 @@ public class ServiceWorkOrdersServiceImpl implements IServiceWorkOrdersService { @Transactional(rollbackFor = Exception.class) public Boolean updateByBo(ServiceWorkOrdersBo bo) { ServiceWorkOrders update = MapstructUtils.convert(bo, ServiceWorkOrders.class); - validEntityBeforeSave(update); + validEntityBeforeUpdate(update); return baseMapper.updateById(update) > 0; } @@ -166,6 +198,22 @@ public class ServiceWorkOrdersServiceImpl implements IServiceWorkOrdersService { private void validEntityBeforeSave(ServiceWorkOrders entity) { //TODO 做一些数据校验,如唯一约束 + + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeUpdate(ServiceWorkOrders entity) { + ServiceWorkOrders serviceWorkOrders = baseMapper.selectById(entity.getId()); + //TODO 做一些数据校验,如唯一约束 + if (!entity.getStatus().equals(serviceWorkOrders.getStatus())) { + ServiceWorkOrdersRecord serviceWorkOrdersRecord = new ServiceWorkOrdersRecord(); + serviceWorkOrdersRecord.setOrderId(serviceWorkOrders.getId()); + serviceWorkOrdersRecord.setStatus(serviceWorkOrders.getStatus()); + serviceWorkOrdersRecord.setHandler(serviceWorkOrders.getHandler()); + workOrdersRecordMapper.insert(serviceWorkOrdersRecord); + } } /** diff --git a/ruoyi-modules/Property/src/main/resources/mapper/Property/ServiceWorkOrdersRecordMapper.xml b/ruoyi-modules/Property/src/main/resources/mapper/Property/ServiceWorkOrdersRecordMapper.xml new file mode 100644 index 00000000..d32d4771 --- /dev/null +++ b/ruoyi-modules/Property/src/main/resources/mapper/Property/ServiceWorkOrdersRecordMapper.xml @@ -0,0 +1,7 @@ + + + + +