package cn.ksource.web.facade.customerconfig; import cn.ksource.core.dao.BaseDao; import cn.ksource.core.dao.SqlParameter; import cn.ksource.core.page.PageInfo; import cn.ksource.core.util.ConvertUtil; import cn.ksource.core.util.StringUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletRequest; import java.util.*; @Service("cusSubFacade") @SuppressWarnings("unchecked") public class CusSubFacadeImpl implements CusSubFacade { @Autowired private BaseDao baseDao; @Override public Map querySubCustomer(String customerId) { Map paramMap = new HashMap(); paramMap.put("customerId", customerId); //查询当前客户的信息 String selectSql = "SELECT A.ID,A.CUSTOMER_NAME,wm_concat(B.USER_ID) AS USERID,wm_concat(B.USER_NAME) AS USERNAME FROM SC_PARTNER_CUSTOMER_INFO A LEFT JOIN SC_CUSTOMER_ZC_UESR B ON A.ID = B.CUSTOMER_ID WHERE A.ID = :customerId GROUP BY A.ID,A.CUSTOMER_NAME "; Map customer = baseDao.queryForMap(selectSql,paramMap); if(null!=customer && customer.size()>0) { //查询下级客户 String selectSubSql = "SELECT A.id,A.CUSTOMER_NAME ,A.P_ID ,A.MY_LEVEL ,A.CUSTOMER_ID ,A.DEL_FLAG ,A.CONTACT ,A.PHONE,wm_concat(B.USER_ID) AS USERID,wm_concat(B.USER_NAME) AS USERNAME FROM SC_PARTNER_CUSTOMER_SUB A LEFT JOIN SC_CUSTOMER_ZC_UESR B ON A.ID = B.CUSTOMER_ID WHERE A.CUSTOMER_ID = :customerId AND A.DEL_FLAG = 1 GROUP BY A.ID,A.CUSTOMER_NAME ,A.P_ID ,A.MY_LEVEL ,A.CUSTOMER_ID ,A.DEL_FLAG ,A.CONTACT ,A.PHONE ORDER BY A.MY_LEVEL"; List subCus = baseDao.queryForList(selectSubSql,paramMap); if(null!=subCus && subCus.size()>0){ List subs = new ArrayList(); Map yjgnCache = new HashMap(); Map ejgnCache = new HashMap(); for(Map cus : subCus) { String level = ConvertUtil.obj2StrBlank(cus.get("MY_LEVEL")); String id = ConvertUtil.obj2Str(cus.get("ID")); //一级树 if (level.equalsIgnoreCase("1")) { yjgnCache.put(id, cus); List ejgnList = new LinkedList(); cus.put("ejTree", ejgnList); subs.add(cus); continue; } //二级树 if (level.equalsIgnoreCase("2")) { String pId = cus.get("P_ID").toString(); if(yjgnCache.containsKey(pId)) { Map yjgnMap = yjgnCache.get(pId); List list = (List)yjgnMap.get("ejTree"); list.add(cus); ejgnCache.put(id, cus); } continue; } } customer.put("subs", subs); } /*String selectSubSql = "SELECT * FROM SC_PARTNER_CUSTOMER_SUB WHERE CUSTOMER_ID = :customerId AND DEL_FLAG = 1 AND MY_LEVEL = 1 "; List subCus = baseDao.queryForList(selectSubSql,paramMap); customer.put("subs", subCus);*/ } return customer; } @Override public PageInfo querySubCusList(PageInfo pageInfo,Map params) { String pId = params.get("pId"); StringBuilder selectSql = new StringBuilder("SELECT * FROM SC_PARTNER_CUSTOMER_SUB WHERE CUSTOMER_ID = :customerId "); if(StringUtil.isEmpty(pId)){ selectSql.append(" AND (P_ID IS NULL OR P_ID = '')"); }else{ selectSql.append(" AND P_ID = :pId "); } return baseDao.queryforSplitPageInfo(pageInfo, selectSql.toString(), params); } @Override public int querySubCusCount(Map params) { String pId = params.get("pId"); StringBuilder selectSql = new StringBuilder("SELECT COUNT(ID) FROM SC_PARTNER_CUSTOMER_SUB WHERE CUSTOMER_ID = :customerId "); if(StringUtil.isEmpty(pId)){ selectSql.append(" AND (P_ID IS NULL OR P_ID = '') "); }else{ selectSql.append(" AND P_ID = :pId "); } return baseDao.queryForInteger(selectSql.toString(), params); } /** * 保存下属单位 */ @Override public void saveSubCus(HttpServletRequest request) { String customerId = request.getParameter("customerId"); String pId = request.getParameter("pId"); String customerName = request.getParameter("customer_name"); String level = request.getParameter("level"); String id = request.getParameter("id"); String contact = request.getParameter("contact"); String phone = request.getParameter("phone"); String note = request.getParameter("note"); Map paramMap = new HashMap(); String updateSql = new String(); if(StringUtil.notEmpty(id)) { updateSql = "UPDATE SC_PARTNER_CUSTOMER_SUB SET CUSTOMER_NAME = :customerName,CONTACT = :contact,PHONE = :phone,NOTE = :note WHERE ID = :id"; paramMap.put("id", id); Map param=new HashMap(); param.put("name", customerName); param.put("id", id); String sqla="update SC_WORKFLOW_INCIDENT_TEMPLATE set SUB_CUSTOMER_NAME=:name where SUB_CUSTOMER_ID=:id"; String sqlb="update SC_WORKFLOW_INCIDENT set SUB_CUSTOMER_NAME=:name where SUB_CUSTOMER_ID=:id"; String sqlc="update SC_WORKFLOW_QUESTION set SUB_CUSTOMER_NAME=:name where SUB_CUSTOMER_ID=:id"; baseDao.execute(sqla, param); baseDao.execute(sqlb, param); baseDao.execute(sqlc, param); } else { updateSql = "INSERT INTO SC_PARTNER_CUSTOMER_SUB (ID,CUSTOMER_NAME,P_ID,MY_LEVEL,CUSTOMER_ID,CONTACT,PHONE,NOTE,DEL_FLAG) VALUES (:id,:customerName,:pId,:level,:customerId,:contact,:phone,:note,1)"; paramMap.put("id", StringUtil.getUUID()); } paramMap.put("customerName", customerName); paramMap.put("pId", pId); paramMap.put("level", level); paramMap.put("customerId", customerId); paramMap.put("contact", contact); paramMap.put("phone", phone); paramMap.put("note", note); baseDao.execute(updateSql, paramMap); } @Override public boolean updateState(HttpServletRequest request) { String id = request.getParameter("id"); String state = request.getParameter("state"); if(state.equals("2")) { //查询该分类下是否有信息 String sql = "SELECT COUNT(ID) FROM SC_PARTNER_CUSTOMER_SUB WHERE P_ID = :id AND DEL_FLAG = 1"; int count = baseDao.queryForInteger(sql,new SqlParameter("id",id)); if(count>0) { return false; } } String updateSql = "UPDATE SC_PARTNER_CUSTOMER_SUB SET DEL_FLAG = :state WHERE ID = :id "; baseDao.execute(updateSql, new SqlParameter("id",id).addValue("state", state)); return true; } @Override public List queryCurrentZcUser(String customerId) { String sql = "SELECT a.* FROM SC_CUSTOMER_ZC_UESR a,GG_USER b,AC_ROLE c,AC_USER_REF_ROLE d where a.USER_ID=b.ID and b.ID=D.YHBH and c.ID=D.JSBH and c.IDENTIFY='LOCATION' and b.ZT=1 "; return baseDao.queryForList(sql); } @Override public Map queryAllUser(String sl) { //当前所有用户 StringBuffer userSql = new StringBuffer("select A.ID,A.ZSXM,A.SSBMBH,A.LOGINNAME from GG_USER A where A.ZT=1 "); if(!StringUtil.isEmpty(sl)){ userSql.append("AND A.ID NOT IN ( "); String[] sls = sl.split(","); for(int i=0;i allUserList = baseDao.queryForList(userSql.toString()); Map resultMap = new HashMap(); resultMap.put("PARTNERLIST", allUserList); //所有部门 String sql = "SELECT * FROM GG_ZZJG WHERE ZT=1 ORDER BY CENGJ ASC,SXH ASC"; List bmList = baseDao.queryForList(sql, new SqlParameter()); List resultList = new LinkedList(); Map yjgnCache = new HashMap(); Map ejgnCache = new HashMap(); Map sjgnCache = new HashMap(); for (Map map : bmList) { String level = map.get("CENGJ").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("SJBH").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("SJBH")){ String pId = map.get("SJBH").toString(); if(ejgnCache.containsKey(pId)) { Map ejgnMap = ejgnCache.get(map.get("SJBH").toString()); List list = (List)ejgnMap.get("sjTree"); map.put("fjTree", new LinkedList()); list.add(map); sjgnCache.put(id, map); } } } } resultMap.put("resultList", resultList); return resultMap; } @Override public boolean saveZcCus(Map params) { String[] customers = params.get("customerId").split(","); if(customers.length > 0){ List paramList = new ArrayList(); List delList = new ArrayList(); for(int i=0;i 0){ for(int j=0;j