22 changed files with 712 additions and 0 deletions
			
			
		@ -0,0 +1,18 @@ | 
				
			|||
package com.epmet.dto.customize; | 
				
			|||
 | 
				
			|||
import lombok.Data; | 
				
			|||
 | 
				
			|||
import java.io.Serializable; | 
				
			|||
 | 
				
			|||
 | 
				
			|||
 | 
				
			|||
@Data | 
				
			|||
public class IcResiCategoryConfigDTO implements Serializable { | 
				
			|||
    private String configId; | 
				
			|||
    /** | 
				
			|||
     * 列名 | 
				
			|||
     */ | 
				
			|||
    private String columnName; | 
				
			|||
 | 
				
			|||
    private String itemLabel; | 
				
			|||
} | 
				
			|||
@ -0,0 +1,32 @@ | 
				
			|||
package com.epmet.dto.extract.form; | 
				
			|||
 | 
				
			|||
import lombok.Data; | 
				
			|||
import org.hibernate.validator.constraints.Length; | 
				
			|||
 | 
				
			|||
import java.io.Serializable; | 
				
			|||
 | 
				
			|||
/** | 
				
			|||
 * 数字社区-人员类别分析,按天计算,入参 | 
				
			|||
 * 以下参数都可以为空 | 
				
			|||
 */ | 
				
			|||
@Data | 
				
			|||
public class IcUserCategoryAnalysisDailyFormDTO implements Serializable { | 
				
			|||
    public interface AddUserInternalGroup { | 
				
			|||
    } | 
				
			|||
 | 
				
			|||
    private String customerId; | 
				
			|||
    @Length(max = 8, message = "日期格式:yyyyMMdd", groups = AddUserInternalGroup.class) | 
				
			|||
    private String dateId; | 
				
			|||
 | 
				
			|||
    /** | 
				
			|||
     * 开始时间 | 
				
			|||
     */ | 
				
			|||
    @Length(max = 8, message = "开始日期日期格式:yyyyMMdd", groups = AddUserInternalGroup.class) | 
				
			|||
    private String startDate; | 
				
			|||
    /** | 
				
			|||
     * 结束时间 | 
				
			|||
     */ | 
				
			|||
    @Length(max = 8, message = "截止日期格式:yyyyMMdd", groups = AddUserInternalGroup.class) | 
				
			|||
    private String endDate; | 
				
			|||
 | 
				
			|||
} | 
				
			|||
@ -0,0 +1,12 @@ | 
				
			|||
package com.epmet.dto.user.result; | 
				
			|||
 | 
				
			|||
import lombok.Data; | 
				
			|||
 | 
				
			|||
import java.io.Serializable; | 
				
			|||
 | 
				
			|||
@Data | 
				
			|||
public class OrgIcUserTotalDTO implements Serializable { | 
				
			|||
    private String orgId; | 
				
			|||
    private Integer total; | 
				
			|||
    private String columnName; | 
				
			|||
} | 
				
			|||
@ -0,0 +1,76 @@ | 
				
			|||
package com.epmet.controller; | 
				
			|||
 | 
				
			|||
 | 
				
			|||
import com.epmet.commons.tools.constant.NumConstant; | 
				
			|||
import com.epmet.commons.tools.utils.DateUtils; | 
				
			|||
import com.epmet.commons.tools.utils.Result; | 
				
			|||
import com.epmet.commons.tools.validator.ValidatorUtils; | 
				
			|||
import com.epmet.dto.extract.form.IcUserCategoryAnalysisDailyFormDTO; | 
				
			|||
import com.epmet.service.stats.DimCustomerService; | 
				
			|||
import com.epmet.service.stats.FactIcuserCategoryAnalysisDailyService; | 
				
			|||
import org.apache.commons.collections4.CollectionUtils; | 
				
			|||
import org.apache.commons.lang3.StringUtils; | 
				
			|||
import org.springframework.beans.factory.annotation.Autowired; | 
				
			|||
import org.springframework.web.bind.annotation.PostMapping; | 
				
			|||
import org.springframework.web.bind.annotation.RequestBody; | 
				
			|||
import org.springframework.web.bind.annotation.RequestMapping; | 
				
			|||
import org.springframework.web.bind.annotation.RestController; | 
				
			|||
 | 
				
			|||
import java.time.LocalDate; | 
				
			|||
