From 5a62cf2c51da8c1caca1d8bcfdcb97eeda27cc68 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期一, 02 九月 2024 18:16:25 +0800 Subject: [PATCH] 接口权限字符调整、下发页面单位统计工单数优化 --- ycl-server/src/main/resources/mapper/zgyw/YwUnitMapper.xml | 46 +++++++++-------------- ycl-server/src/main/java/com/ycl/platform/service/impl/YwUnitServiceImpl.java | 14 ++++++- ycl-pojo/src/main/java/com/ycl/platform/domain/query/ReportQuery.java | 3 + ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java | 4 +- ycl-server/src/main/resources/mapper/zgyw/ReportMapper.xml | 3 + ycl-server/src/main/java/com/ycl/platform/mapper/YwUnitMapper.java | 2 ycl-server/src/main/java/com/ycl/utils/SecurityUtils.java | 5 ++ ycl-server/src/main/java/com/ycl/platform/service/impl/ReportServiceImpl.java | 2 + 8 files changed, 46 insertions(+), 33 deletions(-) diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/query/ReportQuery.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/query/ReportQuery.java index 6f954c5..2b76634 100644 --- a/ycl-pojo/src/main/java/com/ycl/platform/domain/query/ReportQuery.java +++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/query/ReportQuery.java @@ -35,6 +35,9 @@ private List<Integer> peopleIdList; + @ApiModelProperty("杩愮淮鍗曚綅") + private Integer unitId; + @ApiModelProperty("鐘舵��") private Integer status; diff --git a/ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java b/ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java index 33c678f..39216f0 100644 --- a/ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java +++ b/ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java @@ -111,7 +111,7 @@ @PostMapping("/distribute/page") @ApiOperation(value = "涓嬪彂鍒嗛〉", notes = "涓嬪彂鍒嗛〉") - @PreAuthorize("@ss.hasPermi('work:order:distribute')") + @PreAuthorize("@ss.hasPermi('work:order:distribute:page')") public Result distributePage(@RequestBody DistributeWorkOrderQuery query) { return workOrderService.distributePage(query); } @@ -132,7 +132,7 @@ @GetMapping("/{id}") @ApiOperation(value = "璇︽儏", notes = "璇︽儏") - @PreAuthorize("@ss.hasPermi('work:order:query')") + @PreAuthorize("@ss.hasPermi('work:order:detail')") public Result detail(@PathVariable("id") String id) { return workOrderService.detail(id); } diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/YwUnitMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/YwUnitMapper.java index ef28967..28d0f16 100644 --- a/ycl-server/src/main/java/com/ycl/platform/mapper/YwUnitMapper.java +++ b/ycl-server/src/main/java/com/ycl/platform/mapper/YwUnitMapper.java @@ -25,7 +25,7 @@ * 杩愮淮鍗曚綅鍒楄〃缁熻 * @return 鏁版嵁 */ - List<YwUnitVO> workList(@Param("query") DistributeWorkOrderQuery query); + Integer workList(@Param("query") DistributeWorkOrderQuery query); /** * 閫氳繃鐢ㄦ埛ID鏌ユ壘杩愮淮鍗曚綅 diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/ReportServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/ReportServiceImpl.java index 99893fb..62fb564 100644 --- a/ycl-server/src/main/java/com/ycl/platform/service/impl/ReportServiceImpl.java +++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/ReportServiceImpl.java @@ -252,6 +252,7 @@ @Override public Result page(ReportQuery query) { IPage<ReportVO> page = PageUtil.getPage(query, ReportVO.class); + query.setUnitId(SecurityUtils.getUnitId()); baseMapper.page(page, query); List<SysDictData> errorTypeList = dictTypeService.selectDictDataByType("report_error_type"); Map<String, String> dictMap = errorTypeList.stream().collect(Collectors.toMap(SysDictData::getDictValue, SysDictData::getDictLabel)); @@ -310,6 +311,7 @@ public List<ReportVO> export(ReportQuery query) { IPage<ReportVO> page = PageUtil.getPage(query, ReportVO.class); page.setSize(-1); + query.setUnitId(SecurityUtils.getUnitId()); baseMapper.page(page, query); List<SysDictData> errorTypeList = dictTypeService.selectDictDataByType("report_error_type"); Map<String, String> dictMap = errorTypeList.stream().collect(Collectors.toMap(SysDictData::getDictValue, SysDictData::getDictLabel)); diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/YwUnitServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/YwUnitServiceImpl.java index 1b5c7fa..61ebd1f 100644 --- a/ycl-server/src/main/java/com/ycl/platform/service/impl/YwUnitServiceImpl.java +++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/YwUnitServiceImpl.java @@ -216,8 +216,18 @@ @Override public Result workList(DistributeWorkOrderQuery query) { - List<YwUnitVO> entities = baseMapper.workList(query); - return Result.ok().data(entities); + List<YwUnit> ywUnits = baseMapper.selectList(null); + List<YwUnitVO> lists = ywUnits.stream().map(item -> { + YwUnitVO vo = new YwUnitVO(); + BeanUtils.copyProperties(item, vo); + return vo; + }).collect(Collectors.toList()); + for (YwUnitVO ywUnit : lists) { + query.setUnitId(ywUnit.getId()); + Integer workOrderNum = baseMapper.workList(query); + ywUnit.setWorkOrderCount(workOrderNum); + } + return Result.ok().data(lists); } @Override diff --git a/ycl-server/src/main/java/com/ycl/utils/SecurityUtils.java b/ycl-server/src/main/java/com/ycl/utils/SecurityUtils.java index d3130fd..c1af0d8 100644 --- a/ycl-server/src/main/java/com/ycl/utils/SecurityUtils.java +++ b/ycl-server/src/main/java/com/ycl/utils/SecurityUtils.java @@ -44,6 +44,11 @@ * */ public static Integer getUnitId() { try { + if (isAdmin(getUserId())) { + return null; + } else if (hasRole("yw_admin")) { + return null; + } return getLoginUser().getUser().getUnitId(); } catch (Exception e) diff --git a/ycl-server/src/main/resources/mapper/zgyw/ReportMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/ReportMapper.xml index 606dabe..1b7816b 100644 --- a/ycl-server/src/main/resources/mapper/zgyw/ReportMapper.xml +++ b/ycl-server/src/main/resources/mapper/zgyw/ReportMapper.xml @@ -41,6 +41,9 @@ <if test="query.reportType != null and query.reportType != ''"> AND r.report_type = #{query.reportType} </if> + <if test="query.unitId != null"> + AND r.unit_id = #{query.unitId} + </if> <if test="query.status != null"> AND r.status = #{query.status} </if> diff --git a/ycl-server/src/main/resources/mapper/zgyw/YwUnitMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/YwUnitMapper.xml index 8c06409..5f3f169 100644 --- a/ycl-server/src/main/resources/mapper/zgyw/YwUnitMapper.xml +++ b/ycl-server/src/main/resources/mapper/zgyw/YwUnitMapper.xml @@ -33,36 +33,26 @@ where id = #{id} </select> - <select id="workList" resultType="com.ycl.platform.domain.vo.YwUnitVO"> + <select id="workList" resultType="integer"> SELECT - u.id AS id, u.unit_name, count(DISTINCT wot.id) AS work_order_count + count(*) FROM - t_yw_unit u - LEFT JOIN - ( - SELECT - wo.id, - wo.unit_id - FROM - t_work_order wo - INNER JOIN t_monitor tm ON wo.serial_number = tm.serial_number - INNER JOIN t_yw_point yp ON yp.serial_number = wo.serial_number AND yp.deleted = 0 - INNER JOIN t_work_order_error_type et ON wo.work_order_no = et.work_order_no - INNER JOIN sys_dict_data da ON da.dict_value = et.error_name AND da.dict_type = 'error_type' - <if test="query.errorTypeList != null and query.errorTypeList.size() > 0">AND da.dict_value in <foreach - collection="query.errorTypeList" open="(" separator="," close=")" item="errorType">#{errorType}</foreach> - </if> - WHERE - wo.deleted = 0 - <if test="query.status != null and query.status != ''"> - AND wo.status = #{query.status} - </if> - <if test="query.keyword != null and query.keyword != ''"> - AND (tm.name like concat('%', #{query.keyword}, '%') or tm.serial_number like concat('%', #{query.keyword}, '%')) - </if> - ) as wot ON wot.unit_id = u.id - WHERE u.deleted = 0 - group by u.id + t_work_order wo + INNER JOIN t_monitor tm ON wo.serial_number = tm.serial_number AND #{query.unitId} + INNER JOIN t_yw_point yp ON yp.serial_number = wo.serial_number AND yp.deleted = 0 + INNER JOIN t_work_order_error_type et ON wo.work_order_no = et.work_order_no + INNER JOIN sys_dict_data da ON da.dict_value = et.error_name AND da.dict_type = 'error_type' + <if test="query.errorTypeList != null and query.errorTypeList.size() > 0">AND da.dict_value in <foreach + collection="query.errorTypeList" open="(" separator="," close=")" item="errorType">#{errorType}</foreach> + </if> + WHERE + wo.deleted = 0 + <if test="query.status != null and query.status != ''"> + AND wo.status = #{query.status} + </if> + <if test="query.keyword != null and query.keyword != ''"> + AND (tm.name like concat('%', #{query.keyword}, '%') or tm.serial_number like concat('%', #{query.keyword}, '%')) + </if> </select> <insert id="insertYwUnit" parameterType="YwUnit" useGeneratedKeys="true" keyProperty="id"> -- Gitblit v1.8.0