From ad8a38fb97f8bd9fd4077c9e576f54e48aec5151 Mon Sep 17 00:00:00 2001 From: lujiang Date: Fri, 23 Aug 2024 09:46:37 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=90=84=E8=A7=92=E8=89=B2=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E6=9F=A5=E8=AF=A2=E5=8F=98=E6=9B=B4=EF=BC=8C=E6=95=85?= =?UTF-8?q?=E9=9A=9C=E7=AD=89=E7=BA=A7=E7=94=B1=E6=B4=BE=E5=8D=95=E5=91=98?= =?UTF-8?q?=E5=A1=AB=E5=86=99=EF=BC=8C=E8=AE=BE=E5=A4=87=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=AD=97=E6=AE=B5=EF=BC=8C=E6=A5=BC=E5=B1=82?= =?UTF-8?q?=E5=A2=9E=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 @@ -30,14 +34,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" INSERT INTO ics_repair_device_type name, + `days`, remark, + ext1, + ext2, + ext3, delete_flag, create_by, create_time, @@ -49,6 +57,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{name}, #{remark}, + #{ext1}, + #{ext2}, + #{ext3}, #{deleteFlag}, #{createBy}, #{createTime}, @@ -63,7 +74,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" UPDATE ics_repair_device_type name = #{name}, + `days` = #{days}, remark = #{remark}, + ext1 = #{ext1}, + ext2 = #{ext2}, + ext3 = #{ext3}, delete_flag = #{deleteFlag}, create_by = #{createBy}, create_time = #{createTime}, diff --git a/shoot-hand/ics-admin/src/main/resources/mapper/admin/RepairMapper.xml b/shoot-hand/ics-admin/src/main/resources/mapper/admin/RepairMapper.xml index ea1d000..5014461 100644 --- a/shoot-hand/ics-admin/src/main/resources/mapper/admin/RepairMapper.xml +++ b/shoot-hand/ics-admin/src/main/resources/mapper/admin/RepairMapper.xml @@ -201,50 +201,59 @@ WHERE id = #{id} - - - - - - - - + + + SELECT * FROM ics_repair rep where delete_flag = 0 + + + select rep.* from ics_repair rep,ics_repair_address_floor floor where + rep.delete_flag=0 and floor.delete_flag=0 and floor.id=rep.floor_id and floor.admin_id= #{params.userId} + + and create_by = #{params.userId} + and per_userid = #{params.userId} + and repair_user_id = #{params.userId} + + + + and rep.status <=7 + and rep.status = 9 + and rep.status = 13 + and rep.status = 11 + + + and status = 1 + =5 and status<=13 and status<> 11)]]> + + + + and status = 5 + and status = 7 + and (status = 9 or status = 13) + + + + and status = 1 + and status = 3 + =5 and status<=13 and status<> 11)]]> + + and rep.create_time between #{params.beginTime} and #{params.endTime} + AND rep.sn LIKE CONCAT('%', #{sn}, '%') + AND rep.repair_level LIKE CONCAT('%', #{repairLevel}, '%') + AND rep.type_id = #{typeId} + AND rep.device_id = #{deviceId} + AND rep.name LIKE CONCAT('%', #{name}, '%') + AND rep.phone LIKE CONCAT('%', #{phone}, '%') + AND rep.address_id = #{addressId} + AND rep.floor_id = #{floorId} + AND rep.room LIKE CONCAT('%', #{room}, '%') + AND rep.`explain` LIKE CONCAT('%', #{explain}, '%') + AND rep.failure_type_id = #{failureTypeId} order by create_time desc + - - - DELETE FROM ics_repair WHERE id = #{id} From 6ae3116e45820ff27bc217f860b37a3f20aca835 Mon Sep 17 00:00:00 2001 From: lujiang Date: Fri, 23 Aug 2024 15:53:38 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=9B=B4=E6=94=B9=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/controller/RepairController.java | 14 -- .../controller/RepairStatsController.java | 64 +++++-- .../admin/service/IRepairStatsService.java | 12 +- .../service/impl/RepairStatsServiceImpl.java | 160 +++++++++--------- 4 files changed, 136 insertions(+), 114 deletions(-) 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 11e70c7..3de5247 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 @@ -84,20 +84,6 @@ public class RepairController extends BaseController { return toAjax(repairService.eval(repairDTO.getRepair(), userId)); } - /** - * 工单列表 - * menu:1.报修查询,3派单入口,5维修入口, 7 管理员,9 楼层管理员 - *

