package cn.ksource.web.facade.customerconfig; 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.Service; import cn.ksource.beans.CMDB_MAINUFACTURER; import cn.ksource.beans.CMDB_MAINUFACTURER_CONTACTS; import cn.ksource.core.dao.BaseDao; import cn.ksource.core.dao.SqlParameter; import cn.ksource.core.page.PageInfo; import cn.ksource.core.util.AjaxUtil; import cn.ksource.core.util.ConvertUtil; import cn.ksource.core.util.DateUtil; import cn.ksource.core.util.JsonUtil; import cn.ksource.core.util.PinYinUtil; import cn.ksource.core.util.StringUtil; import cn.ksource.core.web.WebUtil; @Service("customerCsFacade") @SuppressWarnings("unchecked") public class CustomerCsFacadeImpl implements CustomerCsFacade { @Autowired private BaseDao baseDao; /** * 查询厂商或者集成商数据 */ @Override public PageInfo queryCsJscList(PageInfo pageInfo,Map params) { String name = params.get("name"); String type = params.get("type"); String state = params.get("state"); StringBuilder selectSql = new StringBuilder("SELECT A.*,(SELECT COUNT(B.ID) FROM CMDB_MAINUFACTURER_CONTACTS B WHERE A.ID = B.MAINUFACTUREERID AND B.DEL_FLAG = 1) AS CONTACT_NUM FROM CMDB_MAINUFACTURER A WHERE A.CUSTOMER_ID = :customerId "); if(StringUtil.notEmpty(name)) { selectSql.append(" AND A.MANUFACTURERNAME LIKE :name"); params.put("name", "%"+name+"%"); } if (StringUtil.isNotBlank(type)) { selectSql.append(" AND A.TYPE = :type "); } if (StringUtil.isNotBlank(state)) { selectSql.append(" AND A.STATE = :state "); } selectSql.append(" ORDER BY NAME_PINYIN ASC,CREATE_TIME DESC "); PageInfo info = baseDao.queryforSplitPageInfo(pageInfo, selectSql.toString(), params); return info; } @Override public int queryCsJscCount(Map params) { String name = params.get("name"); String type = params.get("type"); String state = params.get("state"); StringBuilder selectSql = new StringBuilder("SELECT COUNT(ID) FROM CMDB_MAINUFACTURER WHERE TYPE = :type AND CUSTOMER_ID = :customerId "); if(StringUtil.notEmpty(name)) { selectSql.append(" AND MANUFACTURERNAME LIKE :name"); params.put("name", "%"+name+"%"); } if (StringUtil.isNotBlank(type)) { selectSql.append(" AND TYPE = :type "); } if (StringUtil.isNotBlank(state)) { selectSql.append(" AND STATE = :state "); } int count = baseDao.queryForInteger(selectSql.toString(),params); return count; } /** * 查询联系人列表 */ @Override public List queryContacts(Map params) { String selectSql = "SELECT * FROM CMDB_MAINUFACTURER_CONTACTS WHERE DEL_FLAG = 1 AND MAINUFACTUREERID = :csId AND CUSTOMER_ID = :customerId ORDER BY NAME_PINYIN ASC,CREATE_TIME DESC "; return baseDao.queryForList(selectSql,params); } /** * 保存联系人 */ @Override public String saveContact(HttpServletRequest request,CMDB_MAINUFACTURER_CONTACTS contact) { if(StringUtil.isEmpty(contact.getId())){ long createTime = DateUtil.getCurrentDate14(); Map user = WebUtil.getLoginUser(request).getLoginUser(); String userId = ConvertUtil.obj2StrBlank(user.get("ID")); String userName = ConvertUtil.obj2StrBlank(user.get("ZSXM")); contact.setCreate_time(createTime).setUser_id(userId).setUser_name(userName).setDel_flag(1); } contact.setName_pinyin(PinYinUtil.getStringPinYin(contact.getContacts(), false)).insertOrUpdate(); return "1"; } /** * 删除联系人 */ @Override public String deleteContact(HttpServletRequest request) { String id = request.getParameter("id"); String updateSql = "UPDATE CMDB_MAINUFACTURER_CONTACTS SET DEL_FLAG = 2 WHERE ID = :id"; baseDao.execute(updateSql, new SqlParameter("id",id)); return "1"; } /** * 保存厂商或者集成商 */ @Override public String saveCsJsc(HttpServletRequest request, CMDB_MAINUFACTURER csjcs) { if(StringUtil.isEmpty(csjcs.getId())){ csjcs.setState(1).setCreate_time(DateUtil.getCurrentDate14()); } csjcs.setName_pinyin(PinYinUtil.getStringPinYin(csjcs.getManufacturername(), false)).insertOrUpdate(); return "1"; } /** * 验证厂商或者集成商唯一性 */ @Override public String checkCsJsc(HttpServletRequest request) { String manufacturername = AjaxUtil.decode(request.getParameter("manufacturername")); String type = request.getParameter("type"); String id = request.getParameter("id"); String customerId=request.getParameter("customerId"); StringBuilder builder = new StringBuilder("SELECT COUNT(ID) FROM CMDB_MAINUFACTURER WHERE MANUFACTURERNAME = :manufacturername AND TYPE = :type AND CUSTOMER_ID=:customerId "); Map paramMap = new HashMap(); paramMap.put("manufacturername", manufacturername); paramMap.put("type", type); paramMap.put("customerId", customerId); if(StringUtil.notEmpty(id)) { builder.append(" AND ID != :id"); paramMap.put("id", id); } int count = baseDao.queryForInteger(builder.toString(),paramMap); if(count>0) { return "1"; } return "2"; } /** * 启用或者禁用厂商集成商信息 */ @Override public String updateCsState(HttpServletRequest request) { String id = request.getParameter("id"); String state = request.getParameter("state"); String updateSql = "UPDATE CMDB_MAINUFACTURER SET STATE = :state WHERE ID = :id "; Map paramMap = new HashMap(); paramMap.put("id", id); paramMap.put("state", state); baseDao.execute(updateSql, paramMap); return "1"; } @Override public List queryCsreport(String customerId) { List result = new ArrayList(); Map paramMap = new HashMap(); paramMap.put("customerId", customerId); //查询该项目下所有的厂商或者集成商 String selectCsSql = "SELECT * FROM CMDB_MAINUFACTURER WHERE STATE = 1 AND CUSTOMER_ID = :customerId ORDER BY TYPE ASC,CREATE_TIME DESC "; result = baseDao.queryForList(selectCsSql,paramMap); if(null!=result && result.size()>0) { Map cacheMap = new HashMap(); for(Map cs : result) { String csId = ConvertUtil.obj2StrBlank(cs.get("ID")); List lxr = new ArrayList(); cacheMap.put(csId, lxr); cs.put("lxrs", lxr); } //查询联系人信息 String selectLxrSql = "SELECT * FROM CMDB_MAINUFACTURER_CONTACTS WHERE DEL_FLAG = 1 AND CUSTOMER_ID = :customerId "; List lxr = baseDao.queryForList(selectLxrSql,paramMap); if(null!=lxr && lxr.size()>0) { for(Map user : lxr) { String csId = ConvertUtil.obj2StrBlank(user.get("MAINUFACTUREERID")); if(cacheMap.containsKey(csId)) { List lxrs = (List)cacheMap.get(csId); lxrs.add(user); } } } } System.out.println(JsonUtil.list2Json(result)); if(null!=result && result.size()>0) { for(Map map : result) { List lxrs = (List)map.get("lxrs"); int lxrSize = lxrs.size(); if(lxrSize>0) { map.put("size", lxrSize); } else { map.put("size", 1); } } } return result; } }