From 29fad707848e50a3b9b42dd02f283bb1c16be23f Mon Sep 17 00:00:00 2001
From: wgd <862422848@qq.com>
Date: Fri, 24 Dec 2021 15:47:54 +0800
Subject: [PATCH] 一、审批流程内的表单设计正文编辑框添加office编辑框(可以插入图片、表格功能。 五、新建审批的流程基础内的“谁可以发起这个审批-部分-部门添加”功能无法使用。(已注释)

---
 src/main/java/cn/timer/api/bean/zzgl/ZzglBmgwM.java            |  19 +++++++++++--------
 src/main/java/cn/timer/api/controller/htzz/HtzzController.java |   4 ++--
 src/main/java/cn/timer/api/controller/oss/OSSController.java   |   9 +++++++++
 src/main/java/cn/timer/api/controller/zzgl/ZzglController.java | 173 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------------------------------------
 src/main/java/cn/timer/api/utils/aliyun/OSSUtil.java           |   8 ++++----
 5 files changed, 119 insertions(+), 94 deletions(-)

diff --git a/src/main/java/cn/timer/api/bean/zzgl/ZzglBmgwM.java b/src/main/java/cn/timer/api/bean/zzgl/ZzglBmgwM.java
index 3e74ea1..5fb68f4 100644
--- a/src/main/java/cn/timer/api/bean/zzgl/ZzglBmgwM.java
+++ b/src/main/java/cn/timer/api/bean/zzgl/ZzglBmgwM.java
@@ -5,11 +5,9 @@ import java.util.Date;
 import java.util.List;
 import java.util.stream.Stream;
 
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Id;
-import javax.persistence.Table;
+import javax.persistence.*;
 
+import cn.timer.api.bean.yggl.YgglMainEmp;
 import com.alibaba.druid.sql.ast.expr.SQLCaseExpr.Item;
 import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -79,6 +77,11 @@ public class ZzglBmgwM extends Model<ZzglBmgwM> {
 	@ApiModelProperty(value = "创建时间 ", example = "2019-10-01")
 	private Date createTime;
 
+	@Transient
+	@TableField(exist = false)
+	@ApiModelProperty(value = "员工列表")
+	private List<YgglMainEmp> userList;
+
 	// 遍历,获取旗下所有子部门和岗位id
 	public static void getupDepts(ArrayList<Integer> list, Integer objId, List<ZzglBmgwM> objs) {
 		if (objId != null) {
@@ -115,7 +118,7 @@ public class ZzglBmgwM extends Model<ZzglBmgwM> {
 			}
 		}
 	}
-	
-	
-	
-}
\ No newline at end of file
+
+
+
+}
diff --git a/src/main/java/cn/timer/api/controller/htzz/HtzzController.java b/src/main/java/cn/timer/api/controller/htzz/HtzzController.java
index 5e1a237..1c90118 100644
--- a/src/main/java/cn/timer/api/controller/htzz/HtzzController.java
+++ b/src/main/java/cn/timer/api/controller/htzz/HtzzController.java
@@ -316,10 +316,10 @@ public class HtzzController {
         try {
             zipUrl = oss.createZip(url);
             return ResultUtil.data(zipUrl);
-        } catch (Exception e) {
+        } catch (IOException e) {
             e.printStackTrace();
+            return ResultUtil.error("操作失败");
         }
-        return ResultUtil.error("操作失败");
     }
 
     @GetMapping(value = "/exportContract")
diff --git a/src/main/java/cn/timer/api/controller/oss/OSSController.java b/src/main/java/cn/timer/api/controller/oss/OSSController.java
index bda7567..f8d90f3 100644
--- a/src/main/java/cn/timer/api/controller/oss/OSSController.java
+++ b/src/main/java/cn/timer/api/controller/oss/OSSController.java
@@ -167,4 +167,13 @@ public class OSSController {
 //		return ResultUtil.success("删除成功");
 //	}
 
+
+    @PostMapping(value = "/uploadOss")
+    @ApiOperation(value = "上传普通文件", httpMethod = "POST", notes = "接口发布说明")
+    @ResponseBody
+    public Result<String> uploadOss(@CurrentUser UserBean userBean, @RequestParam(required = false) String moudle, @Param("file") MultipartFile file) throws Exception {
+        Result<String> data = ossService.upload(userBean.getOrgCode(), moudle, file);
+
+        return data;
+    }
 }
