From 8203359e4e68775b3ce0e540837bf3332d970798 Mon Sep 17 00:00:00 2001 From: zhangherong <571457620@qq.com> Date: 星期五, 09 五月 2025 11:38:49 +0800 Subject: [PATCH] art: 设备管理-维修看板-维修工排名统计 --- lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamRepairOrderService.java | 13 ++++++ lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/RepairmanRankingVO.java | 15 +++++++ lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamRepairOrderMapper.xml | 11 +++++ lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamDashboardController.java | 33 +++++++++++++--- lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java | 6 +++ lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamRepairOrderMapper.java | 9 ++++ lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/EquipmentRepairListVO.java | 9 ++++ 7 files changed, 89 insertions(+), 7 deletions(-) diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamDashboardController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamDashboardController.java index 20a427c..3e184b8 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamDashboardController.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamDashboardController.java @@ -13,10 +13,7 @@ import org.jeecg.modules.eam.constant.EquipmentMaintenanceStatus; import org.jeecg.modules.eam.constant.EquipmentRepairStatus; import org.jeecg.modules.eam.entity.EamEquipment; -import org.jeecg.modules.eam.service.IEamEquipmentService; -import org.jeecg.modules.eam.service.IEamInspectionOrderService; -import org.jeecg.modules.eam.service.IEamReportRepairService; -import org.jeecg.modules.eam.service.IEamWeekMaintenanceOrderService; +import org.jeecg.modules.eam.service.*; import org.jeecg.modules.eam.vo.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -43,9 +40,11 @@ private IEamWeekMaintenanceOrderService weekMaintenanceOrderService; @Resource private ObjectMapper objectMapper; - @Resource private TranslateDictTextUtils translateDictTextUtils; + @Autowired + private IEamRepairOrderService repairOrderService; + @ApiOperation(value = "鐪嬫澘鎺ュ彛-缁翠繚鐘舵�佺粺璁�", notes = "鐪嬫澘鎺ュ彛-缁翠繚鐘舵�佺粺璁�") @GetMapping(value = "/equipmentStatusStatistics") @@ -194,6 +193,28 @@ @ApiOperation(value = "缁翠慨鐪嬫澘-缁翠慨宸ユ帓鍚�", notes = "缁翠慨鐪嬫澘-缁翠慨宸ユ帓鍚�") @GetMapping(value = "/repairmanRanking") public Result<?> repairmanRanking() { - return null; + LocalDate today = LocalDate.now(); + LocalDate end = today.plusDays(1); + LocalDate start = today.minusDays(30); + //鍙彇鍓�7鍚� + List<RepairmanRankingVO> list = repairOrderService.repairmanRanking(start.toString(), end.toString()); + if(CollectionUtil.isEmpty(list)) { + return Result.ok(Collections.emptyList()); + } + if(list.size() > 7) { + list = list.subList(0, 7); + } + List<JSONObject> items = new ArrayList<>(); + try { + for(RepairmanRankingVO vo : list) { + String json = objectMapper.writeValueAsString(vo); + JSONObject item = JSONObject.parseObject(json, Feature.OrderedField); + translateDictTextUtils.translateField("repairer", vo.getRepairer(), item, "sys_user,realname,username"); + items.add(item); + } + return Result.OK(items); + }catch (Exception e) { + return Result.error("鏁版嵁杞瘧澶辫触锛�"); + } } } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamRepairOrderMapper.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamRepairOrderMapper.java index 90b1277..60c33b8 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamRepairOrderMapper.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamRepairOrderMapper.java @@ -6,6 +6,7 @@ import org.jeecg.modules.eam.entity.EamRepairOrder; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.jeecg.modules.eam.request.EamRepairOrderQuery; +import org.jeecg.modules.eam.vo.RepairmanRankingVO; import java.util.List; @@ -26,4 +27,12 @@ * @return */ IPage<EamRepairOrder> pageList(Page<EamRepairOrder> page, @Param("eamRepairOrder") EamRepairOrderQuery eamRepairOrder, @Param("userId") String userId, @Param("equipmentIds") List<String> equipmentIds); + + /** + * 缁熻缁翠慨鎺掑悕 + * @param start + * @param end + * @return + */ + List<RepairmanRankingVO> repairmanRanking(String start, String end); } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamRepairOrderMapper.xml b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamRepairOrderMapper.xml index b20669f..1f65d48 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamRepairOrderMapper.xml +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamRepairOrderMapper.xml @@ -45,4 +45,15 @@ </where> ORDER BY t1.create_time DESC </select> + + <select id="repairmanRanking" resultType="org.jeecg.modules.eam.vo.RepairmanRankingVO"> + select t.repairer, COUNT(1) as repairNumber + from eam_repair_order t + where t.repair_status = 'COMPLETE' + and t.del_flag = 0 + and t.actual_end_time >= #{start} + and t.actual_end_time < #{end} + group by t.repairer + order by repairNumber desc + </select> </mapper> \ No newline at end of file diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamRepairOrderService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamRepairOrderService.java index 4faae6e..e9e68e4 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamRepairOrderService.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamRepairOrderService.java @@ -2,12 +2,15 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import org.jeecg.modules.eam.entity.EamRepairOrder; import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.eam.entity.EamRepairOrder; import org.jeecg.modules.eam.request.EamRepairOrderQuery; import org.jeecg.modules.eam.request.EamRepairOrderRequest; import org.jeecg.modules.eam.request.EamRepairOrderResponse; import org.jeecg.modules.eam.request.EamReportRepairQuery; +import org.jeecg.modules.eam.vo.RepairmanRankingVO; + +import java.util.List; /** * @Description: 缁翠慨宸ュ崟 @@ -44,4 +47,12 @@ * @param eamReportRepairQuery */ void assign(EamReportRepairQuery eamReportRepairQuery); + + /** + * 缁翠慨鎺掑悕缁熻 + * @param start + * @param end + * @return + */ + List<RepairmanRankingVO> repairmanRanking(String start, String end); } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java index b86ab14..794d524 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java @@ -30,6 +30,7 @@ import org.jeecg.modules.eam.service.IEamEquipmentService; import org.jeecg.modules.eam.service.IEamRepairOrderService; import org.jeecg.modules.eam.service.IEamReportRepairService; +import org.jeecg.modules.eam.vo.RepairmanRankingVO; import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness; import org.jeecg.modules.flowable.apithird.business.service.IFlowMyBusinessService; import org.jeecg.modules.flowable.apithird.service.FlowCallBackServiceI; @@ -188,6 +189,11 @@ } } + @Override + public List<RepairmanRankingVO> repairmanRanking(String start, String end) { + return this.baseMapper.repairmanRanking(start, end); + } + /** * 娴佺▼鎿嶄綔 * diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/EquipmentRepairListVO.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/EquipmentRepairListVO.java index cf5ee86..5bcc529 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/EquipmentRepairListVO.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/EquipmentRepairListVO.java @@ -1,6 +1,7 @@ package org.jeecg.modules.eam.vo; import lombok.Data; +import org.jeecg.modules.mdc.util.DateUtils; import java.io.Serializable; import java.util.Date; @@ -47,4 +48,12 @@ * 宸ュ崟鐘舵�� */ private String reportStatus; + + //璁$畻 鏁呴殰鎸佺画鏃堕暱 鍒嗛挓 + public Integer getFaultDuration() { + if (faultStartTime != null) { + return DateUtils.differentMinutes(faultStartTime, new Date()); + } + return null; + } } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/RepairmanRankingVO.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/RepairmanRankingVO.java new file mode 100644 index 0000000..fd5611e --- /dev/null +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/RepairmanRankingVO.java @@ -0,0 +1,15 @@ +package org.jeecg.modules.eam.vo; + +import lombok.Data; + +@Data +public class RepairmanRankingVO { + /** + * 缁翠慨浜� + */ + private String repairer; + /** + * 缁翠慨鏁伴噺 + */ + private Integer repairNumber; +} -- Gitblit v1.9.3