From 426718fb2310abff70f54962f118f4300ead2408 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期日, 12 一月 2025 11:30:59 +0800
Subject: [PATCH] Merge branch '2.0.1' of http://139.186.142.91:10010/r/productDev/yunyibao into 2.0.1

---
 server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java        |   22 ++-
 server/service/src/main/java/com/doumee/dao/system/dto/QuerySystemUserDTO.java                   |    2 
 server/service/src/main/java/com/doumee/dao/business/WorktypeMapper.java                         |    3 
 server/dianziqian/src/main/java/com/jzq/common/bean/sign/SignatoryReq.java                       |    2 
 server/service/src/main/java/com/doumee/dao/business/join/WorktypeJoinMapper.java                |   20 +++
 server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java       |    1 
 server/service/src/main/java/com/doumee/service/business/impl/SolutionsServiceImpl.java          |    1 
 server/service/src/main/java/com/doumee/service/business/impl/WorktypeServiceImpl.java           |   14 +
 server/service/src/main/java/com/doumee/service/business/impl/InsuranceServiceImpl.java          |  121 +++++++++++++++++++
 server/service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java          |    1 
 server/service/src/main/java/com/doumee/dao/system/SystemUserMapper.java                         |    3 
 server/service/src/main/java/com/doumee/service/business/impl/UnionApplyServiceImpl.java         |    2 
 server/service/src/main/java/com/doumee/service/business/WorktypeService.java                    |    3 
 server/pom.xml                                                                                   |    1 
 server/service/src/main/java/com/doumee/core/utils/Constants.java                                |    2 
 server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java     |    6 
 server/service/src/main/java/com/doumee/service/business/impl/UnionChangeServiceImpl.java        |   35 ++---
 server/service/src/main/java/com/doumee/service/business/third/SignService.java                  |   25 ++++
 server/platform/src/main/java/com/doumee/api/business/WorktypeController.java                    |    3 
 server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java       |    6 
 server/service/src/main/java/com/doumee/service/system/impl/SystemUserServiceImpl.java           |   50 +++----
 server/service/src/main/java/com/doumee/dao/system/model/SystemUser.java                         |    9 +
 server/service/src/main/java/com/doumee/service/business/impl/SolutionsBaseServiceImpl.java      |    6 
 server/service/src/main/java/com/doumee/service/system/impl/SystemDataPermissionServiceImpl.java |    6 +
 24 files changed, 267 insertions(+), 77 deletions(-)

diff --git a/server/dianziqian/src/main/java/com/jzq/common/bean/sign/SignatoryReq.java b/server/dianziqian/src/main/java/com/jzq/common/bean/sign/SignatoryReq.java
index d5e73ac..1e406a7 100644
--- a/server/dianziqian/src/main/java/com/jzq/common/bean/sign/SignatoryReq.java
+++ b/server/dianziqian/src/main/java/com/jzq/common/bean/sign/SignatoryReq.java
@@ -99,5 +99,7 @@
 
     @ApiModelProperty(value = "api鍙戣捣鏄剧ず纭绛惧瓧")
     private Integer apiAffirm;
+    @ApiModelProperty(value = "楠戠紳绔犱綅缃缃�间负0-1鐨勫皬鏁�;")
+    private Float qiFengOffset	;//float	?		楠戠紳绔犱綅缃缃�间负0-1鐨勫皬鏁�;
 
 }
diff --git a/server/platform/src/main/java/com/doumee/api/business/WorktypeController.java b/server/platform/src/main/java/com/doumee/api/business/WorktypeController.java
index 0d78535..0a9f936 100644
--- a/server/platform/src/main/java/com/doumee/api/business/WorktypeController.java
+++ b/server/platform/src/main/java/com/doumee/api/business/WorktypeController.java
@@ -20,6 +20,7 @@
 import java.io.File;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 
 /**
@@ -114,7 +115,7 @@
             @ApiImplicitParam(name = "file", value = "file", required = true, paramType = "query", dataType = "file", dataTypeClass = File.class),
     })
     @RequiresPermissions("business:worktype:create")
-    public ApiResponse<Set<Integer>> importExcelForSolution (@ApiParam(value = "file") MultipartFile file , Integer insuranceId) {
+    public ApiResponse<Set<Map<String,Object>>> importExcelForSolution (@ApiParam(value = "file") MultipartFile file , Integer insuranceId) {
         return ApiResponse.success(worktypeService.importBatchForSolutions(file,insuranceId));
     }
 
diff --git a/server/pom.xml b/server/pom.xml
index d793f42..6f18e06 100644
--- a/server/pom.xml
+++ b/server/pom.xml
@@ -32,6 +32,7 @@
     <swagger.bootstrap-ui.version>1.9.6</swagger.bootstrap-ui.version>
     <fastjson.version>1.2.70</fastjson.version>
     <druid.version>1.2.0</druid.version>
+    <!--<mybatis.plus.version>3.5.7</mybatis.plus.version>-->
     <mybatis.plus.version>3.4.2</mybatis.plus.version>
     <apache.shiro.version>1.7.0</apache.shiro.version>
     <oshi.version>5.7.0</oshi.version>
diff --git a/server/service/src/main/java/com/doumee/core/utils/Constants.java b/server/service/src/main/java/com/doumee/core/utils/Constants.java
index 0a131b0..c7d899f 100644
--- a/server/service/src/main/java/com/doumee/core/utils/Constants.java
+++ b/server/service/src/main/java/com/doumee/core/utils/Constants.java
@@ -64,10 +64,8 @@
     public static final String PRIVACY ="PRIVACY";
     public static final String USE ="USE";
 
-
     public static final String GOODS_IMG_DIR ="GOODS_IMG_DIR";
     public static final String CREDIT_CODE_REGEX = "[0-9A-HJ-NPQRTUWXY]{2}\\d{6}[0-9A-HJ-NPQRTUWXY]{10}";
-
 
     public static final String  ROOT_PATH="ROOT_PATH";//鏈湴鏂囦欢涓婁紶鍦板潃閰嶇疆
     public static final String  FILE_DIR="FILE_DIR";//鏈湴鏂囦欢璁块棶鍦板潃閰嶇疆
diff --git a/server/service/src/main/java/com/doumee/dao/business/WorktypeMapper.java b/server/service/src/main/java/com/doumee/dao/business/WorktypeMapper.java
index 9303021..ccd7958 100644
--- a/server/service/src/main/java/com/doumee/dao/business/WorktypeMapper.java
+++ b/server/service/src/main/java/com/doumee/dao/business/WorktypeMapper.java
@@ -2,11 +2,12 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.doumee.dao.business.model.Worktype;
+import com.github.yulichang.base.MPJBaseMapper;
 
 /**
  * @author 姹熻箘韫�
  * @date 2024/01/16 10:03
  */