diff --git a/src/main/java/cn/timer/api/controller/zzgl/ZzglController.java b/src/main/java/cn/timer/api/controller/zzgl/ZzglController.java
index 2e4ae46..61960ea 100644
--- a/src/main/java/cn/timer/api/controller/zzgl/ZzglController.java
+++ b/src/main/java/cn/timer/api/controller/zzgl/ZzglController.java
@@ -68,22 +68,22 @@ public class ZzglController {
 
 	@Autowired
 	ZzglBmgwMService zzglBmgwMService;
-	
+
 	@Autowired
 	ZzglBmgwMMapper zzglBmgwMMapper;
-	
+
 	@Autowired
 	ZzglPostMenuMapper zzglPostMenuMapper;
 
 	@Autowired
 	ZzglLogDgjlMapper zzglLogDgjlMapper;
-	
+
 	@Autowired
 	YgglMainEmpMapper ygglMainEmpMapper;
 
 	/**
 	 * 架构树/架构图/导出
-	 * 
+	 *
 	 * @param
 	 * @return
 	 */
@@ -95,10 +95,10 @@ public class ZzglController {
 				.eq(ZzglBmgwM::getOrgCode, orgCode).list();
 		return ResultUtil.data(zzglBmgwMs);
 	}
-	
+
 	/**
 	 * 获取部门岗位-升级版
-	 * 
+	 *
 	 * @param
 	 * @return
 	 */
@@ -109,13 +109,13 @@ public class ZzglController {
 		Integer orgCode = userBean.getOrgCode();
 		List<ZzglBmgwM> zzglBmgwMs = new LambdaQueryChainWrapper<ZzglBmgwM>(zzglBmgwMMapper)
 				.eq(ZzglBmgwM::getOrgCode, orgCode).list();
-		
+
 		// 构建node列表
 //		List<TreeNode<String>> nodeList = CollUtil.newArrayList();
 //		zzglBmgwMs.forEach(z -> {
 //			nodeList.add(new TreeNode<>(Convert.toStr(z.getId()), Convert.toStr(z.getUpId()), z.getName(), 0));
 //		});
-		
+
 		//配置
 		TreeNodeConfig treeNodeConfig = new TreeNodeConfig();
 		// 自定义属性名 都要默认值的
@@ -136,16 +136,29 @@ public class ZzglController {
 		            tree.putExtra("type", treeNode.getType());
 //		            tree.putExtra("other", new Object());
 		        });
-		
-		
-		
+
+
+
 //		System.out.println(treeNodes);
 //		System.out.println(treeNodes.size());
 //		System.out.println(deep2(treeNodes));
-		
+
 		return ResultUtil.data(treeNodes);
 	}
-	
+
+	@GetMapping(value = "/deptlist_ultra")
+	@ApiOperation(value = "获取部门岗位", httpMethod = "GET", notes = "接口发布说明")
+	public Result<List<ZzglBmgwM>> deptlist_plusUltra(@CurrentUser UserBean userBean) {
+		Integer orgCode = userBean.getOrgCode();
+		List<ZzglBmgwM> zzglBmgwMs = new LambdaQueryChainWrapper<ZzglBmgwM>(zzglBmgwMMapper)
+				.eq(ZzglBmgwM::getOrgCode, orgCode).list();
+		zzglBmgwMs.forEach(z->{
+			if(z.getType()==1){
+				z.setUserList(new LambdaQueryChainWrapper<YgglMainEmp>(ygglMainEmpMapper).eq(YgglMainEmp::getBmgwId,z.getId()).list());
+			}
+		});
+		return ResultUtil.data(zzglBmgwMs);
+	}
 	// 非递归,利用树的层次遍历
 //	public static int deep2(List<Tree<String>> treeNodes) {
 //		if(treeNodes == null)
