package cn.ksource.web.facade.wbx.rcxj; 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.CI_DAILY_PATROL_ITEM; import cn.ksource.core.dao.BaseDao; import cn.ksource.core.dao.SqlParameter; import cn.ksource.core.page.PageInfo; import cn.ksource.core.util.JsonUtil; import cn.ksource.core.util.StringUtil; @Service("rcxjItemFacade") @SuppressWarnings("unchecked") public class RcxjItemFacadeImpl implements RcxjItemFacade { @Autowired private BaseDao baseDao; @Override public List queryPzflTree(HttpServletRequest request) { Map paramMap = new HashMap(); String selectSubSql = "SELECT * FROM CMDB_CI_CATEGORY WHERE TYPE = 1 AND STATE = 1 AND CATE_TYPE=1 ORDER BY LV,SERIAL "; 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("LV").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; } @Override public int rcxjxListCount(Map params) { String categoryId = params.get("pId"); SqlParameter param = new SqlParameter(); StringBuilder builder = new StringBuilder("SELECT COUNT(ID) FROM CI_DAILY_PATROL_ITEM WHERE ITEM_TYPE = 1"); if(StringUtils.isNotBlank(categoryId)){ builder.append(" AND BUSINESS_ID = :categoryId "); param.addValue("categoryId", categoryId); } return baseDao.queryForInteger(builder.toString(),param); } @Override public PageInfo rcxjxListData(PageInfo pageInfo,Map params) { String categoryId = params.get("pId"); SqlParameter param = new SqlParameter(); StringBuilder builder = new StringBuilder("SELECT * FROM CI_DAILY_PATROL_ITEM WHERE ITEM_TYPE = 1"); if(StringUtils.isNotBlank(categoryId)){ builder.append(" AND BUSINESS_ID = :categoryId "); param.addValue("categoryId", categoryId); } builder.append(" ORDER BY STATE,ORDER_NUM "); PageInfo info = baseDao.queryforSplitPageInfo(pageInfo,builder.toString(),param); return info; } @Override public CI_DAILY_PATROL_ITEM getCiDailyItem(String id) { return new CI_DAILY_PATROL_ITEM(id).getInstanceById(); } @Override public void saveItem(CI_DAILY_PATROL_ITEM item) { String id = item.getId(); item.insertOrUpdate(); if(StringUtil.isEmpty(id)){ SqlParameter param = new SqlParameter(); param.addValue("item_id", item.getId()) .addValue("id", StringUtil.getUUID()) .addValue("customer_id","-1"); String sql = " insert into ci_daily_patrol_customer_item (id,customer_id,item_id,using_state) " + " values (:id,:customer_id,:item_id,1) "; baseDao.execute(sql, param); } } @Override public void updateItem(String id, String state) { CI_DAILY_PATROL_ITEM item = new CI_DAILY_PATROL_ITEM(); item.setId(id); item.setState(Integer.parseInt(state)); item.update(); String sql = "UPDATE CI_DAILY_PATROL_CUSTOMER_ITEM SET USING_STATE = :state WHERE ITEM_ID = :item_id AND CUSTOMER_ID = :customer_id "; SqlParameter param = new SqlParameter(); param.addValue("item_id", id) .addValue("state",state) .addValue("customer_id","-1"); baseDao.execute(sql, param); } }