yuansh il y a 2 ans
Parent
commit
158d98e218

+ 76 - 6
jeecg-boot/jeecg-boot-module-activiti/src/main/java/org/jeecg/modules/activiti/web/ActBusinessController.java

@@ -19,6 +19,7 @@ import org.apache.shiro.SecurityUtils;
 import org.checkerframework.checker.units.qual.Area;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.constant.CommonConstant;
+import org.jeecg.common.exception.JeecgBootException;
 import org.jeecg.common.system.api.ISysBaseAPI;
 import org.jeecg.common.system.util.JwtUtil;
 import org.jeecg.common.system.vo.LoginUser;
@@ -336,6 +337,8 @@ public class ActBusinessController {
     @RequestMapping(value = "/apply", method = RequestMethod.POST)
     public Result apply(ActBusiness act){
 
+        boolean error = false;
+
         ActBusiness actBusiness = actBusinessService.getById(act.getId());
         if(actBusiness==null){
             return Result.error("actBusiness表中该id不存在");
@@ -349,15 +352,82 @@ public class ActBusinessController {
             //如果表单里有 标题  更新一下
             actBusiness.setTitle(busiData.get(ActivitiConstant.titleKey)+"");
         }
-        String processInstanceId = actZprocessService.startProcess(act);
-        actBusiness.setProcInstId(processInstanceId);
-        actBusiness.setStatus(1);
-        actBusiness.setResult(1);
-        actBusiness.setApplyTime(new Date());
-        actBusinessService.updateById(actBusiness);
+        try {
+            String processInstanceId = actZprocessService.startProcess(act);
+            actBusiness.setProcInstId(processInstanceId);
+            actBusiness.setStatus(1);
+            actBusiness.setResult(1);
+            actBusiness.setApplyTime(new Date());
+            actBusinessService.updateById(actBusiness);
+        }catch (Exception e){//如果提交中发生异常,这直接通过该条数据
+            error = true;
+            onlyInfo(actBusiness,busiData);
+            throw new JeecgBootException("流程错误,直接通过");
+
+        }
+
         return Result.ok("操作成功");
     }
 
+    /**
+     * 单独线程处理信息
+     * @param actBusiness
+     * @param busiData
+     */
+    public void onlyInfo(ActBusiness actBusiness,Map<String, Object> busiData){
+
+        if(actBusiness == null || StringUtils.isBlank(actBusiness.getTableName())){
+            return;
+        }
+
+        //会议纪要
+        if(actBusiness.getTableName().equals("meeting_summary")){
+
+            String msg_user1 = busiData.get("meeting_personnel").toString();
+            String msg_title1 = busiData.get("meeting_theme").toString();
+            String msg_content1 = busiData.get("meeting_content").toString();
+
+            String msg_content12 = msg_content1.replace("\n","<br>");
+
+            String dmf = msg_user1.replace("[","");
+            String dmf2 = dmf.replace("]","");
+            String dmf3 = dmf2.replace("\"","");
+            String[] userList = dmf3.split(",");
+
+            HashMap<String,Object> taskParam = new HashMap<>();
+            LoginUser loginUser = sysBaseAPI.getUserByName("admin");
+
+             //在主函数中。不new一个线程,直接去得到当前的线程,为主线程;
+            Thread t=Thread.currentThread();
+            System.out.println("线程为"+t.getName());//线程名:main 这是系统自己为主线程定义的名
+
+            //创建一个线程并初始化
+            Thread thread=new Thread(){
+                //具体的业务代码
+                @Override
+                public  void run(){
+                    //发送消息
+                    for (String o:userList){
+                        sysBaseAPI.sendSysAnnouncement(loginUser,"admin",o,"会议纪要","<h2>会议主题:"+msg_title1+"</h2><br> <h3>会议内容:<br>"+msg_content12+"</h3>", CommonConstant.MSG_CATEGORY_2,taskParam);
+                    }
+
+                    actBusiness.setStatus(2);
+                    actBusiness.setResult(2);
+                    actBusiness.setApplyTime(new Date());
+                    actBusinessService.updateById(actBusiness);
+                    Thread t=Thread.currentThread();
+                    System.out.println(t.getName());//线程名:Thread-0 自己未命名时,系统会去命名,当有多个线程时,依次为Thread-0、Thread-1、Thread-2....
+                }
+
+            };
+            //开启线程
+            thread.start();
+
+
+        }
+
+    }
+
     /**
     * @Author chenchuang
     * @Description //TODO 外部项目用来调用的流程提交接口

+ 2 - 2
jeecg-boot/jeecg-boot-module-activiti/src/main/java/org/jeecg/modules/activiti/web/ActTaskController.java

@@ -478,8 +478,8 @@ public class ActTaskController {
             map.put("isUrl","1");
             map.put("url","/activiti/applyList");
             map.put("taskId",task.getId());
-            actZprocessService.sendMessage(loginUser,user,ActivitiConstant.MESSAGE_PASS_CONTENT,
-                    String.format("您的 【%s】 申请已通过!",actBusiness.getTitle()),sendMessage, sendSms, sendEmail,map);
+//            actZprocessService.sendMessage(loginUser,user,ActivitiConstant.MESSAGE_PASS_CONTENT,
+//                    String.format("您的 【%s】 申请已通过!",actBusiness.getTitle()),sendMessage, sendSms, sendEmail,map);
             //修改公司id
             List<String> listTaskId=new ArrayList<>();
             listTaskId.add(task.getId());

+ 43 - 1
jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/SysUserController.java

@@ -272,6 +272,20 @@ public class SysUserController {
         return result;
     }
 
+
+    @RequestMapping(value = "/queryByUsername", method = RequestMethod.GET)
+    public Result<SysUser> queryByUsername(@RequestParam(name = "username", required = true) String username) {
+        Result<SysUser> result = new Result<SysUser>();
+        SysUser sysUser = sysUserService.getUserByName(username);
+        if (sysUser == null) {
+            result.error500("未找到对应实体");
+        } else {
+            result.setResult(sysUser);
+            result.setSuccess(true);
+        }
+        return result;
+    }
+
     @RequestMapping(value = "/queryUserRole", method = RequestMethod.GET)
     public Result<List<String>> queryUserRole(@RequestParam(name = "userid", required = true) String userid) {
         Result<List<String>> result = new Result<>();
@@ -1230,7 +1244,27 @@ public class SysUserController {
         queryWrapper.orderByAsc("org_code");
         queryWrapper.orderByAsc("convert(realname using gbk)");
         IPage<SysUser> pageList = sysUserService.page(page, queryWrapper);
-
+        List<SysPosition> list2 = sysPositionService.list();
+        Map<String,String> map = new HashMap<>();
+        for(SysPosition o:list2){
+            map.put(o.getCode(),o.getName());
+        }
+//        for(SysUser o:pageList){
+//            if(StringUtils.isNotBlank(o.getIfOa()) && o.getIfOa().equals("1")){
+//                o.setIfOa("是");
+//            }else{
+//                o.setIfOa("否");
+//            }
+//            if(StringUtils.isNotBlank(o.getNMarriage()) && o.getNMarriage().equals("1")){
+//                o.setNMarriage("是");
+//            }
+//            if(StringUtils.isNotBlank(o.getNMarriage()) && o.getNMarriage().equals("0")){
+//                o.setNMarriage("否");
+//            }
+//            if(StringUtils.isNotBlank(o.getPost()) && map.containsKey(o.getPost())){
+//                o.setPost(map.get(o.getPost()));
+//            }
+//        }
         //批量查询用户的所属部门
         //step.1 先拿到全部的 useids
         //step.2 通过 useids,一次性查询用户的所属部门名字
@@ -1242,6 +1276,9 @@ public class SysUserController {
                 item.setOrgCode(useDepNames.get(item.getId()));
                 if(useDepNames.containsKey(item.getId())){
                     item.setRealname(useDepNames.get(item.getId())+"-"+item.getRealname());
+
+                    item.setDeptName(useDepNames.get(item.getId()));
+
                     if(useDepNames.get(item.getId()).length() < 3){
                         item.setSalt(useDepNames.get(item.getId()));
                     }else{
@@ -1249,9 +1286,14 @@ public class SysUserController {
                     }
                 }else{
                     item.setSalt("0");
+                    item.setDeptName("无部门");
                     item.setRealname("无部门"+"-"+item.getRealname());
                 }
 
+                if(StringUtils.isNotBlank(item.getPost()) && map.containsKey(item.getPost())){
+                    item.setPost(map.get(item.getPost()));
+                }
+
             });
         }
         Collections.sort(pageList.getRecords(), (a, b) -> {

+ 4 - 0
jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/entity/SysUser.java

@@ -16,6 +16,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
 import com.fasterxml.jackson.annotation.JsonFormat;
 
 import java.io.Serializable;
+import java.util.Map;
 
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -338,4 +339,7 @@ public class SysUser implements Serializable {
 
     @TableField(exist = false)
     private java.lang.Integer isPossess;//该用户是否有部门负责人 0否 1是
+
+    @TableField(exist = false)
+    private java.lang.String deptName;//临时字段,存放部门名称
 }