Przeglądaj źródła

新增认可申报推送接口及定时任务推送框架

wy 4 miesięcy temu
rodzic
commit
228866a18d

+ 12 - 1
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/business/controller/AuditController.java

@@ -17,7 +17,7 @@ import java.util.Map;
 /**
  * @author Administrator
  */
-@Api(tags = "内审、管审、人员培训-通知")
+@Api(tags = "内审、管审、人员培训-通知、认可申报推送")
 @RequestMapping("/audit/notice")
 @RestController
 public class AuditController extends GenericProvider {
@@ -83,4 +83,15 @@ public class AuditController extends GenericProvider {
         return result;
     }
 
+    @ApiOperation("认可申报推送数据")
+    @PostMapping("/Approval")
+    APIResult<Map<String,Object>> Approval(@RequestParam(name = "id", required = true) String id){
+        APIResult<Map<String,Object>> result = new APIResult<>();
+        try {
+            result = auditService.Approval(id);
+        }catch (Exception e){
+            setExceptionResult(result, StateEnum.ILLEGAL_REQUEST.getCode(), I18nUtil.getMessage(StateEnum.ILLEGAL_REQUEST.getCode() + ""), e);
+        }
+        return result;
+    }
 }

+ 2 - 0
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/business/service/AuditService.java

@@ -19,4 +19,6 @@ public interface AuditService {
 
     APIResult<Map<String,Object>> dataToSql(String logId) throws Exception;
 
+    APIResult<Map<String,Object>> Approval(String id)throws Exception;
+
 }

+ 71 - 0
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/business/service/impl/AuditServiceImpl.java

@@ -5,9 +5,13 @@ import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
 import com.lc.ibps.api.form.sql.util.BeanUtils;
 import com.lc.ibps.base.core.constants.StringPool;
+import com.lc.ibps.base.core.util.AppUtil;
+import com.lc.ibps.base.core.util.Collections;
 import com.lc.ibps.base.framework.id.UniqueIdUtil;
 import com.lc.ibps.base.framework.table.ICommonDao;
+import com.lc.ibps.base.saas.token.ITenantTokenService;
 import com.lc.ibps.base.web.context.ContextUtil;
+import com.lc.ibps.bpmn.api.IBpmInstService;
 import com.lc.ibps.business.service.AuditService;
 import com.lc.ibps.cloud.entity.APIResult;
 import com.lc.ibps.cloud.message.util.MessageQueueProductorUtil;
@@ -24,6 +28,7 @@ import java.text.SimpleDateFormat;
 import java.time.LocalDate;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @author Administrator
@@ -524,4 +529,70 @@ public class AuditServiceImpl implements AuditService {
         return sql.toString();
     }
 
