From 08cad817f057c4a10e1ea59e362fbb492f3381df Mon Sep 17 00:00:00 2001
From: Crunchy <3114200645@qq.com>
Date: 星期三, 22 五月 2024 16:14:35 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 cnas-server/src/main/resources/mapper/DeviceMapper.xml                                        |    3 
 cnas-server/src/main/java/com/yuanchu/mom/controller/StandardMethodController.java            |    2 
 cnas-server/src/main/java/com/yuanchu/mom/pojo/Department.java                                |    9 
 user-server/src/main/java/com/yuanchu/mom/pojo/AuthApi.java                                   |   39 ++
 user-server/src/main/java/com/yuanchu/mom/dto/UserPageDto.java                                |    2 
 inspect-server/src/main/resources/mapper/StandardTreeMapper.xml                               |    9 
 user-server/src/main/java/com/yuanchu/mom/pojo/User.java                                      |   30 --
 user-server/src/main/java/com/yuanchu/mom/pojo/Person.java                                    |   36 ++
 framework/src/main/java/com/yuanchu/mom/utils/QueryWrappers.java                              |    3 
 inspect-server/src/main/java/com/yuanchu/mom/pojo/InsUnPass.java                              |    2 
 inspect-server/src/main/java/com/yuanchu/mom/controller/StandardTreeController.java           |   30 ++
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardTreeServiceImpl.java        |    9 
 user-server/src/main/java/com/yuanchu/mom/util/HeaderToken.java                               |  154 +++-------
 inspect-server/src/main/java/com/yuanchu/mom/dto/UnPassPageDto.java                           |    2 
 inspect-server/src/main/java/com/yuanchu/mom/pojo/StandardProductList.java                    |    2 
 inspect-server/src/main/java/com/yuanchu/mom/controller/ReportController.java                 |    2 
 system-run/src/main/resources/application-prod.yml                                            |   44 +-
 user-server/src/main/java/com/yuanchu/mom/controller/CompaniesController.java                 |   39 +-
 inspect-server/src/main/java/com/yuanchu/mom/controller/StandardTemplateController.java       |    2 
 user-server/src/main/resources/mapper/DepartmentsMapper.xml                                   |    4 
 inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java               |    2 
 inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java           |    2 
 user-server/src/main/java/com/yuanchu/mom/service/impl/UserServiceImp.java                    |   77 ++++
 inspect-server/src/main/resources/mapper/InsUnPassMapper.xml                                  |   11 
 cnas-server/src/main/java/com/yuanchu/mom/service/impl/StandardMethodServiceImpl.java         |    2 
 inspect-server/src/main/resources/mapper/StandardProductListMapper.xml                        |   26 +
 inspect-server/src/main/java/com/yuanchu/mom/mapper/StandardProductListMapper.java            |    3 
 user-server/src/main/java/com/yuanchu/mom/service/impl/RoleServiceImp.java                    |    2 
 inspect-server/src/main/java/com/yuanchu/mom/service/InsUnPassService.java                    |    2 
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardProductListServiceImpl.java |   89 +++++-
 user-server/src/main/java/com/yuanchu/mom/service/UserService.java                            |    5 
 user-server/src/main/java/com/yuanchu/mom/dto/Custom.java                                     |    2 
 user-server/src/main/java/com/yuanchu/mom/dto/PersonDto.java                                  |   16 +
 framework/src/main/java/com/yuanchu/mom/config/OpenFifer.java                                 |    8 
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsUnPassServiceImpl.java           |    4 
 inspect-server/src/main/java/com/yuanchu/mom/controller/WarehouseController.java              |    2 
 inspect-server/src/main/java/com/yuanchu/mom/service/StandardProductListService.java          |    5 
 inspect-server/src/main/java/com/yuanchu/mom/mapper/InsUnPassMapper.java                      |    2 
 inspect-server/src/main/java/com/yuanchu/mom/service/StandardTreeService.java                 |    3 
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsReportServiceImpl.java           |    3 
 framework/src/main/java/com/yuanchu/mom/config/Swagger3.java                                  |   10 
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java        |    3 
 framework/src/main/java/com/yuanchu/mom/utils/GiveCode.java                                   |    1 
 inspect-server/src/main/java/com/yuanchu/mom/controller/InsReportController.java              |    6 
 system-run/src/main/resources/application-dev.yml                                             |    3 
 /dev/null                                                                                     |   28 --
 inspect-server/src/main/java/com/yuanchu/mom/controller/InsUnPassController.java              |    4 
 inspect-server/src/main/resources/static/report-template.docx                                 |    0 
 user-server/src/main/java/com/yuanchu/mom/mapper/DepartmentsMapper.java                       |   12 
 user-server/src/main/java/com/yuanchu/mom/pojo/Departments.java                               |   46 +++
 50 files changed, 509 insertions(+), 293 deletions(-)

diff --git a/cnas-server/src/main/java/com/yuanchu/mom/controller/StandardMethodController.java b/cnas-server/src/main/java/com/yuanchu/mom/controller/StandardMethodController.java
index ae92a36..072928d 100644
--- a/cnas-server/src/main/java/com/yuanchu/mom/controller/StandardMethodController.java
+++ b/cnas-server/src/main/java/com/yuanchu/mom/controller/StandardMethodController.java
@@ -14,7 +14,7 @@
 
 import java.util.Map;
 
-@Api("鏍囧噯鏂规硶")
+@Api(tags = "鏍囧噯鏂规硶")
 @RestController
 @RequestMapping("/standardMethod")
 @AllArgsConstructor
diff --git a/cnas-server/src/main/java/com/yuanchu/mom/pojo/Department.java b/cnas-server/src/main/java/com/yuanchu/mom/pojo/Department.java
index 4d846cf..b02685c 100644
--- a/cnas-server/src/main/java/com/yuanchu/mom/pojo/Department.java
+++ b/cnas-server/src/main/java/com/yuanchu/mom/pojo/Department.java
@@ -4,12 +4,13 @@
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
-import java.io.Serializable;
-import java.time.LocalDateTime;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Getter;
 import lombok.Setter;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
 
 /**
  * <p>
@@ -35,13 +36,17 @@
     @ApiModelProperty("鐖剁骇id")
     private Integer fatherId;
 
+    @TableField(fill = FieldFill.INSERT)
     private Integer createUser;
 
     @TableField(fill = FieldFill.INSERT)
     private LocalDateTime createTime;
 
+    @TableField(fill = FieldFill.INSERT_UPDATE)
     private Integer updateUser;
 
     @TableField(fill = FieldFill.INSERT_UPDATE)
     private LocalDateTime updateTime;
+
+    private String companyId;
 }
diff --git a/cnas-server/src/main/java/com/yuanchu/mom/service/impl/StandardMethodServiceImpl.java b/cnas-server/src/main/java/com/yuanchu/mom/service/impl/StandardMethodServiceImpl.java
index d101d18..146faef 100644
--- a/cnas-server/src/main/java/com/yuanchu/mom/service/impl/StandardMethodServiceImpl.java
+++ b/cnas-server/src/main/java/com/yuanchu/mom/service/impl/StandardMethodServiceImpl.java
@@ -42,7 +42,7 @@
 
     @Override
     public List<StandardMethod> selectStandardMethods() {
-        return standardMethodMapper.selectList(Wrappers.<StandardMethod>lambdaQuery().select(StandardMethod::getId,StandardMethod::getCode,StandardMethod::getName));
+        return standardMethodMapper.selectList(Wrappers.<StandardMethod>lambdaQuery().select(StandardMethod::getId,StandardMethod::getCode,StandardMethod::getName).ne(StandardMethod::getId, 0));
     }
 
     @Override
diff --git a/cnas-server/src/main/resources/mapper/DeviceMapper.xml b/cnas-server/src/main/resources/mapper/DeviceMapper.xml
index 721840b..44655bd 100644
--- a/cnas-server/src/main/resources/mapper/DeviceMapper.xml
+++ b/cnas-server/src/main/resources/mapper/DeviceMapper.xml
@@ -93,12 +93,11 @@
     <select id="selectDeviceParameterPage" resultType="com.yuanchu.mom.dto.DeviceDto">
         select * from(
         SELECT
-        d.*, u.name equipmentManagerUser, l.laboratory_name laboratoryName, i.inspection_item insProductItem
+        d.*, u.name equipmentManagerUser, l.laboratory_name laboratoryName
         FROM
         device d
         left join `user` u on u.id = d.equipment_manager
         left join laboratory l on l.id = d.subordinate_departments_id
-        left join ins_product i on i.id = d.ins_product_ids
         ) a
         <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
             ${ew.customSqlSegment}
diff --git a/framework/src/main/java/com/yuanchu/mom/config/OpenFifer.java b/framework/src/main/java/com/yuanchu/mom/config/OpenFifer.java
index ec032d3..1fa10c5 100644
--- a/framework/src/main/java/com/yuanchu/mom/config/OpenFifer.java
+++ b/framework/src/main/java/com/yuanchu/mom/config/OpenFifer.java
@@ -1,16 +1,12 @@
 package com.yuanchu.mom.config;
 
-import cn.hutool.log.Log;
-import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.databind.DeserializationFeature;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.SerializationFeature;
 import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
 import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
 import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.http.converter.HttpMessageConverter;
 import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
@@ -63,8 +59,8 @@
 
     @Override
     protected void addInterceptors(InterceptorRegistry registry) {
-//        registry.addInterceptor(fiferConfig).addPathPatterns("/**");
-//        registry.addInterceptor(powerConfig).addPathPatterns("/**");
+        registry.addInterceptor(fiferConfig).addPathPatterns("/**");
+        registry.addInterceptor(powerConfig).addPathPatterns("/**");
         registry.addInterceptor(logConfig).addPathPatterns("/**");
         super.addInterceptors(registry);
     }
diff --git a/framework/src/main/java/com/yuanchu/mom/config/Swagger3.java b/framework/src/main/java/com/yuanchu/mom/config/Swagger3.java
index 1156d4d..e6cba12 100644
--- a/framework/src/main/java/com/yuanchu/mom/config/Swagger3.java
+++ b/framework/src/main/java/com/yuanchu/mom/config/Swagger3.java
@@ -34,15 +34,15 @@
         // 鐢ˋpiInfoBuilder杩涜瀹氬埗
         return new ApiInfoBuilder()
                 // 璁剧疆鏍囬
-                .title("OMS")
+                .title("LIMS")
                 // 鎻忚堪
-                .description("OMS绯荤粺")
+                .description("瀹為獙瀹ょ鐞嗙郴缁�")
                 // 浣滆�呬俊鎭�
-                .contact(new Contact("榈烽洀", null, null))
+                .contact(new Contact("榈烽洀缃戠粶绉戞妧", null, null))
                 // 鐗堟湰
-                .version("鐗堟湰鍙�:V1.0")
+                .version("鐗堟湰鍙凤細V1.0")
                 //鍗忚
-                .license("The Apache License")
+                .license("鍟嗕笟椤圭洰")
                 //鍗忚url
                 .licenseUrl("http://www.baidu.com")
                 .build();
diff --git a/framework/src/main/java/com/yuanchu/mom/utils/GiveCode.java b/framework/src/main/java/com/yuanchu/mom/utils/GiveCode.java
index 62a181b..4f60117 100644
--- a/framework/src/main/java/com/yuanchu/mom/utils/GiveCode.java
+++ b/framework/src/main/java/com/yuanchu/mom/utils/GiveCode.java
@@ -1,7 +1,6 @@
 package com.yuanchu.mom.utils;
 
 import com.yuanchu.mom.mapper.SystemLogMapper;
-import lombok.Builder;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
diff --git a/framework/src/main/java/com/yuanchu/mom/utils/QueryWrappers.java b/framework/src/main/java/com/yuanchu/mom/utils/QueryWrappers.java
index 8a3998f..4639e15 100644
--- a/framework/src/main/java/com/yuanchu/mom/utils/QueryWrappers.java
+++ b/framework/src/main/java/com/yuanchu/mom/utils/QueryWrappers.java
@@ -69,5 +69,4 @@
 //        System.out.println(wrapper.getExpression().getSqlSegment());
         return wrapper;
     }
-
-}
+}
\ No newline at end of file
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java b/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java
index 22fd71f..97f0ff1 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java
@@ -31,7 +31,7 @@
 @RestController
 @AllArgsConstructor
 @RequestMapping("/insOrder")
-@Api("妫�楠屽崟妯″潡")
+@Api(tags="妫�楠屽崟妯″潡")
 public class InsOrderController {
 
     private InsOrderService insOrderService;
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java b/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java
index 44a38a5..18c32af 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java
@@ -23,7 +23,7 @@
  */
 @RestController
 @RequestMapping("/insOrderPlan")
