cy
2022-06-21 129904537f66509f97b285e7eb4f42b3dc349dd0
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
package cn.ksource.web.facade.uc.order;
 
import java.util.Map;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import cn.ksource.core.dao.BaseDao;
import cn.ksource.core.page.PageInfo;
import cn.ksource.core.util.ConvertUtil;
import cn.ksource.core.util.StringUtil;
import cn.ksource.web.Constants;
 
@Service("ucOrderFacade")
public class UcOrderFacadeImpl implements UcOrderFacade {
    
    @Autowired
    private BaseDao baseDao;
    
    /**
     * 查询服务台所有工单数量,默认查询未完成的
     */
    @Override
    public int ordersListCount(Map<String,String> params) {
        StringBuilder builder = new StringBuilder("SELECT COUNT(A.ID) FROM WORKFLOW_BASE A WHERE WFSTATE != :ysc  ");
        params.put("ysc", ConvertUtil.obj2StrBlank(Constants.WORKFLOW_BASE_WFSTATE_DELETE));
        
        builder.append(" AND A.CUSTOMER_ID = :cusId ");
        
        builder = getOrderSql(builder,params);
        return baseDao.queryForInteger(builder.toString(),params);
    }
 
    @Override
    public PageInfo ordersListData(PageInfo pageInfo,Map<String,String> params) {
        StringBuilder builder = new StringBuilder("SELECT A.* FROM WORKFLOW_BASE A WHERE WFSTATE != :ysc ");
        params.put("ysc", ConvertUtil.obj2StrBlank(Constants.WORKFLOW_BASE_WFSTATE_DELETE));
        
        builder.append(" AND A.CUSTOMER_ID = :cusId ");
        
        builder = getOrderSql(builder,params);
        
        builder.append(" ORDER BY A.CREATETIME DESC ");
        
        return baseDao.queryforSplitPageInfo(pageInfo, builder.toString(), params);
    }
    
    public StringBuilder getOrderSql(StringBuilder builder,Map<String,String> params){
        String orderName = params.get("orderName");
        if(StringUtil.notEmpty(orderName)) {
            builder.append(" AND A.WFNAME LIKE :orderName ");
            params.put("orderName", "%"+orderName+"%");
        }
 
        String types = params.get("types");
        if(StringUtil.notEmpty(types)) {
            String[] type = types.split(",");
            if(type.length==1) {
                builder.append(" AND A.BUSINESSTYPE = :businessType");
                params.put("businessType", type[0]);
            } else {
                builder.append(" AND A.BUSINESSTYPE IN (");
                for(int i=0; i<type.length; i++) {
                    builder.append(" :type"+i);
                    builder.append(",");
                    params.put("type"+i, type[i]);
                }
                builder.deleteCharAt(builder.lastIndexOf(","));
                builder.append(")");
            }
        }
        
        String orderStatus = params.get("orderStatus");
        if(StringUtil.notEmpty(orderStatus)) {
            builder.append(" AND A.WFSTATE = :orderStatus ");
            params.put("orderStatus", orderStatus);
        }
        
        String orderCode = params.get("orderCode");
        if(StringUtil.notEmpty(orderCode)) {
            builder.append(" AND A.ORDER_CODE LIKE :orderCode ");
            params.put("orderCode", "%"+orderCode+"%");
        }
        
        
        String beginTime = params.get("beginTime");
        if(StringUtil.notEmpty(beginTime)) {
            builder.append(" AND A.CREATETIME >= :beginTime ");
            params.put("beginTime", beginTime+"000000");
        }
        
        String endTime = params.get("endTime");
        if(StringUtil.notEmpty(beginTime)) {
            builder.append(" AND A.CREATETIME <= :endTime ");
            params.put("endTime", endTime+"240000");
        }
        return builder;
    }
 
}