dhz
2022-06-22 4d198cd78684d17c849b0bd7d323894009ca17f5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
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<String,String> 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<String,String> 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<String,String> 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<Map> result = new ArrayList<Map>();
        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<Map> 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;
    }
 
}