-public interface WorktypeMapper extends BaseMapper<Worktype> {
+public interface WorktypeMapper extends MPJBaseMapper<Worktype> {
 
 }
diff --git a/server/service/src/main/java/com/doumee/dao/business/join/WorktypeJoinMapper.java b/server/service/src/main/java/com/doumee/dao/business/join/WorktypeJoinMapper.java
new file mode 100644
index 0000000..2235c0a
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/business/join/WorktypeJoinMapper.java
@@ -0,0 +1,20 @@
+package com.doumee.dao.business.join;
+
+import com.doumee.dao.business.model.TaxDetial;
+import com.doumee.dao.business.model.Worktype;
+import com.github.yulichang.base.MPJBaseMapper;
+import com.github.yulichang.base.mapper.MPJJoinMapper;
+
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2024/01/16 10:03
+ */
+public interface WorktypeJoinMapper extends MPJJoinMapper<Worktype> {
+
+
+    void insertBatchSomeColumn(List<Worktype> taxDetialList);
+
+
+}
diff --git a/server/service/src/main/java/com/doumee/dao/system/SystemUserMapper.java b/server/service/src/main/java/com/doumee/dao/system/SystemUserMapper.java
index 12c89b8..595be00 100644
--- a/server/service/src/main/java/com/doumee/dao/system/SystemUserMapper.java
+++ b/server/service/src/main/java/com/doumee/dao/system/SystemUserMapper.java
@@ -5,11 +5,12 @@
 import com.doumee.dao.system.model.SystemUser;
 import com.doumee.dao.system.vo.SystemUserDetailVO;
 import com.doumee.dao.system.vo.SystemUserListVO;
+import com.github.yulichang.base.MPJBaseMapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
-public interface SystemUserMapper extends BaseMapper<SystemUser> {
+public interface SystemUserMapper extends MPJBaseMapper<SystemUser> {
 
     /**
      * 鏌ヨ鐢ㄦ埛鍒楄〃
diff --git a/server/service/src/main/java/com/doumee/dao/system/dto/QuerySystemUserDTO.java b/server/service/src/main/java/com/doumee/dao/system/dto/QuerySystemUserDTO.java
index 7896332..6bee8da 100644
--- a/server/service/src/main/java/com/doumee/dao/system/dto/QuerySystemUserDTO.java
+++ b/server/service/src/main/java/com/doumee/dao/system/dto/QuerySystemUserDTO.java
@@ -57,6 +57,8 @@
 
     @ApiModelProperty(value = "鍩庡競缂栫爜", example = "1" )
     private Integer cityId;
+    @ApiModelProperty(value = "閮ㄩ棬缂栫爜缂栫爜", example = "1" )
+    private Integer departmentId;
 
     @ApiModelProperty(value = "鍩庡競缂栫爜", hidden = true)
     private List<Integer> cityIds;
diff --git a/server/service/src/main/java/com/doumee/dao/system/model/SystemUser.java b/server/service/src/main/java/com/doumee/dao/system/model/SystemUser.java
index b323e8e..8d0394c 100644
--- a/server/service/src/main/java/com/doumee/dao/system/model/SystemUser.java
+++ b/server/service/src/main/java/com/doumee/dao/system/model/SystemUser.java
@@ -105,6 +105,15 @@
 
     @ApiModelProperty(value = "寰俊灏忕▼搴廜PENID")
     private String openid;
+    @ApiModelProperty(value = "浼佷笟鍚嶇О")
+    @TableField(exist = false)
+    private String companyName;
+    @ApiModelProperty(value = "閮ㄩ棬鍚嶇О")
+    @TableField(exist = false)
+    private String departmentName;
+    @ApiModelProperty(value = "鎺堟潈浼佷笟鏁�")
+    @TableField(exist = false)
+    private Integer authNum;
 
     @ApiModelProperty(value = "鏄惁涓荤 0鍚� 1鏄�", example = "1")
     @TableField(exist = false)
diff --git a/server/service/src/main/java/com/doumee/service/business/WorktypeService.java b/server/service/src/main/java/com/doumee/service/business/WorktypeService.java
index 8ba3c17..1b12485 100644
--- a/server/service/src/main/java/com/doumee/service/business/WorktypeService.java
+++ b/server/service/src/main/java/com/doumee/service/business/WorktypeService.java
@@ -7,6 +7,7 @@
 import org.springframework.web.multipart.MultipartFile;
 
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 
 /**
@@ -110,5 +111,5 @@
 
     List<String> importBatch(MultipartFile file);
 
-    Set<Integer> importBatchForSolutions(MultipartFile file , Integer insuranceId);
+    Set<Map<String,Object>> importBatchForSolutions(MultipartFile file , Integer insuranceId);
 }
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java
index e7fa383..0d224e2 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java
@@ -2,7 +2,7 @@
 
 import cn.hutool.core.util.IdcardUtil;
 import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.extension.api.R;
+
 import com.doumee.biz.system.SystemDictDataBiz;
 import com.doumee.core.annotation.excel.ExcelExporter;
 import com.doumee.core.constants.ResponseStatus;
@@ -616,11 +616,14 @@
                     .eq(ApplyDetail::getMemberId, detail.getMemberId())
                     .orderByDesc(ApplyDetail::getCreateDate)
                     .last("limit 1"));
-            if (oldModel == null || oldModel.getStartTime() == null || oldModel.getStartTime().getTime() > update.getApplyStartTime().getTime()) {
+//            if (oldModel == null || oldModel.getStartTime() == null || oldModel.getStartTime().getTime() > update.getApplyStartTime().getTime()) {
+//                throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝鐢ㄦ埛銆�" + detail.getMemberName() + "銆戝師淇濆崟淇℃伅鏈夎锛屽綋鍓嶇敵璇蜂笉鏀寔鍑忎繚澶勭悊锛�");
+//            }
+//            if(!(oldModel.getStartTime().getTime()<=update.getDelValidTime().getTime()&& oldModel.getEndTime().getTime()>=update.getDelValidTime().getTime())){
+//                throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝鐢ㄦ埛銆�" + detail.getMemberName() + "銆戝噺淇濇棩鏈熸湭鍦ㄤ繚鍗曡褰曟棩鏈熶腑锛�");
+//            }
+            if (oldModel == null || oldModel.getEndTime() == null || oldModel.getEndTime().getTime() < update.getDelValidTime().getTime()) {
                 throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝鐢ㄦ埛銆�" + detail.getMemberName() + "銆戝師淇濆崟淇℃伅鏈夎锛屽綋鍓嶇敵璇蜂笉鏀寔鍑忎繚澶勭悊锛�");
-            }
-            if(!(oldModel.getStartTime().getTime()<=update.getDelValidTime().getTime()&& oldModel.getEndTime().getTime()>=update.getDelValidTime().getTime())){
-                throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝鐢ㄦ埛銆�" + detail.getMemberName() + "銆戝噺淇濇棩鏈熸湭鍦ㄤ繚鍗曡褰曟棩鏈熶腑锛�");
             }
             BigDecimal sumFee = Objects.isNull(insuranceApply.getServerCost())?
                     solutions.getPrice():
@@ -640,6 +643,9 @@
                         sumFee
                         ,insuranceApply.getStartTime(),insuranceApply.getFinalEndTime(),oldModel.getStartTime(),delValidTime
                 ) ;
+            }else{
+                delValidTime  = oldModel.getStartTime();
+                updateFee = BigDecimal.ZERO;
             }
             if (oldModel.getStartTime().getTime() < System.currentTimeMillis()) {
                 //// 2024骞�5鏈�8鏃�17:37:23 淇敼 璁$畻浜х敓璐圭敤
@@ -1340,7 +1346,6 @@
             if(!Constants.equalsInteger(applyDetail.getChangeStatus(),Constants.ZERO)){
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鍑忎繚浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戜繚鍗曚俊鎭紓甯�,鏁版嵁宸茶鍑忎繚鏃犳硶鍐嶆鍑忎繚");
             }
-            applyChagneDetail.setPrice(applyDetail.getPrice());
             applyChagneDetail.setCreateDate(new Date());
             applyChagneDetail.setCreator(loginUserInfo.getId());
             applyChagneDetail.setIsdeleted(Constants.ZERO);
@@ -1378,6 +1383,7 @@
                 applyChagneDetail.setReduceMoney(solutions.getPrice().multiply(new BigDecimal(-1)));
                 applyChagneDetail.setFee(BigDecimal.ZERO);
             }
+            applyChagneDetail.setId(null);
             applyChagneDetailJoinMapper.insert(applyChagneDetail);
         }
     }
@@ -2541,8 +2547,8 @@
             notifyUrl = notifyUrl.replace("${type}","0").replace("${id}",model.getId().toString());
 
             //涓存椂浣跨敤
-            fileUrl =  "https://yybred.oss-cn-hangzhou.aliyuncs.com/apply/20241120/1c80f0d7-ab35-4355-b9fe-944464643115.pdf";
-            String applyNo = signService.applySign(company.getName(),fileUrl,company.getName(),company.getCode(),company.getEmail(),"浜哄憳鍚嶅崟绛剧珷",company.getSignId(),notifyUrl);
+            fileUrl =  "https://yybred.oss-cn-hangzhou.aliyuncs.com/apply/20241230/a0d128f2-ba6c-4ad4-b86b-b2610a513d41.pdf";
+            String applyNo = signService.applySignDoByParam(company.getName(),fileUrl,company.getName(),company.getCode(),company.getEmail(),"浜哄憳鍚嶅崟绛剧珷",company.getSignId(),notifyUrl,new Float(0.7));
 
 //            String applyNo = signService.applySignLocalFile(company.getName(),company.getName(),fileUrl,company.getCode(),company.getEmail(),"浜哄憳鍚嶅崟绛剧珷",company.getSignId(),notifyUrl);
             if(StringUtils.isBlank(applyNo) ){
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java
index 07bb1c5..2b8691f 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java
@@ -185,6 +185,7 @@
         for (DuSolution s : solutions){
             DuSolution ns = new DuSolution();
             BeanUtils.copyProperties(s, ns);
+            ns.setId(null);
             ns.setDispatchUnitId(newVersion.getId());
             ns.setCheckDate(update.getEditDate());
             ns.setStatus(Constants.ONE);
@@ -215,6 +216,7 @@
                 }
                 DuWorktype nw = new DuWorktype();
                 BeanUtils.copyProperties(w, nw);
+                nw.setId(null);
                 nw.setCreateDate(new Date());
                 nw.setCheckDate(update.getEditDate());
                 nw.setStatus(Constants.ONE);
@@ -498,7 +500,7 @@
             DuSolution duSolution = duSolutionMapper.selectOne(new QueryWrapper<DuSolution>().lambda().eq(DuSolution::getDispatchUnitId,saveDispatchUnitDTO.getId())
                     .eq(DuSolution::getIsdeleted,Constants.ZERO)
                     .eq(DuSolution::getSolutionId,saveDuSolutionDTO.getSolutionId()).last("limit 1"));
-            Integer duSolutionNum = duSolutionMapper.selectCount(new QueryWrapper<DuSolution>().lambda().eq(DuSolution::getDispatchUnitId,saveDuSolutionDTO.getId()));
+            Integer duSolutionNum = duSolutionMapper.selectCount(new QueryWrapper<DuSolution>().lambda().eq(DuSolution::getDispatchUnitId,saveDuSolutionDTO.getId())).intValue();
             if(Objects.isNull(duSolution)){
                 duSolution = new DuSolution();
                 duSolution.setCreateDate(new Date());
@@ -530,7 +532,7 @@
                         .eq(DuWorktype::getWorkTypeId,saveDuWorkTypeDTO.getWorkTypeId()))>0){
                     throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"銆�"+saveDuSolutionDTO.getSolutionName()+"銆戣鏂规涓�"+saveDuWorkTypeDTO.getWorkTypeName()+"璇ュ伐绉嶅凡瀛樺湪");
                 }
-                Integer duWorkTypeNum = duWorktypeMapper.selectCount(new QueryWrapper<DuWorktype>().lambda().eq(DuWorktype::getDuSolutionId,duSolution.getId()));
+                Integer duWorkTypeNum = duWorktypeMapper.selectCount(new QueryWrapper<DuWorktype>().lambda().eq(DuWorktype::getDuSolutionId,duSolution.getId())).intValue();
                 DuWorktype duWorktype = new DuWorktype();
                 duWorktype.setCreateDate(new Date());
                 duWorktype.setCreator(loginUserInfo.getId());
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java
index 1242d29..01050aa 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java
@@ -2,7 +2,6 @@
 
 import cn.hutool.core.util.IdcardUtil;
 import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.extension.api.R;
 import com.doumee.biz.system.SystemDictDataBiz;
 import com.doumee.core.annotation.excel.ExcelExporter;
 import com.doumee.core.constants.ResponseStatus;
@@ -2482,6 +2481,7 @@
                         member.setDuId(applyDetail.getDuId());
                         member.setWorktypeId(applyDetail.getWorktypeId());
                         memberMapper.updateById(member);
+                        applyDetail.setMemberName(member.getName());
                     }
                 }else{
                     member = memberMapper.selectById(applyDetail.getMemberId());
@@ -2492,6 +2492,7 @@
                     member.setDuId(applyDetail.getDuId());
                     member.setWorktypeId(applyDetail.getWorktypeId());
                     memberMapper.updateById(member);
+                    applyDetail.setMemberName(member.getName());
                 }
                 applyDetail.setMemberId(member.getId());
                 applyDetail.setIdcardNo(member.getIdcardNo());
@@ -2528,7 +2529,6 @@
 
     /**
      * 鏌ヨ 浼氬憳淇℃伅鍦ㄦ柟妗堜笅鏄惁瀛樺湪鍐茬獊鏁版嵁
-     * @param solutionId
      * @param startTime
      * @param endTime
      */
@@ -3573,7 +3573,7 @@
         if(solutions.getType().equals(Constants.ZERO)){
             throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝闈炲鎵樹繚鏂规淇濆崟锛屾棤娉曡繘琛岃鎿嶄綔!");
         }
-        String fileUrl = "https://yybred.oss-cn-hangzhou.aliyuncs.com/apply/20241120/1c80f0d7-ab35-4355-b9fe-944464643115.pdf";//ExcelExporter.build(InsuranceApply.class).exportApplyExcelToPdf(model,"浜哄憳鍚嶅崟");
+        String fileUrl = "https://yybred.oss-cn-hangzhou.aliyuncs.com/apply/20241230/a0d128f2-ba6c-4ad4-b86b-b2610a513d41.pdf";//ExcelExporter.build(InsuranceApply.class).exportApplyExcelToPdf(model,"浜哄憳鍚嶅崟");
         String notifyUrl = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.SIGN_DONE_NOTIFY_URL).getCode();
         notifyUrl = notifyUrl.replace("${type}","0").replace("${id}",model.getId().toString());
         //String applyNo = signService.applySignLocalFile(company.getName(),company.getName(),fileUrl,company.getCode(),company.getEmail(),"鎶曚繚鍚嶅崟绛剧珷",company.getSignId(),notifyUrl);
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/InsuranceServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/InsuranceServiceImpl.java
index 4acc4f0..8d8d616 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/InsuranceServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/InsuranceServiceImpl.java
@@ -10,6 +10,8 @@
 import com.doumee.core.utils.Utils;
 import com.doumee.dao.business.InsuranceMapper;
 import com.doumee.dao.business.WorktypeMapper;
+import com.doumee.dao.business.join.DuWorkTypeJoinMapper;
+import com.doumee.dao.business.join.WorktypeJoinMapper;
 import com.doumee.dao.business.model.Insurance;
 import com.doumee.dao.business.model.Solutions;
 import com.doumee.dao.business.model.Worktype;
@@ -19,8 +21,10 @@
 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.sun.corba.se.spi.orbutil.threadpool.Work;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.SecurityUtils;
+import org.checkerframework.checker.units.qual.A;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -42,6 +46,8 @@
     private InsuranceMapper insuranceMapper;
     @Autowired
     private WorktypeMapper worktypeMapper;
+    @Autowired
+    private WorktypeJoinMapper worktypeJoinMapper;
     @Autowired
     private SystemDictDataBiz systemDictDataBiz;
 
@@ -86,6 +92,8 @@
         if(workTypeName.size() != set.size()){
             throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"瀵逛笉璧凤紝宸ョ褰曞叆鏁版嵁瀛樺湪鐩稿悓鏁版嵁锛�");
         }
+        List<Worktype> saveList = new ArrayList<>();
+
         for(Worktype w : worktypeList) {
             if(!isNew){
                 //鏌ヨ淇濋櫓鍏徃涓嬫槸鍚﹀凡瀛樺湪璇ュ伐绉�
@@ -101,12 +109,13 @@
             w.setInsuranceId(insurance.getId());
             w.setIsdeleted(Constants.ZERO);
             w.setCreator(newModel.getCreator());
-            w.setCreateDate(insurance.getCreateDate());
+            w.setCreateDate(new Date());
             w.setDataType(insurance.getDataType());
             w.setStatus(Constants.ZERO);
             w.setVersion(insurance.getVersion());
             w.setSortnum(num++);
-            worktypeMapper.insert(w);
+            saveList.add(w);
+//            worktypeMapper.insert(w);
 
 
             //鍘嗗彶鐗堟湰鐨勫伐绉嶄俊鎭�
@@ -117,8 +126,15 @@
             newType.setDataType(Constants.TWO);
             newType.setVersion(newModel.getVersion());
             w.setSortnum(num++);
-            worktypeMapper.insert(newType);
+            saveList.add(newType);
+//            worktypeMapper.insert(newType);
         }
+
+        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(saveList)){
+            worktypeJoinMapper.insertBatchSomeColumn(saveList);
+        }
+        
+
     }
 
     private void initCreateParam(Insurance insurance) {
@@ -194,6 +210,105 @@
         insuranceMapper.deleteBatchIds(ids);
     }
 
