cy
2022-06-22 425675051e544cf29b2132615cfbf7a93dc5e51f
src/cn/ksource/web/facade/releaseManage/ReleaseFacadeImpl.java
@@ -1,15 +1,5 @@
package cn.ksource.web.facade.releaseManage;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import cn.ksource.beans.GG_RECORD;
import cn.ksource.beans.SC_WORKFLOW_RELEASE;
import cn.ksource.beans.WORKFLOW_BASE;
@@ -18,7 +8,6 @@
import cn.ksource.core.dao.SqlParameter;
import cn.ksource.core.util.ConvertUtil;
import cn.ksource.core.util.DateUtil;
import cn.ksource.core.util.JsonUtil;
import cn.ksource.core.util.StringUtil;
import cn.ksource.core.util.TreeUtil;
import cn.ksource.core.web.SysInfoMsg;
@@ -33,7 +22,15 @@
import cn.ksource.web.service.WorkOrderCodeService;
import cn.ksource.web.service.record.RecordService;
import cn.ksource.web.service.workFlowSupport.WorkFlowSupportService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@SuppressWarnings("unchecked")
@Repository
public class ReleaseFacadeImpl implements ReleaseFacade{
@@ -43,17 +40,17 @@
   private DSLFacade dslFacade;
   @Autowired
   private ChangeFacade changeFacade;
   @Autowired
   private WorkOrderCodeService workOrderCodeService;
   @Autowired
   private WorkFlowSupportService workFlowSupportService;
   @Autowired
   private RecordService recordService;
   @Autowired
   private WorkflowCoreService workflowCoreService;
   /**
    * 获取我的发布管理数据
    * @param request
@@ -88,7 +85,7 @@
         .addValue("startDate", startDate+"000000")
         .addValue("endDate", endDate+"666666");
      StringBuilder builder = new StringBuilder();
      builder.append(" select r.NAME,b.CURRENT_DEALER_NAME,r.PROJECT_NAME,r.RELEASE_REASON,n.*,b.WFNAME,b.CREATERNAME,b.CREATETIME,b.CURRENT_NODE_NAME,b.BUSINESSTYPE, ");
      builder.append(" r.ORDER_CODE,r.ID ORDERID,b.CUSTOMER_NAME,b.SUB_CUSTOMER_NAME,B.WFSTATE  ");
@@ -101,11 +98,11 @@
      builder.append("    where CURRENT_DEALER_ID = :userId  ");
            //环节状态
            if(StringUtil.isNotBlank(nodeState)){
               builder.append("and FLOWSTATE =:nodeState ");
               builder.append("and FLOWSTATE =:nodeState ");
            }
      builder.append("    order by FLOWSTATE asc  ");
      builder.append("    ) t  ");
      builder.append("    group by FLOWID ");
      builder.append("    group by FLOWID,NODEID,NODETIME,NODESTATE ");
      builder.append(" ) n  ");
      builder.append("  on b.ID = n.FLOWID ");
      //builder.append(" where  b.PARTNER_ID =:partnerId ");
@@ -114,9 +111,9 @@
      //工单状态
      if(StringUtil.notEmpty(flowState)) {
         builder.append(" AND b.WFSTATE =:flowState ");
      }
      //客户
      if(StringUtil.isNotBlank(customerId)) {
         builder.append(" AND b.CUSTOMER_ID = :customerId ");
@@ -129,7 +126,7 @@
      if(StringUtil.isNotBlank(projectId)) {
         builder.append(" AND b.PROJECT_ID = :projectId ");
      }
      if(StringUtil.notEmpty(orderCode)) {
         builder.append(" AND r.ORDER_CODE LIKE :orderCode");
      }
@@ -145,13 +142,13 @@
      builder.append(" order by n.NODESTATE ASC,n.NODETIME desc,b.CREATETIME desc ");
      Map supportMap = new HashMap();
      supportMap.put("sql", builder.toString());
      supportMap.put("param", param);
      return supportMap;
   }
   @Override
   public int queryMyRealseCount(HttpServletRequest request) {
      Map supportMap = getMyRealseSupportMap(request);
@@ -167,7 +164,7 @@
      SqlParameter param = (SqlParameter)supportMap.get("param");
      return baseDao.queryforSplitPage(request, sql, param);
   }
   @Override
   public List queryLinkDeviceList(String flowId) {
      String sql = " select c.id,c.ciname,c.position,c.SEARCHCODE seachcode from cmdb_ci_base c " +
@@ -189,13 +186,13 @@
      }
      return list;
   }
   @Override
   public Map getChangeInfoById(String changeId) {
      String sql = "select oa_id,id change_id,name,customer_id,customer_name,project_id,project_name from sc_workflow_change where id = :changeId ";
      return baseDao.queryForMap(sql, new SqlParameter("changeId", changeId));
   }
   @Override
   public String saveRelease(HttpServletRequest request, SC_WORKFLOW_RELEASE release) {
      String orderId = request.getParameter("orderId");
@@ -258,7 +255,7 @@
      String[] linkOrderIds = request.getParameterValues("linkOrderId");
      String[] linkDeviceIds = request.getParameterValues("linkDeviceId");
      if(StringUtil.isBlank(flowId)||flowId.equals(orderId)){
         String sql = " update sc_workflow_release set flow_id = :orderId where id=:orderId ";
         baseDao.execute(sql, new SqlParameter("orderId",orderId));
@@ -272,7 +269,7 @@
      //saveSysInfo(orderId,sysInfoJson);
      return orderId;
   }
   @Override
   public SysInfoMsg doOrganizationDSL(HttpServletRequest request){
      String orderId = request.getParameter("orderId");
@@ -322,7 +319,7 @@
         sql = " update DSL_ORDER_LINK set FLOW_ID = :flowId where FLOW_ID = :orderId ";
         baseDao.execute(sql, param);
      }
      //增加处理记录
      GG_RECORD record = new GG_RECORD();
      record.setDeal_content("创建发布:"+userName+"创建了发布流程");
@@ -331,10 +328,10 @@
      record.setDeal_user_name(userName);
      record.setBusiness_id(flowId);
      recordService.addRecord(record);
      return msg;
   }
   @Override
   public Map getDSLInfo(String configureId, String thirdCateId, String flowId, String partnerId) {
      SqlParameter param = new SqlParameter();
@@ -342,7 +339,7 @@
         .addValue("thirdCateId", thirdCateId)
         .addValue("flowId", flowId)
         .addValue("partnerId", partnerId);
      StringBuilder builder = new StringBuilder();
      //查询dsl基本信息
      builder.append(" select id,pid,'name',note,lv from CONFIG_DSL where state=1 and THIRD_CATEGORY_ID=:thirdCateId and PARTNER_ID=:partnerId order by lv,sort_id asc ");
@@ -366,7 +363,7 @@
      root.put("versionNo",versionNo);
      return root;
   }
   @Override
   public Map getNextNode(Map<String, String> params) {
      String nodeId = params.get("nodeId");
@@ -395,7 +392,7 @@
      nextNode.put("curTemplateId", templateId);
      return nextNode;
   }
   @Override
   public SysInfoMsg doApproveAssign(HttpServletRequest request) {
      String orderId = request.getParameter("orderId");
@@ -412,7 +409,7 @@
         return doReleaseNotice(request);
      /*}*/
   }
   @Override
   public SysInfoMsg doReleaseNotice(HttpServletRequest request) {
      String orderId = request.getParameter("orderId");
@@ -422,16 +419,16 @@
      Map user = WebUtil.getLoginUser(request).getLoginUser();
      String userName = user.get("ZSXM").toString();
      String userId = user.get("Id").toString();
      SC_WORKFLOW_RELEASE release = new SC_WORKFLOW_RELEASE(orderId).getInstanceById();
      List<Map> userList = new ArrayList<Map>();
       Map executorMap = new HashMap();
      executorMap.put("USER_ID", release.getExecute_id());
      executorMap.put("USER_NAME", release.getExecute_name());
      executorMap.put("IS_ADMIN", "1");
      userList.add(executorMap);
      WorkFlowSupportEntity support = new WorkFlowSupportEntity();
      support.setFlowId(flowId);
      support.setNodeId(nodeId);
@@ -442,7 +439,7 @@
      support.setNextNodeTemplateId(Constants.RELEASE_EXECUTE);
      support.setWorkFlowType(Constants.WORKFLOW_BASE_BUSINESS_TYPE_RELEASE);
      SysInfoMsg msg = workFlowSupportService.doOrderFlow(support);
      //增加处理记录
      String dealUserName="";
      for(Map map:userList){
@@ -459,10 +456,10 @@
      record.setDeal_user_name(userName);
      record.setBusiness_id(flowId);
      recordService.addRecord(record);
      return msg;
   }
   @Override
   public SysInfoMsg doReleaseExec(HttpServletRequest request) {
      String orderId = request.getParameter("orderId");
@@ -490,16 +487,16 @@
      support.setUserName(userName);
      support.setUserId(userId);
      support.setNote(flowNote);
      support.setEverDealflag(true);
      support.setEverNodeTemplateId(Constants.RELEASE_APPROVE);
      support.setNextNodeTemplateId(Constants.RELEASE_APPROVAL);
      support.setWorkFlowType(Constants.WORKFLOW_BASE_BUSINESS_TYPE_RELEASE);
      SysInfoMsg msg = workFlowSupportService.doOrderFlow(support);
      //查询发布审批主负责人()
      Map<String, String> lastNode = changeFacade.queryUserByTemplateId(flowId, Constants.RELEASE_APPROVE);
      //增加处理记录
      GG_RECORD record = new GG_RECORD();
      record.setDeal_content("工单流转:"+userName+"将工单发送给了"+lastNode.get("CURRENT_DEALER_NAME"));
@@ -508,7 +505,7 @@
      record.setDeal_user_name(userName);
      record.setBusiness_id(flowId);
      recordService.addRecord(record);
      return msg;
   }
@@ -520,7 +517,7 @@
      String nodeId = request.getParameter("nodeId");
      String flowId = request.getParameter("flowId");
      String flowNote = request.getParameter("flowNote");
      Map user = WebUtil.getLoginUser(request).getLoginUser();
      String userName = user.get("ZSXM").toString();
      String userId = user.get("Id").toString();
@@ -568,12 +565,12 @@
         return null;
      }
   }
   @Override
   public void doOrderFinish(HttpServletRequest request){
      String orderId = request.getParameter("orderId");
      String nodeId = request.getParameter("nodeId");
      String flowNote = request.getParameter("flowNote");
      String nodeId = request.getParameter("nodeId");
      String flowNote = request.getParameter("flowNote");
      String sucessFlag = request.getParameter("sucessFlag");
      if (StringUtil.isBlank(sucessFlag)) {
         sucessFlag = "1";
@@ -596,7 +593,7 @@
      support.setFlowEndflag(true);
      support.setWorkFlowType(Constants.WORKFLOW_BASE_BUSINESS_TYPE_RELEASE);
      workFlowSupportService.doOrderFlow(support);
      //保存dsl操作记录
      dslFacade.saveConfigDslDealRecord(flowId);
      //更新dsl关系
@@ -614,13 +611,13 @@
      record.setBusiness_id(flowId);
      recordService.addRecord(record);
   }
   @Override
   public List querySysInfoList(String orderId) {
      String sql = " select * from SC_WORKFLOW_RELEASE_BUSINESS_SYS where BUSINESS_ID = :orderId" ;
      return baseDao.queryForList(sql,new SqlParameter().addValue("orderId", orderId));
   }
   @Override
   public boolean doAnswer(HttpServletRequest request) {
      String flowId = request.getParameter("flowId");
@@ -634,7 +631,7 @@
      boolean flag = workflowCoreService.answerNode(base, node, entity);
      return flag;
   }
   @Override
   public SysInfoMsg doSendBack(HttpServletRequest request) {
      String orderId = request.getParameter("orderId");
@@ -656,7 +653,7 @@
      SysInfoMsg msg = workFlowSupportService.doOrderSendback(support);
      return msg;
   }
   @Override
   public void doCloseFlow(HttpServletRequest request) {
      String orderId = request.getParameter("orderId");
@@ -673,7 +670,7 @@
      WORKFLOW_NODE node = new WORKFLOW_NODE(nodeId).getInstanceById();
      workflowCoreService.finishNode(base, node, finishEntity);
      workflowCoreService.closeWorkFlow(base);
      String flowId = base.getId();
      //保存dsl操作记录
      dslFacade.saveConfigDslDealRecord(flowId);
@@ -683,7 +680,7 @@
      changeFacade.saveRelationWhenClose(flowId);
      //删除变更中的配置关系
      changeFacade.delRelationWhenClose(flowId);
      //增加处理记录
      GG_RECORD record = new GG_RECORD();
      record.setDeal_content("工单关闭:"+userName+"关闭了工单");
@@ -693,14 +690,14 @@
      record.setBusiness_id(node.getFlowid());
      recordService.addRecord(record);
   }
   @Override
   public Map getSurveyNum(HttpServletRequest request) {
      Map result = new HashMap();
      //String partnerId = WebUtil.getLoginedPartnerId(request);
      SqlParameter param = new SqlParameter();
      param.addValue("businessType", Constants.WORKFLOW_BASE_BUSINESS_TYPE_RELEASE);
      List<Map> projects = new ArrayList<Map>();
      //projects = WebUtil.getProjects(request);
      StringBuilder builder = new StringBuilder();
@@ -730,7 +727,7 @@
      }
      return result;
   }
   @Override
   public List<Map> queryRealseData(HttpServletRequest request) {
      StringBuilder builder = new StringBuilder();
@@ -799,7 +796,7 @@
      String sql = "select count(*) from ( " + builder.toString() + " ) t" ;
      return baseDao.queryForInteger(sql.toString(),paramMap);
   }
   /**
    * 服务台工单列表
    * @param request
@@ -813,17 +810,17 @@
      String nodeTemplateId = request.getParameter("nodeTemplateId");
      String nodeTempId = request.getParameter("nodeTempId");
      /*List<Map> projects = new ArrayList<Map>();
      if(StringUtil.notEmpty(customerId) && StringUtil.notEmpty(projectId)) {
      } else if (StringUtil.notEmpty(customerId) && !StringUtil.notEmpty(projectId)) {
         //通过当前客户查询出所有的项目信息
         projects = slaProjectFacade.queryProjects(request, customerId);
      } else {
         projects = WebUtil.getProjects(request);
      }*/
      StringBuilder builder = new StringBuilder();
      builder.append(" select n.FLOWSTATE NODESTATE,b.CURRENT_DEALER_NAME,b.PROJECT_NAME,r.RELEASE_REASON,b.ID FLOWID,b.WFNAME,b.CREATERNAME,b.CREATETIME,b.CURRENT_NODE_NAME,b.BUSINESSTYPE, ");
      builder.append(" r.ORDER_CODE,r.ID ORDERID,b.CUSTOMER_NAME,b.SUB_CUSTOMER_NAME,B.WFSTATE  ");