import java.util.ArrayList; | 
				
			|||
import java.util.List; | 
				
			|||
 | 
				
			|||
/** | 
				
			|||
 * @Description 数字社区相关统计任务可以放这,目前只有人员类别分析 | 
				
			|||
 * @Author yinzuomei | 
				
			|||
 * @Date 2022/01/17 | 
				
			|||
 * @Version 1.0 | 
				
			|||
 */ | 
				
			|||
@RestController | 
				
			|||
@RequestMapping("ic") | 
				
			|||
public class IcController { | 
				
			|||
 | 
				
			|||
    @Autowired | 
				
			|||
    private FactIcuserCategoryAnalysisDailyService userCategoryAnalysisDailyService; | 
				
			|||
    @Autowired | 
				
			|||
    private DimCustomerService dimCustomerService; | 
				
			|||
 | 
				
			|||
    /** | 
				
			|||
     * 数字社区-基础信息-人员类别分析-每个类别的人员总数、较上月迁入迁出人数 | 
				
			|||
     * 说明:安调统计,截止到当前dateId的党员总数;+30:迁入党员+之前的居民在本月内变更为党员身份的;-10:在本月丢失党员身份的人+迁出的人 | 
				
			|||
     * @return | 
				
			|||
     */ | 
				
			|||
    @PostMapping("/user/category-analysis-daily") | 
				
			|||
    public Result statUserCategoryDaily(@RequestBody IcUserCategoryAnalysisDailyFormDTO formDTO) { | 
				
			|||
        ValidatorUtils.validateEntity(formDTO, IcUserCategoryAnalysisDailyFormDTO.AddUserInternalGroup.class); | 
				
			|||
        List<String> customerIds = new ArrayList<>(); | 
				
			|||
        if (StringUtils.isNotBlank(formDTO.getCustomerId())) { | 
				
			|||
            customerIds.add(formDTO.getCustomerId()); | 
				
			|||
        } else { | 
				
			|||
            //未指定客户,则查询dim_customer表
 | 
				
			|||
            customerIds = dimCustomerService.selectCustomerIdPage(NumConstant.ONE, NumConstant.ONE_THOUSAND); | 
				
			|||
        } | 
				
			|||
        if (CollectionUtils.isNotEmpty(customerIds)) { | 
				
			|||
            customerIds.forEach(customerId -> { | 
				
			|||
                if (StringUtils.isNotBlank(formDTO.getStartDate()) && StringUtils.isNotBlank(formDTO.getEndDate())) { | 
				
			|||
                    //[a,b]yyyyMMdd
 | 
				
			|||
                    List<String> daysBetween = DateUtils.getDaysBetween(formDTO.getStartDate(), formDTO.getEndDate()); | 
				
			|||
                    daysBetween.forEach(dateId -> { | 
				
			|||
                        //计算网格维度的数据
 | 
				
			|||
                        userCategoryAnalysisDailyService.statUserCategoryGridDaily(customerId, dateId); | 
				
			|||
                    }); | 
				
			|||
                } else if (StringUtils.isNotBlank(formDTO.getDateId())) { | 
				
			|||
                    //计算网格维度的数据
 | 
				
			|||
                    userCategoryAnalysisDailyService.statUserCategoryGridDaily(customerId, formDTO.getDateId()); | 
				
			|||
                } else { | 
				
			|||
                    //计算网格维度的数据
 | 
				
			|||
                    //当前时间的前一天yyyyMMdd
 | 
				
			|||
                    String dateId = LocalDate.now().minusDays(NumConstant.ONE).toString().replace("-", ""); | 
				
			|||
                    userCategoryAnalysisDailyService.statUserCategoryGridDaily(customerId, dateId); | 
				
			|||
                } | 
				
			|||
            }); | 
				
			|||
        } | 
				
			|||
        return new Result(); | 
				
			|||
    } | 
				
			|||
 | 
				
			|||
} | 
				
			|||
@ -0,0 +1,14 @@ | 
				
			|||
package com.epmet.dao.customize; | 
				
			|||
 | 
				
			|||
 | 
				
			|||
import com.epmet.dto.customize.IcResiCategoryConfigDTO; | 
				
			|||
import org.apache.ibatis.annotations.Mapper; | 
				
			|||
 | 
				
			|||
import java.util.List; | 
				
			|||
 | 
				
			|||
