From 919519dc613e658fa6b387e0eb4dfac476f55291 Mon Sep 17 00:00:00 2001 From: sunjianxi <839419401@qq.com> Date: Mon, 20 Jan 2025 14:53:08 +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 | 24 ++- .../contraller/FeedbackController.java | 24 ++- .../contraller/InvoiceApplyController.java | 33 +++- .../contraller/MaintenanceController.java | 28 +++- .../contraller/WorkBenchesController.java | 85 ++++++++--- .../contraller/WorkOrderController.java | 18 ++- .../contraller/supplies/ApplyController.java | 9 +- .../contraller/supplies/GoodsController.java | 8 +- .../supplies/GoodsDetailController.java | 66 ++++++++ .../modules/business/mapper/DeviceMapper.java | 4 +- .../modules/business/mapper/DeviceMapper.xml | 6 + .../business/mapper/GoodsDetailMapper.java | 36 +++++ .../business/mapper/GoodsDetailMapper.xml | 44 ++++++ .../business/mapper/InvoiceApplyMapper.java | 2 +- .../business/mapper/InvoiceApplyMapper.xml | 12 ++ .../mapper/MaintenanceTaskMapper.java | 4 +- .../business/mapper/MaintenanceTaskMapper.xml | 12 ++ .../business/mapper/WorkOrderMapper.java | 10 +- .../business/mapper/WorkOrderMapper.xml | 27 ++++ .../entity/maintenance/MaintenanceTask.java | 5 + .../pojo/entity/supplies/GoodsDetail.java | 143 ++++++++++++++++++ .../pojo/entity/workorder/WorkOrder.java | 5 + .../business/service/IDeviceService.java | 4 +- .../service/IInvoiceApplyService.java | 4 +- .../business/service/IWorkOrderService.java | 2 +- .../service/impl/DeviceServiceImpl.java | 8 +- .../service/impl/InvoiceApplyServiceImpl.java | 4 +- .../impl/MaintenanceTaskServiceImpl.java | 16 +- .../service/impl/WorkOrderServiceImpl.java | 35 ++++- .../impl/supplies/GoodsDetailServiceImpl.java | 40 +++++ .../impl/supplies/InOrderServiceImpl.java | 11 ++ .../service/supplies/IGoodsDetailService.java | 24 +++ .../system/controller/DeptController.java | 25 ++- .../system/controller/UserController.java | 5 +- .../controller/UserRegisterController.java | 21 +-- .../modules/system/mapper/DeptMapper.java | 4 +- .../modules/system/mapper/DeptMapper.xml | 23 ++- .../modules/system/pojo/entity/Dept.java | 1 + .../modules/system/pojo/entity/User.java | 10 ++ .../modules/system/service/IDeptService.java | 4 +- .../system/service/impl/DeptServiceImpl.java | 8 +- 41 files changed, 764 insertions(+), 90 deletions(-) create mode 100644 src/main/java/org/springblade/modules/business/contraller/supplies/GoodsDetailController.java create mode 100644 src/main/java/org/springblade/modules/business/mapper/GoodsDetailMapper.java create mode 100644 src/main/java/org/springblade/modules/business/mapper/GoodsDetailMapper.xml create mode 100644 src/main/java/org/springblade/modules/business/pojo/entity/supplies/GoodsDetail.java create mode 100644 src/main/java/org/springblade/modules/business/service/impl/supplies/GoodsDetailServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/business/service/supplies/IGoodsDetailService.java 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 2e40694..8aff288 100644 --- a/src/main/java/org/springblade/modules/business/contraller/DeviceController.java +++ b/src/main/java/org/springblade/modules/business/contraller/DeviceController.java @@ -14,11 +14,14 @@ import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springblade.core.boot.ctrl.BladeController; import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.mp.base.BaseEntity; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.BladeUser; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.core.tool.utils.CollectionUtil; import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.Func; import org.springblade.modules.business.excel.DeviceExcel; @@ -32,12 +35,15 @@ import org.springblade.modules.business.pojo.vo.DeviceVO; import org.springblade.modules.business.service.IDeviceAttachService; import org.springblade.modules.business.service.IDeviceMaintenanceService; import org.springblade.modules.business.service.IDeviceService; +import org.springblade.modules.system.pojo.entity.Dept; import org.springblade.modules.system.pojo.entity.User; +import org.springblade.modules.system.service.IDeptService; import org.springblade.modules.system.service.IUserService; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import java.util.*; +import java.util.stream.Collectors; /** * 设备表 控制器 @@ -55,6 +61,7 @@ public class DeviceController extends BladeController { private final IDeviceAttachService deviceAttachService; private final IDeviceMaintenanceService maintenanceService; private final IUserService userService; + private final IDeptService deptService; /** * 设备表 详情 @@ -86,6 +93,19 @@ public class DeviceController extends BladeController { throw new IllegalArgumentException("User not authenticated"); } LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(Device.class); + + BladeUser user = AuthUtil.getUser(); + if (!user.getRoleName().contains("administrator") && !user.getRoleName().contains("admin")) { + List deptIds = null; + 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()); + } + wrapper.in(Device::getLimsId,deptIds); + } + + wrapper.like(StringUtils.isNotBlank(device.getName()), Device::getName, device.getName()); wrapper.eq(StringUtils.isNotBlank(device.getPosition()), Device::getPosition, device.getPosition()); wrapper.eq(StringUtils.isNotBlank(device.getType()), Device::getType, device.getType()); @@ -94,8 +114,8 @@ public class DeviceController extends BladeController { wrapper.eq(device.getLimsId() != null, Device::getLimsId, device.getLimsId()); wrapper.eq(device.getRunStatus() != null, Device::getRunStatus, device.getRunStatus()); if (device.getCreateUser() != null) { - User user = userService.getById(device.getCreateUser()); - wrapper.eq(Device::getLimsId, user.getDeptId()); + User user1 = userService.getById(device.getCreateUser()); + wrapper.eq(Device::getLimsId, user1.getDeptId()); } // wrapper.eq(Device::getCreateUser, AuthUtil.getUserId()); wrapper.orderByDesc(Device::getCreateTime); diff --git a/src/main/java/org/springblade/modules/business/contraller/FeedbackController.java b/src/main/java/org/springblade/modules/business/contraller/FeedbackController.java index eb243b9..02bcd7b 100644 --- a/src/main/java/org/springblade/modules/business/contraller/FeedbackController.java +++ b/src/main/java/org/springblade/modules/business/contraller/FeedbackController.java @@ -11,8 +11,11 @@ import org.springblade.common.cache.DictBizCache; import org.springblade.common.cache.UserCache; import org.springblade.core.boot.ctrl.BladeController; import org.springblade.core.log.annotation.ApiLog; +import org.springblade.core.mp.base.BaseEntity; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.CollectionUtil; import org.springblade.core.tool.utils.Func; @@ -21,11 +24,15 @@ import org.springblade.modules.business.pojo.entity.Attachs; import org.springblade.modules.business.pojo.entity.Feedback; import org.springblade.modules.business.service.IAttachaService; import org.springblade.modules.business.service.IFeedbackService; +import org.springblade.modules.system.pojo.entity.Dept; import org.springblade.modules.system.pojo.entity.User; +import org.springblade.modules.system.service.IDeptService; +import org.springblade.modules.system.service.IUserService; import org.springframework.web.bind.annotation.*; import java.util.Date; import java.util.List; +import java.util.stream.Collectors; import static org.springblade.common.enums.DictBizEnum.FEED_BACK_TYPE; @@ -43,6 +50,7 @@ public class FeedbackController extends BladeController { private final IFeedbackService feedbackService; private final IAttachaService attachService; + private final IDeptService deptService; /** * 意见反馈表 详情 @@ -70,14 +78,26 @@ public class FeedbackController extends BladeController { @ApiOperationSupport(order = 2) public R> list(FeedbackDTO feedback, Query query) { LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(feedback); + BladeUser user = AuthUtil.getUser(); + if(!user.getRoleName().contains("administrator") && !user.getRoleName().contains("admin")){ + List deptIds = null; + 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()); + } + wrapper.in(BaseEntity::getCreateDept,deptIds); + } + wrapper.like(StringUtils.isNotBlank(feedback.getUnitName()), Feedback::getUnitName, feedback.getUnitName()); wrapper.between(feedback.getStartTime() != null && feedback.getEndTime() != null, Feedback::getCreateTime, feedback.getStartTime(), feedback.getEndTime()); wrapper.orderByDesc(Feedback::getCreateTime); + IPage pages = feedbackService.page(Condition.getPage(query), wrapper); List records = pages.getRecords(); for (Feedback record : records) { - User user = UserCache.getUser(record.getCreateUser()); - record.setFeedUser(user != null ? user.getRealName() : ""); + User user1 = UserCache.getUser(record.getCreateUser()); + record.setFeedUser(user1 != null ? user1.getRealName() : ""); record.setTypeName(DictBizCache.getValue(FEED_BACK_TYPE, record.getType())); // 附件内容查询 diff --git a/src/main/java/org/springblade/modules/business/contraller/InvoiceApplyController.java b/src/main/java/org/springblade/modules/business/contraller/InvoiceApplyController.java index e720eaf..67a02af 100644 --- a/src/main/java/org/springblade/modules/business/contraller/InvoiceApplyController.java +++ b/src/main/java/org/springblade/modules/business/contraller/InvoiceApplyController.java @@ -8,10 +8,13 @@ import io.swagger.v3.oas.annotations.tags.Tag; import lombok.AllArgsConstructor; import org.springblade.common.constant.CommonConstant; import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.mp.base.BaseEntity; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.BladeUser; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.CollectionUtil; import org.springblade.core.tool.utils.Func; import org.springblade.modules.business.enums.InvoiceEnum; import org.springblade.modules.business.pojo.dto.InvoiceApplyDto; @@ -19,9 +22,15 @@ import org.springblade.modules.business.pojo.entity.InvoiceApply; import org.springblade.modules.business.pojo.entity.InvoiceApplyDetail; import org.springblade.modules.business.service.IInvoiceApplyDetailService; import org.springblade.modules.business.service.IInvoiceApplyService; +import org.springblade.modules.system.pojo.entity.Dept; +import org.springblade.modules.system.pojo.entity.User; +import org.springblade.modules.system.service.IDeptService; +import org.springblade.modules.system.service.IUserService; import org.springframework.web.bind.annotation.*; +import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; /** * 发票申请控制器 @@ -38,16 +47,38 @@ public class InvoiceApplyController extends BladeController { private final IInvoiceApplyDetailService applyDetailService; + private final IDeptService deptService; + @GetMapping("/finish-work-list") @Operation(summary = "列表", description = "列表") public R finishWorkList(Query query) { - return R.data(applyService.finishWorkList(query)); + BladeUser user = AuthUtil.getUser(); + List deptIds = null; + if(!user.getRoleName().contains("administrator") && !user.getRoleName().contains("admin")){ + if(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()); + } + }else{ + deptIds = new ArrayList<>(); + String deptId = user.getDeptId(); + deptIds.add(deptId); + } + + } + return R.data(applyService.finishWorkList(query,deptIds)); } @GetMapping("/page") @Operation(summary = "列表", description = "列表") public R> page(InvoiceApply apply, Query query) { LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(apply).orderByDesc(InvoiceApply::getCreateTime); + BladeUser user = AuthUtil.getUser(); + if(!user.getRoleName().contains("administrator") && !user.getRoleName().contains("admin")){ + wrapper.eq(BaseEntity::getCreateDept,user.getDeptId()); + } IPage pages = this.applyService.page(Condition.getPage(query), wrapper); return R.data(pages); } diff --git a/src/main/java/org/springblade/modules/business/contraller/MaintenanceController.java b/src/main/java/org/springblade/modules/business/contraller/MaintenanceController.java index 2dfb34d..5d39156 100644 --- a/src/main/java/org/springblade/modules/business/contraller/MaintenanceController.java +++ b/src/main/java/org/springblade/modules/business/contraller/MaintenanceController.java @@ -11,11 +11,13 @@ import jakarta.servlet.http.HttpServletResponse; import lombok.AllArgsConstructor; import org.springblade.common.constant.CommonConstant; import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.mp.base.BaseEntity; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.secure.BladeUser; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.CollectionUtil; import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.Func; import org.springblade.modules.business.enums.MaintenanceStatusEnum; @@ -26,7 +28,9 @@ import org.springblade.modules.business.pojo.entity.maintenance.MaintenanceTask; import org.springblade.modules.business.pojo.entity.maintenance.MaintenanceTaskDetail; import org.springblade.modules.business.service.*; import org.springblade.modules.business.sms.SmsService; +import org.springblade.modules.system.pojo.entity.Dept; import org.springblade.modules.system.pojo.entity.User; +import org.springblade.modules.system.service.IDeptService; import org.springblade.modules.system.service.IUserService; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; @@ -37,6 +41,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Optional; +import java.util.stream.Collectors; /** * 维保控制器 @@ -58,6 +63,7 @@ public class MaintenanceController extends BladeController { private final SmsService smsService; private final IMessageService messageService; private final IUserService userService; + private final IDeptService deptService; /*---------- 维修计划开始 ----------*/ @@ -68,7 +74,7 @@ public class MaintenanceController extends BladeController { User user = userService.getById(AuthUtil.getUserId()); LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(plan).orderByDesc(MaintenancePlan::getCreateTime); if (!bladeUser.getRoleName().contains("administrator") && !bladeUser.getRoleName().contains("admin") && !user.getRoleId().equals("1839536982874193922")) { - wrapper.eq(MaintenancePlan::getDeptId, bladeUser.getDeptId()); + wrapper.eq(MaintenancePlan::getCreateDept, bladeUser.getDeptId()); } IPage pages = this.planService.page(Condition.getPage(query), wrapper); return R.data(pages); @@ -135,6 +141,15 @@ public class MaintenanceController extends BladeController { wrapper.in(MaintenanceTask::getTaskStatus, taskStatusList); wrapper.eq(MaintenanceTask::getServicemanId, user.getUserId()); } + if(user.getRoleName().equals("维修负责人")){ + List deptIds = null; + 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()); + } + wrapper.in(MaintenanceTask::getDeptId,deptIds); + } wrapper.like(StringUtils.isNotBlank(task.getDeptName()), MaintenanceTask::getDeptName, task.getDeptName()); IPage pages = taskService.page(Condition.getPage(query), wrapper); return R.data(pages); @@ -280,6 +295,17 @@ public class MaintenanceController extends BladeController { if (Func.isNotEmpty(task.getTaskStatus())) { wrapper.eq(MaintenanceTask::getTaskStatus, task.getTaskStatus()); } + BladeUser user = AuthUtil.getUser(); + if (!user.getRoleName().contains("administrator") && !user.getRoleName().contains("admin")) { + List deptIds = null; + 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()); + } + wrapper.in(MaintenanceTask::getDeptId,deptIds); + } + IPage pages = taskService.page(Condition.getPage(query), wrapper); return R.data(pages); } diff --git a/src/main/java/org/springblade/modules/business/contraller/WorkBenchesController.java b/src/main/java/org/springblade/modules/business/contraller/WorkBenchesController.java index 30ff94f..ed5b1bc 100644 --- a/src/main/java/org/springblade/modules/business/contraller/WorkBenchesController.java +++ b/src/main/java/org/springblade/modules/business/contraller/WorkBenchesController.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.mp.base.BaseEntity; import org.springblade.core.secure.BladeUser; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; @@ -22,7 +23,9 @@ import org.springblade.modules.business.service.IDeviceService; import org.springblade.modules.business.service.IMaintenancePlanService; import org.springblade.modules.business.service.IMaintenanceTaskService; import org.springblade.modules.business.service.IWorkOrderService; +import org.springblade.modules.system.pojo.entity.Dept; import org.springblade.modules.system.pojo.entity.User; +import org.springblade.modules.system.service.IDeptService; import org.springblade.modules.system.service.IUserService; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -34,6 +37,7 @@ import java.text.SimpleDateFormat; import java.time.*; import java.time.temporal.TemporalAdjusters; import java.util.*; +import java.util.stream.Collectors; import static org.springblade.modules.business.enums.MaintenanceStatusEnum.TASK_CUSTOMER_CONFIRM; import static org.springblade.modules.business.enums.WorkOrderStatusEnum.*; @@ -55,6 +59,7 @@ public class WorkBenchesController extends BladeController { private final IWorkOrderService workOrderService; private final IDeviceService deviceService; private final IUserService userService; + private final IDeptService deptService; /** * 工作台 @@ -88,7 +93,12 @@ public class WorkBenchesController extends BladeController { // 设备报警数量 Map map3 = new HashMap<>(); map3.put("name", "设备报警"); - map3.put("num", deviceService.count(Wrappers.lambdaQuery(Device.class).eq(Device::getRunStatus, 2))); + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(Device.class); + wrapper.eq(Device::getRunStatus, 2); + if (!bladeUser.getRoleName().contains("administrator") && !bladeUser.getRoleName().contains("admin")) { + wrapper.eq(Device::getLimsId, bladeUser.getDeptId()); + } + map3.put("num", deviceService.count(wrapper)); list.add(map3); return R.data(list); } @@ -107,7 +117,13 @@ public class WorkBenchesController extends BladeController { */ @GetMapping("/deviceList") public R>> deviceList() { - List devices = deviceService.list(Wrappers.lambdaQuery(Device.class).eq(Device::getRunStatus, 2)); + BladeUser bladeUser = AuthUtil.getUser(); + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(Device.class); + wrapper.eq(Device::getRunStatus, 2); + if (!bladeUser.getRoleName().contains("administrator") && !bladeUser.getRoleName().contains("admin")) { + wrapper.eq(Device::getLimsId, bladeUser.getDeptId()); + } + List devices = deviceService.list(wrapper); List> list = new ArrayList<>(); if (CollectionUtil.isNotEmpty(devices)) { devices.forEach(device -> { @@ -128,6 +144,7 @@ public class WorkBenchesController extends BladeController { */ @GetMapping("/upkeepStat") public R> upkeepStat(@RequestParam String startTime, @RequestParam String endTime) throws ParseException { + BladeUser bladeUser = AuthUtil.getUser(); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); Map map = new HashMap<>(); List xData = new ArrayList<>(); @@ -139,11 +156,17 @@ public class WorkBenchesController extends BladeController { if (Func.isNotEmpty(startTime) && Func.isNotEmpty(endTime)) { orderWrappers.between(WorkOrder::getCreateTime, format.parse(startTime), format.parse(endTime)); } + if (!bladeUser.getRoleName().contains("administrator") && !bladeUser.getRoleName().contains("admin")) { + orderWrappers.eq(BaseEntity::getCreateDept, bladeUser.getDeptId()); + } LambdaQueryWrapper taskWrappers = Wrappers.lambdaQuery(MaintenanceTask.class); if (Func.isNotEmpty(startTime) && Func.isNotEmpty(endTime)) { taskWrappers.between(MaintenanceTask::getCreateTime, format.parse(startTime), format.parse(endTime)); } + if (!bladeUser.getRoleName().contains("administrator") && !bladeUser.getRoleName().contains("admin")) { + taskWrappers.eq(MaintenanceTask::getDeptId, bladeUser.getDeptId()); + } List workOrders = workOrderService.list(orderWrappers); List tasks = maintenanceTaskService.list(taskWrappers); @@ -167,10 +190,15 @@ public class WorkBenchesController extends BladeController { */ @GetMapping("/pieStat") public R> pieStat(String startTime, String endTime) { + BladeUser bladeUser = AuthUtil.getUser(); Map map = new HashMap<>(); - List fault = deviceService.selectTypeCount(startTime, endTime); + Long limsId = null; + if (!bladeUser.getRoleName().contains("administrator") && !bladeUser.getRoleName().contains("admin")) { + limsId = Long.parseLong(bladeUser.getDeptId()); + } + List fault = deviceService.selectTypeCount(startTime, endTime,limsId); map.put("fault", fault); - List device = deviceService.selectStatusCount(startTime, endTime); + List device = deviceService.selectStatusCount(startTime, endTime,limsId); map.put("device", device); return R.data(map); } @@ -198,7 +226,7 @@ public class WorkBenchesController extends BladeController { public R>> limsInspecList(String perType) { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); List> list = new ArrayList<>(); - List tasks = maintenanceTaskService.list(Wrappers.lambdaQuery(MaintenanceTask.class).isNotNull(MaintenanceTask::getStartTime).orderByDesc(MaintenanceTask::getStartTime)); + List tasks = maintenanceTaskService.list(Wrappers.lambdaQuery(MaintenanceTask.class).isNotNull(MaintenanceTask::getStartTime).eq(BaseEntity::getCreateDept,AuthUtil.getDeptId()).orderByDesc(MaintenanceTask::getStartTime)); for (MaintenanceTask task : tasks) { Map map = new HashMap<>(); map.put("name", task.getDeptName() + "-设备巡检"); @@ -224,27 +252,34 @@ public class WorkBenchesController extends BladeController { int todoCount = 0; int finish = 0; + BladeUser user = AuthUtil.getUser(); + List deptIds = null; + 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()); + } if ("0".equals(perType)) { // 客服今日待办 - todoCount = (int) workOrderService.count(Wrappers.lambdaQuery(WorkOrder.class).in(WorkOrder::getStatus, KH_ORDER_SUBMIT.getValue(), KH_EVALUATE_FINISH.getValue())); + todoCount = (int) workOrderService.count(Wrappers.lambdaQuery(WorkOrder.class).in(WorkOrder::getStatus, KH_ORDER_SUBMIT.getValue(), KH_EVALUATE_FINISH.getValue()).in(BaseEntity::getCreateDept,deptIds)); // 客服今日已办 - finish = (int) workOrderService.count(Wrappers.lambdaQuery(WorkOrder.class).between(WorkOrder::getDispatchTime, start, end)); + finish = (int) workOrderService.count(Wrappers.lambdaQuery(WorkOrder.class).between(WorkOrder::getDispatchTime, start, end).in(BaseEntity::getCreateDept,deptIds)); } else if ("1".equals(perType)) { // 主管今日待办 - todoCount = (int) workOrderService.count(Wrappers.lambdaQuery(WorkOrder.class).eq(WorkOrder::getStatus, WX_REPAIR_PLAN_SUBMIT.getValue())); + todoCount = (int) workOrderService.count(Wrappers.lambdaQuery(WorkOrder.class).eq(WorkOrder::getStatus, WX_REPAIR_PLAN_SUBMIT.getValue()).in(BaseEntity::getCreateDept,deptIds)); // 主管今日已办 - finish = (int) workOrderService.count(Wrappers.lambdaQuery(WorkOrder.class).between(WorkOrder::getDispatchTime, start, end)); + finish = (int) workOrderService.count(Wrappers.lambdaQuery(WorkOrder.class).between(WorkOrder::getDispatchTime, start, end).in(BaseEntity::getCreateDept,deptIds)); } LocalDate now = LocalDate.now(); // 本月已办结-需求提报 - int monthCountWork = (int) workOrderService.count(Wrappers.lambdaQuery(WorkOrder.class).eq(WorkOrder::getStatus, KF_TICKET_FINISH.getValue()).between(WorkOrder::getSignatureTime, getMonthStartAsDate(now), getMonthEndAsDate(now))); + int monthCountWork = (int) workOrderService.count(Wrappers.lambdaQuery(WorkOrder.class).eq(WorkOrder::getStatus, KF_TICKET_FINISH.getValue()).between(WorkOrder::getSignatureTime, getMonthStartAsDate(now), getMonthEndAsDate(now)).in(BaseEntity::getCreateDept,deptIds)); // 本月已办结-巡检任务 - int monthCount = (int) maintenanceTaskService.count(Wrappers.lambdaQuery(MaintenanceTask.class).eq(MaintenanceTask::getTaskStatus, TASK_CUSTOMER_CONFIRM.getValue()).between(MaintenanceTask::getFinishTime, getMonthStartAsDate(now), getMonthEndAsDate(now))); + int monthCount = (int) maintenanceTaskService.count(Wrappers.lambdaQuery(MaintenanceTask.class).eq(MaintenanceTask::getTaskStatus, TASK_CUSTOMER_CONFIRM.getValue()).between(MaintenanceTask::getFinishTime, getMonthStartAsDate(now), getMonthEndAsDate(now)).in(BaseEntity::getCreateDept,deptIds)); // 今年已办结-需求提报 - int yearCountWork = (int) workOrderService.count(Wrappers.lambdaQuery(WorkOrder.class).eq(WorkOrder::getStatus, KF_TICKET_FINISH.getValue()).between(WorkOrder::getSignatureTime, getYearStartAsDate(now), getYearEndAsDate(now))); + int yearCountWork = (int) workOrderService.count(Wrappers.lambdaQuery(WorkOrder.class).eq(WorkOrder::getStatus, KF_TICKET_FINISH.getValue()).between(WorkOrder::getSignatureTime, getYearStartAsDate(now), getYearEndAsDate(now)).in(BaseEntity::getCreateDept,deptIds)); // 今年已办结-巡检任务 - int yearCount = (int) maintenanceTaskService.count(Wrappers.lambdaQuery(MaintenanceTask.class).eq(MaintenanceTask::getTaskStatus, TASK_CUSTOMER_CONFIRM.getValue()).between(MaintenanceTask::getFinishTime, getYearStartAsDate(now), getYearEndAsDate(now))); + int yearCount = (int) maintenanceTaskService.count(Wrappers.lambdaQuery(MaintenanceTask.class).eq(MaintenanceTask::getTaskStatus, TASK_CUSTOMER_CONFIRM.getValue()).between(MaintenanceTask::getFinishTime, getYearStartAsDate(now), getYearEndAsDate(now)).in(BaseEntity::getCreateDept,deptIds)); map1.put("title", "我的任务"); map1.put("mainName", "今日待办"); @@ -263,9 +298,9 @@ public class WorkBenchesController extends BladeController { map3.put("mainName", "巡检签约"); map3.put("subName", "巡检"); // 巡检计划签约数量 - int count = (int) maintenancePlanService.count(Wrappers.lambdaQuery(MaintenancePlan.class)); + int count = (int) maintenancePlanService.count(Wrappers.lambdaQuery(MaintenancePlan.class).eq(BaseEntity::getCreateDept,user.getDeptId())); // 巡检次数 - int xjCount = (int) maintenanceTaskService.count(Wrappers.lambdaQuery(MaintenanceTask.class).eq(MaintenanceTask::getTaskStatus, TASK_CUSTOMER_CONFIRM.getValue())); + int xjCount = (int) maintenanceTaskService.count(Wrappers.lambdaQuery(MaintenanceTask.class).eq(MaintenanceTask::getTaskStatus, TASK_CUSTOMER_CONFIRM.getValue()).eq(BaseEntity::getCreateDept,user.getDeptId())); map3.put("num", count); map3.put("num1", xjCount); } else if ("1".equals(perType)) { @@ -273,7 +308,7 @@ public class WorkBenchesController extends BladeController { map3.put("mainName", "在岗"); map3.put("subName", "总计"); // 维修人员数量 - long count = userService.count(Wrappers.lambdaQuery(User.class).eq(User::getStatus, 1).eq(User::getRoleId, 1839552581620793346L)); + long count = userService.count(Wrappers.lambdaQuery(User.class).eq(User::getStatus, 1).eq(User::getRoleId, 1839552581620793346L).eq(BaseEntity::getCreateDept,user.getDeptId())); map3.put("num", count); map3.put("num1", count); } @@ -288,10 +323,17 @@ public class WorkBenchesController extends BladeController { */ @GetMapping("/limsInspecChart") public R> limsInspecChart(String startTime, String endTime, String perType) { + BladeUser user = AuthUtil.getUser(); + List deptIds = null; + 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()); + } Map map = new HashMap<>(); List xData = new ArrayList<>(); List total = new ArrayList<>(); - List list = workOrderService.selectDeptCount(startTime, endTime); + List list = workOrderService.selectDeptCount(startTime, endTime, deptIds); for (PieStatVO pieStatVO : list) { xData.add(pieStatVO.getName()); total.add(pieStatVO.getValue()); @@ -306,10 +348,15 @@ public class WorkBenchesController extends BladeController { */ @GetMapping("/faultRatio") public R> faultRatio(String startTime, String endTime, String perType) { + BladeUser bladeUser = AuthUtil.getUser(); Map map = new HashMap<>(); - List fault = deviceService.selectTypeCount(startTime, endTime); + Long limsId = null; + if (!bladeUser.getRoleName().contains("administrator") && !bladeUser.getRoleName().contains("admin")) { + limsId = Long.parseLong(bladeUser.getDeptId()); + } + List fault = deviceService.selectTypeCount(startTime, endTime,limsId); map.put("fault", fault); - List device = deviceService.selectStatusCount(startTime, endTime); + List device = deviceService.selectStatusCount(startTime, endTime,limsId); map.put("rate", device); return R.data(map); } 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 7f5f7b9..b5769ba 100644 --- a/src/main/java/org/springblade/modules/business/contraller/WorkOrderController.java +++ b/src/main/java/org/springblade/modules/business/contraller/WorkOrderController.java @@ -20,6 +20,7 @@ import org.springblade.core.mp.support.Query; import org.springblade.core.secure.BladeUser; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.CollectionUtil; import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.Func; import org.springblade.modules.business.enums.WorkOrderStatusEnum; @@ -46,6 +47,7 @@ import java.net.URLConnection; import java.net.URLEncoder; import java.util.*; import java.util.function.Consumer; +import java.util.stream.Collectors; /** * 工单表 控制器 @@ -83,6 +85,14 @@ public class WorkOrderController extends BladeController { public R> page(WorkOrderDTO workOrderDTO, Query query) { // 创建工作订单的查询条件包装器 LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(WorkOrder.class); + //客服、维修负责人查询所属运维中心下所有实验室的需求提报 + BladeUser user = AuthUtil.getUser(); + List deptIds = null; + 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()); + } // 数据权限 if (StringUtils.isNotBlank(workOrderDTO.getDataType())) { @@ -95,10 +105,12 @@ public class WorkOrderController extends BladeController { // 客服 // eq.in(WorkOrder::getCreateDept, Func.toLongList(AuthUtil.getDeptId())); wrapper.ne(WorkOrder::getStatus, WorkOrderStatusEnum.KH_ORDER_DRAFT.getValue()); + wrapper.in(WorkOrder::getReportUnit,deptIds); break; case "3": // 维修负责人 wrapper.ge(WorkOrder::getStatus, WorkOrderStatusEnum.WX_ORDER_ACCEPT.getValue()); + wrapper.in(WorkOrder::getReportUnit,deptIds); break; case "4": // 维修人员 @@ -120,10 +132,10 @@ public class WorkOrderController extends BladeController { wrapper.between(workOrderDTO.getStartTime() != null && workOrderDTO.getEndTime() != null, WorkOrder::getCreateTime, workOrderDTO.getStartTime(), workOrderDTO.getEndTime()); wrapper.orderByDesc(WorkOrder::getCreateTime); if (StringUtils.isNotBlank(workOrderDTO.getReportUnitName())) { - List deptList = deptService.list(Wrappers.lambdaQuery(Dept.class).like(Dept::getDeptName, workOrderDTO.getReportUnitName())); - if (!deptList.isEmpty()) { + List deptList1 = deptService.list(Wrappers.lambdaQuery(Dept.class).like(Dept::getDeptName, workOrderDTO.getReportUnitName())); + if (!deptList1.isEmpty()) { wrapper.and(w -> { - for (Dept dept : deptList) { + for (Dept dept : deptList1) { w.or().eq(WorkOrder::getReportUnit, dept.getId()); } }); diff --git a/src/main/java/org/springblade/modules/business/contraller/supplies/ApplyController.java b/src/main/java/org/springblade/modules/business/contraller/supplies/ApplyController.java index d4b4fda..631ffdc 100644 --- a/src/main/java/org/springblade/modules/business/contraller/supplies/ApplyController.java +++ b/src/main/java/org/springblade/modules/business/contraller/supplies/ApplyController.java @@ -9,6 +9,7 @@ import jakarta.validation.Valid; import lombok.AllArgsConstructor; import org.springblade.common.cache.UserCache; import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.mp.base.BaseEntity; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.secure.BladeUser; @@ -69,8 +70,12 @@ public class ApplyController extends BladeController { wrapper.orderByDesc(Apply::getCreateTime); wrapper.eq(apply.getIsReturn() != null, Apply::getIsReturn, apply.getIsReturn()); wrapper.eq(StringUtils.isNotBlank(apply.getApplyUser()), Apply::getApplyUser, apply.getApplyUser()); - if (!user.getRoleName().contains("administrator") && !user.getRoleName().contains("admin") && !user.getRoleName().contains("库管员")) { - wrapper.eq(Apply::getApplyUserId,user.getUserId()); + if (!user.getRoleName().contains("administrator") && !user.getRoleName().contains("admin")) { + if(user.getRoleName().contains("库管员") || user.getRoleName().contains("维修负责人")){ + wrapper.eq(BaseEntity::getCreateDept,user.getDeptId()); + }else{ + wrapper.eq(Apply::getApplyUserId,user.getUserId()); + } } IPage pages = applyService.page(Condition.getPage(query), wrapper); List records = pages.getRecords(); diff --git a/src/main/java/org/springblade/modules/business/contraller/supplies/GoodsController.java b/src/main/java/org/springblade/modules/business/contraller/supplies/GoodsController.java index e5ca5f6..c780a24 100644 --- a/src/main/java/org/springblade/modules/business/contraller/supplies/GoodsController.java +++ b/src/main/java/org/springblade/modules/business/contraller/supplies/GoodsController.java @@ -13,13 +13,16 @@ import org.springblade.core.excel.util.ExcelUtil; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.BeanUtil; import org.springblade.core.tool.utils.CollectionUtil; import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.Func; import org.springblade.modules.business.excel.supplies.GoodsExcel; import org.springblade.modules.business.excel.supplies.GoodsImporter; import org.springblade.modules.business.pojo.entity.supplies.Goods; +import org.springblade.modules.business.pojo.entity.supplies.GoodsDetail; import org.springblade.modules.business.pojo.vo.supplies.GoodsVO; +import org.springblade.modules.business.service.supplies.IGoodsDetailService; import org.springblade.modules.business.service.supplies.IGoodsService; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -45,6 +48,7 @@ import static org.springblade.common.enums.DictBizEnum.MAJOR_TYPE; public class GoodsController extends BladeController { private final IGoodsService goodsService; + private final IGoodsDetailService goodsDetailService; /** * 物品表 详情 @@ -92,7 +96,9 @@ public class GoodsController extends BladeController { @ApiOperationSupport(order = 4) public R save(@RequestBody Goods goods) { goods.setCode("编码格式待定"); - goods.setAllEnterNum(0); + goods.setAllEnterNum(goods.getNum()); + GoodsDetail goodsDetail = BeanUtil.copyProperties(goods,GoodsDetail.class); + goodsDetailService.save(goodsDetail); return R.status(goodsService.save(goods)); } diff --git a/src/main/java/org/springblade/modules/business/contraller/supplies/GoodsDetailController.java b/src/main/java/org/springblade/modules/business/contraller/supplies/GoodsDetailController.java new file mode 100644 index 0000000..498f1b0 --- /dev/null +++ b/src/main/java/org/springblade/modules/business/contraller/supplies/GoodsDetailController.java @@ -0,0 +1,66 @@ +package org.springblade.modules.business.contraller.supplies; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import jakarta.servlet.http.HttpServletResponse; +import lombok.AllArgsConstructor; +import org.springblade.common.cache.DictBizCache; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.core.tool.utils.CollectionUtil; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.business.excel.supplies.GoodsExcel; +import org.springblade.modules.business.excel.supplies.GoodsImporter; +import org.springblade.modules.business.pojo.entity.supplies.Goods; +import org.springblade.modules.business.pojo.entity.supplies.GoodsDetail; +import org.springblade.modules.business.pojo.vo.supplies.GoodsVO; +import org.springblade.modules.business.service.supplies.IGoodsDetailService; +import org.springblade.modules.business.service.supplies.IGoodsService; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import static org.springblade.common.enums.DictBizEnum.GOODS_TYPE; +import static org.springblade.common.enums.DictBizEnum.MAJOR_TYPE; + + +/** + * 物品表 控制器 + * + * @author BladeX + * @since 2024-10-14 + */ +@RestController +@AllArgsConstructor +@RequestMapping("/goodsDetail") +public class GoodsDetailController extends BladeController { + + private final IGoodsDetailService goodsDetailService; + + + + + /** + * 物品明细表 自定义分页 + */ + @GetMapping("/page") + public R> page(GoodsDetail goodsDetail, Query query) { + IPage pages = goodsDetailService.selectGoodsDetailPage(Condition.getPage(query), goodsDetail); + return R.data(pages); + } + + + +} diff --git a/src/main/java/org/springblade/modules/business/mapper/DeviceMapper.java b/src/main/java/org/springblade/modules/business/mapper/DeviceMapper.java index 04d8958..64eb822 100644 --- a/src/main/java/org/springblade/modules/business/mapper/DeviceMapper.java +++ b/src/main/java/org/springblade/modules/business/mapper/DeviceMapper.java @@ -38,7 +38,7 @@ public interface DeviceMapper extends BaseMapper { */ List exportDevice(@Param("ew") Wrapper queryWrapper); - List selectTypeCount(String startTime, String endTime); + List selectTypeCount(String startTime, String endTime, Long limsId); - List selectStatusCount(String startTime, String endTime); + List selectStatusCount(String startTime, String endTime, Long limsId); } diff --git a/src/main/java/org/springblade/modules/business/mapper/DeviceMapper.xml b/src/main/java/org/springblade/modules/business/mapper/DeviceMapper.xml index 77e8fd4..b4dba4e 100644 --- a/src/main/java/org/springblade/modules/business/mapper/DeviceMapper.xml +++ b/src/main/java/org/springblade/modules/business/mapper/DeviceMapper.xml @@ -22,6 +22,9 @@ FROM `lab_device` WHERE is_deleted = 0 and type is not null + + and lims_id = #{limsId} + GROUP BY type diff --git a/src/main/java/org/springblade/modules/business/mapper/GoodsDetailMapper.java b/src/main/java/org/springblade/modules/business/mapper/GoodsDetailMapper.java new file mode 100644 index 0000000..ea36307 --- /dev/null +++ b/src/main/java/org/springblade/modules/business/mapper/GoodsDetailMapper.java @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the dreamlu.net developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: Chill 庄骞 (smallchill@163.com) + */ +package org.springblade.modules.business.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.modules.business.pojo.entity.supplies.GoodsDetail; +import org.springblade.modules.business.pojo.vo.supplies.GoodsVO; + +import java.util.List; + +/** + * 物品明细表 Mapper 接口 + * + * @author BladeX + * @since 2024-10-17 + */ +public interface GoodsDetailMapper extends BaseMapper { + + List selectGoodsDetailPage(IPage page, GoodsDetail goodsDetail); + +} diff --git a/src/main/java/org/springblade/modules/business/mapper/GoodsDetailMapper.xml b/src/main/java/org/springblade/modules/business/mapper/GoodsDetailMapper.xml new file mode 100644 index 0000000..c6fd6ba --- /dev/null +++ b/src/main/java/org/springblade/modules/business/mapper/GoodsDetailMapper.xml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/business/mapper/InvoiceApplyMapper.java b/src/main/java/org/springblade/modules/business/mapper/InvoiceApplyMapper.java index e3aa97b..6c969c0 100644 --- a/src/main/java/org/springblade/modules/business/mapper/InvoiceApplyMapper.java +++ b/src/main/java/org/springblade/modules/business/mapper/InvoiceApplyMapper.java @@ -22,6 +22,6 @@ public interface InvoiceApplyMapper extends BaseMapper { * * @return */ - List> finishWorkList(@Param("offset") int offset, @Param("size") int size); + List> finishWorkList(@Param("offset") int offset, @Param("size") int size,@Param("deptIds") List deptIds); int finishWorkListCount(); } diff --git a/src/main/java/org/springblade/modules/business/mapper/InvoiceApplyMapper.xml b/src/main/java/org/springblade/modules/business/mapper/InvoiceApplyMapper.xml index 5906ded..c6a4fb5 100644 --- a/src/main/java/org/springblade/modules/business/mapper/InvoiceApplyMapper.xml +++ b/src/main/java/org/springblade/modules/business/mapper/InvoiceApplyMapper.xml @@ -10,12 +10,24 @@ from ( from lab_work_order wo left join blade_user u on wo.repair_person = u.id WHERE wo.is_deleted= 0 AND wo.`status` = 8 + + and wo.report_unit in + + #{deptId} + + UNION ALL SELECT 2 as business_type, mt.id as business_id, mt.task_code as buseness_code, u.`name` as serviceman, COUNT(mtd.price) as price from lab_maintenance_task mt left join blade_user u on mt.serviceman_id = u.id left join lab_maintenance_task_detail mtd on mt.id = mtd.task_id WHERE mt.is_deleted= 0 and mt.repair_status = 7 + + and mt.dept_id in + + #{deptId} + + group by mt.id, mt.task_code ) t left join lab_invoice_apply_detail d on t.business_id = d.business_id diff --git a/src/main/java/org/springblade/modules/business/mapper/MaintenanceTaskMapper.java b/src/main/java/org/springblade/modules/business/mapper/MaintenanceTaskMapper.java index 9882d7b..381f994 100644 --- a/src/main/java/org/springblade/modules/business/mapper/MaintenanceTaskMapper.java +++ b/src/main/java/org/springblade/modules/business/mapper/MaintenanceTaskMapper.java @@ -20,7 +20,7 @@ public interface MaintenanceTaskMapper extends BaseMapper { List limsTaskList(@Param("deptId") String deptId); - List> selectMaintenanceTaskCount(); + List> selectMaintenanceTaskCount(@Param("deptId") String deptId); - List> selectMaintenanceTaskStatus(@Param("startTimeBegin")String startTimeBegin,@Param("startTimeEnd")String startTimeEnd); + List> selectMaintenanceTaskStatus(@Param("startTimeBegin")String startTimeBegin,@Param("startTimeEnd")String startTimeEnd,@Param("deptId") String deptId); } diff --git a/src/main/java/org/springblade/modules/business/mapper/MaintenanceTaskMapper.xml b/src/main/java/org/springblade/modules/business/mapper/MaintenanceTaskMapper.xml index 2b1a1d3..cd71724 100644 --- a/src/main/java/org/springblade/modules/business/mapper/MaintenanceTaskMapper.xml +++ b/src/main/java/org/springblade/modules/business/mapper/MaintenanceTaskMapper.xml @@ -31,10 +31,19 @@ diff --git a/src/main/java/org/springblade/modules/business/mapper/WorkOrderMapper.java b/src/main/java/org/springblade/modules/business/mapper/WorkOrderMapper.java index f260628..242b430 100644 --- a/src/main/java/org/springblade/modules/business/mapper/WorkOrderMapper.java +++ b/src/main/java/org/springblade/modules/business/mapper/WorkOrderMapper.java @@ -39,19 +39,19 @@ public interface WorkOrderMapper extends BaseMapper { */ List exportWorkOrder(@Param("ew") Wrapper queryWrapper); - List selectDeptCount(String startTime, String endTime); + List selectDeptCount(String startTime, String endTime,List deptIds); - List> selectFaultEquipTop5(); + List> selectFaultEquipTop5(String deptId); - List> selectEquipOverview(); + List> selectEquipOverview(String deptId); List> selectEquipRepairCount(); List> selectEquipRepairCountByMonth(@Param("deviceId")String deviceId); - List> selectAverageFaultResponseTime(List monthList); + List> selectAverageFaultResponseTime(List monthList,@Param("deptId") String deptId); - List> selectAverageFaultRepairTime(List monthList); + List> selectAverageFaultRepairTime(@Param("monthList") List monthList,@Param("deptId") String deptId); 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 d8cada2..30a634d 100644 --- a/src/main/java/org/springblade/modules/business/mapper/WorkOrderMapper.xml +++ b/src/main/java/org/springblade/modules/business/mapper/WorkOrderMapper.xml @@ -24,6 +24,12 @@ LEFT JOIN blade_dept b ON a.create_dept = b.id WHERE a.is_deleted = 0 AND a.STATUS != -1 AND b.dept_name IS NOT NULL + + and create_dept in + + #{deptId} + + GROUP BY b.dept_name @@ -40,6 +46,9 @@ AND device_name IS NOT NULL AND device_name != '' AND is_deleted = 0 + + and report_unit = #{deptId} + GROUP BY device_id ORDER BY @@ -48,12 +57,24 @@ @@ -105,6 +129,9 @@ #{item} + + and report_unit = #{deptId} + group by DATE_FORMAT( create_time, '%Y-%m' ) order by create_time diff --git a/src/main/java/org/springblade/modules/business/pojo/entity/maintenance/MaintenanceTask.java b/src/main/java/org/springblade/modules/business/pojo/entity/maintenance/MaintenanceTask.java index febae60..cb11987 100644 --- a/src/main/java/org/springblade/modules/business/pojo/entity/maintenance/MaintenanceTask.java +++ b/src/main/java/org/springblade/modules/business/pojo/entity/maintenance/MaintenanceTask.java @@ -223,4 +223,9 @@ public class MaintenanceTask extends BaseEntity { */ @JsonSerialize(nullsUsing = NullSerializer.class) private Double totalPrice; + + /** + * 维修完成图片url + */ + private String completeImgList; } diff --git a/src/main/java/org/springblade/modules/business/pojo/entity/supplies/GoodsDetail.java b/src/main/java/org/springblade/modules/business/pojo/entity/supplies/GoodsDetail.java new file mode 100644 index 0000000..856b147 --- /dev/null +++ b/src/main/java/org/springblade/modules/business/pojo/entity/supplies/GoodsDetail.java @@ -0,0 +1,143 @@ +package org.springblade.modules.business.pojo.entity.supplies; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.NullSerializer; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; + +import java.util.Date; + +/** + * 物品表 实体类 + * + * @author BladeX + * @since 2024-10-17 + */ +@Data +@TableName("lab_goods_detail") +@EqualsAndHashCode(callSuper = true) +public class GoodsDetail extends BaseEntity { + + /** + * 类型Id + */ + private String bigClassId; + + @TableField(exist = false) + private String bigClassName; + + /** + * 类型 + */ + private String bigClass; + /** + * 物品名称 + */ + private String name; + /** + * 单位 + */ + private String unit; + /** + * 物品编号 + */ + private String code; + /** + * 物品型号 + */ + private String xh; + /** + * 物品规格 + */ + private String rule; + /** + * 生产厂家 + */ + private String manufacturer; + /** + * 供应商Id + */ + private Long companyId; + /** + * 供应商名称 + */ + private String company; + /** + * 品牌 + */ + private String brand; + /** + * 资产类型 + */ + private String type; + + + /** + * 存储位置 + */ + private String location; + /** + * 存储方式 + */ + private String ccfs; + /** + * 用途 + */ + private String yt; + /** + * 是否危化品 + */ + private Integer danger; + + + /** + * 备注 + */ + private String remark; + + /** + * 库存id + */ + private String inventoryId; + + /** + * 采购价格 + */ + private Double purchasePrice; + + /** + * 统一报价 + */ + private Double unifiedQuotation; + + /** + * 续订时间(天) + */ + @JsonSerialize(nullsUsing = NullSerializer.class) + private Integer renewNum; + + /** + * 入库数量 + */ + private Integer enterNum; + + /** + * 描述 + */ + private String describes; + + /** + * 仓库id + */ + private Long warehouseId; + + /** + * 仓库名称 + */ + private String warehouseName; + + +} diff --git a/src/main/java/org/springblade/modules/business/pojo/entity/workorder/WorkOrder.java b/src/main/java/org/springblade/modules/business/pojo/entity/workorder/WorkOrder.java index ad67e43..2bcfe6a 100644 --- a/src/main/java/org/springblade/modules/business/pojo/entity/workorder/WorkOrder.java +++ b/src/main/java/org/springblade/modules/business/pojo/entity/workorder/WorkOrder.java @@ -262,4 +262,9 @@ public class WorkOrder extends BaseEntity { */ @TableField(exist = false) private String repairPersonName; + + /** + * 维修完成图片url + */ + private String completeImgList; } diff --git a/src/main/java/org/springblade/modules/business/service/IDeviceService.java b/src/main/java/org/springblade/modules/business/service/IDeviceService.java index b2c8906..943b63a 100644 --- a/src/main/java/org/springblade/modules/business/service/IDeviceService.java +++ b/src/main/java/org/springblade/modules/business/service/IDeviceService.java @@ -43,9 +43,9 @@ public interface IDeviceService extends BaseService { boolean qrcode(Device device); - List selectTypeCount(String startTime, String endTime); + List selectTypeCount(String startTime, String endTime, Long limsId); - List selectStatusCount(String startTime, String endTime); + List selectStatusCount(String startTime, String endTime, Long limsId); void importDevice(List data); diff --git a/src/main/java/org/springblade/modules/business/service/IInvoiceApplyService.java b/src/main/java/org/springblade/modules/business/service/IInvoiceApplyService.java index 72c231f..b35d8da 100644 --- a/src/main/java/org/springblade/modules/business/service/IInvoiceApplyService.java +++ b/src/main/java/org/springblade/modules/business/service/IInvoiceApplyService.java @@ -6,6 +6,8 @@ import org.springblade.core.mp.support.Query; import org.springblade.modules.business.pojo.dto.InvoiceApplyDto; import org.springblade.modules.business.pojo.entity.InvoiceApply; +import java.util.List; + /** * 发票申请表 服务类 * @@ -19,7 +21,7 @@ public interface IInvoiceApplyService extends BaseService { * * @return */ - IPage finishWorkList(Query query); + IPage finishWorkList(Query query, List deptIds); /** * 保存并提交 diff --git a/src/main/java/org/springblade/modules/business/service/IWorkOrderService.java b/src/main/java/org/springblade/modules/business/service/IWorkOrderService.java index 2effc99..0a6281f 100644 --- a/src/main/java/org/springblade/modules/business/service/IWorkOrderService.java +++ b/src/main/java/org/springblade/modules/business/service/IWorkOrderService.java @@ -76,7 +76,7 @@ public interface IWorkOrderService extends BaseService { boolean updateAttach(WorkOrderVO workOrder); - List selectDeptCount(String startTime, String endTime); + List selectDeptCount(String startTime, String endTime, List deptIds); public List searchMaintenancePersonnel(Long id); diff --git a/src/main/java/org/springblade/modules/business/service/impl/DeviceServiceImpl.java b/src/main/java/org/springblade/modules/business/service/impl/DeviceServiceImpl.java index e705ac1..2924860 100644 --- a/src/main/java/org/springblade/modules/business/service/impl/DeviceServiceImpl.java +++ b/src/main/java/org/springblade/modules/business/service/impl/DeviceServiceImpl.java @@ -151,13 +151,13 @@ public class DeviceServiceImpl extends BaseServiceImpl imp } @Override - public List selectTypeCount(String startTime, String endTime) { - return baseMapper.selectTypeCount(startTime, endTime); + public List selectTypeCount(String startTime, String endTime, Long limsId) { + return baseMapper.selectTypeCount(startTime, endTime,limsId); } @Override - public List selectStatusCount(String startTime, String endTime) { - return baseMapper.selectStatusCount(startTime, endTime); + public List selectStatusCount(String startTime, String endTime, Long limsId) { + return baseMapper.selectStatusCount(startTime, endTime,limsId); } /*@Override diff --git a/src/main/java/org/springblade/modules/business/service/impl/InvoiceApplyServiceImpl.java b/src/main/java/org/springblade/modules/business/service/impl/InvoiceApplyServiceImpl.java index e6fe37b..8c9c02d 100644 --- a/src/main/java/org/springblade/modules/business/service/impl/InvoiceApplyServiceImpl.java +++ b/src/main/java/org/springblade/modules/business/service/impl/InvoiceApplyServiceImpl.java @@ -44,11 +44,11 @@ public class InvoiceApplyServiceImpl extends BaseServiceImpl deptIds) { int startPage = query == null || query.getCurrent() == null ? 1 : query.getCurrent(); int size = query == null || query.getSize() == null ? 10 : query.getSize(); - List> data = baseMapper.finishWorkList((startPage - 1) * size, size); + List> data = baseMapper.finishWorkList((startPage - 1) * size, size, deptIds); int total = baseMapper.finishWorkListCount(); IPage page = new Page(startPage, size); diff --git a/src/main/java/org/springblade/modules/business/service/impl/MaintenanceTaskServiceImpl.java b/src/main/java/org/springblade/modules/business/service/impl/MaintenanceTaskServiceImpl.java index 0b283bb..ac3a8fe 100644 --- a/src/main/java/org/springblade/modules/business/service/impl/MaintenanceTaskServiceImpl.java +++ b/src/main/java/org/springblade/modules/business/service/impl/MaintenanceTaskServiceImpl.java @@ -10,6 +10,8 @@ import lombok.RequiredArgsConstructor; import org.springblade.common.constant.CommonConstant; import org.springblade.common.utils.CommonDateUtil; import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.utils.AuthUtil; import org.springblade.modules.business.excel.MaintenanceTaskDetailExcel; import org.springblade.modules.business.pojo.entity.MaintenanceTaskDetailGoods; import org.springblade.modules.business.pojo.vo.MaintenanceTaskDetailVO; @@ -145,7 +147,12 @@ public class MaintenanceTaskServiceImpl extends BaseServiceImpl> selectMaintenanceTaskCount() { - return baseMapper.selectMaintenanceTaskCount(); + BladeUser user = AuthUtil.getUser(); + String deptId = null; + if (!user.getRoleName().contains("administrator") && !user.getRoleName().contains("admin")) { + deptId = user.getDeptId(); + } + return baseMapper.selectMaintenanceTaskCount(deptId); } @Override @@ -154,7 +161,12 @@ public class MaintenanceTaskServiceImpl extends BaseServiceImpl monthList = CommonDateUtil.getMonthList(startDate,endDate,"yyyy-MM"); - List> list = baseMapper.selectMaintenanceTaskStatus(startTimeBegin,startTimeEnd); + BladeUser user = AuthUtil.getUser(); + String deptId = null; + if (!user.getRoleName().contains("administrator") && !user.getRoleName().contains("admin")) { + deptId = user.getDeptId(); + } + List> list = baseMapper.selectMaintenanceTaskStatus(startTimeBegin,startTimeEnd,deptId); Map dxjMap = new HashMap<>(); Map xjzMap = new HashMap<>(); Map dqrMap = new HashMap<>(); 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 f295e41..3aefa2b 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 @@ -24,6 +24,7 @@ import org.springblade.common.utils.CommonDateUtil; import org.springblade.common.utils.LogUtil; import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.mp.support.Condition; +import org.springblade.core.secure.BladeUser; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.utils.BeanUtil; import org.springblade.core.tool.utils.CollectionUtil; @@ -282,8 +283,8 @@ public class WorkOrderServiceImpl extends BaseServiceImpl selectDeptCount(String startTime, String endTime) { - return baseMapper.selectDeptCount(startTime, endTime); + public List selectDeptCount(String startTime, String endTime, List deptIds) { + return baseMapper.selectDeptCount(startTime, endTime,deptIds); } @Transactional(rollbackFor = Exception.class) @@ -318,12 +319,22 @@ public class WorkOrderServiceImpl extends BaseServiceImpl> selectFaultEquipTop5() { - return baseMapper.selectFaultEquipTop5(); + BladeUser user = AuthUtil.getUser(); + String deptId = null; + if (!user.getRoleName().contains("administrator") && !user.getRoleName().contains("admin")) { + deptId = user.getDeptId(); + } + return baseMapper.selectFaultEquipTop5(deptId); } @Override public List> selectEquipOverview() { - return baseMapper.selectEquipOverview(); + BladeUser user = AuthUtil.getUser(); + String deptId = null; + if (!user.getRoleName().contains("administrator") && !user.getRoleName().contains("admin")) { + deptId = user.getDeptId(); + } + return baseMapper.selectEquipOverview(deptId); } @Override @@ -360,7 +371,12 @@ public class WorkOrderServiceImpl extends BaseServiceImpl monthList = CommonDateUtil.getMonthList(startDate, endDate, "yyyy-MM"); - List> list = baseMapper.selectAverageFaultResponseTime(monthList); + BladeUser user = AuthUtil.getUser(); + String deptId = null; + if (!user.getRoleName().contains("administrator") && !user.getRoleName().contains("admin")) { + deptId = user.getDeptId(); + } + List> list = baseMapper.selectAverageFaultResponseTime(monthList,deptId); List dataList = new ArrayList<>(); Map dataMap = new HashMap<>(); for (Map map1 : list) { @@ -385,7 +401,14 @@ public class WorkOrderServiceImpl extends BaseServiceImpl monthList = CommonDateUtil.getMonthList(startDate, endDate, "yyyy-MM"); - List> list = baseMapper.selectAverageFaultRepairTime(monthList); + + BladeUser user = AuthUtil.getUser(); + String deptId = null; + if (!user.getRoleName().contains("administrator") && !user.getRoleName().contains("admin")) { + deptId = user.getDeptId(); + } + + List> list = baseMapper.selectAverageFaultRepairTime(monthList,deptId); List dataList = new ArrayList<>(); Map dataMap = new HashMap<>(); for (Map map1 : list) { diff --git a/src/main/java/org/springblade/modules/business/service/impl/supplies/GoodsDetailServiceImpl.java b/src/main/java/org/springblade/modules/business/service/impl/supplies/GoodsDetailServiceImpl.java new file mode 100644 index 0000000..3dbab15 --- /dev/null +++ b/src/main/java/org/springblade/modules/business/service/impl/supplies/GoodsDetailServiceImpl.java @@ -0,0 +1,40 @@ +package org.springblade.modules.business.service.impl.supplies; + +import com.aliyun.oss.ServiceException; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import lombok.AllArgsConstructor; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.core.tool.utils.CollectionUtil; +import org.springblade.modules.business.excel.supplies.GoodsExcel; +import org.springblade.modules.business.mapper.GoodsDetailMapper; +import org.springblade.modules.business.mapper.GoodsMapper; +import org.springblade.modules.business.pojo.entity.supplies.Goods; +import org.springblade.modules.business.pojo.entity.supplies.GoodsDetail; +import org.springblade.modules.business.pojo.entity.supplies.WareHouse; +import org.springblade.modules.business.pojo.vo.supplies.GoodsVO; +import org.springblade.modules.business.service.supplies.IGoodsDetailService; +import org.springblade.modules.business.service.supplies.IGoodsService; +import org.springblade.modules.business.service.supplies.IWareHouseService; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +/** + * 物品表 服务实现类 + * + * @author BladeX + * @since 2024-10-17 + */ +@Service +@AllArgsConstructor +public class GoodsDetailServiceImpl extends BaseServiceImpl implements IGoodsDetailService { + + + @Override + public IPage selectGoodsDetailPage(IPage page, GoodsDetail goodsDetail) { + return page.setRecords(baseMapper.selectGoodsDetailPage(page, goodsDetail)); + } +} diff --git a/src/main/java/org/springblade/modules/business/service/impl/supplies/InOrderServiceImpl.java b/src/main/java/org/springblade/modules/business/service/impl/supplies/InOrderServiceImpl.java index fedd7fa..3ae65b0 100644 --- a/src/main/java/org/springblade/modules/business/service/impl/supplies/InOrderServiceImpl.java +++ b/src/main/java/org/springblade/modules/business/service/impl/supplies/InOrderServiceImpl.java @@ -5,12 +5,15 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import lombok.AllArgsConstructor; import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.utils.BeanUtil; import org.springblade.core.tool.utils.CollectionUtil; import org.springblade.modules.business.pojo.entity.supplies.Goods; +import org.springblade.modules.business.pojo.entity.supplies.GoodsDetail; import org.springblade.modules.business.pojo.entity.supplies.InOrder; import org.springblade.modules.business.excel.supplies.InOrderExcel; import org.springblade.modules.business.mapper.InOrderMapper; import org.springblade.modules.business.pojo.entity.supplies.InOrderDetail; +import org.springblade.modules.business.service.supplies.IGoodsDetailService; import org.springblade.modules.business.service.supplies.IGoodsService; import org.springblade.modules.business.service.supplies.IInOrderDetailService; import org.springblade.modules.business.service.supplies.IInOrderService; @@ -18,6 +21,7 @@ import org.springblade.modules.business.pojo.vo.supplies.InOrderVO; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.stream.Collectors; @@ -34,6 +38,7 @@ public class InOrderServiceImpl extends BaseServiceImpl private final IInOrderDetailService iInOrderDetailService; private final IGoodsService goodsService; + private final IGoodsDetailService goodsDetailService; @Override public IPage selectInOrderPage(IPage page, InOrderVO inOrder) { @@ -68,14 +73,20 @@ public class InOrderServiceImpl extends BaseServiceImpl // 修改库存 if (CollectionUtil.isNotEmpty(goodsList)) { + List goodsDetailList = new ArrayList<>(); for (Goods goods : goodsList) { for (InOrderDetail inOrderDetail : detailList) { if (goods.getId().equals(inOrderDetail.getGoodsId())) { goods.setNum(goods.getNum() + inOrderDetail.getNum()); + GoodsDetail goodsDetail = BeanUtil.copyProperties(goods,GoodsDetail.class); + goodsDetail.setInventoryId(null); + goodsDetail.setEnterNum(inOrderDetail.getNum()); + goodsDetailList.add(goodsDetail); break; } } } + goodsDetailService.saveBatch(goodsDetailList); goodsService.updateBatchById(goodsList); } diff --git a/src/main/java/org/springblade/modules/business/service/supplies/IGoodsDetailService.java b/src/main/java/org/springblade/modules/business/service/supplies/IGoodsDetailService.java new file mode 100644 index 0000000..4259519 --- /dev/null +++ b/src/main/java/org/springblade/modules/business/service/supplies/IGoodsDetailService.java @@ -0,0 +1,24 @@ +package org.springblade.modules.business.service.supplies; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseService; +import org.springblade.modules.business.excel.supplies.GoodsExcel; +import org.springblade.modules.business.pojo.entity.supplies.Goods; +import org.springblade.modules.business.pojo.entity.supplies.GoodsDetail; +import org.springblade.modules.business.pojo.vo.supplies.GoodsVO; + +import java.util.List; + +/** + * 物品表 服务类 + * + * @author BladeX + * @since 2024-10-17 + */ +public interface IGoodsDetailService extends BaseService { + + IPage selectGoodsDetailPage(IPage page, GoodsDetail goodsDetail); + + +} diff --git a/src/main/java/org/springblade/modules/system/controller/DeptController.java b/src/main/java/org/springblade/modules/system/controller/DeptController.java index f0c10c1..9fcbc3c 100644 --- a/src/main/java/org/springblade/modules/system/controller/DeptController.java +++ b/src/main/java/org/springblade/modules/system/controller/DeptController.java @@ -42,24 +42,30 @@ import org.springblade.common.enums.DictEnum; import org.springblade.core.boot.ctrl.BladeController; import org.springblade.core.cache.utils.CacheUtil; import org.springblade.core.launch.constant.AppConstant; +import org.springblade.core.mp.base.BaseEntity; import org.springblade.core.mp.support.Condition; import org.springblade.core.secure.BladeUser; import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tenant.annotation.NonDS; import org.springblade.core.tool.api.R; import org.springblade.core.tool.constant.BladeConstant; import org.springblade.core.tool.constant.RoleConstant; import org.springblade.core.tool.support.Kv; +import org.springblade.core.tool.utils.CollectionUtil; import org.springblade.core.tool.utils.Func; import org.springblade.modules.system.pojo.entity.Dept; import org.springblade.modules.system.pojo.entity.User; import org.springblade.modules.system.service.IDeptService; import org.springblade.modules.system.pojo.vo.DeptVO; +import org.springblade.modules.system.service.IUserService; import org.springblade.modules.system.wrapper.DeptWrapper; import org.springframework.web.bind.annotation.*; +import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE; @@ -76,6 +82,7 @@ import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE; public class DeptController extends BladeController { private final IDeptService deptService; + private final IUserService userService; /** * 详情 @@ -193,7 +200,14 @@ public class DeptController extends BladeController { */ @GetMapping("/limsTree") public R> limsTree(String tenantId) { - List tree = deptService.limsTree(Func.toStrWithEmpty(tenantId, "000000")); + BladeUser user = AuthUtil.getUser(); + List deptIds = null; + 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()); + } + List tree = deptService.limsTree(Func.toStrWithEmpty(tenantId, "000000"),deptIds); return R.data(tree); } @@ -202,7 +216,14 @@ public class DeptController extends BladeController { */ @GetMapping("/assLimsTree") public R> assLimsTree(String tenantId) { - List tree = deptService.assLimsTree(Func.toStrWithEmpty(tenantId, "000000")); + BladeUser user = AuthUtil.getUser(); + List deptIds = null; + 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()); + } + List tree = deptService.assLimsTree(Func.toStrWithEmpty(tenantId, "000000"),deptIds); return R.data(tree); } 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 8215c14..d49c279 100644 --- a/src/main/java/org/springblade/modules/system/controller/UserController.java +++ b/src/main/java/org/springblade/modules/system/controller/UserController.java @@ -357,9 +357,8 @@ public class UserController { @GetMapping("/repairPersons") @Operation(summary = "获取维修人员", description = "获取维修人员") public R> repairPersons(boolean isRepair) { - // User user = UserCache.getUser(AuthUtil.getUserId()); - // List users = userService.list(Wrappers.lambdaQuery(User.class).eq(User::getDeptId, user.getDeptId()).ne(isRepair, User::getRoleId, user.getRoleId())); - List users = userService.list(Wrappers.lambdaQuery(User.class).eq(User::getRoleId, "1839552581620793346")); + BladeUser user = AuthUtil.getUser(); + List users = userService.list(Wrappers.lambdaQuery(User.class).eq(User::getRoleId, "1839552581620793346").eq(User::getDeptId,user.getDeptId())); return R.data(users); } diff --git a/src/main/java/org/springblade/modules/system/controller/UserRegisterController.java b/src/main/java/org/springblade/modules/system/controller/UserRegisterController.java index 3534f29..5035163 100644 --- a/src/main/java/org/springblade/modules/system/controller/UserRegisterController.java +++ b/src/main/java/org/springblade/modules/system/controller/UserRegisterController.java @@ -109,20 +109,13 @@ public class UserRegisterController { @Operation(summary = "审核通过", description = "传入id集合") @PreAuth(RoleConstant.HAS_ROLE_ADMIN) public R auditPass(@RequestBody User user) { - // 审核通过,根据用户部门名称,设置部门id或新增加部门 - String deptName = user.getDeptName(); - Dept dept = deptService.getByDeptName(deptName); - - if (Func.isEmpty(dept)) { - dept = new Dept(); - dept.setDeptName(deptName); - dept.setFullName(deptName); - deptService.submit(dept); - } - user = userService.getById(user.getId()); - user.setDeptId(String.valueOf(dept.getId())); - user.setStatus(1); - return R.status(userService.updateUser(user)); + User user1 = userService.getById(user.getId()); + user1.setDeptId(user.getDeptId()); + user1.setParentDeptId(user.getParentDeptId()); + user1.setDeptName(user.getDeptName()); + user1.setParentDeptName(user.getParentDeptName()); + user1.setStatus(1); + return R.status(userService.updateUser(user1)); } /** diff --git a/src/main/java/org/springblade/modules/system/mapper/DeptMapper.java b/src/main/java/org/springblade/modules/system/mapper/DeptMapper.java index 345af61..3be4cba 100644 --- a/src/main/java/org/springblade/modules/system/mapper/DeptMapper.java +++ b/src/main/java/org/springblade/modules/system/mapper/DeptMapper.java @@ -63,7 +63,7 @@ public interface DeptMapper extends BaseMapper { * @param tenantId * @return */ - List noAssLimsTree(String tenantId); + List noAssLimsTree(@Param("tenantId") String tenantId,@Param("deptIds") List deptIds); /** * 获取已绑定绑定实验室列表 @@ -71,7 +71,7 @@ public interface DeptMapper extends BaseMapper { * @param tenantId * @return */ - List assLimsTree(String tenantId); + List assLimsTree(@Param("tenantId") String tenantId,@Param("deptIds") List deptIds); /** * 懒加载获取树形节点 diff --git a/src/main/java/org/springblade/modules/system/mapper/DeptMapper.xml b/src/main/java/org/springblade/modules/system/mapper/DeptMapper.xml index f51ac4a..aafb886 100644 --- a/src/main/java/org/springblade/modules/system/mapper/DeptMapper.xml +++ b/src/main/java/org/springblade/modules/system/mapper/DeptMapper.xml @@ -63,6 +63,9 @@ and dept.full_name like concat(concat('%', #{param3.fullName}),'%') + + and dept.dept_category = #{param3.deptCategory} + ORDER BY dept.sort @@ -77,8 +80,14 @@ @@ -122,8 +131,14 @@ diff --git a/src/main/java/org/springblade/modules/system/pojo/entity/Dept.java b/src/main/java/org/springblade/modules/system/pojo/entity/Dept.java index 1754b7f..d4307dc 100644 --- a/src/main/java/org/springblade/modules/system/pojo/entity/Dept.java +++ b/src/main/java/org/springblade/modules/system/pojo/entity/Dept.java @@ -128,5 +128,6 @@ public class Dept implements Serializable { private String cityCode; + private String labAddress; } diff --git a/src/main/java/org/springblade/modules/system/pojo/entity/User.java b/src/main/java/org/springblade/modules/system/pojo/entity/User.java index 0d1f09b..e4e33f8 100644 --- a/src/main/java/org/springblade/modules/system/pojo/entity/User.java +++ b/src/main/java/org/springblade/modules/system/pojo/entity/User.java @@ -132,4 +132,14 @@ public class User extends TenantEntity { */ private String largeScreenPic; + /** + * 上级部门id + */ + private String parentDeptId; + + /** + * 上级部门id + */ + private String parentDeptName; + } diff --git a/src/main/java/org/springblade/modules/system/service/IDeptService.java b/src/main/java/org/springblade/modules/system/service/IDeptService.java index f031378..4567c03 100644 --- a/src/main/java/org/springblade/modules/system/service/IDeptService.java +++ b/src/main/java/org/springblade/modules/system/service/IDeptService.java @@ -138,12 +138,12 @@ public interface IDeptService extends IService { * @param tenantId * @return */ - List limsTree(String tenantId); + List limsTree(String tenantId,List deptIds); /** * 获取已绑定实验室 * @param tenantId * @return */ - List assLimsTree(String tenantId); + List assLimsTree(String tenantId,List deptIds); } diff --git a/src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java index 5db673b..f527ee1 100644 --- a/src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java +++ b/src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java @@ -184,13 +184,13 @@ public class DeptServiceImpl extends ServiceImpl implements ID } @Override - public List limsTree(String tenantId) { - return baseMapper.noAssLimsTree(tenantId); + public List limsTree(String tenantId,List deptIds) { + return baseMapper.noAssLimsTree(tenantId,deptIds); } @Override - public List assLimsTree(String tenantId) { - return baseMapper.assLimsTree(tenantId); + public List assLimsTree(String tenantId,List deptIds) { + return baseMapper.assLimsTree(tenantId,deptIds); } }