-@Api("/妫�楠屼换鍔�")
+@Api(tags = "妫�楠屼换鍔�")
 @AllArgsConstructor
 public class InsOrderPlanController {
 
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/controller/InsReportController.java b/inspect-server/src/main/java/com/yuanchu/mom/controller/InsReportController.java
index ae91318..12ba4ff 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/controller/InsReportController.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/controller/InsReportController.java
@@ -4,7 +4,6 @@
 import cn.hutool.http.HttpUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.yuanchu.mom.annotation.ValueAuth;
 import com.yuanchu.mom.annotation.ValueClassify;
 import com.yuanchu.mom.dto.ReportPageDto;
 import com.yuanchu.mom.exception.ErrorException;
@@ -30,8 +29,7 @@
 
 @RestController
 @RequestMapping("/insReport")
-//@AllArgsConstructor
-@Api("妫�楠屾姤鍛�")
+@Api(tags = "妫�楠屾姤鍛�")
 public class InsReportController {
 
     @Resource
@@ -49,9 +47,9 @@
         return Result.success(insReportService.pageInsReport(page, reportPageDto));
     }
 
+    @ValueClassify("鎶ュ憡缂栧埗")
     @ApiOperation(value = "鎶ュ憡涓婁紶")
     @PostMapping("/inReport")
-    @ValueAuth
     public Result inReport(MultipartFile file, Integer id) {
         String urlString;
         String pathName;
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/controller/InsUnPassController.java b/inspect-server/src/main/java/com/yuanchu/mom/controller/InsUnPassController.java
index e379da7..2822d73 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/controller/InsUnPassController.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/controller/InsUnPassController.java
@@ -23,7 +23,7 @@
  */
 @RestController
 @RequestMapping("/unPass")
-@Api("/涓嶅悎鏍肩鐞�")
+@Api(tags = "涓嶅悎鏍肩鐞�")
 @AllArgsConstructor
 public class InsUnPassController {
     @Resource
@@ -37,4 +37,4 @@
         UnPassPageDto unPassPageDto = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), UnPassPageDto.class);
         return Result.success(insUnPassService.pageInsUnPass(page, unPassPageDto));
     }
-}
+}
\ No newline at end of file
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/controller/ReportController.java b/inspect-server/src/main/java/com/yuanchu/mom/controller/ReportController.java
index c03cc3f..b3936d4 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/controller/ReportController.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/controller/ReportController.java
@@ -16,7 +16,7 @@
 @RestController
 @AllArgsConstructor
 @RequestMapping("/report")
-@Api("鎶ヨ〃妯″潡")
+@Api(tags = "鎶ヨ〃妯″潡")
 public class ReportController {
 
     private ReportService reportService;
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/controller/StandardTemplateController.java b/inspect-server/src/main/java/com/yuanchu/mom/controller/StandardTemplateController.java
index 4ea2dbb..311068a 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/controller/StandardTemplateController.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/controller/StandardTemplateController.java
@@ -17,7 +17,7 @@
 @RequestMapping("/StandardTemplate")
 @RestController
 @AllArgsConstructor
-@Api("鍘熷璁板綍妯℃澘")
+@Api(tags = "鍘熷璁板綍妯℃澘")
 public class StandardTemplateController {
 
     private StandardTemplateService standardTemplateService;
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/controller/StandardTreeController.java b/inspect-server/src/main/java/com/yuanchu/mom/controller/StandardTreeController.java
index d5ea19c..52d84ba 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/controller/StandardTreeController.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/controller/StandardTreeController.java
@@ -11,13 +11,19 @@
 import com.yuanchu.mom.service.StandardProductListService;
 import com.yuanchu.mom.service.StandardTreeService;
 import com.yuanchu.mom.vo.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.Map;
+
 @RestController
 @AllArgsConstructor
 @RequestMapping("/standardTree")
+@Api(tags="鏍囧噯搴�")
 public class StandardTreeController {
 
     private StandardTreeService standardTreeService;
@@ -103,6 +109,20 @@
         return Result.success(standardProductListService.selectStandardProductListByMethodId(id, tree, page));
     }
 
+    @ApiOperation(value = "鎵归噺缂栬緫鏌ヨ妫�楠岄」鐩�")
+    @PostMapping("/selectStandardProductByMethodId")
+    @ValueAuth
+    public Result selectStandardProductByMethodId(Integer id, String tree, Integer page,String laboratory,String item,String items){
+        return Result.success(standardProductListService.selectStandardProductByMethodId(id, tree, page, laboratory, item, items));
+    }
+
+    @ApiOperation(value = "鎵归噺缂栬緫鏌ヨ鎵�鏈夋楠岄」鐩拰妫�楠屽瓙椤规灇涓�")
+    @PostMapping("/selectStandardProductEnumByMethodId")
+    @ValueAuth
+    public Result selectStandardProductEnumByMethodId(Integer id, String tree){
+        return Result.success(standardProductListService.selectStandardProductEnumByMethodId(id, tree));
+    }
+
     @ApiOperation(value = "鑾峰彇鏍囧噯鏍戜笅鏍囧噯鏂规硶鏋氫妇")
     @GetMapping("/selectStandardMethodEnum")
     @ValueAuth
@@ -117,4 +137,14 @@
         return Result.success(standardTreeService.getStandardTree2());
     }
 
+    @ValueClassify("鏍囧噯搴�")
+    @ApiOperation(value = "鎵归噺淇敼椤圭洰鍐呭")
+    @PostMapping("/upStandardProducts")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "standardProductList",dataTypeClass = StandardProductList.class),
+            @ApiImplicitParam(name = "ids",dataTypeClass = Integer.class)
+    })
+    public Result upStandardProducts(@RequestBody Map<String, Object> product){
+        return Result.success(standardTreeService.upStandardProducts(product));
+    }
 }
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/controller/WarehouseController.java b/inspect-server/src/main/java/com/yuanchu/mom/controller/WarehouseController.java
index 94c7a67..7aa68e5 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/controller/WarehouseController.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/controller/WarehouseController.java
@@ -16,7 +16,7 @@
 @RequestMapping("/warehouse")
 @RestController
 @AllArgsConstructor
