zm
2024-07-25 19be4121c6c958109a2cb63267bf2e6b0af4476f
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
package com.product.contract.service;
 
import com.product.contract.config.CmnConst;
import com.product.core.config.CoreConst;
import com.product.core.dao.BaseDao;
import com.product.core.entity.DataTableEntity;
import com.product.core.entity.FieldSetEntity;
import com.product.core.service.support.AbstractBaseService;
import com.product.core.service.support.QueryFilterService;
import com.product.core.spring.context.SpringMVCContextHolder;
import com.product.util.BaseUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
@Service
public class ProjectCommissionService extends AbstractBaseService{
 
    @Autowired
    BaseDao baseDao;
    
    @Autowired
    QueryFilterService queryFilterService;
    
    /**
     *     项目提成列表
     * @param fse
     * @return
     */
    public DataTableEntity listCommission(FieldSetEntity fse) {
        String filter = fse.getString("filter");
        String queryFilter = queryFilterService.getQueryFilter(fse);
        StringBuilder sb = new StringBuilder();
        sb.append("SELECT * FROM( \n");
        sb.append("SELECT A.*,B.project_number,B.project_name AS project_name_label,E.user_name AS apply_label \n");
        sb.append("FROM product_project_performance_commission A \n");
        sb.append("LEFT JOIN product_project_business B ON B.uuid = A.project_uuid \n");
        sb.append("LEFT JOIN product_sys_users E ON E.user_id = A.apply_user \n");
        sb.append("WHERE apply_user = ? \n");
        sb.append(" AND ").append(filter).append(" \n");
        sb.append(")A \n");
        if (!BaseUtil.strIsNull(queryFilter)) {
            sb.append("WHERE ").append(queryFilter).append(" \n");
        }
        sb.append("ORDER BY apply_time DESC");
        return baseDao.listTable(sb.toString(), new Object[] {SpringMVCContextHolder.getCurrentUserId()}, fse.getInteger(CoreConst.PAGESIZE), fse.getInteger(CoreConst.CPAGE));
    }
    
    /**
     *     项目提成详情
     * @param uuid
     * @return
     */
    public FieldSetEntity findCommission(String uuid) {
        return baseDao.getFieldSetEntity(CmnConst.PRODUCT_PROJECT_PERFORMANCE_COMMISSION, uuid, true);
    }
    
    /**
     *     
     * @return
     */
    public DataTableEntity getUnCommissionProject(String projectUUID) {
        StringBuilder sb = new StringBuilder();
        sb.append("SELECT * FROM ( \n");
        sb.append("  SELECT A.business_type,B.dict_label AS business_type_name,'1' AS project_role, project_leader AS project_user \n");
        sb.append("  FROM product_project_business_sub A \n");
        sb.append("  LEFT JOIN product_sys_dict B ON B.dict_value = A.business_type AND B.dict_name LIKE 'business_type_%' \n");
        sb.append("  WHERE project_uuid = ? \n");
        sb.append("  UNION ALL \n");
        sb.append("  SELECT A.business_type,B.dict_label AS business_type_name,'2' AS project_role, business_sponsor AS project_user \n");
        sb.append("  FROM product_project_business_sub A \n");
        sb.append("  LEFT JOIN product_sys_dict B ON B.dict_value = A.business_type AND B.dict_name LIKE 'business_type_%' \n");
        sb.append("  WHERE project_uuid = ? \n");
        sb.append(") A \n");
        sb.append("ORDER BY business_type");
        DataTableEntity dt = baseDao.listTable(sb.toString(), new Object[] {projectUUID, projectUUID});
        if (!BaseUtil.dataTableIsEmpty(dt)) {
            DataTableEntity dtNew = new DataTableEntity();
            
            for (int i = 0; i < dt.getRows(); i++) {
                FieldSetEntity fse = dt.getFieldSetEntity(i);
                String projectRole = fse.getString("project_role");
                String projectUser = fse.getString("project_user");
                if (BaseUtil.strIsNull(projectRole) || BaseUtil.strIsNull(projectUser)) {
                    continue;
                }
                if ("2".equals(projectRole)) {
                    if (projectUser.contains(",")) {
                        String [] userArray = projectUser.split(",");
                        for (int j = 0; j < userArray.length; j++) {
                            FieldSetEntity fseNew = fse.clones();
//                            FieldSetEntity fseStaff = OrganizationCacheService.getStaffCacheByUserIdStatic(userArray[j]);
//                            fseNew.setValue("project_user_name", fseStaff.getString("show_name"));
//                            fseNew.setValue("project_user", userArray[j]);
//                            fse.setValue("project_role_name", "项目组员");
                            dtNew.addFieldSetEntity(fseNew);
                        }
                    }else {
//                        FieldSetEntity fseStaff = OrganizationCacheService.getStaffCacheByUserIdStatic(projectUser);
//                        fse.setValue("project_user_name", fseStaff.getString("show_name"));
//                        fse.setValue("project_role_name", "项目组员");
//                        dtNew.addFieldSetEntity(fse);
                    }
                }else {
//                    FieldSetEntity fseStaff = OrganizationCacheService.getStaffCacheByUserIdStatic(projectUser);
//                    fse.setValue("project_user_name", fseStaff.getString("show_name"));
//                    fse.setValue("project_role_name", "项目组长");
//                    dtNew.addFieldSetEntity(fse);
                }
            }
            return dtNew;
        }
        return null;
    }
}