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; } }