+    /*@Override
+    public void updateById(Insurance insurance) {
+        Insurance model = findById(insurance.getId());
+        if(model == null  || !Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO)
+                || !Constants.equalsInteger(model.getDataType(),Constants.ZERO)){
+            throw  new BusinessException(ResponseStatus.DATA_EMPTY );
+        }
+        //鏁版嵁鏈夋晥鎬ф牎楠�
+        initCreateParam(insurance);
+        if(insuranceMapper.selectCount(new QueryWrapper<Insurance>().lambda().eq(Insurance::getName,insurance.getName())
+                .eq(Insurance::getIsdeleted,Constants.ZERO)
+                .eq(Insurance::getDataType,Constants.ZERO)
+                .ne(Insurance::getId,insurance.getId())
+        )>Constants.ZERO){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"淇濋櫓鍏徃鍚嶇О宸插瓨鍦�");
+        }
+
+        LoginUserInfo user= (LoginUserInfo)SecurityUtils.getSubject().getPrincipal();
+        Insurance updateModel = new Insurance();
+        updateModel.setEditor(user.getId());
+        updateModel.setName(insurance.getName());
+        updateModel.setId(model.getId());
+        updateModel.setVersion(UUID.randomUUID().toString());
+        updateModel.setEditDate(new Date());
+        updateModel.setRemark(insurance.getRemark());
+        updateModel.setSortnum(insurance.getSortnum());
+        updateModel.setLogo(insurance.getLogo());
+        updateModel.setEnglishName(insurance.getEnglishName());
+        updateModel.setLinkName(insurance.getLinkName());
+        updateModel.setLinkPhone(insurance.getLinkPhone());
+        updateModel.setPolicy(insurance.getPolicy());
+        updateModel.setAgreement(insurance.getAgreement());
+        updateModel.setClaimsInformation(insurance.getClaimsInformation());
+        insuranceMapper.updateById(updateModel);
+
+        //濡傛灉淇敼锛屽垯浜х敓涓�涓柊鐨勫巻鍙茬増鏈� ~
+//        Insurance newModel = new Insurance();
+//        BeanUtils.copyProperties(model,newModel);
+//        newModel.setId(null);
+//        newModel.setVersion(updateModel.getVersion());
+//        newModel.setCreateDate(new Date());
+//        newModel.setName(updateModel.getName());
+//        newModel.setBaseId(insurance.getId());
+//        newModel.setDataType(Constants.TWO);
+//        newModel.setLogo(insurance.getLogo());
+//        newModel.setEnglishName(insurance.getEnglishName());
+//        newModel.setLinkName(insurance.getLinkName());
+//        newModel.setLinkPhone(insurance.getLinkPhone());
+//        newModel.setPolicy(insurance.getPolicy());
+//        newModel.setAgreement(insurance.getAgreement());
+//        newModel.setClaimsInformation(insurance.getClaimsInformation());
+//        insuranceMapper.insert(newModel);
+
+        Insurance useVersion = insuranceMapper.selectOne(new QueryWrapper<Insurance>().lambda()
+                .eq(Insurance::getBaseId,insurance.getId())
+                .eq(Insurance::getDataType,Constants.TWO)
+                .last(" limit 1")
+        );
+
+        Insurance updateUsrModel = new Insurance();
+        updateUsrModel.setEditor(user.getId());
+        updateUsrModel.setName(insurance.getName());
+        updateUsrModel.setId(useVersion.getId());
+        updateUsrModel.setVersion(UUID.randomUUID().toString());
+        updateUsrModel.setEditDate(new Date());
+        updateUsrModel.setRemark(insurance.getRemark());
+        updateUsrModel.setSortnum(insurance.getSortnum());
+        updateUsrModel.setLogo(insurance.getLogo());
+        updateUsrModel.setEnglishName(insurance.getEnglishName());
+        updateUsrModel.setLinkName(insurance.getLinkName());
+        updateUsrModel.setLinkPhone(insurance.getLinkPhone());
+        updateUsrModel.setPolicy(insurance.getPolicy());
+        updateUsrModel.setAgreement(insurance.getAgreement());
+        updateUsrModel.setClaimsInformation(insurance.getClaimsInformation());
+
+        //鍒犻櫎鎵�鏈夊伐绉嶆暟鎹�
+        worktypeMapper.delete(new UpdateWrapper<Worktype>()
+                .lambda()
+                .in(Worktype::getInsuranceId,insurance.getId())
+        );
+//        insuranceMapper.update(null,new UpdateWrapper<Insurance>()
+//                .lambda()
+//                .eq(Insurance::getBaseId,insurance.getId())
+//                .eq(Insurance::getDataType,Constants.TWO)
+//                .ne(Insurance::getId,newModel.getId())
+//                .set(Insurance::getDataType,Constants.ONE)
+//        );
+        worktypeMapper.update(null,new UpdateWrapper<Worktype>()
+                .lambda()
+                .eq(Worktype::getInsuranceId,useVersion.getId())
+                .eq(Worktype::getDataType,Constants.TWO)
+                .set(Worktype::getDataType,Constants.ONE)
+        );
+
+        //澶勭悊宸ヤ綔淇℃伅锛屾柊澧炴渶鏂扮殑锛屽悓鏃朵骇鐢熷巻鍙茬増鏈�
+        dealWorkTypeData(updateModel,useVersion,insurance.getWorktypeList(),false);
+    }*/
+
+
     @Override
     public void updateById(Insurance insurance) {
         Insurance model = findById(insurance.getId());
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java
index 78951b8..ef2badd 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java
@@ -1,7 +1,6 @@
 package com.doumee.service.business.impl;
 
 import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.extension.api.R;
 import com.doumee.biz.system.SystemDictDataBiz;
 import com.doumee.core.constants.ResponseStatus;
 import com.doumee.core.exception.BusinessException;
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/SolutionsBaseServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/SolutionsBaseServiceImpl.java
index c190001..93f38be 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/SolutionsBaseServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/SolutionsBaseServiceImpl.java
@@ -66,6 +66,7 @@
     private InsuranceApplyMapper insuranceApplyMapper;
 
     @Override
+    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
     public Integer create(SolutionsBase solutionsBase) {
         LoginUserInfo user= (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
         initCreateParam(solutionsBase);
@@ -146,6 +147,7 @@
             newType.setSolutionId(newModel.getId());
             solutionWorktypeJoinMapper.insert(newType);
         }
+
     }
 
 
@@ -209,6 +211,7 @@
     }
 
     @Override
