cy
2022-06-22 425675051e544cf29b2132615cfbf7a93dc5e51f
src/cn/ksource/web/facade/ciremind/CiRemindFacadeImpl.java
@@ -1,21 +1,6 @@
package cn.ksource.web.facade.ciremind;
import java.util.ArrayList;
import java.util.Arrays;
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.Service;
import cn.ksource.beans.GG_RECORD;
import cn.ksource.beans.SC_PARTNER_CUSTOMER_INFO;
import cn.ksource.beans.SC_WORKFLOW_CI_REMIND;
import cn.ksource.beans.WORKFLOW_BASE;
import cn.ksource.beans.WORKFLOW_NODE;
import cn.ksource.beans.*;
import cn.ksource.core.dao.BaseDao;
import cn.ksource.core.dao.SqlParameter;
import cn.ksource.core.page.PageInfo;
@@ -24,7 +9,6 @@
import cn.ksource.core.util.JsonUtil;
import cn.ksource.core.util.StringUtil;
import cn.ksource.core.web.SysInfoMsg;
import cn.ksource.core.web.WebUtil;
import cn.ksource.core.workflow.NodeAnswerEntity;
import cn.ksource.core.workflow.NodeFinishEntity;
import cn.ksource.core.workflow.WorkflowCoreService;
@@ -34,6 +18,10 @@
import cn.ksource.web.service.record.RecordService;
import cn.ksource.web.service.workFlowSupport.WorkFlowSupportService;
import cn.ksource.web.util.DateParepareUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
@Service("ciRemindFacade")
public class CiRemindFacadeImpl implements CiRemindFacade {
@@ -42,12 +30,12 @@
   @Autowired
   private WorkflowCoreService workflowCoreService;
   @Autowired
   private WorkFlowSupportService workFlowSupportService;
   private WorkFlowSupportService workFlowSupportService;
   @Autowired
   private OrderService orderService;
   @Autowired
   private RecordService recordService;
   @Override
   public PageInfo queryMyRemindData(PageInfo pageInfo,Map<String, String> param) {
      String userId=param.get("userId");
@@ -56,8 +44,8 @@
      String customerId = param.get("customerId");
      String subCustomerId = param.get("subCustomerId");
      String orderCode = param.get("orderCode");
      param.put("userId", userId);
      param.put("nodeState", nodeState);
      param.put("flowState", flowState);
@@ -65,12 +53,12 @@
      param.put("subCustomerId", subCustomerId);
      param.put("businessType", String.valueOf(Constants.WORKFLOW_BASE_BUSINESS_TYPE_CI_REMIND));
      param.put("orderCode", "%"+orderCode+"%");
      StringBuilder builder = getMyRemindSql(param);
      return baseDao.queryforSplitPageInfo(pageInfo, builder.toString(), param);
   }
   @Override
   public int queryMyRemindCount(Map<String, String> param) {
      String userId=param.get("userId");
@@ -79,8 +67,8 @@
      String customerId = param.get("customerId");
      String subCustomerId = param.get("subCustomerId");
      String orderCode = param.get("orderCode");
      param.put("userId", userId);
      param.put("nodeState", nodeState);
      param.put("flowState", flowState);
@@ -88,13 +76,13 @@
      param.put("orderCode", "%"+orderCode+"%");
      param.put("customerId", customerId);
      param.put("subCustomerId", subCustomerId);
      StringBuilder builder = getMyRemindSql(param);
      String sql = "select count(*) from ( " + builder.toString() + " ) t";
      return baseDao.queryForInteger(sql,param);
   }
   /**
    * 获取我的工单
    * @param request
@@ -106,8 +94,8 @@
      String nodeState = param.get("nodeState");
      String customerId = param.get("customerId");
      String subCustomerId = param.get("subCustomerId");
      StringBuilder builder = new StringBuilder();
      builder.append(" select n.*,b.WFNAME,b.CREATERNAME,b.CREATETIME,b.CURRENT_NODE_NAME,b.BUSINESSTYPE, ");
      builder.append(" t.PLAN_EXECUTION_DATE, r.ORDER_CODE,r.ID ORDERID,r.SERVICE_CONTENT,b.CUSTOMER_NAME,b.SUB_CUSTOMER_NAME,B.WFSTATE  ");
@@ -121,12 +109,12 @@
      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 ");
      //工单类型
@@ -134,9 +122,9 @@
      //工单状态
      if(StringUtil.notEmpty(flowState)) {
         builder.append(" AND b.WFSTATE =:flowState ");
      }
      //客户
      if(StringUtil.isNotBlank(customerId)) {
         builder.append(" AND b.CUSTOMER_ID = :customerId ");
@@ -145,12 +133,12 @@
      if(StringUtil.isNotBlank(subCustomerId)) {
         builder.append(" AND b.SUB_CUSTOMER_ID = :subCustomerId ");
      }
      //工单编号
      String orderCode = param.get("orderCode");
      if(StringUtil.notEmpty(orderCode)) {
         builder.append(" AND r.ORDER_CODE LIKE :orderCode");
      }
      builder.append(" order by n.NODESTATE ASC,n.NODETIME desc,b.CREATETIME desc ");
      return builder;
@@ -160,7 +148,7 @@
    */
   @Override
   public Map queryRemindInfo(String orderId) {
      String sql = " select b.WFSTATE,h.*,t.PLAN_EXECUTION_DATE from SC_WORKFLOW_CI_REMIND h ,CI_REMIND_TIMERTASK t, WORKFLOW_BASE b " +
      String sql = " select b.WFSTATE,h.*,t.PLAN_EXECUTION_DATE from SC_WORKFLOW_CI_REMIND h ,CI_REMIND_TIMERTASK t, WORKFLOW_BASE b " +
               " where h.FLOW_ID = t.FLOW_ID and b.ID=h.FLOW_ID  and h.id = :orderId ";
      return baseDao.queryForMap(sql,new SqlParameter("orderId",orderId));
   }
@@ -177,25 +165,25 @@
      WORKFLOW_BASE base = new WORKFLOW_BASE(remind.getFlow_id()).getInstanceById();
        WORKFLOW_NODE node = new WORKFLOW_NODE(nodeId).getInstanceById();
        NodeAnswerEntity entity = new NodeAnswerEntity();
        entity.setUser_id(param.get("ID"));
        entity.setUser_name(param.get("ZSXM"));
      boolean flag = workflowCoreService.answerNode(base, node, entity);
      return flag;
   }
   /**
    * 关闭流程
    */
   public void closeWorkFlowSubmit(Map<String, String> param){
      String orderId = param.get("orderId");
      String closeNote = param.get("closeNote");
      String nodeId = param.get("nodeId");
      String userName = param.get("userName");
      SC_WORKFLOW_CI_REMIND order = new SC_WORKFLOW_CI_REMIND(orderId).getInstanceById();
      WORKFLOW_BASE base = new WORKFLOW_BASE(order.getFlow_id()).getInstanceById();
      NodeFinishEntity finishEntity = new NodeFinishEntity();
@@ -218,7 +206,7 @@
      String main_executorId = param.get("main_executorId");
      String flowNote = param.get("flowNote");
      String dealUserName = "";
      String flowId = new SC_WORKFLOW_CI_REMIND(orderId).getInstanceById().getFlow_id();
      //更新业务表数据
      remind.setId(orderId).update();
@@ -226,9 +214,9 @@
      List<Map> userList = new ArrayList<Map>();
      String[] executorIdAry =  executorIds.split(",");
      String[] executorNameAry =  executorNames.split(",");
      Map cacheuser = new HashMap();
      for(int i=0;i<executorIdAry.length;i++){
         Map tempMap = new HashMap();
         tempMap.put("USER_ID", executorIdAry[i]);
@@ -236,21 +224,21 @@
         if(executorIdAry[i].equals(main_executorId)){
            tempMap.put("IS_ADMIN", "1");
            dealUserName=executorNameAry[i];
         }
         userList.add(tempMap);
      }
      String userId=param.get("ID");
      String userName=param.get("ZSXM");
      Map flowMsg = getFlowMsg(flowId,userId);
      String nodeid = ConvertUtil.obj2StrBlank(flowMsg.get("ID"));
      String nodeName = ConvertUtil.obj2StrBlank(flowMsg.get("NODENAME"));
      //增加处理记录
      GG_RECORD record = new GG_RECORD();
      record.setDeal_content(nodeName+":"+userName+",将问题指派给了,"+dealUserName);
@@ -260,7 +248,7 @@
      record.setBusiness_id(flowId);
      record.setNode_id(nodeId).setNode_name(nodeName);
      recordService.addRecord(record);
      //环节流转
      WorkFlowSupportEntity support = new WorkFlowSupportEntity();
      support.setFlowId(flowId);
@@ -275,7 +263,7 @@
      addPatrolCi(orderId,ciIdAry);
      return msg;
   }
   /**
    * 通过orderid获取流程信息
    */