@Mapper | 
				
			|||
public interface IcResiCategoryStatsConfigDao { | 
				
			|||
 | 
				
			|||
 | 
				
			|||
    List<IcResiCategoryConfigDTO> queryDataColumn(String customerId); | 
				
			|||
} | 
				
			|||
@ -0,0 +1,20 @@ | 
				
			|||
package com.epmet.dao.stats; | 
				
			|||
 | 
				
			|||
import com.epmet.commons.mybatis.dao.BaseDao; | 
				
			|||
import com.epmet.entity.stats.FactIcuserCategoryAnalysisDailyEntity; | 
				
			|||
import org.apache.ibatis.annotations.Mapper; | 
				
			|||
import org.apache.ibatis.annotations.Param; | 
				
			|||
 | 
				
			|||
/** | 
				
			|||
 * 人员类别分析 | 
				
			|||
 * | 
				
			|||
 * @author generator generator@elink-cn.com | 
				
			|||
 * @since v1.0.0 2022-01-17 | 
				
			|||
 */ | 
				
			|||
@Mapper | 
				
			|||
public interface FactIcuserCategoryAnalysisDailyDao extends BaseDao<FactIcuserCategoryAnalysisDailyEntity> { | 
				
			|||
 | 
				
			|||
    int limitDelete(@Param("customerId")String customerId, | 
				
			|||
                    @Param("dateId")String dateId, | 
				
			|||
                    @Param("orgType")String orgType); | 
				
			|||
} | 
				
			|||
@ -0,0 +1,71 @@ | 
				
			|||
package com.epmet.entity.stats; | 
				
			|||
 | 
				
			|||
import com.baomidou.mybatisplus.annotation.TableName; | 
				
			|||
import com.epmet.commons.mybatis.entity.BaseEpmetEntity; | 
				
			|||
import lombok.Data; | 
				
			|||
import lombok.EqualsAndHashCode; | 
				
			|||
 | 
				
			|||
/** | 
				
			|||
 * 人员类别分析 | 
				
			|||
 * | 
				
			|||
 * @author generator generator@elink-cn.com | 
				
			|||
 * @since v1.0.0 2022-01-17 | 
				
			|||
 */ | 
				
			|||
@Data | 
				
			|||
@EqualsAndHashCode(callSuper=false) | 
				
			|||
@TableName("fact_icuser_category_analysis_daily") | 
				
			|||
public class FactIcuserCategoryAnalysisDailyEntity extends BaseEpmetEntity { | 
				
			|||
 | 
				
			|||
	private static final long serialVersionUID = 1L; | 
				
			|||
 | 
				
			|||
    /** | 
				
			|||
     * 客户id | 
				
			|||
     */ | 
				
			|||
	private String customerId; | 
				
			|||
 | 
				
			|||
    /** | 
				
			|||
     * 预警配置ID | 
				
			|||
     */ | 
				
			|||
	private String configId; | 
				
			|||
 | 
				
			|||
    /** | 
				
			|||
     * 当前数据是截止到XXX的:yyyyMMdd | 
				
			|||
     */ | 
				
			|||
	private String dateId; | 
				
			|||
 | 
				
			|||
    /** | 
				
			|||
     * 网格id或者组织id | 
				
			|||
     */ | 
				
			|||
	private String orgId; | 
				
			|||
 | 
				
			|||
    /** | 
				
			|||
     * grid或者agency | 
				
			|||
     */ | 
				
			|||
	private String orgType; | 
				
			|||
 | 
				
			|||
    /** | 
				
			|||
     * orgid的上级 | 
				
			|||
     */ | 
				
			|||
	private String pid; | 
				
			|||
 | 
				
			|||
    /** | 
				
			|||
     * orgid的所有上级 | 
				
			|||
     */ | 
				
			|||
	private String pids; | 
				
			|||
 | 
				
			|||
    /** | 
				
			|||
     * 当前类别总人数 | 
				
			|||
     */ | 
				
			|||
	private Integer total; | 
				
			|||
 | 
				
			|||
    /** | 
				
			|||
     * 较上月迁出 | 
				
			|||
     */ | 
				
			|||
	private Integer qcIncr; | 
				
			|||
 | 
				
			|||
    /** | 
				
			|||
     * 较上月迁入 | 
				
			|||
     */ | 
				
