liuyc 3 tahun lalu
induk
melakukan
48796052be
23 mengubah file dengan 235 tambahan dan 118 penghapusan
  1. 14 1
      blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/entity/User.java
  2. 43 0
      blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/vo/UserVO2.java
  3. 38 29
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ContractInfoController.java
  4. 13 5
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ProjectInfoController.java
  5. 4 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsFormElementController.java
  6. 3 3
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsInfoController.java
  7. 2 2
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsTreeController.java
  8. 2 2
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsTreePrivateController.java
  9. 2 1
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ContractInfoMapper.java
  10. 7 7
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ContractInfoMapper.xml
  11. 1 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/SaveUserInfoByProjectMapper.java
  12. 1 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/SaveUserInfoByProjectMapper.xml
  13. 2 2
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreePrivateMapper.java
  14. 3 2
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/IContractInfoService.java
  15. 3 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/IWbsTreeContractService.java
  16. 1 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/IWbsTreePrivateService.java
  17. 8 1
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ContractInfoServiceImpl.java
  18. 9 4
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeContractServiceImpl.java
  19. 6 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreePrivateServiceImpl.java
  20. 51 50
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeServiceImpl.java
  21. 9 8
      blade-service/blade-system/src/main/java/org/springblade/system/service/impl/RoleServiceImpl.java
  22. 3 0
      blade-service/blade-user/src/main/java/org/springblade/system/user/mapper/UserMapper.xml
  23. 10 1
      blade-service/blade-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java

+ 14 - 1
blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/entity/User.java

@@ -33,7 +33,7 @@ import java.util.Date;
 @EqualsAndHashCode(callSuper = true)
 public class User extends TenantEntity {
 
-	private static final long serialVersionUID = 1L;
+    private static final long serialVersionUID = 1L;
 
     /**
      * 用户编号
@@ -51,6 +51,10 @@ public class User extends TenantEntity {
      * 密码
      */
     private String password;
+    /**
+     * 明文密码
+     */
+    private String plaintextPassword;
     /**
      * 昵称
      */
@@ -96,5 +100,14 @@ public class User extends TenantEntity {
      */
     private String postId;
 
+    /**
+     * 单位名称
+     */
+    private String companyName;
+
+    /**
+     * 职位
+     */
+    private String position;
 
 }

+ 43 - 0
blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/vo/UserVO2.java

@@ -0,0 +1,43 @@
+package org.springblade.system.user.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class UserVO2 implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 用户uId
+     */
+    private Long uId;
+
+    /**
+     * id (临时表id)
+     */
+    private Long id;
+
+    /**
+     *account
+     */
+    private String account;
+
+    /**
+     * password (映射到明文密码)
+     */
+    private String password;
+
+    /**
+     * name
+     */
+    private String name;
+
+    /**
+     * phone
+     */
+    private String phone;
+
+
+
+}

+ 38 - 29
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ContractInfoController.java

@@ -39,6 +39,7 @@ import org.springblade.core.tool.utils.StringUtil;
 import org.springblade.manager.dto.FindAllUserByConditionDTO;
 import org.springblade.manager.dto.SaveUserInfoByProjectDTO;
 import org.springblade.manager.dto.WbsTreeContractDTO;
+import org.springblade.manager.entity.WbsTreeContract;
 import org.springblade.manager.mapper.SaveUserInfoByProjectMapper;
 import org.springblade.manager.service.IWbsTreeContractService;
 import org.springblade.manager.service.SaveUserInfoByProjectService;
@@ -47,6 +48,7 @@ import org.springblade.manager.vo.WbsTreeContractTreeVO;
 import org.springblade.manager.vo.WbsTreeVO;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
+import org.springblade.system.user.vo.UserVO2;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.DigestUtils;
 import org.springframework.web.bind.annotation.*;
@@ -179,6 +181,10 @@ public class ContractInfoController extends BladeController {
     @ApiOperationSupport(order = 7)
     @ApiOperation(value = "逻辑删除", notes = "传入ids")
     public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+        List<WbsTreeContract> wbsTreeContracts = wbsTreeContractService.findWbsTreeContract(ids);
+        if (wbsTreeContracts.size() > 0) {
+            return R.fail("合同段存在WBS树,删除失败");
+        }
         return R.status(contractInfoService.deleteLogic(Func.toLongList(ids)));
     }
 
@@ -198,20 +204,22 @@ public class ContractInfoController extends BladeController {
         return R.data(list);
     }
 
+
     /**
-     * 根据项目id、合同id、岗位id查询当前分配的用户
+     * 根据姓名查询用户
      */