-@Api("鏍峰搧浠撳簱")
+@Api(tags = "鏍峰搧绠$悊")
 public class WarehouseController {
 
     private WarehouseService warehouseService;
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/dto/UnPassPageDto.java b/inspect-server/src/main/java/com/yuanchu/mom/dto/UnPassPageDto.java
index d22aa34..8581e60 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/dto/UnPassPageDto.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/dto/UnPassPageDto.java
@@ -12,4 +12,4 @@
 @Data
 public class UnPassPageDto extends InsUnPass implements Serializable {
 
-}
+}
\ No newline at end of file
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsUnPassMapper.java b/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsUnPassMapper.java
index 1f0990d..c5d4d62 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsUnPassMapper.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsUnPassMapper.java
@@ -12,4 +12,4 @@
  */
 public interface InsUnPassMapper extends BaseMapper<InsUnPass> {
     IPage<UnPassPageDto> pageInsUnPass(IPage<UnPassPageDto> page, QueryWrapper<UnPassPageDto> ew);
-}
+}
\ No newline at end of file
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/mapper/StandardProductListMapper.java b/inspect-server/src/main/java/com/yuanchu/mom/mapper/StandardProductListMapper.java
index 5247bc5..3d5d0bf 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/mapper/StandardProductListMapper.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/mapper/StandardProductListMapper.java
@@ -1,5 +1,6 @@
 package com.yuanchu.mom.mapper;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.yuanchu.mom.pojo.StandardProductList;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
@@ -11,6 +12,8 @@
 */
 public interface StandardProductListMapper extends BaseMapper<StandardProductList> {
 
+    IPage<StandardProductList> standardProductListIPage(Integer id, String tree, IPage<StandardProductList> iPage, String laboratory, String item, String items);
+
 }
 
 
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsUnPass.java b/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsUnPass.java
index c1fcdd0..869393d 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsUnPass.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsUnPass.java
@@ -37,7 +37,7 @@
      * 妫�娴嬮」
      */
     @ValueTableShow(value = 4, name = "妫�娴嬮」")
-    private String inspectionItems;
+    private String inspectionItem;
     /**
      * 妫�娴嬪瓙椤�
      */
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/pojo/StandardProductList.java b/inspect-server/src/main/java/com/yuanchu/mom/pojo/StandardProductList.java
index 82b2d4b..4df0458 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/pojo/StandardProductList.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/pojo/StandardProductList.java
@@ -177,4 +177,6 @@
     private String dic;
 
     private String tree;
+
+    private Integer structureItemParameterId;
 }
\ No newline at end of file
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/InsUnPassService.java b/inspect-server/src/main/java/com/yuanchu/mom/service/InsUnPassService.java
index fba17e5..198a274 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/InsUnPassService.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/InsUnPassService.java
@@ -11,4 +11,4 @@
  */
 public interface InsUnPassService {
     Map<String, Object> pageInsUnPass(Page page, UnPassPageDto unPassPageDto);
-}
+}
\ No newline at end of file
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/StandardProductListService.java b/inspect-server/src/main/java/com/yuanchu/mom/service/StandardProductListService.java
index 5539cd5..0825375 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/StandardProductListService.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/StandardProductListService.java
@@ -1,6 +1,7 @@
 package com.yuanchu.mom.service;
 
 import com.alibaba.fastjson.JSONArray;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.yuanchu.mom.pojo.InsSample;
 import com.yuanchu.mom.pojo.StandardProductList;
@@ -23,4 +24,8 @@
 
     Map<String, Object> selectStandardProductListByMethodId(Integer id, String tree, Integer page);
 
+    IPage<StandardProductList> selectStandardProductByMethodId(Integer id, String tree, Integer page, String laboratory, String item, String items);
+
+    Map<String, List<?>> selectStandardProductEnumByMethodId(Integer id, String tree);
+
 }
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/StandardTreeService.java b/inspect-server/src/main/java/com/yuanchu/mom/service/StandardTreeService.java
index cdff842..2805ef6 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/StandardTreeService.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/StandardTreeService.java
@@ -6,6 +6,7 @@
 import com.yuanchu.mom.pojo.StandardTree;
 
 import java.util.List;
+import java.util.Map;
 
 /**
 * @author Administrator
@@ -24,4 +25,6 @@
 
     List<SampleTypeDto> getStandardTree2();
 
+    int upStandardProducts(Map<String, Object> product);
+
 }
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java
index cb1ce57..887f325 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java
@@ -594,6 +594,9 @@
             }catch (Exception e){
                 throw new ErrorException("鎵句笉鍒版楠屼汉鐨勭鍚�");
             }
+            if(signatureUrl == null || "".equals(signatureUrl)){
+                throw new ErrorException("鎵句笉鍒版楠屼汉鐨勭鍚�");
+            }
             XWPFTemplate template = XWPFTemplate.compile(url, builder.build()).render(
                     new HashMap<String, Object>() {{
                         put("order", insOrder);
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsReportServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsReportServiceImpl.java
index 4d1bf27..ea79da8 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsReportServiceImpl.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsReportServiceImpl.java
@@ -171,8 +171,9 @@
             String laboratory = insOrderMapper.selectById(insReport.getInsOrderId()).getLaboratory();
             sealUrl = insReportMapper.getLaboratoryByName(laboratory);
         }catch (Exception e){
-            throw new ErrorException("鎵句笉鍒版姤鍛婄珷鍗�");
+            throw new ErrorException("鎵句笉鍒版姤鍛婁笓鐢ㄧ珷");
         }
+        if(sealUrl==null) throw new ErrorException("鎵句笉鍒版姤鍛婁笓鐢ㄧ珷");
         //绯荤粺鐢熸垚鎶ュ憡鍦板潃
         String url = insReport.getUrl();
         //鎵嬪姩涓婁紶鎶ュ憡鍦板潃
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsUnPassServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsUnPassServiceImpl.java
index 19bf21e..5c6ad2e 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsUnPassServiceImpl.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsUnPassServiceImpl.java
@@ -30,7 +30,9 @@
     public Map<String, Object> pageInsUnPass(Page page, UnPassPageDto unPassPageDto) {
         Map<String, Object> map = new HashMap<>();
         map.put("head", PrintChina.printChina(UnPassPageDto.class));
+//        Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("pageInsUnPass");
+//        if (map1.get("look") == 1) unPassPageDto.setCreateUser(map1.get("userId"));
         map.put("body", insUnPassMapper.pageInsUnPass(page, QueryWrappers.queryWrappers(unPassPageDto)));
         return map;
     }
-}
+}
\ No newline at end of file
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardProductListServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardProductListServiceImpl.java
index 660938b..4fdd84c 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardProductListServiceImpl.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardProductListServiceImpl.java
@@ -2,7 +2,9 @@
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 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.mom.common.GetLook;
 import com.yuanchu.mom.mapper.StandardProductListMapper;
@@ -40,6 +42,9 @@
 
     @Override
     public int upStandardProductList(StandardProductList list) {
+        /*if(list.getId()==null || list.getId().equals("")){
+
+        }*/
         return standardProductListMapper.updateById(list);
     }
 
