XiaoRuby
2023-08-26 eb34edfc7cf46e5cb5e3969d04315e6129dcbbd2
Merge remote-tracking branch 'origin/master'

# Conflicts:
# standard-server/src/main/resources/mapper/ProductMapper.xml
# user-server/src/main/java/com/yuanchu/limslaboratory/controller/RoleController.java
已修改27个文件
已删除2个文件
已添加13个文件
1276 ■■■■ 文件已修改
chart-server/src/main/resources/mapper/WorkMapper.xml 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/com/yuanchu/limslaboratory/utils/JackSonUtil.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionController.java 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/LinkBasicInformationController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/LinkDetectionController.java 56 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/PlanController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/LinkBasicInformation.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/LinkDetection.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/InspectionVo.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/InspectionService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/LinkBasicInformationService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionServiceImpl.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/LinkBasicInformationServiceImpl.java 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/LinkDetectionServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/resources/mapper/InspectionProductMapper.xml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/resources/mapper/LinkBasicInformationMapper.xml 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/RoleMangerController.java 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/RoleManageMapper.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/Menu.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/Role.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/RoleInfo.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/RoleMenu.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/GetAllRoleAndMenuByConditionPageDto.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/RoleAndMenuDto.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/RoleInfoDto.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/RoleManagerService.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RoleManagerServiceImpl.java 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
laboratory-server/src/main/resources/mapper/MenuMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
laboratory-server/src/main/resources/mapper/RoleManangeMapper.xml 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/java/com/yuanchu/limslaboratory/controller/ProductController.java 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/ProductMapper.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/Product.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/java/com/yuanchu/limslaboratory/service/ProductService.java 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ProductServiceImpl.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/resources/mapper/ProductMapper.xml 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
user-server/src/main/java/com/yuanchu/limslaboratory/controller/EnterpriseController.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
user-server/src/main/java/com/yuanchu/limslaboratory/controller/WaitInformationController.java 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
user-server/src/main/java/com/yuanchu/limslaboratory/mapper/WaitInformationMapper.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
user-server/src/main/java/com/yuanchu/limslaboratory/pojo/WaitInformation.java 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
user-server/src/main/java/com/yuanchu/limslaboratory/service/WaitInformationService.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/WaitInformationServiceImpl.java 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
user-server/src/main/resources/mapper/WaitInformationMapper.xml 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
chart-server/src/main/resources/mapper/WorkMapper.xml
@@ -3,8 +3,8 @@
<mapper namespace="com.yuanchu.limslaboratory.mapper.WorkMapper">
    <!--责任人项目数统计-->
    <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 @@
    <!--责任人执行率-->
    <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
framework/src/main/java/com/yuanchu/limslaboratory/utils/JackSonUtil.java
@@ -14,8 +14,6 @@
/**
 * JSON解析处理
 *
 * @author å¼ å®¾
 */
@Component
public class JackSonUtil {
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 = "责任人id", dataTypeClass = Integer.class, required = true)
        })
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "id", value = "检验单项目id", dataTypeClass = Integer.class, required = true),
            @ApiImplicitParam(name = "userProId", value = "责任人id", 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));
    }
inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/LinkBasicInformationController.java
@@ -65,4 +65,5 @@
        map.put("row", linkBasicPage.getRecords());
        return Result.success(map);
    }
}
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));
    }
}
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));
    }
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;
}
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)
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;
}
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);
}
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);
}
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();
    }
}
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"));
    }
}
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);
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
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>
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));
    }
}
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);
}
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;
    /**
     * å­çº§èœå•信息
laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/Role.java
ÎļþÒÑɾ³ý
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() {
    }
}
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;
    }
}
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;
}
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;
}
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;
}
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);
}
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);
            }
        });
    }
}
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>
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>
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+"成功");
    }
}
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);
}
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)
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);
}
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);
    }
}
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>
user-server/src/main/java/com/yuanchu/limslaboratory/controller/EnterpriseController.java
ÎļþÒÑɾ³ý
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("已读成功");
    }
}
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);
}
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 = "逻辑删除 æ­£å¸¸>=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;
}
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);
}
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);
    }
}
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>