Commit 258c2824f79dc6096999371dfe07afbe92cb03cd

Authored by wangqian
1 parent a7316779

派单及人机材功能迁移

Showing 13 changed files with 389 additions and 153 deletions
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/assigntasks/AssignTasksController.java
1 1 package com.zteits.urbanops.module.garden.controller.admin.assigntasks;
2 2  
3   -import jakarta.annotation.security.PermitAll;
4   -import org.springframework.util.CollectionUtils;
5   -import org.springframework.web.bind.annotation.*;
6   -import jakarta.annotation.Resource;
7   -import org.springframework.validation.annotation.Validated;
8   -import org.springframework.security.access.prepost.PreAuthorize;
9   -import io.swagger.v3.oas.annotations.tags.Tag;
10   -import io.swagger.v3.oas.annotations.Parameter;
11   -import io.swagger.v3.oas.annotations.Operation;
12   -
13   -import jakarta.validation.constraints.*;
14   -import jakarta.validation.*;
15   -import jakarta.servlet.http.*;
16   -import java.util.*;
17   -import java.io.IOException;
18   -
  3 +import cn.hutool.core.collection.CollectionUtil;
  4 +import cn.hutool.core.util.StrUtil;
  5 +import com.zteits.urbanops.framework.apilog.core.annotation.ApiAccessLog;
  6 +import com.zteits.urbanops.framework.common.pojo.CommonResult;
19 7 import com.zteits.urbanops.framework.common.pojo.PageParam;
20 8 import com.zteits.urbanops.framework.common.pojo.PageResult;
21   -import com.zteits.urbanops.framework.common.pojo.CommonResult;
22 9 import com.zteits.urbanops.framework.common.util.object.BeanUtils;
23   -import static com.zteits.urbanops.framework.common.pojo.CommonResult.success;
24   -
25 10 import com.zteits.urbanops.framework.excel.core.util.ExcelUtils;
26   -
27   -import com.zteits.urbanops.framework.apilog.core.annotation.ApiAccessLog;
28   -import static com.zteits.urbanops.framework.apilog.core.enums.OperateTypeEnum.*;
29   -
30   -import com.zteits.urbanops.module.garden.controller.admin.assigntasks.vo.*;
  11 +import com.zteits.urbanops.module.garden.controller.admin.assigntasks.vo.AssignTasksPageReqVO;
  12 +import com.zteits.urbanops.module.garden.controller.admin.assigntasks.vo.AssignTasksRespVO;
  13 +import com.zteits.urbanops.module.garden.controller.admin.assigntasks.vo.AssignTasksSaveReqVO;
31 14 import com.zteits.urbanops.module.garden.dal.dataobject.assigntasks.AssignTasksDO;
  15 +import com.zteits.urbanops.module.garden.dal.dataobject.assigntasksinfo.AssignTasksInfoDO;
32 16 import com.zteits.urbanops.module.garden.service.assigntasks.AssignTasksService;
  17 +import com.zteits.urbanops.module.garden.service.assigntasksinfo.AssignTasksInfoService;
  18 +import io.swagger.v3.oas.annotations.Operation;
  19 +import io.swagger.v3.oas.annotations.Parameter;
  20 +import io.swagger.v3.oas.annotations.tags.Tag;
  21 +import jakarta.annotation.Resource;
  22 +import jakarta.annotation.security.PermitAll;
  23 +import jakarta.servlet.http.HttpServletResponse;
  24 +import jakarta.validation.Valid;
  25 +import org.springframework.security.access.prepost.PreAuthorize;
  26 +import org.springframework.validation.annotation.Validated;
  27 +import org.springframework.web.bind.annotation.*;
  28 +
  29 +import java.io.IOException;
  30 +import java.util.Collections;
  31 +import java.util.List;
  32 +import java.util.stream.Collectors;
  33 +
  34 +import static com.zteits.urbanops.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
  35 +import static com.zteits.urbanops.framework.common.pojo.CommonResult.success;
33 36  
34 37 @Tag(name = "管理后台 - 派单任务主表(记录派单任务基本信息)")
35 38 @RestController
... ... @@ -39,6 +42,8 @@ public class AssignTasksController {
39 42  
40 43 @Resource
41 44 private AssignTasksService assignTasksService;
  45 + @Resource
  46 + private AssignTasksInfoService asignTasksInfoService;
42 47  
43 48 @PostMapping("/create")
44 49 @Operation(summary = "创建派单任务主表(记录派单任务基本信息)")
... ... @@ -79,7 +84,20 @@ public class AssignTasksController {
79 84 @PreAuthorize("@ss.hasPermission('garden:assign-tasks:query')")
80 85 public CommonResult<AssignTasksRespVO> getAssignTasks(@RequestParam("id") Long id) {
81 86 AssignTasksDO assignTasks = assignTasksService.getAssignTasks(id);
82   - return success(BeanUtils.toBean(assignTasks, AssignTasksRespVO.class));
  87 + AssignTasksRespVO assignTasksRespVO = BeanUtils.toBean(assignTasks, AssignTasksRespVO.class);
  88 + List<AssignTasksInfoDO> assignTaskInfoList = asignTasksInfoService.getAssignTasksInfos(assignTasks.getId());
  89 + assignTasksRespVO.setAssignTaskInfoList(assignTaskInfoList);
  90 + //获取单位集合
  91 + List<String> companyIds = CollectionUtil.isEmpty(assignTaskInfoList)
  92 + ? Collections.emptyList()
  93 + : assignTaskInfoList.stream()
  94 + .map(AssignTasksInfoDO::getCompanyId)
  95 + .map(StrUtil::toString) // Hutool 工具类:自动处理 null(转为 null 字符串,需配合过滤)
  96 + .filter(StrUtil::isNotEmpty) // 过滤 null/空字符串
  97 + .distinct()
  98 + .collect(Collectors.toList());
  99 + assignTasksRespVO.setCompanyIds(companyIds);
  100 + return success(assignTasksRespVO);
83 101 }
84 102  
85 103 @GetMapping("/page")
... ... @@ -111,10 +129,18 @@ public class AssignTasksController {
111 129 BeanUtils.toBean(list, AssignTasksRespVO.class));
112 130 }
113 131  
  132 + @Operation(summary = "任务确认" )
  133 + @PreAuthorize("@ss.hasPermi('assign:tasks:query')")
  134 + @GetMapping(value = "/confirm/{id}")
  135 + public CommonResult confirm(@PathVariable("id") Long id) {
  136 + return success(assignTasksService.confirmAssignTasksById(id));
  137 + }
114 138 @Operation(summary = "定时任务处理超时" )
115 139 @PostMapping(value= "/tasksOutTimeAuto")
116 140 @PermitAll
117 141 public CommonResult tasksOutTimeAuto() {
118 142 return success(assignTasksService.tasksOutTimeAuto());
119 143 }
  144 +
  145 +
120 146 }
... ...
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/assigntasks/vo/AssignTasksRespVO.java
1 1 package com.zteits.urbanops.module.garden.controller.admin.assigntasks.vo;
2 2  
  3 +import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
  4 +import cn.idev.excel.annotation.ExcelProperty;
  5 +import com.fasterxml.jackson.annotation.JsonFormat;
  6 +import com.zteits.urbanops.module.garden.dal.dataobject.assigntasksinfo.AssignTasksInfoDO;