@@ -164,13 +177,13 @@ public class ZzglController {
 //				System.out.println("temp = "+ temp);
 //			}
 //		}
-//		
+//
 //		return depth;
 //	}
-	
+
 	/**
 	 * 获取部门
-	 * 
+	 *
 	 * @param
 	 * @return
 	 */
@@ -183,7 +196,7 @@ public class ZzglController {
 				.eq(ZzglBmgwM::getOrgCode, orgCode).list();
 		if (CollectionUtil.isNotEmpty(zzglBmgwMs)) {
 			zzglBmgwMs = zzglBmgwMs.stream().filter(z -> z.getType() == 0).collect(Collectors.toList());
-			
+
 			if (CollectionUtil.isNotEmpty(zzglBmgwMs)) {
 				//配置
 				TreeNodeConfig treeNodeConfig = new TreeNodeConfig();
@@ -200,17 +213,17 @@ public class ZzglController {
 			            // 扩展属性 ...
 			            tree.putExtra("leader", treeNode.getLeader());
 			            tree.putExtra("type", treeNode.getType());
-				            
+
 				});
-				
+
 				return ResultUtil.data(treeNodes);
 			}
-			
+
 		}
-		
+
 		return ResultUtil.success();
 	}
-	
+
 	@GetMapping(value = "/depts")
 	@ApiOperation(value = "2.获取部门", httpMethod = "GET", notes = "接口发布说明")
 	@ApiOperationSupport(order = 2)