			|||
	private Integer qrIncr; | 
				
			|||
 | 
				
			|||
} | 
				
			|||
@ -0,0 +1,22 @@ | 
				
			|||
package com.epmet.service.customize; | 
				
			|||
 | 
				
			|||
 | 
				
			|||
import com.epmet.dto.customize.IcResiCategoryConfigDTO; | 
				
			|||
 | 
				
			|||
import java.util.List; | 
				
			|||
 | 
				
			|||
/** | 
				
			|||
 * 居民类别配置表 | 
				
			|||
 * | 
				
			|||
 * @author generator generator@elink-cn.com | 
				
			|||
 * @since v1.0.0 2021-11-04 | 
				
			|||
 */ | 
				
			|||
public interface IcResiCategoryStatsConfigService { | 
				
			|||
 | 
				
			|||
    /** | 
				
			|||
     * 返回用于数据分析的列名+居民类别配置表的id | 
				
			|||
     * @param customerId | 
				
			|||
     * @return | 
				
			|||
     */ | 
				
			|||
    List<IcResiCategoryConfigDTO> queryDataColumn(String customerId); | 
				
			|||
} | 
				
			|||
@ -0,0 +1,40 @@ | 
				
			|||
package com.epmet.service.customize.impl; | 
				
			|||
 | 
				
			|||
import com.epmet.commons.dynamic.datasource.annotation.DataSource; | 
				
			|||
import com.epmet.constant.DataSourceConstant; | 
				
			|||
import com.epmet.dao.customize.IcResiCategoryStatsConfigDao; | 
				
			|||
import com.epmet.dto.customize.IcResiCategoryConfigDTO; | 
				
			|||
import com.epmet.service.customize.IcResiCategoryStatsConfigService; | 
				
			|||
import lombok.extern.slf4j.Slf4j; | 
				
			|||
import org.springframework.beans.factory.annotation.Autowired; | 
				
			|||
import org.springframework.stereotype.Service; | 
				
			|||
 | 
				
			|||
import java.util.List; | 
				
			|||
 | 
				
			|||
 | 
				
			|||
/** | 
				
			|||
 * 居民类别配置表 | 
				
			|||
 * | 
				
			|||
 * @author generator generator@elink-cn.com | 
				
			|||
 * @since v1.0.0 2021-11-04 | 
				
			|||
 */ | 
				
			|||
@Slf4j | 
				
			|||
@DataSource(DataSourceConstant.OPER_CUSTOMIZE) | 
				
			|||
@Service | 
				
			|||
public class IcResiCategoryStatsConfigServiceImpl implements IcResiCategoryStatsConfigService{ | 
				
			|||
 | 
				
			|||
    @Autowired | 
				
			|||
    private IcResiCategoryStatsConfigDao baseDao; | 
				
			|||
 | 
				
			|||
 | 
				
			|||
    /** | 
				
			|||
     * 返回用于数据分析的列名+居民类别配置表的id | 
				
			|||
     * | 
				
			|||
     * @param customerId | 
				
			|||
     * @return | 
				
			|||
     */ | 
				
			|||
    @Override | 
				
			|||
    public List<IcResiCategoryConfigDTO> queryDataColumn(String customerId) { | 
				
			|||
        return baseDao.queryDataColumn(customerId); | 
				
			|||
    } | 
				
			|||
} | 
				
			|||
@ -0,0 +1,20 @@ | 
				
			|||
package com.epmet.service.stats; | 
				
			|||
 | 
				
			|||
import com.epmet.commons.mybatis.service.BaseService; | 
				
			|||
import com.epmet.entity.stats.FactIcuserCategoryAnalysisDailyEntity; | 
				
			|||
 | 
				
			|||
/** | 
				
			|||
 * 人员类别分析 | 
				
			|||
 * | 
				
			|||
 * @author generator generator@elink-cn.com | 
				
			|||
 * @since v1.0.0 2022-01-17 | 
				
			|||
 */ | 
				
			|||
public interface FactIcuserCategoryAnalysisDailyService extends BaseService<FactIcuserCategoryAnalysisDailyEntity> { | 
				
			|||
    /** | 
				
			|||
     * 数字社区-基础信息-人员类别分析-每个类别的人员总数、较上月迁入迁出人数 | 
				
			|||
     * 网格 | 
				
			|||
     * @param customerId | 
				
			|||
     * @param dateId | 
				
			|||
     */ | 
				
