From 15ae1e3b5cda40a8248a1addf4a64c1e0a9e2b13 Mon Sep 17 00:00:00 2001 From: qushaowei <qushaowei@163.com> Date: 星期五, 12 七月 2024 18:02:04 +0800 Subject: [PATCH] 设备管理修改 --- lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/RepairOrderController.java | 220 +++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 189 insertions(+), 31 deletions(-) diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/RepairOrderController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/RepairOrderController.java index c37f1dd..96a5797 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/RepairOrderController.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/RepairOrderController.java @@ -1,5 +1,6 @@ package org.jeecg.modules.eam.controller; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -18,13 +19,19 @@ import org.jeecg.common.system.vo.LoginUser; import org.jeecg.common.util.oConvertUtils; import org.jeecg.modules.eam.entity.*; +import org.jeecg.modules.eam.mapper.RepairOrderMapper; import org.jeecg.modules.eam.service.*; +import org.jeecg.modules.eam.vo.EquipmentAvailabilityVo; +import org.jeecg.modules.eam.vo.RepairReportExportVo; +import org.jeecg.modules.system.entity.SysUser; +import org.jeecg.modules.system.mapper.SysUserMapper; import org.jeecgframework.poi.excel.ExcelImportUtil; import org.jeecgframework.poi.excel.def.NormalExcelConstants; import org.jeecgframework.poi.excel.entity.ExportParams; import org.jeecgframework.poi.excel.entity.ImportParams; import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Lazy; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; @@ -36,6 +43,7 @@ import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.math.BigDecimal; +import java.text.ParseException; import java.util.*; import java.util.stream.Collectors; @@ -96,6 +104,12 @@ @Autowired @Lazy private IdentityService sysIdentityService; + @Autowired + private RepairOrderMapper repairOrderMapper; + @Autowired + private SysUserMapper sysUserMapper; + @Value("${jeecg.path.upload}") + private String upLoadPath; @@ -121,28 +135,38 @@ HttpServletRequest req) { Page<RepairOrder> page = new Page<RepairOrder>(pageNo, pageSize); IPage<RepairOrder> pageList = repairOrderService.getRepairOrderList(page, repairOrder); - for(RepairOrder repairOrder1 : pageList.getRecords()){ - if(StringUtils.isNotBlank(repairOrder1.getReportRepairId())){ - EquipmentReportRepair equipmentReportRepair = equipmentReportRepairService.getById(repairOrder1.getReportRepairId()); - repairOrder1.setReportRepairNum(equipmentReportRepair.getNum()); - } - if(StringUtils.isNotBlank(repairOrder1.getProjectMaintenanceOrderId())){ - ProjectMaintenanceOrderDetail projectMaintenanceOrderDetail = projectMaintenanceOrderDetailService.getById(repairOrder1.getProjectMaintenanceOrderId()); - repairOrder1.setProjectMaintenanceOrderNum(projectMaintenanceOrderDetail.getTaskNum()); - } + List<RepairOrder> records = pageList.getRecords(); + for (RepairOrder record : records) { + record.setFaultCauseCount("鏁呴殰鍘熷洜缁熻"); + List<Map<String, Object>> allFaultCause = repairOrderService.getAllFaultCause(); + record.setAllFaultCause(allFaultCause); - String id = repairOrder1.getId(); - QueryWrapper<RepairOrderActualWorkHours> wrapper = new QueryWrapper<>(); - wrapper.eq("repair_order_id", id) - .eq("del_flag", 0); - wrapper.select("sum(actual_hour) as actualHour"); - Map<String, Object> map = repairOrderActualWorkHoursService.getMap(wrapper); - BigDecimal actualHour = new BigDecimal(0); - if (map != null) { - actualHour = (BigDecimal) map.get("actualHour"); - } - repairOrder1.setActualHour(actualHour); + String equipmentId = record.getEquipmentId(); + List<Map<String, Object>> faultCause = repairOrderService.getFaultCause(equipmentId); + record.setEquipmentFaultCause(faultCause); } +// for(RepairOrder repairOrder1 : pageList.getRecords()){ +// if(StringUtils.isNotBlank(repairOrder1.getReportRepairId())){ +// EquipmentReportRepair equipmentReportRepair = equipmentReportRepairService.getById(repairOrder1.getReportRepairId()); +// repairOrder1.setReportRepairNum(equipmentReportRepair.getNum()); +// } +// if(StringUtils.isNotBlank(repairOrder1.getProjectMaintenanceOrderId())){ +// ProjectMaintenanceOrderDetail projectMaintenanceOrderDetail = projectMaintenanceOrderDetailService.getById(repairOrder1.getProjectMaintenanceOrderId()); +// repairOrder1.setProjectMaintenanceOrderNum(projectMaintenanceOrderDetail.getTaskNum()); +// } +// +// String id = repairOrder1.getId(); +// QueryWrapper<RepairOrderActualWorkHours> wrapper = new QueryWrapper<>(); +// wrapper.eq("repair_order_id", id) +// .eq("del_flag", 0); +// wrapper.select("sum(actual_hour) as actualHour"); +// Map<String, Object> map = repairOrderActualWorkHoursService.getMap(wrapper); +// BigDecimal actualHour = new BigDecimal(0); +// if (map != null) { +// actualHour = (BigDecimal) map.get("actualHour"); +// } +// repairOrder1.setActualHour(actualHour); +// } return Result.OK(pageList); } @@ -318,15 +342,54 @@ return Result.OK("鎵归噺鍒犻櫎鎴愬姛!"); } - /** - * 瀵煎嚭 - * @return - */ - //@RequiresPermissions("org.jeecg.modules.demo:mom_eam_repair_order:exportXls") - @RequestMapping(value = "/exportXls") - public ModelAndView exportXls(HttpServletRequest request, RepairOrder repairOrder) { - return super.exportXls(request, repairOrder, RepairOrder.class, "缁翠慨宸ュ崟"); - } + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, RepairOrder repairOrder) { + // Step.1 缁勮鏌ヨ鏉′欢 + String title = "缁翠慨灞ュ巻"; + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + // Step.2 鑾峰彇瀵煎嚭鏁版嵁 + if(StringUtils.isNotBlank(repairOrder.getUserId())){ + SysUser user = sysUserMapper.selectById(repairOrder.getUserId()); + repairOrder.setTeamId(user.getTeamId()); + }else{ + repairOrder.setTeamId(""); + } + List<String> equipNums = new ArrayList<>(); + if(StringUtils.isNotBlank(repairOrder.getNums())){ + equipNums = Arrays.asList(repairOrder.getNums().trim().split("\n")).stream().filter(num->!num.equals("\n")).collect(Collectors.toList()); + } + List<RepairOrder> exportList = repairOrderMapper.getRepairOrderList(null,repairOrder.getId(), + repairOrder.getNum(), + repairOrder.getEquipmentNum(), + repairOrder.getEquipmentName(), + repairOrder.getStatus(), + repairOrder.getRepairOrderType(), + repairOrder.getEquipmentCategoryId(), + repairOrder.getFactoryModelId(), + repairOrder.getSpecificEquipment(), + repairOrder.getTeamId(), + equipNums, + repairOrder.getRepairOrderUda1(), + repairOrder.getFaultStartTime(), + repairOrder.getFaultEndTime(), + repairOrder.getCreateStartTime(), + repairOrder.getCreateEndTime(), + repairOrder.getEquipmentImportanceId(), + repairOrder.getFaultCause()); + + // Step.3 AutoPoi 瀵煎嚭Excel + ModelAndView mv = new ModelAndView(new JeecgEntityExcelView()); + //姝ゅ璁剧疆鐨刦ilename鏃犳晥 ,鍓嶇浼氶噸鏇存柊璁剧疆涓�涓� + mv.addObject(NormalExcelConstants.FILE_NAME, title); + mv.addObject(NormalExcelConstants.CLASS, RepairOrder.class); + //update-begin--Author:liusq Date:20210126 for锛氬浘鐗囧鍑烘姤閿欙紝ImageBasePath鏈缃�-------------------- + ExportParams exportParams=new ExportParams(title + "鎶ヨ〃", "瀵煎嚭浜�:" + sysUser.getRealname(), title); + exportParams.setImageBasePath(upLoadPath); + //update-end--Author:liusq Date:20210126 for锛氬浘鐗囧鍑烘姤閿欙紝ImageBasePath鏈缃�---------------------- + mv.addObject(NormalExcelConstants.PARAMS,exportParams); + mv.addObject(NormalExcelConstants.DATA_LIST, exportList); + return mv; + } /** * 瀵煎叆 @@ -1544,6 +1607,15 @@ @PutMapping(value = "/report") @Transactional(rollbackFor = {Exception.class}) public Result<?> orderReport(@RequestBody RepairOrder repairOrder){ + String id = repairOrder.getId(); + List<RepairOrderActualWorkHours> hoursList = repairOrderActualWorkHoursService.list(new QueryWrapper<RepairOrderActualWorkHours>().eq("repair_order_id",id).eq("del_flag",0)); + List<RepairOrderActualWorkHours> mainStuff = repairOrderActualWorkHoursService.list(new QueryWrapper<RepairOrderActualWorkHours>().eq("repair_order_id",id).eq("del_flag",0).eq("principal_contractor","1")); + if(hoursList.size()<2){ + return Result.error("鎿嶄綔澶辫触锛岃鑷冲皯娣诲姞涓や釜鎵夸慨浜猴紝骞朵笖璁剧疆涓�涓富鎵夸慨浜�"); + } + if(mainStuff.size()!=1){ + return Result.error("鎿嶄綔澶辫触锛岃璁剧疆涓绘壙淇汉锛屾湁涓斿彧鏈変竴涓�"); + } if(StringUtils.isNotBlank(repairOrder.getProjectMaintenanceOrderId())){ //鍒ゆ柇椤圭洰鎬х淮淇瓙琛ㄧ姸鎬� ProjectMaintenanceOrderDetail projectMaintenanceOrderDetail = projectMaintenanceOrderDetailService.getById(repairOrder.getProjectMaintenanceOrderId()); @@ -1584,8 +1656,13 @@ repairOrder.setStatus("4"); repairOrder.setActualEndTime(now); repairOrder.setActualHour(hours); - repairOrder.setRecipientUserId(user.getId()); + repairOrder.setRecipientUserId(mainStuff.get(0).getUserId()); repairOrderService.updateById(repairOrder); + if(StringUtils.isNotBlank(repairOrder.getEquipmentId())){ + Equipment equipment = equipmentService.getById(repairOrder.getEquipmentId()); + equipment.setEquipmentStatus("4"); + equipmentService.updateById(equipment); + } return Result.OK("鎶ュ伐鎴愬姛"); } /** @@ -1647,6 +1724,11 @@ repairOrder.setRepairOrderUda2(new Date()); repairOrder.setRepairOrderUda1("needSpare"); repairOrderService.updateById(repairOrder); + if(StringUtils.isNotBlank(repairOrder.getEquipmentId())){ + Equipment equipment = equipmentService.getById(repairOrder.getEquipmentId()); + equipment.setEquipmentStatus("8"); + equipmentService.updateById(equipment); + } return Result.OK("鎿嶄綔鎴愬姛"); } /** @@ -1666,6 +1748,11 @@ repairOrder.setRepairOrderUda1("normal"); repairOrder.setSpareTime(hours); repairOrderService.updateById(repairOrder); + if(StringUtils.isNotBlank(repairOrder.getEquipmentId())){ + Equipment equipment = equipmentService.getById(repairOrder.getEquipmentId()); + equipment.setEquipmentStatus("7"); + equipmentService.updateById(equipment); + } return Result.OK("鎿嶄綔鎴愬姛"); } /** @@ -1679,6 +1766,11 @@ repairOrder.setRepairOrderUda4(new Date()); repairOrder.setRepairOrderUda1("needPart"); repairOrderService.updateById(repairOrder); + if(StringUtils.isNotBlank(repairOrder.getEquipmentId())){ + Equipment equipment = equipmentService.getById(repairOrder.getEquipmentId()); + equipment.setEquipmentStatus("9"); + equipmentService.updateById(equipment); + } return Result.OK("鎿嶄綔鎴愬姛"); } /** @@ -1698,6 +1790,72 @@ repairOrder.setRepairOrderUda1("normal"); repairOrder.setPartTime(hours); repairOrderService.updateById(repairOrder); + if(StringUtils.isNotBlank(repairOrder.getEquipmentId())){ + Equipment equipment = equipmentService.getById(repairOrder.getEquipmentId()); + equipment.setEquipmentStatus("7"); + equipmentService.updateById(equipment); + } return Result.OK("鎿嶄綔鎴愬姛"); } -} + + /** + * 璁惧瀹屽ソ鐜� + * + * @return + */ + @GetMapping("/equipmentAvailability") + public JSONObject equipmentAvailability(@RequestParam Map<String, String> query) throws ParseException { + List<EquipmentAvailabilityVo> list = repairOrderService.equipmentAvailability(query); + JSONObject jsonObject = new JSONObject(); + jsonObject.put("data",list); + return jsonObject; + } + + /** + * 璁惧鍙紑鍔ㄧ巼 + * + * @return + */ + @GetMapping("/getStartRate") + public JSONObject getStartRate(@RequestParam Map<String, String> query) throws ParseException { + List<EquipmentAvailabilityVo> list = repairOrderService.getStartRate(query); + JSONObject jsonObject = new JSONObject(); + jsonObject.put("data",list); + return jsonObject; + } + + + /** + * 璁惧缁翠慨鏌辩姸鍥� + * qsw 2024-7-11 + */ + @GetMapping("getFaultCausePie") + public Result<?> getFaultCausePie(@RequestParam Map<String, Object> params) { + List<Map<String, Object>> faultCausePie = repairOrderService.getFaultCausePie(params); + return Result.ok(faultCausePie); + } + + /** + * 璁惧缁翠慨鎵囧舰鍥� + * qsw 2024-7-11 + */ + @GetMapping("getFaultCauseBar") + public Result<?> getFaultCauseBar(@RequestParam Map<String, Object> params) { + List<Map<String, Object>> faultCauseBar = repairOrderService.getFaultCauseBar(params); + return Result.ok(faultCauseBar); + } + + + /** + * MTPF + * qsw 2024-7-11 + */ + @GetMapping("getMTPF") + public Result<?> getMTPF(@RequestParam("pageNo") Integer pageNo, + @RequestParam("pageSize") Integer pageSize, + @RequestParam Map<String, Object> params) { + IPage<Map<String, Object>> mtpf = repairOrderService.getMTPF(pageNo, pageSize, params); + return Result.ok(mtpf); + } + + } -- Gitblit v1.9.3