Ver código fonte

Merge remote-tracking branch 'origin/master' into master

# Conflicts:
#	blade-service/blade-manager/src/main/java/com/mixsmart/utils/CustomFunction.java
yangyj 2 anos atrás
pai
commit
a63a77190d
27 arquivos alterados com 210 adições e 64 exclusões
  1. 1 1
      blade-ops/blade-develop/src/test/java/org/springblade/test/CodeGenerator.java
  2. 18 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/ArchiveTreeContractVO4.java
  3. 6 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/TreeNodeVO.java
  4. 5 1
      blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/Dept.java
  5. 7 0
      blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/DeptVO.java
  6. 7 0
      blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/dto/UserDTO.java
  7. 19 0
      blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/entity/User.java
  8. 9 0
      blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/vo/UserVO.java
  9. 2 2
      blade-service/blade-archive/src/main/java/org/springblade/archive/controller/ArchivesAutoController.java
  10. 9 17
      blade-service/blade-archive/src/main/java/org/springblade/archive/service/impl/ArchivesAutoServiceImpl.java
  11. 19 12
      blade-service/blade-archive/src/main/java/org/springblade/archive/utils/FileUtils.java
  12. 16 3
      blade-service/blade-business/src/main/java/org/springblade/business/utils/StringSPUtils.java
  13. 17 4
      blade-service/blade-control/src/main/java/org/springblade/control/controller/AnnualBudgetController.java
  14. 5 4
      blade-service/blade-control/src/main/java/org/springblade/control/controller/DepartmentMonthPlanController.java
  15. 2 0
      blade-service/blade-control/src/main/java/org/springblade/control/controller/DepartmentPlanLogController.java
  16. 2 0
      blade-service/blade-control/src/main/java/org/springblade/control/mapper/AnnualBudgetMapper.java
  17. 6 0
      blade-service/blade-control/src/main/java/org/springblade/control/mapper/AnnualBudgetMapper.xml
  18. 2 0
      blade-service/blade-control/src/main/java/org/springblade/control/service/IAnnualBudgetService.java
  19. 15 1
      blade-service/blade-control/src/main/java/org/springblade/control/service/impl/AnnualBudgetServiceImpl.java
  20. 3 5
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ArchiveTreeContractController.java
  21. 0 2
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ArchiveTreeContractServiceImpl.java
  22. 17 1
      blade-service/blade-system/src/main/java/org/springblade/system/controller/DeptController.java
  23. 2 1
      blade-service/blade-system/src/main/java/org/springblade/system/controller/MenuController.java
  24. 8 1
      blade-service/blade-system/src/main/java/org/springblade/system/mapper/DeptMapper.xml
  25. 1 0
      blade-service/blade-system/src/main/java/org/springblade/system/service/IDeptService.java
  26. 5 3
      blade-service/blade-system/src/main/java/org/springblade/system/service/impl/MenuServiceImpl.java
  27. 7 6
      blade-service/blade-user/src/main/java/org/springblade/system/user/controller/UserController.java

+ 1 - 1
blade-ops/blade-develop/src/test/java/org/springblade/test/CodeGenerator.java