			|||
    void statUserCategoryGridDaily(String customerId, String dateId); | 
				
			|||
} | 
				
			|||
@ -0,0 +1,153 @@ | 
				
			|||
package com.epmet.service.stats.impl; | 
				
			|||
 | 
				
			|||
import com.epmet.commons.dynamic.datasource.annotation.DataSource; | 
				
			|||
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; | 
				
			|||
import com.epmet.commons.tools.constant.NumConstant; | 
				
			|||
import com.epmet.commons.tools.enums.OrgTypeEnum; | 
				
			|||
import com.epmet.constant.DataSourceConstant; | 
				
			|||
import com.epmet.dao.stats.FactIcuserCategoryAnalysisDailyDao; | 
				
			|||
import com.epmet.dto.CustomerGridDTO; | 
				
			|||
import com.epmet.dto.customize.IcResiCategoryConfigDTO; | 
				
			|||
import com.epmet.dto.user.result.OrgIcUserTotalDTO; | 
				
			|||
import com.epmet.entity.stats.FactIcuserCategoryAnalysisDailyEntity; | 
				
			|||
import com.epmet.service.customize.IcResiCategoryStatsConfigService; | 
				
			|||
import com.epmet.service.evaluationindex.screen.ScreenCustomerAgencyService; | 
				
			|||
import com.epmet.service.evaluationindex.screen.ScreenCustomerGridService; | 
				
			|||
import com.epmet.service.stats.FactIcuserCategoryAnalysisDailyService; | 
				
			|||
import com.epmet.service.user.UserService; | 
				
			|||
import lombok.extern.slf4j.Slf4j; | 
				
			|||
import org.apache.commons.collections4.CollectionUtils; | 
				
			|||
import org.apache.commons.collections4.MapUtils; | 
				
			|||
import org.apache.commons.lang3.StringUtils; | 
				
			|||
import org.springframework.beans.factory.annotation.Autowired; | 
				
			|||
import org.springframework.stereotype.Service; | 
				
			|||
 | 
				
			|||
import java.util.ArrayList; | 
				
			|||
import java.util.List; | 
				
			|||
import java.util.Map; | 
				
			|||
import java.util.stream.Collectors; | 
				
			|||
 | 
				
			|||
/** | 
				
			|||
 * 人员类别分析 | 
				
			|||
 * | 
				
			|||
 * @author generator generator@elink-cn.com | 
				
			|||
 * @since v1.0.0 2022-01-17 | 
				
			|||
 */ | 
				
			|||
@Service | 
				
			|||
@Slf4j | 
				
			|||
@DataSource(DataSourceConstant.STATS) | 
				
			|||
public class FactIcuserCategoryAnalysisDailyServiceImpl extends BaseServiceImpl<FactIcuserCategoryAnalysisDailyDao, FactIcuserCategoryAnalysisDailyEntity> implements FactIcuserCategoryAnalysisDailyService { | 
				
			|||
 | 
				
			|||
    @Autowired | 
				
			|||
    private IcResiCategoryStatsConfigService icResiCategoryStatsConfigService; | 
				
			|||
    @Autowired | 
				
			|||
    private ScreenCustomerAgencyService agencyService; | 
				
			|||
    @Autowired | 
				
			|||
    private ScreenCustomerGridService gridService; | 
				
			|||
    @Autowired | 
				
			|||
    private  UserService userService; | 
				
			|||
    /** | 
				
			|||
     * 数字社区-基础信息-人员类别分析-每个类别的人员总数、较上月迁入迁出人数 | 
				
			|||
     * | 
				
			|||
     * @param customerId | 
				
			|||
     * @param dateId | 
				
			|||
     */ | 
				
			|||
    @Override | 
				
