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