+    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
     public void updateById(SolutionsBase solutionsBase) {
         LoginUserInfo user= (LoginUserInfo)SecurityUtils.getSubject().getPrincipal();
         SolutionsBase model = findById(solutionsBase.getId());
@@ -248,6 +251,7 @@
             solutionsBase.setAddValidDays(solutionsBase.getDelValidDays());
         }
         solutionsBaseMapper.updateById(solutionsBase);
+
         SolutionsBase oldVersion = solutionsBaseMapper.selectOne(new QueryWrapper<SolutionsBase>()
                 .lambda()
                 .eq(SolutionsBase::getBaseId,solutionsBase.getId())
@@ -276,7 +280,6 @@
                 .eq(SolutionWorktype::getType,Constants.ONE)
         );
         //鍒犻櫎鐖舵柟妗堜笅鎵�鏈夊瓙鏂规鐨勫伐绉嶆暟鎹�
-
         solutionWorktypeJoinMapper.delete(new UpdateWrapper<SolutionWorktype>()
                 .lambda()
                 .eq(SolutionWorktype::getType,Constants.ZERO)
@@ -284,7 +287,6 @@
         );
 
         dealWorkTypeInsurance(solutionsBase,newModel,solutionsBase.getWorktypeIdList());
-
 
         solutionsBaseMapper.update(null,new UpdateWrapper<SolutionsBase>()
                 .lambda()
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/SolutionsServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/SolutionsServiceImpl.java
index 1e2232c..3ecda64 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/SolutionsServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/SolutionsServiceImpl.java
@@ -132,6 +132,7 @@
         file.setObjType(Constants.MultiFile.SOLUTIONS_CONFIRMATION_LATTER.getKey());
         file.setType(Constants.formatIntegerNum(file.getType()));
         multifileMapper.insert(file);
+        file.setId(null);
         file.setObjId(newModel.getId());
         multifileMapper.insert(file);
         return solutions.getId();
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/UnionApplyServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/UnionApplyServiceImpl.java
index 4ca3e1c..161d508 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/UnionApplyServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/UnionApplyServiceImpl.java
@@ -817,7 +817,7 @@
         String notifyUrl = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.SIGN_DONE_NOTIFY_URL).getCode();
         notifyUrl = notifyUrl.replace("${type}","0").replace("${id}", unionApply.getId().toString());
 