@@ -225,7 +238,7 @@ public class ZzglController {
 
 	/**
 	 * 岗位成员
-	 * 
+	 *
 	 * @param 部门岗位id
 	 * @return
 	 */
@@ -260,7 +273,7 @@ public class ZzglController {
 
 	/**
 	 * 获取调岗记录(weng)
-	 * 
+	 *
 	 * @param 部门岗位id
 	 * @return
 	 */
@@ -292,7 +305,7 @@ public class ZzglController {
 
 	/**
 	 * 未设置岗位的成员
-	 * 
+	 *
 	 * @return
 	 */
 	@GetMapping(value = "/listent")
@@ -315,7 +328,7 @@ public class ZzglController {
 
 	/**
 	 * 添加/修改部门岗位
-	 * 
+	 *
 	 * @param
 	 * @return
 	 */
@@ -323,7 +336,7 @@ public class ZzglController {
 	@ApiOperation(value = "添加/修改部门", httpMethod = "POST", notes = "接口发布说明")
 	@Log(title = "添加/修改-部门", businessType = BusinessType.INSERT_UPDATE)
 	public Result<ZzglBmgwM> adddept(@CurrentUser UserBean userBean, @RequestBody ZzglBmgwM zzglBmgwM) {
-		
+
 		Integer count = zzglBmgwMMapper.selectCount(new QueryWrapper<ZzglBmgwM>().lambda()
 				.eq(ZzglBmgwM::getOrgCode, userBean.getOrgCode()));
 		if (count <= 0) {
@@ -336,15 +349,15 @@ public class ZzglController {
 				return ResultUtil.error("部门名称上级不能为岗位");
 			}
 		}
-		if (zzglBmgwM.getLeader() == null && StrUtil.length(StrUtil.trim(zzglBmgwM.getName())) == 0) 
+		if (zzglBmgwM.getLeader() == null && StrUtil.length(StrUtil.trim(zzglBmgwM.getName())) == 0)
 			return ResultUtil.error("部门名称不能为空");
-		
+
 		Boolean notId = zzglBmgwM.getId() == null;
 		if (notId && zzglBmgwM.getType() == null)
 			zzglBmgwM.setType((Integer) 0);
 			zzglBmgwM.setOrgCode(userBean.getOrgCode());
 			zzglBmgwM.insertOrUpdate();
-			
+
 		return notId ? ResultUtil.data(zzglBmgwM) : ResultUtil.success();
 	}
 	/**
@@ -377,7 +390,7 @@ public class ZzglController {
 
 	/**
 	 * 删除部门岗位
-	 * 
+	 *
 	 * @param 部门岗位ids [1,2,3,4]
 	 * @return
 	 */
@@ -386,7 +399,7 @@ public class ZzglController {
 	@Log(title = "删除-部门岗位", businessType = BusinessType.DELETE)
 	public Result<Integer> deldepts(@CurrentUser UserBean userBean, @RequestBody List<Integer> ids) {
 		YgglMainEmp ygglMainEmp = YgglMainEmp.builder().build();
-		
+
 		zzglLogDgjlMapper.insertbydeldept(ids, userBean.getEmpNum());
 		ygglMainEmp.update(new UpdateWrapper<YgglMainEmp>().lambda()
 				.set(YgglMainEmp::getBmgwId, null)
@@ -398,7 +411,7 @@ public class ZzglController {
 
 	/**
 	 * 批量修改/删除员工部门
-	 * 
+	 *
 	 * @param 部门岗位id
 	 * @return
 	 */
@@ -418,7 +431,7 @@ public class ZzglController {
 						.eq(ZzglBmgwM::getOrgCode, userBean.getOrgCode())
 						.in(ZzglBmgwM::getLeader, empNums));
 		}
-		
+
 		ygglMainEmp.update(new UpdateWrapper<YgglMainEmp>().lambda()
 				.set(YgglMainEmp::getBmgwId, dpetId).set(YgglMainEmp::getBmgwName, upEmpDeptDto.getDept())
 				.eq(YgglMainEmp::getOrgCode, userBean.getOrgCode()).in(YgglMainEmp::getEmpNum, empNums));
@@ -431,10 +444,10 @@ public class ZzglController {
 		}
 		return ResultUtil.success();
 	}
-	
+
 	/**
 	 * 岗位权限
-	 * 
+	 *
 	 * @param 部门岗位id
 	 * @return
 	 */
@@ -453,9 +466,9 @@ public class ZzglController {
 			wp.select(ZzglAuth::getMenuId, ZzglAuth::getBmgwId).eq(ZzglAuth::getOrgCode, orgCode)
 					.and(i -> i.in(ZzglAuth::getBmgwId, list.toArray()));
 			List<ZzglAuth> zas = ZzglAuth.builder().build().selectList(wp);
-			
-			
-			
+
+
+
 			List<MenuStructureDto> mestrs = new ArrayList<MenuStructureDto>();
 			List<QyzxAdminMenu> qyme = QyzxAdminMenu.builder().build().selectList(new QueryWrapper<QyzxAdminMenu>().lambda().eq(QyzxAdminMenu::getOrgCode, userBean.getOrgCode()).orderByAsc(QyzxAdminMenu::getSortNumber));
 			String[] zdy = new String[qyme.size()];
@@ -470,11 +483,11 @@ public class ZzglController {
 				mestrs.add(metr);
 				zdy[i] = me.getMenuCode();
 				i++;
-			}	
+			}
 			//
 			List<AdminMenuTemplate> adtes = AdminMenuTemplate.builder().build().selectList(new QueryWrapper<AdminMenuTemplate>().lambda().eq(AdminMenuTemplate::getEnable, 1).orderByAsc(AdminMenuTemplate::getSortNumber));
 			for(AdminMenuTemplate adm : adtes) {
-				
+
 				if(!ClockInTool.useArrayUtils(ClockInTool.deleteArrayNull(zdy), adm.getMenuCode())) {
 					if(adm.getDistribution() == 0 && userBean.getOrgCode() == 3) {
 						MenuStructureDto metr = MenuStructureDto.builder().build();
@@ -493,7 +506,7 @@ public class ZzglController {
 					}
 				}
 			}
-			
+
 			List<ZzglAuth> zas_ = new ArrayList<ZzglAuth>();
 			String[] qhf = new String[mestrs.size()];
 			int y = 0;
@@ -506,11 +519,11 @@ public class ZzglController {
 						zas_.add(zd);
 						qhf[y] = zg.getMenuId();
 						y++;
-						break; 
+						break;
 					}
 				}
 			}
-			
+
 			for(ZzglAuth zg : zas) {
 				if(!ClockInTool.useArrayUtils(ClockInTool.deleteArrayNull2(qhf), zg.getMenuId())) {
 					ZzglAuth zd = ZzglAuth.builder().build();
@@ -519,15 +532,15 @@ public class ZzglController {
 					zas_.add(zd);
 				}
 			}
-			
-			
+
+
 			return ResultUtil.data(zas_);
 		}
 	}
 
 	/**
 	 * 批量修改/删除岗位权限
-	 * 
+	 *
 	 * @param 部门岗位id
 	 * @param 菜单ids
 	 * @return
@@ -547,35 +560,35 @@ public class ZzglController {
 		});
 		return ResultUtil.success();
 	}
-	
+
 	@Autowired
 	private ZzglMenuMapper zzglMenuMapper;
-	
+
 	/**
 	 * 获取-菜单权限列表
-	 * 
+	 *
 	 * @return
 	 */
 	@GetMapping(value = "/menu")
 	@ApiOperation(value = "获取-菜单权限列表", httpMethod = "GET", notes = "接口发布说明")
 	public Result<List<ZzglMenu>> selectMenu(@CurrentUser UserBean userBean) {
-		
+
 		List<ZzglMenu> list = zzglMenuMapper.selectList(null);
-		
+
 		return ResultUtil.data(list);
 	}
-	
+
 	/**
 	 * 获取-菜单权限-搜索
-	 * 
+	 *
 	 * @return
 	 */
 //	@PostMapping(value = "/querymenu")
 //	@ApiOperation(value = "获取-菜单权限-搜索", httpMethod = "POST", notes = "接口发布说明")
 //	public Result<List<Tree<String>>> queryMenu(@CurrentUser UserBean userBean,@RequestBody ZzglMenuQueryDto zzglMenuQueryDto) {
-//		
+//
 //		List<ZzglMenu> list = zzglMenuMapper.queryList(zzglMenuQueryDto);
-//		
+//
 //		//配置
 //		TreeNodeConfig treeNodeConfig = new TreeNodeConfig();
 //		// 自定义属性名 都要默认值的
@@ -603,104 +616,104 @@ public class ZzglController {
 //		            tree.putExtra("visible", treeNode.getVisible());
 ////				    tree.putExtra("other", new Object());
 //		        });
-//		
+//
 //		return ResultUtil.data(treeNodes);
 //	}
-	
+
 	/**
 	 * 新增-菜单权限
-	 * 
+	 *
 	 * @param 部门岗位id
 	 * @return
 	 */
 	@PostMapping(value = "/menu")
 	@ApiOperation(value = "新增-菜单权限", httpMethod = "POST", notes = "接口发布说明")
 	public Result<List<ZzglMenu>> insertPostMenus(@Validated @RequestBody ZzglMenu zzglMenu) {
-		
+
 		Integer conut = zzglMenuMapper.selectCount(new QueryWrapper<ZzglMenu>().lambda()
 				.eq(ZzglMenu::getMenuId, zzglMenu.getParentId()));
 		if (conut <= 0) {
 			return ResultUtil.error("上级权限不存在!");
 		}
-		
+
 		return zzglMenu.insert() ? ResultUtil.success() : ResultUtil.error();
 	}
-	
+
 	/**
 	 * 删除-菜单权限
-	 * 
+	 *
 	 * @param 部门岗位id
 	 * @return
 	 */
 	@DeleteMapping(value = "/menu/{id}")
 	@ApiOperation(value = "删除-菜单权限", httpMethod = "DELETE", notes = "接口发布说明")
 	public Result<List<ZzglMenu>> deletePostMenus(@Validated @RequestBody Integer id) {
-		
+
 		return zzglMenuMapper.deleteById(id) > 0 ? ResultUtil.success() : ResultUtil.error();
 	}
-	
+
 	/**
 	 * 修改-菜单权限
-	 * 
+	 *
 	 * @param 部门岗位id
 	 * @return
 	 */
 	@PutMapping(value = "/menu/{id}")
 	@ApiOperation(value = "修改-菜单权限", httpMethod = "PUT", notes = "接口发布说明")
 	public Result<List<ZzglMenu>> updatePostMenus(@Validated @RequestBody ZzglMenu zzglMenu) {
-		
+
 		return zzglMenu.updateById() ? ResultUtil.success() : ResultUtil.error();
 	}
-	
+
 	/**
 	 * 获取-该岗位的菜单权限
-	 * 
+	 *
 	 * @param 部门岗位id
 	 * @return
 	 */
 	@GetMapping(value = "/menu/{id}")
 	@ApiOperation(value = "获取-该岗位的菜单权限", httpMethod = "GET", notes = "接口发布说明")
 	public Result<List<Integer>> selectMenuByPostId(@CurrentUser UserBean userBean,@PathVariable Integer id) {
-		
+
 		return ResultUtil.data(zzglBmgwMService.selectMenuByPostId(id));
 	}
-	
+
 	/**
 	 * 修改-该岗位的菜单权限
-	 * 
+	 *
 	 * @param 部门岗位id
 	 * @return
 	 */
 	@PutMapping(value = "/post_menu")
 	@ApiOperation(value = "修改-该岗位的菜单权限", httpMethod = "PUT", notes = "接口发布说明")
 	public Result<List<ZzglMenu>> updatePostMenus(@CurrentUser UserBean userBean,@RequestBody ZzglPostMenuDto zzglPostMenuDto) {
-		
+
 		Integer delCount = zzglPostMenuMapper.delete(new QueryWrapper<ZzglPostMenu>().lambda()
 				.eq(ZzglPostMenu::getBmgwId, zzglPostMenuDto.getId()));
 		Integer updateCount = zzglPostMenuMapper.insertPostMenus(zzglPostMenuDto.getId(),zzglPostMenuDto.getMenus());
-		
+
 		return ResultUtil.success();
 	}
-	
-	
+
+
 	@GetMapping(value = "/appdeptlist")
 	@ApiOperation(value = "APP获取部门岗位", httpMethod = "GET", notes = "接口发布说明")
 	public Result<Object> selectapplistdept(@CurrentUser UserBean userBean) {
 		Integer orgCode = userBean.getOrgCode();
 		List<ObtainDepartmentDto> tmen = new ArrayList<ObtainDepartmentDto>();
-		
+
 		List<ZzglBmgwM> zzglbmgwms = new LambdaQueryChainWrapper<ZzglBmgwM>(zzglBmgwMMapper)
 				.eq(ZzglBmgwM::getOrgCode, userBean.getOrgCode()).eq(ZzglBmgwM::getType, 0).list();
 		for(ZzglBmgwM gw : zzglbmgwms) {
 			ObtainDepartmentDto tm = ObtainDepartmentDto.builder().build();
 			BeanUtil.copyProperties(gw, tm);
-			
+
 			List<DepartmentStaffDto> destff = ygglMainEmpMapper.DepartmentStaff(orgCode,gw.getId());
 			tm.setUser(destff);
-			
+
 			tmen.add(tm);
 		}
-		
+
 		return ResultUtil.data(tmen);
 	}
 }
diff --git a/src/main/java/cn/timer/api/utils/aliyun/OSSUtil.java b/src/main/java/cn/timer/api/utils/aliyun/OSSUtil.java
index fee3bcf..f9f0f9c 100644
--- a/src/main/java/cn/timer/api/utils/aliyun/OSSUtil.java
+++ b/src/main/java/cn/timer/api/utils/aliyun/OSSUtil.java
@@ -584,7 +584,7 @@ public class OSSUtil {
      * @Description 创建zip
      * @Date 2021/12/2 18:06
      **/
-    public String createZip(Map<String, String> urlMap) throws Exception {
+    public String createZip(Map<String, String> urlMap) throws IOException {
         DateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
         String fileName = dateFormat.format(new Date()) + ".zip";
         FileOutputStream fos = null;
@@ -613,12 +613,12 @@ public class OSSUtil {
                         zos.write(buffer, 0, nNumber);
                     }
                 } catch (IOException e) {
-                    throw new Exception("写入失败");//TODO 应作为自定义异常
+                    throw new IOException("写入失败");//TODO 应作为自定义异常
                 } finally {
                     try {
                         inputStream.close();
                     } catch (IOException e) {
-                        throw new Exception("关闭失败");//TODO 应作为自定义异常
+                        throw new IOException("关闭失败");//TODO 应作为自定义异常
                     }
                 }
             }
@@ -636,7 +636,7 @@ public class OSSUtil {
                     fos.close();
                 }
             } catch (IOException e) {
-                throw new Exception("关闭失败");//TODO 应作为自定义异常
+                throw new IOException("关闭失败");//TODO 应作为自定义异常
             }
         }
         return fileName;
--
libgit2 0.26.0