Преглед изворни кода

[task-1945]【后端】外部文件定期推送更新升级审批流程

szjbdgzl пре 1 година
родитељ
комит
c8601d0e38

+ 116 - 0
ibps-provider-root/modules/provider-platform/src/main/java/com/lc/ibps/platform/plan/job/ExternalFileUpdJob.java

@@ -0,0 +1,116 @@
+package com.lc.ibps.platform.plan.job;
+
+
+import com.lc.ibps.base.core.util.AppUtil;
+import com.lc.ibps.base.core.util.BeanUtils;
+import com.lc.ibps.base.core.util.JacksonUtil;
+import com.lc.ibps.base.framework.id.UniqueIdUtil;
+import com.lc.ibps.base.framework.table.ICommonDao;
+import org.quartz.JobDataMap;
+import org.quartz.JobExecutionContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author Administrator
+ */
+public class ExternalFileUpdJob extends AbstractJob{
+
+    private static final Logger logger = LoggerFactory.getLogger(ExternalFileUpdJob.class);
+
+    private ICommonDao<?> commonDao = AppUtil.getBean(ICommonDao.class);
+
+    @Override
+    public void executeJob(JobExecutionContext context) throws Exception {
+        JobDataMap dataMap = context.getMergedJobDataMap();
+        if(logger.isInfoEnabled()) {
+            logger.info("group={} job={} trigger={} is running.",
+                    context.getJobDetail().getKey().getGroup(),
+                    context.getJobDetail().getKey().getName(),
+                    context.getTrigger().getKey().getName());
+            logger.info("jobDataMap=is {}.", JacksonUtil.toJsonString(dataMap.getWrappedMap()));
+        }
+
+        String sql = "SELECT b.id_ as xuan_ze_wen_jian_,b.wen_jian_lei_xing,b.wen_jian_xi_lei_,b.xi_lei_id_," +
+                "b.wen_jian_bian_hao,a.xin_wen_jian_ming as wen_jian_ming_che,'修订' as cao_zuo_lei_xing_ from t_wjxxgxb a, t_wjxxb b " +
+                "WHERE a.ji_lu_id_=b.id_ and  a.shi_fou_guo_shen_ is null";
+
+        List<Map<String, Object>> list = (List<Map<String, Object>>) commonDao.query(sql);
+
+        if(BeanUtils.isNotEmpty(list)){
+            String pid = UniqueIdUtil.getId();
+            StringBuilder zhuXuanZeWenJ = new StringBuilder();
+            String time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
+            Map<String,Object> main = new HashMap<>();
+            for (Map<String,Object> map : list){
+                zhuXuanZeWenJ = zhuXuanZeWenJ.append(map.get("xuan_ze_wen_jian_")).append(",");
+
+                // 子表一
+                map.put("parent_id_",pid);
+                map.put("id_", UniqueIdUtil.getId());
+                map.put("create_time_", time);
+                commonDao.execute(this.buildInsertSql(map,"t_wjxzxdjlb"));
+
+                // 子表二
+                Map<String,Object> sub = new HashMap<>();
+                sub.put("id_", UniqueIdUtil.getId());
+                sub.put("create_time_", time);
+                sub.put("parent_id_",pid);
+                sub.put("bian_zhi_shi_jian",time);
+                sub.put("wen_jian_ming_che",map.get("xin_wen_jian_ming"));
+                sub.put("wen_jian_fu_jian_",map.get("xuan_ze_wen_jian_"));
+                sub.put("xiu_ding_zi_biao_",map.get("xuan_ze_wen_jian_"));
+                commonDao.execute(this.buildInsertSql(sub,"t_wjxdjl"));
+            }
+
+            // 主表
+            // 编制人 推送的修订流程在编制步骤,需要指定对应用户,讨论确定指定  文件管理组组长  或  文件管理员  角色对应的用户,优先 文件管理组组长
+            String bianZhiRen = "";
+            String wjglzzz = "SELECT USER_ID_ from ibps_party_user_role WHERE ROLE_ID_=" +
+                    "(SELECT id_ from ibps_party_role WHERE ROLE_ALIAS_='wjglzzc') ORDER BY CREATE_TIME_ limit 1";
+            Map<String,Object> zz = commonDao.queryOne(wjglzzz);
+            if (BeanUtils.isNotEmpty(zz)){
+                bianZhiRen = zz.get("USER_ID_").toString();
+            }else {
+                String wjgly = "SELECT USER_ID_ from ibps_party_user_role WHERE ROLE_ID_=" +
+                        "(SELECT id_ from ibps_party_role WHERE ROLE_ALIAS_='wjgly') ORDER BY CREATE_TIME_ LIMIT 1";
+                Map<String,Object> gly = commonDao.queryOne(wjgly);
+                if (BeanUtils.isNotEmpty(gly)){
+                    bianZhiRen = gly.get("USER_ID_").toString();
+                }
+            }
+            if (BeanUtils.isEmpty(bianZhiRen)){
+                throw new Exception("开启文件修订流程,根据 文件管理组组长 或 文件管理员 角色找不到对应的人员,流程开启失败!");
+            }
+            main.put("id_",pid);
+            main.put("create_time_", time);
+            main.put("bian_zhi_ren_", bianZhiRen);
+            main.put("create_by_", bianZhiRen);
+            zhuXuanZeWenJ.deleteCharAt(zhuXuanZeWenJ.length() - 1);
+            main.put("zhu_xuan_ze_wen_j",zhuXuanZeWenJ);
+            main.put("lai_yuan_","修订");
+            main.put("zhu_wen_jian_shen","[{\"id\":\"1001\",\"fileName\":\"文件审核规定_sys\"}]");
+            main.put("shen_he_zou_xiang","jspgz");
+            main.put("pi_liang_lei_xing","外部文件");
+            commonDao.execute(this.buildInsertSql(main,"t_wjxdzb"));
+        }
+
+        // 文件修订流程
+        startWorkflow("t_wjxdzb","wjplxd","Process_1ek5omy_2");
+
+        String sql2 = "SELECT a.id_ from t_wjxxgxb a, t_wjxxb b WHERE a.ji_lu_id_=b.id_ and  a.shi_fou_guo_shen_ is null";
+        List<Map<String, Object>> update = (List<Map<String, Object>>) commonDao.query(sql2);
+        if(BeanUtils.isNotEmpty(update)){
+            for (Map<String,Object> map : update) {
+                commonDao.execute("update t_wjxxgxb set shi_fou_guo_shen_='已完成' where id_ ='"+map.get("id_")+"'");
+            }
+        }
+    }
+
+}