cy
2022-06-27 161509b9f823511cf33041caaf25ce726999e39b
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
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);
        
    }
 
}