From 730443b70de88d328ffa275f51f69280fda979e4 Mon Sep 17 00:00:00 2001 From: XiaoRuby <3114200645@qq.com> Date: 星期三, 30 八月 2023 12:59:50 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- inspection-server/src/main/resources/mapper/RawMaterialMapper.xml | 3 inspection-server/src/main/resources/mapper/LinkDetectionMapper.xml | 3 user-server/src/main/java/com/yuanchu/limslaboratory/mapper/MenuMapper.java | 2 inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/LinkDetection.java | 2 laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/InstrumentMapper.java | 2 framework/src/main/java/com/yuanchu/limslaboratory/enums/MenuEnums.java | 91 +++++++ inspection-server/src/main/resources/mapper/InspectionMapper.xml | 2 inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/LinkBasicInformationMapper.java | 5 inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/LinkBasicInformationServiceImpl.java | 45 +++ framework/src/main/java/com/yuanchu/limslaboratory/utils/MyClassUtil.java | 62 +++++ sys/src/main/java/com/yuanchu/limslaboratory/aop/AuthRequestAspect.java | 2 user-server/src/main/java/com/yuanchu/limslaboratory/controller/RoleMangerController.java | 9 framework/src/main/java/com/yuanchu/limslaboratory/enums/InterfaceType.java | 46 +++ framework/src/main/java/com/yuanchu/limslaboratory/annotation/AuthHandler.java | 23 + inspection-server/src/main/java/com/yuanchu/limslaboratory/service/LinkBasicInformationService.java | 8 user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RoleManagerServiceImpl.java | 6 user-server/src/main/resources/mapper/MenuMapper.xml | 11 inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/LinkDetectionController.java | 17 user-server/src/main/java/com/yuanchu/limslaboratory/mapper/RoleManageMapper.java | 4 user-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/MapHandlerRoleDto.java | 18 + inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionController.java | 25 ++ inspection-server/src/main/java/com/yuanchu/limslaboratory/service/InspectionService.java | 8 inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionServiceImpl.java | 14 + sys/src/main/resources/application-dev.yml | 2 user-server/src/main/resources/mapper/UserMapper.xml | 1 inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/LinkDetectionMapper.java | 1 user-server/src/main/resources/mapper/RoleManangeMapper.xml | 12 + laboratory-server/src/main/resources/mapper/InstrumentMapper.xml | 3 standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/SpecificationsMapper.java | 2 inspection-server/src/main/resources/mapper/LinkBasicInformationMapper.xml | 74 +++++ user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/UserServiceImpl.java | 3 sys/src/main/java/com/yuanchu/limslaboratory/commandLineRunner/ResolutionRequestsCommandLineRunner.java | 114 +++++++++ laboratory-server/src/main/resources/mapper/ClassifyMapper.xml | 3 inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/LinkBasicInformationController.java | 21 + inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/LinkDetectionServiceImpl.java | 1 inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/LinkBasicInformation.java | 4 inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/LinkBasicInformationVo.java | 25 ++ 37 files changed, 642 insertions(+), 32 deletions(-) diff --git a/framework/src/main/java/com/yuanchu/limslaboratory/annotation/AuthHandler.java b/framework/src/main/java/com/yuanchu/limslaboratory/annotation/AuthHandler.java index 086b681..54e2dc6 100644 --- a/framework/src/main/java/com/yuanchu/limslaboratory/annotation/AuthHandler.java +++ b/framework/src/main/java/com/yuanchu/limslaboratory/annotation/AuthHandler.java @@ -1,28 +1,35 @@ package com.yuanchu.limslaboratory.annotation; -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; +import com.yuanchu.limslaboratory.enums.InterfaceType; +import com.yuanchu.limslaboratory.enums.MenuEnums; + +import java.lang.annotation.*; /** * @author 寮犲 */ @Target({ElementType.METHOD, ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) +@Documented public @interface AuthHandler { /** * 鎺ュ彛绫诲瀷 * @return */ - int type() default 0; - + InterfaceType type() default InterfaceType.NUll; /** - * 鎺ュ彛鍚� + * 鑿滃崟id * @return */ - String name() default ""; + MenuEnums menuId() default MenuEnums.NUll; + + /** + * 鏄惁闇�瑕佹坊鍔犳暟鎹簱 + * @return + */ + boolean isAdd() default false; + } diff --git a/framework/src/main/java/com/yuanchu/limslaboratory/enums/InterfaceType.java b/framework/src/main/java/com/yuanchu/limslaboratory/enums/InterfaceType.java new file mode 100644 index 0000000..609128b --- /dev/null +++ b/framework/src/main/java/com/yuanchu/limslaboratory/enums/InterfaceType.java @@ -0,0 +1,46 @@ +package com.yuanchu.limslaboratory.enums; + +/** + * @Author 寮犲 + * @Date 2023/8/30 + */ +public enum InterfaceType { + + /** + * 鎺ュ彛绫诲瀷 + */ + SELECT("select",0), + ADD("add",1), + UPDATE("update",2), + DELETE("delete",3), + NUll(); + + + private String type; + + private Integer num; + + public String getType() { + return type; + } + + InterfaceType() { + } + + public void setType(String type) { + this.type = type; + } + + public Integer getNum() { + return this.num; + } + + public void setNum(Integer num) { + this.num = num; + } + + InterfaceType(String type, Integer num) { + this.type = type; + this.num = num; + } +} diff --git a/framework/src/main/java/com/yuanchu/limslaboratory/enums/MenuEnums.java b/framework/src/main/java/com/yuanchu/limslaboratory/enums/MenuEnums.java new file mode 100644 index 0000000..acc0a79 --- /dev/null +++ b/framework/src/main/java/com/yuanchu/limslaboratory/enums/MenuEnums.java @@ -0,0 +1,91 @@ +package com.yuanchu.limslaboratory.enums; + +/** + * @Author 寮犲 + * @Date 2023/8/29 + */ +public enum MenuEnums { + /** + * 绌烘牸鍖哄垎鍔熻兘妯″潡 + */ + standardLibrary("鏍囧噯搴�",1), + index("鏍囧噯搴�",38), + + inspectionManagement("鎶ユ绠$悊",2), + commissionInspection("濮旀墭妫�楠�",3), + reportForInspection("鍘熸潗鏂欐姤妫�",4), + + experiment("璇曢獙绠$悊",5), + inspectionApplication("鏂板妫�楠�",6), + planAssignments("妫�楠岃鍒�",7), + checkTheReport("妫�楠屾姤鍛�",8), + reportAuditing("鎶ュ憡瀹℃牳",9), + nonConformanceReview("涓嶅悎鏍煎搧鍙嶉",10), + nonConformingFeedback("涓嶅悎鏍煎搧璇勫",11), + passRateStatistics("鍚堟牸鐜囩粺璁�",12), + + laboratory("瀹為獙瀹ょ鐞�",13), + ledger("璁惧鍙拌处",14), + measure("璁¢噺绠$悊",15), + gather("璁惧閲囬泦",16), + personnel("浜哄憳绠$悊",17), + org("缁勭粐鏋舵瀯",36), + role("瑙掕壊绠$悊",37), + + laboratoryManage("瀹為獙瀹ょ鐞�",18), + CNAS("CNS绠$悊",19), + reviewAnnualPlan("瀹℃牳骞村害璁″垝",20), + nonConformanceManage("涓嶇鍚堥」绠$悊",21), + nonConformanceStatistics("涓嶇鍚堥」缁熻",22), + satisfactionSurveys("婊℃剰搴﹁皟鏌�",23), + + chart("鏅鸿兘鍥捐〃",24), + center("瀹為獙涓績",25), + spc("SPC鎺у埗鍥�",26), + shota("姝eお鍒嗗竷鍥�",27), + work("宸ヤ綔缁熻",28), + + message("娑堟伅浠e姙",29), + mymessage("鎴戠殑娑堟伅",30), + toDo("鎴戠殑浠e姙",31), + + personal("涓汉绠$悊",32), + myInformation("鎴戠殑淇℃伅",33), + + baseData("鍩虹鏁版嵁",34), + basicDataMessage("鍩虹鏁版嵁",35), + + home("涓婚〉",39), + + /** + * 绌� + */ + NUll(); + MenuEnums() { + } + + private String name; + + private Integer id; + + MenuEnums(String name, Integer id) { + this.name = name; + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } +} diff --git a/framework/src/main/java/com/yuanchu/limslaboratory/utils/MyClassUtil.java b/framework/src/main/java/com/yuanchu/limslaboratory/utils/MyClassUtil.java new file mode 100644 index 0000000..976a27a --- /dev/null +++ b/framework/src/main/java/com/yuanchu/limslaboratory/utils/MyClassUtil.java @@ -0,0 +1,62 @@ +package com.yuanchu.limslaboratory.utils; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.core.io.Resource; +import org.springframework.core.io.support.PathMatchingResourcePatternResolver; +import org.springframework.core.io.support.ResourcePatternResolver; +import org.springframework.core.type.classreading.CachingMetadataReaderFactory; +import org.springframework.core.type.classreading.MetadataReader; +import org.springframework.core.type.classreading.MetadataReaderFactory; +import org.springframework.stereotype.Component; +import org.springframework.util.ClassUtils; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.Enumeration; +import java.util.List; +import java.util.jar.JarEntry; +import java.util.jar.JarFile; +import java.io.File; +import java.net.JarURLConnection; +import java.net.URL; + +/** + * @author 寮犲 + */ +@Component +@Slf4j +public class MyClassUtil { + + private final static String RESOURCE_PATTERN = "/**/*.class"; + + /** + * 閫氳繃鍖呭悕鑾峰彇椤圭洰鍖呬笅鎵�鏈夌被 + * + * @param BASE_PACKAGE 鍖呭悕 + * @return + */ + public static List<Class<?>> getClassList(String BASE_PACKAGE) { + List<Class<?>> classes = new ArrayList<>(); + //spring宸ュ叿绫伙紝鍙互鑾峰彇鎸囧畾璺緞涓嬬殑鍏ㄩ儴绫� + ResourcePatternResolver resourcePatternResolver = new PathMatchingResourcePatternResolver(); + try { + String pattern = ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX + + ClassUtils.convertClassNameToResourcePath(BASE_PACKAGE) + RESOURCE_PATTERN; + Resource[] resources = resourcePatternResolver.getResources(pattern); + //MetadataReader 鐨勫伐鍘傜被 + MetadataReaderFactory readerfactory = new CachingMetadataReaderFactory(resourcePatternResolver); + for (Resource resource : resources) { + //鐢ㄤ簬璇诲彇绫讳俊鎭� + MetadataReader reader = readerfactory.getMetadataReader(resource); + //鎵弿鍒扮殑class + String classname = reader.getClassMetadata().getClassName(); + log.info("classname={}", classname); + Class<?> clazz = Class.forName(classname); + classes.add(clazz); + } + } catch (Exception e) { + log.error("鑾峰彇class寮傚父:", e); + } + return classes; + } +} \ No newline at end of file diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionController.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionController.java index 7d0ee78..48f32c0 100644 --- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionController.java +++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionController.java @@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.yuanchu.limslaboratory.annotation.AuthHandler; +import com.yuanchu.limslaboratory.mapper.InstrumentMapper; import com.yuanchu.limslaboratory.mapper.UserMapper; import com.yuanchu.limslaboratory.pojo.Inspection; import com.yuanchu.limslaboratory.pojo.Report; @@ -50,6 +51,9 @@ @Resource UserMapper userMapper; + + @Resource + private InstrumentMapper instrumentMapper; @ApiOperation(value = "鏌ヨ妫�楠岀敵璇峰崟鍒楄〃") @ApiImplicitParams(value = { @@ -117,7 +121,8 @@ @ApiOperation(value = "鏂板妫�楠屽崟") @PostMapping("/addInspect") - public Result addInspect(@RequestHeader("token") String token, @Validated @RequestBody InspectionVo inspectionVo) throws Exception { + @AuthHandler + public Result addInspect(@RequestHeader("X-Token") String token, @Validated @RequestBody InspectionVo inspectionVo) throws Exception { Object object = RedisUtil.get(token); Map<String, Object> unmarshal = JackSonUtil.unmarshal(JackSonUtil.marshal(object), Map.class); return Result.success(inspectionService.addInspect((Integer) unmarshal.get("id"), inspectionVo)); @@ -128,15 +133,22 @@ @ApiImplicitParam(name = "id", value = "妫�楠屽崟id", dataTypeClass = Integer.class, required = true) }) @GetMapping("/selectInspectsListById") + @AuthHandler public Result selectInspectsListById(Integer id) { return Result.success(inspectionService.selectInspectsListById(id)); } @ApiOperation(value = "閫夋嫨妫�楠岄」鐩殑璐d换浜�") @GetMapping("/selectUser") + @AuthHandler public Result selectUser() { return Result.success(userMapper.selectUser()); } + + @ApiOperation(value = "閫夋嫨妫�楠岃澶�") + @GetMapping("/selectEquipment") + @AuthHandler + public Result selectEquipment(){return Result.success(instrumentMapper.getInstrument());} @ApiOperation(value = "淇濆瓨妫�楠岄」鐩矗浠讳汉") @ApiImplicitParams(value = { @@ -144,8 +156,16 @@ @ApiImplicitParam(name = "userProId", value = "璐d换浜篿d", dataTypeClass = Integer.class, required = true) }) @GetMapping("/chooseUseProId") + @AuthHandler public Result chooseUseProId(Integer id, Integer userProId) { return Result.success(inspectionService.chooseUseProId(id, userProId)); + } + + @ApiOperation("淇濆瓨璁惧id") + @GetMapping("/chooseEquipment") + @AuthHandler + public Result chooseEquipment(Integer id,Integer equipmentId){ + return Result.success(inspectionService.chooseEquipment(id, equipmentId)); } @ApiOperation(value = "浣滃簾妫�楠屽崟") @@ -153,10 +173,13 @@ @ApiImplicitParam(name = "id", value = "妫�楠屽崟id", dataTypeClass = Integer.class, required = true) }) @PostMapping("/delInspect") + @AuthHandler public Result delInspect(Integer id) { return Result.success(inspectionService.delInspect(id)); } + + } diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/LinkBasicInformationController.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/LinkBasicInformationController.java index 76edbcc..bb5a18a 100644 --- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/LinkBasicInformationController.java +++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/LinkBasicInformationController.java @@ -2,8 +2,12 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yuanchu.limslaboratory.annotation.AuthHandler; +import com.yuanchu.limslaboratory.enums.InterfaceType; +import com.yuanchu.limslaboratory.enums.MenuEnums; +import com.yuanchu.limslaboratory.pojo.LinkBasicInformation; import com.yuanchu.limslaboratory.service.LinkBasicInformationService; import com.yuanchu.limslaboratory.utils.MyUtil; import com.yuanchu.limslaboratory.utils.RedisUtil; @@ -69,4 +73,21 @@ return Result.success(map); } + @ApiOperation("鏍规嵁id鏌ヨSpecifications琛ㄧ殑Name") + @GetMapping("/getSpecificationsName") + public Result<?> getSpecificationsName(String id){ + return Result.success(linkBasicInformationService.getSpecificationsName(id)); + } + + @ApiOperation("鍒犻櫎") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "id", value = "濮旀墭鏍峰搧id", dataTypeClass = Integer.class, required = true) + }) + @PostMapping("/delLink") + @AuthHandler(type = InterfaceType.DELETE,menuId = MenuEnums.commissionInspection,isAdd = true) + public Result<?> delLink(Integer id){ + linkBasicInformationService.delLink(id); + return Result.success("鍒犻櫎鎴愬姛!"); + } + } diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/LinkDetectionController.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/LinkDetectionController.java index 85cb28e..be91e78 100644 --- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/LinkDetectionController.java +++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/LinkDetectionController.java @@ -49,9 +49,10 @@ @Resource ProductService productService; + + @ApiOperation("閾炬帴-->鑾峰彇鏍峰搧鍚嶇О") @GetMapping("/material") - @AuthHandler public Result<?> getMaterialIdAndName(@RequestHeader("link") String link) { String redisLink = RedisUtil.get("viewId").toString(); if (linkBasicInformationService.isIfViewUUID(redisLink)){ @@ -65,7 +66,6 @@ @ApiOperation("閾炬帴-->鑾峰彇瑙勬牸鍨嬪彿") @GetMapping("/specification") - @AuthHandler public Result<?> getSpecificationIdAndName(@RequestHeader("link") String link, String materialId) { String redisLink = RedisUtil.get("viewId").toString(); if (linkBasicInformationService.isIfViewUUID(redisLink)){ @@ -80,7 +80,6 @@ @ApiImplicitParam(name = "modelId", value = "鍨嬪彿id", dataTypeClass = Integer.class, required = true) }) @GetMapping("/chooseProject") - @AuthHandler public Result<?> chooseProject(@RequestHeader("link") String link, Integer modelId) { String redisLink = RedisUtil.get("viewId").toString(); if (linkBasicInformationService.isIfViewUUID(redisLink)){ @@ -93,7 +92,6 @@ @ApiOperation("閾炬帴-->娣诲姞濮旀墭鎶ユ鐢宠鍗�") @PostMapping("/addInspection") - @AuthHandler public Result<?> addLinkBasicInformation(@RequestHeader("link") String link, @RequestBody LinkBasicInformation linkBasicInformation) { String redisLink = RedisUtil.get("viewId").toString(); if (linkBasicInformationService.isIfViewUUID(redisLink)){ @@ -111,22 +109,27 @@ @ApiOperation(value = "鐢熸垚浜岀淮鐮佹墍闇�鐨勫敮涓�鐮�") @GetMapping("/getViewUUID") - @AuthHandler public Result<?> getViewUUID(int day){ return Result.success("鐢熸垚鎴愬姛",linkBasicInformationService.getViewUUID(day)); } @ApiOperation(value = "鏌ヨ浜岀淮鐮佹墍闇�鐨勫敮涓�鐮�") @GetMapping("/selectViewUUID") - @AuthHandler public Result<?> selectViewUUID(){ return Result.success("鏌ヨ鎴愬姛",linkBasicInformationService.selectViewUUID()); } @ApiOperation(value = "妫�楠屽敮涓�鐮佹槸鍚︽湁鏁�") @GetMapping("/isIfViewUUID") - @AuthHandler public Result<?> isIfViewUUID(String viewId){ return Result.success("鏌ヨ鎴愬姛",linkBasicInformationService.isIfViewUUID(viewId)); } + + + @ApiOperation("鑾峰彇鏍峰搧淇℃伅浠ュ強濮旀墭淇℃伅") + @GetMapping("/getContractsSampleInfo") + public Result<?> getContractsSampleInfo(String viewId){ + return Result.success(linkBasicInformationService.getContractsSampleInfo(viewId)); + } + } diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/LinkBasicInformationMapper.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/LinkBasicInformationMapper.java index dfb1e46..422dae3 100644 --- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/LinkBasicInformationMapper.java +++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/LinkBasicInformationMapper.java @@ -5,6 +5,8 @@ import com.yuanchu.limslaboratory.pojo.LinkBasicInformation; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.yuanchu.limslaboratory.pojo.vo.InspectionVo; +import com.yuanchu.limslaboratory.pojo.vo.LinkBasicInformationVo; +import org.apache.ibatis.annotations.Param; import java.util.List; import java.util.Map; @@ -28,4 +30,7 @@ List<Map<String, Object>> selectLinkAll(); + LinkBasicInformation getLinkBasicInformation(@Param("uid")String uid); + + int deleteByID(Integer id); } diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/LinkDetectionMapper.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/LinkDetectionMapper.java index 7e6da26..e7a7486 100644 --- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/LinkDetectionMapper.java +++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/LinkDetectionMapper.java @@ -14,4 +14,5 @@ */ public interface LinkDetectionMapper extends MyBaseMapper<LinkDetection> { + int deleteByLinkbasic(Integer id); } diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/LinkBasicInformation.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/LinkBasicInformation.java index 5c9f196..483d0e4 100644 --- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/LinkBasicInformation.java +++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/LinkBasicInformation.java @@ -65,6 +65,10 @@ @ApiModelProperty(value = "濮旀墭澶囨敞", example = "濮旀墭澶囨敞YPBH123456789YPBH123456789YPBH123456789") private String entrustRemarks; + @ApiModelProperty(value = "妫�楠屾椂闂�", hidden = true) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date insTime; + @TableLogic(value = "1", delval = "0") @ApiModelProperty(value = "閫昏緫鍒犻櫎 姝e父>=1,鍒犻櫎<=0", hidden = true) private Integer state; diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/LinkDetection.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/LinkDetection.java index 5345c81..832e4ca 100644 --- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/LinkDetection.java +++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/LinkDetection.java @@ -60,7 +60,7 @@ @ApiModelProperty(value = "LinkBasicInformation瀵硅薄Id", hidden = true) private Integer linkBasicId; - @TableLogic(value = "1", delval = "0") + @ApiModelProperty(value = "閫昏緫鍒犻櫎 姝e父>=1,鍒犻櫎<=0", hidden = true) private Integer state; diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/LinkBasicInformationVo.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/LinkBasicInformationVo.java new file mode 100644 index 0000000..7a81fe4 --- /dev/null +++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/LinkBasicInformationVo.java @@ -0,0 +1,25 @@ +package com.yuanchu.limslaboratory.pojo.vo; + +import com.yuanchu.limslaboratory.pojo.LinkBasicInformation; +import com.yuanchu.limslaboratory.pojo.LinkDetection; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; +import java.util.List; + +/** + * @Author 寮犲 + * @Date 2023/8/29 + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class LinkBasicInformationVo extends LinkBasicInformation implements Serializable{ + + /** + *鏍峰搧淇℃伅 + */ + private List<LinkDetection> detectionList; + + +} diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/InspectionService.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/InspectionService.java index fd58af1..f8236fc 100644 --- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/InspectionService.java +++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/InspectionService.java @@ -78,6 +78,12 @@ */ String chooseUseProId(Integer id, Integer userProId); - + /** + * 淇濆瓨璁惧 + * @param id + * @param equipmentId + * @return + */ + boolean chooseEquipment(Integer id, Integer equipmentId); } diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/LinkBasicInformationService.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/LinkBasicInformationService.java index 3a4c2a5..3f81fb4 100644 --- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/LinkBasicInformationService.java +++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/LinkBasicInformationService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yuanchu.limslaboratory.pojo.LinkBasicInformation; import com.baomidou.mybatisplus.extension.service.IService; +import com.yuanchu.limslaboratory.pojo.Specifications; import com.yuanchu.limslaboratory.pojo.vo.InspectionVo; import org.springframework.transaction.annotation.Transactional; @@ -36,4 +37,11 @@ Map<String, String> selectViewUUID(); boolean isIfViewUUID(String uuid); + + LinkBasicInformation getContractsSampleInfo(String viewId); + + //鏍规嵁濮旀墭鏍峰搧id鍒犻櫎 + void delLink(Integer id); + + Specifications getSpecificationsName(String id); } diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionServiceImpl.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionServiceImpl.java index 4f5f9c1..580f029 100644 --- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionServiceImpl.java +++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionServiceImpl.java @@ -1,7 +1,9 @@ package com.yuanchu.limslaboratory.service.impl; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.lang.Snowflake; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -132,6 +134,7 @@ RawMaterial rawMaterial = new RawMaterial(); rawMaterial.setId(inspectionVo.getId()); rawMaterial.setType(1); + rawMaterial.setInspectionDate(DateUtil.date()); rawMaterial.setSurveyor(userMapper.selectById(id).getName()); rawMaterialMapper.updateById(rawMaterial); } @@ -286,12 +289,23 @@ return "淇濆瓨鎴愬姛!"; } + @Override + public boolean chooseEquipment(Integer id, Integer equipmentId) { + UpdateWrapper<InspectionProduct>inspectionProductUpdateWrapper=new UpdateWrapper<>(); + inspectionProductUpdateWrapper.lambda().set(InspectionProduct::getInstrumentId,equipmentId) + .eq(InspectionProduct::getId,id); + return inspectionProductMapper.update(null,inspectionProductUpdateWrapper)>0; + } + /*鏍规嵁鏍峰搧鍚嶇О,鏍峰搧缂栧彿,鍨嬪彿瑙勬牸鑾峰彇鍨嬪彿id*/ private Integer getSpecificationId(String name, String mcode, String specification) { //鑾峰彇鐗╂枡id Material material = materialMapper.selectOne(Wrappers.<Material>query() .eq("name", name) .eq("code", mcode)); + if (Objects.isNull(material)){ + return null; + } //鑾峰彇瑙勬牸鍚嶇О鍜屽瀷鍙峰悕绉� String[] split = specification.split("-"); String stName = split[0]; diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/LinkBasicInformationServiceImpl.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/LinkBasicInformationServiceImpl.java index d7dd0eb..4e216bd 100644 --- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/LinkBasicInformationServiceImpl.java +++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/LinkBasicInformationServiceImpl.java @@ -1,9 +1,14 @@ package com.yuanchu.limslaboratory.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.yuanchu.limslaboratory.mapper.LinkDetectionMapper; +import com.yuanchu.limslaboratory.mapper.SpecificationsMapper; import com.yuanchu.limslaboratory.pojo.LinkBasicInformation; import com.yuanchu.limslaboratory.mapper.LinkBasicInformationMapper; +import com.yuanchu.limslaboratory.pojo.LinkDetection; +import com.yuanchu.limslaboratory.pojo.Specifications; import com.yuanchu.limslaboratory.service.LinkBasicInformationService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.yuanchu.limslaboratory.service.LinkDetectionService; @@ -11,6 +16,7 @@ import com.yuanchu.limslaboratory.utils.RedisUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.*; @@ -29,11 +35,27 @@ @Resource private LinkBasicInformationMapper linkBasicInformationMapper; + @Resource + private LinkDetectionMapper linkDetectionMapper; + @Autowired private LinkDetectionService linkDetectionService; + @Autowired + private SpecificationsMapper specificationsMapperOn; + @Override + @Transactional(rollbackFor = Exception.class) public String addLinkBasicInformation(LinkBasicInformation linkBasicInformation) { + System.out.println(linkBasicInformation.getLinkDetectionList()); + QueryWrapper<LinkBasicInformation> queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda().select(LinkBasicInformation::getId).eq(LinkBasicInformation::getUid, linkBasicInformation.getUid()); + LinkBasicInformation linkBasicInformation1 = linkBasicInformationMapper.selectOne(queryWrapper); + Optional.ofNullable(linkBasicInformation1.getId()).ifPresent(l->{ + //鎵ц鍒犻櫎 + linkDetectionMapper.deleteByLinkbasic(linkBasicInformation1.getId()); + linkBasicInformationMapper.deleteByID(linkBasicInformation1.getId()); + }); //濮旀墭缂栧彿 String code = MyUtil.getTimeSixNumberCode("SL", "SL"); linkBasicInformation.setEntrustCoding(code); @@ -83,5 +105,28 @@ return uuid.equals(RedisUtil.get("viewId")); } + @Override + public LinkBasicInformation getContractsSampleInfo(String viewId) { + return linkBasicInformationMapper.getLinkBasicInformation(viewId); + } + + //鏍规嵁濮旀墭鏍峰搧鍒犻櫎 + @Override + public void delLink(Integer id) { + LinkDetection linkDetection = new LinkDetection(); + linkDetection.setId(id); + linkDetection.setState(0); + linkDetectionService.updateById(linkDetection); + } + + @Override + public Specifications getSpecificationsName(String id) { + QueryWrapper<Specifications>queryWrapper=new QueryWrapper<>(); + queryWrapper.lambda().select(Specifications::getName) + .eq(Specifications::getId,id) + .eq(Specifications::getState,1); + return specificationsMapperOn.selectOne(queryWrapper); + } + } diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/LinkDetectionServiceImpl.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/LinkDetectionServiceImpl.java index e347c34..b73a90f 100644 --- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/LinkDetectionServiceImpl.java +++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/LinkDetectionServiceImpl.java @@ -29,6 +29,7 @@ for (LinkDetection linkDetection:linkDetectionList){ linkDetection.setInspectionStatus(1); linkDetection.setLinkBasicId(id); + linkDetection.setState(1); } linkDetectionMapper.insertBatchSomeColumn(linkDetectionList); } diff --git a/inspection-server/src/main/resources/mapper/InspectionMapper.xml b/inspection-server/src/main/resources/mapper/InspectionMapper.xml index 711a5fe..275f752 100644 --- a/inspection-server/src/main/resources/mapper/InspectionMapper.xml +++ b/inspection-server/src/main/resources/mapper/InspectionMapper.xml @@ -4,7 +4,7 @@ <select id="selectInspectsList" resultType="map"> select i.id, i.code icode, - type, + i.type type, DATE_FORMAT(`form_time`,'%Y-%m-%d'), supplier, im.code mcode, diff --git a/inspection-server/src/main/resources/mapper/LinkBasicInformationMapper.xml b/inspection-server/src/main/resources/mapper/LinkBasicInformationMapper.xml index 619b044..0896c63 100644 --- a/inspection-server/src/main/resources/mapper/LinkBasicInformationMapper.xml +++ b/inspection-server/src/main/resources/mapper/LinkBasicInformationMapper.xml @@ -1,15 +1,21 @@ <?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.LinkBasicInformationMapper"> + <delete id="deleteByID"> + delete from link_basic_information where id=#{id} + </delete> <select id="getLinkBasicPage" resultType="map"> - SELECT l.`id`, l.`entrust_coding`, l.`entrusted`, d.`samples_number`, d.`sample_name`, - d.`specifications_models`, + SELECT d.`id`, l.`entrust_coding`, l.`entrusted`, d.`samples_number`, d.`sample_name`, + s.name specifications_models, DATE_FORMAT(l.`inspection_time`,'%Y-%m-%d') inspectionTime, DATE_FORMAT(l.`completion_deadline`,'%Y-%m-%d') completionDeadline, l.`contacts`, - DATE_FORMAT(d.`date_survey`,'%Y-%m-%d') dateSurvey, d.`inspection_status` - FROM link_basic_information l, link_detection d + DATE_FORMAT(d.`date_survey`,'%Y-%m-%d') dateSurvey, d.`inspection_status`, + DATE_FORMAT(l.`ins_time`,'%Y-%m-%d') insTime + FROM link_basic_information l, link_detection d,specifications s WHERE l.`id` = d.`link_basic_id` - AND l.`state` = 1 + and s.id=d.`specifications_models` + AND d.`state` = 1 + and l.`state` = 1 <if test="entrustCoding != null and entrustCoding != null"> AND l.`entrust_coding` like concat('%', #{entrustCoding}, '%') </if> @@ -25,8 +31,8 @@ </select> <select id="selectLinkAll" resultType="java.util.Map"> - SELECT d.id , - DATE_FORMAT(l.`inspection_time`, '%Y-%m-%d') formTime, + SELECT d.id, + DATE_FORMAT(l.`inspection_time`, '%Y-%m-%d') formTime, l.`entrusted` supplier, d.`sample_number` mcode, d.`sample_name` name, @@ -42,4 +48,58 @@ AND l.`state` = 1 and inspection_status = 1 </select> + <select id="getLinkBasicInformation" resultMap="getLinkBasicInformationMap"> + SELECT lb.entrust_coding entrustCoding, + lb.contacts contacts, + lb.contact_number contactNumber, + lb.contact_address contactAddress, + lb.completion_deadline completionDeadline, + lb.inspection_time inspectionTime, + lb.sample_delivery_mode sampleDeliveryMode, + lb.sample_delivery_phone sampleDeliveryPhone, + lb.report_number reportNumber, + lb.entrust_remarks entrustRemarks, + lb.sample_sender sampleSender, + lb.entrusted entrusted, + lb.uid uid, + ld.id id, + ld.sample_number sampleNumber, + ld.sample_name sampleName, + ld.specifications_models specificationsModels, + ld.unit unit, + ld.experiment experiment, + ld.samples_number samplesNumber, + ld.remarks remarks + FROM link_basic_information lb left join + link_detection ld + on lb.id = ld.link_basic_id + where lb.uid = #{uid} + and lb.state = 1 + </select> + + <resultMap id="getLinkBasicInformationMap" type="com.yuanchu.limslaboratory.pojo.LinkBasicInformation"> + <result property="entrustCoding" column="entrustCoding"/> + <result property="contacts" column="contacts"/> + <result property="contactNumber" column="contactNumber"/> + <result property="contactAddress" column="contactAddress"/> + <result property="uid" column="uid"/> + <result property="completionDeadline" column="completionDeadline"/> + <result property="inspectionTime" column="inspectionTime"/> + <result property="sampleDeliveryMode" column="sampleDeliveryMode"/> + <result property="sampleDeliveryPhone" column="sampleDeliveryPhone"/> + <result property="sampleSender" column="sampleSender"/> + <result property="entrustRemarks" column="entrustRemarks"/> + <result property="reportNumber" column="reportNumber"/> + <result property="entrusted" column="entrusted"/> + <collection property="linkDetectionList" ofType="LinkDetection"> + <result property="id" column="id"/> + <result property="sampleNumber" column="sampleNumber"/> + <result property="sampleName" column="sampleName"/> + <result property="specificationsModels" column="specificationsModels"/> + <result property="unit" column="unit"/> + <result property="samplesNumber" column="samplesNumber"/> + <result property="remarks" column="remarks"/> + <result property="experiment" column="experiment"/> + </collection> + </resultMap> </mapper> diff --git a/inspection-server/src/main/resources/mapper/LinkDetectionMapper.xml b/inspection-server/src/main/resources/mapper/LinkDetectionMapper.xml index 192de47..bf28846 100644 --- a/inspection-server/src/main/resources/mapper/LinkDetectionMapper.xml +++ b/inspection-server/src/main/resources/mapper/LinkDetectionMapper.xml @@ -2,4 +2,7 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.yuanchu.limslaboratory.mapper.LinkDetectionMapper"> + <delete id="deleteByLinkbasic"> + delete from link_detection where link_basic_id=#{id} + </delete> </mapper> diff --git a/inspection-server/src/main/resources/mapper/RawMaterialMapper.xml b/inspection-server/src/main/resources/mapper/RawMaterialMapper.xml index 7e17cfa..88e512e 100644 --- a/inspection-server/src/main/resources/mapper/RawMaterialMapper.xml +++ b/inspection-server/src/main/resources/mapper/RawMaterialMapper.xml @@ -26,11 +26,12 @@ specifications_models specifications, unit, quantity num, + surveyor, + type, DATE_FORMAT(inspection_date, '%Y-%m-%d') startTime, DATE_FORMAT(date_survey, '%Y-%m-%d') endTime, DATE_FORMAT(create_time, '%Y-%m-%d') formTime from lims_laboratory.raw_material where state = 1 - and type = 0 </select> </mapper> diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/InstrumentMapper.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/InstrumentMapper.java index dba7af0..affbdc7 100644 --- a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/InstrumentMapper.java +++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/InstrumentMapper.java @@ -25,4 +25,6 @@ //鍒嗛厤-->閫夋嫨璁惧 List<Map<String, Object>> chooseinstum(); + + List<Instrument> getInstrument(); } diff --git a/laboratory-server/src/main/resources/mapper/ClassifyMapper.xml b/laboratory-server/src/main/resources/mapper/ClassifyMapper.xml index c319b0f..f2d97dd 100644 --- a/laboratory-server/src/main/resources/mapper/ClassifyMapper.xml +++ b/laboratory-server/src/main/resources/mapper/ClassifyMapper.xml @@ -9,5 +9,8 @@ <if test="fatherName!=null and fatherName!=''"> AND father_name = #{fatherName} </if> + <if test="sonName!=null and sonName!=''"> + and son_name=#{sonName} + </if> </select> </mapper> diff --git a/laboratory-server/src/main/resources/mapper/InstrumentMapper.xml b/laboratory-server/src/main/resources/mapper/InstrumentMapper.xml index ab1509d..3aa5914 100644 --- a/laboratory-server/src/main/resources/mapper/InstrumentMapper.xml +++ b/laboratory-server/src/main/resources/mapper/InstrumentMapper.xml @@ -46,4 +46,7 @@ left join lims_laboratory.classify c on c.id = instrument.classify_id where conditions in(1,5) </select> + <select id="getInstrument" resultType="com.yuanchu.limslaboratory.pojo.Instrument"> + select id,equipment_name name from instrument where 1=1 and state=1 and conditions=5 + </select> </mapper> diff --git a/standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/SpecificationsMapper.java b/standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/SpecificationsMapper.java index 27a06a0..2349270 100644 --- a/standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/SpecificationsMapper.java +++ b/standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/SpecificationsMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yuanchu.limslaboratory.pojo.Specifications; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springframework.stereotype.Repository; import java.util.Map; import java.util.Objects; @@ -16,6 +17,7 @@ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 * @since 2023-07-11 */ +@Repository public interface SpecificationsMapper extends BaseMapper<Specifications> { Map<String, Object> selectSNameSNName(int materialId); diff --git a/sys/src/main/java/com/yuanchu/limslaboratory/aop/AuthRequestAspect.java b/sys/src/main/java/com/yuanchu/limslaboratory/aop/AuthRequestAspect.java index 4c54f75..3a53c0d 100644 --- a/sys/src/main/java/com/yuanchu/limslaboratory/aop/AuthRequestAspect.java +++ b/sys/src/main/java/com/yuanchu/limslaboratory/aop/AuthRequestAspect.java @@ -100,7 +100,7 @@ //throw new AuthException("400","鏃犳潈闄�"); } } else { - throw new AuthException("401", "鐧婚檰杩囨湡"); + throw new AuthException("401", "鐧婚檰杩囨湡!"); } } diff --git a/sys/src/main/java/com/yuanchu/limslaboratory/commandLineRunner/ResolutionRequestsCommandLineRunner.java b/sys/src/main/java/com/yuanchu/limslaboratory/commandLineRunner/ResolutionRequestsCommandLineRunner.java new file mode 100644 index 0000000..5a2b1ef --- /dev/null +++ b/sys/src/main/java/com/yuanchu/limslaboratory/commandLineRunner/ResolutionRequestsCommandLineRunner.java @@ -0,0 +1,114 @@ +package com.yuanchu.limslaboratory.commandLineRunner; + +import com.yuanchu.limslaboratory.annotation.AuthHandler; +import com.yuanchu.limslaboratory.mapper.MenuMapper; +import com.yuanchu.limslaboratory.mapper.RoleManageMapper; +import com.yuanchu.limslaboratory.utils.ArrayListUtil; +import com.yuanchu.limslaboratory.utils.MyClassUtil; +import com.yuanchu.limslaboratory.utils.SpringUtil; +import io.swagger.annotations.ApiOperation; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import org.aspectj.lang.reflect.MethodSignature; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.CommandLineRunner; +import org.springframework.core.annotation.AnnotationUtils; +import org.springframework.core.annotation.Order; +import org.springframework.core.io.Resource; +import org.springframework.core.io.support.PathMatchingResourcePatternResolver; +import org.springframework.core.io.support.ResourcePatternResolver; +import org.springframework.core.type.classreading.CachingMetadataReaderFactory; +import org.springframework.core.type.classreading.MetadataReader; +import org.springframework.core.type.classreading.MetadataReaderFactory; +import org.springframework.stereotype.Component; +import org.springframework.web.bind.annotation.*; + +import java.lang.reflect.Method; +import java.util.*; +import java.util.stream.Collectors; + +/** + * @Author 寮犲 + * @Date 2023/8/28 + */ +@Component +@Order(1) +@Slf4j +public class ResolutionRequestsCommandLineRunner implements CommandLineRunner { + + @Autowired + private RoleManageMapper roleManageMapper; + + @SneakyThrows + @Override + public void run(String... args) throws Exception { + log.info("瀹瑰櫒鐢熸垚涔嬪悗鎵ц"); + List<Class<?>> classList = MyClassUtil.getClassList("com.yuanchu.limslaboratory.controller"); + List<Map<String, String>> requestListInfo = new ArrayList<Map<String, String>>(); + classList.stream().forEach(c -> { + Method[] methods = c.getMethods(); + //鍘绘帀瀵硅薄鏂规硶 + List<Method> methodList = Arrays.stream(methods) + .filter(m -> !"notify".equals(m.getName()) && !"getClass".equals(m.getName()) + && !"hashCode".equals(m.getName()) && !"toString".equals(m.getName()) + && !"equals".equals(m.getName()) && !"wait".equals(m.getName()) && !"notifyAll".equals(m.getName())) + .collect(Collectors.toList()); + + for (int i = 0; i < methodList.size(); i++) { + Method method = methodList.get(i); + boolean annotationPresent = method.isAnnotationPresent(AuthHandler.class); + if (annotationPresent&&method.getAnnotation(AuthHandler.class).isAdd()) { + //鑾峰彇绫讳笂璇锋眰鍦板潃 + RequestMapping annotation = c.getAnnotation(RequestMapping.class); + StringBuilder builder = new StringBuilder(); + String apiInfo = null; + builder.append(annotation.value()[0]); + //鑾峰彇鏂规硶涓婃敞瑙� + if (method.isAnnotationPresent(PostMapping.class)) { + PostMapping post = method.getAnnotation(PostMapping.class); + builder.append(post.value()[0]); + } + if (method.isAnnotationPresent(GetMapping.class)) { + GetMapping get = method.getAnnotation(GetMapping.class); + builder.append(get.value()[0]); + } + if (method.isAnnotationPresent(DeleteMapping.class)) { + DeleteMapping delete = method.getAnnotation(DeleteMapping.class); + builder.append(delete.value()[0]); + } + if (method.isAnnotationPresent(PutMapping.class)) { + PutMapping put = method.getAnnotation(PutMapping.class); + builder.append(put.value()[0]); + } + if (method.isAnnotationPresent(ApiOperation.class)) { + ApiOperation api = method.getAnnotation(ApiOperation.class); + apiInfo = api.value(); + } + Map<String, String> map = new HashMap<String, String>(); + AuthHandler auth = method.getAnnotation(AuthHandler.class); + map.put("menuId", String.valueOf(auth.menuId().getId())); + map.put("type",String.valueOf(auth.type().getNum())); + map.put("url", builder.toString()); + map.put("name", apiInfo); + requestListInfo.add(map); + } + } + }); + List<Map<String, String>> allInterfaces = roleManageMapper.getAllInterfaces(); + List<Map<String, String>> differentMaps = requestListInfo.stream() + .filter(map1 -> allInterfaces.stream() + .map(map2 -> map2.get("url")) // 鑾峰彇鎸囧畾閿殑鍊� + .noneMatch(value2 -> value2.equals(map1.get("url"))) // 鏌ユ壘涓嶅悓鐨勫�� + ).collect(Collectors.toList()); + if(differentMaps.size()>0){ + + int insertInterfaceList = roleManageMapper.insertInterfaceList(differentMaps); + if (insertInterfaceList>0) log.info(String.valueOf(differentMaps));log.info("鏂板鎺ュ彛鎴愬姛锛�"); + }else { + log.info("鏃犻渶澧炲姞鏂扮殑鎺ュ彛锛�"); + } + + } + + +} diff --git a/sys/src/main/resources/application-dev.yml b/sys/src/main/resources/application-dev.yml index f2dc523..62f17fc 100644 --- a/sys/src/main/resources/application-dev.yml +++ b/sys/src/main/resources/application-dev.yml @@ -75,7 +75,7 @@ # redis璁块棶瀵嗙爜锛堥粯璁や负绌猴級 password: null # redis杩炴帴瓒呮椂鏃堕棿锛堝崟浣嶆绉掞級 - timeout: 500 + timeout: 1000 # redis杩炴帴姹犻厤缃� pool: # 鏈�澶у彲鐢ㄨ繛鎺ユ暟锛堥粯璁や负8锛岃礋鏁拌〃绀烘棤闄愶級 diff --git a/user-server/src/main/java/com/yuanchu/limslaboratory/controller/RoleMangerController.java b/user-server/src/main/java/com/yuanchu/limslaboratory/controller/RoleMangerController.java index 2668336..e795ff3 100644 --- a/user-server/src/main/java/com/yuanchu/limslaboratory/controller/RoleMangerController.java +++ b/user-server/src/main/java/com/yuanchu/limslaboratory/controller/RoleMangerController.java @@ -1,6 +1,8 @@ package com.yuanchu.limslaboratory.controller; import com.yuanchu.limslaboratory.annotation.AuthHandler; +import com.yuanchu.limslaboratory.enums.InterfaceType; +import com.yuanchu.limslaboratory.enums.MenuEnums; import com.yuanchu.limslaboratory.pojo.dto.GetAllRoleAndMenuByConditionPageDto; import com.yuanchu.limslaboratory.pojo.dto.RoleInfoDto; import com.yuanchu.limslaboratory.pojo.dto.UpdateRoleMenuDto; @@ -72,4 +74,11 @@ public Result<?> getRoleAndMenuByRole(Long roleId){ return Result.success(roleManagerService.getRoleAndMenuByRole(roleId)); } + + @AuthHandler(type = InterfaceType.SELECT,menuId = MenuEnums.role,isAdd = true) + @ApiOperation("娴嬭瘯鐢熸垚") + @GetMapping("/test") + public Result<?> test(Long roleId){ + return Result.success(null); + } } diff --git a/user-server/src/main/java/com/yuanchu/limslaboratory/mapper/MenuMapper.java b/user-server/src/main/java/com/yuanchu/limslaboratory/mapper/MenuMapper.java index 56e131d..d97aff5 100644 --- a/user-server/src/main/java/com/yuanchu/limslaboratory/mapper/MenuMapper.java +++ b/user-server/src/main/java/com/yuanchu/limslaboratory/mapper/MenuMapper.java @@ -5,6 +5,7 @@ import org.springframework.stereotype.Repository; import java.util.List; +import java.util.Map; /** * @Author 寮犲 @@ -15,5 +16,6 @@ List<Menu> getMenuList(); + List<Map<String, Object>> getMenuNameAndId(); } diff --git a/user-server/src/main/java/com/yuanchu/limslaboratory/mapper/RoleManageMapper.java b/user-server/src/main/java/com/yuanchu/limslaboratory/mapper/RoleManageMapper.java index 522c767..25eba82 100644 --- a/user-server/src/main/java/com/yuanchu/limslaboratory/mapper/RoleManageMapper.java +++ b/user-server/src/main/java/com/yuanchu/limslaboratory/mapper/RoleManageMapper.java @@ -39,4 +39,8 @@ Map<String, Object>selctInterFaceType(String url); Map<String, Long> hasUrl(String type, String menuId, String roleId); + + List<Map<String, String>>getAllInterfaces(); + + int insertInterfaceList(@Param("interfaceList") List<Map<String, String>>interfaceList); } diff --git a/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/MapHandlerRoleDto.java b/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/MapHandlerRoleDto.java new file mode 100644 index 0000000..537d60d --- /dev/null +++ b/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/MapHandlerRoleDto.java @@ -0,0 +1,18 @@ +package com.yuanchu.limslaboratory.pojo.dto; + +import com.yuanchu.limslaboratory.utils.JsonUtil; +import org.springframework.stereotype.Component; + +import java.util.Map; + +/** + * @Author 寮犲 + * @Date 2023/8/28 + */ +@Component +public class MapHandlerRoleDto { + public static String comparingBySupplier(Object o){ + Map map= JsonUtil.jsonToPojo(JsonUtil.jsonToString(o),Map.class); + return String.valueOf(map.get("url")); + } +} diff --git a/user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RoleManagerServiceImpl.java b/user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RoleManagerServiceImpl.java index c1c4e18..5a9cd16 100644 --- a/user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RoleManagerServiceImpl.java +++ b/user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RoleManagerServiceImpl.java @@ -19,6 +19,7 @@ import com.yuanchu.limslaboratory.service.RoleManagerService; import com.yuanchu.limslaboratory.utils.JsonUtil; import com.yuanchu.limslaboratory.utils.MyUtil; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -32,6 +33,7 @@ * @Date 2023/8/23 */ @Service +@Slf4j public class RoleManagerServiceImpl implements RoleManagerService { @Resource @@ -74,6 +76,9 @@ ,createTime )); }); + if(roleMenuList.size()<1){ + roleMenuList.add(new RoleMenu(null,nextId,39L,false,false,false,false,createTime)); + } //roleMenuAddList.forEach(System.out::println); int i = roleManageMapper.insertBatchRoleMenu(roleMenuList); return insert>0&&i>0; @@ -149,6 +154,7 @@ String type=null; Map<String, Object> stringIntegerMap = roleManageMapper.selctInterFaceType(url); if(Objects.isNull(stringIntegerMap)){ + log.warn("娌℃湁====銆�"+url+"璇锋眰璧勬簮"); throw new AuthException("403","娌℃湁璇ヨ祫婧�"); } String of = String.valueOf(stringIntegerMap.get("type")); diff --git a/user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/UserServiceImpl.java b/user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/UserServiceImpl.java index 75791a6..ddf91db 100644 --- a/user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/UserServiceImpl.java +++ b/user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/UserServiceImpl.java @@ -94,7 +94,8 @@ } @Override - public List<Map<String, Object>> getUserNameAndId() { + public List<Map<String, Object>> + getUserNameAndId() { LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>(); wrapper.select(User::getId, User::getName).eq(User::getType,1); return userMapper.selectMaps(wrapper); diff --git a/user-server/src/main/resources/mapper/MenuMapper.xml b/user-server/src/main/resources/mapper/MenuMapper.xml index 1ea9b2d..6d55185 100644 --- a/user-server/src/main/resources/mapper/MenuMapper.xml +++ b/user-server/src/main/resources/mapper/MenuMapper.xml @@ -3,8 +3,15 @@ <mapper namespace="com.yuanchu.limslaboratory.mapper.MenuMapper"> <select id="getMenuList" resultType="com.yuanchu.limslaboratory.pojo.Menu"> - select id,name,parent_id parentId + select id, name, parent_id parentId from menu - where state =1 + where state = 1 + and id != 39 + and parent_id != 39 + </select> + <select id="getMenuNameAndId" resultType="map"> + select url, id, name + from menu + where state = 1 </select> </mapper> \ No newline at end of file diff --git a/user-server/src/main/resources/mapper/RoleManangeMapper.xml b/user-server/src/main/resources/mapper/RoleManangeMapper.xml index f8db203..267f62f 100644 --- a/user-server/src/main/resources/mapper/RoleManangeMapper.xml +++ b/user-server/src/main/resources/mapper/RoleManangeMapper.xml @@ -17,6 +17,14 @@ #{createTime} ) </insert> + <insert id="insertInterfaceList"> + insert + interface_info (id,name,url,menu_id,type,state) + values + <foreach collection="interfaceList" item="m" separator=","> + (#{m.id},#{m.name},#{m.url},#{m.menuId},#{m.type},1) + </foreach> + </insert> <update id="updateRoleState"> UPDATE role SET state = 0 @@ -108,6 +116,10 @@ and menu_id = #{menuId} and ${type} = 1 </select> + <select id="getAllInterfaces" resultType="java.util.Map"> + select name, url + from interface_info + </select> <resultMap id="roleAndMenuById" type="com.yuanchu.limslaboratory.pojo.dto.RoleAndMenuDto"> <result property="roleName" column="roleName"/> <result property="createTime" column="createTime"/> diff --git a/user-server/src/main/resources/mapper/UserMapper.xml b/user-server/src/main/resources/mapper/UserMapper.xml index 6a87908..b89ebd9 100644 --- a/user-server/src/main/resources/mapper/UserMapper.xml +++ b/user-server/src/main/resources/mapper/UserMapper.xml @@ -43,5 +43,6 @@ select id, name from lims_laboratory.user where job_state!=0 + and type=1 </select> </mapper> -- Gitblit v1.9.3