From 904857328b498d25dd9fe9c814fc626952a03c83 Mon Sep 17 00:00:00 2001 From: sunjianxi <839419401@qq.com> Date: Fri, 24 Jan 2025 15:23:45 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=9F=E8=83=BD=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../business/contraller/DeviceController.java | 18 ++++++++++ .../contraller/WorkOrderController.java | 6 ++-- .../business/mapper/WorkOrderMapper.xml | 2 +- .../service/impl/WorkOrderServiceImpl.java | 32 ++++++++++-------- .../system/controller/UserController.java | 4 ++- .../excel/WorkOrderServiceSheet.xlsx | Bin 11734 -> 11855 bytes 6 files changed, 44 insertions(+), 18 deletions(-) diff --git a/src/main/java/org/springblade/modules/business/contraller/DeviceController.java b/src/main/java/org/springblade/modules/business/contraller/DeviceController.java index ee816ff..cd4fbf2 100644 --- a/src/main/java/org/springblade/modules/business/contraller/DeviceController.java +++ b/src/main/java/org/springblade/modules/business/contraller/DeviceController.java @@ -31,6 +31,8 @@ import org.springblade.modules.business.pojo.dto.DeviceDTO; import org.springblade.modules.business.pojo.entity.Device; import org.springblade.modules.business.pojo.entity.DeviceAttach; import org.springblade.modules.business.pojo.entity.DeviceMaintenance; +import org.springblade.modules.business.pojo.entity.maintenance.MaintenanceTask; +import org.springblade.modules.business.pojo.entity.supplies.Apply; import org.springblade.modules.business.pojo.vo.DeviceVO; import org.springblade.modules.business.service.IDeviceAttachService; import org.springblade.modules.business.service.IDeviceMaintenanceService; @@ -225,7 +227,23 @@ public class DeviceController extends BladeController { @GetMapping("/export-device") @Operation(summary = "导出设备", description = "传入") public void exportDevice(@Parameter(hidden = true) @RequestParam Map device, HttpServletResponse response) { + BladeUser user = AuthUtil.getUser(); + QueryWrapper queryWrapper = Condition.getQueryWrapper(device, Device.class); + if (!user.getRoleName().contains("administrator") && !user.getRoleName().contains("admin")) { + List deptIds = null; + if(user.getRoleName().equals("客服") || user.getRoleName().equals("维修负责人") || user.getRoleName().equals("维修人员")){ + String deptId = user.getDeptId(); + List deptList = deptService.list(Wrappers.lambdaQuery(Dept.class).eq(Dept::getParentId,deptId).eq(Dept::getIsDeleted,0)); + if(CollectionUtil.isNotEmpty(deptList)){ + deptIds = deptList.stream().map(Dept::getId).map(x->x+"").collect(Collectors.toList()); + } + queryWrapper.in("lims_id",deptIds); + }else{ + queryWrapper.in("lims_id",user.getDeptId()); + } + + } List list = deviceService.exportDevice(queryWrapper); ExcelUtil.export(response, "设备数据" + DateUtil.time(), "设备数据表", list, DeviceExcel.class); } diff --git a/src/main/java/org/springblade/modules/business/contraller/WorkOrderController.java b/src/main/java/org/springblade/modules/business/contraller/WorkOrderController.java index 0ff8c3f..1ea1e70 100644 --- a/src/main/java/org/springblade/modules/business/contraller/WorkOrderController.java +++ b/src/main/java/org/springblade/modules/business/contraller/WorkOrderController.java @@ -297,7 +297,7 @@ public class WorkOrderController extends BladeController { } // todo 审核通过 User user = userService.getById(workOrder.getRepairPerson()); - LogUtil.saveLog(workOrderOld.getRequirementCode(), WorkOrderStatusEnum.KF_ORDER_ALLOT.getName() + ":" + user.getRealName()); + LogUtil.saveLog(workOrderOld.getRequirementCode(), WorkOrderStatusEnum.KF_ORDER_ALLOT.getName() + ":" + user.getRealName() + ",并完善故障信息"); return R.success(""); } @@ -520,7 +520,9 @@ public class WorkOrderController extends BladeController { workOrderOld.setStatus(WorkOrderStatusEnum.KF_REPAIR_FINISH.getValue()); workOrderService.updateById(workOrderOld); User customer = userService.getById(workOrder.getInformant()); - messageService.saveMessage(workOrder.getRequirementCode(), "请注意维修单评价", customer.getId(), 2); + if(customer != null){ + messageService.saveMessage(workOrder.getRequirementCode(), "请注意维修单评价", customer.getId(), 2); + } LogUtil.saveLog(workOrderOld.getRequirementCode(), WorkOrderStatusEnum.KF_REPAIR_FINISH.getName()); return R.success(""); } diff --git a/src/main/java/org/springblade/modules/business/mapper/WorkOrderMapper.xml b/src/main/java/org/springblade/modules/business/mapper/WorkOrderMapper.xml index 30a634d..682e13c 100644 --- a/src/main/java/org/springblade/modules/business/mapper/WorkOrderMapper.xml +++ b/src/main/java/org/springblade/modules/business/mapper/WorkOrderMapper.xml @@ -92,7 +92,7 @@ FROM lab_work_order WHERE is_deleted = 0 - AND DATE_FORMAT( create_time, '%Y-%m' ) = DATE_FORMAT( NOW(), '%Y-%m' ) + AND DATE_FORMAT( create_time, '%Y' ) = DATE_FORMAT( NOW(), '%Y' ) AND device_id = #{deviceId} diff --git a/src/main/java/org/springblade/modules/business/service/impl/WorkOrderServiceImpl.java b/src/main/java/org/springblade/modules/business/service/impl/WorkOrderServiceImpl.java index 3d701ce..52ce76c 100644 --- a/src/main/java/org/springblade/modules/business/service/impl/WorkOrderServiceImpl.java +++ b/src/main/java/org/springblade/modules/business/service/impl/WorkOrderServiceImpl.java @@ -352,12 +352,12 @@ public class WorkOrderServiceImpl extends BaseServiceImpl selectEquipRepairCountByMonth(String deviceId) { String startDate = DateFormatUtils.format(CommonDateUtil.getCurrentYearStartTime(), "yyyy-MM-dd HH:mm:ss"); String endDate = DateFormatUtils.format(CommonDateUtil.getCurrentYearEndTime(), "yyyy-MM-dd HH:mm:ss"); - List monthList = CommonDateUtil.getMonthList(startDate, endDate, "yyyy-MM"); + List monthList = CommonDateUtil.getMonthList(startDate, endDate, "MM"); List> list = baseMapper.selectEquipRepairCountByMonth(deviceId); List dataList = new ArrayList<>(); Map dataMap = new HashMap<>(); for (Map map1 : list) { - dataMap.put(map1.get("month").toString(), map1.get("duration").toString()); + dataMap.put(map1.get("month").toString(), map1.get("count").toString()); } for (String month : monthList) { if (null != dataMap.get(month)) { @@ -489,7 +489,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl userList = userService.list(Wrappers.lambdaQuery(User.class).eq(User::getRoleId, role)); @@ -551,7 +551,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl finishTime = Optional.ofNullable(workOrder.getFinishTime()); @@ -662,7 +664,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl limsId = Optional.ofNullable(device.get().getLimsId()); if (limsId.isPresent()) { - map.put("in", total + (workOrder.getLaborCost() == null ? 0 : workOrder.getLaborCost())); + map.put("in", String.format("%.2f",workOrder.getDiscountPrice() + (workOrder.getLaborCost() == null ? 0 : workOrder.getLaborCost()))); map.put("out", "--"); map.put("sel1", "√"); map.put("sel2", null); @@ -670,7 +672,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl finishTime = Optional.ofNullable(workOrder.getFinishTime()); @@ -778,21 +782,21 @@ public class WorkOrderServiceImpl extends BaseServiceImpl limsId = Optional.ofNullable(device.get().getLimsId()); if (limsId.isPresent()) { - map.put("in", total + workOrder.getLaborCost()); + map.put("in", String.format("%.2f",workOrder.getDiscountPrice() + (workOrder.getLaborCost() != null ? workOrder.getLaborCost() : 0))); map.put("out", "--"); map.put("sel1", "√"); map.put("sel2", null); map.put("inTravel", workOrder.getTravelExpense()); } else { map.put("in", "--"); - map.put("out", total + workOrder.getLaborCost()); + map.put("out", String.format("%.2f",total + (workOrder.getLaborCost() != null ? workOrder.getLaborCost() : 0))); map.put("sel2", "√"); map.put("sel1", null); map.put("outTravel", workOrder.getTravelExpense()); } } else { map.put("in", "--"); - map.put("out", total + workOrder.getLaborCost()); + map.put("out", String.format("%.2f",total + (workOrder.getLaborCost() != null ? workOrder.getLaborCost() : 0))); map.put("sel2", "√"); map.put("sel1", null); map.put("outTravel", workOrder.getTravelExpense()); diff --git a/src/main/java/org/springblade/modules/system/controller/UserController.java b/src/main/java/org/springblade/modules/system/controller/UserController.java index ba659ba..6460324 100644 --- a/src/main/java/org/springblade/modules/system/controller/UserController.java +++ b/src/main/java/org/springblade/modules/system/controller/UserController.java @@ -363,7 +363,9 @@ public class UserController { if(user.getRoleName().equals("客服") || user.getRoleName().equals("维修负责人") || user.getRoleName().equals("维修人员")){ users = userService.list(Wrappers.lambdaQuery(User.class).eq(User::getRoleId, "1839552581620793346").eq(User::getDeptId,user.getDeptId())); }else{ - users = userService.list(Wrappers.lambdaQuery(User.class).eq(User::getRoleId, "1839552581620793346").eq(User::getParentDeptId,user.getDeptId())); + //客户需要查询所属运维中心下的维修人员 + User user1 = userService.getById(user.getUserId()); + users = userService.list(Wrappers.lambdaQuery(User.class).eq(User::getRoleId, "1839552581620793346").eq(User::getDeptId,user1.getParentDeptId())); } }else{ users = userService.list(Wrappers.lambdaQuery(User.class).eq(User::getRoleId, "1839552581620793346")); diff --git a/src/main/resources/excel/WorkOrderServiceSheet.xlsx b/src/main/resources/excel/WorkOrderServiceSheet.xlsx index 9d59238f95d118e439185ded6a6aa8dc9c0a790d..d1532c9bf6304d7c53216334ee83a65f725a52d9 100644 GIT binary patch delta 7462 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 T|EB(f^(Pgxu^@0W|0Dhn^t(&X delta 7376 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 ZCo=!NGy5myzaKRMC1qtoY-9LG@;@dQ{d@ob