@@ -52,6 +57,9 @@
     public List<StandardProductList> selectStandardProductList(InsSample insSample) {
         String[] models = insSample.getModel().split("-(?=[^-]*$)");//鎷嗗垎鏈�鍚庝竴涓��-銆�
         List<StandardProductList> list = standardProductListMapper.selectList(Wrappers.<StandardProductList>lambdaQuery().eq(StandardProductList::getStandardMethodListId, insSample.getStandardMethodListId()).eq(StandardProductList::getState, 1).eq(StandardProductList::getModel, models[0]));
+        if (list.size() == 0) {
+            list = standardProductListMapper.selectList(Wrappers.<StandardProductList>lambdaQuery().eq(StandardProductList::getStandardMethodListId, insSample.getStandardMethodListId()).eq(StandardProductList::getState, 1));
+        }
         list = list.stream().filter(a -> {
             try {
                 if (a.getSection() != null && !Objects.equals(a.getSection(), "")) {
@@ -61,7 +69,7 @@
                     List<String> manHours = JSON.parseArray(a.getManHour(), String.class);
                     List<String> prices = JSON.parseArray(a.getPrice(), String.class);
                     boolean isIf = false;
-                    for (int i = 0;i<sections.size();i++){
+                    for (int i = 0; i < sections.size(); i++) {
                         if (sections.get(i).contains("&")) {
                             String[] split = sections.get(i).split("&");
                             isIf = new BigDecimal(models[1]).compareTo(new BigDecimal(split[0])) > -1 && new BigDecimal(models[1]).compareTo(new BigDecimal(split[1])) < 1;
@@ -81,7 +89,7 @@
                             String param = sections.get(i).replace("=", "");
                             isIf = new BigDecimal(models[1]).compareTo(new BigDecimal(param)) == 0;
                         }
-                        if(isIf) {
+                        if (isIf) {
                             a.setSection(sections.get(i));
                             a.setAsk(asks.get(i));
                             a.setTell(tells.get(i));
@@ -106,14 +114,29 @@
         List<StandardProductList> list = new ArrayList<>();
         if (trees.length == 3) {
             List<StandardTree> treeList = standardTreeMapper.selectList(Wrappers.<StandardTree>lambdaQuery().eq(StandardTree::getLaboratory, trees[1]).eq(StandardTree::getSampleType, trees[2]));
+            if (treeList.size() == 0) {
+                StandardTree standardTree = new StandardTree();
+                standardTree.setFactory(trees[0]);
+                standardTree.setLaboratory(trees[1]);
+                standardTree.setSampleType(trees[2]);
+                treeList.add(standardTree);
+            }
             for (StandardTree standardTree : treeList) {
-                String str = tree+" - "+standardTree.getSample()+" - "+standardTree.getModel();
+                String str = tree + " - " + standardTree.getSample() + " - " + standardTree.getModel();
                 list.addAll(standardTreeMapper.selectStandardProductListByTree3("\"" + trees[2] + "\"", standardTree.getSample(), standardTree.getModel(), str));
             }
-        } else if (trees.length == 4){
+        } else if (trees.length == 4) {
             List<StandardTree> treeList = standardTreeMapper.selectList(Wrappers.<StandardTree>lambdaQuery().eq(StandardTree::getLaboratory, trees[1]).eq(StandardTree::getSampleType, trees[2]).eq(StandardTree::getSample, trees[3]));
+            if (treeList.size() == 0) {
+                StandardTree standardTree = new StandardTree();
+                standardTree.setFactory(trees[0]);
+                standardTree.setLaboratory(trees[1]);
+                standardTree.setSampleType(trees[2]);
+                standardTree.setSample(trees[2]);
+                treeList.add(standardTree);
+            }
             for (StandardTree standardTree : treeList) {
-                String str = tree+" - "+standardTree.getModel();
+                String str = tree + " - " + standardTree.getModel();
                 list.addAll(standardTreeMapper.selectStandardProductListByTree("\"" + trees[2] + "\"", standardTree.getSample(), standardTree.getModel(), str));
                 list.addAll(standardTreeMapper.selectStandardProductListByTree2("\"" + trees[2] + "\",\"" + trees[3] + "\"", standardTree.getSample(), standardTree.getModel(), str));
             }
@@ -125,38 +148,42 @@
         for (StandardProductList sp : standardProductLists) {
             for (StandardProductList pl : list) {
                 if (Objects.equals(sp.getInspectionItem(), pl.getInspectionItem())
-                        && Objects.equals(sp.getInspectionItemSubclass(), pl.getInspectionItemSubclass())
-                        && Objects.equals(sp.getModel(), pl.getModel())) {
+                        && Objects.equals(sp.getInspectionItemSubclass() == null ? "" : sp.getInspectionItemSubclass(), pl.getInspectionItemSubclass() == null ? "" : pl.getInspectionItemSubclass())
+                        && Objects.equals(sp.getModel(), pl.getModel()) && Objects.equals(sp.getStructureItemParameterId(), pl.getStructureItemParameterId())) {
                     pl.setId(sp.getId());
-                    pl.setState(id==0?1:sp.getState());
+                    if (sp.getState() != null && !sp.getState().equals("")) {
+                        pl.setState(sp.getState());
+                    } else {
+                        pl.setState(id == 0 ? 1 : 0);
+                    }
                     pl.setMethodS(sp.getMethodS());
-                    if(sp.getAsk()!=null&&!sp.getAsk().equals("")){
+                    if (sp.getAsk() != null && !sp.getAsk().equals("")) {
                         pl.setAsk(sp.getAsk());
                     }
-                    if(sp.getTell()!=null&&!sp.getTell().equals("")){
+                    if (sp.getTell() != null && !sp.getTell().equals("")) {
                         pl.setTell(sp.getTell());
                     }
-                    if(sp.getPrice()!=null&&!sp.getPrice().equals("")){
+                    if (sp.getPrice() != null && !sp.getPrice().equals("")) {
                         pl.setPrice(sp.getPrice());
                     }
-                    if(sp.getManHour()!=null&&!sp.getManHour().equals("")){
+                    if (sp.getManHour() != null && !sp.getManHour().equals("")) {
                         pl.setManHour(sp.getManHour());
                     }
-                    if(sp.getSection()!=null&&!sp.getSection().equals("")){
+                    if (sp.getSection() != null && !sp.getSection().equals("")) {
                         pl.setSection(sp.getSection());
                     }
-                    if(sp.getTemplateId()!=null&&!sp.getTemplateId().equals("")){
+                    if (sp.getTemplateId() != null && !sp.getTemplateId().equals("")) {
                         pl.setTemplateId(sp.getTemplateId());
                     }
                     break;
                 }
             }
         }
-        if(page == 1){
+        if (page == 1) {
             Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
             CompletableFuture.supplyAsync(() -> {
                 standardProductListMapper.delete(Wrappers.<StandardProductList>lambdaUpdate().eq(StandardProductList::getStandardMethodListId, id).like(StandardProductList::getTree, tree));
-                standardProductListService2.saveBatch(list.stream().map(a->{
+                standardProductListService2.saveBatch(list.stream().map(a -> {
                     a.setFactory(trees[0]);
                     a.setLaboratory(trees[1]);
                     a.setSampleType(trees[2]);
@@ -174,13 +201,37 @@
         }
         Map<String, Object> map = new HashMap<>();
         try {
-            map.put("productList", list.subList((page - 1)*50, page * 50));
-        }catch (IndexOutOfBoundsException e){
-            map.put("productList", list.subList((page - 1)*50, list.size()));
+            map.put("productList", list.subList((page - 1) * 50, page * 50));
+        } catch (IndexOutOfBoundsException e) {
+            map.put("productList", list.subList((page - 1) * 50, list.size()));
         }
         map.put("total", list.size());
         return map;
     }
+
+    @Override
+    public IPage<StandardProductList> selectStandardProductByMethodId(Integer id, String tree, Integer page, String laboratory, String item, String items) {
+        IPage<StandardProductList> iPage = new Page<>();
+        iPage.setSize(100);
+        iPage.setCurrent(page);
+        return standardProductListMapper.standardProductListIPage(id, tree, iPage, laboratory, item, items);
+    }
+
+    @Override
+    public Map<String, List<?>> selectStandardProductEnumByMethodId(Integer id, String tree) {
+        HashMap<String, List<?>> map = new HashMap<>();
+        map.put("item", standardProductListMapper.selectList(Wrappers.<StandardProductList>lambdaQuery()
+                .eq(StandardProductList::getStandardMethodListId, id)
+                .like(StandardProductList::getTree, tree)
+                .select(StandardProductList::getInspectionItem)
+                .groupBy(StandardProductList::getInspectionItem)));
+        map.put("items", standardProductListMapper.selectList(Wrappers.<StandardProductList>lambdaQuery()
+                .eq(StandardProductList::getStandardMethodListId, id)
+                .like(StandardProductList::getTree, tree)
+                .select(StandardProductList::getInspectionItemSubclass)
+                .groupBy(StandardProductList::getInspectionItemSubclass)));
+        return map;
+    }
 }
 
 
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardTreeServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardTreeServiceImpl.java
index 0654d4a..1fe8cf3 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardTreeServiceImpl.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardTreeServiceImpl.java
@@ -19,6 +19,7 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author Administrator
@@ -109,6 +110,14 @@
         return standardTreeMapper.getStandardTree2();
     }
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int upStandardProducts(Map<String, Object> product) {
+        List<Integer> ids = JSON.parseArray(JSON.toJSONString(product.get("ids")));
+        StandardProductList productList = JSON.parseObject(JSON.toJSONString(product.get("standardProductList")), StandardProductList.class);
+        standardProductListMapper.update(productList, Wrappers.<StandardProductList>lambdaUpdate().in(StandardProductList::getId, ids));
+        return 1;
+    }
 }
 
 
diff --git a/inspect-server/src/main/resources/mapper/InsUnPassMapper.xml b/inspect-server/src/main/resources/mapper/InsUnPassMapper.xml
index 88c5d45..d67f656 100644
--- a/inspect-server/src/main/resources/mapper/InsUnPassMapper.xml
+++ b/inspect-server/src/main/resources/mapper/InsUnPassMapper.xml
@@ -6,7 +6,7 @@
     <resultMap id="BaseResultMap" type="com.yuanchu.mom.pojo.InsUnPass">
             <id property="id" column="id" jdbcType="INTEGER"/>
             <result property="sample" column="sample" jdbcType="VARCHAR"/>
-            <result property="inspectionItems" column="inspection_items" jdbcType="VARCHAR"/>
+            <result property="inspectionItem" column="inspection_item" jdbcType="VARCHAR"/>
             <result property="inspectionItemSubclass" column="inspection_item_subclass" jdbcType="VARCHAR"/>
             <result property="lastValue" column="last_value" jdbcType="VARCHAR"/>
             <result property="model" column="model" jdbcType="VARCHAR"/>
@@ -19,7 +19,10 @@
             <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
     </resultMap>
     <select id="pageInsUnPass" resultType="com.yuanchu.mom.dto.UnPassPageDto">
-        select *
-        from ins_un_pass iu
+        SELECT * FROM
+            ins_un_pass iu
+        <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
+            ${ew.customSqlSegment}
+        </if>
     </select>
-</mapper>
+</mapper>
\ No newline at end of file
diff --git a/inspect-server/src/main/resources/mapper/StandardProductListMapper.xml b/inspect-server/src/main/resources/mapper/StandardProductListMapper.xml
index dfdbe58..5735cfd 100644
--- a/inspect-server/src/main/resources/mapper/StandardProductListMapper.xml
+++ b/inspect-server/src/main/resources/mapper/StandardProductListMapper.xml
@@ -16,10 +16,8 @@
             <result property="manHourGroup" column="man_hour_group" jdbcType="VARCHAR"/>
             <result property="inspectionItemType" column="inspection_item_type" jdbcType="VARCHAR"/>
             <result property="inspectionValueType" column="inspection_value_type" jdbcType="VARCHAR"/>
-            <result property="deviceGroup" column="device_group" jdbcType="VARCHAR"/>
             <result property="checkoutNumber" column="checkout_number" jdbcType="INTEGER"/>
             <result property="section" column="section" jdbcType="VARCHAR"/>
-            <result property="valueType" column="value_type" jdbcType="VARCHAR"/>
             <result property="method" column="method" jdbcType="VARCHAR"/>
             <result property="manDay" column="man_day" jdbcType="INTEGER"/>
             <result property="bsm" column="bsm" jdbcType="VARCHAR"/>
@@ -31,14 +29,18 @@
             <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
     </resultMap>
 
-    <sql id="Base_Column_List">
-        id,inspection_item,inspection_item_classify,
-        inspection_item_subclass,laboratory,unit,
-        price,man_hour,man_hour_group,
-        inspection_item_type,inspection_value_type,device_group,
-        checkout_number,section,value_type,
-        method,man_day,bsm,
-        ask,standard_method_list_id,create_user,
-        update_user,create_time,update_time
-    </sql>
+    <select id="standardProductListIPage" resultType="com.yuanchu.mom.pojo.StandardProductList">
+        select * from `center-lims`.standard_product_list
+        where standard_method_list_id = #{id}
+        and tree like concat('%',#{tree},'%')
+        <if test="laboratory != ''">
+            and son_laboratory = #{laboratory}
+        </if>
+        <if test="item != ''">
+            and inspection_item = #{item}
+        </if>
+        <if test="items != ''">
+            and inspection_item_subclass = #{items}
+        </if>
+    </select>
 </mapper>
diff --git a/inspect-server/src/main/resources/mapper/StandardTreeMapper.xml b/inspect-server/src/main/resources/mapper/StandardTreeMapper.xml
index 23b0adc..ce4a5cc 100644
--- a/inspect-server/src/main/resources/mapper/StandardTreeMapper.xml
+++ b/inspect-server/src/main/resources/mapper/StandardTreeMapper.xml
@@ -157,7 +157,8 @@
                0 state,
                #{model} model,
                #{sample} sample,
-               #{trees} tree
+               #{trees} tree,
+               id structure_item_parameter_id
         from structure_item_parameter
         where (
                       sample is NULL
@@ -193,7 +194,8 @@
                0 state,
                #{model} model,
                #{sample} sample,
-               #{trees} tree
+               #{trees} tree,
+               id structure_item_parameter_id
         from structure_item_parameter
         where sample LIKE CONCAT('%[', #{tree}, ']%')
     </select>
@@ -233,7 +235,8 @@
                0 state,
                #{model} model,
                #{sample} sample,
-               #{trees} tree
+               #{trees} tree,
+               id structure_item_parameter_id
         from structure_item_parameter
         where (
                       sample is NULL
diff --git a/inspect-server/src/main/resources/static/report-template.docx b/inspect-server/src/main/resources/static/report-template.docx
index 8d3e75d..56fcb57 100644
--- a/inspect-server/src/main/resources/static/report-template.docx
+++ b/inspect-server/src/main/resources/static/report-template.docx
Binary files differ
diff --git a/system-run/src/main/resources/application-dev.yml b/system-run/src/main/resources/application-dev.yml
index 6892d1f..13e6c40 100644
--- a/system-run/src/main/resources/application-dev.yml
+++ b/system-run/src/main/resources/application-dev.yml
@@ -37,9 +37,8 @@
   datasource:
     type: com.alibaba.druid.pool.DruidDataSource
     driverClassName: com.mysql.cj.jdbc.Driver
-    #url: jdbc:mysql://localhost:3306/center_lims?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
-#    url: jdbc:mysql://114.132.189.42:9004/center-lims?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
     url: jdbc:mysql://localhost:3306/center-lims?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
+#    url: jdbc:mysql://114.132.189.42:9004/center-lims?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
     username: root
     password: 123456
     druid:
diff --git a/system-run/src/main/resources/application-prod.yml b/system-run/src/main/resources/application-prod.yml
index a911969..6f50888 100644
--- a/system-run/src/main/resources/application-prod.yml
+++ b/system-run/src/main/resources/application-prod.yml
@@ -54,26 +54,24 @@
       filters: stat,wall,log4j # 閰嶇疆鐩戞帶缁熻鎷︽埅鐨刦ilters锛屽幓鎺夊悗鐩戞帶鐣岄潰sql鏃犳硶缁熻锛�'wall'鐢ㄤ簬闃茬伀澧�
       useGlobalDataSourceStat: true #鍚堝苟澶氫釜DruidDatasource鐨勭洃鎺ф暟鎹�
       connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500; #閫氳繃connectProperties灞炴�ф潵鎵撳紑mergesql鍔熻兘缃楁參sQL璁板綍
-
-redis:
-  # redis鏁版嵁搴撶储寮�(榛樿涓�0)锛屾垜浠娇鐢ㄧ储寮曚负3鐨勬暟鎹簱锛岄伩鍏嶅拰鍏朵粬鏁版嵁搴撳啿绐�
-  database: 0
-  # redis鏈嶅姟鍣ㄥ湴鍧�锛堥粯璁や负loaclhost锛�
-  host: 127.0.0.1
-  # redis绔彛锛堥粯璁や负6379锛�
-  port: 6379
-  # redis璁块棶瀵嗙爜锛堥粯璁や负绌猴級
-  password: root2022
-  # redis杩炴帴瓒呮椂鏃堕棿锛堝崟浣嶆绉掞級
-  timeout: 20
-  # redis杩炴帴姹犻厤缃�
-  pool:
-    # 鏈�澶у彲鐢ㄨ繛鎺ユ暟锛堥粯璁や负8锛岃礋鏁拌〃绀烘棤闄愶級
-    max-active: 8
-    # 鏈�澶х┖闂茶繛鎺ユ暟锛堥粯璁や负8锛岃礋鏁拌〃绀烘棤闄愶級
-    max-idle: 8
-    # 鏈�灏忕┖闂茶繛鎺ユ暟锛堥粯璁や负0锛岃鍊煎彧鏈変负姝f暟鎵嶆湁鐢級
-    min-idle: 0
-    # 浠庤繛鎺ユ睜涓幏鍙栬繛鎺ユ渶澶х瓑寰呮椂闂达紙榛樿涓�-1锛屽崟浣嶄负姣锛岃礋鏁拌〃绀烘棤闄愶級
-    max-wait: -1
-
+  redis:
+    # redis鏁版嵁搴撶储寮�(榛樿涓�0)锛屾垜浠娇鐢ㄧ储寮曚负3鐨勬暟鎹簱锛岄伩鍏嶅拰鍏朵粬鏁版嵁搴撳啿绐�
+    database: 0
+    # redis鏈嶅姟鍣ㄥ湴鍧�锛堥粯璁や负loaclhost锛�
+    host: 127.0.0.1
+    # redis绔彛锛堥粯璁や负6379锛�
+    port: 6379
+    # redis璁块棶瀵嗙爜锛堥粯璁や负绌猴級
+    password: root2022
+    # redis杩炴帴瓒呮椂鏃堕棿锛堝崟浣嶆绉掞級
+    timeout: 20
+    # redis杩炴帴姹犻厤缃�
+    pool:
+      # 鏈�澶у彲鐢ㄨ繛鎺ユ暟锛堥粯璁や负8锛岃礋鏁拌〃绀烘棤闄愶級
+      max-active: 8
+      # 鏈�澶х┖闂茶繛鎺ユ暟锛堥粯璁や负8锛岃礋鏁拌〃绀烘棤闄愶級
+      max-idle: 8
+      # 鏈�灏忕┖闂茶繛鎺ユ暟锛堥粯璁や负0锛岃鍊煎彧鏈変负姝f暟鎵嶆湁鐢級
+      min-idle: 0
+      # 浠庤繛鎺ユ睜涓幏鍙栬繛鎺ユ渶澶х瓑寰呮椂闂达紙榛樿涓�-1锛屽崟浣嶄负姣锛岃礋鏁拌〃绀烘棤闄愶級
+      max-wait: -1
\ No newline at end of file
diff --git a/user-server/src/main/java/com/yuanchu/mom/controller/CompaniesController.java b/user-server/src/main/java/com/yuanchu/mom/controller/CompaniesController.java
index 73bb8e9..08729b4 100644
--- a/user-server/src/main/java/com/yuanchu/mom/controller/CompaniesController.java
+++ b/user-server/src/main/java/com/yuanchu/mom/controller/CompaniesController.java
@@ -1,37 +1,48 @@
 package com.yuanchu.mom.controller;
 
-import cn.hutool.http.HttpRequest;
-import cn.hutool.http.HttpResponse;
-import cn.hutool.http.HttpUtil;
 import com.yuanchu.mom.annotation.ValueAuth;
-import com.yuanchu.mom.pojo.AuthApi;
+import com.yuanchu.mom.annotation.ValueClassify;
+import com.yuanchu.mom.dto.PersonDto;
 import com.yuanchu.mom.pojo.Company;
+import com.yuanchu.mom.service.UserService;
 import com.yuanchu.mom.util.HeaderToken;
 import com.yuanchu.mom.vo.Result;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.Authorization;
 import lombok.AllArgsConstructor;
-import org.springframework.beans.factory.annotation.Autowired;
-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 java.util.List;
 
 @RestController
 @AllArgsConstructor
 @RequestMapping("/companies")
-@Api("缁勭粐妯″潡")
+@Api(tags="鐢ㄦ埛妯″潡")
 public class CompaniesController {
 
-    @Autowired
     private HeaderToken headerToken;
 
-    @ValueAuth
-    @ApiOperation(value = "鑾峰彇缁勭粐鍒楄〃")
+    private UserService userService;
+
+    @ValueClassify("鐢ㄦ埛绠$悊")
+    @ApiOperation(value = "鑾峰彇浜轰簨绯荤粺缁勭粐鏋舵瀯")
     @GetMapping(value = "/selectCompaniesList")
-    public Result<List<Company>> selectcompaniesList(){
+    public Result<List<Company>> selectCompaniesList() {
         return Result.success(headerToken.companyUrl());
     }
+
+    @ValueAuth
+    @ApiOperation("鑾峰彇浜轰簨绯荤粺缁勭粐涓嬬殑浜哄憳")
+    @PostMapping(value = "/selectSimpleList")
+    public Result<?> selectSimpleList(String companyId) {
+        return Result.success(headerToken.userUrl(companyId));
+    }
+
+    @ValueAuth
+    @ApiOperation("灏嗕汉浜嬬郴缁熷嬀閫夌殑鍐呭杞Щ鍒版湰绯荤粺")
+    @PostMapping(value = "/addPersonUser")
+    public Result<?> addPersonUser(@RequestBody PersonDto personDto) {
+        return Result.success(userService.addPersonUser(personDto));
+    }
+
 }
\ No newline at end of file
diff --git a/user-server/src/main/java/com/yuanchu/mom/controller/PostController.java b/user-server/src/main/java/com/yuanchu/mom/controller/PostController.java
deleted file mode 100644
index dd87db6..0000000
--- a/user-server/src/main/java/com/yuanchu/mom/controller/PostController.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package com.yuanchu.mom.controller;
-
-import com.yuanchu.mom.annotation.ValueAuth;
-import com.yuanchu.mom.pojo.Post;
-import com.yuanchu.mom.util.HeaderToken;
-import com.yuanchu.mom.vo.Result;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import lombok.AllArgsConstructor;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-@RestController
-@AllArgsConstructor
-@RequestMapping("/post")
-@Api("宀椾綅妯″潡")
-public class PostController {
-
-    @Autowired
-    private HeaderToken headerToken;
-
-    @ValueAuth
-    @ApiOperation(value = "鑾峰彇宀椾綅鍒楄〃")
-    @PostMapping(value = "/selectPostList/{companyId}")
-    public Result<List<Post>> selectPostList(@PathVariable String companyId){
-        return Result.success(headerToken.postUrl(companyId));
-    }
-}
\ No newline at end of file
diff --git a/user-server/src/main/java/com/yuanchu/mom/controller/SimpleController.java b/user-server/src/main/java/com/yuanchu/mom/controller/SimpleController.java
deleted file mode 100644
index 9d2660d..0000000
--- a/user-server/src/main/java/com/yuanchu/mom/controller/SimpleController.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package com.yuanchu.mom.controller;
-
-
-import com.yuanchu.mom.pojo.User;
-import com.yuanchu.mom.util.HeaderToken;
-import com.yuanchu.mom.vo.Result;
-import io.swagger.annotations.Api;
-import lombok.AllArgsConstructor;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-
-@AllArgsConstructor
-@RestController
-@RequestMapping("/simple")
-@Api("浜哄憳妯″潡")
-public class SimpleController {
-
-    @Autowired
-    private HeaderToken headerToken;
-
-    @PostMapping( value = "/selectSimpleList/companyId")
-    public Result<List<User>> selectSimpleList(@PathVariable String companyId){
-        return  Result.success(headerToken.userUrl(companyId));
-    }
-}
diff --git a/user-server/src/main/java/com/yuanchu/mom/dto/Custom.java b/user-server/src/main/java/com/yuanchu/mom/dto/Custom.java
index aef0096..cfece7c 100644
--- a/user-server/src/main/java/com/yuanchu/mom/dto/Custom.java
+++ b/user-server/src/main/java/com/yuanchu/mom/dto/Custom.java
@@ -24,7 +24,7 @@
     @TableId(type = IdType.AUTO)
     private Integer id;
 
-    @ValueTableShow(2)
+    @ValueTableShow(value = 2)
     @ApiModelProperty(value = "瀹㈡埛璐﹀彿")
     private String account;
 
diff --git a/user-server/src/main/java/com/yuanchu/mom/dto/PersonDto.java b/user-server/src/main/java/com/yuanchu/mom/dto/PersonDto.java
new file mode 100644
index 0000000..fa1e22d
--- /dev/null
+++ b/user-server/src/main/java/com/yuanchu/mom/dto/PersonDto.java
@@ -0,0 +1,16 @@
+package com.yuanchu.mom.dto;
+
+import com.yuanchu.mom.pojo.Company;
+import com.yuanchu.mom.pojo.Person;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class PersonDto {
+
+    private List<Person> person;
+
+    private List<Company> company;
+
+}
diff --git a/user-server/src/main/java/com/yuanchu/mom/dto/UserPageDto.java b/user-server/src/main/java/com/yuanchu/mom/dto/UserPageDto.java
index d959ddd..173f547 100644
--- a/user-server/src/main/java/com/yuanchu/mom/dto/UserPageDto.java
+++ b/user-server/src/main/java/com/yuanchu/mom/dto/UserPageDto.java
@@ -12,11 +12,9 @@
 @NoArgsConstructor
 public class UserPageDto extends User {
 
-    @ValueTableShow(10)
     @ApiModelProperty(value = "鍒涘缓鐢ㄦ埛")
     private String createUserName;
 
-    @ValueTableShow(11)
     @ApiModelProperty(value = "鏇存柊鐢ㄦ埛")
     private String updateUserName;
 
diff --git a/user-server/src/main/java/com/yuanchu/mom/mapper/DepartmentsMapper.java b/user-server/src/main/java/com/yuanchu/mom/mapper/DepartmentsMapper.java
new file mode 100644
index 0000000..ff12ec0
--- /dev/null
+++ b/user-server/src/main/java/com/yuanchu/mom/mapper/DepartmentsMapper.java
@@ -0,0 +1,12 @@
+package com.yuanchu.mom.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yuanchu.mom.pojo.Departments;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+@Mapper
+@Repository
+public interface DepartmentsMapper extends BaseMapper<Departments> {
+
+}
diff --git a/user-server/src/main/java/com/yuanchu/mom/pojo/AuthApi.java b/user-server/src/main/java/com/yuanchu/mom/pojo/AuthApi.java
index b91d14b..b16a664 100644
--- a/user-server/src/main/java/com/yuanchu/mom/pojo/AuthApi.java
+++ b/user-server/src/main/java/com/yuanchu/mom/pojo/AuthApi.java
@@ -2,10 +2,43 @@
 
 public class AuthApi {
 
-    public static String companies = "https://ztt-sso.asuncloud.net/api/org/v1/companies";
+    /**
+     * 娴嬭瘯鍦板潃
+     * */
+//    private String code = "https://ztt-sso.asuncloud.net/oauth2/token";
+    /**
+     * 姝e紡鍦板潃
+     * */
+    public static String code = "https://ztt-sso.chinaztt.cn/oauth2/token";
 
-    public static String post="https://ztt-sso.asuncloud.net/api/org/v1/post?companyId=";
+    /**
+     * 娌冲彛浜轰簨娴嬭瘯搴�
+     * */
+//    private String appId = "8b2f2c7e-2ab9-4718-8193-c0c636dceba8";
+//    private String appSecret = "db59b70d28ab1865aafe4008f59d4760";
+    /**
+     * 娌冲彛浜轰簨姝e紡搴�
+     * */
+    public static String appId = "f6f3d70f-3666-4d3d-b9c5-430de3f6007c";
+    public static String appSecret = "a18923496542302066b0a7bec993a4e2";
+/**
+ * 瑁呭浜轰簨娴嬭瘯搴�
+ * */
+//    private String appId = "0acf9b63-31e3-45c4-99c1-af1aac88b985";
+//    private String appSecret = "7fb7a4026c71619345c31fa12ba31f4f";
+    /**
+     * 瑁呭浜轰簨姝e紡搴�
+     * */
+//    private String appId = "6f5f6a0c-2a01-4ef6-9e75-c8a6f0c2f044";
+//    private String appSecret = "89b9c4735b1e5ee9d6a8544b9b38bb03";
 
-    public static String simple="https://ztt-sso.asuncloud.net/api/org/v1/employees/simple?companyId=";
+    public static String companies = "https://ztt-connector.chinaztt.cn/api/org/v1/companies";
+
+    public static String simple="https://ztt-connector.chinaztt.cn/api/org/v1/employees/simple?companyId=";
+
+    /**
+     * 浜哄憳瀵嗙爜鑾峰彇
+     * */
+    public static String password = "https://ztt-connector.chinaztt.cn/api/org/v1/employees/original_pwd/";
 
 }
\ No newline at end of file
diff --git a/user-server/src/main/java/com/yuanchu/mom/pojo/Departments.java b/user-server/src/main/java/com/yuanchu/mom/pojo/Departments.java
new file mode 100644
index 0000000..65010a4
--- /dev/null
+++ b/user-server/src/main/java/com/yuanchu/mom/pojo/Departments.java
@@ -0,0 +1,46 @@
+package com.yuanchu.mom.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 閮ㄩ棬鏄庣粏
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2024-04-15 04:01:48
+ */
+@Data
+@ApiModel(value = "Department瀵硅薄", description = "閮ㄩ棬鏄庣粏")
+@TableName("department")
+public class Departments implements Serializable {
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty("鍚嶇О")
+    private String name;
+
+    @ApiModelProperty("鐖剁骇id")
+    private Integer fatherId;
+
+    @TableField(fill = FieldFill.INSERT)
+    private Integer createUser;
+
+    @TableField(fill = FieldFill.INSERT)
+    private LocalDateTime createTime;
+
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Integer updateUser;
+
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private LocalDateTime updateTime;
+
+    private String companyId;
+}
diff --git a/user-server/src/main/java/com/yuanchu/mom/pojo/Person.java b/user-server/src/main/java/com/yuanchu/mom/pojo/Person.java
new file mode 100644
index 0000000..c363b82
--- /dev/null
+++ b/user-server/src/main/java/com/yuanchu/mom/pojo/Person.java
@@ -0,0 +1,36 @@
+package com.yuanchu.mom.pojo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class Person {
+
+    private String name;
+
+    //浜哄憳缂栧彿锛屽叏灞�鍞竴
+    private String employeeID;
+//宀椾綅
+    private String position;
+//宀椾綅缂栫爜
+    private String positionCode;
+//鎵嬫満鍙风爜
+    private String phoneNumber;
+
+    //鎬у埆 1:鐢� 2:濂�
+    private Integer gender;
+
+    //缁勭粐鐘舵�� enable:鍦ㄨ亴 disabled:绂昏亴
+    private String status;
+//鎵�灞炵粍缁囩紪鐮�
+    private String companyId;
+//鍏徃閭(鍙敤浜庨偖绠辩郴缁�)
+    private String companyEmail;
+//鍏ヨ亴鍏徃鏃堕棿
+    private String dateOfJoiningTheCompany;
+//缁勭粐鍐呯殑閮ㄩ棬缂栫爜
+    private String departmentCode;
+
+    @ApiModelProperty(">1锛氬瓨鍦� =0锛氫笉瀛樺湪")
+    private Long isLive;
+}
diff --git a/user-server/src/main/java/com/yuanchu/mom/pojo/User.java b/user-server/src/main/java/com/yuanchu/mom/pojo/User.java
index 6f4b5fb..be0c63e 100644
--- a/user-server/src/main/java/com/yuanchu/mom/pojo/User.java
+++ b/user-server/src/main/java/com/yuanchu/mom/pojo/User.java
@@ -35,7 +35,6 @@
     @ApiModelProperty(value = "濮撳悕")
     private String name;
 
-    @ValueTableShow(2)
     @ApiModelProperty(value = "濮撳悕EN")
     private String nameEn;
 
@@ -43,11 +42,9 @@
     @ApiModelProperty(value = "鐘舵��")
     private Integer state;
 
-    @ValueTableShow(4)
     @ApiModelProperty(value = "骞撮緞")
     private Integer age;
 
-    @ValueTableShow(5)
     @ApiModelProperty(value = "閭")
     private String email;
 
@@ -58,24 +55,20 @@
     @ApiModelProperty(value = "閮ㄩ棬")
     private String department;
 
-    @ValueTableShow(8)
     @ApiModelProperty(value = "鍗曚綅")
     private String company;
 
-    @ValueTableShow(14)
     @ApiModelProperty(value = "鍗曚綅鍦板潃")
     private String address;
 
     @ApiModelProperty(value = "瑙掕壊涓婚敭")
     private Integer roleId;
 
-    @ValueTableShow(9)
     @ApiModelProperty(value = "鍒涘缓鏃ユ湡")
     @TableField(fill = FieldFill.INSERT)
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private LocalDateTime createTime;
 
-    @ValueTableShow(10)
     @ApiModelProperty(value = "鏇存柊鏃ユ湡")
     @TableField(fill = FieldFill.INSERT_UPDATE)
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@@ -108,30 +101,7 @@
     /**
      * 缁勭粐
      */
-//    @ValueTableShow(value = 14,name = "缁勭粐")
     @ApiModelProperty(value = "鍏宠仈鐨勯儴闂╥d")
     private String departId;
 
-    ////浜哄憳缂栧彿锛屽叏灞�鍞竴
-//    private String employeeID;
-////宀椾綅
-//    private String position;
-////宀椾綅缂栫爜
-//    private String positionCode;
-////鎵嬫満鍙风爜
-//    private String phoneNumber;
-//
-//    //鎬у埆 1:鐢� 2:濂�
-//    private int gender;
-//
-//    //缁勭粐鐘舵�� enable:鍦ㄨ亴 disabled:绂昏亴
-//    private String status;
-////鎵�灞炵粍缁囩紪鐮�
-//    private String companyId;
-////鍏徃閭(鍙敤浜庨偖绠辩郴缁�)
-//    private String companyEmail;
-////鍏ヨ亴鍏徃鏃堕棿
-//    private String dateOfJoiningTheCompany;
-////缁勭粐鍐呯殑閮ㄩ棬缂栫爜
-//    private String departmentCode;
 }
diff --git a/user-server/src/main/java/com/yuanchu/mom/service/UserService.java b/user-server/src/main/java/com/yuanchu/mom/service/UserService.java
index 01fde83..ec986f2 100644
--- a/user-server/src/main/java/com/yuanchu/mom/service/UserService.java
+++ b/user-server/src/main/java/com/yuanchu/mom/service/UserService.java
@@ -1,10 +1,9 @@
 package com.yuanchu.mom.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yuanchu.mom.dto.PersonDto;
 import com.yuanchu.mom.dto.UserPageDto;
 import com.yuanchu.mom.pojo.User;
-import org.springframework.web.multipart.MultipartFile;
 
 import java.util.List;
 import java.util.Map;
@@ -34,4 +33,6 @@
 
     int upUserPassword(String oldPassword, String newPassWord);
 
+    int addPersonUser(PersonDto personDto);
+
 }
diff --git a/user-server/src/main/java/com/yuanchu/mom/service/impl/RoleServiceImp.java b/user-server/src/main/java/com/yuanchu/mom/service/impl/RoleServiceImp.java
index 07343a3..3e30513 100644
--- a/user-server/src/main/java/com/yuanchu/mom/service/impl/RoleServiceImp.java
+++ b/user-server/src/main/java/com/yuanchu/mom/service/impl/RoleServiceImp.java
@@ -86,4 +86,4 @@
         }
         return 1;
     }
-}
+}
\ No newline at end of file
diff --git a/user-server/src/main/java/com/yuanchu/mom/service/impl/UserServiceImp.java b/user-server/src/main/java/com/yuanchu/mom/service/impl/UserServiceImp.java
index 351cd81..0952c4e 100644
--- a/user-server/src/main/java/com/yuanchu/mom/service/impl/UserServiceImp.java
+++ b/user-server/src/main/java/com/yuanchu/mom/service/impl/UserServiceImp.java
@@ -3,33 +3,28 @@
 import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 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.yuanchu.mom.common.GetLook;
 import com.yuanchu.mom.common.PrintChina;
+import com.yuanchu.mom.dto.PersonDto;
 import com.yuanchu.mom.dto.UserPageDto;
 import com.yuanchu.mom.exception.ErrorException;
+import com.yuanchu.mom.mapper.DepartmentsMapper;
 import com.yuanchu.mom.mapper.UserMapper;
+import com.yuanchu.mom.pojo.Departments;
 import com.yuanchu.mom.pojo.User;
 import com.yuanchu.mom.service.UserService;
-import com.yuanchu.mom.utils.Jwt;
+import com.yuanchu.mom.util.HeaderToken;
 import com.yuanchu.mom.utils.QueryWrappers;
-import com.yuanchu.mom.vo.Result;
-import lombok.AllArgsConstructor;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.DigestUtils;
-import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
-import java.io.File;
-import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.atomic.AtomicReference;
 
 @Service
 public class UserServiceImp implements UserService {
@@ -37,11 +32,13 @@
     @Resource
     UserMapper userMapper;
     @Resource
-    Jwt jwt;
-    @Resource
     private GetLook getLook;
 
+    @Resource
+    private DepartmentsMapper departmentsMapper;
 
+    @Resource
+    private HeaderToken headerToken;
 
     @Override
     public User selectUserByPwd(String account, String password) {
@@ -114,4 +111,58 @@
         return userMapper.updateById(user);
     }
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int addPersonUser(PersonDto personDto) {
+        AtomicReference<String> departId = new AtomicReference<>("");
+        AtomicReference<String> companyName = new AtomicReference<>();
+        personDto.getCompany().forEach(company->{
+            Departments department = departmentsMapper.selectOne(Wrappers.<Departments>lambdaQuery().eq(Departments::getCompanyId, company.getCompanyId()));
+            if(BeanUtil.isEmpty(department)){
+                department = new Departments();
+                department.setName(company.getCompanyName());
+                department.setCompanyId(company.getCompanyId());
+                Departments department2 = departmentsMapper.selectOne(Wrappers.<Departments>lambdaQuery().eq(Departments::getCompanyId, company.getParentCompanyId()));
+                if(BeanUtil.isEmpty(department2)){
+                    department.setFatherId(1);
+                }else{
+                    department.setFatherId(department2.getId());
+                }
+                departmentsMapper.insert(department);
+            }
+            departId.set(departId.get()+department.getId()+",");
+            companyName.set(department.getName());
+        });
+        personDto.getPerson().forEach(person -> {
+            User user = userMapper.selectOne(Wrappers.<User>lambdaQuery().eq(User::getAccount, person.getEmployeeID()));
+            if(BeanUtil.isEmpty(user)){
+                user = new User();
+                user.setName(person.getName());
+                user.setNameEn("not write");
+                user.setAccount(person.getEmployeeID());
+                user.setPhone(person.getPhoneNumber());
+                user.setEmail(person.getCompanyEmail());
+                user.setIsCustom(person.getCompanyId().equals("SC2463")?0:1);
+                user.setDepartId(departId.get());
+//                user.setPassword(DigestUtils.md5DigestAsHex(headerToken.getPassword(person.getEmployeeID()).getBytes()));
+                user.setPassword(DigestUtils.md5DigestAsHex("123456".getBytes()));
+                user.setCompany(companyName.get());
+                user.setAddress("鏈~鍐�");
+                userMapper.insert(user);
+            }else{
+                user.setName(person.getName());
+                user.setPhone(person.getPhoneNumber());
+                user.setEmail(person.getCompanyEmail());
+                user.setIsCustom(person.getCompanyId().equals("SC2463")?0:1);
+                user.setDepartId(departId.get());
+                user.setCompany(companyName.get());
+                user.setCreateUser(null);
+                user.setCreateTime(null);
+                user.setUpdateUser(null);
+                user.setUpdateTime(null);
+                userMapper.updateById(user);
+            }
+        });
+        return 1;
+    }
 }
diff --git a/user-server/src/main/java/com/yuanchu/mom/util/HeaderToken.java b/user-server/src/main/java/com/yuanchu/mom/util/HeaderToken.java
index 147145f..3af736a 100644
--- a/user-server/src/main/java/com/yuanchu/mom/util/HeaderToken.java
+++ b/user-server/src/main/java/com/yuanchu/mom/util/HeaderToken.java
@@ -2,23 +2,25 @@
 
 import cn.hutool.http.HttpRequest;
 import cn.hutool.http.HttpResponse;
+import cn.hutool.log.Log;
 import com.alibaba.fastjson.JSON;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.core.type.TypeReference;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
+import com.yuanchu.mom.exception.ErrorException;
+import com.yuanchu.mom.mapper.UserMapper;
 import com.yuanchu.mom.pojo.AuthApi;
 import com.yuanchu.mom.pojo.Company;
-import com.yuanchu.mom.pojo.Post;
+import com.yuanchu.mom.pojo.Person;
 import com.yuanchu.mom.pojo.User;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
-import java.time.Duration;
 import java.util.List;
+import java.util.Objects;
 import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
 
 @Component
 public class HeaderToken {
@@ -26,129 +28,83 @@
     @Resource
     private RedisTemplate redisTemplate;
 
-    public static void main(String[] args) {
-        HttpRequest request = HttpRequest.post("https://ztt-sso.asuncloud.net/oauth2/token")
-                .header("Content-Type", "application/x-www-form-urlencoded")
-                .form("grant_type", "client_credentials")
-                .form("client_id", "8b2f2c7e-2ab9-4718-8193-c0c636dceba8")
-                .form("client_secret", "db59b70d28ab1865aafe4008f59d4760");
-
-        HttpResponse response = request.execute();
-
-        System.out.println(response.body());
-    }
+    @Resource
+    private UserMapper userMapper;
 
     public String fetchNewAccessToken() {
-        HttpRequest request = HttpRequest.post("https://ztt-sso.asuncloud.net/oauth2/token")
+        HttpRequest request = HttpRequest.post(AuthApi.code)
                 .header("Content-Type", "application/x-www-form-urlencoded")
                 .form("grant_type", "client_credentials")
-                .form("client_id", "8b2f2c7e-2ab9-4718-8193-c0c636dceba8")
-                .form("client_secret", "db59b70d28ab1865aafe4008f59d4760");
+                .form("client_id", AuthApi.appId)
+                .form("client_secret", AuthApi.appSecret);
         HttpResponse response = request.execute();
-
-        System.out.println(response.body());
         ObjectMapper objectMapper = new ObjectMapper();
-        JsonNode jsonNode = null;
+        JsonNode jsonNode;
         try {
             jsonNode = objectMapper.readTree(response.body());
             String accessToken = jsonNode.get("access_token").asText();
-            redisTemplate.opsForValue().set("access_token",accessToken);
-            redisTemplate.expire("access_token", dataTime("access_token"), TimeUnit.SECONDS);
-        } catch (JsonProcessingException e) {
-            e.printStackTrace();
+            Log.get().info("鑾峰彇浜轰簨绯荤粺token锛�"+accessToken);
+            redisTemplate.opsForValue().set("access_token",accessToken,jsonNode.get("expires_in").asInt() - 60,TimeUnit.SECONDS);
+            return accessToken;
+        } catch (Exception e) {
+            throw new ErrorException(e.getMessage());
         }
-        return null;
     }
-        private String accessToken ;
 
-    //鍒ゆ柇鏄惁杩囨湡
+    //鍒ゆ柇鏄惁瀛樺湪
     public String getAccessToken() {
-        accessToken=(String) redisTemplate.opsForValue().get("access_token");
-        if (accessToken == null) {
+        String accessToken;
+        if (!redisTemplate.hasKey("access_token")) {
             accessToken = fetchNewAccessToken();
+        }else{
+            accessToken = redisTemplate.opsForValue().get("access_token")+"";
         }
         return accessToken;
     }
-    //鍒ゆ柇 token 鏄惁宸插瓨鍦�
-    public String getToken(String token) {
-        String o = redisTemplate.opsForValue().get(token).toString();
-        if (o != null && !o.isEmpty()) {
-            return o;
-        }else{
-            redisTemplate.expire(token,dataTime("access_token"),TimeUnit.SECONDS);
-            String tokens = redisTemplate.opsForValue().get(token).toString();
-            return tokens;
-        }
-        // 鑾峰彇 token
-//        accessToken = fetchNewAccessToken();
-//        return accessToken;
-    }
-
-    //鑾峰彇token杩囨湡鏃堕棿
-    public Long dataTime(String token){
-        Long access_token = redisTemplate.getExpire(token);
-        if(access_token != null && access_token >60) {
-            redisTemplate.expire(token, access_token - 60 ,TimeUnit.SECONDS);
-            return access_token - 60;
-        }//灏辩洿鎺ヨ皟鐢�
-        return null;
-    }
-
-
 
     //璋冪敤
-    public List<Company>  companyUrl() {
+    public List<Company> companyUrl() {
         String accessToken = getAccessToken();
-        String getToken= getToken(accessToken);
-        String apiUrl =AuthApi.companies; // 鏇挎崲涓哄疄闄呯殑API绔偣URL
-        HttpRequest request = HttpRequest.get(apiUrl)
+        HttpRequest request = HttpRequest.get(AuthApi.companies)
                 .header("Authorization", "Bearer " + accessToken);
-        HttpResponse response = request.execute();
-        ObjectMapper objectMapper = new ObjectMapper();
-        String body = response.body();
-        List<Company> companies = null;
+        List<Company> companies;
         try {
-            companies = objectMapper.readValue(body, new TypeReference<List<Company>>(){});
-        } catch (JsonProcessingException e) {
-            e.printStackTrace();
+            companies = JSON.parseArray(request.execute().body(), Company.class);
+        }catch (Exception e){
+            throw new ErrorException(e.getMessage());
         }
-        return companies;
+        return companies.stream().filter(ob->{
+            if(ob.getStatus().equals("enabled")) return true;
+            return false;
+        }).collect(Collectors.toList());
     }
 
-    public List<Post>  postUrl(String companyId) {
+    public List<Person> userUrl(String companyId) {
         String accessToken = getAccessToken();
-        String token = getToken(accessToken);
-        String apiUrl =AuthApi.post+companyId; // 鏇挎崲涓哄疄闄呯殑API绔偣URL
-        HttpRequest request = HttpRequest.get(apiUrl)
-                .header("Authorization", "Bearer " + accessToken);
-        HttpResponse response = request.execute();
-        ObjectMapper objectMapper = new ObjectMapper();
-        String body = response.body();
-        List<Post> posts = null;
-        try {
-            posts=objectMapper.readValue(body, new TypeReference<List<Post>>() {});
-        } catch (JsonProcessingException e) {
-            e.printStackTrace();
-        }
-        return posts;
-    }
-
-    public List<User>  userUrl(String companyId) {
-        String accessToken = getAccessToken();
-        String token = getToken(accessToken);
-        String apiUrl =AuthApi.simple+companyId; // 鏇挎崲涓哄疄闄呯殑API绔偣URL
-        HttpRequest request = HttpRequest.get(apiUrl)
+        HttpRequest request = HttpRequest.get(AuthApi.simple+companyId)
                 .header("Authorization", "Bearer " + accessToken)
                 .header("Content-Type", "application/form-data");
-        HttpResponse response = request.execute();
-        ObjectMapper objectMapper = new ObjectMapper();
-        String body = response.body();
-        List<User> user=null;
+        List<Person> person;
         try {
-            user= objectMapper.readValue(body,new TypeReference<List<User>>(){});
-        } catch (JsonProcessingException e) {
-            e.printStackTrace();
+            person = JSON.parseArray(request.execute().body(), Person.class);
+        }catch (Exception e){
+            throw new ErrorException(e.getMessage());
         }
-        return user;
+        return person.stream().filter(ob->{
+            if(Objects.equals(ob.getStatus(), "enabled")) {
+                ob.setIsLive(userMapper.selectCount(Wrappers.<User>lambdaQuery().eq(User::getAccount, ob.getEmployeeID())));
+                return true;
+            }
+            return false;
+        }).collect(Collectors.toList());
+    }
+
+    public String getPassword(String employeeId) {
+        String accessToken = getAccessToken();
+        HttpRequest request = HttpRequest.get(AuthApi.password + employeeId)
+                .header("Authorization", "Bearer " + accessToken);
+        System.out.println(AuthApi.password + employeeId);
+        System.out.println(request.execute().body());
+        return JSON.parseObject(request.execute().body()).get("originalPwd").toString();
     }
 }
\ No newline at end of file
diff --git a/user-server/src/main/resources/mapper/DepartmentsMapper.xml b/user-server/src/main/resources/mapper/DepartmentsMapper.xml
new file mode 100644
index 0000000..6816efa
--- /dev/null
+++ b/user-server/src/main/resources/mapper/DepartmentsMapper.xml
@@ -0,0 +1,4 @@
+<?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.mom.mapper.DepartmentsMapper">
+</mapper>

--
Gitblit v1.9.3