			|||
    public void statUserCategoryGridDaily(String customerId, String dateId) { | 
				
			|||
        //查询出所有用语数据分析的类别column_name,没有则不计算
 | 
				
			|||
        List<IcResiCategoryConfigDTO> columnList=icResiCategoryStatsConfigService.queryDataColumn(customerId); | 
				
			|||
        if(CollectionUtils.isEmpty(columnList)){ | 
				
			|||
            return; | 
				
			|||
        } | 
				
			|||
        // //所有网格和组织查询出来
 | 
				
			|||
        // List<CustomerAgencyDTO> agencyDTOList=agencyService.getByCustomerId(customerId);
 | 
				
			|||
        List<CustomerGridDTO> gridDTOList=gridService.getByCustomerId(customerId); | 
				
			|||
        //网格维度、组织维度初始好数据
 | 
				
			|||
        List<FactIcuserCategoryAnalysisDailyEntity> initList=constructInitValue(customerId,dateId,gridDTOList,columnList); | 
				
			|||
        if(CollectionUtils.isEmpty(initList)){ | 
				
			|||
            return; | 
				
			|||
        } | 
				
			|||
        // 批量插入数据
 | 
				
			|||
 | 
				
			|||
 | 
				
			|||
        //删除旧数据
 | 
				
			|||
        clearOldDatas(customerId,dateId,OrgTypeEnum.GRID.getCode()); | 
				
			|||
    } | 
				
			|||
 | 
				
			|||
    private void clearOldDatas(String customerId, String dateId,String orgType) { | 
				
			|||
        int deleteNum; | 
				
			|||
        do { | 
				
			|||
            //每次删除1000条
 | 
				
			|||
            deleteNum = baseDao.limitDelete(customerId,dateId,orgType); | 
				
			|||
        } while (deleteNum != NumConstant.ZERO); | 
				
			|||
    } | 
				
			|||
 | 
				
			|||
    /** | 
				
			|||
     * | 
				
			|||
     * @param customerId | 
				
			|||
     * @param dateId yyyyMMdd | 
				
			|||
     * @param gridDTOList 当前客户下所有的网格 | 
				
			|||
     * @param columnList 所有需要分析的类别对应的ic_resi_user的列名,目前只有18类 | 
				
			|||
     * @return | 
				
			|||
     */ | 
				
			|||
    private List<FactIcuserCategoryAnalysisDailyEntity> constructInitValue(String customerId,String dateId, List<CustomerGridDTO> gridDTOList,List<IcResiCategoryConfigDTO> columnList) { | 
				
			|||
        List<FactIcuserCategoryAnalysisDailyEntity> list=new ArrayList<>(); | 
				
			|||
        if(CollectionUtils.isEmpty(gridDTOList)){ | 
				
			|||
            //没有配置的类别,退出吧
 | 
				
			|||
            return list; | 
				
			|||
        } | 
				
			|||
 | 
				
			|||
        //1、total
 | 
				
			|||
        // 查询明细ic_user_change_detailed变更明细表,各个网格的各个分类的总人数
 | 
				
			|||
        Map<String, List<OrgIcUserTotalDTO>> totalMapList=userService.calGridIcUserTotal(customerId,dateId); | 
				
			|||
 | 
				
			|||
        String monthId=dateId.substring(NumConstant.ZERO,NumConstant.SIX); | 
				
			|||
        String startDate=monthId.concat("01"); | 
				
			|||
        String endDate=dateId; | 
				
			|||
 | 
				
			|||
        //2、迁入+30:eg:dateId:20211226,  [20211201,20211226],类别sum值=1的
 | 
				
			|||
        Map<String, List<OrgIcUserTotalDTO>> qrList=userService.calGridIcUserQr(customerId,dateId); | 
				
			|||
 | 
				
			|||
        //3、迁出 -10 :eg:dateId:20211226,  [20211201,20211226],类别sum值 !=1的
 | 
				
			|||
        Map<String, List<OrgIcUserTotalDTO>> qrList=userService.calGridIcUserQr(customerId,dateId); | 
				
			|||
 | 
				
			|||
        for(IcResiCategoryConfigDTO config:columnList){ | 
				
			|||
            gridDTOList.forEach(grid->{ | 
				
			|||
                FactIcuserCategoryAnalysisDailyEntity gridData=new FactIcuserCategoryAnalysisDailyEntity(); | 
				
			|||
                gridData.setCustomerId(customerId); | 
				
			|||
                gridData.setConfigId(config.getConfigId()); | 
				
			|||
                gridData.setDateId(dateId); | 
				
			|||
                gridData.setOrgId(grid.getId()); | 
				
			|||
                gridData.setOrgType(OrgTypeEnum.GRID.getCode()); | 
				
			|||
                gridData.setPid(StringUtils.isNotBlank(grid.getPid())?grid.getPid(): NumConstant.ZERO_STR); | 
				
			|||
                gridData.setPids(grid.getPids()); | 
				
			|||
 | 
				
			|||
                boolean zeroFlag=true; | 
				
			|||
                if(MapUtils.isNotEmpty(totalMapList)&&totalMapList.containsKey(grid.getId())){ | 
				
			|||
                    //当前网格下,有的类别
 | 
				
			|||
                    List<OrgIcUserTotalDTO> crrentGrid=totalMapList.get(grid.getId()); | 
				
			|||
                    if(CollectionUtils.isNotEmpty(crrentGrid)){ | 
				
			|||
                        //各个类别对应的数
 | 
				
			|||
                        Map<String,Integer> categoryTotalMap=crrentGrid.stream().collect(Collectors.toMap(OrgIcUserTotalDTO::getColumnName, OrgIcUserTotalDTO::getTotal, (key1, key2) -> key2)); | 
				
			|||
                        if(MapUtils.isNotEmpty(categoryTotalMap)&&categoryTotalMap.containsKey(config.getColumnName())){ | 
				
			|||
                            zeroFlag=false; | 
				
			|||
                            gridData.setTotal(categoryTotalMap.get(config.getColumnName())); | 
				
			|||
                        } | 
				
			|||
                    } | 
				
			|||
                } | 
				
			|||
                if(zeroFlag){ | 
				
			|||
                    gridData.setTotal(NumConstant.ZERO); | 
				
			|||
                } | 
				
			|||
                gridData.setQcIncr(NumConstant.ZERO); | 
				
			|||
                gridData.setQrIncr(NumConstant.ZERO); | 
				
			|||
                list.add(gridData); | 
				
			|||
            }); | 
				
			|||
        } | 
				
			|||
        return list; | 
				
			|||
    } | 
				