@@ -840,15 +837,15 @@
      if(StringUtil.isNotBlank(nodeTemplateId)){
         builder.append(" and n.NODE_TEMPLATE_ID IS NOT NULL and  n.NODE_TEMPLATE_ID =:nodeTemplateId and b.WFSTATE = 1 ");
      }
      /*if(StringUtil.notEmpty(customerId) && StringUtil.notEmpty(projectId)) {
         builder.append(" AND b.CUSTOMER_ID = :customerId AND b.PROJECT_ID = :projectId ");
      } else {
         builder = getProjectSql(builder,projects);
      }*/
      //客户
      if(StringUtil.isNotBlank(customerId)) {
         builder.append(" AND b.CUSTOMER_ID = :customerId ");
@@ -856,7 +853,7 @@
      //下属单位
      if(StringUtil.isNotBlank(subCustomerId)) {
         builder.append(" AND b.SUB_CUSTOMER_ID = :subCustomerId ");
      }
      //工单编号
      String orderCode = request.getParameter("orderCode");
@@ -884,8 +881,8 @@
      if(StringUtil.notEmpty(nodeTempId)) {
         builder.append(" AND EXISTS (SELECT n.ID FROM WORKFLOW_NODE n WHERE b.CURRENT_NODE_ID = n.ID AND n.NODE_TEMPLATE_ID = :nodeTempId ) ");
      }
      builder.append(" order by b.CREATETIME desc ");
      builder.append(" order by b.CREATETIME desc ");
      return builder;
   }