+    @Override
+    public APIResult<Map<String, Object>> Approval(String id) throws Exception {
+        APIResult<Map<String,Object>> result = new APIResult<>();
+        String sql = "select t_rksbjhbzb.*,t_rksbjhb.id_ as zhuId,t_rksbjhb.di_dian_ as zhuDiDian ,t_rksbjhb.ping_shen_lei_xin as pslx ,t_rksbjhb.shen_bao_shi_jian as sbsj "+
+                " t_rksbjhb.ping_shen_shi_jia as xcpssj,t_rksbjhb.nian_du_ as nd "+
+                " from t_rksbjhbzb join t_rksbjhb on t_rksbjhbzb.parent_id_ = t_rksbjhb.id_ where t_rksbjhb.id_ = '" + id +"'";
+        List<Map<String,Object>> query = (List<Map<String,Object>>) commonDao.query(sql);
+        if(Collections.isNotEmpty(query)){
+           //封装流程的数据
+            IBpmInstService bpmInstService = AppUtil.getBean(IBpmInstService.class);
+            if (StringUtils.isBlank(ContextUtil.getCurrentAccessToken())) {
+                ITenantTokenService tenantTokenService = AppUtil.getBean(ITenantTokenService.class);
+                String accessToken = tenantTokenService.getAccessToken();
+                ContextUtil.setCurrentAccessToken(accessToken);
+            }
+            //封装bo
+            List<String> idArr = new ArrayList<>();
+            List<String> oldIds = new ArrayList<>();
+            for (Map<String,Object> item :query) {
+                oldIds.add(item.get("id_").toString());
+                String use = item.get("fu_ze_ren_").toString();
+                String[] userIds = use.split(",");
+                for (String uid: userIds) {
+                    Map<String, Object> itemMap = new HashMap<>();
+                    String boId = UniqueIdUtil.getId();
+                    itemMap.put("id_",boId);
+                    idArr.add(boId);
+                    itemMap.put("create_time_", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
+                    itemMap.put("create_by_",'1');
+                    itemMap.put("update_time_",new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
+                    itemMap.put("di_dian_",item.get("zhuDiDian").toString());
+                    itemMap.put("bian_zhi_ren_",uid);
+                    itemMap.put("ping_shen_lei_xin",BeanUtils.isNotEmpty(item.get("pslx")) ? item.get("pslx").toString():"");
+                    itemMap.put("shen_bao_shi_jian",BeanUtils.isNotEmpty(item.get("sbsj")) ? item.get("sbsj").toString():"");
+                    itemMap.put("ping_shen_shi_jia",BeanUtils.isNotEmpty(item.get("xcpssj")) ? item.get("xcpssj").toString():"");
+                    itemMap.put("nian_du_",BeanUtils.isNotEmpty(item.get("nd")) ? item.get("nd").toString():"");
+                    itemMap.put("pai_xu_hao_",item.get("pai_xu_hao_").toString());
+                    itemMap.put("wen_jian_ming_che",item.get("wen_jian_ming_che").toString());
+                    itemMap.put("wen_jian_shuo_min",item.get("wen_jian_shuo_min").toString());
+                    itemMap.put("tian_xie_shuo_min",BeanUtils.isNotEmpty(item.get("tian_xie_shuo_min"))?item.get("tian_xie_shuo_min").toString():"");
+                    itemMap.put("zhu_yi_shi_xiang_",BeanUtils.isNotEmpty(item.get("zhu_yi_shi_xiang_"))?item.get("zhu_yi_shi_xiang_").toString():"");
+                    itemMap.put("fu_ze_ren_",uid);
+                    itemMap.put("wan_cheng_qi_xian",item.get("wan_cheng_qi_xian").toString());
+                    itemMap.put("ji_hua_zhu_biao_i",item.get("zhuId").toString());
+                    itemMap.put("ji_hua_zi_biao_id",item.get("id_").toString());
+                    commonDao.execute(this.buildInsertSql(itemMap, "t_rksbclb"));
+                }
+            }
+            String[] strings = idArr.toArray(new String[0]);
+            APIResult<String> apiResult = bpmInstService.startFlowFromList(strings, "rksbclb", "Process_0d1f058");
+            int state = apiResult.getState();
+            if("200".equals(String.valueOf(state))){
+                //已经推送过流程的数据防止重复推送,yi_tui_song_=1 表示数据是yi_tui_song_推送的数据
+                String join = String.join(",", oldIds);
+                String upSql = "UPDATE t_rksbjhbzb SET yi_tui_song_ = '1' where find_in_set(id_,'"+ join + "') ";
+                commonDao.execute(upSql);
+            }
+            result.setState(200);
+            result.setMessage("请求成功");
+        }else{
+            result.setState(404);
+            log.warn("当前id查询不到对应的数据,id是" + id);
+            result.setMessage("数据为空,请确认后再操作");
+        }
+        return result;
+    }
 }

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

@@ -0,0 +1,40 @@
+package com.lc.ibps.platform.plan.job;
+
+import com.lc.ibps.base.core.util.AppUtil;
+import com.lc.ibps.base.core.util.Collections;
+import com.lc.ibps.base.framework.table.ICommonDao;
+import org.quartz.JobExecutionContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.time.Year;
+import java.util.List;
+import java.util.Map;
+
+public class ApprovalDeclarationJob  extends AbstractJob{
+
+    private static final Logger logger = LoggerFactory.getLogger(ApprovalDeclarationJob.class);
+    private ICommonDao<?> commonDao = AppUtil.getBean(ICommonDao.class);
+    public static final String CURRENT_YEAR = Year.now().toString();
+
+    @Override
+    public void executeJob(JobExecutionContext context) throws Exception {
+        //查询当前年度的计划子表中带推送的数据
+        List<Map<String, Object>> all = selectAll();
+
+        //根据时间筛选今天需要推送的数据(待明确需求后补充补充)
+
+    }
+
+    public List<Map<String,Object>> selectAll(){
+        //查询当前年度已完成的计划对应的子表的未推送的数据
+        String sql = " select t_rksbjhbzb.*,t_rksbjhb.id_ as zhuId from t_rksbjhbzb join t_rksbjhb on t_rksbjhbzb.parent_id_ = t_rksbjhb.id_ where t_rksbjhb.nian_du_ = '"
+                + CURRENT_YEAR +"' and t_rksbjhb.shi_fou_guo_shen_ = '已完成' and t_rksbjhbzb.yi_tui_song_ <> '1'";
+        List<Map<String,Object>> query = (List<Map<String,Object>>) commonDao.query(sql);
+        if(Collections.isNotEmpty(query)){
+            logger.warn("查询到待推送的认可计划数据:",query);
+            return query;
+        }
+        return null;
+    }
+}