From ad8a38fb97f8bd9fd4077c9e576f54e48aec5151 Mon Sep 17 00:00:00 2001
From: lujiang
Date: Fri, 23 Aug 2024 09:46:37 +0800
Subject: [PATCH] =?UTF-8?q?=E5=90=84=E8=A7=92=E8=89=B2=E5=88=97=E8=A1=A8?=
=?UTF-8?q?=E6=9F=A5=E8=AF=A2=E5=8F=98=E6=9B=B4=EF=BC=8C=E6=95=85=E9=9A=9C?=
=?UTF-8?q?=E7=AD=89=E7=BA=A7=E7=94=B1=E6=B4=BE=E5=8D=95=E5=91=98=E5=A1=AB?=
=?UTF-8?q?=E5=86=99=EF=BC=8C=E8=AE=BE=E5=A4=87=E7=B1=BB=E5=9E=8B=E5=A2=9E?=
=?UTF-8?q?=E5=8A=A0=E5=AD=97=E6=AE=B5=EF=BC=8C=E6=A5=BC=E5=B1=82=E5=A2=9E?=
=?UTF-8?q?=E5=8A=A0=E7=BC=96=E7=A0=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../admin/controller/RepairController.java | 106 ++++++++++++++++--
.../controller/RepairStatsController.java | 20 +++-
.../java/com/ics/admin/domain/Repair.java | 4 +-
.../ics/admin/domain/RepairAddressFloor.java | 8 +-
.../ics/admin/domain/RepairDeviceType.java | 9 ++
.../com/ics/admin/mapper/RepairMapper.java | 19 +---
.../com/ics/admin/service/IRepairService.java | 13 +--
.../admin/service/impl/RepairServiceImpl.java | 27 +++--
.../com/ics/admin/utils/RepairListDTO.java | 26 +++++
.../mapper/admin/RepairAddressFloorMapper.xml | 18 ++-
.../mapper/admin/RepairDeviceTypeMapper.xml | 19 +++-
.../resources/mapper/admin/RepairMapper.xml | 105 +++++++++--------
12 files changed, 265 insertions(+), 109 deletions(-)
create mode 100644 shoot-hand/ics-admin/src/main/java/com/ics/admin/utils/RepairListDTO.java
diff --git a/shoot-hand/ics-admin/src/main/java/com/ics/admin/controller/RepairController.java b/shoot-hand/ics-admin/src/main/java/com/ics/admin/controller/RepairController.java
index 357ccee..11e70c7 100644
--- a/shoot-hand/ics-admin/src/main/java/com/ics/admin/controller/RepairController.java
+++ b/shoot-hand/ics-admin/src/main/java/com/ics/admin/controller/RepairController.java
@@ -3,13 +3,17 @@ package com.ics.admin.controller;
import com.ics.admin.domain.Repair;
import com.ics.admin.domain.RepairAttach;
import com.ics.admin.domain.RepairLog;
+import com.ics.admin.service.IIcsCustomerStaffService;
import com.ics.admin.service.IRepairAttachService;
import com.ics.admin.service.IRepairLogService;
import com.ics.admin.service.IRepairService;
import com.ics.admin.utils.RepairDTO;
+import com.ics.admin.utils.RepairListDTO;
import com.ics.admin.vo.RepairAttachVO;
import com.ics.common.core.controller.BaseController;
+import com.ics.common.core.domain.IcsCustomerStaff;
import com.ics.common.core.domain.R;
+import com.ics.common.utils.DateUtils;
import com.ics.common.utils.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
@@ -20,6 +24,7 @@ import org.wf.jwtp.annotation.Logical;
import org.wf.jwtp.annotation.RequiresPermissions;
import java.util.ArrayList;
+import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -43,6 +48,9 @@ public class RepairController extends BaseController {
@Autowired
private IRepairAttachService repairAttachService;
+ @Autowired
+ private IIcsCustomerStaffService customerStaffService;
+
/**
* 报修
*/
@@ -50,7 +58,7 @@ public class RepairController extends BaseController {
@PostMapping("flow/start")
public R startFlow(@RequestBody RepairDTO repairDTO) {
Long userId = getLoginStaffId();
-// if (!repairService.submitCheck(userId.toString())) return R.error("报修过于频繁,请稍后再试.");
+ if (!repairService.submitCheck(userId.toString())) return R.error("报修过于频繁,请稍后再试.");
String result = repairService.handleFlow(repairDTO.getRepair(), userId, repairDTO.getFiles(), null, null);
return IRepairService.OK.equals(result) ? R.ok() : R.error(result);
}
@@ -86,19 +94,99 @@ public class RepairController extends BaseController {
* 管理员:重派单,全部,无效申请 type对应值:anew、all、invalid 【小程序暂时用不到】
* 楼层管理员:全部、无效申请 type对应值:all、invalid
*
- * name : 工单名称搜索关键字
+ * name : 工单描述搜索关键字
*
*/
+
+ /**
+ * 工单列表
+ * role 1.普通用户,3派单员,5维修人员, 7管理员, 9 楼层管理员
+ *
+ * 【报修查询】 普通用户,管理员, 楼层管理员
+ * 全部、处理中、待评价、已评价、无效申请
+ * type值:all、process、evaling、evaled、invalid
+ * 【派单入口】
+ * 管理员:
+ * 重新派单、待派单、已派单、无效申请
+ * type值:anew、wait、already、invalid
+ * 派单员:
+ * 待派单、已派单、无效申请
+ * type值:wait、already、invalid
+ * 【维修入口】
+ * 待完成、进行中、已完成
+ * type对应值:wait、process、end
+ * 【查询条件】
+ * repair:
+ * sn: 单号,模糊查询
+ * repairLevel:故障等级,模糊查询
+ * typeId:设备类别id,精确查询
+ * deviceId:设备id,精确查询
+ * name:报修人,模糊查询
+ * phone:联系电话,模糊查询
+ * addressId:报修地点id,精确查询
+ * floorId:报修楼层id,精确查询
+ * room:门牌号,模糊查询
+ * explain:描述,模糊查询
+ * failureTypeId:故障类型id,精确查询
+ * beginTime : 工单创建日期范围;开始时间;格式示例 2024-08-22;成对出现
+ * endTime : 工单创建日期范围;结束时间;格式示例 2024-08-25;成对出现
+ *
+ * ========================================================================
+ *
+ * 普通用户:
+ * 全部、处理中、待评价、已评价、无效申请
+ * type值:all、process-1、3、5、7、evaling-9、evaled-13、invalid-11
+ *
+ * 派单员
+ * 待派单、已派单、无效申请
+ * type值:wait-1、already-5、7、9、13、invalid-11
+ *
+ * 维修人员
+ * 待完成、进行中、已完成
+ * type值:wait-5、process-7、end-9、13
+ *
+ * 管理员:
+ * 全部、重新派单、待派单、已派单、处理中、待评价、已评价、无效申请
+ * type值:all、anew-3、wait-1、already-5、7、9、13、process-1、3、5、7、evaling-9、evaled-13、invalid-11
+ *
+ * 楼层管理员
+ * type值:all、process-1、3、5、7、evaling-9、evaled-13、invalid-11
+ * ========================================================================
+ */
@RequiresPermissions(value = {"repair:manage:operator", "member:center:view"}, logical = Logical.OR)
@RequestMapping("list")
- public R list(@RequestBody Map map) {
- String type = map.get("type");
- String menu = map.get("menu");
- String repairName = map.get("name");
- if (StringUtils.isBlank(type) || StringUtils.isBlank(menu)) return R.error();
- startPage();
+ public R list(@RequestBody RepairListDTO repairListDTO) {
+ Repair repair = repairListDTO.getRepair();
+ if (repair == null) repair = new Repair();
+ String role = repairListDTO.getRole();
+ String type = repairListDTO.getType();
+ if (StringUtils.isBlank(type) || StringUtils.isBlank(role)) return R.error();
Long userId = getLoginStaffId();
- return result(repairService.repairList(menu, userId.toString(), type, repairName));
+ if ("7".equals(role)) { //管理员认证角色
+ IcsCustomerStaff customerStaff = customerStaffService.selectIcsCustomerStaffById(userId);
+ if (!"7".equals(customerStaff.getDataType())) return R.error("权限不足!");
+ }
+ Map params = new HashMap<>();
+ params.put("role", role);
+ params.put("type", type);
+ params.put("userId", userId);
+ //时间范围处理
+ String beginTime = repair.getBeginTime(), endTime = repair.getEndTime();
+ if (beginTime != null && endTime != null && beginTime.length() == 10 && endTime.length() == 10) {
+ try {
+ Date s = DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, beginTime + " 00:00:00");
+ Date e = DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, endTime + " 23:59:59");
+ if (s.getTime() <= e.getTime()) {
+ params.put("beginTime", s);
+ params.put("endTime", e);
+ }
+ } catch (Exception e) {
+ //时间格式处理失败则放弃时间搜索条件
+ }
+ }
+ repair.setParams(params);
+ startPage();
+ return result(repairService.repairList(repair));
}
/**
diff --git a/shoot-hand/ics-admin/src/main/java/com/ics/admin/controller/RepairStatsController.java b/shoot-hand/ics-admin/src/main/java/com/ics/admin/controller/RepairStatsController.java
index 4a5093e..3236406 100644
--- a/shoot-hand/ics-admin/src/main/java/com/ics/admin/controller/RepairStatsController.java
+++ b/shoot-hand/ics-admin/src/main/java/com/ics/admin/controller/RepairStatsController.java
@@ -1,6 +1,7 @@
package com.ics.admin.controller;
import com.alibaba.fastjson.JSONObject;
+import com.ics.admin.domain.Repair;
import com.ics.admin.vo.RepairAdminStatsVo;
import com.ics.admin.vo.RepairFloorStatsVo;
import com.ics.admin.vo.RepairWorkerStatsVo;
@@ -13,6 +14,9 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.wf.jwtp.annotation.RequiresPermissions;
+import java.util.HashMap;
+import java.util.Map;
+
/**
* 工单各种统计接口
* created at 2024-8-15 20:36
@@ -46,8 +50,14 @@ public class RepairStatsController extends BaseController {
@RequiresPermissions(value = {"repair:manage:operator"})
@RequestMapping("oneWorkerList")
public R oneWorkerList(String workerId) {
+ Repair repair = new Repair();
+ Map params = new HashMap<>();
+ params.put("role", "5");
+ params.put("type", "all");
+ params.put("userId", workerId);
+ repair.setParams(params);
startPage();
- return result(repairService.repairList("5", workerId, "", null));
+ return result(repairService.repairList(repair));
}
/**
@@ -66,8 +76,14 @@ public class RepairStatsController extends BaseController {
@RequiresPermissions(value = {"repair:manage:operator"})
@RequestMapping("oneFloorList")
public R oneFloorList(String floorerId) {
+ Repair repair = new Repair();
+ Map params = new HashMap<>();
+ params.put("role", "9");
+ params.put("userId", floorerId);
+ params.put("type", "all");
+ repair.setParams(params);
startPage();
- return result(repairService.floorRepairList(floorerId));
+ return result(repairService.repairList(repair));
}
/**
diff --git a/shoot-hand/ics-admin/src/main/java/com/ics/admin/domain/Repair.java b/shoot-hand/ics-admin/src/main/java/com/ics/admin/domain/Repair.java
index 8d1c571..49fe5bf 100644
--- a/shoot-hand/ics-admin/src/main/java/com/ics/admin/domain/Repair.java
+++ b/shoot-hand/ics-admin/src/main/java/com/ics/admin/domain/Repair.java
@@ -64,7 +64,7 @@ public class Repair extends BaseEntity {
/**
* 报修地点id
*/
- private String addressId;
+ private Long addressId;
/**
* 报修地点名称
*/
@@ -72,7 +72,7 @@ public class Repair extends BaseEntity {
/**
* 报修楼层id
*/
- private String floorId;
+ private Long floorId;
/**
* 报修楼层名称
*/
diff --git a/shoot-hand/ics-admin/src/main/java/com/ics/admin/domain/RepairAddressFloor.java b/shoot-hand/ics-admin/src/main/java/com/ics/admin/domain/RepairAddressFloor.java
index 18a45e6..b907b67 100644
--- a/shoot-hand/ics-admin/src/main/java/com/ics/admin/domain/RepairAddressFloor.java
+++ b/shoot-hand/ics-admin/src/main/java/com/ics/admin/domain/RepairAddressFloor.java
@@ -23,6 +23,10 @@ public class RepairAddressFloor extends BaseEntity {
* 楼层名称
*/
private String name;
+ /**
+ * 楼层编码
+ */
+ private String bm;
/** 楼层管理员id */
private Long adminId;
@@ -33,7 +37,9 @@ public class RepairAddressFloor extends BaseEntity {
/** 备注 */
private String remark;
-
+ private String ext1;
+ private String ext2;
+ private String ext3;
diff --git a/shoot-hand/ics-admin/src/main/java/com/ics/admin/domain/RepairDeviceType.java b/shoot-hand/ics-admin/src/main/java/com/ics/admin/domain/RepairDeviceType.java
index e84e863..63ee35c 100644
--- a/shoot-hand/ics-admin/src/main/java/com/ics/admin/domain/RepairDeviceType.java
+++ b/shoot-hand/ics-admin/src/main/java/com/ics/admin/domain/RepairDeviceType.java
@@ -22,6 +22,11 @@ public class RepairDeviceType extends BaseEntity {
/** 名称 */
private String name;
+ /**
+ * 该设备类型预计需要完成的天数
+ */
+ private Integer days;
+
@TableField(exist = false)
private Long staffId;
@@ -42,5 +47,9 @@ public class RepairDeviceType extends BaseEntity {
/** 备注 */
private String remark;
+ private String ext1;
+ private String ext2;
+ private String ext3;
+
}
diff --git a/shoot-hand/ics-admin/src/main/java/com/ics/admin/mapper/RepairMapper.java b/shoot-hand/ics-admin/src/main/java/com/ics/admin/mapper/RepairMapper.java
index 23b210f..5071386 100644
--- a/shoot-hand/ics-admin/src/main/java/com/ics/admin/mapper/RepairMapper.java
+++ b/shoot-hand/ics-admin/src/main/java/com/ics/admin/mapper/RepairMapper.java
@@ -22,13 +22,12 @@ public interface RepairMapper {
*/
Repair selectRepairById(Long id);
- List normalRepairList(@Param("userId") String userId, @Param("type") String type, @Param("repairName") String repairName);
-
- List preRepairList(@Param("userId") String userId, @Param("type") String type, @Param("repairName") String repairName);
-
- List workRepairList(@Param("userId") String userId, @Param("type") String type, @Param("repairName") String repairName);
-
- List adminRepairList(@Param("userId") String userId, @Param("type") String type, @Param("repairName") String repairName);
+ /**
+ * 查询工单列表
+ * @param repairParam
+ * @return
+ */
+ List repairList(Repair repairParam);
/**
* 维修工 工单 数量统计
@@ -38,12 +37,6 @@ public interface RepairMapper {
*/
Integer workerRepairNumber(@Param("userId") String userId, @Param("type") String type);
- /**
- * 楼层管理管工单列表
- * @param floorerId 楼层管理员id
- * @return
- */
- List floorRepairList(@Param("floorerId") String floorerId, @Param("type") String type, @Param("repairName") String repairName);
/**
* 新增工单
*
diff --git a/shoot-hand/ics-admin/src/main/java/com/ics/admin/service/IRepairService.java b/shoot-hand/ics-admin/src/main/java/com/ics/admin/service/IRepairService.java
index cc9a095..730c467 100644
--- a/shoot-hand/ics-admin/src/main/java/com/ics/admin/service/IRepairService.java
+++ b/shoot-hand/ics-admin/src/main/java/com/ics/admin/service/IRepairService.java
@@ -36,24 +36,17 @@ public interface IRepairService {
Repair selectRepairById(Long id);
/**
- * @param menu 1.普通用户,3派单员,5维修人, 7管理员
* 查询工单列表
+ * role 1.普通用户,3派单员,5维修人, 7管理员, 9 楼层管理员
+ * @param repairParam 工单查询参数
*/
- List repairList(String menu, String userId, String type ,String repairName);
+ List repairList(Repair repairParam);
/**
* 获取维修人员工单数量
* @param userId 用户id
*/
Map workerRepairNumber(String userId);
-
- /**
- * 楼层管理管工单列表
- * @param floorerId 管理员id
- * @return
- */
- List floorRepairList(String floorerId);
-
/**
* 新增工单
*
diff --git a/shoot-hand/ics-admin/src/main/java/com/ics/admin/service/impl/RepairServiceImpl.java b/shoot-hand/ics-admin/src/main/java/com/ics/admin/service/impl/RepairServiceImpl.java
index 2817eb4..0b4c78d 100644
--- a/shoot-hand/ics-admin/src/main/java/com/ics/admin/service/impl/RepairServiceImpl.java
+++ b/shoot-hand/ics-admin/src/main/java/com/ics/admin/service/impl/RepairServiceImpl.java
@@ -1,11 +1,13 @@
package com.ics.admin.service.impl;
import com.ics.admin.domain.Repair;
+import com.ics.admin.domain.RepairDeviceType;
import com.ics.admin.domain.RepairLog;
import com.ics.admin.domain.RepairRelational;
import com.ics.admin.domain.RepairRemind;
import com.ics.admin.mapper.IcsCustomerStaffMapper;
import com.ics.admin.mapper.RepairAttachMapper;
+import com.ics.admin.mapper.RepairDeviceTypeMapper;
import com.ics.admin.mapper.RepairLogMapper;
import com.ics.admin.mapper.RepairMapper;
import com.ics.admin.mapper.RepairRelationalMapper;
@@ -45,6 +47,9 @@ public class RepairServiceImpl implements IRepairService {
@Autowired
private ISnService snService;
+ @Autowired
+ private RepairDeviceTypeMapper repairDeviceTypeMapper;
+
@Autowired
private RepairRelationalMapper repairRelationalMapper;
@@ -116,12 +121,16 @@ public class RepairServiceImpl implements IRepairService {
//没有设置维修人员则到派单环节,否则到“修理工是否接收”环节
to = repair.getRepairUserId() == null ? 1 : 5;
if (repair.getTypeId() == null) return "表单设备类型数据为空";
+ RepairDeviceType repairDeviceType=repairDeviceTypeMapper.selectRepairDeviceTypeById(repair.getTypeId());
+ if (repairDeviceType == null) return "设备类型无效";
List listRelational = repairRelationalMapper.selectDispatcherByTypeId(repair.getTypeId());
if (listRelational == null || listRelational.size() == 0) return "根据表单设备类型找不到派单员";
nextUser = customerStaffMapper.selectIcsCustomerStaffById(listRelational.get(0).getUserId());//查询派单员
if (nextUser == null) return "没有找到派单员账号";
repair.setSn(snService.generate(Sn.Type.REPAIR));//编单号
repair.setPerUserId(nextUser.getId());//设置派单员
+ int days=repairDeviceType.getDays();
+ repair.setPreDate(new Date(now.getTime() + (days * 24 * 60 * 60 * 1000)));//设置预计完成时间
repair.setTimeout(1);//告警默认绿色
repair.setWarn(1);//预警默认绿色
repair.setDeleteFlag(0);
@@ -139,7 +148,8 @@ public class RepairServiceImpl implements IRepairService {
nextUser = customerStaffMapper.selectIcsCustomerStaffById(repair.getRepairUserId());
if (nextUser == null) return "派单没有找到下一步执行人";
newRepair.setRepairUserId(nextUser.getId());
- newRepair.setPreDate(repair.getPreDate());//设置预计完成时间
+ newRepair.setRepairLevel(repair.getRepairLevel());//设置故障等级
+ //newRepair.setPreDate(repair.getPreDate());//设置预计完成时间
}
if (FlowOperate.BACK.equals(operate)) {
to = 3;
@@ -337,14 +347,8 @@ public class RepairServiceImpl implements IRepairService {
* 查询工单列表
*/
@Override
- public List repairList(String menu, String userId, String type, String repairName) {
- List list = null;
- //1.普通用户,3派单员,5维修人, 7管理员 ,9楼层管理员
- if ("9".equals(menu)) list = repairMapper.floorRepairList(userId, type, repairName);
- if ("7".equals(menu)) list = repairMapper.adminRepairList(userId, type, repairName);
- if ("5".equals(menu)) list = repairMapper.workRepairList(userId, type, repairName);
- if ("3".equals(menu)) list = repairMapper.preRepairList(userId, type, repairName);
- if ("1".equals(menu)) list = repairMapper.normalRepairList(userId, type, repairName);
+ public List repairList(Repair repairParam) {
+ List list = repairMapper.repairList(repairParam);
if (list != null && list.size() > 0) {
for (Repair repair : list) {
if (repair.getPerUserId() != null && repair.getPerUserId() > 0) {
@@ -380,11 +384,6 @@ public class RepairServiceImpl implements IRepairService {
return map;
}
- @Override
- public List floorRepairList(String floorerId) {
- return repairMapper.floorRepairList(floorerId, "all", null);
- }
-
/**
* 新增工单
*
diff --git a/shoot-hand/ics-admin/src/main/java/com/ics/admin/utils/RepairListDTO.java b/shoot-hand/ics-admin/src/main/java/com/ics/admin/utils/RepairListDTO.java
new file mode 100644
index 0000000..ee56427
--- /dev/null
+++ b/shoot-hand/ics-admin/src/main/java/com/ics/admin/utils/RepairListDTO.java
@@ -0,0 +1,26 @@
+package com.ics.admin.utils;
+
+import com.ics.admin.domain.Repair;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 工单列表查询 传输参数体
+ * created at 2024-8-21 22:28
+ *
+ * @author lujiang
+ * @version 1.0.0
+ * @since 1.0.0
+ */
+@Data
+public class RepairListDTO implements Serializable {
+ private static final long serialVersionUID = -202408212230L;
+
+ private String role;
+
+ private String type;
+
+ private Repair repair;
+
+}
diff --git a/shoot-hand/ics-admin/src/main/resources/mapper/admin/RepairAddressFloorMapper.xml b/shoot-hand/ics-admin/src/main/resources/mapper/admin/RepairAddressFloorMapper.xml
index d60132d..250da27 100644
--- a/shoot-hand/ics-admin/src/main/resources/mapper/admin/RepairAddressFloorMapper.xml
+++ b/shoot-hand/ics-admin/src/main/resources/mapper/admin/RepairAddressFloorMapper.xml
@@ -8,8 +8,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+
+
+
+
@@ -20,7 +24,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
- SELECT id, address_id, name, admin_Id, remark, delete_flag, create_by, create_time, update_by, update_time, tenant_id, park_id FROM ics_repair_address_floor
+ SELECT id, address_id, name, bm, admin_Id, remark, ext1, ext2, ext3, delete_flag, create_by, create_time, update_by, update_time, tenant_id, park_id FROM ics_repair_address_floor