Commit a9e42464e47e743a75aca3a3bb130f6ee4df54f8

Authored by 颜惠青
1 parent a68ae57e

工单管理代码提交

Showing 30 changed files with 1914 additions and 0 deletions
@@ -17,6 +17,7 @@ @@ -17,6 +17,7 @@
17 <module>urbanops-module-infra</module> 17 <module>urbanops-module-infra</module>
18 <module>urbanops-module-gloabl</module> 18 <module>urbanops-module-gloabl</module>
19 <module>urbanops-module-garden</module> 19 <module>urbanops-module-garden</module>
  20 + <module>urbanops-module-workorder</module>
20 <!-- <module>urbanops-module-member</module>--> 21 <!-- <module>urbanops-module-member</module>-->
21 <module>urbanops-module-bpm</module> 22 <module>urbanops-module-bpm</module>
22 <!-- <module>urbanops-module-report</module>--> 23 <!-- <module>urbanops-module-report</module>-->
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/admin/attachment/AttachmentController.java 0 → 100644
  1 +package com.zteits.urbanops.module.workorder.controller.admin.attachment;
  2 +
  3 +import org.springframework.web.bind.annotation.*;
  4 +import jakarta.annotation.Resource;
  5 +import org.springframework.validation.annotation.Validated;
  6 +import org.springframework.security.access.prepost.PreAuthorize;
  7 +import io.swagger.v3.oas.annotations.tags.Tag;
  8 +import io.swagger.v3.oas.annotations.Parameter;
  9 +import io.swagger.v3.oas.annotations.Operation;
  10 +
  11 +import jakarta.validation.constraints.*;
  12 +import jakarta.validation.*;
  13 +import jakarta.servlet.http.*;
  14 +import java.util.*;
  15 +import java.io.IOException;
  16 +
  17 +import com.zteits.urbanops.framework.common.pojo.PageParam;
  18 +import com.zteits.urbanops.framework.common.pojo.PageResult;
  19 +import com.zteits.urbanops.framework.common.pojo.CommonResult;
  20 +import com.zteits.urbanops.framework.common.util.object.BeanUtils;
  21 +import static com.zteits.urbanops.framework.common.pojo.CommonResult.success;
  22 +
  23 +import com.zteits.urbanops.framework.excel.core.util.ExcelUtils;
  24 +
  25 +import com.zteits.urbanops.framework.apilog.core.annotation.ApiAccessLog;
  26 +import static com.zteits.urbanops.framework.apilog.core.enums.OperateTypeEnum.*;
  27 +
  28 +import com.zteits.urbanops.module.workorder.controller.admin.attachment.vo.*;
  29 +import com.zteits.urbanops.module.workorder.dal.dataobject.attachment.AttachmentDO;
  30 +import com.zteits.urbanops.module.workorder.service.attachment.AttachmentService;
  31 +
  32 +@Tag(name = "管理后台 - 工单附件信息")
  33 +@RestController
  34 +@RequestMapping("/workorder/attachment")
  35 +@Validated
  36 +public class AttachmentController {
  37 +
  38 + @Resource
  39 + private AttachmentService attachmentService;
  40 +
  41 + @PostMapping("/create")
  42 + @Operation(summary = "创建工单附件信息")
  43 + @PreAuthorize("@ss.hasPermission('workorder:attachment:create')")
  44 + public CommonResult<Long> createAttachment(@Valid @RequestBody AttachmentSaveReqVO createReqVO) {
  45 + return success(attachmentService.createAttachment(createReqVO));
  46 + }
  47 +
  48 + @PutMapping("/update")
  49 + @Operation(summary = "更新工单附件信息")
  50 + @PreAuthorize("@ss.hasPermission('workorder:attachment:update')")
  51 + public CommonResult<Boolean> updateAttachment(@Valid @RequestBody AttachmentSaveReqVO updateReqVO) {
  52 + attachmentService.updateAttachment(updateReqVO);
  53 + return success(true);
  54 + }
  55 +
  56 + @DeleteMapping("/delete")
  57 + @Operation(summary = "删除工单附件信息")
  58 + @Parameter(name = "id", description = "编号", required = true)
  59 + @PreAuthorize("@ss.hasPermission('workorder:attachment:delete')")
  60 + public CommonResult<Boolean> deleteAttachment(@RequestParam("id") Long id) {
  61 + attachmentService.deleteAttachment(id);
  62 + return success(true);
  63 + }
  64 +
  65 + @DeleteMapping("/delete-list")
  66 + @Parameter(name = "ids", description = "编号", required = true)
  67 + @Operation(summary = "批量删除工单附件信息")
  68 + @PreAuthorize("@ss.hasPermission('workorder:attachment:delete')")
  69 + public CommonResult<Boolean> deleteAttachmentList(@RequestParam("ids") List<Long> ids) {
  70 + attachmentService.deleteAttachmentListByIds(ids);
  71 + return success(true);
  72 + }
  73 +
  74 + @GetMapping("/get")
  75 + @Operation(summary = "获得工单附件信息")
  76 + @Parameter(name = "id", description = "编号", required = true, example = "1024")
  77 + @PreAuthorize("@ss.hasPermission('workorder:attachment:query')")
  78 + public CommonResult<AttachmentRespVO> getAttachment(@RequestParam("id") Long id) {
  79 + AttachmentDO attachment = attachmentService.getAttachment(id);
  80 + return success(BeanUtils.toBean(attachment, AttachmentRespVO.class));
  81 + }
  82 +
  83 + @GetMapping("/page")
  84 + @Operation(summary = "获得工单附件信息分页")
  85 + @PreAuthorize("@ss.hasPermission('workorder:attachment:query')")
  86 + public CommonResult<PageResult<AttachmentRespVO>> getAttachmentPage(@Valid AttachmentPageReqVO pageReqVO) {
  87 + PageResult<AttachmentDO> pageResult = attachmentService.getAttachmentPage(pageReqVO);
  88 + return success(BeanUtils.toBean(pageResult, AttachmentRespVO.class));
  89 + }
  90 +
  91 + @GetMapping("/export-excel")
  92 + @Operation(summary = "导出工单附件信息 Excel")
  93 + @PreAuthorize("@ss.hasPermission('workorder:attachment:export')")
  94 + @ApiAccessLog(operateType = EXPORT)
  95 + public void exportAttachmentExcel(@Valid AttachmentPageReqVO pageReqVO,
  96 + HttpServletResponse response) throws IOException {
  97 + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
  98 + List<AttachmentDO> list = attachmentService.getAttachmentPage(pageReqVO).getList();
  99 + // 导出 Excel
  100 + ExcelUtils.write(response, "工单附件信息.xls", "数据", AttachmentRespVO.class,
  101 + BeanUtils.toBean(list, AttachmentRespVO.class));
  102 + }
  103 +
  104 +}
0 \ No newline at end of file 105 \ No newline at end of file
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/admin/attachment/vo/AttachmentPageReqVO.java 0 → 100644
  1 +package com.zteits.urbanops.module.workorder.controller.admin.attachment.vo;
  2 +
  3 +import lombok.*;
  4 +import java.util.*;
  5 +import io.swagger.v3.oas.annotations.media.Schema;
  6 +import com.zteits.urbanops.framework.common.pojo.PageParam;
  7 +import org.springframework.format.annotation.DateTimeFormat;
  8 +import java.time.LocalDateTime;
  9 +
  10 +import static com.zteits.urbanops.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
  11 +
  12 +@Schema(description = "管理后台 - 工单附件信息分页 Request VO")
  13 +@Data
  14 +public class AttachmentPageReqVO extends PageParam {
  15 +
  16 + @Schema(description = "工单号")
  17 + private String orderNo;
  18 +
  19 + @Schema(description = "业务线:yl 园林,wy 物业,sz 市政 ")
  20 + private String busiLine;
  21 +
  22 + @Schema(description = "业务类型:01 问题图片,02 街道图片,03 选景图片", example = "1")
  23 + private String busiType;
  24 +
  25 + @Schema(description = "文件名称")
  26 + private String fileNames;
  27 +
  28 + @Schema(description = "路径", example = "https://www.iocoder.cn")
  29 + private String hostUrl;
  30 +
  31 + @Schema(description = "文件大小")
  32 + private String fileSize;
  33 +
  34 + @Schema(description = "文件类型", example = "2")
  35 + private String contentType;
  36 +
  37 + @Schema(description = "描述", example = "你说的对")
  38 + private String remark;
  39 +
  40 + @Schema(description = "创建时间")
  41 + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
  42 + private LocalDateTime[] createTime;
  43 +
  44 +}