@@ -71,7 +71,7 @@ public class CodeGenerator {
     /**
      * RUN THIS
      */
-    public static void main(String[] args) {
+    public static void main11(String[] args) {
         BladeCodeGenerator generator = new BladeCodeGenerator();
         generator.setCodeName(CODE_NAME);
         generator.setServiceName(SERVICE_NAME);

+ 18 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/ArchiveTreeContractVO4.java

@@ -0,0 +1,18 @@
+package org.springblade.manager.vo;
+
+import lombok.Data;
+import org.springblade.manager.dto.ArchiveTreeContractDTO;
+import org.springblade.manager.entity.ArchiveTreeContract;
+
+import java.util.List;
+
+/**
+ * @Param
+ * @Author wangwl
+ * @Date 2023/4/25 15:14
+ **/
+@Data
+public class ArchiveTreeContractVO4 extends ArchiveTreeContract {
+
+    List<ArchiveTreeContractDTO> listSort;
+}

+ 6 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/TreeNodeVO.java

@@ -21,6 +21,12 @@ public class TreeNodeVO extends BaseNode<TreeNode> {
 
     private Integer type;
 
+    private Integer deptType;
+
+    private String deptName;
+
+    private String fullName;
+
     private String primaryKeyId;
 
     private Integer wbsType;

+ 5 - 1
blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/Dept.java

@@ -104,5 +104,9 @@ public class Dept implements Serializable {
     @ApiModelProperty(value = "是否已删除")
     private Integer isDeleted;
 
-
+    /**
+     * 部门类型 内控系统特有
+     */
+    @ApiModelProperty(value = "部门类型")
+    private Integer deptType;
 }

+ 7 - 0
blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/DeptVO.java

@@ -20,6 +20,7 @@ import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import org.springblade.core.tool.node.INode;
@@ -42,18 +43,21 @@ public class DeptVO extends Dept implements INode<DeptVO> {
     /**
      * 主键ID
      */
+    @ApiModelProperty(value = "主键ID")
     @JsonSerialize(using = ToStringSerializer.class)
     private Long id;
 
     /**
      * 父节点ID
      */
+    @ApiModelProperty(value = "父节点ID")
     @JsonSerialize(using = ToStringSerializer.class)
     private Long parentId;
 
     /**
      * 子孙节点
      */
+    @ApiModelProperty(value = "父节点ID")
     @JsonInclude(JsonInclude.Include.NON_EMPTY)
     private List<DeptVO> children;
 
@@ -74,16 +78,19 @@ public class DeptVO extends Dept implements INode<DeptVO> {
     /**
      * 上级机构
      */
+    @ApiModelProperty(value = "上级机构")
     private String parentName;
 
     /**
      * 机构类型名称
      */
+    @ApiModelProperty(value = "机构类型名称")
     private String deptCategoryName;
 
     /**
      * 租户id
      */
+    @ApiModelProperty(value = "租户id")
     private String tenantId;
 
 }

+ 7 - 0
blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/dto/UserDTO.java

@@ -19,4 +19,11 @@ public class UserDTO extends User {
     @ApiModelProperty(value = "用户关联项目List")
     private List<SaveUserInfoByProjectDTO> projectAndUserList;
 
+
+    /**
+     * 组织机构
+     */
+    @ApiModelProperty(value = "组织机构对象(内控)")
+    private List<SaveUserInfoByProjectDTO> deptList;
+
 }

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

@@ -41,83 +41,102 @@ public class User extends TenantEntity {
     /**
      * 用户编号
      */
+    @ApiModelProperty(value = "用户编号")
     private String code;
     /**
      * 用户平台 改为多选 字符串拼接
      */
+    @ApiModelProperty(value = "用户平台 改为多选 字符串拼接")
     private String userType;
     /**
      * 账号
      */
+    @ApiModelProperty(value = "账号")
     private String account;
     /**
      * 密码
      */
+    @ApiModelProperty(value = "密码(加密码)")
     private String password;
     /**
      * 明文密码
      */
+    @ApiModelProperty(value = "密码(明文密码)")
     private String plaintextPassword;
     /**
      * 昵称
      */
+    @ApiModelProperty(value = "昵称")
     private String name;
     /**
      * 真名
      */
+    @ApiModelProperty(value = "真名")
     private String realName;
     /**
      * 身份证号
      */
+    @ApiModelProperty(value = "身份证号")
     private String idNumber;
     /**
      * 头像
      */
+    @ApiModelProperty(value = "头像")
     private String avatar;
     /**
      * 邮箱
      */
+    @ApiModelProperty(value = "邮箱")
     private String email;
     /**
      * 手机
      */
+    @ApiModelProperty(value = "手机")
     private String phone;
     /**
      * 生日
      */
+    @ApiModelProperty(value = "生日")
     private Date birthday;
     /**
      * 性别
      */
+    @ApiModelProperty(value = "性别")
     private Integer sex;
 
     /**
      * 是否为同步用户信息
      */
+    @ApiModelProperty(value = "是否为同步用户信息")
     private Integer sysType;
 
     /**
      * 同步方系统Id
      */
+    @ApiModelProperty(value = "同步方系统Id")
     private String sysId;
 
 
     /**
      * 角色id
      */
+    @ApiModelProperty(value = "角色id")
     private String roleId;
     /**
      * 部门id
      */
+    @ApiModelProperty(value = "部门id")
     private String deptId;
     /**
      * 岗位id
      */
+    @ApiModelProperty(value = "岗位id")
     private String postId;
 
     /**
      * 电签证书编码
      */
+    @ApiModelProperty(value = "电签证书编码")
     private String accCode;
 
 

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

@@ -21,6 +21,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import org.springblade.system.user.entity.User;
@@ -51,40 +52,48 @@ public class UserVO extends User {
     /**
      * 密码
      */
+
     private String password;
 
     /**
      * 租户名
      */
+    @ApiModelProperty(value = "租户名")
     private String tenantName;
 
     /**
      * 用户平台名
      */
+    @ApiModelProperty(value = "用户平台名")
     private String userTypeName;
 
     /**
      * 角色名
      */
+    @ApiModelProperty(value = "角色名")
     private String roleName;
 
     /**
      * 部门名
      */
+    @ApiModelProperty(value = "部门名")
     private String deptName;
 
     /**
      * 岗位名
      */
+    @ApiModelProperty(value = "岗位名")
     private String postName;
 
     /**
      * 性别
      */
+    @ApiModelProperty(value = "性别")
     private String sexName;
 
     /**
      * 拓展信息
      */
+    @ApiModelProperty(value = "拓展信息")
     private String userExt;
 }

+ 2 - 2
blade-service/blade-archive/src/main/java/org/springblade/archive/controller/ArchivesAutoController.java

@@ -31,6 +31,7 @@ import org.apache.commons.lang.StringUtils;
 import org.apache.http.message.BasicNameValuePair;
 import org.springblade.archive.service.IArchiveAutoPdfService;
 import org.springblade.archive.utils.CallBgrsjk;
+import org.springblade.archive.utils.FileUtils;
 import org.springblade.business.entity.ArchiveFile;
 import org.springblade.common.constant.CommonConstant;
 import org.springblade.common.utils.CommonUtil;
@@ -80,7 +81,6 @@ public class ArchivesAutoController extends BladeController {
 
 	private final IArchiveAutoPdfService archiveAutoPdfService;
 	private final ArchiveTreeContractClient archiveTreeContractClient;
-	private ProjectClient projectClient;
 	private ContractClient contractClient;
 
 	@Autowired
@@ -604,8 +604,8 @@ public class ArchivesAutoController extends BladeController {
 			@ApiImplicitParam(name = "file", value = "文件源", required = true)
 	})
 	public R putFileAttach(@RequestParam("file") MultipartFile file) {
+		String file_path = FileUtils.getSysLocalFileUrl();
 
-		String file_path = ParamCache.getValue(CommonConstant.SYS_LOCAL_URL);
 
 
 		return R.success("上传成功");

+ 9 - 17
blade-service/blade-archive/src/main/java/org/springblade/archive/service/impl/ArchivesAutoServiceImpl.java

@@ -617,27 +617,20 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 			}
 
 		}
-
-
-
-
-
-
-
 	}
 
 	@Override
-	public void archiveAutoMethod(Long projectId,Long contractId,Long nodeId){
-		//步骤一:把档号集合初始化
-		indexMap = new HashMap<>();
-		//步骤二:查询归档树节点。存在未归档文件的节点。
-		List<ArchiveTreeContract> list = archiveTreeContractClient.getHavedFileNodeByProjectID(projectId);
+    public void archiveAutoMethod(Long projectId, Long contractId, Long nodeId) {
+        //步骤一:把档号集合初始化
+        indexMap = new HashMap<>();
+        //步骤二:查询归档树节点。存在未归档文件的节点。
+        List<ArchiveTreeContract> list = archiveTreeContractClient.getHavedFileNodeByProjectID(projectId);
 
-		//按合同段过滤
-		List<ArchiveTreeContract> authlist = authFilter(list, contractId, nodeId);
+        //按合同段过滤
+        List<ArchiveTreeContract> authlist = authFilter(list, contractId, nodeId);
 
-		//步骤三:遍历归档树节点整理出 默认规则节点,分类并卷节点,单独组卷节点 三个集合。
-		List<ArchiveTreeContract> list1= new ArrayList<>();
+        //步骤三:遍历归档树节点整理出 默认规则节点,分类并卷节点,单独组卷节点 三个集合。
+        List<ArchiveTreeContract> list1 = new ArrayList<>();
 		List<ArchiveTreeContract> list2= new ArrayList<>();
 		List<ArchiveTreeContract> list3= new ArrayList<>();
 		for(ArchiveTreeContract treeContract:authlist){
@@ -1287,7 +1280,6 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 			}
 
 		}
-
 	}
 
 	/**

+ 19 - 12
blade-service/blade-archive/src/main/java/org/springblade/archive/utils/FileUtils.java

@@ -20,14 +20,17 @@ import org.apache.poi.xssf.usermodel.XSSFPrintSetup;
 import org.apache.poi.xssf.usermodel.XSSFSheet;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 
+import org.springblade.common.constant.CommonConstant;
 import org.springblade.common.constant.OssConstant;
 import org.springblade.common.utils.CommonUtil;
 import org.springblade.common.utils.SnowFlakeUtil;
+import org.springblade.common.utils.SystemUtils;
 import org.springblade.common.vo.DataVO;
 import org.springblade.core.oss.model.BladeFile;
 import org.springblade.core.tool.utils.IoUtil;
 import org.springblade.core.tool.utils.ResourceUtil;
 import org.springblade.resource.feign.NewIOSSClient;
+import org.springblade.system.cache.ParamCache;
 
 import javax.imageio.ImageIO;
 import javax.servlet.http.HttpServletResponse;
@@ -708,16 +711,20 @@ public class FileUtils {
         return ossPath;
     }
 
-//    public static void main(String[] args) {
-//
-//        System.out.println(getOssPath(null,"12344555",12424445L));
-//        System.out.println(getOssPath(OssConstant.TEMP_DIRECTORY,"12344555",12424445L));
-//        System.out.println(getOssPath(OssConstant.ARCHIVE_DIRECTORY,"12344555",12424445L));
-//        System.out.println(getOssPath("","12344555",null));
-//        String url = "https://bladex-chongqing-info.oss-cn-hangzhou.aliyuncs.com/1578599210897772545/archive/ed4305eb971b062046c1ffd4e2da3c32-page1-1.pdf";
-//        String url1 = "https://bladex-chongqing-info.oss-cn-hangzhou.aliyuncs.com/upload/ed4305eb971b062046c1ffd4e2da3c32-page1-1.pdf";
-//
-//        System.out.println(getAliYunSubUrl(url));
-//        System.out.println(getAliYunSubUrl(url1));
-//    }
+    public static String getSysLocalFileUrl() {
+        String file_path = ParamCache.getValue(CommonConstant.SYS_LOCAL_URL);
+        if (SystemUtils.isMacOs()) {
+            file_path = "/Users/hongchuangyanfa/Desktop/";
+        } else if (SystemUtils.isWindows()) {
+            file_path = "C://upload";
+        }
+        return file_path;
+    }
+
+    public static void main11(String[] args) {
+       /* SpeechRecognizerDemo demo = new SpeechRecognizerDemo(appKey, id, secret, url);
+        //本案例使用本地文件模拟发送实时流数据。
+        demo.process("./nls-sample-16k.wav", 16000);
+        demo.shutdown();*/
+    }
 }

+ 16 - 3
blade-service/blade-business/src/main/java/org/springblade/business/utils/StringSPUtils.java

@@ -1,5 +1,7 @@
 package org.springblade.business.utils;
 
+import org.springblade.core.tool.utils.DateUtil;
+
 public class StringSPUtils {
 
     /***
@@ -51,14 +53,19 @@ public class StringSPUtils {
             return alphatable[i];
     }
 
-    //根据一个包含汉字的字符串返回一个汉字拼音首字母的字符串
     public String getStringSP(String SourceStr) {
         StringBuilder Result = new StringBuilder();
         int StrLength = SourceStr.length();
         int i;
         try {
             for (i = 0; i < StrLength; i++) {
-                Result.append(Char2Alpha(SourceStr.charAt(i)));
+                char ch = SourceStr.charAt(i);
+                // 判断是否是汉字
+                if (isChineseCharacter(ch)) {
+                    Result.append(Char2Alpha(ch));
+                } else {
+                    Result.append(ch);
+                }
             }
         } catch (Exception e) {
             Result = new StringBuilder();
@@ -66,6 +73,12 @@ public class StringSPUtils {
         return Result.toString();
     }
 
+    //判断字符是否是汉字
+    private boolean isChineseCharacter(char ch) {
+        //汉字的编码范围为'\u4e00'到'\u9fa5'
+        return (ch >= '\u4e00' && ch <= '\u9fa5');
+    }
+
     private boolean match(int i, int gb) {
         if (gb < table[i])
             return false;
@@ -122,7 +135,7 @@ public class StringSPUtils {
 
     /*public static void main(String[] args) {
         StringSPUtils obj1 = new StringSPUtils();
-        System.out.println(obj1.getStringSP("你好"));
+        System.out.println(obj1.getStringSP("你好NIHAO 00_1"));
         System.out.println(obj1.getStringSP("欢迎你"));
         String s = obj1.buildSerial(1, 4);
         System.out.println(s);

+ 17 - 4
blade-service/blade-control/src/main/java/org/springblade/control/controller/AnnualBudgetController.java

@@ -107,7 +107,7 @@ public class AnnualBudgetController {
      * 获取项目列表
      */
     @GetMapping("/getProjectList")
-    @ApiOperationSupport(order = 5)
+    @ApiOperationSupport(order = 7)
     @ApiOperation(value = "获取项目列表")
     public R<List<ControlProjectInfoVO>> getProjectList() {
         return R.data(budgetService.getProjectList());
@@ -117,7 +117,7 @@ public class AnnualBudgetController {
      * 获取二级科目
      */
     @GetMapping("/getSecondSubject")
-    @ApiOperationSupport(order = 5)
+    @ApiOperationSupport(order = 8)
     @ApiOperation(value = "获取二级科目")
     public R<List<DictInfoVO>> getSecondSubject() {
         return R.data(budgetService.getSecondSubject());
@@ -127,7 +127,7 @@ public class AnnualBudgetController {
      * 门户-年度指标统计
      */
     @GetMapping("/portalAnnualTarget")
-    @ApiOperationSupport(order = 5)
+    @ApiOperationSupport(order = 9)
     @ApiOperation(value = "门户-年度指标统计")
     public R<AnnualBudgetVO3> portalAnnualTarget() {
         return R.data(budgetService.portalAnnualTarget());
@@ -137,10 +137,23 @@ public class AnnualBudgetController {
      * 门户-年度各项费用统计
      */
     @GetMapping("/portalAnnualCost")
-    @ApiOperationSupport(order = 5)
+    @ApiOperationSupport(order = 10)
     @ApiOperation(value = "门户-年度各项费用统计")
     public R<Map<String, BigDecimal>> portalAnnualCost(String year) {
         return R.data(budgetService.portalAnnualCost(year));
     }
 
+    /**
+     * 年度列表
+     */
+    @GetMapping("/yearList")
+    @ApiOperationSupport(order = 11)
+    @ApiOperation(value = "年度列表")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "type", value = "1不包含所有,2包含所有", required = true),
+    })
+    public R<List<String>> yearList(Integer type) {
+        return R.data(budgetService.yearList(type));
+    }
+
 }

+ 5 - 4
blade-service/blade-control/src/main/java/org/springblade/control/controller/DepartmentMonthPlanController.java

@@ -9,6 +9,7 @@ import lombok.AllArgsConstructor;
 import org.springblade.control.dto.ControlContractInfoDTO;
 import org.springblade.control.dto.ProjectCostBudgetDTO;
 import org.springblade.control.entity.DepartmentMonthPlan;
+import org.springblade.control.entity.DictInfo;
 import org.springblade.control.entity.ProjectReimbursement;
 import org.springblade.control.service.IDepartmentMonthPlanService;
 import org.springblade.control.vo.DepartmentMonthPlanVO;
@@ -72,7 +73,7 @@ public class DepartmentMonthPlanController {
      */
     @PostMapping("/updateDepartmentPlan")
     @ApiOperationSupport(order = 2)
-    @ApiOperation(value = "新增部门月计划")
+    @ApiOperation(value = "修改部门月计划")
     public R updateDepartmentPlan(@RequestBody ProjectCostBudgetDTO dto) {
         planService.updateDepartmentPlan(dto);
         return R.success("保存成功");
@@ -84,8 +85,8 @@ public class DepartmentMonthPlanController {
     @GetMapping("/getDepartmentDict")
     @ApiOperationSupport(order = 2)
     @ApiOperation(value = "获取部门列表")
-    public R getDepartmentDict() {
-        planService.getDepartmentDict();
-        return R.success("新增成功");
+    public R<List<DictInfo>> getDepartmentDict() {
+        return R.data(planService.getDepartmentDict());
+
     }
 }

+ 2 - 0
blade-service/blade-control/src/main/java/org/springblade/control/controller/DepartmentPlanLogController.java

@@ -99,4 +99,6 @@ public class DepartmentPlanLogController {
         return R.data(logService.updateOpenTime(log));
     }
 
+
+
 }

+ 2 - 0
blade-service/blade-control/src/main/java/org/springblade/control/mapper/AnnualBudgetMapper.java

@@ -37,4 +37,6 @@ public interface AnnualBudgetMapper extends BaseMapper<AnnualBudget> {
     AnnualBudget getThisYearBudget(@Param("year") int year);
 
     List<AnnualBudget> getAllYearBudget(@Param("year") int year);
+
+    List<String> yearList();
 }

+ 6 - 0
blade-service/blade-control/src/main/java/org/springblade/control/mapper/AnnualBudgetMapper.xml

@@ -58,6 +58,12 @@
         select   <include refid="budget_column" />
         from c_annual_budget where is_deleted = 0
     </select>
+    <select id="yearList" resultType="java.lang.String">
+        select DISTINCT CONCAT(DATE_FORMAT(start_time,'%Y'),"年")
+        from c_control_project_info
+        WHERE is_deleted = 0
+        order by start_time
+    </select>
 
 
 </mapper>

+ 2 - 0
blade-service/blade-control/src/main/java/org/springblade/control/service/IAnnualBudgetService.java

@@ -36,4 +36,6 @@ public interface IAnnualBudgetService extends BaseService<AnnualBudget> {
     AnnualBudgetVO3 portalAnnualTarget();
 
     Map<String, BigDecimal> portalAnnualCost(String year);
+
+    List<String> yearList(Integer type);
 }

+ 15 - 1
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/AnnualBudgetServiceImpl.java

@@ -347,7 +347,12 @@ public class AnnualBudgetServiceImpl extends BaseServiceImpl<AnnualBudgetMapper,
      */
     @Override
     public Map<String, BigDecimal> portalAnnualCost(String year) {
-        int y = Integer.parseInt(year);
+        int y;
+        if ("汇总所有".equals(year)){
+            y = 0;
+        }else {
+            y = Integer.parseInt(year.substring(0,4));
+        }
         Map<String,BigDecimal> map = new HashMap<>();
         //总合同:当年所有合同金额
         BigDecimal yearContractMoney = contractInfoService.getYearContractMoney(y);
@@ -380,6 +385,15 @@ public class AnnualBudgetServiceImpl extends BaseServiceImpl<AnnualBudgetMapper,
         return map;
     }
 
+    @Override
+    public List<String> yearList(Integer type) {
+        List<String> list = baseMapper.yearList();
+        if (type != 1) {
+            list.add("汇总所有");
+        }
+        return list;
+    }
+
     /**
      * 统计支出 1支出总和2工资总和
      */

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

@@ -40,6 +40,7 @@ import org.springblade.manager.entity.ArchiveTree;
 import org.springblade.manager.service.IArchiveTreeService;
 import org.springblade.manager.vo.ArchiveTreeContractVO2;
 
+import org.springblade.manager.vo.ArchiveTreeContractVO4;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.RequestParam;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -239,7 +240,6 @@ public class ArchiveTreeContractController extends BladeController {
 //		}
         List<ArchiveTreeContractVO2> tree = archiveTreeContractService.lazyTree2(AuthUtil.getTenantId(), parentId, projectId, contractId);
         if (tree != null && tree.size() > 0) {
-
             archiveTreeContractService.fillDefaultArchiveAutoInfo(tree, projectId);
             return R.data(tree);
         }
@@ -260,8 +260,6 @@ public class ArchiveTreeContractController extends BladeController {
             @ApiImplicitParam(name = "contractId", value = "合同段id", required = true)
     })
     public R<List<ArchiveTreeContractVO2>> tree(Integer disPlayTree, Integer nodeType, Long projectId, Long contractId) {
-
-
         List<ArchiveTreeContractVO2> tree = archiveTreeContractService.tree2(AuthUtil.getTenantId(), disPlayTree, nodeType, projectId, contractId);
         if (tree != null && tree.size() > 0) {
             return R.data(tree);
@@ -334,8 +332,8 @@ public class ArchiveTreeContractController extends BladeController {
     @PostMapping("/submit-tree-sort")
     @ApiOperationSupport(order = 13)
     @ApiOperation(value = "提交归档树手动排序", notes = "List<ArchiveTreeContractDTO>集合")
-    public R submitArchiveTreeSort(@RequestBody List<ArchiveTreeContractDTO> listSort) {
-        return R.status(archiveTreeContractService.submitArchiveTreeSort(listSort));
+    public R submitArchiveTreeSort(@RequestBody ArchiveTreeContractVO4 listSort) {
+        return R.status(archiveTreeContractService.submitArchiveTreeSort(listSort.getListSort()));
     }
 
     /**

+ 0 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ArchiveTreeContractServiceImpl.java

@@ -268,8 +268,6 @@ public class ArchiveTreeContractServiceImpl extends BaseServiceImpl<ArchiveTreeC
 	public boolean submitArchiveTreeSort(List<ArchiveTreeContractDTO> listSort) {
 		int sortNumber = 1;
 		List<ArchiveTreeContract> changeList = new ArrayList<>();
-
-
 		ArchiveTreeContract parent = null;
 		for (ArchiveTreeContractDTO archiveTreeSortDTO : listSort) {
 			if (archiveTreeSortDTO.getSort()==null || archiveTreeSortDTO.getSort() != sortNumber) {

+ 17 - 1
blade-service/blade-system/src/main/java/org/springblade/system/controller/DeptController.java

@@ -82,7 +82,8 @@ public class DeptController extends BladeController {
     @GetMapping("/list")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "deptName", value = "部门名称", paramType = "query", dataType = "string"),
-            @ApiImplicitParam(name = "fullName", value = "部门全称", paramType = "query", dataType = "string")
+            @ApiImplicitParam(name = "fullName", value = "部门全称", paramType = "query", dataType = "string"),
+            @ApiImplicitParam(name = "deptType", value = "部门类型", paramType = "query", dataType = "string")
     })
     @ApiOperationSupport(order = 2)
     @ApiOperation(value = "列表", notes = "传入dept")
@@ -176,4 +177,19 @@ public class DeptController extends BladeController {
     }
 
 
+    /**
+     * 列表
+     */
+    @GetMapping("/selectdeptList")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "deptType", value = "部门类型", paramType = "query", dataType = "string")
+    })
+    @ApiOperationSupport(order = 9)
+    @ApiOperation(value = "列表", notes = "传入dept")
+    public R<List<DeptVO>> selectdeptList(String deptType, BladeUser bladeUser) {
+        List<Dept> list = deptService.getBaseMapper().selectList(Wrappers.<Dept>lambdaQuery().eq(Dept::getDeptType, deptType).eq(Dept::getTenantId, bladeUser.getTenantId()));
+        return R.data(DeptWrapper.build().listNodeVO(list));
+    }
+
+
 }

+ 2 - 1
blade-service/blade-system/src/main/java/org/springblade/system/controller/MenuController.java

@@ -112,7 +112,8 @@ public class MenuController extends BladeController {
             @ApiImplicitParam(name = "code", value = "菜单编号", paramType = "query", dataType = "string"),
             @ApiImplicitParam(name = "name", value = "菜单名称", paramType = "query", dataType = "string")
     })
-    @PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR)
+    //@PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR)
+    @PreAuth(RoleConstant.HAS_ROLE_ADMIN)
     @ApiOperationSupport(order = 3)
     @ApiOperation(value = "懒加载列表", notes = "传入menu")
     public R<List<MenuVO>> lazyList(Long parentId, @ApiIgnore @RequestParam Map<String, Object> menu) {

+ 8 - 1
blade-service/blade-system/src/main/java/org/springblade/system/mapper/DeptMapper.xml

@@ -13,6 +13,7 @@
         <result column="sort" property="sort"/>
         <result column="remark" property="remark"/>
         <result column="is_deleted" property="isDeleted"/>
+        <result column="dept_type" property="deptType"/>
     </resultMap>
 
     <resultMap id="deptVOResultMap" type="org.springblade.system.vo.DeptVO">
@@ -25,6 +26,7 @@
         <result column="sort" property="sort"/>
         <result column="remark" property="remark"/>
         <result column="is_deleted" property="isDeleted"/>
+        <result column="dept_type" property="deptType"/>
         <result column="has_children" property="hasChildren"/>
     </resultMap>
 
@@ -34,7 +36,11 @@
         <result column="title" property="title"/>
         <result column="value" property="value"/>
         <result column="key" property="key"/>
+        <result column="deptName" property="deptName"/>
+        <result column="fullName" property="fullName"/>
         <result column="has_children" property="hasChildren"/>
+        <result column="type" property="type"/>
+        <result column="deptType" property="deptType"/>
         <result column="tenantId" property="tenantId"/>
     </resultMap>
 
@@ -68,7 +74,8 @@
     </select>
 
     <select id="tree" resultMap="treeNodeResultMap">
-        select id, parent_id, dept_name as title, id as "value", id as "key" from blade_dept where is_deleted = 0
+        select id, parent_id,dept_name as deptName,full_name as fullName, dept_name as title, id as "value", id as
+        "key",dept_type as type,dept_type as deptType from blade_dept where is_deleted = 0
         <if test="_parameter!=null and _parameter!=''">
             and tenant_id = #{_parameter}
         </if>

+ 1 - 0
blade-service/blade-system/src/main/java/org/springblade/system/service/IDeptService.java

@@ -116,4 +116,5 @@ public interface IDeptService extends IService<Dept> {
      */
     List<DeptVO> search(String deptName, Long parentId);
 
+
 }

+ 5 - 3
blade-service/blade-system/src/main/java/org/springblade/system/service/impl/MenuServiceImpl.java

@@ -278,11 +278,13 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements IM
     public boolean submit(Menu menu) {
         LambdaQueryWrapper<Menu> menuQueryWrapper = Wrappers.lambdaQuery();
         if (menu.getId() == null) {
-            menuQueryWrapper.eq(Menu::getCode, menu.getCode()).or(
-                    wrapper -> wrapper.eq(Menu::getName, menu.getName()).eq(Menu::getCategory, MENU_CATEGORY)
+            menuQueryWrapper.eq(Menu::getSysId, menu.getSysId()).and(
+                    wrapper -> wrapper.eq(Menu::getCode, menu.getCode()).or(
+                            o -> o.eq(Menu::getName, menu.getName()).eq(Menu::getCategory, MENU_CATEGORY)
+                    )
             );
         } else {
-            menuQueryWrapper.ne(Menu::getId, menu.getId()).and(
+            menuQueryWrapper.ne(Menu::getId, menu.getId()).eq(Menu::getSysId, menu.getSysId()).and(
                     wrapper -> wrapper.eq(Menu::getCode, menu.getCode()).or(
                             o -> o.eq(Menu::getName, menu.getName()).eq(Menu::getCategory, MENU_CATEGORY)
                     )

+ 7 - 6
blade-service/blade-user/src/main/java/org/springblade/system/user/controller/UserController.java

@@ -143,12 +143,14 @@ public class UserController {
     @GetMapping("/page")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "account", value = "账号名", paramType = "query", dataType = "string"),
-            @ApiImplicitParam(name = "realName", value = "姓名", paramType = "query", dataType = "string")
+            @ApiImplicitParam(name = "realName", value = "姓名", paramType = "query", dataType = "string"),
+            @ApiImplicitParam(name = "deptId", value = "部门", paramType = "query", dataType = "string"),
+            @ApiImplicitParam(name = "postId", value = "岗位", paramType = "query", dataType = "string")
     })
     @ApiOperationSupport(order = 3)
     @ApiOperation(value = "列表", notes = "传入account和realName")
     @PreAuth(RoleConstant.HAS_ROLE_ADMIN)
-    public R<IPage<UserVO>> page(@ApiIgnore User user, Query query, Long deptId, BladeUser bladeUser) {
+    public R<IPage<UserVO>> page(@ApiIgnore User user, Query query, Long deptId, Long postId, BladeUser bladeUser) {
         IPage<User> pages = userService.selectUserPage(Condition.getPage(query), user, deptId, (bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID) ? StringPool.EMPTY : bladeUser.getTenantId()));
         return R.data(UserWrapper.build().pageVO(pages));
     }
@@ -525,9 +527,9 @@ public class UserController {
                         User newUser = new User();
                         if (projectName.contains("白马项目")
                                 || constructionCompany.equals("重庆白马航运发展有限公司")
-                                || constructionCompany.equals("中国水利水电第八工程局有限公司")
-                                || constructionCompany.equals("中国水利水电第四工程局中电建路桥集团联合体")
-                                || companyName.equals("重庆白马航运发展有限公司")
+                                || constructionCompany.equals("中国水利水电第八工程局有限公司") //二期
+                                || constructionCompany.equals("中国水利水电第四工程局中电建路桥集团联合体")//一期
+                                || companyName.equals("重庆白马航运发展有限公司")//二期一期(业主)
                                 || companyName.equals("中国水利水电第八工程局有限公司")
                                 || companyName.equals("中国水利水电第四工程局中电建路桥集团联合体")
                         ) {
@@ -560,7 +562,6 @@ public class UserController {
                             if (count == null || count == 0L) {
                                 //绑定项目,设置默认角色信息 白马项目id:1612329251049537537;第二期合同段id:1612335077269143554;角色施工-资料员id:1537249581371707394
                                 saveUserInfoByProjectClient.saveInfoRelation(newUser.getId(), 1612329251049537537L, 1612335077269143554L, 1537249581371707394L);
-
                                 newUser.setRoleId("1537249581371707394"); //角色施工-资料员id:1537249581371707394
                             }