Fixiaobai
2023-09-04 dd2554435b9ced61e2a6a06627145fca3bf2685b
修改bug
已修改17个文件
已添加1个文件
197 ■■■■ 文件已修改
framework/src/main/java/com/yuanchu/limslaboratory/exception/ApplicationException.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/com/yuanchu/limslaboratory/handler/GlobalExceptionHandler.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/ReportController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/InspectionMaterial.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/RawMaterial.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/ReportService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionServiceImpl.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ReportServiceImpl.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/resources/mapper/QualificationRateStatisticsMapper.xml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/resources/mapper/RawMaterialMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/resources/mapper/ReportMapper.xml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
laboratory-server/src/main/resources/mapper/MeteringPlanMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/Product.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sys/src/main/resources/application-dev.yml 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
user-server/src/main/java/com/yuanchu/limslaboratory/mapper/RoleManageMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RoleManagerServiceImpl.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/UserServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
user-server/src/main/resources/mapper/RoleManangeMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/com/yuanchu/limslaboratory/exception/ApplicationException.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,48 @@
package com.yuanchu.limslaboratory.exception;
/**
 * @Author å¼ å®¾
 * @Date 2023/9/4
 * ä¸šåС异叏
 */
public class ApplicationException extends RuntimeException{
    /**
     * ä¸šåŠ¡ç¼–ç å®šä¹‰
     * @return ä¸šåŠ¡ç¼–ç 
     */
    private String code;
    /**
     * ä¸šåŠ¡ä¿¡æ¯å®šä¹‰
     * @return ä¸šåŠ¡ä¿¡æ¯å®šä¹‰
     */
    private String msg;
    public ApplicationException(String code, String msg) {
        super(msg);
        this.code = code;
        this.msg = msg;
    }
    public ApplicationException() {
    }
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public String getMsg() {
        return msg;
    }
    public void setMsg(String msg) {
        this.msg = msg;
    }
}
framework/src/main/java/com/yuanchu/limslaboratory/handler/GlobalExceptionHandler.java
@@ -11,7 +11,11 @@
import org.springframework.beans.TypeMismatchException;
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.dao.DataAccessException;
import org.springframework.dao.DataIntegrityViolationException;
import org.springframework.dao.DuplicateKeyException;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.http.converter.HttpMessageNotReadableException;
import org.springframework.http.converter.HttpMessageNotWritableException;
import org.springframework.jdbc.BadSqlGrammarException;
@@ -25,6 +29,7 @@
import java.io.IOException;
import java.net.BindException;
import java.sql.SQLException;
import java.sql.SQLIntegrityConstraintViolationException;
import java.util.List;
import java.util.stream.Collectors;
@@ -218,4 +223,6 @@
    public Result<?> noAuth(AuthException e){
        return Result.fail(Integer.valueOf(e.getCode()),e.getMsg());
    }
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/ReportController.java
@@ -73,7 +73,7 @@
    })
    @PostMapping("/check")
    @AuthHandler
    public Result check(@RequestHeader("X-Token") String token, Integer id, String result) throws Exception {
    public Result check(@RequestHeader("X-Token") String token, Integer id, Integer result) throws Exception {
        Object object = RedisUtil.get(token);
        Map<String, Object> unmarshal = JackSonUtil.unmarshal(JackSonUtil.marshal(object), Map.class);
        MyUtil.PrintLog(unmarshal + "-------id" + id + "=========" + result);
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/InspectionMaterial.java
@@ -57,6 +57,11 @@
    private String supplier;
    /**
     * åž‹å·id
     */
    private String specificationId;
    /**
     * è§„格名称-型号名称
     **/
    private String specifications;
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/RawMaterial.java
@@ -40,6 +40,9 @@
    @ApiModelProperty(value = "材料名称", required = true, example = "光纤")
    private String materialName;
    @ApiModelProperty(value = "规格型号", required = true)
    private Integer specificationsId;
    @ApiModelProperty(value = "规格型号", required = true, example = "GGXH2023")
    private String specificationsModels;
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/ReportService.java
@@ -40,7 +40,7 @@
     * @param id
     * @return
     */
    String check(String name, Integer id, String result);
    String check(String name, Integer id, Integer  result);
    /**
     * åˆ é™¤
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionServiceImpl.java
@@ -9,6 +9,7 @@
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.limslaboratory.exception.ApplicationException;
import com.yuanchu.limslaboratory.mapper.*;
import com.yuanchu.limslaboratory.pojo.*;
import com.yuanchu.limslaboratory.pojo.vo.InsProductVo;
@@ -21,6 +22,7 @@
import javax.annotation.Resource;
import java.util.*;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.stream.Collectors;
/**
@@ -83,14 +85,13 @@
    //新增检验单-->选择检验项目版本
    @Override
    public List<Integer> chooseVer(String name, String mcode, String specifications) {
        Integer specificationId = getSpecificationId(name, mcode, specifications);
        return productMapper.chooseVersion(specificationId);
        return productMapper.chooseVersion(Integer.parseInt(specifications));
    }
    //新增检验单-->选择检验项目版本-->查看该版本下我们要做的项目要求
    @Override
    public List<Map<String, Object>> lookProByVer(String name, String mcode, String specifications, Integer version, String experiment) {
        Integer specificationId = getSpecificationId(name, mcode, specifications);
        Integer specificationId = Integer.parseInt(specifications);
        /*如果试验项目为空则是成品检验或者原材料检验则是展示该版本的所有项目检验要求参数*/
        if (ObjectUtils.isEmpty(experiment)) {
            return productMapper.pageProductInformation(specificationId, version);
@@ -119,7 +120,7 @@
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Integer addInspect(Integer id, InspectionVo inspectionVo) {
    public Integer addInspect(Integer id, InspectionVo inspectionVo) throws ApplicationException {
        /*新增检验申请表*/
        Inspection inspection = Inspection.builder()
                .startTime(inspectionVo.getStartTime())
@@ -152,6 +153,7 @@
                .num(inspectionVo.getNum())
                .unit(inspectionVo.getUnit())
                .supplier(inspectionVo.getSupplier())
                .specificationId(inspectionVo.getSpecificationId())
                .specifications(inspectionVo.getSpecifications())
                .formTime(inspectionVo.getFormTime())
                .inspectionId(inspection.getId())
@@ -160,12 +162,12 @@
        inspectionMaterialMapper.insert(inspectionMaterial);
        /*新增检验项目表*/
        //根据样品名称编号以及型号规格获取型号id
        Integer specificationId = null;
        if(ObjectUtils.isNotEmpty(inspectionVo.getSpecificationId())){
            specificationId =Integer.parseInt(inspectionVo.getSpecificationId());
        }else{
            specificationId=getSpecificationId(inspectionVo.getName(), inspectionVo.getMcode(), inspectionVo.getSpecifications());
        }
        Integer specificationId = Integer.parseInt(inspectionVo.getSpecificationId());
        //if(ObjectUtils.isNotEmpty(inspectionVo.getSpecificationId())){
        //    specificationId =Integer.parseInt(inspectionVo.getSpecificationId());
        //}else{
        //    specificationId=getSpecificationId(inspectionVo.getName(), inspectionVo.getMcode(), inspectionVo.getSpecifications());
        //}
        //如果试验项目字段不为空则按该字段的项目进行匹配
        if (ObjectUtils.isNotEmpty(inspectionVo.getExperiment())) {
            //获取试验项目信息(结构,导线外径)
@@ -207,6 +209,16 @@
                productMapper.selectList(Wrappers.<Product>query()
                        .eq("specifications_id", specificationId)
                .eq("version",inspectionVo.getVersion()));
        productList.stream().forEach(p->{
            String internal = Optional.ofNullable(p)
                    .map(Product::getInternal)
                    .orElse("空");
            String required = Optional.ofNullable(p)
                    .map(Product::getRequired).orElse("空");
            if(Objects.equals("空",internal)||Objects.equals(required,"空")) {
                throw new ApplicationException("500","项目版本不可用");
            }
        });
        //将查询的项目信息构建成检验项目
        ArrayList<InspectionProduct> list = new ArrayList<>();
        for (Product product : productList) {
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ReportServiceImpl.java
@@ -54,16 +54,12 @@
    //审核
    @Override
    public String check(String name, Integer id, String result) {
    public String check(String name, Integer id, Integer result) {
        Report report = new Report();
        report.setId(id);
        report.setApprover(name);
        report.setCheckTime(new Date());
        if (result.equals("通过")){
            report.setStatus(2);
        }else if (result.equals("不通过")){
            report.setStatus(3);
        }
        report.setStatus(result);
        reportMapper.updateById(report);
        return "审核成功!";
    }
@@ -79,7 +75,10 @@
    @Override
    public Map<String, Object> getReportContext(String code) {
        return reportMapper.getReportContext(code);
        Map<String, Object> reportContext = reportMapper.getReportContext(code);
        System.out.println("========================");
        System.out.println(reportContext);
        return reportContext;
    }
    @Override
inspection-server/src/main/resources/mapper/QualificationRateStatisticsMapper.xml
@@ -13,7 +13,7 @@
        INNER JOIN inspection_material im ON i.id = im.inspection_id
        where (i.state = 1  and im.state=1)
        <if test="dto.beginDate!=null and dto.endDate!=null">
            DATE_FORMAT( i.end_time, '%Y-%m-%d' ) BETWEEN #{dto.beginDate}
            and DATE_FORMAT( i.end_time, '%Y-%m-%d' ) BETWEEN #{dto.beginDate}
            AND #{dto.endDate}
            AND DATE_FORMAT( i.start_time, '%Y-%m-%d' )>= #{dto.beginDate}
        </if>
@@ -56,7 +56,7 @@
        AND ipr.test_state is not null
        AND ipr.test_state = 0
        <if test="dto.beginDate!=null and dto.endDate!=null">
            DATE_FORMAT( i.end_time, '%Y-%m-%d' ) BETWEEN #{dto.beginDate}
            and DATE_FORMAT( i.end_time, '%Y-%m-%d' ) BETWEEN #{dto.beginDate}
            AND #{dto.endDate}
            AND DATE_FORMAT( i.start_time, '%Y-%m-%d' )>= #{dto.beginDate}
        </if>
@@ -87,7 +87,7 @@
        AND im.state = 1
        AND ipr.state = 1
        <if test="dto.beginDate!=null and dto.endDate!=null">
            DATE_FORMAT( i.end_time, '%Y-%m-%d' ) BETWEEN #{dto.beginDate}
            and DATE_FORMAT( i.end_time, '%Y-%m-%d' ) BETWEEN #{dto.beginDate}
            AND #{dto.endDate}
            AND DATE_FORMAT( i.start_time, '%Y-%m-%d' )>= #{dto.beginDate}
        </if>
@@ -124,7 +124,7 @@
        INNER JOIN inspection_material im ON i.id = im.inspection_id
        where (i.state = 1 and im.state=1)
        <if test="dto.beginDate!=null and dto.endDate!=null">
            DATE_FORMAT( i.end_time, '%Y-%m-%d' ) BETWEEN #{dto.beginDate}
           and  DATE_FORMAT( i.end_time, '%Y-%m-%d' ) BETWEEN #{dto.beginDate}
            AND #{dto.endDate}
            AND DATE_FORMAT( i.start_time, '%Y-%m-%d' )>= #{dto.beginDate}
        </if>
inspection-server/src/main/resources/mapper/RawMaterialMapper.xml
@@ -15,7 +15,7 @@
            AND r.`type` = #{type}
        </if>
        <if test="createTime != null and createTime != ''">
            AND DATE_FORMAT(r.`create_time`,'%Y-%m-%d') = #{createTime}
            AND DATE_FORMAT(r.`date_survey`,'%Y-%m-%d') = #{createTime}
        </if>
    </select>
    <select id="selectRawmaAll" resultType="java.util.Map">
inspection-server/src/main/resources/mapper/ReportMapper.xml
@@ -45,6 +45,7 @@
        <result property="createTime" column="create_time"/>
        <result property="checkTime" column="check_time"/>
        <result property="inspectionStatus" column="inspection_status"/>
        <result property="notes" column="notes"/>
        <collection property="products" resultMap="products" javaType="java.util.List"/>
    </resultMap>
@@ -55,6 +56,7 @@
        <result property="required" column="required"/>
        <result property="testValue" column="test_value"/>
        <result property="testState" column="test_state"/>
        <result property="ipName" column="ipName"/>
    </resultMap>
    <select id="getReportContext" resultMap="report">
laboratory-server/src/main/resources/mapper/MeteringPlanMapper.xml
@@ -26,8 +26,8 @@
        <if test="dto.name!=null and dto.name!=''">
            and i.`equipment_name` like concat('%',#{dto.name},'%')
        </if>
        <if test="dto.name!=null and dto.name!=''">
            and i.measurement_unit like concat('%',#{dto.unit},'%')
        <if test="dto.unit!=null and dto.unit!=''">
            and m.measurement_unit like concat('%',#{dto.unit},'%')
        </if>
    </select>
standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/Product.java
@@ -66,5 +66,20 @@
    @ApiModelProperty(value = "关联 åž‹å·id", example = "1", hidden = true)
    private Integer specifications_id;
    public Product() {
    }
    public Product(Integer id, String name, String father, String unit, String required, String internal, Integer state, Date createTime, Date updateTime, Integer version, Integer specifications_id) {
        this.id = id;
        this.name = name;
        this.father = father;
        this.unit = unit;
        this.required = required;
        this.internal = internal;
        this.state = state;
        this.createTime = createTime;
        this.updateTime = updateTime;
        this.version = version;
        this.specifications_id = specifications_id;
    }
}
sys/src/main/resources/application-dev.yml
@@ -40,12 +40,12 @@
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driverClassName: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://192.168.110.209:3306/lims_laboratory?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
#    url: jdbc:mysql://192.168.110.209:3306/lims_laboratory?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
#    username: user
#    password: 123456
    url: jdbc:mysql://192.168.73.113:3306/lims_laboratory?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
    username: user
    password: 123456
#    url: jdbc:mysql://localhost:3306/lims_laboratory?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
#    username: root
#    password: 123456
    druid:
      #   Druid数据源配置
      initialSize: 5 # åˆå§‹è¿žæŽ¥æ•°
@@ -68,10 +68,10 @@
    # redis数据库索引(默认为0),我们使用索引为3的数据库,避免和其他数据库冲突
    database: 0
    # redis服务器地址(默认为localhost)
    host: 192.168.110.209
#    host: localhost
#    host: 192.168.110.209
    host: 192.168.73.113
    # redis端口(默认为6379)
    port: 6380
    port: 6379
    # redis访问密码(默认为空)
    password: null
    # redis连接超时时间(单位毫秒)
user-server/src/main/java/com/yuanchu/limslaboratory/mapper/RoleManageMapper.java
@@ -32,6 +32,8 @@
    int deleteRoleMenuByRoleId(Long id);
    List<RoleMenu>getRoleMenuByRoleId(@Param("roleId")Long roleId);
    RoleAndMenuDto selectAllRoleAndMenuByRoleId(Long roleId);
    List<Map<String, Object>> getUserListRole();
user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RoleManagerServiceImpl.java
@@ -3,7 +3,7 @@
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.limslaboratory.exception.AuthException;
@@ -17,6 +17,7 @@
import com.yuanchu.limslaboratory.pojo.dto.RoleInfoDto;
import com.yuanchu.limslaboratory.pojo.dto.UpdateRoleMenuDto;
import com.yuanchu.limslaboratory.service.RoleManagerService;
import com.yuanchu.limslaboratory.utils.ArrayListUtil;
import com.yuanchu.limslaboratory.utils.JsonUtil;
import com.yuanchu.limslaboratory.utils.MyUtil;
import lombok.extern.slf4j.Slf4j;
@@ -76,9 +77,7 @@
                    ,createTime
            ));
        });
        if(roleMenuList.size()<1){
            roleMenuList.add(new RoleMenu(null,nextId,39L,true,false,false,false,createTime));
        }
        roleMenuList.add(new RoleMenu(null,nextId,39L,true,false,false,false,createTime));
        //roleMenuAddList.forEach(System.out::println);
        int i = roleManageMapper.insertBatchRoleMenu(roleMenuList);
        return insert>0&&i>0;
@@ -127,16 +126,24 @@
                .set(RoleInfo::getUpdateTime,DateUtil.toLocalDateTime(DateUtil.date()))
                                .eq(RoleInfo::getId,dto.getRoleId());
        int update = roleManageMapper.update(null, updateWrapper);
        //删除role_menu信息
        int deleteRoleMenuByRoleId = roleManageMapper.deleteRoleMenuByRoleId(dto.getRoleId());
        List<RoleMenu> roleMenuByRoleId = roleManageMapper.getRoleMenuByRoleId(dto.getRoleId());
        if (roleMenuByRoleId.size()>1){
            //删除role_menu信息
            update = roleManageMapper.deleteRoleMenuByRoleId(dto.getRoleId());
        }
        //添加最新选择、
        dto.getMenuData().forEach(l->{
            l.setRoleId(dto.getRoleId());
            l.setCreateTime(DateUtil.toLocalDateTime(DateUtil.date()));
            l.setUpdateTime(DateUtil.toLocalDateTime(DateUtil.date()));
        });
        int insertBatchRoleMenu = roleManageMapper.insertBatchRoleMenu(dto.getMenuData());
        return update>0&&deleteRoleMenuByRoleId>0&&insertBatchRoleMenu>0;
        List<RoleMenu> collect = dto.getMenuData().stream().filter(l -> l.getAdded() == false && l.getDeleted() == false && l.getSelected() == false && l.getUpdated() == false).collect(Collectors.toList());
        List<RoleMenu> roleMenuList = ArrayListUtil.compareNotEqualListBySingleValue(dto.getMenuData(), collect);
        if(roleMenuList.size()>0){
            return update>0&&roleManageMapper.insertBatchRoleMenu(roleMenuList)>0;
        }else {
            return update>0;
        }
    }
    @Override
user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/UserServiceImpl.java
@@ -12,6 +12,7 @@
import com.yuanchu.limslaboratory.service.UserService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.limslaboratory.utils.JackSonUtil;
import com.yuanchu.limslaboratory.utils.JsonUtil;
import com.yuanchu.limslaboratory.utils.MyUtil;
import com.yuanchu.limslaboratory.utils.RedisUtil;
import com.yuanchu.limslaboratory.pojo.vo.NewPersonnelVo;
@@ -121,13 +122,9 @@
    @Override
    public Integer addNewPersonnel(NewPersonnelVo newPersonnelVo, String enterpriseId) {
        try {
            User unmarshal = JackSonUtil.unmarshal(JackSonUtil.marshal(newPersonnelVo), User.class);
            unmarshal.setEnterpriseId(Integer.valueOf(enterpriseId));
            return userMapper.insert(unmarshal);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
        User unmarshal = JsonUtil.jsonToPojo(JsonUtil.jsonToString(newPersonnelVo), User.class);
        unmarshal.setEnterpriseId(Integer.valueOf(enterpriseId));
        return userMapper.insert(unmarshal);
    }
    @Override
user-server/src/main/resources/mapper/RoleManangeMapper.xml
@@ -34,6 +34,7 @@
        delete
        from role_menu
        where role_id = #{id}
        and menu_id !=39
    </delete>
    <select id="getAssertName" resultType="com.yuanchu.limslaboratory.pojo.RoleInfo">
        select id
@@ -120,6 +121,9 @@
        select name, url
        from interface_info
    </select>
    <select id="getRoleMenuByRoleId" resultType="com.yuanchu.limslaboratory.pojo.RoleMenu">
        select id from role_menu where role_id =#{roleId}
    </select>
    <resultMap id="roleAndMenuById" type="com.yuanchu.limslaboratory.pojo.dto.RoleAndMenuDto">
        <result property="roleName" column="roleName"/>
        <result property="createTime" column="createTime"/>