@@ -284,7 +272,7 @@
      String selectSql = "SELECT * FROM WORKFLOW_NODE WHERE FLOWID = :flowId AND CURRENT_DEALER_ID = :userId AND FLOWSTATE <> 3 ";
      return baseDao.queryForMap(selectSql,new SqlParameter("flowId",flowId).addValue("userId", userId));
   }
   @Override
   public void addPatrolCi(String orderId, String[] ciIdAry) {
      baseDao.execute("delete from SC_WORKFLOW_CI_REMIND_DETAIL where order_id = :orderId", new SqlParameter("orderId",orderId));
@@ -316,14 +304,14 @@
      sql.append(" where r.ORDER_ID = :orderId  ");
      return baseDao.queryForList(sql.toString(),new SqlParameter("orderId",orderId));
   }
   @Override
   public List<Map> getRemindCiList(Map param) {
      String sql = " select c.business_id cateId from ci_remind_timertask a , ci_remind_customer_item b, ci_remind_item c "
            + " where a.customer_item_id=b.id and b.item_id = c.id and a.flow_id = :flowId ";
      String cateId = baseDao.queryForString(sql,param);
      param.put("cateId",cateId);
      String ciIds = ConvertUtil.obj2Str(param.get("ciIds"));
      sql = " select b.*,c.NAME CATENAME from cmdb_ci_base b " +
            " inner join cmdb_ci_category c on b.LV3_ID = c.ID " +
@@ -339,7 +327,7 @@
      sql = sql +   " and b.STATE=1 group by b.id ";
      return baseDao.queryForList(sql,param);
   }
   @Override
   public Map getPatrolInfo(String patrolId) {
      String sql = " select * from SC_WORKFLOW_CI_REMIND_DETAIL where id = :patrolId";
@@ -347,25 +335,25 @@
      param.addValue("patrolId", patrolId);
      return baseDao.queryForMap(sql, param);
   }
   @Override
   public SysInfoMsg doEngineerPatrol(Map<String, String> param) {
      String orderId = ConvertUtil.obj2StrBlank(param.get("orderId"));
      String nodeId = ConvertUtil.obj2StrBlank(param.get("nodeId"));
      String note = ConvertUtil.obj2StrBlank(param.get("flowNote"));
      String summary = ConvertUtil.obj2StrBlank(param.get("summary"));
      String nodeId = ConvertUtil.obj2StrBlank(param.get("nodeId"));
      String note = ConvertUtil.obj2StrBlank(param.get("flowNote"));
      String summary = ConvertUtil.obj2StrBlank(param.get("summary"));
      String userName = param.get("ZSXM");
      String userId = param.get("Id");
      new SC_WORKFLOW_CI_REMIND(orderId).getInstanceById().setOrder_note(summary).update();
      String flowId = new SC_WORKFLOW_CI_REMIND(orderId).getInstanceById().getFlow_id();
      Map flowMsg = getFlowMsg(flowId,userId);
      String nodeid = ConvertUtil.obj2StrBlank(flowMsg.get("ID"));
      String nodeName = ConvertUtil.obj2StrBlank(flowMsg.get("NODENAME"));
      //增加处理记录
      GG_RECORD record = new GG_RECORD();
      record.setDeal_content(nodeName+":"+userName+",已处理维护执行");
@@ -375,7 +363,7 @@
      record.setBusiness_id(flowId);
      record.setNode_id(nodeId).setNode_name(nodeName);
      recordService.addRecord(record);
      //环节流转
      WorkFlowSupportEntity support = new WorkFlowSupportEntity();
      support.setFlowId(flowId);
@@ -402,12 +390,12 @@
      String nodeId = param.get("nodeId");
      String lastNodeTemplateId = param.get("lastNodeTemplateId");
      String note = param.get("backNote");
      String userName = ConvertUtil.obj2StrBlank(param.get("ZSXM"));
      String userId = ConvertUtil.obj2StrBlank(param.get("ID"));
      String flowId = param.get("flowId");
      WorkFlowSupportEntity support = new WorkFlowSupportEntity();
      support.setFlowId(flowId);
      support.setNodeId(nodeId);
@@ -424,16 +412,16 @@
   @Override
   public SysInfoMsg doEndRemindFlow(Map<String, String> param) {
      String orderId = ConvertUtil.obj2StrBlank(param.get("orderId"));
      String nodeId = ConvertUtil.obj2StrBlank(param.get("nodeId"));
      String note = ConvertUtil.obj2StrBlank(param.get("flowNote"));
      String nodeId = ConvertUtil.obj2StrBlank(param.get("nodeId"));
      String note = ConvertUtil.obj2StrBlank(param.get("flowNote"));
      String userName = param.get("ZSXM").toString();
      String userId = param.get("Id").toString();
      String flowId = new SC_WORKFLOW_CI_REMIND(orderId).getInstanceById().getFlow_id();
      Map flowMsg = getFlowMsg(flowId,userId);
      String nodeid = ConvertUtil.obj2StrBlank(flowMsg.get("ID"));
      String nodeName = ConvertUtil.obj2StrBlank(flowMsg.get("NODENAME"));
      //增加处理记录
      GG_RECORD record = new GG_RECORD();
      record.setDeal_content(nodeName+":"+userName+",已审核");
@@ -443,8 +431,8 @@
      record.setBusiness_id(flowId);
      record.setNode_id(nodeId).setNode_name(nodeName);
      recordService.addRecord(record);
      //环节流转
      WorkFlowSupportEntity support = new WorkFlowSupportEntity();
      support.setFlowId(flowId);
@@ -459,7 +447,7 @@
      new SC_WORKFLOW_CI_REMIND(orderId).getInstanceById().setFinish_time(endTime).update();
      return msg;
   }
   @Override
   public Map getRemindeItem(Map<String, String> param) {
      String flowId= param.get("flowId");
@@ -515,7 +503,7 @@
      map.put("remindMap", remindMap);
      return map;
   }
   @Override
   public Map getRemindDetail(Map<String, String> param) {
      String orderId=param.get("orderId");
@@ -535,21 +523,21 @@
      map.put("detailList", detailList);
      return map;
   }
   //例行维护管理
   @Override
   public int queryJxzRemindOrderCount(Map<String, String> param) {
      StringBuilder buffer = new StringBuilder("SELECT COUNT(b.ID) FROM WORKFLOW_BASE b WHERE b.BUSINESSTYPE = :businessType AND b.WFSTATE = :wfstate ");
      return baseDao.queryForInteger(buffer.toString(),new SqlParameter("businessType",Constants.WORKFLOW_BASE_BUSINESS_TYPE_CI_REMIND).addValue("wfstate", Constants.WORKFLOW_BASE_WFSTATE_DOING));
   }
   @Override
   public Map queryNodeCount(Map<String, String> param) {
      StringBuilder buffer = new StringBuilder("SELECT  n.NODE_TEMPLATE_ID,COUNT(n.NODE_TEMPLATE_ID) AS num FROM WORKFLOW_NODE n, WORKFLOW_BASE b WHERE b.CURRENT_NODE_ID = n.ID and b.BUSINESSTYPE = :businessType AND b.WFSTATE = :wfstate ");
      buffer.append(" GROUP BY n.NODE_TEMPLATE_ID ");
      List<Map> list =  baseDao.queryForList(buffer.toString(),new SqlParameter("businessType",Constants.WORKFLOW_BASE_BUSINESS_TYPE_CI_REMIND).addValue("wfstate", Constants.WORKFLOW_BASE_WFSTATE_DOING));
      Map resultMap = new HashMap();
@@ -560,29 +548,29 @@
      }
      return resultMap;
   }
   @Override
   public PageInfo queryRemindOrderList(PageInfo pageInfo,Map<String, String> param) {
      StringBuilder builder = new StringBuilder();
      String flowState = param.get("flowState");
      String orderCode = param.get("orderCode");
      String customerId = param.get("customerId");
      String subCustomerId = param.get("subCustomerId");
      String nodeTempId = param.get("nodeTempId");
      param.put("customerId", customerId);
      param.put("subCustomerId", subCustomerId);
      param.put("flowState", flowState);
      param.put("orderCode", "%"+orderCode+"%");
      param.put("businessType", String.valueOf(Constants.WORKFLOW_BASE_BUSINESS_TYPE_CI_REMIND));
      param.put("nodeTempId", nodeTempId);
      builder = getAllRemindSql(param);
      return baseDao.queryforSplitPageInfo(pageInfo, builder.toString(), param);
   }
   @Override
   public int queryRemindOrderCount(Map<String, String> param) {
@@ -591,7 +579,7 @@
      String orderCode = param.get("orderCode");
      String customerId = param.get("customerId");
      String subCustomerId = param.get("subCustomerId");
      param.put("flowState", flowState);
      param.put("customerId", customerId);
      param.put("subCustomerId", subCustomerId);
@@ -599,12 +587,12 @@
      param.put("businessType", String.valueOf(Constants.WORKFLOW_BASE_BUSINESS_TYPE_CI_REMIND));
      String nodeTempId = param.get("nodeTempId");
      param.put("nodeTempId", nodeTempId);
      builder = getAllRemindSql(param);
      String sql = "select count(*) from ( " + builder.toString() + " ) t" ;
      return baseDao.queryForInteger(sql.toString(),param);
   }
   /**
    * 服务台工单列表
    * @param request
@@ -615,23 +603,23 @@
      String customerId = param.get("customerId");
      String subCustomerId = param.get("subCustomerId");
      String nodeTempId = param.get("nodeTempId");
      StringBuilder builder = new StringBuilder();
      builder.append(" select b.ID FLOWID,b.WFNAME,b.CREATERNAME,b.CREATETIME,b.CURRENT_NODE_NAME,b.BUSINESSTYPE, ");
      builder.append(" t.PLAN_EXECUTION_DATE,r.ORDER_CODE,r.ID ORDERID,r.SERVICE_CONTENT,b.CUSTOMER_NAME,b.SUB_CUSTOMER_NAME,B.WFSTATE  ");
      builder.append(" from SC_WORKFLOW_CI_REMIND r  ");
      builder.append(" inner join WORKFLOW_BASE b on r.FLOW_ID = b.ID ");
      builder.append(" inner join CI_REMIND_TIMERTASK t on r.FLOW_ID = t.FLOW_ID ");
      //工单类型
      builder.append(" where b.BUSINESSTYPE = :businessType");
      //工单状态
      if(StringUtil.notEmpty(flowState)) {
         builder.append(" AND b.WFSTATE =:flowState ");
      }
      //客户
      if(StringUtil.isNotBlank(customerId)) {
         builder.append(" AND b.CUSTOMER_ID = :customerId ");
@@ -639,43 +627,43 @@
      //下属单位
      if(StringUtil.isNotBlank(subCustomerId)) {
         builder.append(" AND b.SUB_CUSTOMER_ID = :subCustomerId ");
      }
      //工单编号
      String orderCode = param.get("orderCode");
      if(StringUtil.notEmpty(orderCode)) {
         builder.append(" AND r.ORDER_CODE LIKE :orderCode");
      }
      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,t.PLAN_EXECUTION_DATE desc ");
      builder.append(" order by b.CREATETIME desc,t.PLAN_EXECUTION_DATE desc ");
      return builder;
   }
   @Override
   public Map getRemindItemSubTimerTaskData(String customerId, String month) {
      //查询该客户下的所有下属单位
      String sql="SELECT * FROM SC_PARTNER_CUSTOMER_SUB WHERE CUSTOMER_ID=:customerId AND DEL_FLAG=1";
      List<Map> subList=baseDao.queryForList(sql, new SqlParameter().addValue("customerId",customerId));
      Map currentCustomer = new HashMap();
      currentCustomer.put("ID", customerId);
      currentCustomer.put("CUSTOMER_NAME", new SC_PARTNER_CUSTOMER_INFO(customerId).getInstanceById().getCustomer_name());
      subList.add(0, currentCustomer);
      if(!StringUtil.notEmpty(month)) {
         month = DateUtil.getCurrentDate6().toString();
         month = DateUtil.getCurrentDate6().toString();
      }
      String monthBeginDay = month+"01";
      //查询当月的所有天数
      String monthLastDay = DateParepareUtil.lastDayMonth(month, "yyyyMM", "yyyyMMdd");
      List<String> days = DateUtil.getBetweenTwoDateCycleList(monthBeginDay, monthLastDay, 2,1, "yyyyMMdd","yyyyMMdd");
      if(subList!=null && subList.size()>0){
         for(Map subMap:subList){
@@ -687,20 +675,20 @@
            List<Map> isMarkList = new ArrayList<Map>();
            for(String day:days){
               Map markMap=new HashMap();
               markMap.put("day", day);
               int zjh = 0;
               int yzx = 0;
               if(taskList!=null && taskList.size()>0){
                  List<Map> plans = new ArrayList<Map>();
                  for(Map map:taskList){
                     Map plan = new HashMap();
                     Integer task=2;
                     Integer mark=0;
                     String orderId = new String();
@@ -736,7 +724,7 @@
      map.put("days", days);
      return map;
   }
   @Override
   public List<Map> querySubCustomerRemindPlanForDay(Map<String, String> param) {
      String customerId = param.get("customerId");
@@ -752,11 +740,11 @@
      param.put("customerId", customerId);
      param.put("subCustomerId", subCustomerId);
      param.put("day", day);
      List<Map> plans = baseDao.queryForList(selectSql,param);
      return plans;
   }
   @Override
   public PageInfo getRemindItemData(PageInfo pageInfo,Map<String, String> param) {
      String customerId=param.get("customerId");
@@ -770,11 +758,11 @@
      if(StringUtil.notEmpty(itemName)){
         sql.append(" AND A.ITEM_NAME LIKE :itemName");
      }
      if(StringUtil.notEmpty(subId)){
         sql.append(" AND C.SUB_CUSTOMER_ID=:subId");
      }
      }
      sql.append(" AND B.CUSTOMER_ID=:customerId ");
      sql.append(" ORDER BY A.ITEM_TYPE,ORDER_NUM ASC");
      //SqlParameter paramMap = new SqlParameter();
@@ -783,7 +771,7 @@
      param.put("customerId", customerId);
      return baseDao.queryforSplitPageInfo(pageInfo, sql.toString(), param);
   }
   @Override
   public Integer getRemindItemCount(Map<String, String> param) {
      String customerId=param.get("customerId");
@@ -804,7 +792,7 @@
      param.put("subId", subId);
      return baseDao.queryForInteger(sql.toString(), param);
   }
   @Override
   public Map queryRemind(String customerItemId) {
      String selectSql = "SELECT A.ID,A.ITEM_NAME,A.CYCLE,A.PRIORITY_LEVEL_ID,A.PRIORITY_LEVEL_NAME," +
@@ -813,7 +801,7 @@
      Map item = baseDao.queryForMap(selectSql,new SqlParameter("id",customerItemId));
      return item;
   }
   /**
    * 查询执行计划
    * @param customerItemId
@@ -826,11 +814,11 @@
      List result = new ArrayList();
      if(StringUtil.notEmpty(customerId)) {
         SC_PARTNER_CUSTOMER_INFO customer = new SC_PARTNER_CUSTOMER_INFO(customerId).getInstanceById();
         long beginTime = customer.getValid_begin_date();
         long endTime = customer.getValid_end_date();
         Map paramMap = new HashMap();
         //查询所有已经生成的计划
         String selectSql = "SELECT A.*,W.ID ORDER_ID " +
@@ -839,17 +827,17 @@
         paramMap.put("customerId", customerId);
         paramMap.put("customerItemId", customerItemId);
         selectSql += " AND A.SUB_CUSTOMER_ID = :subId ";
         if(StringUtil.notEmpty(subCustomerId)) {
         if(StringUtil.notEmpty(subCustomerId)) {
            paramMap.put("subId", subCustomerId);
         } else {
            paramMap.put("subId", customerId);
         }
         selectSql += " ORDER BY A.PLAN_EXECUTION_DATE ";
         List<Map> plans = baseDao.queryForList(selectSql,paramMap);
         Map<String,Map> cacheMap = new HashMap<String,Map>();
         if(null!=plans && plans.size()>0) {
            for(Map plan : plans) {
@@ -857,28 +845,28 @@
               cacheMap.put(day, plan);
            }
         }
         //求出所有月份的集合
         List<String> months = DateUtil.getBetweenTwoDateCycleList(ConvertUtil.obj2StrBlank(beginTime), ConvertUtil.obj2StrBlank(endTime), 1,1, "yyyyMMdd","yyyyMM");
         if(null!=months && months.size()>0) {
            for(int i=0; i<months.size();i++) {
               String month = months.get(i);
               String beginDay = month+"01";
               //得到当月的最后一天
               String lastDay = DateParepareUtil.lastDayMonth(month,"yyyyMM","yyyyMMdd");
               List<String> days = DateUtil.getBetweenTwoDateCycleList(beginDay, lastDay, 2,1, "yyyyMMdd","yyyyMMdd");
               List<Map> newList = new ArrayList<Map>();
               for(String str : days) {
                  Map map = new HashMap();
                  if(cacheMap.containsKey(str)) {
                     map = cacheMap.get(str);
                     map.put("day", str);
@@ -887,7 +875,7 @@
                     map.put("day",str);
                     map.put("check", 2);
                  }
                  //是否显示复选框
                  long date = ConvertUtil.obj2Long(str);
                  if(date>=beginTime && date<=endTime) {
@@ -895,7 +883,7 @@
                  } else {
                     map.put("showbox", 2);
                  }
                  //今天之前的复选框不可用
                  long today = DateUtil.getCurrentDate8();
                  if(date>today) {
@@ -903,22 +891,22 @@
                  } else {
                     map.put("isUse", 2);
                  }
                  newList.add(map);
               }
               Map map = new HashMap();
               map.put("month", month);
               map.put("days", newList);
               result.add(map);
            }
         }
      }
      System.out.println(JsonUtil.list2Json(result));
      return result;
   }
   @Override
   public PageInfo getRemindOrderList(PageInfo pageInfo,Map<String, String> param) {
      String customerId=param.get("customerId");
@@ -929,22 +917,22 @@
      sql.append(" SELECT A.SUB_CUSTOMER_ID SUB_CUS_ID,A.FLOW_ID,B.*,D.ITEM_NAME,A.PLAN_EXECUTION_DATE,A.STATE AS TIMESTATE,A.CUSTOMER_ITEM_ID FROM CI_REMIND_TIMERTASK A LEFT JOIN  SC_WORKFLOW_CI_REMIND  B ON A.FLOW_ID=B.FLOW_ID  ");
      sql.append(" LEFT JOIN CI_REMIND_CUSTOMER_ITEM  C ON A.CUSTOMER_ITEM_ID=C.ID LEFT JOIN CI_REMIND_ITEM D ON C.ITEM_ID=D.ID");
      sql.append(" WHERE A.STATE != 3 ");
      //SqlParameter paramMap = new SqlParameter();
      if(StringUtil.notEmpty(customerId)) {
         sql.append("AND A.CUSTOMER_ID=:customerId  ");
         param.put("customerId", customerId);
      }
      if(StringUtil.notEmpty(subId)) {
         sql.append("AND A.SUB_CUSTOMER_ID=:subId  ");
         param.put("subId", subId);
      }
      if(StringUtil.notEmpty(beginDate) && StringUtil.notEmpty(endDate)){
         sql.append(" AND A.PLAN_EXECUTION_DATE>=:beginDate AND A.PLAN_EXECUTION_DATE<=:endDate");
         param.put("beginDate", beginDate);
@@ -952,9 +940,9 @@
      }
      sql.append(" ORDER BY A.PLAN_EXECUTION_DATE DESC");
      param.put("customerId", customerId);
      PageInfo list=baseDao.queryforSplitPageInfo(pageInfo, sql.toString(), param);
      if(list!=null && list.getDatas().size()>0){
         for(Map map :list.getDatas()){
            map.put("TIMESTATE_LABEL", Constants.getmapCI_REMIND_TIMERTASK_STATE_Label(Integer.parseInt(map.get("TIMESTATE").toString())));
@@ -962,7 +950,7 @@
      }
      return list;
   }
   @Override
   public Integer getRemindOrderCount(Map<String, String> param){
      String customerId=param.get("customerId");
@@ -973,21 +961,21 @@
      sql.append(" SELECT COUNT(A.ID) FROM CI_REMIND_TIMERTASK A LEFT JOIN  SC_WORKFLOW_CI_REMIND  B ON A.FLOW_ID=B.FLOW_ID  ");
      sql.append(" LEFT JOIN CI_REMIND_CUSTOMER_ITEM  C ON A.CUSTOMER_ITEM_ID=C.ID LEFT JOIN CI_REMIND_ITEM D ON C.ITEM_ID=D.ID");
      sql.append(" WHERE A.STATE != 3 ");
      //SqlParameter paramMap = new SqlParameter();
      if(StringUtil.notEmpty(customerId)) {
         sql.append("AND A.CUSTOMER_ID=:customerId  ");
         param.put("customerId", customerId);
      }
      if(StringUtil.notEmpty(subId)) {
         sql.append("AND A.SUB_CUSTOMER_ID=:subId  ");
         param.put("subId", subId);
      }
      if(StringUtil.notEmpty(beginDate) && StringUtil.notEmpty(endDate)){
         sql.append(" AND A.PLAN_EXECUTION_DATE>=:beginDate AND A.PLAN_EXECUTION_DATE<=:endDate");
         param.put("beginDate", beginDate);
@@ -999,7 +987,7 @@
      param.put("endDate", endDate);
      return baseDao.queryForInteger(sql.toString(),param);
   }
   @Override
   public List getSubRemindCiList(Map<String, String> param) {
      StringBuilder sql =new StringBuilder();
@@ -1015,7 +1003,7 @@
      }
      return baseDao.queryForList(sql.toString(), param);
   }
   @Override
   public int queryProItemCount(Map<String, String> param) {
      String customerId = param.get("customerId");
@@ -1032,48 +1020,48 @@
      String sql = "SELECT A.*,B.ITEM_NAME,B.ITEM_NOTE,B.PRIORITY_LEVEL_NAME,B.BUSINESS_NAME " +
            " FROM CI_REMIND_CUSTOMER_ITEM A,CI_REMIND_ITEM B WHERE A.ITEM_ID = B.ID " +
            " AND A.USING_STATE = 1 AND A.CUSTOMER_ID = :customerId ORDER BY B.ORDER_NUM ";
      param.put("customerId", customerId);
      PageInfo info = baseDao.queryforSplitPageInfo(pageInfo, sql, param);
      return info;
   }
   @Override
   public Map queryItemSubCustomerPlan(String customerId,String itemId,String mon) {
      //查询该客户下的所有下属单位
      String sql="SELECT * FROM SC_PARTNER_CUSTOMER_SUB WHERE CUSTOMER_ID=:customerId AND DEL_FLAG=1";
      List<Map> subList=baseDao.queryForList(sql, new SqlParameter().addValue("customerId",customerId));
      Map currentCustomer = new HashMap();
      currentCustomer.put("ID", customerId);
      currentCustomer.put("CUSTOMER_NAME", new SC_PARTNER_CUSTOMER_INFO(customerId).getInstanceById().getCustomer_name());
      subList.add(0, currentCustomer);
      String year = DateUtil.format("yyyy", mon);
      String mm = DateUtil.format("MM", mon);
      String[] time = DateParepareUtil.queryFirstLastDate(year,mm);
      String beginDay = time[0].replaceAll("-", "");
      //得到当月的最后一天
      String lastDay = time[1].replaceAll("-", "");
      List<String> days = DateUtil.getBetweenTwoDateCycleList(beginDay, lastDay, 2,1, "yyyyMMdd","yyyyMMdd");
      Map resultMap = new HashMap();
      resultMap.put("month", mon);
      resultMap.put("days", days);
      List result = new ArrayList();
      if(StringUtil.notEmpty(customerId)) {
         SC_PARTNER_CUSTOMER_INFO customer = new SC_PARTNER_CUSTOMER_INFO(customerId).getInstanceById();
         long beginTime = customer.getValid_begin_date();
         long endTime = customer.getValid_end_date();
         Map paramMap = new HashMap();
         //查询该客户下所有已经生成的计划
         String selectSql = "SELECT A.*,W.ID ORDER_ID FROM CI_REMIND_TIMERTASK A,CI_REMIND_CUSTOMER_ITEM B ,SC_WORKFLOW_CI_REMIND W " +
@@ -1082,16 +1070,16 @@
               " AND B.CUSTOMER_ID = :customerId AND B.USING_STATE = 1 ";
         paramMap.put("projectItemId", itemId);
         paramMap.put("customerId", customerId);
         selectSql += "AND A.PLAN_EXECUTION_DATE >= :beginTime AND A.PLAN_EXECUTION_DATE <= :endTime ";
         paramMap.put("beginTime", beginDay);
         paramMap.put("endTime",  lastDay);
         selectSql += " ORDER BY A.PLAN_EXECUTION_DATE ";
         List<Map> plans = baseDao.queryForList(selectSql,paramMap);
         Map<String,Map> cacheMap = new HashMap<String,Map>();
         if(null!=plans && plans.size()>0) {
            for(Map plan : plans) {
@@ -1100,65 +1088,65 @@
               cacheMap.put(subCustomerId+"-"+plan_execution_date, plan);
            }
         }
         if(null!=subList && subList.size()>0) {
            for(Map cus : subList) {
               String cusId = ConvertUtil.obj2StrBlank(cus.get("ID"));
               String cusName = ConvertUtil.obj2StrBlank(cus.get("CUSTOMER_NAME"));
               List<Map> newList = new ArrayList<Map>();
               for(String str : days) {
                  Map map = new HashMap();
                  String unitKey = cusId+"-"+str;
                  if(cacheMap.containsKey(unitKey)) {
                     map = cacheMap.get(unitKey);
                  }
                  newList.add(map);
               }
               Map map = new HashMap();
               map.put("cusName", cusName);
               map.put("msgs", newList);
               result.add(map);
            }
         }
      }
      resultMap.put("rs", result);
      return resultMap;
   }
   @Override
   public String queryZbName(String itemId) {
      String selectSql = "SELECT B.ITEM_NAME FROM CI_REMIND_CUSTOMER_ITEM A,CI_REMIND_ITEM B WHERE A.ITEM_ID = B.ID AND A.ID = :itemId ";
      return baseDao.queryForString(selectSql,new SqlParameter("itemId",itemId));
   }
   @Override
   public List queryCustomers(Map<String, String> param) {
      String customerId = param.get("customerId");
      //查询该客户下的所有下属单位
      String sql="SELECT * FROM SC_PARTNER_CUSTOMER_SUB WHERE CUSTOMER_ID=:customerId AND DEL_FLAG=1";
      List<Map> subList=baseDao.queryForList(sql, new SqlParameter().addValue("customerId",customerId));
      Map currentCustomer = new HashMap();
      currentCustomer.put("ID", customerId);
      SC_PARTNER_CUSTOMER_INFO mainCus = new SC_PARTNER_CUSTOMER_INFO(customerId).getInstanceById();
      currentCustomer.put("CUSTOMER_NAME", mainCus.getCustomer_name());
      currentCustomer.put("CONTACT", mainCus.getContact());
      currentCustomer.put("PHONE", mainCus.getPhone());
      subList.add(0, currentCustomer);
      return subList;
   }
   @Override
   public Map queryCusItemPlanReport(String customerId,String subCustomerId, String mon) {
      //查询该客户下的所有指标
@@ -1166,47 +1154,47 @@
            " FROM CI_REMIND_CUSTOMER_ITEM A,CI_REMIND_ITEM B " +
            " WHERE A.ITEM_ID = B.ID AND A.USING_STATE = 1 AND A.CUSTOMER_ID = :customerId ORDER BY B.ORDER_NUM ";
      List<Map> subList=baseDao.queryForList(sql, new SqlParameter().addValue("customerId",customerId));
      String year = DateUtil.format("yyyy", mon);
      String mm = DateUtil.format("MM", mon);
      String[] time = DateParepareUtil.queryFirstLastDate(year,mm);
      String beginDay = time[0].replaceAll("-", "");
      //得到当月的最后一天
      String lastDay = time[1].replaceAll("-", "");
      List<String> days = DateUtil.getBetweenTwoDateCycleList(beginDay, lastDay, 2,1, "yyyyMMdd","yyyyMMdd");
      Map resultMap = new HashMap();
      resultMap.put("month", mon);
      resultMap.put("days", days);
      List result = new ArrayList();
      if(StringUtil.notEmpty(customerId)) {
         SC_PARTNER_CUSTOMER_INFO project = new SC_PARTNER_CUSTOMER_INFO(customerId).getInstanceById();
         long beginTime = project.getValid_begin_date();
         long endTime = project.getValid_end_date();
         Map paramMap = new HashMap();
         //查询该客户下所有已经生成的计划
         String selectSql = "SELECT A.*,W.ID ORDER_ID FROM CI_REMIND_TIMERTASK A,CI_REMIND_CUSTOMER_ITEM B,SC_WORKFLOW_CI_REMIND W " +
               " WHERE A.CUSTOMER_ITEM_ID = B.ID AND A.FLOW_ID=W.FLOW_ID AND B.CUSTOMER_ID = :customerId " +
               " AND A.SUB_CUSTOMER_ID = :subCustomerId AND B.USING_STATE = 1 ";
         paramMap.put("customerId", customerId);
         selectSql += "AND A.PLAN_EXECUTION_DATE >= :beginTime AND A.PLAN_EXECUTION_DATE <= :endTime ";
         paramMap.put("beginTime", beginDay);
         paramMap.put("endTime",  lastDay);
         paramMap.put("subCustomerId", subCustomerId);
         selectSql += " ORDER BY A.PLAN_EXECUTION_DATE ";
         List<Map> plans = baseDao.queryForList(selectSql,paramMap);
         Map<String,Map> cacheMap = new HashMap<String,Map>();
         if(null!=plans && plans.size()>0) {
            for(Map plan : plans) {
@@ -1215,52 +1203,52 @@
               cacheMap.put(project_item_id+"-"+plan_execution_date, plan);
            }
         }
         if(null!=subList && subList.size()>0) {
            for(Map zb : subList) {
               String zbId = ConvertUtil.obj2StrBlank(zb.get("ID"));
               String zbName = ConvertUtil.obj2StrBlank(zb.get("ITEM_NAME"));
               List<Map> newList = new ArrayList<Map>();
               for(String str : days) {
                  Map map = new HashMap();
                  String unitKey = zbId+"-"+str;
                  if(cacheMap.containsKey(unitKey)) {
                     map = cacheMap.get(unitKey);
                  }
                  newList.add(map);
               }
               Map map = new HashMap();
               map.put("zbName", zbName);
               map.put("msgs", newList);
               result.add(map);
            }
         }
      }
      resultMap.put("rs", result);
      return resultMap;
   }
   @Override
   public String queryNodeId(String flowId,String userId) {
   public String queryNodeId(String flowId,String userId) {
      String selectSql = "SELECT ID FROM WORKFLOW_NODE WHERE FLOWID=:flowId  AND CURRENT_DEALER_ID=:userId AND (FLOWSTATE=1 OR FLOWSTATE =2) ";
      return baseDao.queryForString(selectSql,new SqlParameter("flowId",flowId).addValue("userId", userId));
   }
   @Override
   public PageInfo remindPlanData(PageInfo pageInfo,Map<String, String> param) {
      String ciId=param.get("ciId");
      String selectSql = "SELECT C.* FROM CI_REMIND_CILIST A,CI_REMIND_CUSTOMER_ITEM B,CI_REMIND_TIMERTASK C WHERE A.PROJECT_ITEM_ID = B.ID AND B.ID = C.CUSTOMER_ITEM_ID AND A.CI_ID = :ciId AND A.STATE = 1 AND C.STATE = 2 ORDER BY C.PLAN_EXECUTION_DATE DESC ";
      String selectSql = "SELECT C.* FROM CI_REMIND_CILIST A,CI_REMIND_CUSTOMER_ITEM B,CI_REMIND_TIMERTASK C WHERE A.PROJECT_ITEM_ID = B.ID AND B.ID = C.CUSTOMER_ITEM_ID AND A.CI_ID = :ciId AND A.STATE = 1 AND C.STATE = 2 ORDER BY C.PLAN_EXECUTION_DATE DESC ";
      param.put("ciId", ciId);
      PageInfo plans=baseDao.queryforSplitPageInfo(pageInfo, selectSql, param);
      return plans;
   }
   @Override
   public int remindPlanCount(Map<String, String> param) {
      String ciId=param.get("ciId");
@@ -1269,7 +1257,7 @@
      return count;
   }
}