package cn.ksource.web.service.partner; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import cn.ksource.beans.GG_FILES; import cn.ksource.beans.SC_PARTNER_INFO; import cn.ksource.core.dao.BaseDao; import cn.ksource.core.dao.SqlParameter; import cn.ksource.core.util.ConvertUtil; import cn.ksource.core.util.DateUtil; import cn.ksource.core.util.EqualUtil; import cn.ksource.core.util.FileUtil; import cn.ksource.core.util.JsonUtil; import cn.ksource.core.util.StringUtil; import cn.ksource.core.web.TreeNode; import cn.ksource.core.web.WebUtil; @Service("partnerService") public class PartnerServiceImpl implements PartnerService { @Autowired public BaseDao baseDao; @Override public List getPartnerCustomerList(String partnerId) { String sql = "select ID as CUSTOMER_ID,CUSTOMER_NAME from sc_partner_customer_info " + "where PARTNER_ID=:partner_id and CUSTOMER_STATE=1 order by CREATE_TIME"; return baseDao.queryForList(sql, new SqlParameter("partner_id", partnerId)); } @Override public List getZcCustomerList(String zcUserId) { String sql = "select DISTINCT CUSTOMER_ID,CUSTOMER_NAME from sc_expatriates " + "where USER_ID=:employee_id and USINGSTATE=1 ORDER BY CUSTOMER_NAME"; return baseDao.queryForList(sql, new SqlParameter("employee_id", zcUserId)); } @Override public TreeNode getPartnerCiCategoryTree(String categoryId, String partnerId) { TreeNode root = new TreeNode("0","配置分类树"); StringBuilder sql = new StringBuilder(); sql.append(" select c.* from CMDB_CI_CATEGORY c where c.partner_id=:partner_id and leix = 1 and cate_type=1 "); if (StringUtils.isBlank(categoryId)) { sql.append("and c.JB=1 and c.pid is null "); } else { sql.append("and c.pid=:pid "); } sql.append("order by c.STATE,c.JB,c.SERIAL "); SqlParameter param = new SqlParameter("pid",categoryId); param.addValue("partner_id", partnerId); List categoryList = baseDao.queryForList(sql.toString(), param); for (Map map : categoryList) { TreeNode yjTree = new TreeNode(map.get("ID").toString(),map.get("NAME").toString()); if (!EqualUtil.isStringEqual(map.get("JB"), "3")) { yjTree.setIsOpen(false); } Map attr = new HashMap(); attr.put("ISNODE", "1"); attr.put("JB", map.get("JB").toString()); yjTree.setAttributes(attr); root.addChild(yjTree); } return root; } @Override public List getPartnerList() { String sql = "select ID as PARTNER_ID,PARTNER_NAME from sc_partner_info where PARTNER_STATE=1 order by PARTNER_NAME "; return baseDao.queryForList(sql, new SqlParameter()); } @Override public List getPartnerUserList(String partnerId) { String sql = "select ID as USER_ID,ZSXM as USER_NAME from gg_user " + "where MANUFACTURERID=:partner_id and ZT=1 and ACCOUNTTYPE=3 "; return baseDao.queryForList(sql, new SqlParameter("partner_id", partnerId)); } @Override public List getPartnerManufactureList(String partnerId, Integer type) { String sql = "select ID,MANUFACTURERNAME,TYPE from cmdb_mainufacturer " + "where PARTNER_ID=:partner_id and STATE=1 "; SqlParameter param = new SqlParameter("partner_id", partnerId); // 动态查询type 参数 zhaoqt 2015.05.10 modify if(type != null) { sql += " and TYPE=:type"; param.addValue("type", type); } return baseDao.queryForList(sql, param); } @Override public void doInitCiCategory(String partnerId) { //配置项分类表初始化 String sql = "select * from CMDB_CI_CATEGORY where STATE=1 AND JB = :jb and cate_type=1 AND PARTNER_ID is null and cate_type=1 "; List yjlist = baseDao.queryForList(sql,new SqlParameter("jb",1)); List ejlist = baseDao.queryForList(sql,new SqlParameter("jb",2)); List sjlist = baseDao.queryForList(sql,new SqlParameter("jb",3)); Map cacheMap = new HashMap(); sql = "insert into CMDB_CI_CATEGORY(ID,NAME,CODE,JB,SERIAL,NOTE,PID,STATE,ICON,TABLE_NAME,LEIX,PARTNER_ID) values(:id,:name,:code,:jb,:serial,:note,:pid,:state,:icon,:table_name,:leix,:partner_id)"; List paramList = new ArrayList(); if (yjlist != null && yjlist.size() > 0) { for (Map map : yjlist) { String newid = StringUtil.getUUID(); cacheMap.put(map.get("ID"), newid); SqlParameter param = new SqlParameter(); param.addValue("id", newid); param.addValue("name", map.get("NAME")); param.addValue("code", map.get("CODE")); param.addValue("jb", map.get("JB")); param.addValue("serial", map.get("SERIAL")); param.addValue("note", map.get("NOTE")); param.addValue("state", map.get("STATE")); param.addValue("icon", map.get("ICON")); param.addValue("note", map.get("NOTE")); param.addValue("pid", null); param.addValue("table_name", map.get("TABLE_NAME")); param.addValue("leix", map.get("LEIX")); param.addValue("partner_id", partnerId); paramList.add(param); } } if (ejlist != null && ejlist.size() > 0) { for (Map map : ejlist) { String newid = StringUtil.getUUID(); cacheMap.put(map.get("ID"), newid); SqlParameter param = new SqlParameter(); param.addValue("id", newid); param.addValue("name", map.get("NAME")); param.addValue("code", map.get("CODE")); param.addValue("jb", map.get("JB")); param.addValue("serial", map.get("SERIAL")); param.addValue("note", map.get("NOTE")); param.addValue("state", map.get("STATE")); param.addValue("icon", map.get("ICON")); param.addValue("note", map.get("NOTE")); param.addValue("pid", cacheMap.get(map.get("PID"))); param.addValue("table_name", map.get("TABLE_NAME")); param.addValue("leix", map.get("LEIX")); param.addValue("partner_id", partnerId); paramList.add(param); } } if (sjlist != null && sjlist.size() > 0) { for (Map map : sjlist) { String newid = StringUtil.getUUID(); cacheMap.put(map.get("ID"), newid); SqlParameter param = new SqlParameter(); param.addValue("id", newid); param.addValue("name", map.get("NAME")); param.addValue("code", map.get("CODE")); param.addValue("jb", map.get("JB")); param.addValue("serial", map.get("SERIAL")); param.addValue("note", map.get("NOTE")); param.addValue("state", map.get("STATE")); param.addValue("icon", map.get("ICON")); param.addValue("note", map.get("NOTE")); param.addValue("pid", cacheMap.get(map.get("PID"))); param.addValue("table_name", map.get("TABLE_NAME")); param.addValue("leix", map.get("LEIX")); param.addValue("partner_id", partnerId); paramList.add(param); } } baseDao.executeBatch(sql, paramList); //配置项属性分组表初始化 sql = "select B.* from CMDB_CI_CATEGORY A,CMDB_CI_PROPERTIY_GROUP B where A.ID = B.CATEGORY_ID AND B.STATE=1 AND A.STATE=1 and cate_type=1 AND A.PARTNER_ID is null "; List grouplist = baseDao.queryForList(sql); Map groupcacheMap = new HashMap(); sql = "insert into CMDB_CI_PROPERTIY_GROUP(ID,GROUP_NAME,ORDERNUM,NOTE,STATE,CATEGORY_ID) values(:id,:group_name,:ordernum,:note,:state,:category_id)"; List groupparamList = new ArrayList(); if(grouplist != null && grouplist.size() > 0){ for(Map map:grouplist){ String newid = StringUtil.getUUID(); groupcacheMap.put(map.get("ID"), newid); SqlParameter param = new SqlParameter(); param.addValue("id", newid); param.addValue("group_name", map.get("GROUP_NAME")); param.addValue("ordernum", map.get("ORDERNUM")); param.addValue("jb", map.get("JB")); param.addValue("note", map.get("NOTE")); param.addValue("state", map.get("STATE")); param.addValue("category_id", cacheMap.get(map.get("CATEGORY_ID"))); groupparamList.add(param); } } baseDao.executeBatch(sql, groupparamList); //扩展字段表初始化 sql = "select * from CMDB_CI_EXTEND_COLUMN where STATE=1 AND PARTNER_ID is null "; List columnlist = baseDao.queryForList(sql); Map columncacheMap = new HashMap(); sql = "insert into CMDB_CI_EXTEND_COLUMN(ID,COLUMNNAME,COLUMNCODE,DATATYPE,ALLOWNULL,MINVALUES,MAXVALUES,SHOWINLIST,ALLOWQUERY,INPUTTYPE,SELECTVALUE,STATE,CREATETIME,NOTE,ORDERNUM,ALERT,CMDB_CI_PRO_GROUP_ID,BUSINESS_TYPE,PARTNER_ID) values(:id,:columnname,:columncode,:datatype,:allownull,:minvalues,:maxvalues,:showinlist,:allowquery,:inputtype,:selectvalue,:state,:createtime,:note,:ordernum,:alert,:cmdb_ci_pro_group_id,:business_type,:partner_id)"; List columnparamList = new ArrayList(); if(columnlist != null && columnlist.size() > 0){ for(Map map:columnlist){ String newid = StringUtil.getUUID(); columncacheMap.put(map.get("ID"), newid); SqlParameter param = new SqlParameter(); param.addValue("id", newid); param.addValue("columnname", map.get("COLUMNNAME")); param.addValue("columncode", map.get("COLUMNCODE")); param.addValue("datatype", map.get("DATATYPE")); param.addValue("allownull", map.get("ALLOWNULL")); param.addValue("minvalues", map.get("MINVALUES")); param.addValue("maxvalues", cacheMap.get(map.get("MAXVALUES"))); param.addValue("showinlist", cacheMap.get(map.get("SHOWINLIST"))); param.addValue("allowquery", cacheMap.get(map.get("ALLOWQUERY"))); param.addValue("inputtype", cacheMap.get(map.get("INPUTTYPE"))); param.addValue("selectvalue", cacheMap.get(map.get("SELECTVALUE"))); param.addValue("state", cacheMap.get(map.get("STATE"))); param.addValue("createtime", cacheMap.get(map.get("CREATETIME"))); param.addValue("note", cacheMap.get(map.get("NOTE"))); param.addValue("ordernum", cacheMap.get(map.get("ORDERNUM"))); param.addValue("alert", cacheMap.get(map.get("ALERT"))); param.addValue("cmdb_ci_pro_group_id", groupcacheMap.get(map.get("CMDB_CI_PRO_GROUP_ID"))); param.addValue("business_type", 1); param.addValue("partner_id",partnerId); columnparamList.add(param); } } baseDao.executeBatch(sql, columnparamList); //选择项可选值表初始化 sql = "select A.* from CMDB_CI_EXTEND_COLUMN_SELECTITEMS A,CMDB_CI_EXTEND_COLUMN B where A.EXTENDID = B.ID AND B.STATE=1 AND A.STATE=1 AND B.PARTNER_ID is null "; List itemslist = baseDao.queryForList(sql); sql = "insert into CMDB_CI_EXTEND_COLUMN_SELECTITEMS(ID,EXTENDID,STATE,ITEMVALUE,ORDERNUM) values(:id,:extendid,:state,:itemvalue,:ordernum)"; List itemsparamList = new ArrayList(); if(itemslist != null && itemslist.size() > 0){ for(Map map:itemslist){ String newid = StringUtil.getUUID(); SqlParameter param = new SqlParameter(); param.addValue("id", newid); param.addValue("extendid", columncacheMap.get(map.get("EXTENDID"))); param.addValue("state", map.get("STATE")); param.addValue("itemvalue", map.get("ITEMVALUE")); param.addValue("ordernum", map.get("ORDERNUM")); itemsparamList.add(param); } } baseDao.executeBatch(sql, itemsparamList); } @Override public void doInitManufacture(String partnerId) { String sql = "select MANUFACTURERNAME,TYPE,ZH_NAME,PHONE,WEB_URL,NOTE,STATE from cmdb_mainufacturer where STATE=1 and PARTNER_ID is null "; List tlist= baseDao.queryForList(sql); if (tlist != null && tlist.size() > 0) { List paramList = new ArrayList(); for (Map map : tlist) { map.put("ID", StringUtil.getUUID()); map.put("PARTNER_ID", partnerId); SqlParameter param = new SqlParameter(); param.setSource(map); paramList.add(param); } //保存 sql = "insert into cmdb_mainufacturer(ID,MANUFACTURERNAME,TYPE,ZH_NAME,PHONE,WEB_URL,NOTE,STATE,PARTNER_ID) " + "values(:ID,:MANUFACTURERNAME,:TYPE,:ZH_NAME,:PHONE,:WEB_URL,:NOTE,:STATE,:PARTNER_ID)"; baseDao.executeBatch(sql, paramList); } } @Override public void doInitMaintainItem(String partnerId) { //日常巡检项 String sql = "select t.ID,t.ITEM_NAME,t.ITEM_NOTE,t.GET_STEPS,t.NORMAL_VALUE,t.EXCEPT_VALUE,t.ORDER_NUM,t.THIRDLEVEL_ID,t.THIRDLEVEL_NAME,t.SECONDLEVEL_ID,t.SECONDLEVEL_NAME " + "from ci_daily_patrol_item_template t where t.STATE=1 " + "and exists (select p.ID from cmdb_ci_category_partner p where (p.CATEGORY_ID = t.THIRDLEVEL_ID or P.CATEGORY_ID=t.SECONDLEVEL_ID) and p.PARTNER_ID=:partner_id) "; List tlist= baseDao.queryForList(sql, new SqlParameter("partner_id", partnerId)); if (tlist != null && tlist.size() > 0) { List paramList = new ArrayList(); for (Map map : tlist) { map.put("ID", StringUtil.getUUID()); map.put("PARTNER_ID", partnerId); SqlParameter param = new SqlParameter(); param.setSource(map); paramList.add(param); } //保存通用巡检项 sql = "insert into ci_daily_patrol_item(ID,ITEM_NAME,ITEM_NOTE,GET_STEPS,NORMAL_VALUE,EXCEPT_VALUE,ORDER_NUM,THIRDLEVEL_ID,THIRDLEVEL_NAME,ITEM_TYPE,STATE,PARTNER_ID,SECONDLEVEL_ID,SECONDLEVEL_NAME) " + "values(:ID,:ITEM_NAME,:ITEM_NOTE,:GET_STEPS,:NORMAL_VALUE,:EXCEPT_VALUE,:ORDER_NUM,:THIRDLEVEL_ID,:THIRDLEVEL_NAME,1,1,:PARTNER_ID,:SECONDLEVEL_ID,:SECONDLEVEL_NAME)"; baseDao.executeBatch(sql, paramList); } //健康检查项 sql = "select t.ID,t.ITEM_NAME,t.PRIORITY_LEVEL_ID,t.PRIORITY_LEVEL_NAME,t.ITEM_NOTE,t.STEPS,t.EXPECT_VALUE,t.THIRDLEVEL_ID,t.THIRDLEVEL_NAME,t.ORDER_NUM,SECONDLEVEL_ID,SECONDLEVEL_NAME " + "from ci_health_item_template t where t.STATE=1 " + "and exists (select p.ID from cmdb_ci_category_partner p where (p.CATEGORY_ID = t.THIRDLEVEL_ID or P.CATEGORY_ID=t.SECONDLEVEL_ID) and p.PARTNER_ID=:partner_id) "; tlist= baseDao.queryForList(sql, new SqlParameter("partner_id", partnerId)); if (tlist != null && tlist.size() > 0) { List paramList = new ArrayList(); for (Map map : tlist) { map.put("ID", StringUtil.getUUID()); map.put("PARTNER_ID", partnerId); SqlParameter param = new SqlParameter(); param.setSource(map); paramList.add(param); } //保存新的通用巡检项 sql = "insert into ci_health_item(ID,ITEM_NAME,PRIORITY_LEVEL_ID,PRIORITY_LEVEL_NAME,ITEM_NOTE,STEPS,EXPECT_VALUE,ORDER_NUM,THIRDLEVEL_ID,THIRDLEVEL_NAME,ITEM_TYPE,STATE,PARTNER_ID,SECONDLEVEL_ID,SECONDLEVEL_NAME) " + "values(:ID,:ITEM_NAME,:PRIORITY_LEVEL_ID,:PRIORITY_LEVEL_NAME,:ITEM_NOTE,:STEPS,:EXPECT_VALUE,:ORDER_NUM,:THIRDLEVEL_ID,:THIRDLEVEL_NAME,1,1,:PARTNER_ID,:SECONDLEVEL_ID,:SECONDLEVEL_NAME)"; baseDao.executeBatch(sql, paramList); } //作业计划项 sql = "select t.ID,t.ITEM_NAME,t.CYCLE,t.PRIORITY_LEVEL_ID,t.PRIORITY_LEVEL_NAME,t.ITEM_NOTE,t.THIRDLEVEL_ID,t.THIRDLEVEL_NAME,t.ORDER_NUM, " + "t.SECONDLEVEL_ID,t.SECONDLEVEL_NAME " + "from ci_remind_item_template t where t.STATE=1 " + "and exists (select p.ID from cmdb_ci_category_partner p where (p.CATEGORY_ID = t.THIRDLEVEL_ID or P.CATEGORY_ID=t.SECONDLEVEL_ID) and p.PARTNER_ID=:partner_id) "; tlist= baseDao.queryForList(sql, new SqlParameter("partner_id", partnerId)); if (tlist != null && tlist.size() > 0) { List paramList = new ArrayList(); for (Map map : tlist) { map.put("ID", StringUtil.getUUID()); map.put("PARTNER_ID", partnerId); //计算首次提醒时间 int cycle = map.get("CYCLE") == null ? 0 : ConvertUtil.obj2Int(map.get("CYCLE")); map.put("BASE_REMIND_TIME", DateUtil.getDateAdd(DateUtil.getCurrentDate8(), cycle, 8)); SqlParameter param = new SqlParameter(); param.setSource(map); paramList.add(param); } //保存新的通用巡检项 sql = "insert into ci_remind_item(ID,ITEM_NAME,CYCLE,PRIORITY_LEVEL_ID,PRIORITY_LEVEL_NAME,ITEM_NOTE,ORDER_NUM,THIRDLEVEL_ID,THIRDLEVEL_NAME,ITEM_TYPE,STATE,PARTNER_ID,SECONDLEVEL_ID,SECONDLEVEL_NAME," + "BASE_REMIND_TIME) " + "values(:ID,:ITEM_NAME,:CYCLE,:PRIORITY_LEVEL_ID,:PRIORITY_LEVEL_NAME,:ITEM_NOTE,:ORDER_NUM,:THIRDLEVEL_ID,:THIRDLEVEL_NAME,1,1,:PARTNER_ID,:SECONDLEVEL_ID,:SECONDLEVEL_NAME,:BASE_REMIND_TIME)"; baseDao.executeBatch(sql, paramList); } } @Override public void doInitCustomerSatisConfig(String partnerId) { String insertSql = "INSERT INTO CUSTOMER_SATIS_CONFIG(ID,NAME,LEVEL,P_ID,SATIS_TYPE,ORDER_NUM,SCORE,STATE,PARTNER_ID) " + " VALUES (:ID,:NAME,:LEVEL,:P_ID,:SATIS_TYPE,:ORDER_NUM,:SCORE,:STATE,:PARTNER_ID)"; StringBuilder sql = new StringBuilder(); sql.append("SELECT * "); sql.append(" FROM CUSTOMER_SATIS_CONFIG_TEMPLATE "); sql.append(" WHERE STATE=1 "); sql.append(" ORDER BY ORDER_NUM "); // 同步数据 List list = baseDao.queryForList(sql.toString()); if (list != null && list.size() > 0) { List paramList = new ArrayList(); for (Map map : list) { SqlParameter param = new SqlParameter(); param.setSource(map); param.addValue("PARTNER_ID", partnerId); param.addValue("ID", StringUtil.getUUID()); paramList.add(param); } baseDao.executeBatch(insertSql, paramList); } } @Override public void doInitServiceCard(HttpServletRequest request, String partnerId) { // 获取平台模板 /*StringBuilder sql = new StringBuilder(); sql.append("select t.TEMPLATE_NAME,f.FILE_NAME,f.FILE_PATH,f.FILE_SIZE,f.FILE_FORMAT "); sql.append("from sc_expatriates_supervise_card_template t "); sql.append("left join gg_files f on f.BUSINESS_ID=t.ID "); sql.append("where t.PARTNER_ID is null and t.STATE=1 "); List list = baseDao.queryForList(sql.toString()); if (list != null && list.size() > 0) { for (Map map : list) { String filePath = ConvertUtil.obj2Str(map.get("FILE_PATH")); if (StringUtil.isEmpty(filePath)) { return; } String path = StringUtils.substringBeforeLast(filePath, "/") + "/"; String format = StringUtils.substringAfterLast(filePath, "."); String tname = WebUtil.getRealPath(request, path + DateUtil.getCurrentDate14() + "_" + (Math.random()*9000+1000) + "." + format); //判断源文件是否存在 File file = new File(WebUtil.getRealPath(request, filePath)); if (file.exists()) { try { FileUtil.copyFile(WebUtil.getRealPath(request, filePath), tname); //写入文件记录 SC_EXPATRIATES_SUPERVISE_CARD_TEMPLATE template = new SC_EXPATRIATES_SUPERVISE_CARD_TEMPLATE().setPartner_id(partnerId) .setState(1) .setTemplate_name(ConvertUtil.obj2Str(map.get("TEMPLATE_NAME"))) .setUpload_time(DateUtil.getCurrentDate14()) .setUser_name("系统同步") .insert(); new GG_FILES().setBusiness_id(template.getId()) .setFile_format(format) .setFile_name(ConvertUtil.obj2Str(map.get("FILE_NAME"))) .setFile_path(path + DateUtil.getCurrentDate14() + "_" + (Math.random()*9000+1000) + "." + format) .setFile_size(ConvertUtil.obj2Str(map.get("FILE_SIZE"))) .insert(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }*/ } @Override public List getPartnerZcList(String partnerId) { String sql ="SELECT A.USER_ID,A.USER_NAME FROM SC_EXPATRIATES A,GG_USER B " + "WHERE A.USER_ID= B.ID AND B.MANUFACTURERID = :partnerid"; return baseDao.queryForList(sql, new SqlParameter("partnerid", partnerId)); } @Override public void doInitServiceCatolog(String partnerId) { String partnerName = ""; SC_PARTNER_INFO partner = new SC_PARTNER_INFO().setId(partnerId).queryForBean(); if (partner != null) { partnerName = partner.getPartner_name(); } Map categoryIdMap = new HashMap(); Map levelIdMap = new HashMap(); //服务目录 String insertSql = "INSERT INTO sc_servce_category (ID,CATEGORY_NAME,LEVEL,P_ID,STATE,SERIAL,PARTNER_ID,PARTNER_NAME,TYPE) " + " VALUES (:ID,:CATEGORY_NAME,:LEVEL,:P_ID,:STATE,:SERIAL,:PARTNER_ID,:PARTNER_NAME,:TYPE) "; StringBuilder sql = new StringBuilder(); sql.append("select ID,CATEGORY_NAME,LEVEL,P_ID,STATE,SERIAL "); sql.append("from sc_servce_category_template where STATE=1 "); List list = baseDao.queryForList(sql.toString()); if (list != null && list.size() > 0) { List paramList = new ArrayList(); for (Map map : list) { SqlParameter param = new SqlParameter(); String newId = StringUtil.getUUID(); param.setSource(map); param.addValue("PARTNER_ID", partnerId); param.addValue("PARTNER_NAME", partnerName); param.addValue("ID", newId); param.addValue("TYPE", 1); categoryIdMap.put(map.get("ID"), newId); paramList.add(param); } baseDao.executeBatch(insertSql, paramList); } //SLA insertSql = "INSERT INTO sc_sla(ID,LEVEL_NAME,STATE,SERIAL,PARTNER_ID,PARTNER_NAME,TYPE) " + " VALUES (:ID,:LEVEL_NAME,:STATE,:SERIAL,:PARTNER_ID,:PARTNER_NAME,:TYPE) "; sql = new StringBuilder(); sql.append("select ID,LEVEL_NAME,STATE,SERIAL "); sql.append("from sc_sla_template where STATE=1 "); list = baseDao.queryForList(sql.toString()); if (list != null && list.size() > 0) { List paramList = new ArrayList(); for (Map map : list) { SqlParameter param = new SqlParameter(); String newId = StringUtil.getUUID(); param.setSource(map); param.addValue("PARTNER_ID", partnerId); param.addValue("PARTNER_NAME", partnerName); param.addValue("TYPE", 1); param.addValue("ID", newId); levelIdMap.put(map.get("ID"), newId); paramList.add(param); } baseDao.executeBatch(insertSql, paramList); } //SLA设置 insertSql = "INSERT INTO sc_sla_config (ID,CATEGORY_ID,CATEGORY_NAME,LEVEL_ID,LEVEL_NAME,RESPONSE_TIME,RESOLVE_TIME,STATE,SERIAL,PARTNER_ID,PARTNER_NAME,TYPE) " + " VALUES (:ID,:CATEGORY_ID,:CATEGORY_NAME,:LEVEL_ID,:LEVEL_NAME,:RESPONSE_TIME,:RESOLVE_TIME,:STATE,:SERIAL,:PARTNER_ID,:PARTNER_NAME,:TYPE) "; sql = new StringBuilder(); sql.append("select CATEGORY_ID,CATEGORY_NAME,LEVEL_ID,LEVEL_NAME,RESPONSE_TIME,RESOLVE_TIME,STATE,SERIAL "); sql.append("from sc_sla_config_template where STATE=1 "); list = baseDao.queryForList(sql.toString()); if (list != null && list.size() > 0) { List paramList = new ArrayList(); for (Map map : list) { SqlParameter param = new SqlParameter(); param.setSource(map); param.addValue("PARTNER_ID", partnerId); param.addValue("PARTNER_NAME", partnerName); param.addValue("ID", StringUtil.getUUID()); param.addValue("TYPE", 1); param.addValue("CATEGORY_ID", categoryIdMap.get(map.get("CATEGORY_ID"))); param.addValue("LEVEL_ID", levelIdMap.get(map.get("LEVEL_ID"))); paramList.add(param); } baseDao.executeBatch(insertSql, paramList); } //SLA时间 insertSql = "INSERT INTO sc_sla_time (ID,LEVEL_ID,TYPE,OVER_TIME,SERIAL) " + " VALUES (:ID,:LEVEL_ID,:TYPE,:OVER_TIME,:SERIAL) "; sql = new StringBuilder(); sql.append("select LEVEL_ID,TYPE,OVER_TIME,SERIAL "); sql.append("from sc_sla_time_template "); list = baseDao.queryForList(sql.toString()); if (list != null && list.size() > 0) { List paramList = new ArrayList(); for (Map map : list) { SqlParameter param = new SqlParameter(); param.setSource(map); param.addValue("ID", StringUtil.getUUID()); param.addValue("LEVEL_ID", levelIdMap.get(map.get("LEVEL_ID"))); paramList.add(param); } baseDao.executeBatch(insertSql, paramList); } //SLA级别 insertSql = "INSERT INTO sc_sla_level_config (ID,INFLUENCE_ID,INFLUENCE_NAME,PRIORITY_ID,PRIORITY_NAME,LEVEL_ID,LEVEL_NAME,SHOW_NAME,PARTNER_ID,PARTNER_NAME,TYPE) " + " VALUES (:ID,:INFLUENCE_ID,:INFLUENCE_NAME,:PRIORITY_ID,:PRIORITY_NAME,:LEVEL_ID,:LEVEL_NAME,:SHOW_NAME,:PARTNER_ID,:PARTNER_NAME,:TYPE) "; sql = new StringBuilder(); sql.append("select INFLUENCE_ID,INFLUENCE_NAME,PRIORITY_ID,PRIORITY_NAME,LEVEL_ID,LEVEL_NAME,SHOW_NAME "); sql.append("from sc_sla_level_config_template "); list = baseDao.queryForList(sql.toString()); if (list != null && list.size() > 0) { List paramList = new ArrayList(); for (Map map : list) { SqlParameter param = new SqlParameter(); param.setSource(map); param.addValue("PARTNER_ID", partnerId); param.addValue("PARTNER_NAME", partnerName); param.addValue("ID", StringUtil.getUUID()); param.addValue("TYPE", 1); param.addValue("LEVEL_ID", levelIdMap.get(map.get("LEVEL_ID"))); paramList.add(param); } baseDao.executeBatch(insertSql, paramList); } } @SuppressWarnings("unchecked") @Override public void doInitPartnerPatrolRoom(String partnerId) { //插入加盟商机房巡查项分类数据 String searchSql="SELECT * FROM SC_DAILY_PATROL_ROOM_CATEGORY_TEMPLATE WHERE STATE=1"; List list_category_s = baseDao.queryForList(searchSql); if(list_category_s!=null&&list_category_s.size()>0){ StringBuilder insertSql_category = new StringBuilder(); insertSql_category.append("INSERT INTO SC_DAILY_PATROL_ROOM_CATEGORY (ID,CATEGORY_NAME,ORDER_NUM,PARTNER_ID,STATE) "); insertSql_category.append("VALUES (:ID,:CATEGORY_NAME,:ORDER_NUM,:PARTNER_ID,:STATE) "); for(Map map_category : list_category_s){ SqlParameter param_category = new SqlParameter(); String ID = StringUtil.getUUID(); param_category.addValue("ID", ID); param_category.addValue("PARTNER_ID", partnerId); param_category.addValue("CATEGORY_NAME",map_category.get("CATEGORY_NAME")); param_category.addValue("ORDER_NUM",map_category.get("ORDER_NUM")); param_category.addValue("STATE", 1); baseDao.execute(insertSql_category.toString(), param_category); //插入机房巡检项数据 String searchSql_item = "select * from sc_daily_patrol_room_item_template where state=1 and CATEGORY_ID=:CATEGORY_ID"; SqlParameter param_item_s = new SqlParameter(); param_item_s.addValue("CATEGORY_ID", map_category.get("ID")); List list_item_s = new ArrayList(); list_item_s = baseDao.queryForList(searchSql_item, param_item_s); if(list_item_s!=null&&list_item_s.size()>0){ List paramList = new ArrayList(); StringBuilder insertSql_item = new StringBuilder(); insertSql_item.append(" INSERT INTO sc_daily_patrol_room_item (ID,CATEGORY_id,CATEGORY_NAME,ITEM_CODE,ITEM_NAME,IS_RESULT,IS_VALUE,ORDER_NUM,STATE)"); insertSql_item.append(" VALUES (:ID,:CATEGORY_id,:CATEGORY_NAME,:ITEM_CODE,:ITEM_NAME,:IS_RESULT,:IS_VALUE,:ORDER_NUM,:STATE)"); for(Map map_item:list_item_s){ SqlParameter param_item = new SqlParameter(); param_item.addValue("ID", StringUtil.getUUID()); param_item.addValue("CATEGORY_id", ID); param_item.addValue("CATEGORY_NAME", map_item.get("CATEGORY_NAME")); param_item.addValue("ITEM_CODE", map_item.get("ITEM_CODE")); param_item.addValue("ITEM_NAME", map_item.get("ITEM_NAME")); param_item.addValue("IS_RESULT", map_item.get("IS_RESULT")); param_item.addValue("IS_VALUE", map_item.get("IS_VALUE")); param_item.addValue("ORDER_NUM", map_item.get("ORDER_NUM")); param_item.addValue("STATE", "1"); paramList.add(param_item); } baseDao.executeBatch(insertSql_item.toString(),paramList); } } } } @Override public void doInitIncidentFlowRule(String partnerId) { Map paramMap = new HashMap(); paramMap.put("partnerId", partnerId); //查询出事件管理流转策略模板 String selectSql = "SELECT * FROM SC_WORKFLOW_INCIDENT_FLOWRULE WHERE PARTNER_ID IS NULL "; Map template = baseDao.queryForMap(selectSql); if(null!=template && template.size()>0) { String kfry = ConvertUtil.obj2StrBlank(template.get("NODE_INCIDENT_DEAL")); String ycjszc = ConvertUtil.obj2StrBlank(template.get("NODE_INCIDENT_STARTEND")); String yxgcs = ConvertUtil.obj2StrBlank(template.get("YXGCS")); String exgcs = ConvertUtil.obj2StrBlank(template.get("EXGCS")); String sxgcs = ConvertUtil.obj2StrBlank(template.get("SXGCS")); paramMap.put("kfry", kfry); paramMap.put("ycjszc", ycjszc); paramMap.put("yxgcs", yxgcs); paramMap.put("exgcs", exgcs); paramMap.put("sxgcs", sxgcs); paramMap.put("id", StringUtil.getUUID()); String insertSql = "INSERT INTO SC_WORKFLOW_INCIDENT_FLOWRULE(ID,NODE_INCIDENT_DEAL,NODE_INCIDENT_STARTEND,YXGCS,EXGCS,SXGCS,PARTNER_ID) VALUES (:id,:kfry,:ycjszc,:yxgcs,:exgcs,:sxgcs,:partnerId)"; baseDao.execute(insertSql, paramMap); } } public List getRoleList(String partnerId){ String sql = "SELECT * from (\n" + "SELECT * FROM ac_role WHERE TYPE = 0 AND CATEGORY = 2\n" + "UNION\n" + "SELECT * from ac_role WHERE PARTNER_ID = :partnerId ) r \n" + "ORDER BY r.BIGCATEGORY asc,sxh asc"; return baseDao.queryForList(sql,new SqlParameter("partnerId",partnerId)); } @Override public List partnerPzflTree(HttpServletRequest request) { Map paramMap = new HashMap(); //String partnerId = WebUtil.getLoginedPartnerId(request); String selectSubSql = "SELECT * FROM CMDB_CI_CATEGORY WHERE PARTNER_ID=:partnerId AND LEIX = 1 AND STATE = 1 ORDER BY JB,SERIAL "; //paramMap.put("partnerId", partnerId); List cates = baseDao.queryForList(selectSubSql,paramMap); Map result = new HashMap(); List resultList = new LinkedList(); Map yjgnCache = new HashMap(); Map ejgnCache = new HashMap(); Map sjgnCache = new HashMap(); for (Map map : cates) { String level = map.get("JB").toString(); String id = map.get("ID").toString(); //一级树 if (level.equalsIgnoreCase("1")) { yjgnCache.put(id, map); List ejgnList = new LinkedList(); map.put("ejTree", ejgnList); resultList.add(map); continue; } //二级树 if (level.equalsIgnoreCase("2")) { String pId = map.get("PID").toString(); if(yjgnCache.containsKey(pId)) { Map yjgnMap = yjgnCache.get(pId); List list = (List)yjgnMap.get("ejTree"); map.put("sjTree", new LinkedList()); list.add(map); ejgnCache.put(id, map); } continue; } //三级树 if (level.equalsIgnoreCase("3")) { if(null!=map.get("PID")){ String pId = map.get("PID").toString(); if(ejgnCache.containsKey(pId)) { Map ejgnMap = ejgnCache.get(map.get("PID").toString()); List list = (List)ejgnMap.get("sjTree"); list.add(map); } } } } System.out.println(JsonUtil.list2Json(resultList)); return resultList; } }