From 10c23bd4369b1657a077a20e57d514632690ab52 Mon Sep 17 00:00:00 2001
From: Fixiaobai <fixiaobai@163.com>
Date: 星期三, 23 八月 2023 18:04:12 +0800
Subject: [PATCH] 实验室管理=》角色管理
---
inspection-server/src/main/resources/mapper/ReportMapper.xml | 1
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/ReportVo.java | 2
laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/Menu.java | 36 +++++++++
laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/Role.java | 26 ++++++
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/NonConformanceReviewServiceImpl.java | 6
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/QualificationRateStatisticsServiceImpl.java | 12 ++-
laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/RoleMangerController.java | 33 ++++++++
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/ImInfo.java | 2
inspection-server/src/main/resources/mapper/QualificationRateStatisticsMapper.xml | 24 ++---
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/MapHandlerDto.java | 7 +
laboratory-server/src/main/resources/mapper/MenuMapper.xml | 10 ++
laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RoleManagerServiceImpl.java | 43 ++++++++++
laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/RoleManagerService.java | 11 ++
laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/MenuMapper.java | 19 ++++
14 files changed, 210 insertions(+), 22 deletions(-)
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/MapHandlerDto.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/MapHandlerDto.java
index 03c894f..d8a01e6 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/MapHandlerDto.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/MapHandlerDto.java
@@ -19,4 +19,11 @@
Map map= JsonUtil.jsonToPojo(JsonUtil.jsonToString(o),Map.class);
return String.valueOf(map.get("supplier"));
}
+
+ public static String comparingByCode(Object o){
+ Map map= JsonUtil.jsonToPojo(JsonUtil.jsonToString(o),Map.class);
+ return String.valueOf(map.get("code"));
+ }
+
+
}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/ImInfo.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/ImInfo.java
index 18819a8..b74e7d2 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/ImInfo.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/ImInfo.java
@@ -19,7 +19,7 @@
private String imName;
- private String iCode;
+ private String imCode;
private Integer inspectionStatus;
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/ReportVo.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/ReportVo.java
index 478437d..d49897a 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/ReportVo.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/ReportVo.java
@@ -43,7 +43,7 @@
@ApiModelProperty(value = "瀹℃壒浜�")
@JsonSerialize
- private Integer approver;
+ private String approver;
@ApiModelProperty(value = "瀹℃牳鏃堕棿", hidden = true)
@JsonFormat(pattern = "yyyy-MM-dd ", timezone = "GMT+8")
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/NonConformanceReviewServiceImpl.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/NonConformanceReviewServiceImpl.java
index 97d000f..9744fa9 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/NonConformanceReviewServiceImpl.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/NonConformanceReviewServiceImpl.java
@@ -26,13 +26,13 @@
public NonConformanceReviewVo getNonConformanceReviewVo(NonConformingFeedbackDto nonConformingFeedbackDto) {
QueryWrapper<NonConformanceReview>queryWrapper= new QueryWrapper<>();
if (StringUtils.hasText(nonConformingFeedbackDto.getMaterialCode())){
- queryWrapper.lambda().and(a->a.eq(NonConformanceReview::getMaterialCode,nonConformingFeedbackDto.getMaterialCode()));
+ queryWrapper.lambda().and(a->a.like(NonConformanceReview::getMaterialCode,nonConformingFeedbackDto.getMaterialCode()));
}
if (StringUtils.hasText(nonConformingFeedbackDto.getMaterialName())){
- queryWrapper.lambda().and(a->a.eq(NonConformanceReview::getMaterialName,nonConformingFeedbackDto.getMaterialName()));
+ queryWrapper.lambda().and(a->a.like(NonConformanceReview::getMaterialName,nonConformingFeedbackDto.getMaterialName()));
}
if (StringUtils.hasText(nonConformingFeedbackDto.getInspectionCode())){
- queryWrapper.lambda().and(a->a.eq(NonConformanceReview::getInspectionCode,nonConformingFeedbackDto.getInspectionCode()));
+ queryWrapper.lambda().and(a->a.like(NonConformanceReview::getInspectionCode,nonConformingFeedbackDto.getInspectionCode()));
}
Page<NonConformanceReview> page = new Page<>(nonConformingFeedbackDto.getCurrentPage(), nonConformingFeedbackDto.getPageNum(), true);
IPage<NonConformanceReview> iPage = mapper.selectPage(page, queryWrapper);
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/QualificationRateStatisticsServiceImpl.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/QualificationRateStatisticsServiceImpl.java
index 4daef1c..83e1b27 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/QualificationRateStatisticsServiceImpl.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/QualificationRateStatisticsServiceImpl.java
@@ -168,8 +168,8 @@
return allMap;
}
imInfos.forEach(l->{
- NameList.add(l.getICode()+"-"+l.getImName());
- projectByCodeAndNameDtos.add(new SelectProjectByCodeAndNameDto(l.getICode(),l.getImName()));
+ NameList.add(l.getImCode()+"-"+l.getImName());
+ projectByCodeAndNameDtos.add(new SelectProjectByCodeAndNameDto(l.getImCode(),l.getImName()));
});
List<ImInfo> imInfosAll = qualificationRateStatisticsMapper.selectProjection(projectByCodeAndNameDtos,dto);
int total = imInfosAll.size();
@@ -177,7 +177,7 @@
AtomicInteger i=new AtomicInteger(0);
NameList.forEach(n->{
imInfos.stream()
- .filter(im-> Objects.equals(n,im.getICode()+"-"+im.getImName()))
+ .filter(im-> Objects.equals(n,im.getImCode()+"-"+im.getImName()))
.forEach(im->{
i.set(im.getIprInfos().size());
});
@@ -200,7 +200,11 @@
@Override
public List<Map<String, Object>> getSampleOptions() {
- return qualificationRateStatisticsMapper.getSampleOptions();
+ List<Map<String, Object>> sampleOptions = qualificationRateStatisticsMapper.getSampleOptions();
+ //鍘婚噸鏍峰搧
+ List<Map<String, Object>> sampleOptionsDistinct = ArrayListUtil.oneObjectsDistinctByProperty(MapHandlerDto::comparingByCode, sampleOptions);
+ sampleOptionsDistinct.forEach(System.out::println);
+ return sampleOptionsDistinct;
}
public static String getPercent(long x, long y) {
diff --git a/inspection-server/src/main/resources/mapper/QualificationRateStatisticsMapper.xml b/inspection-server/src/main/resources/mapper/QualificationRateStatisticsMapper.xml
index bb63097..a9a3d21 100644
--- a/inspection-server/src/main/resources/mapper/QualificationRateStatisticsMapper.xml
+++ b/inspection-server/src/main/resources/mapper/QualificationRateStatisticsMapper.xml
@@ -11,7 +11,7 @@
i.end_time endTime
FROM inspection i
INNER JOIN inspection_material im ON i.id = im.inspection_id
- where (i.state = 1 AND i.inspection_status is NOT NULL and im.state=1)
+ where (i.state = 1 and im.state=1)
<if test="dto.beginDate!=null and dto.endDate!=null">
DATE_FORMAT( i.end_time, '%Y-%m-%d' ) BETWEEN #{dto.beginDate}
AND #{dto.endDate}
@@ -27,7 +27,7 @@
and im.name=#{dto.sample}
</if>
<if test="dto.code!=null and dto.code!=''">
- and i.code=#{dto.code}
+ and im.code=#{dto.code}
</if>
</select>
<select id="selectProjectionsByCondition" resultMap="ImInfoMap">
@@ -40,7 +40,7 @@
ipr.id iprId,
ipr.`name` iprName,
ipr.test_state testState,
- i.code iCode,
+ im.code imCode,
i.type type
FROM
inspection i,
@@ -70,7 +70,7 @@
and im.name=#{dto.sample}
</if>
<if test="dto.code!=null and dto.code!=''">
- and i.code=#{dto.code}
+ and im.code=#{dto.code}
</if>
</select>
<select id="selectProjection" resultMap="ImInfoMap">
@@ -86,8 +86,6 @@
AND i.state = 1
AND im.state = 1
AND ipr.state = 1
- AND i.inspection_status is NOT NULL
- AND ipr.test_state is not null
<if test="dto.beginDate!=null and dto.endDate!=null">
DATE_FORMAT( i.end_time, '%Y-%m-%d' ) BETWEEN #{dto.beginDate}
AND #{dto.endDate}
@@ -103,9 +101,9 @@
and im.name=#{dto.sample}
</if>
<if test="dto.code!=null and dto.code!=''">
- and i.code=#{dto.code}
+ and im.code=#{dto.code}
</if>
- and i.code in
+ and im.code in
<foreach collection="list" item="l" open="(" close=")" separator="," >
#{l.code}
</foreach>
@@ -124,7 +122,7 @@
i.end_time endTime
FROM inspection i
INNER JOIN inspection_material im ON i.id = im.inspection_id
- where (i.state = 1 AND i.inspection_status is NOT NULL and im.state=1)
+ where (i.state = 1 and im.state=1)
<if test="dto.beginDate!=null and dto.endDate!=null">
DATE_FORMAT( i.end_time, '%Y-%m-%d' ) BETWEEN #{dto.beginDate}
AND #{dto.endDate}
@@ -140,7 +138,7 @@
and im.name=#{dto.sample}
</if>
<if test="dto.code!=null and dto.code!=''">
- and i.code=#{dto.code}
+ and im.code=#{dto.code}
</if>
</select>
<select id="getSampleOptions" resultType="java.util.Map">
@@ -152,17 +150,17 @@
i.inspection_status inspectionStatus,
i.start_time startTime,
i.end_time endTime,
- i.`code`
+ im.`code` code
FROM
inspection i
INNER JOIN inspection_material im ON i.id = im.inspection_id
WHERE
- ( i.state = 1 AND i.inspection_status IS NOT NULL AND im.state = 1 )
+ ( i.state = 1 AND im.state = 1 )
</select>
<resultMap id="ImInfoMap" type="com.yuanchu.limslaboratory.pojo.ImInfo">
<result property="imId" column="imId"/>
- <result property="iCode" column="iCode"/>
+ <result property="imCode" column="imCode"/>
<result property="imName" column="imName"/>
<result property="startTime" column="startTime"/>
<result property="endTime" column="endTime"/>
diff --git a/inspection-server/src/main/resources/mapper/ReportMapper.xml b/inspection-server/src/main/resources/mapper/ReportMapper.xml
index 63bc801..8c53688 100644
--- a/inspection-server/src/main/resources/mapper/ReportMapper.xml
+++ b/inspection-server/src/main/resources/mapper/ReportMapper.xml
@@ -11,6 +11,7 @@
im.name materialName,
r.conclusion ,
r.status ,
+ r.approver approver,
check_time,
u.name
from lims_laboratory.report r
diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/RoleMangerController.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/RoleMangerController.java
new file mode 100644
index 0000000..d60ec4e
--- /dev/null
+++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/RoleMangerController.java
@@ -0,0 +1,33 @@
+package com.yuanchu.limslaboratory.controller;
+
+import com.yuanchu.limslaboratory.service.RoleManagerService;
+import com.yuanchu.limslaboratory.vo.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/23
+ */
+@Api(tags = "瀹為獙瀹�-->3銆佽鑹茬鐞�")
+@RestController
+@RequestMapping("/role-manager")
+public class RoleMangerController {
+
+ @Resource
+ private RoleManagerService roleManagerService;
+
+ @ApiOperation("鑾峰彇鑿滃崟鍔熻兘鏍�")
+ @GetMapping("/getMenusTree")
+ public Result<?>getMenusTree() {
+ return Result.success(roleManagerService.getMenusTree());
+ };
+
+
+
+}
diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/MenuMapper.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/MenuMapper.java
new file mode 100644
index 0000000..56e131d
--- /dev/null
+++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/MenuMapper.java
@@ -0,0 +1,19 @@
+package com.yuanchu.limslaboratory.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yuanchu.limslaboratory.pojo.Menu;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/23
+ */
+@Repository
+public interface MenuMapper extends BaseMapper<Menu> {
+
+ List<Menu> getMenuList();
+
+
+}
diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/Menu.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/Menu.java
new file mode 100644
index 0000000..b9cd220
--- /dev/null
+++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/Menu.java
@@ -0,0 +1,36 @@
+package com.yuanchu.limslaboratory.pojo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/23
+ */
+@Data
+public class Menu implements Serializable {
+
+ /**
+ * id
+ */
+ private Integer value;
+
+ /**
+ * 鑿滃崟鍚�
+ */
+ private String label;
+
+
+ /**
+ * 鐖剁骇id
+ */
+ private Integer parentId;
+
+ /**
+ * 瀛愮骇鑿滃崟淇℃伅
+ */
+ private List<Menu> children;
+}
diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/Role.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/Role.java
new file mode 100644
index 0000000..036a706
--- /dev/null
+++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/Role.java
@@ -0,0 +1,26 @@
+package com.yuanchu.limslaboratory.pojo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/23
+ */
+@Data
+public class Role implements Serializable {
+
+
+ private Integer id;
+
+ private Integer name;
+
+ private LocalDateTime createTime;
+
+ private LocalDateTime updateTime;
+
+ private Integer state;
+
+}
diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/RoleManagerService.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/RoleManagerService.java
new file mode 100644
index 0000000..6cb04de
--- /dev/null
+++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/RoleManagerService.java
@@ -0,0 +1,11 @@
+package com.yuanchu.limslaboratory.service;
+
+import com.yuanchu.limslaboratory.vo.Result;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/23
+ */
+public interface RoleManagerService {
+ Object getMenusTree();
+}
diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RoleManagerServiceImpl.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RoleManagerServiceImpl.java
new file mode 100644
index 0000000..38f0db1
--- /dev/null
+++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RoleManagerServiceImpl.java
@@ -0,0 +1,43 @@
+package com.yuanchu.limslaboratory.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.yuanchu.limslaboratory.mapper.MenuMapper;
+import com.yuanchu.limslaboratory.pojo.Menu;
+import com.yuanchu.limslaboratory.service.RoleManagerService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/23
+ */
+@Service
+public class RoleManagerServiceImpl implements RoleManagerService {
+
+ @Resource
+ private MenuMapper menuMapper;
+
+ @Override
+ public Object getMenusTree() {
+ List<Menu> menus = menuMapper.getMenuList();
+ return menus.stream()
+ .filter(t -> t.getParentId() == 0)
+ .peek((menu) -> menu.setChildren(this.getEnumChildren(menu, menus)))
+ .collect(Collectors.toList());
+ }
+
+
+ private List<Menu> getEnumChildren(Menu root, List<Menu> all) {
+ return all.stream()
+ .filter(t -> Objects.equals(t.getParentId(), root.getValue()))
+ .peek(g -> {
+ //鎵惧瓙鑿滃崟
+ g.setChildren(getEnumChildren(g, all));
+ })
+ .collect(Collectors.toList());
+ }
+
+}
diff --git a/laboratory-server/src/main/resources/mapper/MenuMapper.xml b/laboratory-server/src/main/resources/mapper/MenuMapper.xml
new file mode 100644
index 0000000..586dcb7
--- /dev/null
+++ b/laboratory-server/src/main/resources/mapper/MenuMapper.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.yuanchu.limslaboratory.mapper.MenuMapper">
+
+ <select id="getMenuList" resultType="com.yuanchu.limslaboratory.pojo.Menu">
+ select id value,name label,parent_id parentId
+ from menu
+ where state =1
+ </select>
+</mapper>
\ No newline at end of file
--
Gitblit v1.9.3