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