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<Map> 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<Map> cates = baseDao.queryForList(selectSubSql,paramMap);
|
Map result = new HashMap();
|
|
List<Map> resultList = new LinkedList<Map>();
|
|
Map<String, Map> yjgnCache = new HashMap<String, Map>();
|
Map<String, Map> ejgnCache = new HashMap<String, Map>();
|
Map<String, Map> sjgnCache = new HashMap<String, Map>();
|
|
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<Map> ejgnList = new LinkedList<Map>();
|
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<Map> list = (List<Map>)yjgnMap.get("ejTree");
|
map.put("sjTree", new LinkedList<Map>());
|
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<Map> list = (List<Map>)ejgnMap.get("sjTree");
|
list.add(map);
|
}
|
}
|
}
|
}
|
System.out.println(JsonUtil.list2Json(resultList));
|
return resultList;
|
}
|
|
@Override
|
public int rcxjxListCount(Map<String,String> 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<String,String> 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);
|
|
}
|
|
}
|