3 7 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.*;
  8 +import lombok.Data;
  9 +
  10 +import java.util.Date;
  11 +import java.util.List;
  12 +
  13 +import static com.zteits.urbanops.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
9 14  
10 15 @Schema(description = "管理后台 - 派单任务主表(记录派单任务基本信息) Response VO")
11 16 @Data
... ... @@ -26,7 +31,8 @@ public class AssignTasksRespVO {
26 31  
27 32 @Schema(description = "任务截止时间", requiredMode = Schema.RequiredMode.REQUIRED)
28 33 @ExcelProperty("任务截止时间")
29   - private LocalDateTime deadline;
  34 + @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
  35 + private Date deadline;
30 36  
31 37 @Schema(description = "派单模板文件路径(如:任务详情模板、填报表格等)")
32 38 @ExcelProperty("派单模板文件路径(如:任务详情模板、填报表格等)")
... ... @@ -38,7 +44,8 @@ public class AssignTasksRespVO {
38 44  
39 45 @Schema(description = "整体完成时间(仅当parent_finish=1时有值)")
40 46 @ExcelProperty("整体完成时间(仅当parent_finish=1时有值)")
41   - private LocalDateTime finishTime;
  47 + @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
  48 + private Date finishTime;
42 49  
43 50 @Schema(description = "任务备注(如:特殊要求、注意事项等)")
44 51 @ExcelProperty("任务备注(如:特殊要求、注意事项等)")
... ... @@ -50,11 +57,15 @@ public class AssignTasksRespVO {
50 57  
51 58 @Schema(description = "任务创建时间(派单时间)", requiredMode = Schema.RequiredMode.REQUIRED)
52 59 @ExcelProperty("任务创建时间(派单时间)")
53   - private LocalDateTime createTime;
  60 + @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
  61 + private Date createTime;
54 62  
55 63 @Schema(description = "修改人(关联用户ID,最后修改人)")
56 64 @ExcelProperty("修改人(关联用户ID,最后修改人)")
57 65 private String updater;
58 66  
  67 + private List<String> companyIds;
  68 + private List<AssignTasksInfoDO> assignTaskInfoList;
  69 +
59 70  
60 71 }
... ...
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/assigntasks/vo/AssignTasksSaveReqVO.java
1 1 package com.zteits.urbanops.module.garden.controller.admin.assigntasks.vo;
2 2  
  3 +import com.fasterxml.jackson.annotation.JsonFormat;
3 4 import io.swagger.v3.oas.annotations.media.Schema;
4   -import lombok.*;
5   -import java.util.*;
6   -import jakarta.validation.constraints.*;
7   -import org.springframework.format.annotation.DateTimeFormat;
8   -import java.time.LocalDateTime;
  5 +import jakarta.validation.constraints.NotEmpty;
  6 +import jakarta.validation.constraints.NotNull;
  7 +import lombok.Data;
  8 +
  9 +import java.util.Date;
  10 +import java.util.List;
  11 +
  12 +import static com.zteits.urbanops.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
9 13  
10 14 @Schema(description = "管理后台 - 派单任务主表(记录派单任务基本信息)新增/修改 Request VO")
11 15 @Data
... ... @@ -24,7 +28,12 @@ public class AssignTasksSaveReqVO {
24 28  
25 29 @Schema(description = "任务截止时间", requiredMode = Schema.RequiredMode.REQUIRED)
26 30 @NotNull(message = "任务截止时间不能为空")
27   - private LocalDateTime deadline;
  31 + @JsonFormat(
  32 + pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND,
  33 + timezone = "GMT+8",
  34 + shape = JsonFormat.Shape.STRING
  35 + )
  36 + private Date deadline;
28 37  
29 38 @Schema(description = "派单模板文件路径(如:任务详情模板、填报表格等)")
30 39 private String templateFile;
... ... @@ -34,7 +43,8 @@ public class AssignTasksSaveReqVO {
34 43 private Integer parentFinish;
35 44  
36 45 @Schema(description = "整体完成时间(仅当parent_finish=1时有值)")
37   - private LocalDateTime finishTime;
  46 + @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
  47 + private Date finishTime;
38 48  
39 49 @Schema(description = "任务备注(如:特殊要求、注意事项等)")
40 50 private String note;
... ... @@ -47,6 +57,7 @@ public class AssignTasksSaveReqVO {
47 57 private String updater;
48 58  
49 59 /*单位集合*/
50   - private String[] companyIds;
  60 + @NotEmpty(message = "派发单位不能为空")
  61 + private List<String> companyIds;
51 62  
52 63 }
... ...
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/assigntasksinfo/AssignTasksInfoController.java
1 1 package com.zteits.urbanops.module.garden.controller.admin.assigntasksinfo;
2 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   -
  3 +import com.zteits.urbanops.framework.apilog.core.annotation.ApiAccessLog;
  4 +import com.zteits.urbanops.framework.common.pojo.CommonResult;
17 5 import com.zteits.urbanops.framework.common.pojo.PageParam;
18 6 import com.zteits.urbanops.framework.common.pojo.PageResult;
19   -import com.zteits.urbanops.framework.common.pojo.CommonResult;
20 7 import com.zteits.urbanops.framework.common.util.object.BeanUtils;
21   -import static com.zteits.urbanops.framework.common.pojo.CommonResult.success;
22   -
23 8 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.garden.controller.admin.assigntasksinfo.vo.*;
  9 +import com.zteits.urbanops.module.garden.controller.admin.assigntasksinfo.vo.AssignTasksInfoPageReqVO;
  10 +import com.zteits.urbanops.module.garden.controller.admin.assigntasksinfo.vo.AssignTasksInfoRespVO;
  11 +import com.zteits.urbanops.module.garden.controller.admin.assigntasksinfo.vo.AssignTasksInfoSaveReqVO;
29 12 import com.zteits.urbanops.module.garden.dal.dataobject.assigntasksinfo.AssignTasksInfoDO;
30 13 import com.zteits.urbanops.module.garden.service.assigntasksinfo.AssignTasksInfoService;
  14 +import io.swagger.v3.oas.annotations.Operation;
  15 +import io.swagger.v3.oas.annotations.Parameter;
  16 +import io.swagger.v3.oas.annotations.tags.Tag;
  17 +import jakarta.annotation.Resource;
  18 +import jakarta.servlet.http.HttpServletResponse;
  19 +import jakarta.validation.Valid;
  20 +import org.springframework.security.access.prepost.PreAuthorize;
  21 +import org.springframework.validation.annotation.Validated;
  22 +import org.springframework.web.bind.annotation.*;
  23 +
  24 +import java.io.IOException;
  25 +import java.util.List;
  26 +
  27 +import static com.zteits.urbanops.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
  28 +import static com.zteits.urbanops.framework.common.pojo.CommonResult.success;
31 29  
32 30 @Tag(name = "管理后台 - 派单任务-单位关联表(记录单位接收派单后的执行详情)")
33 31 @RestController
... ... @@ -107,4 +105,28 @@ public class AssignTasksInfoController {
107 105 BeanUtils.toBean(list, AssignTasksInfoRespVO.class));
108 106 }
109 107  
  108 +
  109 + //打回
  110 + @PreAuthorize("@ss.hasPermission('garden:assign-tasks-info:update')")
  111 + @Operation(summary = "派单任务-驳回")
  112 + @PutMapping(value = "/reject")
  113 + public CommonResult reject(@RequestBody AssignTasksInfoSaveReqVO assignTaskCompany) {
  114 + return success(assignTasksInfoService.rejectAssignTaskCompany(assignTaskCompany));
  115 + }
  116 +
  117 + //催交
  118 + @PreAuthorize("@ss.hasPermission('garden:assign-tasks-info:update')")
  119 + @Operation(summary = "派单任务-催交")
  120 + @PutMapping(value = "/submission")
  121 + public CommonResult submission(@RequestBody AssignTasksInfoSaveReqVO assignTaskCompany) {
  122 + return success(assignTasksInfoService.submissionAssignTaskCompany(assignTaskCompany));
  123 + }
  124 +
  125 + //反馈
  126 + @PreAuthorize("@ss.hasPermission('garden:assign-tasks-info:update')")
  127 + @Operation(summary = "派单任务-反馈")
  128 + @PutMapping(value = "/feedback")
  129 + public CommonResult feedback(@RequestBody AssignTasksInfoSaveReqVO assignTaskCompany) {
  130 + return success(assignTasksInfoService.feedbackAssignTaskCompany(assignTaskCompany));
  131 + }
110 132 }
... ...
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/assigntasksinfo/vo/AssignTasksInfoSaveReqVO.java
... ... @@ -46,7 +46,7 @@ public class AssignTasksInfoSaveReqVO {
46 46 private Integer isOverdue;
47 47  
48 48 @Schema(description = "单位提交的任务文件路径(如:填报表格、现场照片等)")
49   - private String dataFile;
  49 + private List<String> dataFile;
50 50  
51 51 @Schema(description = "催缴次数(未完成时的提醒次数)", requiredMode = Schema.RequiredMode.REQUIRED)
52 52 @NotNull(message = "催缴次数(未完成时的提醒次数)不能为空")
... ...
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/assigntasksinfo/AssignTasksInfoDO.java
... ... @@ -71,7 +71,7 @@ public class AssignTasksInfoDO extends BaseDO {
71 71 * 单位提交的任务文件路径(如:填报表格、现场照片等)
72 72 */
73 73 @TableField(typeHandler = JacksonTypeHandler.class)
74   - private List dataFile;
  74 + private List<String> dataFile;
75 75 /**
76 76 * 催缴次数(未完成时的提醒次数)
77 77 */
... ...
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/AssignTasksConstants.java
... ... @@ -13,4 +13,22 @@ public class AssignTasksConstants {
13 13 /* 完成*/
14 14 public static final Integer ASSIGN_TASK_FINISH_1 = 1;
15 15  
  16 + /* 未读*/
  17 + public static final Integer ASSIGN_TASK_NEWFLAG_0 = 0;
  18 +
  19 + /*已读*/
  20 + public static final Integer ASSIGN_TASK_NEWFLAG_1 = 1;
  21 +
  22 + /*驳回*/
  23 + public static final Integer ASSIGN_TASK_REJECT_1 = 1;
  24 +
  25 + /*未超时*/
  26 + public static final Integer ASSIGN_TASK_IS_OVER_DUE_0 = 0;
  27 + /*超时*/
  28 + public static final Integer ASSIGN_TASK_IS_OVER_DUE_1 = 1;
  29 +
  30 + /* 催办短信场景配置*/
  31 + public static final int ASSIGN_TASK_SCENE = 6;
  32 + /*办理人角色*/
  33 + public static final String ASSIGN_ROLE_KEY = "zgs_leader";
16 34 }
... ...
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/ErrorCodeConstants.java
... ... @@ -13,15 +13,18 @@ public interface ErrorCodeConstants {
13 13 // ========== server 派单 1-100-001-000 ==========
14 14 ErrorCode ASSIGN_TASKS_NOT_EXISTS = new ErrorCode(1-100-001-000, "派单任务主表(记录派单任务基本信息)不存在");
15 15  
16   - ErrorCode ASSIGN_TASKS_NOT_EXISTS_001 = new ErrorCode(1-100-001-001, "派单任务主表(记录派单任务基本信息)不存在");
  16 + ErrorCode ASSIGN_TASKS_IS_FINISH = new ErrorCode(1-100-001-001, "派单任务已完成,不允许修改");
17 17 ErrorCode ASSIGN_TASKS_NOT_EXISTS_002 = new ErrorCode(1-100-001-002, "未全部完成,不能确认");
18   - ErrorCode ASSIGN_TASKS_INFO_NOT_EXISTS_001 = new ErrorCode(1-100-001-003, "派发单位不能为空");
19 18  
20   - ErrorCode ASSIGN_TASKS_INFO_NOT_EXISTS_004 = new ErrorCode(1-100-002-004, "派单已完成,不允许删除");
  19 + ErrorCode ASSIGN_TASKS_INFO_NOT_EXISTS = new ErrorCode(1-100-002-000, "派单任务不存在");
  20 + ErrorCode ASSIGN_TASKS_INFO_TASKID_NOT_EXISTS = new ErrorCode(1-100-002-001, "派发Id不能为空");
21 21  
22   - ErrorCode ASSIGN_TASKS_INFO_NOT_EXISTS_003 = new ErrorCode(1-100-002-003, "更新派单任务失败:任务ID不能为空");
  22 + ErrorCode ASSIGN_TASKS_INFO_TASKID_REJECT = new ErrorCode(1-100-002-002,"打回异常");
23 23  
24   - ErrorCode ASSIGN_TASKS_INFO_NOT_EXISTS = new ErrorCode(1-100-002-000, "派发单位不能为空");
  24 + ErrorCode ASSIGN_TASKS_INFO_003 = new ErrorCode(1-100-002-003,"派发任务已删除,无法提交");
  25 + ErrorCode ASSIGN_TASKS_INFO_004 = new ErrorCode(1-100-002-004,"短信发送失败");
  26 +
  27 + ErrorCode ASSIGN_TASKS_INFO_005 = new ErrorCode(1-100-002-005,"任务提交成功,但通知短信发送失败,请联系管理员");
25 28  
26 29 // ========== 人机材料 1-100-003-000==========
27 30  
... ...
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/assigntasks/AssignTasksServiceImpl.java
... ... @@ -12,6 +12,8 @@ import com.zteits.urbanops.module.garden.dal.mysql.assigntasks.AssignTasksMapper
12 12 import com.zteits.urbanops.module.garden.dal.mysql.assigntasksinfo.AssignTasksInfoMapper;
13 13 import com.zteits.urbanops.module.garden.enums.AssignTasksConstants;
14 14 import com.zteits.urbanops.module.garden.service.assigntasksinfo.AssignTasksInfoService;
  15 +import com.zteits.urbanops.module.system.api.dept.DeptApi;
  16 +import com.zteits.urbanops.module.system.api.dept.dto.DeptRespDTO;
15 17 import jakarta.annotation.Resource;
16 18 import lombok.extern.slf4j.Slf4j;
17 19 import org.springframework.stereotype.Service;
... ... @@ -22,10 +24,14 @@ import org.springframework.validation.annotation.Validated;
22 24 import java.time.LocalDateTime;
23 25 import java.util.ArrayList;
24 26 import java.util.List;
  27 +import java.util.Objects;
  28 +import java.util.stream.Collectors;
25 29  
26 30 import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception;
  31 +import static com.zteits.urbanops.framework.security.core.util.SecurityFrameworkUtils.getLoginUserDeptId;
27 32 import static com.zteits.urbanops.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
28   -import static com.zteits.urbanops.module.garden.enums.ErrorCodeConstants.*;
  33 +import static com.zteits.urbanops.module.garden.enums.ErrorCodeConstants.ASSIGN_TASKS_NOT_EXISTS;
  34 +import static com.zteits.urbanops.module.garden.enums.ErrorCodeConstants.ASSIGN_TASKS_NOT_EXISTS_002;
29 35  
30 36 /**
31 37 * 派单任务主表(记录派单任务基本信息) Service 实现类
... ... @@ -46,6 +52,11 @@ public class AssignTasksServiceImpl implements AssignTasksService {
46 52 @Resource
47 53 private AssignTasksInfoService assignTasksInfoService;
48 54  
  55 + @Resource
  56 + private AssignTasksInfoMapper assignTasksInfoMapper;
  57 + @Resource
  58 + private DeptApi deptApi;
  59 +
49 60  
50 61 @Transactional(rollbackFor = Exception.class)
51 62 @Override
... ... @@ -54,10 +65,6 @@ public class AssignTasksServiceImpl implements AssignTasksService {
54 65 AssignTasksDO assignTasks = BeanUtils.toBean(createReqVO, AssignTasksDO.class);
55 66 assignTasksMapper.insert(assignTasks);
56 67 //保存单位明细
57   - String[] originalCompanyIds = createReqVO.getCompanyIds();
58   - if (originalCompanyIds == null || originalCompanyIds.length == 0) {
59   - throw exception(ASSIGN_TASKS_NOT_EXISTS_001);
60   - }
61 68 assignTasksInfoService.saveAssignTasksInfos(createReqVO.getCompanyIds(), assignTasks.getId());
62 69 //保存单位明细
63 70  
... ... @@ -74,13 +81,37 @@ public class AssignTasksServiceImpl implements AssignTasksService {
74 81 AssignTasksDO updateObj = BeanUtils.toBean(updateReqVO, AssignTasksDO.class);
75 82 assignTasksMapper.updateById(updateObj);
76 83  
  84 + // 1. 处理关联的单位任务信息(仅当存在单位ID列表时)
  85 + List<String> companyIds = updateReqVO.getCompanyIds();
77 86 // add by wq 20251116
78   - String[] originalCompanyIds = updateReqVO.getCompanyIds();
79   - if (originalCompanyIds == null || originalCompanyIds.length == 0) {
80   - throw exception(ASSIGN_TASKS_NOT_EXISTS_001);
  87 + List<AssignTasksInfoDO> assignTaskInfoList = assignTasksInfoMapper.selectList(AssignTasksInfoDO::getTaskId, updateObj.getId());
  88 + if (CollectionUtils.isEmpty(assignTaskInfoList)) {
  89 + // 检查当前派单的公司ID是否不在保留列表中
  90 + for (AssignTasksInfoDO taskInfo : assignTaskInfoList) {
  91 + // 检查当前派单的公司ID是否不在保留列表中
  92 + if (!companyIds.contains(taskInfo.getCompanyId())) {
  93 + // 已读状态(newFlag=1)不允许删除,抛出异常
  94 + if (taskInfo.getFinish() != 1) {
  95 + //throw exception(ASSIGN_TASKS_IS_FINISH);
  96 + } else {
  97 + // 未读状态,执行删除操作
  98 + assignTasksInfoService.deleteAssignTasksInfo(taskInfo.getId());
  99 + }
  100 + }
  101 + }
81 102 }
82 103  
83   - assignTasksInfoService.updateAssignTasksInfos(updateReqVO.getCompanyIds(), updateObj.getId());
  104 +
  105 + //获取已添加单位集合
  106 + List<String> existingCompanyIds = assignTaskInfoList.stream()
  107 + .map(info -> String.valueOf(info.getCompanyId()))
  108 + .collect(Collectors.toList());
  109 + //排除 existingCompanyIds 中的元素 作为新增的单位
  110 + List<String> filteredCompanyIds = companyIds.stream()
  111 + .filter(Objects::nonNull)
  112 + .filter(id -> !existingCompanyIds.contains(id)) // 直接用列表 contains()
  113 + .collect(Collectors.toList());
  114 + assignTasksInfoService.saveAssignTasksInfos(filteredCompanyIds, updateObj.getId());
84 115 }
85 116  
86 117 @Override
... ... @@ -89,6 +120,10 @@ public class AssignTasksServiceImpl implements AssignTasksService {
89 120 validateAssignTasksExists(id);
90 121 // 删除
91 122 assignTasksMapper.deleteById(id);
  123 + //删除关联的明细
  124 + List<Long> ids = new ArrayList<>();
  125 + ids.add(id);
  126 + assiAssignTasksInfoMapper.deleteAssignTaskInfoByTaskId(ids);
92 127 }
93 128  
94 129 @Override
... ... @@ -114,7 +149,13 @@ public class AssignTasksServiceImpl implements AssignTasksService {
114 149  
115 150 @Override
116 151 public PageResult<AssignTasksDO> getAssignTasksPage(AssignTasksPageReqVO pageReqVO) {
117   - return assignTasksMapper.selectPage(pageReqVO);
  152 + //add by wq 派单任务只能总公司查询
  153 + DeptRespDTO deptRespDTO = deptApi.getDept(getLoginUserDeptId());
  154 + if (deptRespDTO.getParentId() != 0) {
  155 + return null;
  156 + }
  157 + //add by wq 派单任务只能总公司查询
  158 + return assignTasksMapper.selectPage(pageReqVO);
118 159 }
119 160  
120 161  
... ...
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/assigntasksinfo/AssignTasksInfoService.java
... ... @@ -67,8 +67,36 @@ public interface AssignTasksInfoService {
67 67 * @param taskId
68 68 * @Return java.lang.Long
69 69 */
70   - public void saveAssignTasksInfos(String[] companyIds, Long taskId);
  70 + public void saveAssignTasksInfos(List<String> companyIds, Long taskId);
71 71  
72   - public void updateAssignTasksInfos(String[] companyIds, Long taskId);
  72 + /**
  73 + * @Author wangqian
  74 + * @Description 根据任务id查询详情
  75 + * @Date 2025/11/25 11:22
  76 + * @Param taskId
  77 + * @Return void
  78 + */
  79 + public List<AssignTasksInfoDO> getAssignTasksInfos(Long taskId);
73 80  
  81 + /**
  82 + * @Author wangqian
  83 + * @Description 派单驳回
  84 + * @Date 2025/8/22 19:53
  85 + * @Return int
  86 + */
  87 + public int rejectAssignTaskCompany(@Valid AssignTasksInfoSaveReqVO tdAssignTaskCompany);
  88 + /**
  89 + * @Author wangqian
  90 + * @Description 派单提醒
  91 + * @Date 2025/8/22 19:53
  92 + * @Return int
  93 + */
  94 + public int submissionAssignTaskCompany(@Valid AssignTasksInfoSaveReqVO tdAssignTaskCompany);
  95 + /**
  96 + * @Author wangqian
  97 + * @Description 派单反馈
  98 + * @Date 2025/8/22 19:53
  99 + * @Return int
  100 + */
  101 + public int feedbackAssignTaskCompany(@Valid AssignTasksInfoSaveReqVO tdAssignTaskCompany);
74 102 }
... ...
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/assigntasksinfo/AssignTasksInfoServiceImpl.java
1 1 package com.zteits.urbanops.module.garden.service.assigntasksinfo;
2 2  
  3 +import com.alibaba.fastjson.JSONObject;
3 4 import com.zteits.urbanops.framework.common.pojo.PageResult;
4 5 import com.zteits.urbanops.framework.common.util.object.BeanUtils;
5 6 import com.zteits.urbanops.module.garden.controller.admin.assigntasksinfo.vo.AssignTasksInfoPageReqVO;
6 7 import com.zteits.urbanops.module.garden.controller.admin.assigntasksinfo.vo.AssignTasksInfoSaveReqVO;
  8 +import com.zteits.urbanops.module.garden.dal.dataobject.assigntasks.AssignTasksDO;
7 9 import com.zteits.urbanops.module.garden.dal.dataobject.assigntasksinfo.AssignTasksInfoDO;
  10 +import com.zteits.urbanops.module.garden.dal.mysql.assigntasks.AssignTasksMapper;
8 11 import com.zteits.urbanops.module.garden.dal.mysql.assigntasksinfo.AssignTasksInfoMapper;
  12 +import com.zteits.urbanops.module.garden.enums.AssignTasksConstants;
  13 +import com.zteits.urbanops.module.garden.util.http.OkHttpClientUtil;
  14 +import com.zteits.urbanops.module.system.api.dept.DeptApi;
  15 +import com.zteits.urbanops.module.system.api.dept.dto.DeptRespDTO;
  16 +import com.zteits.urbanops.module.system.api.user.AdminUserApi;
  17 +import com.zteits.urbanops.module.system.api.user.dto.AdminUserRespDTO;
9 18 import jakarta.annotation.Resource;
10 19 import lombok.extern.slf4j.Slf4j;
11   -import org.apache.commons.lang3.StringUtils;
  20 +import org.apache.commons.collections4.CollectionUtils;
12 21 import org.springframework.stereotype.Service;
13 22 import org.springframework.validation.annotation.Validated;
14 23  
15   -import java.util.*;
  24 +import java.time.LocalDateTime;
  25 +import java.time.ZoneId;
  26 +import java.time.format.DateTimeFormatter;
  27 +import java.util.HashMap;
  28 +import java.util.List;
  29 +import java.util.Map;
  30 +import java.util.Objects;
16 31 import java.util.stream.Collectors;
17 32  
18 33 import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception;
19 34 import static com.zteits.urbanops.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
  35 +import static com.zteits.urbanops.framework.security.core.util.SecurityFrameworkUtils.getLoginUserNickname;
20 36 import static com.zteits.urbanops.module.garden.enums.ErrorCodeConstants.*;
21 37  
22 38 /**
... ... @@ -31,13 +47,28 @@ public class AssignTasksInfoServiceImpl implements AssignTasksInfoService {
31 47  
32 48 @Resource
33 49 private AssignTasksInfoMapper assignTasksInfoMapper;
  50 + @Resource
  51 + private AssignTasksMapper assignTasksMapper;
  52 +
  53 + @Resource
  54 + private DeptApi deptApi;
  55 + @Resource
  56 + private AdminUserApi adminUserApi;
34 57  
  58 + private String SEND_SMS_CODE_URL = "";
  59 +
  60 + // 时间格式常量(与之前保持一致)
  61 + public static final String FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND = "yyyy-MM-dd HH:mm:ss";
  62 +
  63 + // 1. 定义线程安全的格式化器(全局复用,无需重复创建)
  64 + private static final DateTimeFormatter DEADLINE_FORMATTER = DateTimeFormatter
  65 + .ofPattern(FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
  66 + .withZone(ZoneId.of("GMT+8")); // 时区与之前配置一致,避免偏移
35 67 @Override
36 68 public Long createAssignTasksInfo(AssignTasksInfoSaveReqVO createReqVO) {
37 69 // 插入
38 70 AssignTasksInfoDO assignTasksInfo = BeanUtils.toBean(createReqVO, AssignTasksInfoDO.class);
39 71 assignTasksInfoMapper.insert(assignTasksInfo);
40   -
41 72 // 返回
42 73 return assignTasksInfo.getId();
43 74 }
... ... @@ -83,16 +114,25 @@ public class AssignTasksInfoServiceImpl implements AssignTasksInfoService {
83 114 }
84 115  
85 116 @Override
86   - public void saveAssignTasksInfos(String[] companyIds, Long taskId) {
  117 + public void saveAssignTasksInfos(List<String> companyIds, Long taskId) {
87 118 // 获得用户基本信息
88   - String userId = String.valueOf(getLoginUserId());
89   - if (companyIds != null && companyIds.length > 0) {
  119 + if (companyIds != null && companyIds.size() > 0) {
  120 + //1、获取单位集合
  121 + List<DeptRespDTO> deptList = deptApi.getChildDeptList(0L);
  122 + Map<Long, String> companyIdToNameMap = CollectionUtils.isEmpty(deptList)
  123 + ? Map.of() // 空列表返回空不可变 Map(避免 null)
  124 + : deptList.stream()
  125 + // 转 Map:key=companyId,value=companyName;key 冲突时保留最后一个(可调整)
  126 + .collect(Collectors.toMap(
  127 + DeptRespDTO::getId, // key 映射:取 companyId
  128 + dept -> dept.getName().trim(), // value 映射:取 companyName(去空格)
  129 + (oldValue, newValue) -> newValue
  130 + ));
90 131 for (String companyId : companyIds) {
91 132 AssignTasksInfoSaveReqVO assignTaskInfo = new AssignTasksInfoSaveReqVO();
92 133 assignTaskInfo.setCompanyId(companyId);
93   - //assignTaskInfo.setCompanyName(CompanyConstant.getCompanyName(Long.parseLong(companyId)));
  134 + assignTaskInfo.setCompanyName(companyIdToNameMap.get(Long.valueOf(companyId)));
94 135 assignTaskInfo.setTaskId(taskId);
95   - assignTaskInfo.setUpdater(userId);
96 136 AssignTasksInfoDO assignTasksInfo = BeanUtils.toBean(assignTaskInfo, AssignTasksInfoDO.class);
97 137  
98 138 assignTasksInfoMapper.insert(assignTasksInfo);
... ... @@ -101,74 +141,108 @@ public class AssignTasksInfoServiceImpl implements AssignTasksInfoService {
101 141 }
102 142  
103 143 @Override
104   - public void updateAssignTasksInfos(String[] companyIds, Long taskId) {
105   - // 1. 日志与入参校验(提前拦截无效参数)
106   - log.info("开始更新派单任务的公司关联信息 | 任务ID:{},目标公司ID列表:{}",
107   - taskId, Arrays.toString(companyIds));
108   -
  144 + public List<AssignTasksInfoDO> getAssignTasksInfos(Long taskId) {
109 145 if (taskId == null) {
110   - log.error("更新派单任务失败:任务ID不能为空");
111   - throw exception(ASSIGN_TASKS_INFO_NOT_EXISTS_003); // 假设 PARAM_ERROR 是通用参数错误码,需替换为实际枚举
  146 + throw exception(ASSIGN_TASKS_INFO_TASKID_NOT_EXISTS);
112 147 }
  148 + return assignTasksInfoMapper.selectList(AssignTasksInfoDO::getTaskId, taskId);
  149 + }
113 150  
114   - // 2. 获取当前登录用户(校验用户有效性)
115   - Long loginUserId = getLoginUserId();
116   -
117   - // 3. 预处理目标公司ID列表(避免重复转换,处理null场景)
118   - List<String> targetCompanyIdStrs = Optional.ofNullable(companyIds)
119   - .map(Arrays::asList)
120   - .orElse(Collections.emptyList())
121   - .stream()
122   - .filter(StringUtils::isNotBlank) // 过滤空字符串(避免无效数据)
123   - .distinct() // 去重:避免重复添加同一公司
124   - .collect(Collectors.toList());
125   -
126   - // 4. 查询该任务下已关联的派单记录
127   - List<AssignTasksInfoDO> existingAssignTaskInfos = assignTasksInfoMapper
128   - .selectList(AssignTasksInfoDO::getTaskId, taskId);
129   - log.info("当前任务已关联的派单记录数:{}", existingAssignTaskInfos.size());
130   -
131   - // 4.1 提取已关联的公司ID(String类型,用于后续判断)
132   - List<String> existingCompanyIdStrs = existingAssignTaskInfos.stream()
133   - .map(info -> String.valueOf(info.getCompanyId())) // 统一转为String,避免类型不匹配
134   - .collect(Collectors.toList());
135   -
136   - // 5. 处理需要删除的派单记录(不在目标列表中且未读的记录)
137   - List<Long> needDeleteIds = new ArrayList<>();
138   - for (AssignTasksInfoDO existingTask : existingAssignTaskInfos) {
139   - String existingCompanyIdStr = String.valueOf(existingTask.getCompanyId());
140   - // 目标列表不包含当前公司ID → 需要删除
141   - if (!targetCompanyIdStrs.contains(existingCompanyIdStr)) {
142   - // 已读状态(finish=1)不允许删除
143   - if (Objects.equals(existingTask.getFinish(), 1)) {
144   - log.error("删除派单失败:任务已读不允许删除 | 派单ID:{},公司ID:{}",
145   - existingTask.getId(), existingCompanyIdStr);
146   - throw exception(ASSIGN_TASKS_INFO_NOT_EXISTS_004); // 建议修改异常码语义为“已读任务不允许删除”
147   - }
148   - needDeleteIds.add(existingTask.getId());
149   - }
  151 + //派单驳回
  152 + @Override
  153 + public int rejectAssignTaskCompany(AssignTasksInfoSaveReqVO tdAssignTaskCompany) {
  154 + AssignTasksInfoDO assignTaskInfo = assignTasksInfoMapper.selectById(tdAssignTaskCompany.getId());
  155 + //单位任务完成状态(0:未完成,1:已完成)
  156 + if (assignTaskInfo != null && 1 == assignTaskInfo.getFinish()) {
  157 + AssignTasksInfoDO updateAssignTaskInfo = new AssignTasksInfoDO();
  158 + updateAssignTaskInfo.setId(tdAssignTaskCompany.getId());
  159 + updateAssignTaskInfo.setFinish(AssignTasksConstants.ASSIGN_TASK_FINISH_0);
  160 + updateAssignTaskInfo.setNewFlagTime(null);
  161 + updateAssignTaskInfo.setIsReject(AssignTasksConstants.ASSIGN_TASK_REJECT_1);
  162 + updateAssignTaskInfo.setRejectRemark(tdAssignTaskCompany.getRejectRemark());
  163 + updateAssignTaskInfo.setNewFlag(AssignTasksConstants.ASSIGN_TASK_NEWFLAG_0);
  164 + return assignTasksInfoMapper.updateById(updateAssignTaskInfo);
  165 + } else {
  166 + throw exception(ASSIGN_TASKS_INFO_TASKID_REJECT);
150 167 }
  168 + }
151 169  
152   - // 5.1 批量删除(减少数据库交互)
153   - if (!needDeleteIds.isEmpty()) {
154   - this.deleteAssignTasksInfoListByIds(needDeleteIds);
155   - log.info("批量删除派单记录成功 | 删除ID列表:{}", needDeleteIds);
  170 + @Override
  171 + public int submissionAssignTaskCompany(AssignTasksInfoSaveReqVO taskInfo) {
  172 + // 2. 查询任务详情(判断任务是否存在)
  173 + AssignTasksInfoDO existingTask = assignTasksInfoMapper.selectById(taskInfo.getId());
  174 + if (existingTask == null) {
  175 + throw exception(ASSIGN_TASKS_INFO_NOT_EXISTS);
156 176 }
157   -
158   - // 6. 处理需要新增的派单记录(目标列表中不存在于已关联列表的公司)
159   - for (String targetCompanyId : targetCompanyIdStrs) {
160   - if (!existingCompanyIdStrs.contains(targetCompanyId)) {
161   - // 直接构建DO对象(跳过VO转换,减少开销)
162   - AssignTasksInfoSaveReqVO assignTaskInfo = new AssignTasksInfoSaveReqVO();
163   - assignTaskInfo.setCompanyId(targetCompanyId);
164   - //assignTaskInfo.setCompanyName(CompanyConstant.getCompanyName(Long.parseLong(companyId)));
165   - assignTaskInfo.setTaskId(taskId);
166   - assignTaskInfo.setCreator(String.valueOf(loginUserId));
167   - AssignTasksInfoDO assignTasksInfo = BeanUtils.toBean(assignTaskInfo, AssignTasksInfoDO.class);
168   -
169   - assignTasksInfoMapper.insert(assignTasksInfo);
170   -
  177 + AssignTasksDO assignTasksDO = assignTasksMapper.selectById(existingTask.getTaskId());
  178 + LocalDateTime deadline = assignTasksDO.getDeadline();
  179 +
  180 + String formattedDeadline = Objects.nonNull(deadline)
  181 + ? DEADLINE_FORMATTER.format(deadline)
  182 + : ""; // 或 null
  183 + //填报人信息
  184 + AdminUserRespDTO user = adminUserApi.getUser(getLoginUserId());
  185 + String phonenumber = user.getMobile();
  186 + Map<String, Object> resultMap = new HashMap<String, Object>();
  187 + Map<String, String> templateParams = new HashMap<String, String>();
  188 + templateParams.put("companyName", existingTask.getCompanyName());
  189 + templateParams.put("taskName", assignTasksDO.getTaskName());
  190 + templateParams.put("deadline", formattedDeadline);
  191 + resultMap.put("mobile", phonenumber);//手机号
  192 + resultMap.put("scene", AssignTasksConstants.ASSIGN_TASK_SCENE);//短信场景
  193 + resultMap.put("templateParams", templateParams);//短信参数
  194 +
  195 + // 5. 发送短信通知
  196 + log.info("派单发送短信 signMap: {}", JSONObject.toJSONString(resultMap));
  197 + Map<String, String> headers = new HashMap<>(4);
  198 + headers.put("Content-Type","application/json");
  199 + headers.put("Connection","keep-alive");
  200 + headers.put("Accept","*/*");
  201 + headers.put("Accept-Encoding","gzip, deflate, br");
  202 + try {
  203 + String response = OkHttpClientUtil.doPostJson(SEND_SMS_CODE_URL, resultMap, headers);
  204 + log.info("派单发送短信 response: {}", JSONObject.toJSONString(response));
  205 +
  206 + JSONObject jsonObject = JSONObject.parseObject(response);
  207 +
  208 + if (jsonObject.getString("code").equals("0")) {
  209 + log.info("提交单位任务成功,已通知填报人:手机号={},任务ID={}", phonenumber, existingTask.getId());
  210 +
  211 + int newRushNum = (existingTask.getRushNum() == null) ? 1: existingTask.getRushNum() + 1;
  212 + //催办次数+1
  213 + AssignTasksInfoDO assignTaskInfo = new AssignTasksInfoDO();
  214 + assignTaskInfo.setId(existingTask.getId());
  215 + assignTaskInfo.setRushNum(newRushNum);
  216 + assignTasksInfoMapper.updateById(assignTaskInfo);
  217 + } else {
  218 + throw exception(ASSIGN_TASKS_INFO_004);
171 219 }
  220 + } catch (Exception e) {
  221 + log.error("提交单位任务成功,但短信通知失败:手机号={},任务ID={}",
  222 + phonenumber, existingTask.getId(), e);
  223 + throw exception(ASSIGN_TASKS_INFO_005);
  224 + }
  225 + return 1;
  226 + }
  227 +
  228 + @Override
  229 + public int feedbackAssignTaskCompany(AssignTasksInfoSaveReqVO tdAssignTaskCompany) {
  230 + AssignTasksInfoDO assignTaskInfo = assignTasksInfoMapper.selectById(tdAssignTaskCompany.getId());
  231 + if (assignTaskInfo != null) {
  232 + AdminUserRespDTO user = adminUserApi.getUser(getLoginUserId());
  233 + AssignTasksInfoDO updateAssignTaskInfo = new AssignTasksInfoDO();
  234 + updateAssignTaskInfo.setId(tdAssignTaskCompany.getId());
  235 + updateAssignTaskInfo.setFinish(AssignTasksConstants.ASSIGN_TASK_FINISH_1);//已完成
  236 + updateAssignTaskInfo.setDataFile(tdAssignTaskCompany.getDataFile());
  237 + updateAssignTaskInfo.setRemark(tdAssignTaskCompany.getRemark());
  238 + updateAssignTaskInfo.setWriteTime(LocalDateTime.now());
  239 + //填报人信息
  240 + updateAssignTaskInfo.setWritePersonId(String.valueOf(user.getId()));
  241 + updateAssignTaskInfo.setWritePerson(getLoginUserNickname());
  242 + updateAssignTaskInfo.setWritePersonPhone(user.getMobile());
  243 + return assignTasksInfoMapper.updateById(updateAssignTaskInfo);
  244 + } else {
  245 + throw exception(ASSIGN_TASKS_INFO_NOT_EXISTS);
172 246 }
173 247 }
174 248 }
... ...
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/personalcost/PersonalCostServiceImpl.java
... ... @@ -7,6 +7,7 @@ import com.zteits.urbanops.module.garden.controller.admin.personalcost.vo.Person
7 7 import com.zteits.urbanops.module.garden.dal.dataobject.personalcost.PersonalCostDO;
8 8 import com.zteits.urbanops.module.garden.dal.dataobject.teambizdomainrel.TeamBizdomainRelDO;
9 9 import com.zteits.urbanops.module.garden.dal.mysql.personalcost.PersonalCostMapper;
  10 +import com.zteits.urbanops.module.system.api.dept.DeptApi;
10 11 import jakarta.annotation.Resource;
11 12 import org.springframework.stereotype.Service;
12 13 import org.springframework.transaction.annotation.Transactional;
... ... @@ -30,6 +31,9 @@ public class PersonalCostServiceImpl implements PersonalCostService {
30 31 @Resource
31 32 private PersonalCostMapper personalCostMapper;
32 33  
  34 + @Resource
  35 + private DeptApi deptApi;
  36 +
33 37 @Override
34 38 @Transactional
35 39 public Long createPersonalCost(PersonalCostSaveReqVO createReqVO) {
... ...
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/wasterecord/WasteRecordServiceImpl.java
... ... @@ -31,8 +31,6 @@ public class WasteRecordServiceImpl implements WasteRecordService {
31 31 @Resource
32 32 private WasteRecordMapper wasteRecordMapper;
33 33  
34   - @Resource
35   - TeamBizdomainRelService teamBizdomainRelService;
36 34 @Override
37 35 @Transactional
38 36 public Long createWasteRecord(WasteRecordSaveReqVO createReqVO) {
... ...