			|||
 | 
				
			|||
    public static void main(String[] args) { | 
				
			|||
        String dateId="20211225"; | 
				
			|||
        System.out.println(dateId.substring(0,6)); | 
				
			|||
    } | 
				
			|||
} | 
				
			|||
@ -0,0 +1,23 @@ | 
				
			|||
<?xml version="1.0" encoding="UTF-8"?> | 
				
			|||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | 
				
			|||
 | 
				
			|||
<mapper namespace="com.epmet.dao.customize.IcResiCategoryStatsConfigDao"> | 
				
			|||
 | 
				
			|||
    <select id="queryDataColumn" parameterType="java.lang.String" resultType="com.epmet.dto.customize.IcResiCategoryConfigDTO"> | 
				
			|||
        SELECT | 
				
			|||
            m.COLUMN_NAME as columnName, | 
				
			|||
            c.id as configId, | 
				
			|||
            m.LABEL as itemLabel | 
				
			|||
        FROM | 
				
			|||
            ic_form_item m | 
				
			|||
            INNER JOIN ic_resi_category_stats_config c ON ( m.CUSTOMER_ID = c.CUSTOMER_ID AND m.COLUMN_NAME = c.COLUMN_NAME AND c.DEL_FLAG = '0' ) | 
				
			|||
        WHERE | 
				
			|||
            m.DEL_FLAG = '0' | 
				
			|||
            AND m.DATA_ANALYSE = '1' | 
				
			|||
            AND m.CUSTOMER_ID = #{customerId} | 
				
			|||
        ORDER BY | 
				
			|||
            m.SORT ASC | 
				
			|||
    </select> | 
				
			|||
 | 
				
			|||
 | 
				
			|||
</mapper> | 
				
			|||
@ -0,0 +1,13 @@ | 
				
			|||
<?xml version="1.0" encoding="UTF-8"?> | 
				
			|||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | 
				
			|||
 | 
				
			|||
<mapper namespace="com.epmet.dao.stats.FactIcuserCategoryAnalysisDailyDao"> | 
				
			|||
 | 
				
			|||
    <delete id="limitDelete" parameterType="map"> | 
				
			|||
        delete from fact_icuser_category_analysis_daily | 
				
			|||
        where CUSTOMER_ID = #{customerId} | 
				
			|||
        and date_id=#{dateId} | 
				
			|||
        and org_type=#{orgType} | 
				
			|||
        limit 1000 | 
				
			|||
    </delete> | 
				
			|||
</mapper> | 
				
			|||
					Loading…
					
					
				
		Reference in new issue