-    @PostMapping("/findAllUserByCondition")
-    @ApiOperationSupport(order = 9)
-    @ApiOperation(value = "查询当前项目合同岗位下的用户", notes = "传入项目id、合同id、岗位id")
-    public R<List<User>> findAllUserByCondition(@RequestBody FindAllUserByConditionDTO values) {
-        List<User> users = contractInfoService.findAllUserByCondition(values);
-        if (users.size() > 0) {
-            return R.data(users);
+    @GetMapping("/findUserByName")
+    @ApiOperationSupport(order = 11)
+    @ApiOperation(value = "根据姓名模糊查询用户", notes = "传入用户姓名")
+    public R<List<User>> findUserByName(@RequestParam("name") String name) {
+        List<User> userByName = contractInfoService.findUserByName(name);
+        if (userByName.size() > 0) {
+            return R.data(userByName);
         }
-        return R.data(users, "未查询到数据");
+        return R.success("未查询到信息");
     }
 
+
     /**
      * 根据项目id、合同id、角色id查询当前运维的用户
      */
@@ -224,27 +232,12 @@ public class ContractInfoController extends BladeController {
     }
 
 
-    /**
-     * 根据姓名查询用户
-     */
-    @GetMapping("/findUserByName")
-    @ApiOperationSupport(order = 11)
-    @ApiOperation(value = "根据姓名模糊查询用户", notes = "传入用户姓名")
-    public R<List<User>> findUserByName(@RequestParam("name") String name) {
-        List<User> userByName = contractInfoService.findUserByName(name);
-        if (userByName.size() > 0) {
-            return R.data(userByName);
-        }
-        return R.success("未查询到信息");
-    }
-
-
     /**
      * 项目分配用户批量保存-项目分配维护人员
      */
     @PostMapping("/saveUserInfoByProject")
     @ApiOperationSupport(order = 12)
-    @ApiOperation(value = "保存-项目分配维护人员", notes = "传入项目id、合同id、岗位id、用户id List集合")
+    @ApiOperation(value = "保存-项目分配维护人员", notes = "传入项目id、合同id、字典主键id、用户id List集合")
     public R saveUserInfoByProject(@RequestBody List<SaveUserInfoByProjectDTO> list) {
         if (list.size() > 0) {
             list.forEach((lists) -> {
@@ -256,7 +249,7 @@ public class ContractInfoController extends BladeController {
                                 eq(SaveUserInfoByProjectDTO::getRoleId, lists.getRoleId()).
                                 eq(SaveUserInfoByProjectDTO::getUserId, lists.getUserId()));
                 if (row > 0L) {
-                    throw new ServiceException(StringUtil.format("当前用户岗位已存在该合同段,请重新选择"));
+                    throw new ServiceException("当前用户角色已存在该合同段,请重新选择");
                 }
                 if (StringUtils.isEmpty(lists.getContractId())) {
                     //新增到全部合同段
@@ -278,12 +271,28 @@ public class ContractInfoController extends BladeController {
         return R.fail("保存失败");
     }
 
+    /**
+     * 根据项目id、合同id、岗位id查询当前分配的用户-查询当前项目合同岗位下的用户
+     */
+    @PostMapping("/findAllUserByCondition")
+    @ApiOperationSupport(order = 9)
+    @ApiOperation(value = "查询当前项目合同岗位下的用户", notes = "传入项目id、合同id、岗位id")
+    public R<List<UserVO2>> findAllUserByCondition(@RequestBody FindAllUserByConditionDTO values) {
+        //TODO 修改成分页显示 参考上面运维人员分页
+        List<UserVO2> users = contractInfoService.findAllUserByCondition(values);
+        if (users.size() > 0) {
+            return R.data(users);
+        }
+        return R.data(users, "未查询到数据");
+    }
+
+
     /**
      * 项目分配用户批量保存-项目合同分配人员
      */
     @PostMapping("/saveUserInfoByProjectTow")
     @ApiOperationSupport(order = 13)
-    @ApiOperation(value = "保存-项目合同分配人员", notes = "传入项目id、合同id、岗位id、用户id")
+    @ApiOperation(value = "保存-项目合同分配人员", notes = "传入项目id、合同id、岗位处roleId、用户id")
     @Transactional(rollbackFor = Exception.class)
     public R saveUserInfoByProjectTow(@RequestBody List<SaveUserInfoByProjectDTO> list) {
         if (list.size() > 0) {
@@ -293,10 +302,10 @@ public class ContractInfoController extends BladeController {
                         Wrappers.<SaveUserInfoByProjectDTO>query().lambda().
                                 eq(SaveUserInfoByProjectDTO::getProjectId, lists.getProjectId()).
                                 eq(SaveUserInfoByProjectDTO::getContractId, lists.getContractId()).
-                                eq(SaveUserInfoByProjectDTO::getPostId, lists.getPostId()).
+                                eq(SaveUserInfoByProjectDTO::getRoleId, lists.getRoleId()).
                                 eq(SaveUserInfoByProjectDTO::getUserId, lists.getUserId()));
                 if (row > 0L) {
-                    throw new ServiceException(StringUtil.format("当前用户岗位已存在,请重新选择"));
+                    throw new ServiceException("当前用户角色岗位已存在,请重新选择");
                 }
             });
             boolean result = saveUserInfoByProject.saveBatch(list);

+ 13 - 5
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ProjectInfoController.java

@@ -30,6 +30,9 @@ import org.springblade.core.tool.utils.Func;
 import org.springblade.manager.dto.SaveUserInfoByProjectDTO;
 import org.springblade.manager.dto.WbsTreeContractDTO;
 import org.springblade.manager.dto.ProjectInfoDTO;
+import org.springblade.manager.entity.ContractInfo;
+import org.springblade.manager.entity.WbsTreePrivate;
+import org.springblade.manager.service.IContractInfoService;
 import org.springblade.manager.service.IWbsTreePrivateService;
 import org.springblade.manager.service.IWbsTreeService;
 import org.springblade.manager.vo.*;
@@ -57,6 +60,7 @@ public class ProjectInfoController extends BladeController {
     private final IProjectInfoService projectInfoService;
     private final IWbsTreeService wbsTreeService;
     private final IWbsTreePrivateService wbsTreePrivateService;
+    private final IContractInfoService iContractInfoService;
 
     /**
      * 详情
@@ -162,6 +166,14 @@ public class ProjectInfoController extends BladeController {
     @ApiOperationSupport(order = 7)
     @ApiOperation(value = "逻辑删除", notes = "传入ids")
     public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+        List<ContractInfo> infos = iContractInfoService.findContractInProject(ids);
+        if (infos.size() > 0) {
+            return R.fail("当前项目有合同段,删除失败");
+        }
+        List<WbsTreePrivate> wbsTreePrivates = wbsTreePrivateService.findWbsTreePrivate(ids);
+        if (wbsTreePrivates.size() > 0) {
+            return R.fail("当前项目存在WBS私有树,删除失败");
+        }
         return R.status(projectInfoService.deleteLogic(Func.toLongList(ids)));
     }
 
@@ -223,12 +235,8 @@ public class ProjectInfoController extends BladeController {
         String s = wbsTreeService.submitWbsTreeInProject(pawDTO);
         switch (s) {
             case "1":
-                return R.success("请选择需要关联的节点树");
-            case "2":
-                return R.success("未进行任何操作");
-            case "3":
                 return R.success("公有wbs树新元素表同步成功");
-            case "4":
+            case "2":
                 return R.success("关联wbs树成功");
             default:
                 return R.success("关联wbs树失败");

+ 4 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsFormElementController.java

@@ -139,6 +139,10 @@ public class WbsFormElementController extends BladeController {
             } else if (("日期").equals(wbsFE.getElementType()) || ("datetime").equals(wbsFE.getElementType())) {
                 wbsFE.setElementType("4");
                 wbsFE.setElementLength("0");
+            } else if (("数值").equals(wbsFE.getElementType())) {
+                wbsFE.setElementType("3");
+            } else if (("签名").equals(wbsFE.getElementType())) {
+                wbsFE.setElementType("1");
             }
         }
         return R.data(list, "操作成功");

+ 3 - 3
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsInfoController.java

@@ -149,10 +149,10 @@ public class WbsInfoController extends BladeController {
     @ApiOperation(value = "逻辑删除", notes = "传入ids")
     @Transactional(rollbackFor = Exception.class)
     public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
-        List<WbsTree> list = wbsTreeService.findByWbsTreeNode(ids);
+        /*List<WbsTree> list = wbsTreeService.findByWbsTreeNode(ids);
         if (list.size() > 0) {
             return R.fail("当前模板根节点下有子节点,删除失败");
-        }
+        }*/
         List<WbsTreePrivate> wbsTreePrivates = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>query()
                 .lambda()
                 .eq(WbsTreePrivate::getWbsId, ids)
@@ -163,7 +163,7 @@ public class WbsInfoController extends BladeController {
         }
         boolean b = wbsInfoService.deleteLogic(Func.toLongList(ids));
         if (b) {
-            //删除wbsTree节点
+            //删除wbsTree节点
             int row = wbsTreeService.deleteLogicByWbsId(ids);
             if (row > 0) {
                 return R.success("删除成功");

+ 2 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsTreeController.java

@@ -160,10 +160,10 @@ public class WbsTreeController extends BladeController {
     @ApiOperation(value = "逻辑删除", notes = "传入节点id")
     public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String id) {
         //是否存在子节点、表单
-        List<WbsTree> wbsTreeList = wbsTreeService.selectByWbsId(id);
+        /*List<WbsTree> wbsTreeList = wbsTreeService.selectByWbsId(id);
         if (wbsTreeList.size() > 0) {
             return R.fail("当前节点下存在子节点或表单,删除失败");
-        }
+        }*/
         //是否引用
         List<WbsTreePrivate> wbsTreePrivates = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>query().lambda()
                 .eq(WbsTreePrivate::getStatus, 1)

+ 2 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsTreePrivateController.java

@@ -55,14 +55,14 @@ public class WbsTreePrivateController extends BladeController {
         WbsTreePrivate wbsTreePrivate = wbsTreePrivateMapper.selectOne(Wrappers.<WbsTreePrivate>query().lambda()
                 .eq(WbsTreePrivate::getPKeyId, pKeyId)
                 .eq(WbsTreePrivate::getStatus, 1));
-        List<WbsTreePrivate> wbsTreePrivate1 = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>query().lambda()
+        /*List<WbsTreePrivate> wbsTreePrivate1 = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>query().lambda()
                 .eq(WbsTreePrivate::getParentId, wbsTreePrivate.getId())
                 .eq(WbsTreePrivate::getProjectId, wbsTreePrivate.getProjectId())
                 .eq(WbsTreePrivate::getWbsId, wbsTreePrivate.getWbsId())
                 .eq(WbsTreePrivate::getStatus, 1));
         if (wbsTreePrivate1.size() > 0) {
             return R.fail("当前节点下存在子节点或表单,删除失败");
-        }
+        }*/
         //是否被合同段引用
         List<WbsTreeContract> wbsTreeContracts = wbsTreeContractMapper.selectList(Wrappers.<WbsTreeContract>query().lambda()
                 .eq(WbsTreeContract::getStatus, 1)

+ 2 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ContractInfoMapper.java

@@ -24,6 +24,7 @@ import org.springblade.manager.vo.*;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.system.user.entity.User;
+import org.springblade.system.user.vo.UserVO2;
 
 import java.util.List;
 
@@ -52,7 +53,7 @@ public interface ContractInfoMapper extends BaseMapper<ContractInfo> {
 
     List<CRolePostVO> findJobByRoleId(@Param("id") String id);
 
-    List<User> findAllUserByCondition(@Param("Values") FindAllUserByConditionDTO values);
+    List<UserVO2> findAllUserByCondition(@Param("Values") FindAllUserByConditionDTO values);
 
     List<User> findUserListByCondition(IPage page, @Param("Values") FindAllUserByConditionDTO values);
 

+ 7 - 7
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ContractInfoMapper.xml

@@ -91,22 +91,23 @@
         and r.id = #{id}
     </select>
 
-    <select id="findAllUserByCondition" resultType="org.springblade.system.user.vo.UserVO">
+    <select id="findAllUserByCondition" resultType="org.springblade.system.user.vo.UserVO2">
         SELECT
-        u.id as uId,mpau.id,pi.project_name,ci.contract_name,u.id as uid,u.`name`,u.account,u.`password`,u.`phone`
+        u.id as uId,mpau.id,pi.project_name,ci.contract_name,u.id as uid,u.`name`,u.account,u.plaintext_password as
+        "password",u.`phone`
         FROM
         blade_user u
         INNER JOIN m_project_assignment_user mpau ON u.id = mpau.user_id
-        INNER JOIN blade_post p ON p.id = mpau.post_id
         INNER JOIN m_contract_info ci ON ci.id = mpau.contract_id
         INNER JOIN m_project_info pi ON pi.id = mpau.project_id
+        INNER JOIN blade_role r ON r.id = mpau.role_id
         WHERE mpau.is_deleted = 0 AND mpau.`status` = 1
         AND pi.id = #{Values.pId}
         <if test="Values.cId != null and Values.cId != '' ">
             AND ci.id = #{Values.cId}
         </if>
-        <if test="Values.postId !=null and Values.postId !='' ">
-            AND p.id = #{Values.postId}
+        <if test="Values.rId !=null and Values.rId !='' ">
+            AND r.id = #{Values.rId}
         </if>
     </select>
 
@@ -115,13 +116,12 @@
         mpau.id,
         u.`name`,
         u.account,
-        (select post_name from blade_post where id = u.post_id) as postName,
+        (select role_name from blade_role where id = u.role_id) as postName,
         u.`password`,
         u.`phone`
         FROM
         blade_user u
         INNER JOIN m_project_assignment_user mpau ON u.id = mpau.user_id
-        INNER JOIN blade_role r ON r.id = mpau.role_id
         INNER JOIN m_project_info pi ON pi.id = mpau.project_id
         WHERE
         mpau.is_deleted = 0

+ 1 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/SaveUserInfoByProjectMapper.java

@@ -12,4 +12,5 @@ public interface SaveUserInfoByProjectMapper extends BaseMapper<SaveUserInfoByPr
 
     List<SaveUserInfoByProjectDTO> queryProjectBusinessUser(@Param("projectId") Long projectId,@Param("contractId") Long contractId);
 
+
 }

+ 1 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/SaveUserInfoByProjectMapper.xml

@@ -20,6 +20,7 @@
         <result column="is_deleted" property="isDeleted"/>
     </resultMap>
 
+
     <select id="queryCurrentUserDownAllContractAndProjectId" resultMap="contractInfoResultMap">
         select project_id, contract_id from m_project_assignment_user where is_deleted = 0 and user_id = #{userId}
     </select>

+ 2 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreePrivateMapper.java

@@ -29,8 +29,8 @@ public interface WbsTreePrivateMapper extends BaseMapper<WbsTreePrivate> {
 
 
     WbsTreePrivate selectByCondition(@Param("id") String id,
-                                     @Param("projectId") String projectId,
-                                     @Param("wbsId") String wbsId);
+                                     @Param("wbsId") String wbsId,
+                                     @Param("projectId") String projectId);
 
     void deleteByCondition(String id, String wbsId, String projectId);
 

+ 3 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/service/IContractInfoService.java

@@ -25,6 +25,7 @@ import org.springblade.core.mp.base.BaseService;
 import org.springblade.manager.vo.WbsTreeContractTreeVO;
 import org.springblade.manager.vo.WbsTreeVO;
 import org.springblade.system.user.entity.User;
+import org.springblade.system.user.vo.UserVO2;
 
 
 import java.util.List;
@@ -45,7 +46,7 @@ public interface IContractInfoService extends BaseService<ContractInfo> {
 
     List<CRolePostVO> findJobByRoleId(String id);
 
-    List<User> findAllUserByCondition(FindAllUserByConditionDTO values);
+    List<UserVO2> findAllUserByCondition(FindAllUserByConditionDTO values);
 
     IPage<User> findUserListByCondition(IPage<User> page, FindAllUserByConditionDTO values);
 
@@ -67,5 +68,5 @@ public interface IContractInfoService extends BaseService<ContractInfo> {
 
     boolean saveAndUpdateContract(ContractInfoVO contractInfo);
 
-
+    List<ContractInfo> findContractInProject(String ids);
 }

+ 3 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/IWbsTreeContractService.java

@@ -5,9 +5,12 @@ import org.springblade.manager.dto.WbsTreeContractDTO;
 import org.springblade.manager.entity.WbsTree;
 import org.springblade.manager.entity.WbsTreeContract;
 
+import java.util.List;
+
 
 public interface IWbsTreeContractService extends BaseService<WbsTreeContract> {
 
     boolean submitWbsTreeInContract(WbsTreeContractDTO wbsTreeContractDTO);
 
+    List<WbsTreeContract> findWbsTreeContract(String ids);
 }

+ 1 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/IWbsTreePrivateService.java

@@ -34,4 +34,5 @@ public interface IWbsTreePrivateService extends BaseService<WbsTreePrivate> {
 
     int deleteLogicBypKeyId(String pKeyId);
 
+    List<WbsTreePrivate> findWbsTreePrivate(String ids);
 }

+ 8 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ContractInfoServiceImpl.java

@@ -17,6 +17,7 @@
 package org.springblade.manager.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.AllArgsConstructor;
 import org.apache.ibatis.annotations.Param;
 import org.springblade.common.utils.BaiduApiUtil;
@@ -33,6 +34,7 @@ import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springblade.manager.vo.WbsTreeContractTreeVO;
 import org.springblade.manager.vo.WbsTreeVO;
 import org.springblade.system.user.entity.User;
+import org.springblade.system.user.vo.UserVO2;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springframework.transaction.annotation.Transactional;
@@ -79,7 +81,7 @@ public class ContractInfoServiceImpl
     }
 
     @Override
-    public List<User> findAllUserByCondition(FindAllUserByConditionDTO values) {
+    public List<UserVO2> findAllUserByCondition(FindAllUserByConditionDTO values) {
         return contractInfoMapper.findAllUserByCondition(values);
     }
 
@@ -190,4 +192,9 @@ public class ContractInfoServiceImpl
         }
         return false;
     }
+
+    @Override
+    public List<ContractInfo> findContractInProject(String ids) {
+        return baseMapper.selectList(Wrappers.<ContractInfo>query().lambda().eq(ContractInfo::getPId, ids));
+    }
 }

+ 9 - 4
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeContractServiceImpl.java

@@ -1,6 +1,7 @@
 package org.springblade.manager.service.impl;
 
 
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.AllArgsConstructor;
 import org.apache.commons.lang.StringUtils;
 import org.springblade.business.entity.ConstructionLedger;
@@ -51,7 +52,7 @@ public class WbsTreeContractServiceImpl
                 idList2.add(String.valueOf(wbsTreeContract.getId()));
             }
         }
-        //比较项目wbs私有树与合同段wbs树是否相同,相同则不修改,不同则修改
+        //比较
         List<String> diffrent = getDiffrent(idList1, idList2);
         if (diffrent.size() == 0) {//相同
             throw new ServiceException("未进行任何操作");
@@ -65,7 +66,7 @@ public class WbsTreeContractServiceImpl
                         baseMapper.updateByCondition(id, pawDTO.getProjectId(), pawDTO.getContractId(), pawDTO.getWbsId());
                     } else {
                         //获取WbsTreePrivate对象
-                        WbsTreePrivate wbsTreePrivate = wbsTreePrivateMapper.selectByCondition(id, pawDTO.getProjectId(), pawDTO.getWbsId());
+                        WbsTreePrivate wbsTreePrivate = wbsTreePrivateMapper.selectByCondition(id, pawDTO.getWbsId(), pawDTO.getProjectId());
                         Integer wbsType = wbsInfo.getWbsType();
                         Long snowId = SnowFlakeUtil.getId();
                         if (wbsTreePrivate != null) {
@@ -85,16 +86,20 @@ public class WbsTreeContractServiceImpl
                         }
                     }
                 }
-                return true;
             } else { //逻辑删除当前多余的合同段树节点
                 for (String id : diffrent) {
                     baseMapper.deleteByCondition(id, pawDTO.getWbsId(), pawDTO.getProjectId(), pawDTO.getContractId());
                 }
-                return true;
             }
+            return true;
         }
     }
 
+    @Override
+    public List<WbsTreeContract> findWbsTreeContract(String ids) {
+        return baseMapper.selectList(Wrappers.<WbsTreeContract>query().lambda().eq(WbsTreeContract::getContractId, ids));
+    }
+
     public static List<String> getDiffrent(List<String> list1, List<String> list2) {
         List<String> diff = new ArrayList<String>();
         List<String> maxList = list1;

+ 6 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreePrivateServiceImpl.java

@@ -1,6 +1,7 @@
 package org.springblade.manager.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.AllArgsConstructor;
 import org.springblade.common.utils.SnowFlakeUtil;
 import org.springblade.core.mp.base.BaseServiceImpl;
@@ -140,6 +141,11 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
         return baseMapper.updateIsDeletedByPKeyId(pKeyId);
     }
 
+    @Override
+    public List<WbsTreePrivate> findWbsTreePrivate(String ids) {
+        return baseMapper.selectList(Wrappers.<WbsTreePrivate>query().lambda().eq(WbsTreePrivate::getProjectId, ids));
+    }
+
 
     public List<WbsTreePrivate> findAllNodeList(String wbsTreeIds, String projectId, String wbsId) {
         String[] ids = wbsTreeIds.split(",");

+ 51 - 50
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeServiceImpl.java

@@ -26,6 +26,7 @@ import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
 import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
 import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
 import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
+import org.apache.commons.lang.StringEscapeUtils;
 import org.apache.commons.lang.StringUtils;
 import org.springblade.common.utils.SnowFlakeUtil;
 import org.springblade.core.log.exception.ServiceException;
@@ -331,17 +332,17 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
     public String submitWbsTreeInProject(WbsTreeContractDTO pawDTO) {
         String wbsTreeIds = pawDTO.getWbsTreeIds();
         /*if (StringUtils.isEmpty(wbsTreeIds)) {
-            return "1";
+            throw new ServiceException("请选择需要关联的节点树");
         }*/
         String[] ids = wbsTreeIds.split(",");
         List<String> idList1 = Arrays.asList(ids);
         List<String> idList2 = new ArrayList<>();
         //查询出当前私有库下所有的wbs节点
-        QueryWrapper<WbsTreePrivate> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("wbs_id", pawDTO.getWbsId());
-        queryWrapper.eq("project_id", pawDTO.getProjectId());
-        queryWrapper.eq("type", 1);
-        List<WbsTreePrivate> wbsTreePrivates = wbsTreePrivateMapper.selectList(queryWrapper);
+        List<WbsTreePrivate> wbsTreePrivates = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>query().lambda()
+                .eq(WbsTreePrivate::getWbsId, pawDTO.getWbsId())
+                .eq(WbsTreePrivate::getProjectId, pawDTO.getProjectId())
+                .eq(WbsTreePrivate::getType, 1)
+        );
         for (WbsTreePrivate wbsTreePrivate : wbsTreePrivates) {
             idList2.add(String.valueOf(wbsTreePrivate.getId()));
         }
@@ -353,28 +354,28 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
             List<WbsTree> allNodeList = findAllNodeList(wbsTreeIds);
             List<WbsTree> wbsTreeListAll = new ArrayList<>();
             for (WbsTree wbsTree : allNodeList) {
-                QueryWrapper<WbsTree> queryWrapper1 = new QueryWrapper<>();
-                queryWrapper1.eq("wbs_id", pawDTO.getWbsId());
-                queryWrapper1.eq("type", 2);
-                queryWrapper1.eq("parent_id", wbsTree.getId());
-                List<WbsTree> wbsTreeList = wbsTreeMapper.selectList(queryWrapper1);
+                List<WbsTree> wbsTreeList = wbsTreeMapper.selectList(Wrappers.<WbsTree>query().lambda()
+                        .eq(WbsTree::getWbsId, pawDTO.getWbsId())
+                        .eq(WbsTree::getType, 2)
+                        .eq(WbsTree::getParentId, wbsTree.getId())
+                );
                 wbsTreeListAll.addAll(wbsTreeList);
             }
             for (WbsTree wbsTree : wbsTreeListAll) {
                 tableId1.add(String.valueOf(wbsTree.getId()));
             }
             //获取项目私有树下所有的元素表
-            QueryWrapper<WbsTreePrivate> queryWrapper3 = new QueryWrapper<>();
-            queryWrapper3.eq("wbs_id", pawDTO.getWbsId());
-            queryWrapper3.eq("project_id", pawDTO.getProjectId());
-            queryWrapper3.eq("type", 2);
-            List<WbsTreePrivate> wbsTreePrivates1 = wbsTreePrivateMapper.selectList(queryWrapper3);
+            List<WbsTreePrivate> wbsTreePrivates1 = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>query().lambda()
+                    .eq(WbsTreePrivate::getWbsId, pawDTO.getWbsId())
+                    .eq(WbsTreePrivate::getProjectId, pawDTO.getProjectId())
+                    .eq(WbsTreePrivate::getType, 2)
+            );
             for (WbsTreePrivate wbsTreePrivate : wbsTreePrivates1) {
                 tableId2.add(String.valueOf(wbsTreePrivate.getId()));
             }
             List<String> diffrent1 = WbsTreeContractServiceImpl.getDiffrent(tableId1, tableId2);
             if (diffrent1.size() == 0) {
-                return "2";
+                throw new ServiceException("未进行任何操作");
             } else {
                 if (tableId1.size() > tableId2.size()) {
                     //同步元素表
@@ -383,15 +384,19 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                         Long snowId1 = SnowFlakeUtil.getId();
                         wbsTreePrivateMapper.insertCombination1(snowId1, wbsTree, pawDTO.getWbsType(), pawDTO.getProjectId());
                     }
-                    return "3";
+                    return "1";
                 }
-                //TODO 暂未说明是否要同步删除
+                //TODO 是否要同步删除元素表
             }
         } else {
             if (idList1.size() > idList2.size()) {
+                //新增前去删除当前项目已经引用的旧的私有节点,避免重复引用
+                wbsTreePrivateMapper.delete(Wrappers.<WbsTreePrivate>query().lambda().eq(WbsTreePrivate::getProjectId, pawDTO.getProjectId()));
+
                 for (String id : diffrent) {
                     //项目私有wbs节点库存在该节点且为删除状态,那么修改is_deleted=0,否则新增
                     WbsTreePrivate wbsTreePrivate = wbsTreePrivateMapper.selectByCondition2(id, pawDTO.getProjectId(), pawDTO.getWbsId());
+
                     if (wbsTreePrivate != null) {
                         //修改该节点
                         wbsTreePrivateMapper.updateByCondition(id, pawDTO.getProjectId(), pawDTO.getWbsId());
@@ -411,15 +416,14 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                                     //新增元素表
                                     for (WbsTree tree : wbsTreeTableList) {
                                         //判重
-                                        QueryWrapper<WbsTreePrivate> queryWrapper1 = new QueryWrapper<>();
-                                        queryWrapper1.eq("id", tree.getId());
-                                        queryWrapper1.eq("wbs_id", pawDTO.getWbsId());
-                                        queryWrapper1.eq("project_id", pawDTO.getProjectId());
-                                        queryWrapper1.eq("parent_id", tree.getParentId());
-                                        queryWrapper1.eq("dept_name", tree.getDeptName());
-                                        queryWrapper1.eq("type", 2);
-                                        WbsTreePrivate wbsTreePrivates1 = wbsTreePrivateMapper.selectOne(queryWrapper1);
-                                        System.out.println(wbsTreePrivates1 + " wbsTreePrivates1 ");
+                                        WbsTreePrivate wbsTreePrivates1 = wbsTreePrivateMapper.selectOne(Wrappers.<WbsTreePrivate>query().lambda()
+                                                .eq(WbsTreePrivate::getId, tree.getId())
+                                                .eq(WbsTreePrivate::getWbsId, pawDTO.getWbsId())
+                                                .eq(WbsTreePrivate::getProjectId, pawDTO.getProjectId())
+                                                .eq(WbsTreePrivate::getParentId, tree.getParentId())
+                                                .eq(WbsTreePrivate::getDeptName, tree.getDeptName())
+                                                .eq(WbsTreePrivate::getType, 2)
+                                        );
                                         if (wbsTreePrivates1 == null) {
                                             Long snowId1 = SnowFlakeUtil.getId();
                                             wbsTreePrivateMapper.insertCombination1(snowId1, tree, pawDTO.getWbsType(), pawDTO.getProjectId());
@@ -434,22 +438,27 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                             WbsTreePrivate wbsTreePrivate1 = wbsTreePrivateMapper.selectByCondition(id, pawDTO.getWbsId(), pawDTO.getReferencePrivateWbsProjectId());
                             //引用的私有库根节点primaryKeyId,赋值给新增的私有树wbsId字段
                             String wbsId = String.valueOf(pawDTO.getPrimaryKeyId());
+                            if (wbsTreePrivate1 == null) {
+                                throw new ServiceException("当前WBS私有树不存在,请重新选择");
+                            }
                             wbsTreePrivate1.setWbsId(wbsId);
                             Long snowId = SnowFlakeUtil.getId();
+
+                            //新增
                             wbsTreePrivateMapper.insertCombination2(snowId, wbsTreePrivate1, pawDTO.getProjectId());  //pawDTO.getProjectId() 为当前项目id
                             //查询该节点下是否有元素表
                             List<WbsTree> wbsTreeTableList = wbsTreePrivateMapper.selectIsTable(wbsTreePrivate1.getId(), pawDTO.getReferencePrivateWbsProjectId());
                             if (wbsTreeTableList.size() > 0) {
                                 for (WbsTree tree : wbsTreeTableList) {
                                     //判重
-                                    QueryWrapper<WbsTreePrivate> queryWrapper2 = new QueryWrapper<>();
-                                    queryWrapper2.eq("id", tree.getId());
-                                    queryWrapper2.eq("wbs_id", pawDTO.getWbsId());
-                                    queryWrapper2.eq("project_id", pawDTO.getProjectId());
-                                    queryWrapper2.eq("parent_id", tree.getParentId());
-                                    queryWrapper2.eq("dept_name", tree.getDeptName());
-                                    queryWrapper2.eq("type", 2);
-                                    WbsTreePrivate wbsTreePrivates1 = wbsTreePrivateMapper.selectOne(queryWrapper2);
+                                    WbsTreePrivate wbsTreePrivates1 = wbsTreePrivateMapper.selectOne(Wrappers.<WbsTreePrivate>query().lambda()
+                                            .eq(WbsTreePrivate::getId, tree.getId())
+                                            .eq(WbsTreePrivate::getWbsId, pawDTO.getWbsId())
+                                            .eq(WbsTreePrivate::getProjectId, pawDTO.getProjectId())
+                                            .eq(WbsTreePrivate::getParentId, tree.getParentId())
+                                            .eq(WbsTreePrivate::getDeptName, tree.getDeptName())
+                                            .eq(WbsTreePrivate::getType, 2)
+                                    );
                                     if (wbsTreePrivates1 == null) {
                                         Long snowId1 = SnowFlakeUtil.getId();
                                         tree.setWbsId(String.valueOf(pawDTO.getPrimaryKeyId()));
@@ -471,7 +480,7 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                 }
             }
         }
-        return "4";
+        return "2";
     }
 
     public List<WbsTree> findAllNodeList(String wbsTreeIds) {
@@ -514,21 +523,13 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
         }
 
         String deptName = formElementDTO.getDeptName();
-        if (deptName.length() > 50 || deptName.length() < 1) {
-            throw new ServiceException("表名长度错误,输入范围1-50个字符长度");
-        }
-        if (deptName.contains(".")) {
-            deptName = deptName.replace(".", "");
-        }
-        if (deptName.contains(" ")) {
-            deptName = deptName.replace(" ", "");
-        }
-        if (deptName.contains("_")) {
-            deptName = deptName.replace("_", "");
+        if (deptName.length() > 100 || deptName.length() < 1) {
+            throw new ServiceException("表名长度错误,输入范围1-100个字符长度");
         }
         //初始化表名
-        String realName = getFirstSpell(deptName);
-        String newTableName = "m_wbs_f" + DateUtil.time().substring(8, 14) + "_" + realName;
+        //String realName = getFirstSpell(deptName);
+        Long id = SnowFlakeUtil.getId();
+        String newTableName = "m_wbs_form_" + DateUtil.time() + "_" + id.toString();
         formElementDTO.setInitTableName(newTableName);
 
         //创建元素表

+ 9 - 8
blade-service/blade-system/src/main/java/org/springblade/system/service/impl/RoleServiceImpl.java

@@ -205,18 +205,18 @@ public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements IR
         }
         role.setIsDeleted(BladeConstant.DB_NOT_DELETED);
 
-        //新增前判重
+        /*//新增前判重
         Long aLong = baseMapper.selectCount(new QueryWrapper<Role>()
                 .eq("parent_id", role.getParentId())
                 .eq("role_name", role.getRoleName()));
         if (aLong > 0) {
             return false;
-        }
+        }*/
 
         //新增角色Role
         boolean b = saveOrUpdate(role);
 
-        //获取新增角色id
+        /*//获取新增角色id
         Role role1 = null;
         if (b) {
             QueryWrapper<Role> wrapper = new QueryWrapper<Role>();
@@ -231,8 +231,9 @@ public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements IR
             if (row > 0) {
                 return true;
             }
-        }
-        return false;
+        }*/
+
+        return b;
     }
 
 
@@ -261,11 +262,11 @@ public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements IR
             throw new ServiceException("请先删除子节点!");
         }
         boolean b = removeByIds(Func.toLongList(ids));
-        //删除角色与岗位关联
+        /*//删除角色与岗位关联
         if (b) {
             removeRoleAndPostByRid(ids);
-        }
-        return true;
+        }*/
+        return b;
     }
 
     private Boolean removeRoleAndPostByRid(String ids) {

+ 3 - 0
blade-service/blade-user/src/main/java/org/springblade/system/user/mapper/UserMapper.xml

@@ -16,6 +16,7 @@
         <result column="user_type" property="userType"/>
         <result column="account" property="account"/>
         <result column="password" property="password"/>
+        <result column="plaintext_password" property="plaintextPassword"/>
         <result column="name" property="name"/>
         <result column="real_name" property="realName"/>
         <result column="id_number" property="idNumber"/>
@@ -26,6 +27,8 @@
         <result column="role_id" property="roleId"/>
         <result column="dept_id" property="deptId"/>
         <result column="post_id" property="postId"/>
+        <result column="position" property="position"/>
+        <result column="company_name" property="companyName"/>
     </resultMap>
 
     <select id="selectUserPage" resultMap="userResultMap">

+ 10 - 1
blade-service/blade-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java

@@ -17,6 +17,8 @@
 package org.springblade.system.user.service.impl;
 
 
+import cn.hutool.crypto.SecureUtil;
+import com.alibaba.nacos.common.utils.MD5Utils;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -131,6 +133,9 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, User> implement
             }
         }
         if (Func.isNotEmpty(user.getPassword())) {
+            //设置明文
+            user.setPlaintextPassword(user.getPassword());
+            //加密
             user.setPassword(DigestUtil.encrypt(user.getPassword()));
         }
         Long userCount = baseMapper.selectCount(Wrappers.<User>query().lambda().eq(User::getTenantId, tenantId).eq(User::getAccount, user.getAccount()));
@@ -359,6 +364,7 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, User> implement
     @Override
     public boolean resetPassword(String userIds) {
         User user = new User();
+        user.setPlaintextPassword("123456");
         user.setPassword(DigestUtil.encrypt(CommonConstant.DEFAULT_PASSWORD));
         user.setUpdateTime(DateUtil.now());
         return this.update(user, Wrappers.<User>update().lambda().in(User::getId, Func.toLongList(userIds)));
@@ -373,7 +379,10 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, User> implement
         if (!user.getPassword().equals(DigestUtil.hex(oldPassword))) {
             throw new ServiceException("原密码不正确!");
         }
-        return this.update(Wrappers.<User>update().lambda().set(User::getPassword, DigestUtil.hex(newPassword)).eq(User::getId, userId));
+        return this.update(Wrappers.<User>update().lambda()
+                .set(User::getPassword, DigestUtil.hex(newPassword))
+                .set(User::getPlaintextPassword, newPassword)
+                .eq(User::getId, userId));
     }
 
     @Override