cy
2022-06-22 6e06bba1c89f8077e29d0fbf0ce12f89f027d8d2
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
package cn.ksource.web.facade.repair;
 
import java.util.HashMap;
import java.util.Map;
 
import javax.annotation.Resource;
 
import org.springframework.stereotype.Service;
 
import cn.ksource.core.dao.BaseDao;
import cn.ksource.core.dao.SqlParameter;
import cn.ksource.core.page.PageInfo;
import cn.ksource.core.util.DateUtil;
import cn.ksource.core.util.StringUtil;
import cn.ksource.web.Constants;
 
@Service
public class RepairFacadeImpl implements RepairFacade{
 
    @Resource
    private BaseDao baseDao;
    
    @Override
    public PageInfo getRepiarData(PageInfo pageInfo, Map<String, String> params) {
        Map support = getRcxjSupport(params);
        String sql = support.get("sql").toString();
        return baseDao.queryforSplitPageInfo(pageInfo, sql, params);
    }
 
    @Override
    public Integer getRepairCount(Map<String, String> params) {
        Map support = getRcxjSupport(params);
        String sql = "select count(*) from ( " + support.get("sql").toString() + " ) t ";
        return baseDao.queryForInteger(sql, params);
    }
 
    private Map getRcxjSupport(Map<String, String> params){
        Map<String, Object> support = new HashMap<String, Object>();
        StringBuilder sql = new StringBuilder();
        sql.append(" select a.*,b.customer_name cus_name  ");
        sql.append(" from repair_record a,sc_partner_customer_info b ");
        sql.append(" where a.cus_id = b.id ");
        if(StringUtil.isNotBlank(params.get("userId"))){
            sql.append(" and a.deal_id = :userId ");
        }else{
            sql.append(" and a.deal_id is null ");
        }
        
        if(StringUtil.isNotBlank(params.get("status"))){
            sql.append(" and a.status = :status ");
        }
        
        if(StringUtil.isNotBlank(params.get("customerId"))){
            sql.append(" and a.cus_id = :customerId ");
        }
        
        if(StringUtil.isNotBlank(params.get("beginDate"))){
            sql.append(" and a.create_time >=:beginDate ");
            params.put("beginDate", params.get("beginDate")+"000000");
        }
        if(StringUtil.isNotBlank(params.get("endDate"))){
            sql.append(" and a.create_time <=:endDate ");
            params.put("endDate", params.get("endDate")+"666666");
        }
        
        sql.append(" order by a.create_time desc ");
        support.put("sql", sql.toString());
        support.put("param", params);
        return support;
    }
 
    @Override
    public Map getRepairById(String id) {
        StringBuilder sql = new StringBuilder();
        sql.append(" select A.*,B.CUSTOMER_NAME CUS_NAME,C.YWKS,C.ZW,C.CONTACTS_TYPE,C.TELEPHONE,C.MOBILE,D.ORDER_CODE  ");
        sql.append(" from SC_PARTNER_CUSTOMER_INFO B ,REPAIR_RECORD A LEFT JOIN SC_WORKFLOW_INCIDENT D ON A.INCIDENT_ID = D.ID");
        sql.append(" left join CUSTOMER_CONTACTS C on A.CREATE_ID = C.ID  WHERE A.CUS_ID = B.ID AND A.ID=:id  ");
        return baseDao.queryForMap(sql.toString(),new SqlParameter("id",id));
    }
 
    @Override
    public String doAnswer(Map<String, String> params) {
        StringBuilder sql = new StringBuilder();
        sql.append(" select status from repair_record where id = :id ");
        String status = baseDao.queryForString(sql.toString(), params);
        if(!status.equals("1")){
            return "2";
        }
        sql.setLength(0);
        params.put("status", Constants.REPAIR_STATE_CLZ.toString());
        params.put("curTime", DateUtil.getCurrentDate14().toString());
        sql.append(" update repair_record set status=:status,deal_id=:userId,deal_name=:userName,answer_time=:curTime where id = :id    ");
        baseDao.execute(sql.toString(), params);
        return "1";
    }
 
    @Override
    public void doCloseRepair(Map<String, String> params) {
        params.put("status", Constants.REPAIR_STATE_GB.toString());
        String sql = "update REPAIR_RECORD set STATUS =:status,CLOSEREASON = :closereason where id=:id ";
        baseDao.execute(sql, params);
    }
}