From 48984a494d1197e154e66fdf6335eda5d08b47f2 Mon Sep 17 00:00:00 2001 From: yuyongle <1150359267@qq.com> Date: Fri, 8 Aug 2025 11:42:59 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86=E4=BF=9D=E5=B7=A5?= =?UTF-8?q?=E5=8D=95bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mobile/MServiceWorkOrdersController.java | 41 +++++++ .../domain/bo/ServiceWorkOrdersBo.java | 4 + .../bo/mobile/MServiceWorkOrdersBo.java | 113 ++++++++++++++++++ .../service/IServiceWorkOrdersService.java | 12 ++ .../impl/ServiceWorkOrdersServiceImpl.java | 25 ++++ 5 files changed, 195 insertions(+) create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/controller/mobile/MServiceWorkOrdersController.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/mobile/MServiceWorkOrdersBo.java diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/mobile/MServiceWorkOrdersController.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/mobile/MServiceWorkOrdersController.java new file mode 100644 index 00000000..2114b401 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/mobile/MServiceWorkOrdersController.java @@ -0,0 +1,41 @@ +package org.dromara.property.controller.mobile; + +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.web.core.BaseController; +import org.dromara.property.domain.bo.mobile.MServiceWorkOrdersBo; +import org.dromara.property.service.IServiceWorkOrdersService; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * 【业务管理-工单处理】 + * + * @author mocheng + * @date 2025-07-07 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/mobile/workOrders") +public class MServiceWorkOrdersController extends BaseController { + + private final IServiceWorkOrdersService serviceWorkOrdersService; + + /** + * 小程序新增【工单处理】 + */ + @Log(title = "【小程序新增工单处理】", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody MServiceWorkOrdersBo bo) { + return toAjax(serviceWorkOrdersService.insertMServiceWorkOrdersBo(bo)); + } +} 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 c7c27efe..68b7bdf0 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 @@ -101,6 +101,10 @@ public class ServiceWorkOrdersBo extends BaseEntity { * 图片 */ private String imgUrl; + /** + * 工单图片 + */ + private String orderImgUrl; /** * 备注 */ diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/mobile/MServiceWorkOrdersBo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/mobile/MServiceWorkOrdersBo.java new file mode 100644 index 00000000..747806b4 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/mobile/MServiceWorkOrdersBo.java @@ -0,0 +1,113 @@ +package org.dromara.property.domain.bo.mobile; + + +import cn.idev.excel.annotation.ExcelProperty; +import io.github.linpeilie.annotations.AutoMapper; +import jakarta.validation.constraints.NotNull; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.property.domain.ServiceWorkOrders; + +import java.util.Date; + +/** + * 【工单处理】业务对象 小程序端新增工单 + * + * @author mocheng + * @date 2025-07-07 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = ServiceWorkOrders.class, reverseConvertGenerate = false) +public class MServiceWorkOrdersBo extends BaseEntity { + + /** + * id + */ + @NotNull(message = "id不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 工单编号 + */ + private String orderNo; + + /** + * 权重 + */ + @ExcelProperty(value = "权重") + private String processingWeight; + /** + * 工单类型 + */ + @NotNull(message = "工单类型不能为空", groups = { EditGroup.class }) + private Long type; + + /** + * 状态 + */ + private String status; + + /** + * 派单时间 + */ + private Date dispatchTime; + + /** + * 发起人姓名 + */ + private String initiatorName; + + + /** + * 处理人姓名 + */ + private Long handler; + + /** + * 地址 + */ + @NotNull(message = "地址不能为空", groups = { EditGroup.class }) + + private String location; + + /** + * 计划完成时间 + */ + //@NotNull(message = "计划完成时间不能为空", groups = { EditGroup.class }) + private Date planCompleTime; + + /** + * 完成时间 + */ + private Date compleTime; + + /** + * 评价 + */ + private Integer serviceEvalua; + /** + * 评价文本 + */ + private String serviceEvaluaText; + /** + * 图片 + */ + private String imgUrl; + /** + * 工单图片 + */ + private String orderImgUrl; + /** + * 备注 + */ + private String remark; + + /** + * 是否超时 + */ + private String isTimeOut; + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/IServiceWorkOrdersService.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/IServiceWorkOrdersService.java index 89d611d1..d27a8d20 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/IServiceWorkOrdersService.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/IServiceWorkOrdersService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.property.domain.bo.ServiceWorkOrdersBo; +import org.dromara.property.domain.bo.mobile.MServiceWorkOrdersBo; import org.dromara.property.domain.vo.ServiceWorkOrderAnalysisVo; import org.dromara.property.domain.vo.ServiceWorkOrdersInfoVo; import org.dromara.property.domain.vo.ServiceWorkOrdersVo; @@ -75,4 +76,15 @@ public interface IServiceWorkOrdersService { */ ServiceWorkOrderAnalysisVo counts(); + + + //小程序端新增 + + /** + * 新增工单 + * @param bo + * @return + */ + Boolean insertMServiceWorkOrdersBo(MServiceWorkOrdersBo bo); + } 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 b9372f60..68ac9a24 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 @@ -22,6 +22,7 @@ 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.bo.mobile.MServiceWorkOrdersBo; import org.dromara.property.domain.vo.*; import org.dromara.property.mapper.ResidentPersonMapper; import org.dromara.property.mapper.ServiceWorkOrdersMapper; @@ -495,4 +496,28 @@ public class ServiceWorkOrdersServiceImpl implements IServiceWorkOrdersService { .map(month -> new ServiceWorkOrderAnalysisVo.BarChartVo(month, Math.toIntExact(orderCountMap.getOrDefault(month, 0L)))) .collect(Collectors.toList()); } + + + + + //小程序端新增 + @Override + public Boolean insertMServiceWorkOrdersBo(MServiceWorkOrdersBo bo) { + ServiceWorkOrders add = MapstructUtils.convert(bo, ServiceWorkOrders.class); + LoginUser user = LoginHelper.getLoginUser(); + add.setOrderNo("GD" + IdUtil.getSnowflakeNextIdStr()); + add.setStatus("0"); + add.setInitiatorPeople(user.getNickname()); + 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()); + workOrdersRecordMapper.insert(serviceWorkOrdersRecord); + } + return flag; + } + }