From eb34edfc7cf46e5cb5e3969d04315e6129dcbbd2 Mon Sep 17 00:00:00 2001 From: XiaoRuby <3114200645@qq.com> Date: 星期六, 26 八月 2023 11:43:33 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- user-server/src/main/java/com/yuanchu/limslaboratory/mapper/WaitInformationMapper.java | 27 + inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/InspectionVo.java | 17 laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/GetAllRoleAndMenuByConditionPageDto.java | 23 + user-server/src/main/java/com/yuanchu/limslaboratory/service/WaitInformationService.java | 51 ++ inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/LinkDetection.java | 2 laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/RoleMangerController.java | 21 standard-server/src/main/java/com/yuanchu/limslaboratory/controller/ProductController.java | 35 + laboratory-server/src/main/resources/mapper/MenuMapper.xml | 2 inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/LinkBasicInformationServiceImpl.java | 37 + laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/RoleManagerService.java | 13 inspection-server/src/main/resources/mapper/InspectionProductMapper.xml | 2 framework/src/main/java/com/yuanchu/limslaboratory/utils/JackSonUtil.java | 2 laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/RoleInfoDto.java | 22 + inspection-server/src/main/java/com/yuanchu/limslaboratory/service/LinkBasicInformationService.java | 4 user-server/src/main/resources/mapper/WaitInformationMapper.xml | 42 ++ laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/RoleAndMenuDto.java | 33 + laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/Menu.java | 6 standard-server/src/main/resources/mapper/ProductMapper.xml | 30 + inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/LinkDetectionController.java | 56 ++ user-server/src/main/java/com/yuanchu/limslaboratory/pojo/WaitInformation.java | 73 +++ inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionController.java | 28 inspection-server/src/main/java/com/yuanchu/limslaboratory/service/InspectionService.java | 10 inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionServiceImpl.java | 101 +++- standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ProductServiceImpl.java | 44 + laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RoleManagerServiceImpl.java | 98 ++++ user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/WaitInformationServiceImpl.java | 57 ++ /dev/null | 20 standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/ProductMapper.java | 8 inspection-server/src/main/resources/mapper/LinkBasicInformationMapper.xml | 18 laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/RoleManageMapper.java | 33 + standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/Product.java | 2 chart-server/src/main/resources/mapper/WorkMapper.xml | 24 laboratory-server/src/main/resources/mapper/RoleManangeMapper.xml | 76 +++ inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/PlanController.java | 1 inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/LinkBasicInformationController.java | 1 inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/LinkDetectionServiceImpl.java | 2 standard-server/src/main/java/com/yuanchu/limslaboratory/service/ProductService.java | 27 + user-server/src/main/java/com/yuanchu/limslaboratory/controller/WaitInformationController.java | 79 +++ inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/LinkBasicInformation.java | 7 laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/RoleInfo.java | 49 ++ laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/RoleMenu.java | 67 +++ 41 files changed, 1,103 insertions(+), 147 deletions(-) diff --git a/chart-server/src/main/resources/mapper/WorkMapper.xml b/chart-server/src/main/resources/mapper/WorkMapper.xml index 7da6829..385f61c 100644 --- a/chart-server/src/main/resources/mapper/WorkMapper.xml +++ b/chart-server/src/main/resources/mapper/WorkMapper.xml @@ -3,8 +3,8 @@ <mapper namespace="com.yuanchu.limslaboratory.mapper.WorkMapper"> <!--璐d换浜洪」鐩暟缁熻--> <select id="dutyMater" resultType="java.util.Map"> - select n.name, 鏈畬鎴�, 宸插畬鎴� - from (select distinct user.name, count(inspection_product.id) '鏈畬鎴�' + select n.name, unfinish, finsh + from (select distinct user.name, count(inspection_product.id) unfinish from lims_laboratory.inspection_product left join lims_laboratory.user on inspection_product.user_pro_id = user.id where state = 1 @@ -20,7 +20,7 @@ and type = #{type} and start_time between #{startTime} and #{endTime})) group by user.name) n, - (select distinct user.name, count(inspection_product.id) '宸插畬鎴�' + (select distinct user.name, count(inspection_product.id) finsh from lims_laboratory.inspection_product left join lims_laboratory.user on inspection_product.user_pro_id = user.id where state = 1 @@ -41,8 +41,8 @@ <!--鎵ц浜洪」鐩暟缁熻--> <select id="executeMater" resultType="java.util.Map"> - select n.name, 鏈畬鎴�, 宸插畬鎴� - from (select distinct user.name, count(inspection_product.id) '鏈畬鎴�' + select n.name, unfinsh, finsh + from (select distinct user.name, count(inspection_product.id) unfinsh from lims_laboratory.inspection_product left join lims_laboratory.user on inspection_product.user_id = user.id where state = 1 @@ -58,7 +58,7 @@ and type = #{type} and start_time between #{startTime} and #{endTime})) group by user.name) n, - (select distinct user.name, count(inspection_product.id) '宸插畬鎴�' + (select distinct user.name, count(inspection_product.id) finsh from lims_laboratory.inspection_product left join lims_laboratory.user on inspection_product.user_id = user.id where state = 1 @@ -79,8 +79,8 @@ <!--璐d换浜烘墽琛岀巼--> <select id="dutytimely" resultType="java.util.Map"> - select n.name, 椤圭洰鎬绘暟, 鍙婃椂瀹屾垚鏁� / 椤圭洰鎬绘暟 * 100 '鍙婃椂鐜�' - from (select distinct user.name, count(inspection_product.id) '椤圭洰鎬绘暟' + select n.name, total, finshByTime / total * 100 timely + from (select distinct user.name, count(inspection_product.id) total from lims_laboratory.inspection_product left join lims_laboratory.user on inspection_product.user_pro_id = user.id where state = 1 @@ -95,7 +95,7 @@ and type = #{type} and start_time between #{startTime} and #{endTime})) group by user.name) n, - (select distinct user.name, count(inspection_product.id) '鍙婃椂瀹屾垚鏁�' + (select distinct user.name, count(inspection_product.id) finshByTime from lims_laboratory.inspection_product left join lims_laboratory.user on inspection_product.user_pro_id = user.id @@ -122,8 +122,8 @@ <!--鎵ц浜哄強鏃剁巼--> <select id="executetimely" resultType="java.util.Map"> - select n.name, 椤圭洰鎬绘暟, 鍙婃椂瀹屾垚鏁� / 椤圭洰鎬绘暟 * 100 '鍙婃椂鐜�' - from (select distinct user.name, count(inspection_product.id) '椤圭洰鎬绘暟' + select n.name, total, finshByTime / total * 100 timely + from (select distinct user.name, count(inspection_product.id) total from lims_laboratory.inspection_product left join lims_laboratory.user on inspection_product.user_id = user.id where state = 1 @@ -138,7 +138,7 @@ and type = #{type} and start_time between #{startTime} and #{endTime})) group by user.name) n, - (select distinct user.name, count(inspection_product.id) '鍙婃椂瀹屾垚鏁�' + (select distinct user.name, count(inspection_product.id) finshByTime from lims_laboratory.inspection_product left join lims_laboratory.user on inspection_product.user_id = user.id diff --git a/framework/src/main/java/com/yuanchu/limslaboratory/utils/JackSonUtil.java b/framework/src/main/java/com/yuanchu/limslaboratory/utils/JackSonUtil.java index f272754..b9a569f 100644 --- a/framework/src/main/java/com/yuanchu/limslaboratory/utils/JackSonUtil.java +++ b/framework/src/main/java/com/yuanchu/limslaboratory/utils/JackSonUtil.java @@ -14,8 +14,6 @@ /** * JSON瑙f瀽澶勭悊 - * - * @author 寮犲 */ @Component public class JackSonUtil { 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 29ed397..f9b7ed3 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 @@ -20,6 +20,7 @@ import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yuanchu.limslaboratory.service.InspectionService; @@ -85,10 +86,21 @@ return Result.fail("绫诲瀷閿欒!"); } + @ApiOperation(value = "鏂板妫�楠屽崟-->閫夋嫨妫�楠岄」鐩増鏈�") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "name", value = "浜у搧鍚嶇О", dataTypeClass = String.class, required = true), + @ApiImplicitParam(name = "mcode", value = "浜у搧缂栧彿", dataTypeClass = String.class, required = true), + @ApiImplicitParam(name = "specifications", value = "瑙勬牸鍨嬪彿", dataTypeClass = String.class, required = true) + }) + @GetMapping("/chooseVer") + public Result chooseVer(String name, String mcode, String specifications) { + return Result.success(inspectionService.chooseVer(name, mcode, specifications)); + } + @ApiOperation(value = "鏂板妫�楠屽崟") @PostMapping("/addInspect") - public Result addInspect(@RequestHeader("token") String token, @RequestBody InspectionVo inspectionVo) throws Exception { + public Result addInspect(@RequestHeader("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)); @@ -110,13 +122,13 @@ } @ApiOperation(value = "淇濆瓨妫�楠岄」鐩矗浠讳汉") - @ApiImplicitParams(value = { - @ApiImplicitParam(name = "id", value = "妫�楠屽崟椤圭洰id", dataTypeClass = Integer.class, required = true), - @ApiImplicitParam(name = "userProId", value = "璐d换浜篿d", dataTypeClass = Integer.class, required = true) - }) + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "id", value = "妫�楠屽崟椤圭洰id", dataTypeClass = Integer.class, required = true), + @ApiImplicitParam(name = "userProId", value = "璐d换浜篿d", dataTypeClass = Integer.class, required = true) + }) @GetMapping("/chooseUseProId") - public Result chooseUseProId(Integer id,Integer userProId) { - return Result.success(inspectionService.chooseUseProId(id,userProId)); + public Result chooseUseProId(Integer id, Integer userProId) { + return Result.success(inspectionService.chooseUseProId(id, userProId)); } @ApiOperation(value = "浣滃簾妫�楠屽崟") @@ -124,7 +136,7 @@ @ApiImplicitParam(name = "id", value = "妫�楠屽崟id", dataTypeClass = Integer.class, required = true) }) @PostMapping("/delInspect") - public Result delInspect(Integer id) { + 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 22de441..01f505a 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 @@ -65,4 +65,5 @@ map.put("row", linkBasicPage.getRecords()); return Result.success(map); } + } 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 82c0065..9ac5e99 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 @@ -4,17 +4,22 @@ import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.yuanchu.limslaboratory.pojo.LinkBasicInformation; +import com.yuanchu.limslaboratory.pojo.LinkDetection; import com.yuanchu.limslaboratory.pojo.Material; import com.yuanchu.limslaboratory.service.LinkBasicInformationService; import com.yuanchu.limslaboratory.service.MaterialService; +import com.yuanchu.limslaboratory.service.ProductService; import com.yuanchu.limslaboratory.service.StandardService; import com.yuanchu.limslaboratory.utils.RedisUtil; import com.yuanchu.limslaboratory.vo.Result; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; import java.util.List; import java.util.Map; @@ -40,11 +45,14 @@ @Autowired private StandardService standardService; + @Resource + ProductService productService; + @ApiOperation("閾炬帴-->鑾峰彇鏍峰搧鍚嶇О") @GetMapping("/material") public Result<?> getMaterialIdAndName(@RequestHeader("link") String link) { - String redisLink = RedisUtil.get("link").toString(); - if (redisLink.equals(link)){ + String redisLink = RedisUtil.get("viewId").toString(); + if (linkBasicInformationService.isIfViewUUID(redisLink)){ LambdaQueryWrapper<Material> wrapper = new LambdaQueryWrapper<>(); wrapper.select(Material::getId, Material::getName, Material::getCode); List<Map<String, Object>> maps = materialService.listMaps(wrapper); @@ -56,19 +64,35 @@ @ApiOperation("閾炬帴-->鑾峰彇瑙勬牸鍨嬪彿") @GetMapping("/specification") public Result<?> getSpecificationIdAndName(@RequestHeader("link") String link, String materialId) { - String redisLink = RedisUtil.get("link").toString(); - if (redisLink.equals(link)){ + String redisLink = RedisUtil.get("viewId").toString(); + if (linkBasicInformationService.isIfViewUUID(redisLink)){ List<Map<String, Object>> specificationIdAndName = standardService.getSpecificationIdAndName(materialId); return Result.success(specificationIdAndName); } return Result.fail("鎶辨瓑閾炬帴閿欒鎴栧凡杩囨湡锛�"); } - @ApiOperation("閾炬帴-->娣诲姞妫�楠岀敵璇峰崟") + @ApiOperation("閾炬帴-->閫夋嫨璇曢獙椤圭洰") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "modelId", value = "鍨嬪彿id", dataTypeClass = Integer.class, required = true) + }) + @GetMapping("/chooseProject") + public Result<?> chooseProject(@RequestHeader("link") String link, Integer modelId) { + String redisLink = RedisUtil.get("viewId").toString(); + if (linkBasicInformationService.isIfViewUUID(redisLink)){ + //鏌ヨ鏍囧噯搴撲腑璇ュ瀷鍙蜂笅鐨勬墍鏈夎瘯楠岄」鐩�(鐖剁被) + return Result.success(productService.chooseProject(modelId)); + } + return Result.fail("鎶辨瓑閾炬帴閿欒鎴栧凡杩囨湡锛�"); + + } + + @ApiOperation("閾炬帴-->娣诲姞濮旀墭鎶ユ鐢宠鍗�") @PostMapping("/addInspection") public Result<?> addLinkBasicInformation(@RequestHeader("link") String link, @RequestBody LinkBasicInformation linkBasicInformation) { - String redisLink = RedisUtil.get("link").toString(); - if (redisLink.equals(link)){ + String redisLink = RedisUtil.get("viewId").toString(); + if (linkBasicInformationService.isIfViewUUID(redisLink)){ + linkBasicInformation.setUid(redisLink); String code = linkBasicInformationService.addLinkBasicInformation(linkBasicInformation); if (!ObjectUtils.isEmpty(code)){ return Result.success("娣诲姞鎴愬姛锛�", code); @@ -79,4 +103,22 @@ return Result.fail("鎶辨瓑閾炬帴閿欒鎴栧凡杩囨湡锛�"); } + + @ApiOperation(value = "鐢熸垚浜岀淮鐮佹墍闇�鐨勫敮涓�鐮�") + @GetMapping("/getViewUUID") + public Result<?> getViewUUID(int day){ + return Result.success("鐢熸垚鎴愬姛",linkBasicInformationService.getViewUUID(day)); + } + + @ApiOperation(value = "鏌ヨ浜岀淮鐮佹墍闇�鐨勫敮涓�鐮�") + @GetMapping("/selectViewUUID") + public Result<?> selectViewUUID(){ + return Result.success("鏌ヨ鎴愬姛",linkBasicInformationService.selectViewUUID()); + } + + @ApiOperation(value = "妫�楠屽敮涓�鐮佹槸鍚︽湁鏁�") + @GetMapping("/isIfViewUUID") + public Result<?> isIfViewUUID(String viewId){ + return Result.success("鏌ヨ鎴愬姛",linkBasicInformationService.isIfViewUUID(viewId)); + } } diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/PlanController.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/PlanController.java index 4f53cb3..3edc996 100644 --- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/PlanController.java +++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/PlanController.java @@ -40,6 +40,7 @@ }) @GetMapping("/selectAllPlan") public Result selectAllPlan(String code, String beginTime, String endTime, Integer status) { + System.out.println(planService.selectAllPlan(code, beginTime, endTime, status).toString()); return Result.success(planService.selectAllPlan(code, beginTime, endTime, status)); } 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 60e4a5a..5c9f196 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 @@ -1,13 +1,9 @@ package com.yuanchu.limslaboratory.pojo; import com.baomidou.mybatisplus.annotation.*; - -import java.time.LocalDate; -import java.time.LocalDateTime; import java.io.Serializable; import java.util.Date; import java.util.List; - import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -86,4 +82,7 @@ @TableField(exist = false) @ApiModelProperty(value = "妫�楠屼俊鎭�") private List<LinkDetection> linkDetectionList; + + @ApiModelProperty(value = "鐢熸垚id锛氫綔鐢ㄤ簬鏈夋晥鏈熷唴鏌ヨ鍐呭鎵�鐢�") + private String uid; } 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 e62f2a8..5345c81 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 @@ -74,7 +74,7 @@ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date updateTime; - @ApiModelProperty(value = "妫�楠屾棩鏈�", hidden = true) + @ApiModelProperty(value = "妫�楠屾棩鏈�", required = true,example = "2023-08-22") private Date dateSurvey; @ApiModelProperty(value = "妫�楠岀姸鎬�", hidden = true) diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/InspectionVo.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/InspectionVo.java index f804333..de59347 100644 --- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/InspectionVo.java +++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/InspectionVo.java @@ -5,6 +5,9 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; import java.io.Serializable; import java.util.Date; //鏂板妫�楠屽崟 @@ -15,6 +18,7 @@ *妫�楠岀被鍨� 0锛氬師鏉愭枡锛�1锛氫骇鍝侊紱2锛氬崐鎴愬搧锛� **/ @JsonSerialize + @NotNull(message = "妫�楠岀被鍨嬩笉鑳戒负绌�") private Integer type; /** @@ -22,30 +26,35 @@ **/ @DateTimeFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + @NotBlank(message = "鏉ユ枡鏃ユ湡涓嶈兘涓虹┖") private Date formTime; /** * 渚涘簲鍟� **/ @JsonSerialize + @NotBlank(message = "渚涘簲鍟嗕笉鑳戒负绌�") private String supplier; /** * 鐗╂枡缂栫爜 **/ @JsonSerialize + @NotBlank(message = "鏍峰搧缂栫爜涓嶈兘涓虹┖") private String mcode; /** * 鐗╂枡鍚嶇О **/ @JsonSerialize + @NotBlank(message = "鏍峰搧鍚嶇О涓嶈兘涓虹┖") private String name; /** * 瑙勬牸鍚嶇О-鍨嬪彿鍚嶇О **/ @JsonSerialize + @NotBlank(message = "瑙勬牸鍨嬪彿涓嶈兘涓虹┖") private String specifications; /** @@ -58,6 +67,7 @@ * 鎶ユ鏁伴噺-鐗╂枡鏁伴噺 **/ @JsonSerialize + @NotNull(message = "鎶ユ鏁伴噺涓嶈兘涓虹┖") private Integer num; /** @@ -65,6 +75,7 @@ **/ @DateTimeFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + @NotBlank(message = "妫�楠屽紑濮嬫椂闂翠笉鑳戒负绌�") private Date startTime; /** @@ -72,5 +83,11 @@ **/ @DateTimeFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + @NotBlank(message = "妫�楠岀粨鏉熸椂闂翠笉鑳戒负绌�") private Date endTime; + + //璇曢獙椤圭洰 + @NotBlank(message = "璇曢獙椤圭洰涓嶈兘涓虹┖") + @JsonSerialize + private String experiment; } 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 4c2fec0..e473e4a 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 @@ -58,5 +58,15 @@ * @return */ String chooseUseProId(Integer id, Integer userProId); + + /** + * 鏂板妫�楠屽崟-->閫夋嫨妫�楠岄」鐩増鏈� + * @param name + * @param mcode + * @param specifications + * @return + */ + List<Map<String,Object>> chooseVer(String name, String mcode, String specifications); + } 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 c347bca..3a4c2a5 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 @@ -31,5 +31,9 @@ */ List<Map<String, Object>> selectLinkAll(); + String getViewUUID(int day); + Map<String, String> selectViewUUID(); + + boolean isIfViewUUID(String uuid); } 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 9187912..571f2dc 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 @@ -3,6 +3,7 @@ import cn.hutool.core.lang.Snowflake; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -103,39 +104,46 @@ .build(); inspectionMaterialMapper.insert(inspectionMaterial); /*鏂板妫�楠岄」鐩〃*/ - //鑾峰彇鐗╂枡id - Material material = materialMapper.selectOne(Wrappers.<Material>query() - .eq("name", inspectionVo.getName()) - .eq("code", inspectionVo.getMcode())); - //鑾峰彇瑙勬牸鍚嶇О鍜屽瀷鍙峰悕绉� - String specification = inspectionVo.getSpecifications(); - String[] split = specification.split("-"); - String stName = split[0]; - String spName = split[1]; - //鑾峰彇瑙勬牸id - Standard standard = standardService.getOne(Wrappers.<Standard>query() - .eq("name", stName) - .eq("material_id", material.getId())); - //鑾峰彇鍨嬪彿id - Specifications specifications = specificationsService.getOne(Wrappers.<Specifications>query() - .eq("name", spName) - .eq("standard_id", standard.getId())); - //鏍规嵁鍨嬪彿id鏌ヨ椤圭洰淇℃伅 - List<Product> productList = productMapper.selectList(Wrappers.<Product>query().eq("specifications_id", specifications.getId())); - ArrayList<InspectionProduct> list = new ArrayList<>(); - for (Product product : productList) { - InspectionProduct rawInsProduct = InspectionProduct.builder() - .name(product.getName()) - .unit(product.getUnit()) - .required(product.getRequired()) - .internal(product.getInternal()) - .inspectionMaterialId(material.getId()) - .build(); - list.add(rawInsProduct); + //鏍规嵁鏍峰搧鍚嶇О缂栧彿浠ュ強鍨嬪彿瑙勬牸鑾峰彇鍨嬪彿id + Integer specificationId = getSpecificationId(inspectionVo.getName(), inspectionVo.getMcode(), inspectionVo.getSpecifications()); + //濡傛灉璇曢獙椤圭洰瀛楁涓嶄负绌� + if (ObjectUtils.isNotEmpty(inspectionVo.getExperiment())) { + //鑾峰彇璇曢獙椤圭洰淇℃伅(缁撴瀯,瀵肩嚎澶栧緞) + List<String> experiments = Arrays.stream(inspectionVo.getExperiment().split(",")).collect(Collectors.toList()); + //鏍规嵁鍨嬪彿id鍜岄」鐩俊鎭煡璇㈤」鐩俊鎭� + List<Product> products = new ArrayList<>(); + for (String experiment : experiments) { + List<Product> productList1 = productMapper.selectList(Wrappers.<Product>query() + .eq("specifications_id", specificationId) + .eq("father", experiment)); + if (ObjectUtils.isEmpty(productList1)) { + Product product = productMapper.selectOne(Wrappers.<Product>query() + .eq("specifications_id", specificationId) + .isNull("father") + .eq("name", experiment)); + products.add(product); + } else products.addAll(productList1); + } + + //灏嗘煡璇㈢殑椤圭洰淇℃伅鏋勫缓鎴愭楠岄」鐩� + ArrayList<InspectionProduct> list = new ArrayList<>(); + for (Product product : products) { + InspectionProduct rawInsProduct = InspectionProduct.builder() + .name(product.getName()) + .unit(product.getUnit()) + .required(product.getRequired()) + .internal(product.getInternal()) + .inspectionMaterialId(inspectionMaterial.getId()) + .build(); + list.add(rawInsProduct); + } + + //妫�楠岄」鐩壒閲忔坊鍔� + inspectionProductService.saveBatch(list); + return inspection.getId(); } - //妫�楠岄」鐩壒閲忔坊鍔� - inspectionProductService.saveBatch(list); - return inspection.getId(); + //todo:鏈畬 + return null; } //鏍规嵁妫�楠屽崟id鏌ヨ鍘熸潗鏂欐楠屽崟璇︽儏 @@ -213,5 +221,34 @@ } + //鏂板妫�楠屽崟-->閫夋嫨妫�楠岄」鐩増鏈� + @Override + public List<Map<String, Object>> chooseVer(String name, String mcode, String specifications) { + Integer specificationId = getSpecificationId(name, mcode, specifications); + return null; + } + + + /*鏍规嵁鏍峰搧鍚嶇О,鏍峰搧缂栧彿,鍨嬪彿瑙勬牸鑾峰彇鍨嬪彿id*/ + private Integer getSpecificationId(String name, String mcode, String specification) { + //鑾峰彇鐗╂枡id + Material material = materialMapper.selectOne(Wrappers.<Material>query() + .eq("name", name) + .eq("code", mcode)); + //鑾峰彇瑙勬牸鍚嶇О鍜屽瀷鍙峰悕绉� + String[] split = specification.split("-"); + String stName = split[0]; + String spName = split[1]; + //鑾峰彇瑙勬牸id + Standard standard = standardService.getOne(Wrappers.<Standard>query() + .eq("name", stName) + .eq("material_id", material.getId())); + //鑾峰彇鍨嬪彿id + Specifications specifications = specificationsService.getOne(Wrappers.<Specifications>query() + .eq("name", spName) + .eq("standard_id", standard.getId())); + return specifications.getId(); + } + } 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 b14dab9..d7dd0eb 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 @@ -4,21 +4,20 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yuanchu.limslaboratory.pojo.LinkBasicInformation; import com.yuanchu.limslaboratory.mapper.LinkBasicInformationMapper; -import com.yuanchu.limslaboratory.pojo.vo.InspectionVo; import com.yuanchu.limslaboratory.service.LinkBasicInformationService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.yuanchu.limslaboratory.service.LinkDetectionService; import com.yuanchu.limslaboratory.utils.MyUtil; +import com.yuanchu.limslaboratory.utils.RedisUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.List; -import java.util.Map; +import java.util.*; /** * <p> - * 鏈嶅姟瀹炵幇绫� + * 鏈嶅姟瀹炵幇绫� * </p> * * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 @@ -35,10 +34,13 @@ @Override public String addLinkBasicInformation(LinkBasicInformation linkBasicInformation) { - String code = MyUtil.getTimeSixNumberCode("SL","SL"); + //濮旀墭缂栧彿 + String code = MyUtil.getTimeSixNumberCode("SL", "SL"); linkBasicInformation.setEntrustCoding(code); + //鏂板鍩烘湰淇℃伅琛� int insert = linkBasicInformationMapper.insert(linkBasicInformation); if (insert == 1) { + //鏂板濮旀墭鏍峰搧琛� linkDetectionService.insertListData(linkBasicInformation.getId(), linkBasicInformation.getLinkDetectionList()); return code; } @@ -56,5 +58,30 @@ return linkBasicInformationMapper.selectLinkAll(); } + @Override + public String getViewUUID(int day) { + String id = String.valueOf(UUID.randomUUID()); + RedisUtil.set("viewId", id, day * 24 * 60); + return id; + } + + @Override + public Map<String, String> selectViewUUID() { + Map<String, String> map = new HashMap<>(); + try { + map.put("id", RedisUtil.get("viewId").toString()); + map.put("time", String.valueOf(RedisUtil.getExpire("viewId"))); + } catch (Exception e) { + map.put("id", null); + map.put("time", null); + } + return map; + } + + @Override + public boolean isIfViewUUID(String uuid) { + return uuid.equals(RedisUtil.get("viewId")); + } + } 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 1bcd989..e347c34 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 @@ -27,7 +27,7 @@ @Override public void insertListData(Integer id, List<LinkDetection> linkDetectionList) { for (LinkDetection linkDetection:linkDetectionList){ - linkDetection.setInspectionStatus(2); + linkDetection.setInspectionStatus(1); linkDetection.setLinkBasicId(id); } linkDetectionMapper.insertBatchSomeColumn(linkDetectionList); diff --git a/inspection-server/src/main/resources/mapper/InspectionProductMapper.xml b/inspection-server/src/main/resources/mapper/InspectionProductMapper.xml index f1b39da..1af01e7 100644 --- a/inspection-server/src/main/resources/mapper/InspectionProductMapper.xml +++ b/inspection-server/src/main/resources/mapper/InspectionProductMapper.xml @@ -1,8 +1,6 @@ <?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.InspectionProductMapper"> - - <!--鏍规嵁妫�楠屽崟id鏌ヨ妫�楠岄」鐩殑妫�楠岀粨鏋�--> <select id="getresult" resultType="java.lang.Integer"> select test_state diff --git a/inspection-server/src/main/resources/mapper/LinkBasicInformationMapper.xml b/inspection-server/src/main/resources/mapper/LinkBasicInformationMapper.xml index 2acf86f..3ce5aec 100644 --- a/inspection-server/src/main/resources/mapper/LinkBasicInformationMapper.xml +++ b/inspection-server/src/main/resources/mapper/LinkBasicInformationMapper.xml @@ -25,19 +25,19 @@ </select> <select id="selectLinkAll" resultType="java.util.Map"> - SELECT DATE_FORMAT(l.`inspection_time`,'%Y-%m-%d') formTime, - l.`entrusted` supplier, - d.`sample_number` mcode, - d.`sample_name` name, - d.`specifications_models` specifications, + SELECT DATE_FORMAT(l.`inspection_time`, '%Y-%m-%d') formTime, + l.`entrusted` supplier, + d.`sample_number` mcode, + d.`sample_name` name, + d.`specifications_models` specifications, d.`unit`, - d.`samples_number` num, - DATE_FORMAT(date_survey,'%Y-%m-%d') startTime, - DATE_FORMAT(completion_deadline,'%Y-%m-%d') endTime + d.`samples_number` num, + experiment, + DATE_FORMAT(date_survey, '%Y-%m-%d') startTime, + DATE_FORMAT(completion_deadline, '%Y-%m-%d') endTime FROM lims_laboratory.link_basic_information l, lims_laboratory.link_detection d WHERE l.`id` = d.`link_basic_id` AND l.`state` = 1 </select> - </mapper> 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 index d60ec4e..69ea1fd 100644 --- a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/RoleMangerController.java +++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/RoleMangerController.java @@ -1,12 +1,12 @@ package com.yuanchu.limslaboratory.controller; +import com.yuanchu.limslaboratory.pojo.dto.GetAllRoleAndMenuByConditionPageDto; +import com.yuanchu.limslaboratory.pojo.dto.RoleInfoDto; 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 org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -28,6 +28,21 @@ return Result.success(roleManagerService.getMenusTree()); }; + @ApiOperation("鏂板瑙掕壊") + @PostMapping("/addRoleInfo") + public Result<?>addRoleInfo(@RequestBody RoleInfoDto dto){ + return Result.success(roleManagerService.addRoleInfo(dto)); + } + @ApiOperation("鏌ヨ瑙掕壊鍚嶉噸澶�") + @GetMapping("/assertRepeat") + public Result<?> assertRepeat(String roleName){ + return Result.success(roleManagerService.assertRepeat(roleName)); + } + @ApiOperation("鑾峰彇瑙掕壊淇℃伅") + @GetMapping("/getAllRoleAndMenuInfo") + public Result<?> getAllRoleAndMenuInfo(GetAllRoleAndMenuByConditionPageDto dto){ + return Result.success(roleManagerService.getAllRoleAndMenuInfo(dto)); + } } diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/RoleManageMapper.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/RoleManageMapper.java new file mode 100644 index 0000000..e85957b --- /dev/null +++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/RoleManageMapper.java @@ -0,0 +1,33 @@ +package com.yuanchu.limslaboratory.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yuanchu.limslaboratory.pojo.LimitPage; +import com.yuanchu.limslaboratory.pojo.Role; +import com.yuanchu.limslaboratory.pojo.RoleInfo; +import com.yuanchu.limslaboratory.pojo.RoleMenu; +import com.yuanchu.limslaboratory.pojo.dto.GetAllRoleAndMenuByConditionPageDto; +import com.yuanchu.limslaboratory.pojo.dto.GetPlanMeasureInstrumentDto; +import com.yuanchu.limslaboratory.pojo.dto.RoleAndMenuDto; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +import java.util.List; +import java.util.Map; + +/** + * @Author 寮犲 + * @Date 2023/8/24 + */ +@Repository +public interface RoleManageMapper extends BaseMapper<RoleInfo> { + + int insertBatchRoleMenu(@Param("roleMenuAddList") List<RoleMenu> roleMenuList); + + int insertRole(RoleInfo roleInfo); + + List<RoleInfo>getAssertName(@Param("roleName") String roleName); + + List<RoleAndMenuDto>selectAllRoleAndMenu(@Param("dto") GetAllRoleAndMenuByConditionPageDto dto); + + List<Role>getRoleByName(@Param("roleName") String roleName); +} 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 index b9cd220..12c7ddb 100644 --- a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/Menu.java +++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/Menu.java @@ -16,18 +16,18 @@ /** * id */ - private Integer value; + private Long id; /** * 鑿滃崟鍚� */ - private String label; + private String name; /** * 鐖剁骇id */ - private Integer parentId; + private Long parentId; /** * 瀛愮骇鑿滃崟淇℃伅 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 deleted file mode 100644 index 036a706..0000000 --- a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/Role.java +++ /dev/null @@ -1,26 +0,0 @@ -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/pojo/RoleInfo.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/RoleInfo.java new file mode 100644 index 0000000..854b391 --- /dev/null +++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/RoleInfo.java @@ -0,0 +1,49 @@ +package com.yuanchu.limslaboratory.pojo; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.Getter; +import lombok.Setter; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * @Author 寮犲 + * @Date 2023/8/23 + */ +@Data +@TableName("role") +@Getter +@Setter +public class RoleInfo implements Serializable { + + + @TableId(type = IdType.ASSIGN_ID) + private Long id; + + private String name; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss", iso = DateTimeFormat.ISO.DATE_TIME) + private LocalDateTime createTime; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss", iso = DateTimeFormat.ISO.DATE_TIME) + private LocalDateTime updateTime; + + private Integer state; + + public RoleInfo(String name, LocalDateTime createTime, LocalDateTime updateTime) { + this.name = name; + this.createTime = createTime; + this.updateTime = updateTime; + } + + public RoleInfo() { + } +} diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/RoleMenu.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/RoleMenu.java new file mode 100644 index 0000000..2bb7b23 --- /dev/null +++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/RoleMenu.java @@ -0,0 +1,67 @@ +package com.yuanchu.limslaboratory.pojo; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.List; + +/** + * @Author 寮犲 + * @Date 2023/8/24 + */ +@Data +@TableName("role_menu") +public class RoleMenu implements Serializable { + + @TableId(type = IdType.AUTO) + private Long id; + + private Long roleId; + + private String menuName; + + private Long menuId; + + private Boolean selected; + + private Boolean added; + + private Long parentId; + + private Boolean updated; + + private Boolean deleted; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss", iso = DateTimeFormat.ISO.DATE_TIME) + private LocalDateTime createTime; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss", iso = DateTimeFormat.ISO.DATE_TIME) + private LocalDateTime updateTime; + + private List<RoleMenu> children; + + public RoleMenu() { + } + + public RoleMenu(Long id, Long roleId, Long menuId, Boolean selected, Boolean added, Boolean updated, Boolean deleted, LocalDateTime createTime) { + this.id = id; + this.roleId = roleId; + this.menuId = menuId; + this.selected = selected; + this.added = added; + this.updated = updated; + this.deleted = deleted; + this.createTime = createTime; + } + + + +} diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/GetAllRoleAndMenuByConditionPageDto.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/GetAllRoleAndMenuByConditionPageDto.java new file mode 100644 index 0000000..51285e3 --- /dev/null +++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/GetAllRoleAndMenuByConditionPageDto.java @@ -0,0 +1,23 @@ +package com.yuanchu.limslaboratory.pojo.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author 寮犲 + * @Date 2023/8/24 + */ +@Data +@ApiModel(value = "GetAllRoleAndMenuByConditionPageDto瀵硅薄", description = "") +public class GetAllRoleAndMenuByConditionPageDto implements Serializable { + @ApiModelProperty(value = "褰撳墠椤�", example = "1", required = true) + private Long currentPage; + @ApiModelProperty(value = "姣忛〉澶氬皯鏉�", required = true) + private Long pageSize; + @ApiModelProperty(value = "瑙掕壊鍚�") + private String name; + +} diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/RoleAndMenuDto.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/RoleAndMenuDto.java new file mode 100644 index 0000000..aa3d4d0 --- /dev/null +++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/RoleAndMenuDto.java @@ -0,0 +1,33 @@ +package com.yuanchu.limslaboratory.pojo.dto; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.yuanchu.limslaboratory.pojo.RoleMenu; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.List; + +/** + * @Author 寮犲 + * @Date 2023/8/24 + */ +@Data +public class RoleAndMenuDto implements Serializable { + + private Long roleId; + + private String roleName; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss", iso = DateTimeFormat.ISO.DATE_TIME) + private LocalDateTime createTime; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss", iso = DateTimeFormat.ISO.DATE_TIME) + private LocalDateTime updateTime; + + private List<RoleMenu> roleMenuList; + +} diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/RoleInfoDto.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/RoleInfoDto.java new file mode 100644 index 0000000..981712a --- /dev/null +++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/RoleInfoDto.java @@ -0,0 +1,22 @@ +package com.yuanchu.limslaboratory.pojo.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; +import java.util.Map; + +/** + * @Author 寮犲 + * @Date 2023/8/24 + */ +@Data +public class RoleInfoDto implements Serializable { + + @ApiModelProperty(value = "瑙掕壊鍚�", required = true) + private String roleName; + + @ApiModelProperty(value = "閫変腑鑿滃崟淇℃伅") + private List<Map<String, Object>>menuData; +} 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 index 6cb04de..9fde5f7 100644 --- a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/RoleManagerService.java +++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/RoleManagerService.java @@ -1,6 +1,11 @@ package com.yuanchu.limslaboratory.service; -import com.yuanchu.limslaboratory.vo.Result; +import com.yuanchu.limslaboratory.pojo.dto.GetAllRoleAndMenuByConditionPageDto; +import com.yuanchu.limslaboratory.pojo.dto.RoleAndMenuDto; +import com.yuanchu.limslaboratory.pojo.dto.RoleInfoDto; + +import java.util.List; +import java.util.Map; /** * @Author 寮犲 @@ -8,4 +13,10 @@ */ public interface RoleManagerService { Object getMenusTree(); + + boolean addRoleInfo(RoleInfoDto dto); + + boolean assertRepeat(String roleName); + + Map<String, Object> getAllRoleAndMenuInfo(GetAllRoleAndMenuByConditionPageDto dto); } 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 index 38f0db1..eedf808 100644 --- 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 @@ -1,12 +1,25 @@ package com.yuanchu.limslaboratory.service.impl; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.IdUtil; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yuanchu.limslaboratory.mapper.MenuMapper; +import com.yuanchu.limslaboratory.mapper.RoleManageMapper; +import com.yuanchu.limslaboratory.pojo.LimitPage; import com.yuanchu.limslaboratory.pojo.Menu; +import com.yuanchu.limslaboratory.pojo.RoleInfo; +import com.yuanchu.limslaboratory.pojo.RoleMenu; +import com.yuanchu.limslaboratory.pojo.dto.GetAllRoleAndMenuByConditionPageDto; +import com.yuanchu.limslaboratory.pojo.dto.RoleAndMenuDto; +import com.yuanchu.limslaboratory.pojo.dto.RoleInfoDto; import com.yuanchu.limslaboratory.service.RoleManagerService; +import com.yuanchu.limslaboratory.utils.JsonUtil; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; @@ -20,6 +33,9 @@ @Resource private MenuMapper menuMapper; + @Resource + private RoleManageMapper roleManageMapper; + @Override public Object getMenusTree() { List<Menu> menus = menuMapper.getMenuList(); @@ -29,10 +45,69 @@ .collect(Collectors.toList()); } + @Override + @Transactional(rollbackFor = Exception.class) + public boolean addRoleInfo(RoleInfoDto dto) { + //鏂板瑙掕壊 + //System.out.println(dto); + LocalDateTime createTime = DateUtil.toLocalDateTime(DateUtil.date()); + RoleInfo role=new RoleInfo(); + long nextId = IdUtil.getSnowflake().nextId(); + role.setId(nextId); + role.setName(dto.getRoleName()); + role.setCreateTime(createTime); + int insert = roleManageMapper.insertRole(role); + List<Map<String, Object>>addBranch=new ArrayList<>(); + reverseTree(dto.getMenuData(),addBranch); + List<RoleMenu> roleMenuList =new ArrayList<>(); + addBranch.forEach(item->{ + roleMenuList.add(new RoleMenu(null,nextId, + Long.valueOf(String.valueOf(item.get("id"))) + ,Boolean.valueOf(String.valueOf(item.get("selected"))) + ,Boolean.valueOf(String.valueOf(item.get("added"))) + ,Boolean.valueOf(String.valueOf(item.get("deleted"))) + ,Boolean.valueOf(String.valueOf(item.get("updated"))) + ,createTime + )); + }); + //roleMenuAddList.forEach(System.out::println); + int i = roleManageMapper.insertBatchRoleMenu(roleMenuList); + return insert>0&&i>0; + } + + @Override + public boolean assertRepeat(String roleName) { + List<RoleInfo> assertName = roleManageMapper.getAssertName(roleName); + return assertName.size()<1; + } + + @Override + public Map<String, Object> getAllRoleAndMenuInfo(GetAllRoleAndMenuByConditionPageDto dto) { + dto.setCurrentPage((dto.getCurrentPage()-1)*dto.getCurrentPage()); + List<RoleAndMenuDto> roleAndMenuDtos = roleManageMapper.selectAllRoleAndMenu(dto); + roleAndMenuDtos.forEach(r->{ + List<RoleMenu>roleMenuList=r.getRoleMenuList(); + System.out.println(roleMenuList); + List<RoleMenu> collect = roleMenuList.stream() + .filter(t -> t.getParentId() == 0) + .peek((menu) -> menu.setChildren(this.getRoleMenuChildren(menu, roleMenuList))) + .collect(Collectors.toList()); + r.setRoleMenuList(collect); + }); + roleAndMenuDtos.forEach(r->{ + r.getRoleMenuList().forEach(System.out::println); + }); + Map<String, Object>result=new HashMap<>(3); + result.put("list",roleAndMenuDtos); + int size = roleManageMapper.getRoleByName(dto.getName()).size(); + result.put("total",size); + return result; + } + private List<Menu> getEnumChildren(Menu root, List<Menu> all) { return all.stream() - .filter(t -> Objects.equals(t.getParentId(), root.getValue())) + .filter(t -> Objects.equals(t.getParentId(), root.getId())) .peek(g -> { //鎵惧瓙鑿滃崟 g.setChildren(getEnumChildren(g, all)); @@ -40,4 +115,23 @@ .collect(Collectors.toList()); } + private List<RoleMenu> getRoleMenuChildren(RoleMenu root, List<RoleMenu> all) { + return all.stream() + .filter(t -> Objects.equals(t.getParentId(), root.getMenuId())) + .peek(g -> { + //鎵惧瓙鑿滃崟 + g.setChildren(getRoleMenuChildren(g, all)); + }) + .collect(Collectors.toList()); + } + + private void reverseTree(List<Map<String, Object>>tree, List<Map<String, Object>>addBranch){ + tree.forEach(t->{ + addBranch.add(t); + if(t.get("children")!=null){ + List<Map<String, Object>> children = JsonUtil.jsonToPojo( JsonUtil.jsonToString(t.get("children")), List.class); + addBranch.addAll(children); + } + }); + } } diff --git a/laboratory-server/src/main/resources/mapper/MenuMapper.xml b/laboratory-server/src/main/resources/mapper/MenuMapper.xml index 586dcb7..1ea9b2d 100644 --- a/laboratory-server/src/main/resources/mapper/MenuMapper.xml +++ b/laboratory-server/src/main/resources/mapper/MenuMapper.xml @@ -3,7 +3,7 @@ <mapper namespace="com.yuanchu.limslaboratory.mapper.MenuMapper"> <select id="getMenuList" resultType="com.yuanchu.limslaboratory.pojo.Menu"> - select id value,name label,parent_id parentId + select id,name,parent_id parentId from menu where state =1 </select> diff --git a/laboratory-server/src/main/resources/mapper/RoleManangeMapper.xml b/laboratory-server/src/main/resources/mapper/RoleManangeMapper.xml new file mode 100644 index 0000000..8980e01 --- /dev/null +++ b/laboratory-server/src/main/resources/mapper/RoleManangeMapper.xml @@ -0,0 +1,76 @@ +<?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.RoleManageMapper"> + <insert id="insertBatchRoleMenu" useGeneratedKeys="true" keyProperty="id"> + insert + role_menu (id,`role_id`,`menu_id`,`selected`,`added`,`updated`,`deleted`,`create_time`) + values + <foreach collection="roleMenuAddList" separator="," item="r"> + (#{r.id},#{r.roleId},#{r.menuId},#{r.selected},#{r.added},#{r.updated},#{r.deleted},#{r.createTime}) + </foreach> + </insert> + <insert id="insertRole"> + insert + role(id,name,create_time) value ( + #{id}, + #{name}, + #{createTime} + ) + </insert> + <select id="getAssertName" resultType="com.yuanchu.limslaboratory.pojo.RoleInfo"> + select id + from role + where name = #{roleName} + </select> + <select id="selectAllRoleAndMenu" resultMap="roleAndMenu"> + SELECT r.id roleId, + r.`name` roleName, + menu_id menuId, + parent_id parentId, + m.`name` menuName, + rm.selected, + rm.added, + rm.updated, + rm.deleted, + r.create_time createTime, + r.update_time updateTime + FROM role_menu rm, + (select id, name, createTime, updateTime + from role + where 1=1 + <if test="dto.name!=null and dto.name!=''"> + and name=#{dto.name} + </if> + limit #{dto.currentPage}, #{dto.pageSize}) r, + menu m + WHERE rm.role_id = r.id + AND rm.menu_id = m.id + AND r.state = 1 + AND rm.state = 1 + AND m.state = 1 + </select> + <select id="getRoleByName" resultType="com.yuanchu.limslaboratory.pojo.Role"> + select id + from role + where 1=1 + <if test="dto.name!=null and dto.name!=''"> + and name=#{dto.name} + </if> + </select> + + <resultMap id="roleAndMenu" type="com.yuanchu.limslaboratory.pojo.dto.RoleAndMenuDto"> + <result property="roleId" column="roleId"/> + <result property="roleName" column="roleName"/> + <result property="createTime" column="createTime"/> + <result property="updateTime" column="updateTime"/> + <collection property="roleMenuList" ofType="roleMenu"> + <result property="menuId" column="menuId"/> + <result property="added" column="added"/> + <result property="deleted" column="deleted"/> + <result property="updated" column="updated"/> + <result property="selected" column="selected"/> + <result property="menuName" column="menuName"/> + <result property="parentId" column="parentId"/> + </collection> + </resultMap> +</mapper> \ No newline at end of file diff --git a/standard-server/src/main/java/com/yuanchu/limslaboratory/controller/ProductController.java b/standard-server/src/main/java/com/yuanchu/limslaboratory/controller/ProductController.java index 31b730b..79f34f0 100644 --- a/standard-server/src/main/java/com/yuanchu/limslaboratory/controller/ProductController.java +++ b/standard-server/src/main/java/com/yuanchu/limslaboratory/controller/ProductController.java @@ -1,18 +1,11 @@ package com.yuanchu.limslaboratory.controller; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yuanchu.limslaboratory.service.ProductService; import com.yuanchu.limslaboratory.utils.MyUtil; import com.yuanchu.limslaboratory.vo.Result; import io.swagger.annotations.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; /** * <p> @@ -30,20 +23,32 @@ @Autowired private ProductService productService; - @ApiOperation("鏌ヨ璇ュ瀷鍙蜂笅鐨勯」鐩�") + @ApiOperation("鏌ヨ璇ュ瀷鍙蜂笅鐨勯」鐩�-->閫夋嫨鐗堟湰") @ApiImplicitParams(value = { @ApiImplicitParam(name = "specificationsId", value = "鍨嬪彿ID", dataTypeClass = Integer.class, required = true) }) + @GetMapping("/chooseVersion") + public Result<?> chooseVersion(Integer specificationsId) { + return Result.success(productService.chooseVersion(specificationsId)); + } + + @ApiOperation("鏌ヨ璇ュ瀷鍙蜂笅鐨勯」鐩�") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "specificationsId", value = "鍨嬪彿ID", dataTypeClass = Integer.class, required = true), + @ApiImplicitParam(name = "version", value = "鐗堟湰(榛樿鏈�鏂扮増鏈�)", dataTypeClass = Integer.class,required = true ) + }) @GetMapping("/page") - public Result<?> pageProductInformation(Integer specificationsId) { - return Result.success(productService.pageProductInformation(specificationsId)); + public Result<?> pageProductInformation(Integer specificationsId,Integer version) { + return Result.success(productService.pageProductInformation(specificationsId,version)); } @ApiOperation("濉啓鏍囧噯鍊间笌鍐呮帶鍊�,榧犳爣绉诲紑淇濆瓨") @ApiImplicitParams(value = { @ApiImplicitParam(name = "id", value = "鏍囧噯椤圭洰ID", dataTypeClass = Integer.class, required = true), @ApiImplicitParam(name = "required", value = "鏍囧噯鍊�", dataTypeClass = String.class, required = true), + @ApiImplicitParam(name = "internal", value = "鍐呮帶鍊�", dataTypeClass = String.class, required = true), @ApiImplicitParam(name = "internal", value = "鍐呮帶鍊�", dataTypeClass = String.class, required = true) + }) @PostMapping("/write") public Result<?> write(Integer id, String required, String internal) { @@ -64,4 +69,14 @@ productService.deleteList(ids); return Result.success("鍒犻櫎鎴愬姛"); } + + @ApiOperation("娣诲姞鍚屼竴涓瀷鍙风殑鍏朵粬鐗堟湰") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "specificationsId", value = "鍨嬪彿id", dataTypeClass = Integer.class, required = true) + }) + @PostMapping("/addVersion") + public Result<?> addVersion(Integer specificationsId ) { + Integer version = productService.addVersion(specificationsId); + return Result.success("娣诲姞鐗堟湰"+version+"鎴愬姛"); + } } diff --git a/standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/ProductMapper.java b/standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/ProductMapper.java index 5abf378..13958cd 100644 --- a/standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/ProductMapper.java +++ b/standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/ProductMapper.java @@ -24,7 +24,13 @@ List<Map> selectProductByMaterialId(int materialId); //灞曠ず璇ュ瀷鍙蜂笅鐨勬楠岄」鐩姹� - List<Map<String, Object>> pageProductInformation(Integer specificationsId); + List<Map<String, Object>> pageProductInformation(Integer specificationsId,Integer version); void deleteList(String ids); + + //灞曠ず璇ュ瀷鍙蜂笅鐨勬楠岄」鐩姹�-->閫夋嫨鐗堟湰 + List<Integer> chooseVersion(Integer specificationsId); + + //鏌ヨ璇ュ瀷鍙蜂笅鐨勬墍鏈夎瘯楠岄」鐩�(鐖剁被) + List<Map<String,Object>> chooseProject(Integer modelId); } diff --git a/standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/Product.java b/standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/Product.java index 14a985e..7cc9533 100644 --- a/standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/Product.java +++ b/standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/Product.java @@ -60,7 +60,7 @@ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date updateTime; - @ApiModelProperty(value = "涔愯閿�", hidden = true) + @ApiModelProperty(value = "鐗堟湰", hidden = true) private Integer version; @ApiModelProperty(value = "鍏宠仈 鍨嬪彿id", example = "1", hidden = true) diff --git a/standard-server/src/main/java/com/yuanchu/limslaboratory/service/ProductService.java b/standard-server/src/main/java/com/yuanchu/limslaboratory/service/ProductService.java index 7836058..a81e74a 100644 --- a/standard-server/src/main/java/com/yuanchu/limslaboratory/service/ProductService.java +++ b/standard-server/src/main/java/com/yuanchu/limslaboratory/service/ProductService.java @@ -1,13 +1,10 @@ package com.yuanchu.limslaboratory.service; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yuanchu.limslaboratory.pojo.Product; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; import java.util.Map; -import java.util.Objects; /** @@ -21,13 +18,20 @@ public interface ProductService extends IService<Product> { void deleteProductInformation(List<Integer> SpecificationsId); + /** + * 灞曠ず璇ュ瀷鍙蜂笅鐨勬楠岄」鐩姹�-->閫夋嫨鐗堟湰 + * @param specificationsId + * @return + */ + List<Integer> chooseVersion(Integer specificationsId); + /** * 灞曠ず璇ュ瀷鍙蜂笅鐨勬楠岄」鐩姹� * @param specificationsId * @return */ - List<Map<String,Object>> pageProductInformation(Integer specificationsId); + List<Map<String,Object>> pageProductInformation(Integer specificationsId,Integer version); /** * 濉啓鏍囧噯鍊间笌鍐呮帶鍊�,榧犳爣绉诲紑淇濆瓨 @@ -39,4 +43,19 @@ Integer write(Integer id, String required, String internal); void deleteList(String ids); + + /** + * 娣诲姞鍚屼竴涓瀷鍙风殑鍏朵粬鐗堟湰 + * @param specificationsId + * @return + */ + Integer addVersion(Integer specificationsId); + + + /** + * 鏌ヨ璇ュ瀷鍙蜂笅鐨勬墍鏈夎瘯楠岄」鐩�(鐖剁被) + * @param modelId + * @return + */ + List<Map<String,Object>> chooseProject(Integer modelId); } diff --git a/standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ProductServiceImpl.java b/standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ProductServiceImpl.java index a08eb0e..eed66aa 100644 --- a/standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ProductServiceImpl.java +++ b/standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ProductServiceImpl.java @@ -1,28 +1,18 @@ package com.yuanchu.limslaboratory.service.impl; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.yuanchu.limslaboratory.mapper.ProductModelMapper; -import com.yuanchu.limslaboratory.mapper.SpecificationsMapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.yuanchu.limslaboratory.pojo.Product; import com.yuanchu.limslaboratory.mapper.ProductMapper; -import com.yuanchu.limslaboratory.pojo.ProductModel; import com.yuanchu.limslaboratory.service.ProductService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.yuanchu.limslaboratory.utils.MyUtil; -import org.springframework.beans.factory.annotation.Autowired; -import com.yuanchu.limslaboratory.service.UserService; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.ObjectUtils; - import javax.annotation.Resource; -import java.util.ArrayList; import java.util.List; import java.util.Map; -import java.util.Objects; + /** * <p> @@ -38,9 +28,6 @@ @Resource private ProductMapper productMapper; - @Resource - ProductModelMapper productModelMapper; - @Override public void deleteProductInformation(List<Integer> SpecificationsId) { @@ -52,11 +39,17 @@ } } + //灞曠ず璇ュ瀷鍙蜂笅鐨勬楠岄」鐩姹�-->閫夋嫨鐗堟湰 + @Override + public List<Integer> chooseVersion(Integer specificationsId) { + return productMapper.chooseVersion(specificationsId); + } + //灞曠ず璇ュ瀷鍙蜂笅鐨勬楠岄」鐩姹� @Override @Transactional(rollbackFor = Exception.class) - public List<Map<String, Object>> pageProductInformation(Integer specificationsId) { - return productMapper.pageProductInformation(specificationsId); + public List<Map<String, Object>> pageProductInformation(Integer specificationsId,Integer version) { + return productMapper.pageProductInformation(specificationsId,version); } //濉啓鏍囧噯鍊间笌鍐呮帶鍊�,榧犳爣绉诲紑淇濆瓨 @@ -75,5 +68,22 @@ productMapper.deleteList(ids); } + //娣诲姞鍚屼竴涓瀷鍙风殑鍏朵粬鐗堟湰 + @Override + public Integer addVersion(Integer specificationsId) { + List<Product> productList = productMapper.selectList(Wrappers.<Product>query().eq("specifications_id", specificationsId)); + for (Product product : productList) { + product.setVersion(product.getVersion()+1); + } + saveBatch(productList); + return productList.get(0).getVersion(); + } + + //鏌ヨ璇ュ瀷鍙蜂笅鐨勬墍鏈夎瘯楠岄」鐩�(鐖剁被) + @Override + public List<Map<String,Object>> chooseProject(Integer modelId) { + return productMapper.chooseProject(modelId); + } + } diff --git a/standard-server/src/main/resources/mapper/ProductMapper.xml b/standard-server/src/main/resources/mapper/ProductMapper.xml index 05c4e11..398bc0d 100644 --- a/standard-server/src/main/resources/mapper/ProductMapper.xml +++ b/standard-server/src/main/resources/mapper/ProductMapper.xml @@ -23,6 +23,7 @@ <result property="unit" column="unit"/> <result property="required" column="required"/> <result property="internal" column="internal"/> + <result property="version" column="version"/> </resultMap> <select id="pageProductInformation" resultMap="pageProductInformationMap"> @@ -31,11 +32,13 @@ father, unit, required, - internal + internal, + version from lims_laboratory.product where state = 1 and specifications_id = #{specificationsId} ORDER BY product.`create_time` DESC + and version = #{version} </select> <select id="deleteList"> @@ -43,4 +46,29 @@ set state=0 where id in (${ids}) </select> + + <!--灞曠ず璇ュ瀷鍙蜂笅鐨勬楠岄」鐩姹�-閫夋嫨鐗堟湰--> + <select id="chooseVersion" resultType="java.lang.Integer"> + select distinct version + from lims_laboratory.product + where state = 1 + and specifications_id = #{specificationsId} + order by version desc + </select> + + <!--鏌ヨ璇ュ瀷鍙蜂笅鐨勬墍鏈夎瘯楠岄」鐩�(鐖剁被)--> + <resultMap id="chooseProjects" type="map"> + <id property="name" column="father"/> + <collection property="children" resultMap="chooseProjectTowMap" javaType="List"/> + </resultMap> + <resultMap id="chooseProjectTowMap" type="map"> + <id property="id" column="id"/> + <result property="name" column="name"/> + </resultMap> + <select id="chooseProject" resultMap="chooseProjects"> + select id, father, name + from lims_laboratory.product + where state = 1 + and specifications_id = #{modelId} + </select> </mapper> diff --git a/user-server/src/main/java/com/yuanchu/limslaboratory/controller/EnterpriseController.java b/user-server/src/main/java/com/yuanchu/limslaboratory/controller/EnterpriseController.java deleted file mode 100644 index 65ecfc8..0000000 --- a/user-server/src/main/java/com/yuanchu/limslaboratory/controller/EnterpriseController.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.yuanchu.limslaboratory.controller; - - -import org.springframework.web.bind.annotation.RequestMapping; - -import org.springframework.web.bind.annotation.RestController; - -/** - * <p> - * 鍓嶇鎺у埗鍣� - * </p> - * - * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 - * @since 2023-07-07 - */ -@RestController -@RequestMapping("/enterprise") -public class EnterpriseController { - -} diff --git a/user-server/src/main/java/com/yuanchu/limslaboratory/controller/WaitInformationController.java b/user-server/src/main/java/com/yuanchu/limslaboratory/controller/WaitInformationController.java new file mode 100644 index 0000000..df02520 --- /dev/null +++ b/user-server/src/main/java/com/yuanchu/limslaboratory/controller/WaitInformationController.java @@ -0,0 +1,79 @@ +package com.yuanchu.limslaboratory.controller; + + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.yuanchu.limslaboratory.utils.JackSonUtil; +import com.yuanchu.limslaboratory.utils.RedisUtil; +import com.yuanchu.limslaboratory.vo.Result; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import com.yuanchu.limslaboratory.service.WaitInformationService; + +import java.util.HashMap; +import java.util.Map; + + +/** + * 鎴戠殑寰呭姙琛�(WaitInformation)琛ㄦ帶鍒跺眰 + * + * @author zss + * @since 2023-08-24 10:00:21 + */ +@Api(tags = "娑堟伅寰呭姙-->鎴戠殑寰呭姙") +@RestController +@RequestMapping("/waitInformation") +public class WaitInformationController { + + @Autowired + private WaitInformationService waitInformationService; + + @ApiOperation(value = "鏌ヨ寰呭姙琛ㄥ垪琛�") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "pageSize", value = "椤垫暟", dataTypeClass = Integer.class, required = true), + @ApiImplicitParam(name = "countSize", value = "鏉℃暟/椤�", dataTypeClass = Integer.class, required = true), + @ApiImplicitParam(name = "title", value = "鏍囬", dataTypeClass = String.class), + @ApiImplicitParam(name = "text", value = "鍐呭", dataTypeClass = String.class), + @ApiImplicitParam(name = "type", value = "鐘舵��(涓虹┖=鍏ㄩ儴)", dataTypeClass = Integer.class) + }) + @GetMapping("/selectWaitInforList") + public Result selectWaitInforList(@RequestHeader("token") String token,int pageSize, int countSize, String title, String text, Integer type) throws Exception { + Object object = RedisUtil.get(token); + Map<String, Object> unmarshal = JackSonUtil.unmarshal(JackSonUtil.marshal(object), Map.class); + IPage<Map<String, Object>> waitInformationPage = waitInformationService.selectWaitInforList(new Page<Object>(pageSize, countSize),unmarshal.get("name").toString(), title, text, type); + Map<String, Object> map = new HashMap<>(); + map.put("total", waitInformationPage.getTotal()); + map.put("row", waitInformationPage.getRecords()); + return Result.success(map); + } + + @ApiOperation(value = "鎵归噺鍒犻櫎") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "ids", value = "寰呭姙id", dataTypeClass = String.class,required = true) + }) + @GetMapping("/delAllWaitInfor") + public Result delAllWaitInfor(@RequestHeader("token") String token,String ids) throws Exception { + Object object = RedisUtil.get(token); + Map<String, Object> unmarshal = JackSonUtil.unmarshal(JackSonUtil.marshal(object), Map.class); + waitInformationService.delAllWaitInfor(unmarshal.get("name").toString(),ids); + return Result.success("鍒犻櫎鎴愬姛!"); + } + + @ApiOperation(value = "鎵归噺鏍囦负宸茶") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "ids", value = "寰呭姙id", dataTypeClass = String.class,required = true) + }) + @GetMapping("/writeAllWaitInfor") + public Result writeAllWaitInfor(@RequestHeader("token") String token,String ids) throws Exception { + Object object = RedisUtil.get(token); + Map<String, Object> unmarshal = JackSonUtil.unmarshal(JackSonUtil.marshal(object), Map.class); + waitInformationService.writeAllWaitInfor(unmarshal.get("name").toString(),ids); + return Result.success("宸茶鎴愬姛"); + } + +} + diff --git a/user-server/src/main/java/com/yuanchu/limslaboratory/mapper/WaitInformationMapper.java b/user-server/src/main/java/com/yuanchu/limslaboratory/mapper/WaitInformationMapper.java new file mode 100644 index 0000000..a51e5a6 --- /dev/null +++ b/user-server/src/main/java/com/yuanchu/limslaboratory/mapper/WaitInformationMapper.java @@ -0,0 +1,27 @@ +package com.yuanchu.limslaboratory.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.yuanchu.limslaboratory.pojo.WaitInformation; + +import java.util.Map; + +/** + * 鎴戠殑寰呭姙琛�(WaitInformation)琛ㄦ暟鎹簱璁块棶灞� + * + * @author zss + * @since 2023-08-24 10:00:21 + */ +public interface WaitInformationMapper extends BaseMapper<WaitInformation> { + + //鏌ヨ寰呭姙琛ㄥ垪琛� + IPage<Map<String, Object>> selectWaitInforList(Page<Object> page,String rename, String title, String text,Integer type); + + //鎵归噺鍒犻櫎 + void delAllWaitInfor(String rename,String ids); + + //鎵归噺宸茶 + void writeAllWaitInfor(String rename,String ids); +} + diff --git a/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/WaitInformation.java b/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/WaitInformation.java new file mode 100644 index 0000000..daed7a6 --- /dev/null +++ b/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/WaitInformation.java @@ -0,0 +1,73 @@ +package com.yuanchu.limslaboratory.pojo; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.*; +import lombok.experimental.Accessors; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; +import java.io.Serializable; + +/** + * 鎴戠殑寰呭姙琛�(WaitInformation)琛ㄥ疄浣撶被 + * + * @author zss + * @since 2023-08-24 10:00:22 + */ +@Data +@Accessors(chain = true) +@AllArgsConstructor +@NoArgsConstructor +@EqualsAndHashCode(callSuper = false) +@Builder +@TableName("wait_information") +public class WaitInformation implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * id + **/ + @TableId(type = IdType.AUTO) + private Integer id; + + /** + * 鍙戜欢浜� + **/ + private String name; + + /** + * 鍙戜欢浜� + **/ + private String rename; + + /** + * 鏍囬 + **/ + private String title; + + /** + * 寰呭姙鍐呭 + **/ + private String text; + + /** + * 鐘舵�� 0:鏈;1:宸茶 + **/ + private Integer type; + + @ApiModelProperty(value = "閫昏緫鍒犻櫎 姝e父>=1,鍒犻櫎<=0", hidden = true) + private Integer state; + + @TableField(fill = FieldFill.INSERT) + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date createTime; + + @TableField(fill = FieldFill.INSERT_UPDATE) + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date updateTime; +} + diff --git a/user-server/src/main/java/com/yuanchu/limslaboratory/service/WaitInformationService.java b/user-server/src/main/java/com/yuanchu/limslaboratory/service/WaitInformationService.java new file mode 100644 index 0000000..83d9e6e --- /dev/null +++ b/user-server/src/main/java/com/yuanchu/limslaboratory/service/WaitInformationService.java @@ -0,0 +1,51 @@ +package com.yuanchu.limslaboratory.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.yuanchu.limslaboratory.pojo.WaitInformation; + +import java.util.Map; + +/** + * 鎴戠殑寰呭姙琛�(WaitInformation)琛ㄦ湇鍔℃帴鍙� + * + * @author zss + * @since 2023-08-24 10:00:22 + */ +public interface WaitInformationService extends IService<WaitInformation> { + + + /** + * 娣诲姞寰呭姙 + * @param name + * @param title + * @param text + */ + //todo:娣诲姞寰呭姙娑堟伅 + void addWaitInfor(String name,String title,String text,String rename); + + + /** + * 鏌ヨ寰呭姙琛ㄥ垪琛� + * @param page + * @param title + * @param text + * @return + */ + IPage<Map<String, Object>> selectWaitInforList(Page<Object> page,String rename, String title, String text,Integer type); + + /** + * 鎵归噺鍒犻櫎 + * @param ids + */ + void delAllWaitInfor(String rename,String ids); + + + /** + * 鎵归噺宸茶 + * @param ids + */ + void writeAllWaitInfor(String rename,String ids); +} + diff --git a/user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/WaitInformationServiceImpl.java b/user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/WaitInformationServiceImpl.java new file mode 100644 index 0000000..d7ffdbc --- /dev/null +++ b/user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/WaitInformationServiceImpl.java @@ -0,0 +1,57 @@ +package com.yuanchu.limslaboratory.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.yuanchu.limslaboratory.mapper.WaitInformationMapper; +import com.yuanchu.limslaboratory.pojo.WaitInformation; +import com.yuanchu.limslaboratory.service.WaitInformationService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Map; + +/** + * 鎴戠殑寰呭姙琛�(WaitInformation)琛ㄦ湇鍔″疄鐜扮被 + * + * @author zss + * @since 2023-08-24 10:00:22 + */ +@Service +public class WaitInformationServiceImpl extends ServiceImpl<WaitInformationMapper, WaitInformation> implements WaitInformationService { + + @Resource + WaitInformationMapper waitInformationMapper; + + + //娣诲姞寰呭姙 + @Override + public void addWaitInfor(String name, String title, String text, String rename) { + WaitInformation waitInformation = WaitInformation.builder() + .name(name) + .title(title) + .text(text) + .rename(rename) + .build(); + waitInformationMapper.insert(waitInformation); + } + + //鏌ヨ寰呭姙琛ㄥ垪琛� + @Override + public IPage<Map<String, Object>> selectWaitInforList(Page<Object> page, String rename, String title, String text, Integer type) { + return waitInformationMapper.selectWaitInforList(page, rename, title, text, type); + } + + //鎵归噺鍒犻櫎 + @Override + public void delAllWaitInfor(String rename, String ids) { + waitInformationMapper.delAllWaitInfor(rename, ids); + } + + //鎵归噺宸茶 + @Override + public void writeAllWaitInfor(String rename, String ids) { + waitInformationMapper.writeAllWaitInfor(rename, ids); + } +} + diff --git a/user-server/src/main/resources/mapper/WaitInformationMapper.xml b/user-server/src/main/resources/mapper/WaitInformationMapper.xml new file mode 100644 index 0000000..ad224f8 --- /dev/null +++ b/user-server/src/main/resources/mapper/WaitInformationMapper.xml @@ -0,0 +1,42 @@ +<?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.WaitInformationMapper"> + <!--鏌ヨ寰呭姙琛ㄥ垪琛�--> + <select id="selectWaitInforList" resultType="java.util.Map"> + select id, + name, + title, + text, + DATE_FORMAT(create_time,'%Y-%m-%d') creatTime, + type + from lims_laboratory.wait_information + where state=1 + and `rename`=#{rename} + <if test="title!=null and title!=''"> + and title like concat('%',#{title},'%') + </if> + <if test="text!=null and text!=''"> + and text like concat('%',#{text},'%') + </if> + <if test="type!=null "> + and type =#{type} + </if> + </select> + + <!--鎵归噺鍒犻櫎--> + <update id="delAllWaitInfor"> + update lims_laboratory.wait_information + set state=0 + where `rename`=#{rename} + and id in (${ids}) + </update> + + <!--鎵归噺宸茶--> + <update id="writeAllWaitInfor"> + update lims_laboratory.wait_information + set type=1 + where wait_information.state = 1 + and `rename`=#{rename} + and id in (${ids}) + </update> +</mapper> \ No newline at end of file -- Gitblit v1.9.3