0 \ No newline at end of file 45 \ No newline at end of file
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/admin/attachment/vo/AttachmentRespVO.java 0 → 100644
  1 +package com.zteits.urbanops.module.workorder.controller.admin.attachment.vo;
  2 +
  3 +import io.swagger.v3.oas.annotations.media.Schema;
  4 +import lombok.*;
  5 +import java.util.*;
  6 +import org.springframework.format.annotation.DateTimeFormat;
  7 +import java.time.LocalDateTime;
  8 +import cn.idev.excel.annotation.*;
  9 +
  10 +@Schema(description = "管理后台 - 工单附件信息 Response VO")
  11 +@Data
  12 +@ExcelIgnoreUnannotated
  13 +public class AttachmentRespVO {
  14 +
  15 + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "4728")
  16 + @ExcelProperty("ID")
  17 + private Long id;
  18 +
  19 + @Schema(description = "工单号", requiredMode = Schema.RequiredMode.REQUIRED)
  20 + @ExcelProperty("工单号")
  21 + private String orderNo;
  22 +
  23 + @Schema(description = "业务线:yl 园林,wy 物业,sz 市政 ", requiredMode = Schema.RequiredMode.REQUIRED)
  24 + @ExcelProperty("业务线:yl 园林,wy 物业,sz 市政 ")
  25 + private String busiLine;
  26 +
  27 + @Schema(description = "业务类型:01 问题图片,02 街道图片,03 选景图片", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
  28 + @ExcelProperty("业务类型:01 问题图片,02 街道图片,03 选景图片")
  29 + private String busiType;
  30 +
  31 + @Schema(description = "文件名称")
  32 + @ExcelProperty("文件名称")
  33 + private String fileNames;
  34 +
  35 + @Schema(description = "路径", example = "https://www.iocoder.cn")
  36 + @ExcelProperty("路径")
  37 + private String hostUrl;
  38 +
  39 + @Schema(description = "文件大小")
  40 + @ExcelProperty("文件大小")
  41 + private String fileSize;
  42 +
  43 + @Schema(description = "文件类型", example = "2")
  44 + @ExcelProperty("文件类型")
  45 + private String contentType;
  46 +
  47 + @Schema(description = "描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "你说的对")
  48 + @ExcelProperty("描述")
  49 + private String remark;
  50 +
  51 + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
  52 + @ExcelProperty("创建时间")
  53 + private LocalDateTime createTime;
  54 +
  55 +}
0 \ No newline at end of file 56 \ No newline at end of file
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/admin/attachment/vo/AttachmentSaveReqVO.java 0 → 100644
  1 +package com.zteits.urbanops.module.workorder.controller.admin.attachment.vo;
  2 +
  3 +import io.swagger.v3.oas.annotations.media.Schema;
  4 +import lombok.*;
  5 +import java.util.*;
  6 +import jakarta.validation.constraints.*;
  7 +
  8 +@Schema(description = "管理后台 - 工单附件信息新增/修改 Request VO")
  9 +@Data
  10 +public class AttachmentSaveReqVO {
  11 +
  12 + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "4728")
  13 + private Long id;
  14 +
  15 + @Schema(description = "工单号", requiredMode = Schema.RequiredMode.REQUIRED)
  16 + @NotEmpty(message = "工单号不能为空")
  17 + private String orderNo;
  18 +
  19 + @Schema(description = "业务线:yl 园林,wy 物业,sz 市政 ", requiredMode = Schema.RequiredMode.REQUIRED)
  20 + @NotEmpty(message = "业务线:yl 园林,wy 物业,sz 市政 不能为空")
  21 + private String busiLine;
  22 +
  23 + @Schema(description = "业务类型:01 问题图片,02 街道图片,03 选景图片", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
  24 + @NotEmpty(message = "业务类型:01 问题图片,02 街道图片,03 选景图片不能为空")
  25 + private String busiType;
  26 +
  27 + @Schema(description = "文件名称")
  28 + private String fileNames;
  29 +
  30 + @Schema(description = "路径", example = "https://www.iocoder.cn")
  31 + private String hostUrl;
  32 +
  33 + @Schema(description = "文件大小")
  34 + private String fileSize;
  35 +
  36 + @Schema(description = "文件类型", example = "2")
  37 + private String contentType;
  38 +
  39 + @Schema(description = "描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "你说的对")
  40 + @NotEmpty(message = "描述不能为空")
  41 + private String remark;
  42 +
  43 +}
0 \ No newline at end of file 44 \ No newline at end of file
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/admin/maininfo/MainInfoController.java 0 → 100644
  1 +package com.zteits.urbanops.module.workorder.controller.admin.maininfo;
  2 +
  3 +import org.springframework.web.bind.annotation.*;
  4 +import jakarta.annotation.Resource;
  5 +import org.springframework.validation.annotation.Validated;
  6 +import org.springframework.security.access.prepost.PreAuthorize;
  7 +import io.swagger.v3.oas.annotations.tags.Tag;
  8 +import io.swagger.v3.oas.annotations.Parameter;
  9 +import io.swagger.v3.oas.annotations.Operation;
  10 +
  11 +import jakarta.validation.constraints.*;
  12 +import jakarta.validation.*;
  13 +import jakarta.servlet.http.*;
  14 +import java.util.*;
  15 +import java.io.IOException;
  16 +
  17 +import com.zteits.urbanops.framework.common.pojo.PageParam;
  18 +import com.zteits.urbanops.framework.common.pojo.PageResult;
  19 +import com.zteits.urbanops.framework.common.pojo.CommonResult;
  20 +import com.zteits.urbanops.framework.common.util.object.BeanUtils;
  21 +import static com.zteits.urbanops.framework.common.pojo.CommonResult.success;
  22 +
  23 +import com.zteits.urbanops.framework.excel.core.util.ExcelUtils;
  24 +
  25 +import com.zteits.urbanops.framework.apilog.core.annotation.ApiAccessLog;
  26 +import static com.zteits.urbanops.framework.apilog.core.enums.OperateTypeEnum.*;
  27 +
  28 +import com.zteits.urbanops.module.workorder.controller.admin.maininfo.vo.*;
  29 +import com.zteits.urbanops.module.workorder.dal.dataobject.maininfo.MainInfoDO;
  30 +import com.zteits.urbanops.module.workorder.service.maininfo.MainInfoService;
  31 +
  32 +@Tag(name = "管理后台 - 工单信息")
  33 +@RestController
  34 +@RequestMapping("/workorder/main-info")
  35 +@Validated
  36 +public class MainInfoController {
  37 +
  38 + @Resource
  39 + private MainInfoService mainInfoService;
  40 +
  41 + @PostMapping("/create")
  42 + @Operation(summary = "创建工单信息")
  43 + @PreAuthorize("@ss.hasPermission('workorder:main-info:create')")
  44 + public CommonResult<Long> createMainInfo(@Valid @RequestBody MainInfoSaveReqVO createReqVO) {
  45 + return success(mainInfoService.createMainInfo(createReqVO));
  46 + }
  47 +
  48 + @PutMapping("/update")
  49 + @Operation(summary = "更新工单信息")
  50 + @PreAuthorize("@ss.hasPermission('workorder:main-info:update')")
  51 + public CommonResult<Boolean> updateMainInfo(@Valid @RequestBody MainInfoSaveReqVO updateReqVO) {
  52 + mainInfoService.updateMainInfo(updateReqVO);
  53 + return success(true);
  54 + }
  55 +
  56 + @DeleteMapping("/delete")
  57 + @Operation(summary = "删除工单信息")
  58 + @Parameter(name = "id", description = "编号", required = true)
  59 + @PreAuthorize("@ss.hasPermission('workorder:main-info:delete')")
  60 + public CommonResult<Boolean> deleteMainInfo(@RequestParam("id") Long id) {
  61 + mainInfoService.deleteMainInfo(id);
  62 + return success(true);
  63 + }
  64 +
  65 + @DeleteMapping("/delete-list")
  66 + @Parameter(name = "ids", description = "编号", required = true)
  67 + @Operation(summary = "批量删除工单信息")
  68 + @PreAuthorize("@ss.hasPermission('workorder:main-info:delete')")
  69 + public CommonResult<Boolean> deleteMainInfoList(@RequestParam("ids") List<Long> ids) {
  70 + mainInfoService.deleteMainInfoListByIds(ids);
  71 + return success(true);
  72 + }
  73 +
  74 + @GetMapping("/get")
  75 + @Operation(summary = "获得工单信息")
  76 + @Parameter(name = "id", description = "编号", required = true, example = "1024")
  77 + @PreAuthorize("@ss.hasPermission('workorder:main-info:query')")
  78 + public CommonResult<MainInfoRespVO> getMainInfo(@RequestParam("id") Long id) {
  79 + MainInfoDO mainInfo = mainInfoService.getMainInfo(id);
  80 + return success(BeanUtils.toBean(mainInfo, MainInfoRespVO.class));
  81 + }
  82 +
  83 + @GetMapping("/page")
  84 + @Operation(summary = "获得工单信息分页")
  85 + @PreAuthorize("@ss.hasPermission('workorder:main-info:query')")
  86 + public CommonResult<PageResult<MainInfoRespVO>> getMainInfoPage(@Valid MainInfoPageReqVO pageReqVO) {
  87 + PageResult<MainInfoDO> pageResult = mainInfoService.getMainInfoPage(pageReqVO);
  88 + return success(BeanUtils.toBean(pageResult, MainInfoRespVO.class));
  89 + }
  90 +
  91 + @GetMapping("/export-excel")
  92 + @Operation(summary = "导出工单信息 Excel")
  93 + @PreAuthorize("@ss.hasPermission('workorder:main-info:export')")
  94 + @ApiAccessLog(operateType = EXPORT)
  95 + public void exportMainInfoExcel(@Valid MainInfoPageReqVO pageReqVO,
  96 + HttpServletResponse response) throws IOException {
  97 + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
  98 + List<MainInfoDO> list = mainInfoService.getMainInfoPage(pageReqVO).getList();
  99 + // 导出 Excel
  100 + ExcelUtils.write(response, "工单信息.xls", "数据", MainInfoRespVO.class,
  101 + BeanUtils.toBean(list, MainInfoRespVO.class));
  102 + }
  103 +
  104 +}
0 \ No newline at end of file 105 \ No newline at end of file
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/admin/maininfo/vo/MainInfoPageReqVO.java 0 → 100644
  1 +package com.zteits.urbanops.module.workorder.controller.admin.maininfo.vo;
  2 +
  3 +import lombok.*;
  4 +import java.util.*;
  5 +import io.swagger.v3.oas.annotations.media.Schema;
  6 +import com.zteits.urbanops.framework.common.pojo.PageParam;
  7 +import java.math.BigDecimal;
  8 +import org.springframework.format.annotation.DateTimeFormat;
  9 +import java.time.LocalDateTime;
  10 +
  11 +import static com.zteits.urbanops.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
  12 +
  13 +@Schema(description = "管理后台 - 工单信息分页 Request VO")
  14 +@Data
  15 +public class MainInfoPageReqVO extends PageParam {
  16 +
  17 + @Schema(description = "业务线:yl 园林,wy 物业,sz 市政 ")
  18 + private String busiLine;
  19 +
  20 + @Schema(description = "工单号")
  21 + private String orderNo;
  22 +
  23 + @Schema(description = "工单名称", example = "张三")
  24 + private String orderName;
  25 +
  26 + @Schema(description = "来源ID", example = "1828")
  27 + private Integer sourceId;
  28 +
  29 + @Schema(description = "来源名称", example = "芋艿")
  30 + private String sourceName;
  31 +
  32 + @Schema(description = "道路ID", example = "21128")
  33 + private Long roadId;
  34 +
  35 + @Schema(description = "道路名称", example = "王五")
  36 + private String roadName;
  37 +
  38 + @Schema(description = "街道ID", example = "27852")
  39 + private String streetId;
  40 +
  41 + @Schema(description = "街道名称", example = "芋艿")
  42 + private String streetName;
  43 +
  44 + @Schema(description = "养护级别ID", example = "28278")
  45 + private Integer curingLevelId;
  46 +
  47 + @Schema(description = "养护级别", example = "王五")
  48 + private String curingLevelName;
  49 +
  50 + @Schema(description = "提交日期")
  51 + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
  52 + private LocalDateTime[] commitDate;
  53 +
  54 + @Schema(description = "紧急程度:1:特急;2:紧急;3:一般", example = "2")
  55 + private Integer pressingType;
  56 +
  57 + @Schema(description = "提交用户ID", example = "12757")
  58 + private Long userId;
  59 +
  60 + @Schema(description = "提交用户名称", example = "王五")
  61 + private String userName;
  62 +
  63 + @Schema(description = "部门id", example = "26936")
  64 + private Long companyId;
  65 +
  66 + @Schema(description = "经纬度类型: 1:国标; 2:百度;3:高德;4:腾讯", example = "2")
  67 + private Integer latLonType;
  68 +
  69 + @Schema(description = "经度")
  70 + private BigDecimal lat;
  71 +
  72 + @Schema(description = "维度")
  73 + private BigDecimal lon;
  74 +
  75 + @Schema(description = "经纬度地址")
  76 + private String lonLatAddress;
  77 +
  78 + @Schema(description = "三方工单ID")
  79 + private String thirdWorkNo;
  80 +
  81 + @Schema(description = "三方工单结果上报状态:1:待推送;2:推送成功;3:推送失败")
  82 + private Integer thirdPushState;
  83 +
  84 + @Schema(description = "业务状态", example = "1")
  85 + private String buzStatus;
  86 +
  87 + @Schema(description = "审批状态", example = "2")
  88 + private Integer status;
  89 +
  90 + @Schema(description = "流程实例的编号", example = "9184")
  91 + private String processInstanceId;
  92 +
  93 + @Schema(description = "工单描述", example = "你说的对")
  94 + private String remark;
  95 +
  96 + @Schema(description = "创建时间")
  97 + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
  98 + private LocalDateTime[] createTime;
  99 +
  100 +}
0 \ No newline at end of file 101 \ No newline at end of file
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/admin/maininfo/vo/MainInfoRespVO.java 0 → 100644
  1 +package com.zteits.urbanops.module.workorder.controller.admin.maininfo.vo;
  2 +
  3 +import io.swagger.v3.oas.annotations.media.Schema;
  4 +import lombok.*;
  5 +import java.util.*;
  6 +import java.math.BigDecimal;
  7 +import org.springframework.format.annotation.DateTimeFormat;
  8 +import java.time.LocalDateTime;
  9 +import cn.idev.excel.annotation.*;
  10 +
  11 +@Schema(description = "管理后台 - 工单信息 Response VO")
  12 +@Data
  13 +@ExcelIgnoreUnannotated
  14 +public class MainInfoRespVO {
  15 +
  16 + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "7114")
  17 + @ExcelProperty("ID")
  18 + private Long id;
  19 +
  20 + @Schema(description = "业务线:yl 园林,wy 物业,sz 市政 ", requiredMode = Schema.RequiredMode.REQUIRED)
  21 + @ExcelProperty("业务线:yl 园林,wy 物业,sz 市政 ")
  22 + private String busiLine;
  23 +
  24 + @Schema(description = "工单号", requiredMode = Schema.RequiredMode.REQUIRED)
  25 + @ExcelProperty("工单号")
  26 + private String orderNo;
  27 +
  28 + @Schema(description = "工单名称", example = "张三")
  29 + @ExcelProperty("工单名称")
  30 + private String orderName;
  31 +
  32 + @Schema(description = "来源ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1828")
  33 + @ExcelProperty("来源ID")
  34 + private Integer sourceId;
  35 +
  36 + @Schema(description = "来源名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
  37 + @ExcelProperty("来源名称")
  38 + private String sourceName;
  39 +
  40 + @Schema(description = "道路ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "21128")
  41 + @ExcelProperty("道路ID")
  42 + private Long roadId;
  43 +
  44 + @Schema(description = "道路名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
  45 + @ExcelProperty("道路名称")
  46 + private String roadName;
  47 +
  48 + @Schema(description = "街道ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "27852")
  49 + @ExcelProperty("街道ID")
  50 + private String streetId;
  51 +
  52 + @Schema(description = "街道名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
  53 + @ExcelProperty("街道名称")
  54 + private String streetName;
  55 +
  56 + @Schema(description = "养护级别ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "28278")
  57 + @ExcelProperty("养护级别ID")
  58 + private Integer curingLevelId;
  59 +
  60 + @Schema(description = "养护级别", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
  61 + @ExcelProperty("养护级别")
  62 + private String curingLevelName;
  63 +
  64 + @Schema(description = "提交日期", requiredMode = Schema.RequiredMode.REQUIRED)
  65 + @ExcelProperty("提交日期")
  66 + private LocalDateTime commitDate;
  67 +
  68 + @Schema(description = "紧急程度:1:特急;2:紧急;3:一般", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
  69 + @ExcelProperty("紧急程度:1:特急;2:紧急;3:一般")
  70 + private Integer pressingType;
  71 +
  72 + @Schema(description = "提交用户ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "12757")
  73 + @ExcelProperty("提交用户ID")
  74 + private Long userId;
  75 +
  76 + @Schema(description = "提交用户名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
  77 + @ExcelProperty("提交用户名称")
  78 + private String userName;
  79 +
  80 + @Schema(description = "部门id", requiredMode = Schema.RequiredMode.REQUIRED, example = "26936")
  81 + @ExcelProperty("部门id")
  82 + private Long companyId;
  83 +
  84 + @Schema(description = "经纬度类型: 1:国标; 2:百度;3:高德;4:腾讯", example = "2")
  85 + @ExcelProperty("经纬度类型: 1:国标; 2:百度;3:高德;4:腾讯")
  86 + private Integer latLonType;
  87 +
  88 + @Schema(description = "经度", requiredMode = Schema.RequiredMode.REQUIRED)
  89 + @ExcelProperty("经度")
  90 + private BigDecimal lat;
  91 +
  92 + @Schema(description = "维度", requiredMode = Schema.RequiredMode.REQUIRED)
  93 + @ExcelProperty("维度")
  94 + private BigDecimal lon;
  95 +
  96 + @Schema(description = "经纬度地址", requiredMode = Schema.RequiredMode.REQUIRED)
  97 + @ExcelProperty("经纬度地址")
  98 + private String lonLatAddress;
  99 +
  100 + @Schema(description = "三方工单ID")
  101 + @ExcelProperty("三方工单ID")
  102 + private String thirdWorkNo;
  103 +
  104 + @Schema(description = "三方工单结果上报状态:1:待推送;2:推送成功;3:推送失败")
  105 + @ExcelProperty("三方工单结果上报状态:1:待推送;2:推送成功;3:推送失败")
  106 + private Integer thirdPushState;
  107 +
  108 + @Schema(description = "业务状态", example = "1")
  109 + @ExcelProperty("业务状态")
  110 + private String buzStatus;
  111 +
  112 + @Schema(description = "审批状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
  113 + @ExcelProperty("审批状态")
  114 + private Integer status;
  115 +
  116 + @Schema(description = "流程实例的编号", example = "9184")
  117 + @ExcelProperty("流程实例的编号")
  118 + private String processInstanceId;
  119 +
  120 + @Schema(description = "工单描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "你说的对")
  121 + @ExcelProperty("工单描述")
  122 + private String remark;
  123 +
  124 + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
  125 + @ExcelProperty("创建时间")
  126 + private LocalDateTime createTime;
  127 +
  128 +}
0 \ No newline at end of file 129 \ No newline at end of file
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/admin/maininfo/vo/MainInfoSaveReqVO.java 0 → 100644
  1 +package com.zteits.urbanops.module.workorder.controller.admin.maininfo.vo;
  2 +
  3 +import io.swagger.v3.oas.annotations.media.Schema;
  4 +import lombok.*;
  5 +import java.util.*;
  6 +import jakarta.validation.constraints.*;
  7 +import java.math.BigDecimal;
  8 +import org.springframework.format.annotation.DateTimeFormat;
  9 +import java.time.LocalDateTime;
  10 +
  11 +@Schema(description = "管理后台 - 工单信息新增/修改 Request VO")
  12 +@Data
  13 +public class MainInfoSaveReqVO {
  14 +
  15 + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "7114")
  16 + private Long id;
  17 +
  18 + @Schema(description = "业务线:yl 园林,wy 物业,sz 市政 ", requiredMode = Schema.RequiredMode.REQUIRED)
  19 + @NotEmpty(message = "业务线:yl 园林,wy 物业,sz 市政 不能为空")
  20 + private String busiLine;
  21 +
  22 + @Schema(description = "工单号", requiredMode = Schema.RequiredMode.REQUIRED)
  23 + @NotEmpty(message = "工单号不能为空")
  24 + private String orderNo;
  25 +
  26 + @Schema(description = "工单名称", example = "张三")
  27 + private String orderName;
  28 +
  29 + @Schema(description = "来源ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1828")
  30 + @NotNull(message = "来源ID不能为空")
  31 + private Integer sourceId;
  32 +
  33 + @Schema(description = "来源名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
  34 + @NotEmpty(message = "来源名称不能为空")
  35 + private String sourceName;
  36 +
  37 + @Schema(description = "道路ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "21128")
  38 + @NotNull(message = "道路ID不能为空")
  39 + private Long roadId;
  40 +
  41 + @Schema(description = "道路名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
  42 + @NotEmpty(message = "道路名称不能为空")
  43 + private String roadName;
  44 +
  45 + @Schema(description = "街道ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "27852")
  46 + @NotEmpty(message = "街道ID不能为空")
  47 + private String streetId;
  48 +
  49 + @Schema(description = "街道名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
  50 + @NotEmpty(message = "街道名称不能为空")
  51 + private String streetName;
  52 +
  53 + @Schema(description = "养护级别ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "28278")
  54 + @NotNull(message = "养护级别ID不能为空")
  55 + private Integer curingLevelId;
  56 +
  57 + @Schema(description = "养护级别", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
  58 + @NotEmpty(message = "养护级别不能为空")
  59 + private String curingLevelName;
  60 +
  61 + @Schema(description = "提交日期", requiredMode = Schema.RequiredMode.REQUIRED)
  62 + @NotNull(message = "提交日期不能为空")
  63 + private LocalDateTime commitDate;
  64 +
  65 + @Schema(description = "紧急程度:1:特急;2:紧急;3:一般", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
  66 + @NotNull(message = "紧急程度:1:特急;2:紧急;3:一般不能为空")
  67 + private Integer pressingType;
  68 +
  69 + @Schema(description = "提交用户ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "12757")
  70 + @NotNull(message = "提交用户ID不能为空")
  71 + private Long userId;
  72 +
  73 + @Schema(description = "提交用户名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
  74 + @NotEmpty(message = "提交用户名称不能为空")
  75 + private String userName;
  76 +
  77 + @Schema(description = "部门id", requiredMode = Schema.RequiredMode.REQUIRED, example = "26936")
  78 + @NotNull(message = "部门id不能为空")
  79 + private Long companyId;
  80 +
  81 + @Schema(description = "经纬度类型: 1:国标; 2:百度;3:高德;4:腾讯", example = "2")
  82 + private Integer latLonType;
  83 +
  84 + @Schema(description = "经度", requiredMode = Schema.RequiredMode.REQUIRED)
  85 + @NotNull(message = "经度不能为空")
  86 + private BigDecimal lat;
  87 +
  88 + @Schema(description = "维度", requiredMode = Schema.RequiredMode.REQUIRED)
  89 + @NotNull(message = "维度不能为空")
  90 + private BigDecimal lon;
  91 +
  92 + @Schema(description = "经纬度地址", requiredMode = Schema.RequiredMode.REQUIRED)
  93 + @NotEmpty(message = "经纬度地址不能为空")
  94 + private String lonLatAddress;
  95 +
  96 + @Schema(description = "三方工单ID")
  97 + private String thirdWorkNo;
  98 +
  99 + @Schema(description = "三方工单结果上报状态:1:待推送;2:推送成功;3:推送失败")
  100 + private Integer thirdPushState;
  101 +
  102 + @Schema(description = "业务状态", example = "1")
  103 + private String buzStatus;
  104 +
  105 + @Schema(description = "审批状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
  106 + @NotNull(message = "审批状态不能为空")
  107 + private Integer status;
  108 +
  109 + @Schema(description = "流程实例的编号", example = "9184")
  110 + private String processInstanceId;
  111 +
  112 + @Schema(description = "工单描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "你说的对")
  113 + @NotEmpty(message = "工单描述不能为空")
  114 + private String remark;
  115 +
  116 +}
0 \ No newline at end of file 117 \ No newline at end of file
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/admin/materialdetail/MaterialDetailController.java 0 → 100644
  1 +package com.zteits.urbanops.module.workorder.controller.admin.materialdetail;
  2 +
  3 +import org.springframework.web.bind.annotation.*;
  4 +import jakarta.annotation.Resource;
  5 +import org.springframework.validation.annotation.Validated;
  6 +import org.springframework.security.access.prepost.PreAuthorize;
  7 +import io.swagger.v3.oas.annotations.tags.Tag;
  8 +import io.swagger.v3.oas.annotations.Parameter;
  9 +import io.swagger.v3.oas.annotations.Operation;
  10 +
  11 +import jakarta.validation.constraints.*;
  12 +import jakarta.validation.*;
  13 +import jakarta.servlet.http.*;
  14 +import java.util.*;
  15 +import java.io.IOException;
  16 +
  17 +import com.zteits.urbanops.framework.common.pojo.PageParam;
  18 +import com.zteits.urbanops.framework.common.pojo.PageResult;
  19 +import com.zteits.urbanops.framework.common.pojo.CommonResult;
  20 +import com.zteits.urbanops.framework.common.util.object.BeanUtils;
  21 +import static com.zteits.urbanops.framework.common.pojo.CommonResult.success;
  22 +
  23 +import com.zteits.urbanops.framework.excel.core.util.ExcelUtils;
  24 +
  25 +import com.zteits.urbanops.framework.apilog.core.annotation.ApiAccessLog;
  26 +import static com.zteits.urbanops.framework.apilog.core.enums.OperateTypeEnum.*;
  27 +
  28 +import com.zteits.urbanops.module.workorder.controller.admin.materialdetail.vo.*;
  29 +import com.zteits.urbanops.module.workorder.dal.dataobject.materialdetail.MaterialDetailDO;
  30 +import com.zteits.urbanops.module.workorder.service.materialdetail.MaterialDetailService;
  31 +
  32 +@Tag(name = "管理后台 - 工单耗材明细")
  33 +@RestController
  34 +@RequestMapping("/workorder/material-detail")
  35 +@Validated
  36 +public class MaterialDetailController {
  37 +
  38 + @Resource
  39 + private MaterialDetailService materialDetailService;
  40 +
  41 + @PostMapping("/create")
  42 + @Operation(summary = "创建工单耗材明细")
  43 + @PreAuthorize("@ss.hasPermission('workorder:material-detail:create')")
  44 + public CommonResult<Long> createMaterialDetail(@Valid @RequestBody MaterialDetailSaveReqVO createReqVO) {
  45 + return success(materialDetailService.createMaterialDetail(createReqVO));
  46 + }
  47 +
  48 + @PutMapping("/update")
  49 + @Operation(summary = "更新工单耗材明细")
  50 + @PreAuthorize("@ss.hasPermission('workorder:material-detail:update')")
  51 + public CommonResult<Boolean> updateMaterialDetail(@Valid @RequestBody MaterialDetailSaveReqVO updateReqVO) {
  52 + materialDetailService.updateMaterialDetail(updateReqVO);
  53 + return success(true);
  54 + }
  55 +
  56 + @DeleteMapping("/delete")
  57 + @Operation(summary = "删除工单耗材明细")
  58 + @Parameter(name = "id", description = "编号", required = true)
  59 + @PreAuthorize("@ss.hasPermission('workorder:material-detail:delete')")
  60 + public CommonResult<Boolean> deleteMaterialDetail(@RequestParam("id") Long id) {
  61 + materialDetailService.deleteMaterialDetail(id);
  62 + return success(true);
  63 + }
  64 +
  65 + @DeleteMapping("/delete-list")
  66 + @Parameter(name = "ids", description = "编号", required = true)
  67 + @Operation(summary = "批量删除工单耗材明细")
  68 + @PreAuthorize("@ss.hasPermission('workorder:material-detail:delete')")
  69 + public CommonResult<Boolean> deleteMaterialDetailList(@RequestParam("ids") List<Long> ids) {
  70 + materialDetailService.deleteMaterialDetailListByIds(ids);
  71 + return success(true);
  72 + }
  73 +
  74 + @GetMapping("/get")
  75 + @Operation(summary = "获得工单耗材明细")
  76 + @Parameter(name = "id", description = "编号", required = true, example = "1024")
  77 + @PreAuthorize("@ss.hasPermission('workorder:material-detail:query')")
  78 + public CommonResult<MaterialDetailRespVO> getMaterialDetail(@RequestParam("id") Long id) {
  79 + MaterialDetailDO materialDetail = materialDetailService.getMaterialDetail(id);
  80 + return success(BeanUtils.toBean(materialDetail, MaterialDetailRespVO.class));
  81 + }
  82 +
  83 + @GetMapping("/page")
  84 + @Operation(summary = "获得工单耗材明细分页")
  85 + @PreAuthorize("@ss.hasPermission('workorder:material-detail:query')")
  86 + public CommonResult<PageResult<MaterialDetailRespVO>> getMaterialDetailPage(@Valid MaterialDetailPageReqVO pageReqVO) {
  87 + PageResult<MaterialDetailDO> pageResult = materialDetailService.getMaterialDetailPage(pageReqVO);
  88 + return success(BeanUtils.toBean(pageResult, MaterialDetailRespVO.class));
  89 + }
  90 +
  91 + @GetMapping("/export-excel")
  92 + @Operation(summary = "导出工单耗材明细 Excel")
  93 + @PreAuthorize("@ss.hasPermission('workorder:material-detail:export')")
  94 + @ApiAccessLog(operateType = EXPORT)
  95 + public void exportMaterialDetailExcel(@Valid MaterialDetailPageReqVO pageReqVO,
  96 + HttpServletResponse response) throws IOException {
  97 + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
  98 + List<MaterialDetailDO> list = materialDetailService.getMaterialDetailPage(pageReqVO).getList();
  99 + // 导出 Excel
  100 + ExcelUtils.write(response, "工单耗材明细.xls", "数据", MaterialDetailRespVO.class,
  101 + BeanUtils.toBean(list, MaterialDetailRespVO.class));
  102 + }
  103 +
  104 +}
0 \ No newline at end of file 105 \ No newline at end of file
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/admin/materialdetail/vo/MaterialDetailPageReqVO.java 0 → 100644
  1 +package com.zteits.urbanops.module.workorder.controller.admin.materialdetail.vo;
  2 +
  3 +import lombok.*;
  4 +import java.util.*;
  5 +import io.swagger.v3.oas.annotations.media.Schema;
  6 +import com.zteits.urbanops.framework.common.pojo.PageParam;
  7 +import org.springframework.format.annotation.DateTimeFormat;
  8 +import java.time.LocalDateTime;
  9 +
  10 +import static com.zteits.urbanops.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
  11 +
  12 +@Schema(description = "管理后台 - 工单耗材明细分页 Request VO")
  13 +@Data
  14 +public class MaterialDetailPageReqVO extends PageParam {
  15 +
  16 + @Schema(description = "工单号")
  17 + private String orderNo;
  18 +
  19 + @Schema(description = "提交用户ID", example = "10300")
  20 + private Long userId;
  21 +
  22 + @Schema(description = "提交用户名称", example = "赵六")
  23 + private String userName;
  24 +
  25 + @Schema(description = "种类ID", example = "27821")
  26 + private Long classifyId;
  27 +
  28 + @Schema(description = "种类名称", example = "张三")
  29 + private String classifyName;
  30 +
  31 + @Schema(description = "类别ID", example = "23969")
  32 + private Long typeId;
  33 +
  34 + @Schema(description = "类别名称", example = "李四")
  35 + private String typeName;
  36 +
  37 + @Schema(description = "类别明细ID", example = "11240")
  38 + private Long typeDetailId;
  39 +
  40 + @Schema(description = "类别明细名称", example = "赵六")
  41 + private String typeDetailName;
  42 +
  43 + @Schema(description = "使用数量", example = "20141")
  44 + private Double userCount;
  45 +
  46 + @Schema(description = "单位", example = "李四")
  47 + private String unitName;
  48 +
  49 + @Schema(description = "状态(0正常 1停用)", example = "1")
  50 + private String status;
  51 +
  52 + @Schema(description = "描述", example = "你说的对")
  53 + private String remark;
  54 +
  55 + @Schema(description = "创建时间")
  56 + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
  57 + private LocalDateTime[] createTime;
  58 +
  59 +}
0 \ No newline at end of file 60 \ No newline at end of file
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/admin/materialdetail/vo/MaterialDetailRespVO.java 0 → 100644
  1 +package com.zteits.urbanops.module.workorder.controller.admin.materialdetail.vo;
  2 +
  3 +import io.swagger.v3.oas.annotations.media.Schema;
  4 +import lombok.*;
  5 +import java.util.*;
  6 +import org.springframework.format.annotation.DateTimeFormat;
  7 +import java.time.LocalDateTime;
  8 +import cn.idev.excel.annotation.*;
  9 +
  10 +@Schema(description = "管理后台 - 工单耗材明细 Response VO")
  11 +@Data
  12 +@ExcelIgnoreUnannotated
  13 +public class MaterialDetailRespVO {
  14 +
  15 + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "234")
  16 + @ExcelProperty("ID")
  17 + private Long id;
  18 +
  19 + @Schema(description = "工单号", requiredMode = Schema.RequiredMode.REQUIRED)
  20 + @ExcelProperty("工单号")
  21 + private String orderNo;
  22 +
  23 + @Schema(description = "提交用户ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "10300")
  24 + @ExcelProperty("提交用户ID")
  25 + private Long userId;
  26 +
  27 + @Schema(description = "提交用户名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
  28 + @ExcelProperty("提交用户名称")
  29 + private String userName;
  30 +
  31 + @Schema(description = "种类ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "27821")
  32 + @ExcelProperty("种类ID")
  33 + private Long classifyId;
  34 +
  35 + @Schema(description = "种类名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
  36 + @ExcelProperty("种类名称")
  37 + private String classifyName;
  38 +
  39 + @Schema(description = "类别ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "23969")
  40 + @ExcelProperty("类别ID")
  41 + private Long typeId;
  42 +
  43 + @Schema(description = "类别名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四")
  44 + @ExcelProperty("类别名称")
  45 + private String typeName;
  46 +
  47 + @Schema(description = "类别明细ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "11240")
  48 + @ExcelProperty("类别明细ID")
  49 + private Long typeDetailId;
  50 +
  51 + @Schema(description = "类别明细名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
  52 + @ExcelProperty("类别明细名称")
  53 + private String typeDetailName;
  54 +
  55 + @Schema(description = "使用数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "20141")
  56 + @ExcelProperty("使用数量")
  57 + private Double userCount;
  58 +
  59 + @Schema(description = "单位", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四")
  60 + @ExcelProperty("单位")
  61 + private String unitName;
  62 +
  63 + @Schema(description = "状态(0正常 1停用)", example = "1")
  64 + @ExcelProperty("状态(0正常 1停用)")
  65 + private String status;
  66 +
  67 + @Schema(description = "描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "你说的对")
  68 + @ExcelProperty("描述")
  69 + private String remark;
  70 +
  71 + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
  72 + @ExcelProperty("创建时间")
  73 + private LocalDateTime createTime;
  74 +
  75 +}
0 \ No newline at end of file 76 \ No newline at end of file
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/admin/materialdetail/vo/MaterialDetailSaveReqVO.java 0 → 100644
  1 +package com.zteits.urbanops.module.workorder.controller.admin.materialdetail.vo;
  2 +
  3 +import io.swagger.v3.oas.annotations.media.Schema;
  4 +import lombok.*;
  5 +import java.util.*;
  6 +import jakarta.validation.constraints.*;
  7 +
  8 +@Schema(description = "管理后台 - 工单耗材明细新增/修改 Request VO")
  9 +@Data
  10 +public class MaterialDetailSaveReqVO {
  11 +
  12 + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "234")
  13 + private Long id;
  14 +
  15 + @Schema(description = "工单号", requiredMode = Schema.RequiredMode.REQUIRED)
  16 + @NotEmpty(message = "工单号不能为空")
  17 + private String orderNo;
  18 +
  19 + @Schema(description = "提交用户ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "10300")
  20 + @NotNull(message = "提交用户ID不能为空")
  21 + private Long userId;
  22 +
  23 + @Schema(description = "提交用户名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
  24 + @NotEmpty(message = "提交用户名称不能为空")
  25 + private String userName;
  26 +
  27 + @Schema(description = "种类ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "27821")
  28 + @NotNull(message = "种类ID不能为空")
  29 + private Long classifyId;
  30 +
  31 + @Schema(description = "种类名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
  32 + @NotEmpty(message = "种类名称不能为空")
  33 + private String classifyName;
  34 +
  35 + @Schema(description = "类别ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "23969")
  36 + @NotNull(message = "类别ID不能为空")
  37 + private Long typeId;
  38 +
  39 + @Schema(description = "类别名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四")
  40 + @NotEmpty(message = "类别名称不能为空")
  41 + private String typeName;
  42 +
  43 + @Schema(description = "类别明细ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "11240")
  44 + @NotNull(message = "类别明细ID不能为空")
  45 + private Long typeDetailId;
  46 +
  47 + @Schema(description = "类别明细名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
  48 + @NotEmpty(message = "类别明细名称不能为空")
  49 + private String typeDetailName;
  50 +
  51 + @Schema(description = "使用数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "20141")
  52 + @NotNull(message = "使用数量不能为空")
  53 + private Double userCount;
  54 +
  55 + @Schema(description = "单位", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四")
  56 + @NotEmpty(message = "单位不能为空")
  57 + private String unitName;
  58 +
  59 + @Schema(description = "状态(0正常 1停用)", example = "1")
  60 + private String status;
  61 +
  62 + @Schema(description = "描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "你说的对")
  63 + @NotEmpty(message = "描述不能为空")
  64 + private String remark;
  65 +
  66 +}
0 \ No newline at end of file 67 \ No newline at end of file
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/dal/dataobject/attachment/AttachmentDO.java 0 → 100644
  1 +package com.zteits.urbanops.module.workorder.dal.dataobject.attachment;
  2 +
  3 +import lombok.*;
  4 +import java.util.*;
  5 +import java.time.LocalDateTime;
  6 +import java.time.LocalDateTime;
  7 +import com.baomidou.mybatisplus.annotation.*;
  8 +import com.zteits.urbanops.framework.mybatis.core.dataobject.BaseDO;
  9 +
  10 +/**
  11 + * 工单附件信息 DO
  12 + *
  13 + * @author 超级管理员
  14 + */
  15 +@TableName("workorder_attachment")
  16 +@KeySequence("workorder_attachment_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
  17 +@Data
  18 +@EqualsAndHashCode(callSuper = true)
  19 +@ToString(callSuper = true)
  20 +@Builder
  21 +@NoArgsConstructor
  22 +@AllArgsConstructor
  23 +public class AttachmentDO extends BaseDO {
  24 +
  25 + /**
  26 + * ID
  27 + */
  28 + @TableId
  29 + private Long id;
  30 + /**
  31 + * 工单号
  32 + */
  33 + private String orderNo;
  34 + /**
  35 + * 业务线:yl 园林,wy 物业,sz 市政
  36 + */
  37 + private String busiLine;
  38 + /**
  39 + * 业务类型:01 问题图片,02 街道图片,03 选景图片
  40 + */
  41 + private String busiType;
  42 + /**
  43 + * 文件名称
  44 + */
  45 + private String fileNames;
  46 + /**
  47 + * 路径
  48 + */
  49 + private String hostUrl;
  50 + /**
  51 + * 文件大小
  52 + */
  53 + private String fileSize;
  54 + /**
  55 + * 文件类型
  56 + */
  57 + private String contentType;
  58 + /**
  59 + * 描述
  60 + */
  61 + private String remark;
  62 +
  63 +
  64 +}
0 \ No newline at end of file 65 \ No newline at end of file
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/dal/dataobject/maininfo/MainInfoDO.java 0 → 100644
  1 +package com.zteits.urbanops.module.workorder.dal.dataobject.maininfo;
  2 +
  3 +import lombok.*;
  4 +import java.util.*;
  5 +import java.time.LocalDateTime;
  6 +import java.math.BigDecimal;
  7 +import java.math.BigDecimal;
  8 +import java.time.LocalDateTime;
  9 +import java.time.LocalDateTime;
  10 +import com.baomidou.mybatisplus.annotation.*;
  11 +import com.zteits.urbanops.framework.mybatis.core.dataobject.BaseDO;
  12 +
  13 +/**
  14 + * 工单信息 DO
  15 + *
  16 + * @author 超级管理员
  17 + */
  18 +@TableName("workorder_main_info")
  19 +@KeySequence("workorder_main_info_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
  20 +@Data
  21 +@EqualsAndHashCode(callSuper = true)
  22 +@ToString(callSuper = true)
  23 +@Builder
  24 +@NoArgsConstructor
  25 +@AllArgsConstructor
  26 +public class MainInfoDO extends BaseDO {
  27 +
  28 + /**
  29 + * ID
  30 + */
  31 + @TableId
  32 + private Long id;
  33 + /**
  34 + * 业务线:yl 园林,wy 物业,sz 市政
  35 + */
  36 + private String busiLine;
  37 + /**
  38 + * 工单号
  39 + */
  40 + private String orderNo;
  41 + /**
  42 + * 工单名称
  43 + */
  44 + private String orderName;
  45 + /**
  46 + * 来源ID
  47 + */
  48 + private Integer sourceId;
  49 + /**
  50 + * 来源名称
  51 + */
  52 + private String sourceName;
  53 + /**
  54 + * 道路ID
  55 + */
  56 + private Long roadId;
  57 + /**
  58 + * 道路名称
  59 + */
  60 + private String roadName;
  61 + /**
  62 + * 街道ID
  63 + */
  64 + private String streetId;
  65 + /**
  66 + * 街道名称
  67 + */
  68 + private String streetName;
  69 + /**
  70 + * 养护级别ID
  71 + */
  72 + private Integer curingLevelId;
  73 + /**
  74 + * 养护级别
  75 + */
  76 + private String curingLevelName;
  77 + /**
  78 + * 提交日期
  79 + */
  80 + private LocalDateTime commitDate;
  81 + /**
  82 + * 紧急程度:1:特急;2:紧急;3:一般
  83 + */
  84 + private Integer pressingType;
  85 + /**
  86 + * 提交用户ID
  87 + */
  88 + private Long userId;
  89 + /**
  90 + * 提交用户名称
  91 + */
  92 + private String userName;
  93 + /**
  94 + * 部门id
  95 + */
  96 + private Long companyId;
  97 + /**
  98 + * 经纬度类型: 1:国标; 2:百度;3:高德;4:腾讯
  99 + */
  100 + private Integer latLonType;
  101 + /**
  102 + * 经度
  103 + */
  104 + private BigDecimal lat;
  105 + /**
  106 + * 维度
  107 + */
  108 + private BigDecimal lon;
  109 + /**
  110 + * 经纬度地址
  111 + */
  112 + private String lonLatAddress;
  113 + /**
  114 + * 三方工单ID
  115 + */
  116 + private String thirdWorkNo;
  117 + /**
  118 + * 三方工单结果上报状态:1:待推送;2:推送成功;3:推送失败
  119 + */
  120 + private Integer thirdPushState;
  121 + /**
  122 + * 业务状态
  123 + */
  124 + private String buzStatus;
  125 + /**
  126 + * 审批状态
  127 + */
  128 + private Integer status;
  129 + /**
  130 + * 流程实例的编号
  131 + */
  132 + private String processInstanceId;
  133 + /**
  134 + * 工单描述
  135 + */
  136 + private String remark;
  137 +
  138 +
  139 +}
0 \ No newline at end of file 140 \ No newline at end of file
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/dal/dataobject/materialdetail/MaterialDetailDO.java 0 → 100644
  1 +package com.zteits.urbanops.module.workorder.dal.dataobject.materialdetail;
  2 +
  3 +import lombok.*;
  4 +import java.util.*;
  5 +import java.time.LocalDateTime;
  6 +import java.time.LocalDateTime;
  7 +import com.baomidou.mybatisplus.annotation.*;
  8 +import com.zteits.urbanops.framework.mybatis.core.dataobject.BaseDO;
  9 +
  10 +/**
  11 + * 工单耗材明细 DO
  12 + *
  13 + * @author 超级管理员
  14 + */
  15 +@TableName("workorder_material_detail")
  16 +@KeySequence("workorder_material_detail_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
  17 +@Data
  18 +@EqualsAndHashCode(callSuper = true)
  19 +@ToString(callSuper = true)
  20 +@Builder
  21 +@NoArgsConstructor
  22 +@AllArgsConstructor
  23 +public class MaterialDetailDO extends BaseDO {
  24 +
  25 + /**
  26 + * ID
  27 + */
  28 + @TableId
  29 + private Long id;
  30 + /**
  31 + * 工单号
  32 + */
  33 + private String orderNo;
  34 + /**
  35 + * 提交用户ID
  36 + */
  37 + private Long userId;
  38 + /**
  39 + * 提交用户名称
  40 + */
  41 + private String userName;
  42 + /**
  43 + * 种类ID
  44 + */
  45 + private Long classifyId;
  46 + /**
  47 + * 种类名称
  48 + */
  49 + private String classifyName;
  50 + /**
  51 + * 类别ID
  52 + */
  53 + private Long typeId;
  54 + /**
  55 + * 类别名称
  56 + */
  57 + private String typeName;
  58 + /**
  59 + * 类别明细ID
  60 + */
  61 + private Long typeDetailId;
  62 + /**
  63 + * 类别明细名称
  64 + */
  65 + private String typeDetailName;
  66 + /**
  67 + * 使用数量
  68 + */
  69 + private Double userCount;
  70 + /**
  71 + * 单位
  72 + */
  73 + private String unitName;
  74 + /**
  75 + * 状态(0正常 1停用)
  76 + */
  77 + private String status;
  78 + /**
  79 + * 描述
  80 + */
  81 + private String remark;
  82 +
  83 +
  84 +}
0 \ No newline at end of file 85 \ No newline at end of file
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/dal/mysql/attachment/AttachmentMapper.java 0 → 100644
  1 +package com.zteits.urbanops.module.workorder.dal.mysql.attachment;
  2 +
  3 +import java.util.*;
  4 +
  5 +import com.zteits.urbanops.framework.common.pojo.PageResult;
  6 +import com.zteits.urbanops.framework.mybatis.core.query.LambdaQueryWrapperX;
  7 +import com.zteits.urbanops.framework.mybatis.core.mapper.BaseMapperX;
  8 +import com.zteits.urbanops.module.workorder.dal.dataobject.attachment.AttachmentDO;
  9 +import org.apache.ibatis.annotations.Mapper;
  10 +import com.zteits.urbanops.module.workorder.controller.admin.attachment.vo.*;
  11 +
  12 +/**
  13 + * 工单附件信息 Mapper
  14 + *
  15 + * @author 超级管理员
  16 + */
  17 +@Mapper
  18 +public interface AttachmentMapper extends BaseMapperX<AttachmentDO> {
  19 +
  20 + default PageResult<AttachmentDO> selectPage(AttachmentPageReqVO reqVO) {
  21 + return selectPage(reqVO, new LambdaQueryWrapperX<AttachmentDO>()
  22 + .eqIfPresent(AttachmentDO::getOrderNo, reqVO.getOrderNo())
  23 + .eqIfPresent(AttachmentDO::getBusiLine, reqVO.getBusiLine())
  24 + .eqIfPresent(AttachmentDO::getBusiType, reqVO.getBusiType())
  25 + .eqIfPresent(AttachmentDO::getFileNames, reqVO.getFileNames())
  26 + .eqIfPresent(AttachmentDO::getHostUrl, reqVO.getHostUrl())
  27 + .eqIfPresent(AttachmentDO::getFileSize, reqVO.getFileSize())
  28 + .eqIfPresent(AttachmentDO::getContentType, reqVO.getContentType())
  29 + .eqIfPresent(AttachmentDO::getRemark, reqVO.getRemark())
  30 + .betweenIfPresent(AttachmentDO::getCreateTime, reqVO.getCreateTime())
  31 + .orderByDesc(AttachmentDO::getId));
  32 + }
  33 +
  34 +}
0 \ No newline at end of file 35 \ No newline at end of file
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/dal/mysql/maininfo/MainInfoMapper.java 0 → 100644
  1 +package com.zteits.urbanops.module.workorder.dal.mysql.maininfo;
  2 +
  3 +import java.util.*;
  4 +
  5 +import com.zteits.urbanops.framework.common.pojo.PageResult;
  6 +import com.zteits.urbanops.framework.mybatis.core.query.LambdaQueryWrapperX;
  7 +import com.zteits.urbanops.framework.mybatis.core.mapper.BaseMapperX;
  8 +import com.zteits.urbanops.module.workorder.dal.dataobject.maininfo.MainInfoDO;
  9 +import org.apache.ibatis.annotations.Mapper;
  10 +import com.zteits.urbanops.module.workorder.controller.admin.maininfo.vo.*;
  11 +
  12 +/**
  13 + * 工单信息 Mapper
  14 + *
  15 + * @author 超级管理员
  16 + */
  17 +@Mapper
  18 +public interface MainInfoMapper extends BaseMapperX<MainInfoDO> {
  19 +
  20 + default PageResult<MainInfoDO> selectPage(MainInfoPageReqVO reqVO) {
  21 + return selectPage(reqVO, new LambdaQueryWrapperX<MainInfoDO>()
  22 + .eqIfPresent(MainInfoDO::getBusiLine, reqVO.getBusiLine())
  23 + .eqIfPresent(MainInfoDO::getOrderNo, reqVO.getOrderNo())
  24 + .likeIfPresent(MainInfoDO::getOrderName, reqVO.getOrderName())
  25 + .eqIfPresent(MainInfoDO::getSourceId, reqVO.getSourceId())
  26 + .likeIfPresent(MainInfoDO::getSourceName, reqVO.getSourceName())
  27 + .eqIfPresent(MainInfoDO::getRoadId, reqVO.getRoadId())
  28 + .likeIfPresent(MainInfoDO::getRoadName, reqVO.getRoadName())
  29 + .eqIfPresent(MainInfoDO::getStreetId, reqVO.getStreetId())
  30 + .likeIfPresent(MainInfoDO::getStreetName, reqVO.getStreetName())
  31 + .eqIfPresent(MainInfoDO::getCuringLevelId, reqVO.getCuringLevelId())
  32 + .likeIfPresent(MainInfoDO::getCuringLevelName, reqVO.getCuringLevelName())
  33 + .betweenIfPresent(MainInfoDO::getCommitDate, reqVO.getCommitDate())
  34 + .eqIfPresent(MainInfoDO::getPressingType, reqVO.getPressingType())
  35 + .eqIfPresent(MainInfoDO::getUserId, reqVO.getUserId())
  36 + .likeIfPresent(MainInfoDO::getUserName, reqVO.getUserName())
  37 + .eqIfPresent(MainInfoDO::getCompanyId, reqVO.getCompanyId())
  38 + .eqIfPresent(MainInfoDO::getLatLonType, reqVO.getLatLonType())
  39 + .eqIfPresent(MainInfoDO::getLat, reqVO.getLat())
  40 + .eqIfPresent(MainInfoDO::getLon, reqVO.getLon())
  41 + .eqIfPresent(MainInfoDO::getLonLatAddress, reqVO.getLonLatAddress())
  42 + .eqIfPresent(MainInfoDO::getThirdWorkNo, reqVO.getThirdWorkNo())
  43 + .eqIfPresent(MainInfoDO::getThirdPushState, reqVO.getThirdPushState())
  44 + .eqIfPresent(MainInfoDO::getBuzStatus, reqVO.getBuzStatus())
  45 + .eqIfPresent(MainInfoDO::getStatus, reqVO.getStatus())
  46 + .eqIfPresent(MainInfoDO::getProcessInstanceId, reqVO.getProcessInstanceId())
  47 + .eqIfPresent(MainInfoDO::getRemark, reqVO.getRemark())
  48 + .betweenIfPresent(MainInfoDO::getCreateTime, reqVO.getCreateTime())
  49 + .orderByDesc(MainInfoDO::getId));
  50 + }
  51 +
  52 +}
0 \ No newline at end of file 53 \ No newline at end of file
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/dal/mysql/materialdetail/MaterialDetailMapper.java 0 → 100644
  1 +package com.zteits.urbanops.module.workorder.dal.mysql.materialdetail;
  2 +
  3 +import java.util.*;
  4 +
  5 +import com.zteits.urbanops.framework.common.pojo.PageResult;
  6 +import com.zteits.urbanops.framework.mybatis.core.query.LambdaQueryWrapperX;
  7 +import com.zteits.urbanops.framework.mybatis.core.mapper.BaseMapperX;
  8 +import com.zteits.urbanops.module.workorder.dal.dataobject.materialdetail.MaterialDetailDO;
  9 +import org.apache.ibatis.annotations.Mapper;
  10 +import com.zteits.urbanops.module.workorder.controller.admin.materialdetail.vo.*;
  11 +
  12 +/**
  13 + * 工单耗材明细 Mapper
  14 + *
  15 + * @author 超级管理员
  16 + */
  17 +@Mapper
  18 +public interface MaterialDetailMapper extends BaseMapperX<MaterialDetailDO> {
  19 +
  20 + default PageResult<MaterialDetailDO> selectPage(MaterialDetailPageReqVO reqVO) {
  21 + return selectPage(reqVO, new LambdaQueryWrapperX<MaterialDetailDO>()
  22 + .eqIfPresent(MaterialDetailDO::getOrderNo, reqVO.getOrderNo())
  23 + .eqIfPresent(MaterialDetailDO::getUserId, reqVO.getUserId())
  24 + .likeIfPresent(MaterialDetailDO::getUserName, reqVO.getUserName())
  25 + .eqIfPresent(MaterialDetailDO::getClassifyId, reqVO.getClassifyId())
  26 + .likeIfPresent(MaterialDetailDO::getClassifyName, reqVO.getClassifyName())
  27 + .eqIfPresent(MaterialDetailDO::getTypeId, reqVO.getTypeId())
  28 + .likeIfPresent(MaterialDetailDO::getTypeName, reqVO.getTypeName())
  29 + .eqIfPresent(MaterialDetailDO::getTypeDetailId, reqVO.getTypeDetailId())
  30 + .likeIfPresent(MaterialDetailDO::getTypeDetailName, reqVO.getTypeDetailName())
  31 + .eqIfPresent(MaterialDetailDO::getUserCount, reqVO.getUserCount())
  32 + .likeIfPresent(MaterialDetailDO::getUnitName, reqVO.getUnitName())
  33 + .eqIfPresent(MaterialDetailDO::getStatus, reqVO.getStatus())
  34 + .eqIfPresent(MaterialDetailDO::getRemark, reqVO.getRemark())
  35 + .betweenIfPresent(MaterialDetailDO::getCreateTime, reqVO.getCreateTime())
  36 + .orderByDesc(MaterialDetailDO::getId));
  37 + }
  38 +
  39 +}
0 \ No newline at end of file 40 \ No newline at end of file
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/enums/ErrorCodeConstants.java 0 → 100644
  1 +package com.zteits.urbanops.module.workorder.enums;
  2 +
  3 +
  4 +import com.zteits.urbanops.framework.common.exception.ErrorCode;
  5 +
  6 +/**
  7 + * workorder 错误码枚举类
  8 + * <p>
  9 + * workorder 系统,使用 1-100-000-000 段
  10 + */
  11 +public interface ErrorCodeConstants {
  12 +
  13 + // ========== server 工单 1-100-001-000 ==========
  14 + ErrorCode MAIN_INFO_NOT_EXISTS = new ErrorCode(1-100-001-000, "工单信息不存在");
  15 +
  16 + ErrorCode ATTACHMENT_NOT_EXISTS = new ErrorCode(1-100-002-000, "工单附件信息不存在");
  17 +
  18 + ErrorCode MATERIAL_DETAIL_NOT_EXISTS = new ErrorCode(1-100-003-000, "工单耗材明细不存在");
  19 +}
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/attachment/AttachmentService.java 0 → 100644
  1 +package com.zteits.urbanops.module.workorder.service.attachment;
  2 +
  3 +import java.util.*;
  4 +import jakarta.validation.*;
  5 +import com.zteits.urbanops.module.workorder.controller.admin.attachment.vo.*;
  6 +import com.zteits.urbanops.module.workorder.dal.dataobject.attachment.AttachmentDO;
  7 +import com.zteits.urbanops.framework.common.pojo.PageResult;
  8 +import com.zteits.urbanops.framework.common.pojo.PageParam;
  9 +
  10 +/**
  11 + * 工单附件信息 Service 接口
  12 + *
  13 + * @author 超级管理员
  14 + */
  15 +public interface AttachmentService {
  16 +
  17 + /**
  18 + * 创建工单附件信息
  19 + *
  20 + * @param createReqVO 创建信息
  21 + * @return 编号
  22 + */
  23 + Long createAttachment(@Valid AttachmentSaveReqVO createReqVO);
  24 +
  25 + /**
  26 + * 更新工单附件信息
  27 + *
  28 + * @param updateReqVO 更新信息
  29 + */
  30 + void updateAttachment(@Valid AttachmentSaveReqVO updateReqVO);
  31 +
  32 + /**
  33 + * 删除工单附件信息
  34 + *
  35 + * @param id 编号
  36 + */
  37 + void deleteAttachment(Long id);
  38 +
  39 + /**
  40 + * 批量删除工单附件信息
  41 + *
  42 + * @param ids 编号
  43 + */
  44 + void deleteAttachmentListByIds(List<Long> ids);
  45 +
  46 + /**
  47 + * 获得工单附件信息
  48 + *
  49 + * @param id 编号
  50 + * @return 工单附件信息
  51 + */
  52 + AttachmentDO getAttachment(Long id);
  53 +
  54 + /**
  55 + * 获得工单附件信息分页
  56 + *
  57 + * @param pageReqVO 分页查询
  58 + * @return 工单附件信息分页
  59 + */
  60 + PageResult<AttachmentDO> getAttachmentPage(AttachmentPageReqVO pageReqVO);
  61 +
  62 +}
0 \ No newline at end of file 63 \ No newline at end of file
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/attachment/AttachmentServiceImpl.java 0 → 100644
  1 +package com.zteits.urbanops.module.workorder.service.attachment;
  2 +
  3 +import cn.hutool.core.collection.CollUtil;
  4 +import org.springframework.stereotype.Service;
  5 +import jakarta.annotation.Resource;
  6 +import org.springframework.validation.annotation.Validated;
  7 +import org.springframework.transaction.annotation.Transactional;
  8 +
  9 +import java.util.*;
  10 +import com.zteits.urbanops.module.workorder.controller.admin.attachment.vo.*;
  11 +import com.zteits.urbanops.module.workorder.dal.dataobject.attachment.AttachmentDO;
  12 +import com.zteits.urbanops.framework.common.pojo.PageResult;
  13 +import com.zteits.urbanops.framework.common.pojo.PageParam;
  14 +import com.zteits.urbanops.framework.common.util.object.BeanUtils;
  15 +
  16 +import com.zteits.urbanops.module.workorder.dal.mysql.attachment.AttachmentMapper;
  17 +
  18 +import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception;
  19 +import static com.zteits.urbanops.framework.common.util.collection.CollectionUtils.convertList;
  20 +import static com.zteits.urbanops.framework.common.util.collection.CollectionUtils.diffList;
  21 +import static com.zteits.urbanops.module.workorder.enums.ErrorCodeConstants.*;
  22 +
  23 +/**
  24 + * 工单附件信息 Service 实现类
  25 + *
  26 + * @author 超级管理员
  27 + */
  28 +@Service
  29 +@Validated
  30 +public class AttachmentServiceImpl implements AttachmentService {
  31 +
  32 + @Resource
  33 + private AttachmentMapper attachmentMapper;
  34 +
  35 + @Override
  36 + public Long createAttachment(AttachmentSaveReqVO createReqVO) {
  37 + // 插入
  38 + AttachmentDO attachment = BeanUtils.toBean(createReqVO, AttachmentDO.class);
  39 + attachmentMapper.insert(attachment);
  40 +
  41 + // 返回
  42 + return attachment.getId();
  43 + }
  44 +
  45 + @Override
  46 + public void updateAttachment(AttachmentSaveReqVO updateReqVO) {
  47 + // 校验存在
  48 + validateAttachmentExists(updateReqVO.getId());
  49 + // 更新
  50 + AttachmentDO updateObj = BeanUtils.toBean(updateReqVO, AttachmentDO.class);
  51 + attachmentMapper.updateById(updateObj);
  52 + }
  53 +
  54 + @Override
  55 + public void deleteAttachment(Long id) {
  56 + // 校验存在
  57 + validateAttachmentExists(id);
  58 + // 删除
  59 + attachmentMapper.deleteById(id);
  60 + }
  61 +
  62 + @Override
  63 + public void deleteAttachmentListByIds(List<Long> ids) {
  64 + // 删除
  65 + attachmentMapper.deleteByIds(ids);
  66 + }
  67 +
  68 +
  69 + private void validateAttachmentExists(Long id) {
  70 + if (attachmentMapper.selectById(id) == null) {
  71 + throw exception(ATTACHMENT_NOT_EXISTS);
  72 + }
  73 + }
  74 +
  75 + @Override
  76 + public AttachmentDO getAttachment(Long id) {
  77 + return attachmentMapper.selectById(id);
  78 + }
  79 +
  80 + @Override
  81 + public PageResult<AttachmentDO> getAttachmentPage(AttachmentPageReqVO pageReqVO) {
  82 + return attachmentMapper.selectPage(pageReqVO);
  83 + }
  84 +
  85 +}
0 \ No newline at end of file 86 \ No newline at end of file
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/maininfo/MainInfoService.java 0 → 100644
  1 +package com.zteits.urbanops.module.workorder.service.maininfo;
  2 +
  3 +import java.util.*;
  4 +import jakarta.validation.*;
  5 +import com.zteits.urbanops.module.workorder.controller.admin.maininfo.vo.*;
  6 +import com.zteits.urbanops.module.workorder.dal.dataobject.maininfo.MainInfoDO;
  7 +import com.zteits.urbanops.framework.common.pojo.PageResult;
  8 +import com.zteits.urbanops.framework.common.pojo.PageParam;
  9 +
  10 +/**
  11 + * 工单信息 Service 接口
  12 + *
  13 + * @author 超级管理员
  14 + */
  15 +public interface MainInfoService {
  16 +
  17 + /**
  18 + * 创建工单信息
  19 + *
  20 + * @param createReqVO 创建信息
  21 + * @return 编号
  22 + */
  23 + Long createMainInfo(@Valid MainInfoSaveReqVO createReqVO);
  24 +
  25 + /**
  26 + * 更新工单信息
  27 + *
  28 + * @param updateReqVO 更新信息
  29 + */
  30 + void updateMainInfo(@Valid MainInfoSaveReqVO updateReqVO);
  31 +
  32 + /**
  33 + * 删除工单信息
  34 + *
  35 + * @param id 编号
  36 + */
  37 + void deleteMainInfo(Long id);
  38 +
  39 + /**
  40 + * 批量删除工单信息
  41 + *
  42 + * @param ids 编号
  43 + */
  44 + void deleteMainInfoListByIds(List<Long> ids);
  45 +
  46 + /**
  47 + * 获得工单信息
  48 + *
  49 + * @param id 编号
  50 + * @return 工单信息
  51 + */
  52 + MainInfoDO getMainInfo(Long id);
  53 +
  54 + /**
  55 + * 获得工单信息分页
  56 + *
  57 + * @param pageReqVO 分页查询
  58 + * @return 工单信息分页
  59 + */
  60 + PageResult<MainInfoDO> getMainInfoPage(MainInfoPageReqVO pageReqVO);
  61 +
  62 +}
0 \ No newline at end of file 63 \ No newline at end of file
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/maininfo/MainInfoServiceImpl.java 0 → 100644
  1 +package com.zteits.urbanops.module.workorder.service.maininfo;
  2 +
  3 +import cn.hutool.core.collection.CollUtil;
  4 +import org.springframework.stereotype.Service;
  5 +import jakarta.annotation.Resource;
  6 +import org.springframework.validation.annotation.Validated;
  7 +import org.springframework.transaction.annotation.Transactional;
  8 +
  9 +import java.util.*;
  10 +import com.zteits.urbanops.module.workorder.controller.admin.maininfo.vo.*;
  11 +import com.zteits.urbanops.module.workorder.dal.dataobject.maininfo.MainInfoDO;
  12 +import com.zteits.urbanops.framework.common.pojo.PageResult;
  13 +import com.zteits.urbanops.framework.common.pojo.PageParam;
  14 +import com.zteits.urbanops.framework.common.util.object.BeanUtils;
  15 +
  16 +import com.zteits.urbanops.module.workorder.dal.mysql.maininfo.MainInfoMapper;
  17 +
  18 +import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception;
  19 +import static com.zteits.urbanops.framework.common.util.collection.CollectionUtils.convertList;
  20 +import static com.zteits.urbanops.framework.common.util.collection.CollectionUtils.diffList;
  21 +import static com.zteits.urbanops.module.workorder.enums.ErrorCodeConstants.*;
  22 +
  23 +/**
  24 + * 工单信息 Service 实现类
  25 + *
  26 + * @author 超级管理员
  27 + */
  28 +@Service
  29 +@Validated
  30 +public class MainInfoServiceImpl implements MainInfoService {
  31 +
  32 + @Resource
  33 + private MainInfoMapper mainInfoMapper;
  34 +
  35 + @Override
  36 + public Long createMainInfo(MainInfoSaveReqVO createReqVO) {
  37 + // 插入
  38 + MainInfoDO mainInfo = BeanUtils.toBean(createReqVO, MainInfoDO.class);
  39 + mainInfoMapper.insert(mainInfo);
  40 +
  41 + // 返回
  42 + return mainInfo.getId();
  43 + }
  44 +
  45 + @Override
  46 + public void updateMainInfo(MainInfoSaveReqVO updateReqVO) {
  47 + // 校验存在
  48 + validateMainInfoExists(updateReqVO.getId());
  49 + // 更新
  50 + MainInfoDO updateObj = BeanUtils.toBean(updateReqVO, MainInfoDO.class);
  51 + mainInfoMapper.updateById(updateObj);
  52 + }
  53 +
  54 + @Override
  55 + public void deleteMainInfo(Long id) {
  56 + // 校验存在
  57 + validateMainInfoExists(id);
  58 + // 删除
  59 + mainInfoMapper.deleteById(id);
  60 + }
  61 +
  62 + @Override
  63 + public void deleteMainInfoListByIds(List<Long> ids) {
  64 + // 删除
  65 + mainInfoMapper.deleteByIds(ids);
  66 + }
  67 +
  68 +
  69 + private void validateMainInfoExists(Long id) {
  70 + if (mainInfoMapper.selectById(id) == null) {
  71 + throw exception(MAIN_INFO_NOT_EXISTS);
  72 + }
  73 + }
  74 +
  75 + @Override
  76 + public MainInfoDO getMainInfo(Long id) {
  77 + return mainInfoMapper.selectById(id);
  78 + }
  79 +
  80 + @Override
  81 + public PageResult<MainInfoDO> getMainInfoPage(MainInfoPageReqVO pageReqVO) {
  82 + return mainInfoMapper.selectPage(pageReqVO);
  83 + }
  84 +
  85 +}
0 \ No newline at end of file 86 \ No newline at end of file
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/materialdetail/MaterialDetailService.java 0 → 100644
  1 +package com.zteits.urbanops.module.workorder.service.materialdetail;
  2 +
  3 +import java.util.*;
  4 +import jakarta.validation.*;
  5 +import com.zteits.urbanops.module.workorder.controller.admin.materialdetail.vo.*;
  6 +import com.zteits.urbanops.module.workorder.dal.dataobject.materialdetail.MaterialDetailDO;
  7 +import com.zteits.urbanops.framework.common.pojo.PageResult;
  8 +import com.zteits.urbanops.framework.common.pojo.PageParam;
  9 +
  10 +/**
  11 + * 工单耗材明细 Service 接口
  12 + *
  13 + * @author 超级管理员
  14 + */
  15 +public interface MaterialDetailService {
  16 +
  17 + /**
  18 + * 创建工单耗材明细
  19 + *
  20 + * @param createReqVO 创建信息
  21 + * @return 编号
  22 + */
  23 + Long createMaterialDetail(@Valid MaterialDetailSaveReqVO createReqVO);
  24 +
  25 + /**
  26 + * 更新工单耗材明细
  27 + *
  28 + * @param updateReqVO 更新信息
  29 + */
  30 + void updateMaterialDetail(@Valid MaterialDetailSaveReqVO updateReqVO);
  31 +
  32 + /**
  33 + * 删除工单耗材明细
  34 + *
  35 + * @param id 编号
  36 + */
  37 + void deleteMaterialDetail(Long id);
  38 +
  39 + /**
  40 + * 批量删除工单耗材明细
  41 + *
  42 + * @param ids 编号
  43 + */
  44 + void deleteMaterialDetailListByIds(List<Long> ids);
  45 +
  46 + /**
  47 + * 获得工单耗材明细
  48 + *
  49 + * @param id 编号
  50 + * @return 工单耗材明细
  51 + */
  52 + MaterialDetailDO getMaterialDetail(Long id);
  53 +
  54 + /**
  55 + * 获得工单耗材明细分页
  56 + *
  57 + * @param pageReqVO 分页查询
  58 + * @return 工单耗材明细分页
  59 + */
  60 + PageResult<MaterialDetailDO> getMaterialDetailPage(MaterialDetailPageReqVO pageReqVO);
  61 +
  62 +}
0 \ No newline at end of file 63 \ No newline at end of file
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/materialdetail/MaterialDetailServiceImpl.java 0 → 100644
  1 +package com.zteits.urbanops.module.workorder.service.materialdetail;
  2 +
  3 +import cn.hutool.core.collection.CollUtil;
  4 +import org.springframework.stereotype.Service;
  5 +import jakarta.annotation.Resource;
  6 +import org.springframework.validation.annotation.Validated;
  7 +import org.springframework.transaction.annotation.Transactional;
  8 +
  9 +import java.util.*;
  10 +import com.zteits.urbanops.module.workorder.controller.admin.materialdetail.vo.*;
  11 +import com.zteits.urbanops.module.workorder.dal.dataobject.materialdetail.MaterialDetailDO;
  12 +import com.zteits.urbanops.framework.common.pojo.PageResult;
  13 +import com.zteits.urbanops.framework.common.pojo.PageParam;
  14 +import com.zteits.urbanops.framework.common.util.object.BeanUtils;
  15 +
  16 +import com.zteits.urbanops.module.workorder.dal.mysql.materialdetail.MaterialDetailMapper;
  17 +
  18 +import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception;
  19 +import static com.zteits.urbanops.framework.common.util.collection.CollectionUtils.convertList;
  20 +import static com.zteits.urbanops.framework.common.util.collection.CollectionUtils.diffList;
  21 +import static com.zteits.urbanops.module.workorder.enums.ErrorCodeConstants.*;
  22 +
  23 +/**
  24 + * 工单耗材明细 Service 实现类
  25 + *
  26 + * @author 超级管理员
  27 + */
  28 +@Service
  29 +@Validated
  30 +public class MaterialDetailServiceImpl implements MaterialDetailService {
  31 +
  32 + @Resource
  33 + private MaterialDetailMapper materialDetailMapper;
  34 +
  35 + @Override
  36 + public Long createMaterialDetail(MaterialDetailSaveReqVO createReqVO) {
  37 + // 插入
  38 + MaterialDetailDO materialDetail = BeanUtils.toBean(createReqVO, MaterialDetailDO.class);
  39 + materialDetailMapper.insert(materialDetail);
  40 +
  41 + // 返回
  42 + return materialDetail.getId();
  43 + }
  44 +
  45 + @Override
  46 + public void updateMaterialDetail(MaterialDetailSaveReqVO updateReqVO) {
  47 + // 校验存在
  48 + validateMaterialDetailExists(updateReqVO.getId());
  49 + // 更新
  50 + MaterialDetailDO updateObj = BeanUtils.toBean(updateReqVO, MaterialDetailDO.class);
  51 + materialDetailMapper.updateById(updateObj);
  52 + }
  53 +
  54 + @Override
  55 + public void deleteMaterialDetail(Long id) {
  56 + // 校验存在
  57 + validateMaterialDetailExists(id);
  58 + // 删除
  59 + materialDetailMapper.deleteById(id);
  60 + }
  61 +
  62 + @Override
  63 + public void deleteMaterialDetailListByIds(List<Long> ids) {
  64 + // 删除
  65 + materialDetailMapper.deleteByIds(ids);
  66 + }
  67 +
  68 +
  69 + private void validateMaterialDetailExists(Long id) {
  70 + if (materialDetailMapper.selectById(id) == null) {
  71 + throw exception(MATERIAL_DETAIL_NOT_EXISTS);
  72 + }
  73 + }
  74 +
  75 + @Override
  76 + public MaterialDetailDO getMaterialDetail(Long id) {
  77 + return materialDetailMapper.selectById(id);
  78 + }
  79 +
  80 + @Override
  81 + public PageResult<MaterialDetailDO> getMaterialDetailPage(MaterialDetailPageReqVO pageReqVO) {
  82 + return materialDetailMapper.selectPage(pageReqVO);
  83 + }
  84 +
  85 +}
0 \ No newline at end of file 86 \ No newline at end of file
urbanops-module-workorder/src/main/resources/mapper/maininfo/MainInfoMapper.xml 0 → 100644
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3 +<mapper namespace="com.zteits.urbanops.module.workorder.dal.mysql.maininfo.MainInfoMapper">
  4 +
  5 + <!--
  6 + 一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
  7 + 无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
  8 + 代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
  9 + 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
  10 + -->
  11 +
  12 +</mapper>
0 \ No newline at end of file 13 \ No newline at end of file
urbanops-module-workorder/src/main/resources/mapper/mapper/attachment/AttachmentMapper.xml 0 → 100644
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3 +<mapper namespace="com.zteits.urbanops.module.workorder.dal.mysql.attachment.AttachmentMapper">
  4 +
  5 + <!--
  6 + 一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
  7 + 无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
  8 + 代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
  9 + 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
  10 + -->
  11 +
  12 +</mapper>
0 \ No newline at end of file 13 \ No newline at end of file
urbanops-module-workorder/src/main/resources/mapper/materialdetail/MaterialDetailMapper.xml 0 → 100644
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3 +<mapper namespace="com.zteits.urbanops.module.workorder.dal.mysql.materialdetail.MaterialDetailMapper">
  4 +
  5 + <!--
  6 + 一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
  7 + 无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
  8 + 代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
  9 + 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
  10 + -->
  11 +
  12 +</mapper>
0 \ No newline at end of file 13 \ No newline at end of file
urbanops-server/pom.xml
@@ -43,6 +43,13 @@ @@ -43,6 +43,13 @@
43 <artifactId>urbanops-module-garden</artifactId> 43 <artifactId>urbanops-module-garden</artifactId>
44 <version>${revision}</version> 44 <version>${revision}</version>
45 </dependency> 45 </dependency>
  46 +
  47 + <!-- 工单管理 -->
  48 + <dependency>
  49 + <groupId>com.zteits.boot</groupId>
  50 + <artifactId>urbanops-module-workorder</artifactId>
  51 + <version>${revision}</version>
  52 + </dependency>
46 <!-- 会员中心。默认注释,保证编译速度 --> 53 <!-- 会员中心。默认注释,保证编译速度 -->
47 <!-- <dependency>--> 54 <!-- <dependency>-->
48 <!-- <groupId>com.zteits.boot</groupId>--> 55 <!-- <groupId>com.zteits.boot</groupId>-->