-        String applyNo = signService.applySign(company.getName(),url,company.getName(),company.getCode(),company.getEmail(),null,company.getSignId(),notifyUrl);
+        String applyNo = signService.applySignDoByParam(company.getName(),url,company.getName(),company.getCode(),company.getEmail(),null,company.getSignId(),notifyUrl,new Float(0.7));
 
         if(StringUtils.isBlank(applyNo) ){
             throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鑾峰彇鍦ㄧ嚎绛剧珷鍦板潃澶辫触锛岃绋嶅悗閲嶈瘯锛�");
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/UnionChangeServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/UnionChangeServiceImpl.java
index c258d3a..9c2b9a9 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/UnionChangeServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/UnionChangeServiceImpl.java
@@ -1,7 +1,6 @@
 package com.doumee.service.business.impl;
 
 import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.extension.api.R;
 import com.doumee.biz.system.SystemDictDataBiz;
 import com.doumee.core.annotation.excel.ExcelExporter;
 import com.doumee.core.constants.ResponseStatus;
@@ -374,25 +373,25 @@
             throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌淇濋櫓鏂规");
         }
         if(saveUnionChangeDTO.getBusinessType().equals(Constants.ZERO)){
-            saveUnionChangeDTO.setApplyDate(unionApply.getStartTime());
+//            saveUnionChangeDTO.setApplyDate(unionApply.getStartTime());
 
             saveUnionChangeDTO.setAddValidDate(saveUnionChangeDTO.getApplyDate());
             saveUnionChangeDTO.setDelValidDate(saveUnionChangeDTO.getApplyDate());
             //鏍规嵁鐢宠鏃ユ湡 澶勭悊鍔犲噺淇濈殑 瀹為檯鐢熸晥鏃ユ湡
-//            if(Objects.nonNull(solutions.getAddValidDays())){
-//                saveUnionChangeDTO.setAddValidDate(
-//                        DateUtil.afterDateByType(saveUnionChangeDTO.getApplyDate(),0,solutions.getAddValidDays())
-//                );
-//            }else{
-//                saveUnionChangeDTO.setAddValidDate(saveUnionChangeDTO.getApplyDate());
-//            }
-//            if(Objects.nonNull(solutions.getDelValidDays())){
-//                saveUnionChangeDTO.setDelValidDate(
-//                        DateUtil.afterDateByType(saveUnionChangeDTO.getApplyDate(),0,solutions.getDelValidDays())
-//                );
-//            }else{
-//                saveUnionChangeDTO.setDelValidDate(saveUnionChangeDTO.getApplyDate());
-//            }
+            if(Objects.nonNull(solutions.getAddValidDays())){
+                saveUnionChangeDTO.setAddValidDate(
+                        DateUtil.afterDateByType(saveUnionChangeDTO.getApplyDate(),0,solutions.getAddValidDays())
+                );
+            }else{
+                saveUnionChangeDTO.setAddValidDate(saveUnionChangeDTO.getApplyDate());
+            }
+            if(Objects.nonNull(solutions.getDelValidDays())){
+                saveUnionChangeDTO.setDelValidDate(
+                        DateUtil.afterDateByType(saveUnionChangeDTO.getApplyDate(),0,solutions.getDelValidDays())
+                );
+            }else{
+                saveUnionChangeDTO.setDelValidDate(saveUnionChangeDTO.getApplyDate());
+            }
             //鍒ゆ柇鎵瑰崟鏃ユ湡 鍚堝苟鍗曠殑鎵瑰崟鐢熸晥鏈熷湪涓� 淇濆崟璧锋湡鐨勬鏃� 鍒颁繚鍗曟鏈�
             //鑾峰彇寮�濮嬫棩鏈熸鏃�
             if(saveUnionChangeDTO.getAddValidDate().getTime()<unionApply.getStartTime().getTime()
@@ -665,8 +664,8 @@
         notifyUrl = notifyUrl.replace("${type}","0").replace("${id}",unionChange.getId().toString());
 //        String applyNo = signService.applySignLocalFile(company.getName(),company.getName(),fileUrl,company.getCode(),company.getEmail(),"鍚堝苟鍗曪紙鍔犲噺淇�/鎹㈠巶锛夌敵璇风缃�",company.getSignId(),notifyUrl);
         //涓存椂浣跨敤
-        fileUrl =    "https://yybred.oss-cn-hangzhou.aliyuncs.com/apply/20241120/1c80f0d7-ab35-4355-b9fe-944464643115.pdf";
-        String applyNo = signService.applySign(companyName,fileUrl,companyName,creditCode,email,"浜哄憳鍚嶅崟绛剧珷",null,notifyUrl);
+        fileUrl =    "https://yybred.oss-cn-hangzhou.aliyuncs.com/apply/20241230/a0d128f2-ba6c-4ad4-b86b-b2610a513d41.pdf";
+        String applyNo = signService.applySignWidthQifengSet(companyName,fileUrl,companyName,creditCode,email,"浜哄憳鍚嶅崟绛剧珷",null,notifyUrl,new Float(0.7));
         if(StringUtils.isBlank(applyNo) ){
             throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鑾峰彇鍦ㄧ嚎绛剧珷鍦板潃澶辫触锛岃绋嶅悗閲嶈瘯锛�");
         }
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/WorktypeServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/WorktypeServiceImpl.java
index 1db15a7..81029ab 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/WorktypeServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/WorktypeServiceImpl.java
@@ -221,7 +221,7 @@
 
 
     @Override
-    public Set<Integer> importBatchForSolutions(MultipartFile file , Integer insuranceId){
+    public Set<Map<String,Object>> importBatchForSolutions(MultipartFile file , Integer insuranceId){
         ExcelImporter ie = null;
         List<WorktypeImport> dataList =null;
         try {
@@ -233,11 +233,12 @@
         if(dataList == null || dataList.size() ==0){
             throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝褰曞叆鏁版嵁涓虹┖锛�");
         }
-        List<Integer> result = new ArrayList<>();
+        List<Map<String,Object>> result = new ArrayList<>();
         List<Worktype> inWorkTypeList = null;
         if(Objects.nonNull(insuranceId)){
             inWorkTypeList = worktypeMapper.selectList(new QueryWrapper<Worktype>().lambda().eq(Worktype::getIsdeleted,Constants.ZERO)
-                    .eq(Worktype::getInsuranceId,insuranceId).eq(Worktype::getDataType,Constants.TWO)
+                    .eq(Worktype::getInsuranceId,insuranceId)
+                    .eq(Worktype::getDataType,Constants.TWO)
             );
         }
         for(WorktypeImport model : dataList){
@@ -247,11 +248,14 @@
             if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(inWorkTypeList)){
                 Integer workTypeId = getHasWorkTypeByName(model.getName(),inWorkTypeList);
                 if(Objects.nonNull(workTypeId)){
-                    result.add(workTypeId);
+                    Map<String,Object> map = new HashMap<>();
+                    map.put("id",workTypeId);
+                    map.put("name",model.getName());
+                    result.add(map);
                 }
             }
         }
-        Set<Integer> resultSet = new HashSet<>(result);
+        Set<Map<String,Object>> resultSet = new HashSet<>(result);
         return resultSet;
     }
 
diff --git a/server/service/src/main/java/com/doumee/service/business/third/SignService.java b/server/service/src/main/java/com/doumee/service/business/third/SignService.java
index 3fb41f4..16b5bcb 100644
--- a/server/service/src/main/java/com/doumee/service/business/third/SignService.java
+++ b/server/service/src/main/java/com/doumee/service/business/third/SignService.java
@@ -262,7 +262,31 @@
      * @param email
      * @param postionJson
      */
+    public String applySignWidthQifengSet(String name,String fileUrl,String fullname,String creditCoe,String email,String postionJson,String singId,String notifyUrl,Float qifengSet){
+      return  applySignDoByParam(name,fileUrl,fullname,creditCoe,email,postionJson,singId,notifyUrl,qifengSet);
+    }
+    /**
+     * 鍙戣捣绛剧害
+     * @param name
+     * @param fileUrl
+     * @param fullname
+     * @param creditCoe
+     * @param email
+     * @param postionJson
+     */
     public String applySign(String name,String fileUrl,String fullname,String creditCoe,String email,String postionJson,String singId,String notifyUrl){
+      return  applySignDoByParam(name,fileUrl,fullname,creditCoe,email,postionJson,singId,notifyUrl,null);
+    }
+    /**
+     * 鍙戣捣绛剧害
+     * @param name
+     * @param fileUrl
+     * @param fullname
+     * @param creditCoe
+     * @param email
+     * @param postionJson
+     */
+    public String applySignDoByParam(String name,String fileUrl,String fullname,String creditCoe,String email,String postionJson,String singId,String notifyUrl,Float qifengSet){
       try {
           initParams();
           String url=SERVICE_URL+"/v2/sign/applySign";
@@ -288,6 +312,7 @@
 //          sReq.setSearchKey(postionJson);//鍏抽敭瀛� 瀵瑰簲positionType=2
           sReq.setSignId(singId);
           sReq.setNoNeedVerify(1);
+          sReq.setQiFengOffset(qifengSet);
           signatories.add(sReq);
           params.put("signatories",signatories.toJSONString());
           System.out.println("================"+JSONObject.toJSONString(params));
diff --git a/server/service/src/main/java/com/doumee/service/system/impl/SystemDataPermissionServiceImpl.java b/server/service/src/main/java/com/doumee/service/system/impl/SystemDataPermissionServiceImpl.java
index 31a8596..69583a5 100644
--- a/server/service/src/main/java/com/doumee/service/system/impl/SystemDataPermissionServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/system/impl/SystemDataPermissionServiceImpl.java
@@ -153,6 +153,7 @@
             boolean depart=false;
             boolean departAndLeaf=false;
             boolean custom=false;
+            boolean self=false;
             String c = "";
             for(SystemDataPermissionListVO d : list){
                 if(!all && Constants.equalsInteger(d.getType(),Constants.DATAPERMISSION_TYPE.all)){
@@ -171,6 +172,9 @@
                     custom =true;
                     c += StringUtils.defaultString(d.getCustomData(),"");
                 }
+                if(  Constants.equalsInteger(d.getType(),Constants.DATAPERMISSION_TYPE.self)){
+                    self =true;
+                }
             }
             CompanyDepartment department = new CompanyDepartment();
             department.setId(user.getDepartmentId());
@@ -185,6 +189,8 @@
 
             if(all){
                 return  null;
+            }else if(self){
+                return  new ArrayList<>();
             }else{
                 List<Integer> dList = new ArrayList<>();
                 dList.add(-1);//铏氭嫙閮ㄩ棬锛屾帓鏌ョ┖闆嗗悎
diff --git a/server/service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java b/server/service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java
index a1c4a95..056421e 100644
--- a/server/service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java
@@ -3,7 +3,6 @@
 import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
-import com.baomidou.mybatisplus.extension.api.R;
 import com.doumee.config.shiro.ShiroToken;
 import com.doumee.core.constants.ResponseStatus;
 import com.doumee.core.exception.BusinessException;
diff --git a/server/service/src/main/java/com/doumee/service/system/impl/SystemUserServiceImpl.java b/server/service/src/main/java/com/doumee/service/system/impl/SystemUserServiceImpl.java
index 90b7b16..45e92a2 100644
--- a/server/service/src/main/java/com/doumee/service/system/impl/SystemUserServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/system/impl/SystemUserServiceImpl.java
@@ -13,6 +13,8 @@
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.model.Company;
+import com.doumee.dao.business.model.CompanyDepartment;
 import com.doumee.dao.business.CompanyDepartmentMapper;
 import com.doumee.dao.business.model.Company;
 import com.doumee.dao.business.model.CompanyDepartment;
@@ -180,29 +182,25 @@
     @Override
     public PageData<SystemUserListVO> findPageCompany(PageWrap<QuerySystemUserDTO> pageWrap) {
         // 鏍归儴闂ㄦ潯浠跺鐞嗭紙闇�鏌ヨ鏍归儴闂ㄤ笅鎵�鏈夐儴闂ㄧ殑鐢ㄦ埛锛�
-        if (pageWrap.getModel().getRootDeptId() != null) {
-//            pageWrap.getModel().setDepartmentIds(getDeptIds(pageWrap.getModel().getRootDeptId()));
-        } else {
-//            List<SystemDepartment> list = systemDepartmentService.findList(new QueryWrapper<>());
-//            List<Integer> collect = list.stream().map(s -> s.getId()).collect(Collectors.toList());
-//            pageWrap.getModel().setDepartmentIds(collect);
-        }
-        if (pageWrap.getModel().getCompanyId() == null) {
-            pageWrap.getModel().setCompanyId(-1);
-        }
+        IPage<Company> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+        Utils.MP.blankToNull(pageWrap.getModel());
+        pageWrap.getModel().setType(Constants.UserType.COMPANY.getKey());//鏌ヨ浼佷笟绫诲瀷
         // 鎵ц鏌ヨ
-        PageHelper.startPage(pageWrap.getPage(), pageWrap.getCapacity());
-        List<SystemUserListVO> userList = systemUserMapper.selectManageList(pageWrap.getModel(), pageWrap.getOrderByClause());
-        String zhuboRoomUrl = systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.ZHUBO_ROOM_URL).getCode();
-
-        for (SystemUserListVO user : userList) {
-            // 鏌ヨ鐢ㄦ埛瑙掕壊鍒楄〃
-            user.setRoles(systemRoleService.findByUserId(user.getId()));
-            // 鏌ヨ鐢ㄦ埛宀椾綅鍒楄〃
-//            user.setPositions(systemPositionService.findByUserId(user.getId()));
-            user.setZhuboRoomUrl(zhuboRoomUrl);
-        }
-        return PageData.from(new PageInfo<>(userList));
+        MPJLambdaWrapper<SystemUser> wrapper = new MPJLambdaWrapper<>();
+        wrapper .selectAll(SystemUser.class)
+                .select("(select count(distinct(a.company_id) from company_permisson a where a.user_id=t.id and a.ideleted=0 and a.type=1)",SystemUser::getAuthNum)
+                .selectAs(Company::getName,SystemUser::getCompanyName)
+                .selectAs(CompanyDepartment::getName,SystemUser::getDepartmentName)
+                .leftJoin(Company.class,Company::getId,SystemUser::getCompanyId)
+                .leftJoin(CompanyDepartment.class,CompanyDepartment::getId,SystemUser::getDepartmentId)
+                .eq( pageWrap.getModel().getDepartmentId() !=null,SystemUser::getDepartmentId, pageWrap.getModel().getDepartmentId())
+                .eq( pageWrap.getModel().getStatus() !=null,SystemUser::getStatus, pageWrap.getModel().getStatus())
+                .like(StringUtils.isNotBlank(pageWrap.getModel().getMobile()),SystemUser::getMobile, pageWrap.getModel().getMobile())
+                .like(StringUtils.isNotBlank(pageWrap.getModel().getRealname()),SystemUser::getRealname, pageWrap.getModel().getRealname())
+                .like(StringUtils.isNotBlank(pageWrap.getModel().getUsername()),SystemUser::getUsername, pageWrap.getModel().getUsername())
+                .like(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()),SystemUser::getCompanyName, pageWrap.getModel().getCompanyName());
+        IPage<SystemUserListVO> result =  systemUserMapper.selectJoinPage(page,SystemUserListVO.class,wrapper);
+        return  PageData.from(result);
     }
 
     @Override
@@ -271,14 +269,12 @@
         Utils.MP.blankToNull(pageWrap.getModel());
         queryWrapper.selectAll(SystemUser.class);
         queryWrapper.eq(SystemUser::getDeleted, Constants.ZERO);
-        queryWrapper.and(StringUtils.isNotBlank(pageWrap.getModel().getUsername()),ms->ms.like(SystemUser::getUsername,pageWrap.getModel().getUsername())
-        .or().like(SystemUser::getMobile,pageWrap.getModel().getUsername())
+        queryWrapper.and(StringUtils.isNotBlank(pageWrap.getModel().getUsername()),
+                ms->ms.like(SystemUser::getUsername,pageWrap.getModel().getUsername())
+                    .or().like(SystemUser::getMobile,pageWrap.getModel().getUsername())
                 .or().like(SystemUser::getRealname,pageWrap.getModel().getUsername())
         );
         queryWrapper.orderByDesc(SystemUser::getCreateTime);
-
-
-
         IPage<SystemUser> result = systemUserJoinMapper.selectJoinPage(page, SystemUser.class, queryWrapper);
 
         return PageData.from(result);

--
Gitblit v1.9.3