- * 报修查询:全部、处理中、待评价、已评价、无效申请 type对应值:all、process、evaling、evaled、invalid - * 派单入口:重新派单、待派单、已派单、已关闭(无效申请) type对应值:anew、wait、already、close - * 维修入口:待完成、进行中、已完成 type对应值:wait、working、close - * 管理员:重派单,全部,无效申请 type对应值:anew、all、invalid 【小程序暂时用不到】 - * 楼层管理员:全部、无效申请 type对应值:all、invalid - * - * name : 工单描述搜索关键字 - *

- */ - /** * 工单列表 * role 1.普通用户,3派单员,5维修人员, 7管理员, 9 楼层管理员 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 3236406..da37f19 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 @@ -9,11 +9,13 @@ import com.ics.admin.service.IRepairService; import com.ics.admin.service.IRepairStatsService; import com.ics.common.core.controller.BaseController; import com.ics.common.core.domain.R; +import com.ics.common.utils.DateUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.wf.jwtp.annotation.RequiresPermissions; +import java.util.Date; import java.util.HashMap; import java.util.Map; @@ -99,49 +101,89 @@ public class RepairStatsController extends BaseController { /** * 第二、三行 工单统计、工单完成情况、评价情况 + * 日期格式示例:2024-08-23 + * @param type repair 工单统计 end 工单完成情况 eval 评价情况 */ @RequiresPermissions(value = {"repair:manage:operator"}) @RequestMapping("repairStats") - public R repairStats() { - return R.ok().put("currentMonth", repairWorkerStatsService.repairStats(true)) - .put("currentYear", repairWorkerStatsService.repairStats(false)); + public R repairStats(String startDate, String endDate, String type) { + Date start, end; + try { + start = DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, startDate + " 00:00:00"); + end = DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, endDate + " 23:59:59"); + } catch (Exception e) { + return R.error("参数错误"); + } + return R.ok().put("data", repairWorkerStatsService.repairStats(start, end, type)); } /** * 第四行 左侧 楼层负责人情况统计 + * 日期格式示例:2024-08-23 */ @RequiresPermissions(value = {"repair:manage:operator"}) @RequestMapping("floorStats") - public R floorStats(String date) { - return R.ok().put("data", repairWorkerStatsService.floorStats(date)); + public R floorStats(String startDate, String endDate) { + Date start, end; + try { + start = DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, startDate + " 00:00:00"); + end = DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, endDate + " 23:59:59"); + } catch (Exception e) { + return R.error("参数错误"); + } + return R.ok().put("data", repairWorkerStatsService.floorStats(start, end)); } /** * 第四行 右上 设备故障统计 + * 日期格式示例:2024-08-23 */ @RequiresPermissions(value = {"repair:manage:operator"}) @RequestMapping("deviceStats") - public R deviceStats(String date) { - return R.ok().put("data", repairWorkerStatsService.deviceStats(date)); + public R deviceStats(String startDate, String endDate) { + Date start, end; + try { + start = DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, startDate + " 00:00:00"); + end = DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, endDate + " 23:59:59"); + } catch (Exception e) { + return R.error("参数错误"); + } + return R.ok().put("data", repairWorkerStatsService.deviceStats(start, end)); } /** * 第四行 右下 故障类型统计 + * 日期格式示例:2024-08-23 */ @RequiresPermissions(value = {"repair:manage:operator"}) @RequestMapping("failureStats") - public R failureStats(String date) { - return R.ok().put("data", repairWorkerStatsService.failureStats(date)); + public R failureStats(String startDate, String endDate) { + Date start, end; + try { + start = DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, startDate + " 00:00:00"); + end = DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, endDate + " 23:59:59"); + } catch (Exception e) { + return R.error("参数错误"); + } + return R.ok().put("data", repairWorkerStatsService.failureStats(start, end)); } /** * 第五行 设备、品牌、评价 统计 + * 日期格式示例:2024-08-23 */ @RequiresPermissions(value = {"repair:manage:operator"}) @RequestMapping("deviceTypeStats") - public R deviceTypeStats(String date) { + public R deviceTypeStats(String startDate, String endDate) { + Date start, end; + try { + start = DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, startDate + " 00:00:00"); + end = DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, endDate + " 23:59:59"); + } catch (Exception e) { + return R.error("参数错误"); + } startPage(); - return result(repairWorkerStatsService.deviceTypeStats(date)); + return result(repairWorkerStatsService.deviceTypeStats(start, end)); } } diff --git a/shoot-hand/ics-admin/src/main/java/com/ics/admin/service/IRepairStatsService.java b/shoot-hand/ics-admin/src/main/java/com/ics/admin/service/IRepairStatsService.java index bd71fe9..536039e 100644 --- a/shoot-hand/ics-admin/src/main/java/com/ics/admin/service/IRepairStatsService.java +++ b/shoot-hand/ics-admin/src/main/java/com/ics/admin/service/IRepairStatsService.java @@ -43,28 +43,28 @@ public interface IRepairStatsService { /** * 第二、三行 工单统计、工单完成情况、评价情况 * - * @param isMonth true 本月,false 本年 + * @param type repair 工单统计 end 工单完成情况 eval 评价情况 * @return */ - Map repairStats(boolean isMonth); + Map repairStats(Date start, Date end, String type); /** * 第四行 左侧 楼层负责人情况统计 */ - Map floorStats(String date); + Map floorStats(Date start, Date end); /** * 第四行 右上 设备故障统计 */ - Map deviceStats(String date); + Map deviceStats(Date start, Date end); /** * 第四行 右下 故障类型统计 */ - List> failureStats(String date); + List> failureStats(Date start, Date end); /** * 第五行 设备、品牌、评价 统计 */ - List deviceTypeStats(String date); + List deviceTypeStats(Date start, Date end); } diff --git a/shoot-hand/ics-admin/src/main/java/com/ics/admin/service/impl/RepairStatsServiceImpl.java b/shoot-hand/ics-admin/src/main/java/com/ics/admin/service/impl/RepairStatsServiceImpl.java index 87bb6a5..6efd3d3 100644 --- a/shoot-hand/ics-admin/src/main/java/com/ics/admin/service/impl/RepairStatsServiceImpl.java +++ b/shoot-hand/ics-admin/src/main/java/com/ics/admin/service/impl/RepairStatsServiceImpl.java @@ -62,38 +62,38 @@ public class RepairStatsServiceImpl implements IRepairStatsService { } @Override - public Map repairStats(boolean isMonth) { - List list = isMonth ? - repairStatsMapper.repairStats(getDate(null, 2, true), getDate(null, 2, false)) : - repairStatsMapper.repairStats(getDate(null, 3, true), getDate(null, 3, false)); - - if (list == null || list.size() == 0) return null; - RepairStatsVo repairStatsVo = list.get(0); + public Map repairStats(Date start, Date end, String type) { + List list = repairStatsMapper.repairStats(start, end); Map map = new HashMap<>(); - map.put("stats", repairStatsVo); - List> wc = new ArrayList<>(); - wc.add(getMap("已完成", repairStatsVo.getWc())); - wc.add(getMap("未完成", repairStatsVo.getZs() - repairStatsVo.getWc())); - map.put("wc", wc); - List> timeout = new ArrayList<>(); - timeout.add(getMap("严重超时", repairStatsVo.getHtimeout())); - timeout.add(getMap("超时", repairStatsVo.getMtimeout())); - timeout.add(getMap("轻微超时", repairStatsVo.getLtimeout())); - timeout.add(getMap("未超时", repairStatsVo.getNtimeout())); - map.put("timeout", timeout); - List> pj = new ArrayList<>(); - pj.add(getMap("好评", repairStatsVo.getH())); - pj.add(getMap("中评", repairStatsVo.getM())); - pj.add(getMap("差评", repairStatsVo.getL())); - map.put("pj", pj); + if (list == null || list.size() == 0) return map; + RepairStatsVo repairStatsVo = list.get(0); + if ("repair".equals(type)) { + map.put("stats", repairStatsVo); + } else if ("end".equals(type)) { + List> wc = new ArrayList<>(); + wc.add(getMap("已完成", repairStatsVo.getWc())); + wc.add(getMap("未完成", repairStatsVo.getZs() - repairStatsVo.getWc())); + map.put("wc", wc); + List> timeout = new ArrayList<>(); + timeout.add(getMap("严重超时", repairStatsVo.getHtimeout())); + timeout.add(getMap("超时", repairStatsVo.getMtimeout())); + timeout.add(getMap("轻微超时", repairStatsVo.getLtimeout())); + timeout.add(getMap("未超时", repairStatsVo.getNtimeout())); + map.put("timeout", timeout); + } else if ("eval".equals(type)) { + List> pj = new ArrayList<>(); + pj.add(getMap("好评", repairStatsVo.getH())); + pj.add(getMap("中评", repairStatsVo.getM())); + pj.add(getMap("差评", repairStatsVo.getL())); + map.put("pj", pj); + + } return map; } @Override - public Map floorStats(String date) { - Date[] dates = getStartEndTime(date); - if (dates == null) return null; - List list = repairStatsMapper.floorStats(dates[0], dates[1]); + public Map floorStats(Date start, Date end) { + List list = repairStatsMapper.floorStats(start, end); List y = new ArrayList<>(); List zs = new ArrayList<>(); List wc = new ArrayList<>(); @@ -110,10 +110,8 @@ public class RepairStatsServiceImpl implements IRepairStatsService { } @Override - public Map deviceStats(String date) { - Date[] dates = getStartEndTime(date); - if (dates == null) return null; - List list = repairStatsMapper.deviceStats(dates[0], dates[1]); + public Map deviceStats(Date start, Date end) { + List list = repairStatsMapper.deviceStats(start, end); List x = new ArrayList<>(); List zs = new ArrayList<>(); List wc = new ArrayList<>(); @@ -130,10 +128,8 @@ public class RepairStatsServiceImpl implements IRepairStatsService { } @Override - public List> failureStats(String date) { - Date[] dates = getStartEndTime(date); - if (dates == null) return null; - List list = repairStatsMapper.failureStats(dates[0], dates[1]); + public List> failureStats(Date start, Date end) { + List list = repairStatsMapper.failureStats(start, end); List> data = new ArrayList<>(); for (RepairFloorStatsVo repairFloorStatsVo : list) { data.add(getMap(repairFloorStatsVo.getName(), repairFloorStatsVo.getZs())); @@ -142,10 +138,8 @@ public class RepairStatsServiceImpl implements IRepairStatsService { } @Override - public List deviceTypeStats(String date) { - Date[] dates = getStartEndTime(date); - if (dates == null) return null; - List list = repairStatsMapper.deviceTypeStats(dates[0], dates[1]); + public List deviceTypeStats(Date start, Date end) { + List list = repairStatsMapper.deviceTypeStats(start, end); for (RepairDivceTypeStatsVo rdtStatsVo : list) { rdtStatsVo.setWcl(compute(rdtStatsVo.getClosed(), rdtStatsVo.getZs())); rdtStatsVo.setHl(compute(rdtStatsVo.getH(), rdtStatsVo.getPj())); @@ -169,25 +163,25 @@ public class RepairStatsServiceImpl implements IRepairStatsService { /** * 解析开始时间和结束时间 */ - private Date[] getStartEndTime(String date) { - if (StringUtils.isBlank(date)) return null; - Date startTime, endTime; - try { - if (date.indexOf("-") > 1) {//年月 - String[] ym = date.split("-"); - Calendar calendar = getCalendar(Integer.valueOf(ym[0]), Integer.valueOf(ym[1])); - startTime = getDate(calendar, 2, true); - endTime = getDate(calendar, 2, false); - } else {//年 - Calendar calendar = getCalendar(Integer.valueOf(date), 0); - startTime = getDate(calendar, 3, true); - endTime = getDate(calendar, 3, false); - } - return new Date[]{startTime, endTime}; - } catch (NumberFormatException e) { - return null; - } - } +// private Date[] getStartEndTime(String date) { +// if (StringUtils.isBlank(date)) return null; +// Date startTime, endTime; +// try { +// if (date.indexOf("-") > 1) {//年月 +// String[] ym = date.split("-"); +// Calendar calendar = getCalendar(Integer.valueOf(ym[0]), Integer.valueOf(ym[1])); +// startTime = getDate(calendar, 2, true); +// endTime = getDate(calendar, 2, false); +// } else {//年 +// Calendar calendar = getCalendar(Integer.valueOf(date), 0); +// startTime = getDate(calendar, 3, true); +// endTime = getDate(calendar, 3, false); +// } +// return new Date[]{startTime, endTime}; +// } catch (NumberFormatException e) { +// return null; +// } +// } private Map getMap(String name, Object value) { Map map = new HashMap<>(); @@ -199,12 +193,12 @@ public class RepairStatsServiceImpl implements IRepairStatsService { /** * 获取指定年月的日历 Calendar c = getCalendar(2024, 9); */ - private Calendar getCalendar(int year, int month) { - Calendar calendar = Calendar.getInstance(); - calendar.set(Calendar.YEAR, year); - calendar.set(Calendar.MONTH, month > 0 ? month - 1 : month); - return calendar; - } +// private Calendar getCalendar(int year, int month) { +// Calendar calendar = Calendar.getInstance(); +// calendar.set(Calendar.YEAR, year); +// calendar.set(Calendar.MONTH, month > 0 ? month - 1 : month); +// return calendar; +// } /** * 获取边界日期 @@ -214,23 +208,23 @@ public class RepairStatsServiceImpl implements IRepairStatsService { * @param start ture 开始时间 false 结束时间 * @return */ - private Date getDate(Calendar calendar, int type, boolean start) { - if (calendar == null) calendar = Calendar.getInstance(); - String time = start ? " 00:00:00" : " 23:59:59"; - if (type == 1) { - calendar.setFirstDayOfWeek(Calendar.MONDAY); - calendar.set(Calendar.DAY_OF_WEEK, calendar.getFirstDayOfWeek()); - if (!start) calendar.add(Calendar.DAY_OF_MONTH, 6); - return DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, DateUtils.dateTime(calendar.getTime()) + time); - } - if (type == 2) { - calendar.set(Calendar.DAY_OF_MONTH, start ? calendar.getActualMinimum(Calendar.DAY_OF_MONTH) : calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); - return DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, DateUtils.dateTime(calendar.getTime()) + time); - } - if (type == 3) { - calendar.set(Calendar.DAY_OF_YEAR, start ? calendar.getActualMinimum(Calendar.DAY_OF_YEAR) : calendar.getActualMaximum(Calendar.DAY_OF_YEAR)); - return DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, DateUtils.dateTime(calendar.getTime()) + time); - } - return null; - } +// private Date getDate(Calendar calendar, int type, boolean start) { +// if (calendar == null) calendar = Calendar.getInstance(); +// String time = start ? " 00:00:00" : " 23:59:59"; +// if (type == 1) { +// calendar.setFirstDayOfWeek(Calendar.MONDAY); +// calendar.set(Calendar.DAY_OF_WEEK, calendar.getFirstDayOfWeek()); +// if (!start) calendar.add(Calendar.DAY_OF_MONTH, 6); +// return DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, DateUtils.dateTime(calendar.getTime()) + time); +// } +// if (type == 2) { +// calendar.set(Calendar.DAY_OF_MONTH, start ? calendar.getActualMinimum(Calendar.DAY_OF_MONTH) : calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); +// return DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, DateUtils.dateTime(calendar.getTime()) + time); +// } +// if (type == 3) { +// calendar.set(Calendar.DAY_OF_YEAR, start ? calendar.getActualMinimum(Calendar.DAY_OF_YEAR) : calendar.getActualMaximum(Calendar.DAY_OF_YEAR)); +// return DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, DateUtils.dateTime(calendar.getTime()) + time); +// } +// return null; +// } }