From dd2554435b9ced61e2a6a06627145fca3bf2685b Mon Sep 17 00:00:00 2001
From: Fixiaobai <fixiaobai@163.com>
Date: 星期一, 04 九月 2023 17:17:17 +0800
Subject: [PATCH] 修改bug

---
 inspection-server/src/main/resources/mapper/ReportMapper.xml                                       |    2 
 laboratory-server/src/main/resources/mapper/MeteringPlanMapper.xml                                 |    4 
 framework/src/main/java/com/yuanchu/limslaboratory/handler/GlobalExceptionHandler.java             |    7 +
 inspection-server/src/main/resources/mapper/RawMaterialMapper.xml                                  |    2 
 user-server/src/main/java/com/yuanchu/limslaboratory/mapper/RoleManageMapper.java                  |    2 
 inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionServiceImpl.java |   32 +++++--
 inspection-server/src/main/resources/mapper/QualificationRateStatisticsMapper.xml                  |    8 +-
 inspection-server/src/main/java/com/yuanchu/limslaboratory/service/ReportService.java              |    2 
 sys/src/main/resources/application-dev.yml                                                         |   14 +-
 inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/InspectionMaterial.java            |    5 +
 user-server/src/main/resources/mapper/RoleManangeMapper.xml                                        |    4 +
 inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/ReportController.java        |    2 
 standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/Product.java                         |   15 +++
 user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/UserServiceImpl.java             |   11 +-
 inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ReportServiceImpl.java     |   13 +-
 framework/src/main/java/com/yuanchu/limslaboratory/exception/ApplicationException.java             |   48 ++++++++++++
 inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/RawMaterial.java                   |    3 
 user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RoleManagerServiceImpl.java      |   23 +++--
 18 files changed, 149 insertions(+), 48 deletions(-)

diff --git a/framework/src/main/java/com/yuanchu/limslaboratory/exception/ApplicationException.java b/framework/src/main/java/com/yuanchu/limslaboratory/exception/ApplicationException.java
new file mode 100644
index 0000000..f4e7a52
--- /dev/null
+++ b/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;
+    }
+}
diff --git a/framework/src/main/java/com/yuanchu/limslaboratory/handler/GlobalExceptionHandler.java b/framework/src/main/java/com/yuanchu/limslaboratory/handler/GlobalExceptionHandler.java
index c9465df..ce92794 100644
--- a/framework/src/main/java/com/yuanchu/limslaboratory/handler/GlobalExceptionHandler.java
+++ b/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());
     }
+
+
 }
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/ReportController.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/ReportController.java
index df826f3..267e7df 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/ReportController.java
+++ b/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);
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/InspectionMaterial.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/InspectionMaterial.java
index e170b57..3058689 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/InspectionMaterial.java
+++ b/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;
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/RawMaterial.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/RawMaterial.java
index 0c4fbab..a7e53e7 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/RawMaterial.java
+++ b/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;
 
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/ReportService.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/ReportService.java
index 72f3bc7..1c6e3bf 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/ReportService.java
+++ b/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);
 
     /**
      * 鍒犻櫎
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionServiceImpl.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionServiceImpl.java
index 96d46d3..08ce01b 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionServiceImpl.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionServiceImpl.java
@@ -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) {
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ReportServiceImpl.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ReportServiceImpl.java
index f65dcc2..f11d042 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ReportServiceImpl.java
+++ b/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
diff --git a/inspection-server/src/main/resources/mapper/QualificationRateStatisticsMapper.xml b/inspection-server/src/main/resources/mapper/QualificationRateStatisticsMapper.xml
index a9a3d21..51f01da 100644
--- a/inspection-server/src/main/resources/mapper/QualificationRateStatisticsMapper.xml
+++ b/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>
diff --git a/inspection-server/src/main/resources/mapper/RawMaterialMapper.xml b/inspection-server/src/main/resources/mapper/RawMaterialMapper.xml
index 7ca8063..5ea0eef 100644
--- a/inspection-server/src/main/resources/mapper/RawMaterialMapper.xml
+++ b/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">
diff --git a/inspection-server/src/main/resources/mapper/ReportMapper.xml b/inspection-server/src/main/resources/mapper/ReportMapper.xml
index 7cd6cc6..25227c5 100644
--- a/inspection-server/src/main/resources/mapper/ReportMapper.xml
+++ b/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">
diff --git a/laboratory-server/src/main/resources/mapper/MeteringPlanMapper.xml b/laboratory-server/src/main/resources/mapper/MeteringPlanMapper.xml
index 87445db..c87bc33 100644
--- a/laboratory-server/src/main/resources/mapper/MeteringPlanMapper.xml
+++ b/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>
 
diff --git a/standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/Product.java b/standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/Product.java
index 7cc9533..cdb42b3 100644
--- a/standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/Product.java
+++ b/standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/Product.java
@@ -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;
+    }
 }
diff --git a/sys/src/main/resources/application-dev.yml b/sys/src/main/resources/application-dev.yml
index c1b729a..bb47ed2 100644
--- a/sys/src/main/resources/application-dev.yml
+++ b/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杩炴帴瓒呮椂鏃堕棿锛堝崟浣嶆绉掞級
diff --git a/user-server/src/main/java/com/yuanchu/limslaboratory/mapper/RoleManageMapper.java b/user-server/src/main/java/com/yuanchu/limslaboratory/mapper/RoleManageMapper.java
index 25eba82..27b1efd 100644
--- a/user-server/src/main/java/com/yuanchu/limslaboratory/mapper/RoleManageMapper.java
+++ b/user-server/src/main/java/com/yuanchu/limslaboratory/mapper/RoleManageMapper.java
@@ -32,6 +32,8 @@
 
     int deleteRoleMenuByRoleId(Long id);
 
+    List<RoleMenu>getRoleMenuByRoleId(@Param("roleId")Long roleId);
+
     RoleAndMenuDto selectAllRoleAndMenuByRoleId(Long roleId);
 
     List<Map<String, Object>> getUserListRole();
diff --git a/user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RoleManagerServiceImpl.java b/user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RoleManagerServiceImpl.java
index 90affac..d352830 100644
--- a/user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RoleManagerServiceImpl.java
+++ b/user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RoleManagerServiceImpl.java
@@ -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
diff --git a/user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/UserServiceImpl.java b/user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/UserServiceImpl.java
index ddf91db..47b0741 100644
--- a/user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/UserServiceImpl.java
+++ b/user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/UserServiceImpl.java
@@ -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
diff --git a/user-server/src/main/resources/mapper/RoleManangeMapper.xml b/user-server/src/main/resources/mapper/RoleManangeMapper.xml
index 267f62f..f11deab 100644
--- a/user-server/src/main/resources/mapper/RoleManangeMapper.xml
+++ b/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"/>

--
Gitblit v1.9.3