224 changed files with 9498 additions and 528 deletions
@ -0,0 +1,7 @@ |
|||
INSERT INTO `epmet_admin`.`sys_dict_type` (`id`, `dict_type`, `dict_name`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('1483355574648180737', 'ic_user_change_type', '人员变动类型', '操作类型名称【add:新增 category:类别 in:迁入 out:迁出】', 17, 0, 0, '1', '2022-01-18 16:28:23', '1', '2022-01-18 16:28:42'); |
|||
|
|||
|
|||
INSERT INTO `epmet_admin`.`sys_dict_data` (`id`, `dict_type_id`, `dict_label`, `dict_value`, `dict_p_value`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('1483355968996642817', 1483355574648180737, '迁出', 'out', '0', '操作类型名称【add:新增 category:类别 in:迁入 out:迁出】', 4, 0, 0, '1', '2022-01-18 16:29:57', '1', '2022-01-18 16:29:57'); |
|||
INSERT INTO `epmet_admin`.`sys_dict_data` (`id`, `dict_type_id`, `dict_label`, `dict_value`, `dict_p_value`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('1483355899824181249', 1483355574648180737, '迁入', 'in', '0', '操作类型名称【add:新增 category:类别 in:迁入 out:迁出】', 3, 0, 0, '1', '2022-01-18 16:29:41', '1', '2022-01-18 16:29:41'); |
|||
INSERT INTO `epmet_admin`.`sys_dict_data` (`id`, `dict_type_id`, `dict_label`, `dict_value`, `dict_p_value`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('1483355832321052673', 1483355574648180737, '类别', 'category', '0', '操作类型名称【add:新增 category:类别 in:迁入 out:迁出】', 2, 0, 0, '1', '2022-01-18 16:29:25', '1', '2022-01-18 16:29:25'); |
|||
INSERT INTO `epmet_admin`.`sys_dict_data` (`id`, `dict_type_id`, `dict_label`, `dict_value`, `dict_p_value`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('1483355752541196290', 1483355574648180737, '新增', 'add', '0', '操作类型名称【add:新增 category:类别 in:迁入 out:迁出】', 1, 0, 0, '1', '2022-01-18 16:29:05', '1', '2022-01-18 16:29:05'); |
@ -0,0 +1,72 @@ |
|||
package com.epmet.commons.tools.enums; |
|||
|
|||
import com.epmet.commons.tools.exception.EpmetErrorCode; |
|||
|
|||
import java.util.Objects; |
|||
|
|||
/** |
|||
* @author Administrator |
|||
*/ |
|||
|
|||
public enum DateEnum { |
|||
/** |
|||
* 月份相关枚举 |
|||
*/ |
|||
JAN("01", "1月"), |
|||
FEB("02", "2月"), |
|||
MAR("03", "3月"), |
|||
APR("04", "4月"), |
|||
MAY("05", "5月"), |
|||
JUN("06", "6月"), |
|||
JUL("07", "7月"), |
|||
AUG("08", "8月"), |
|||
SEP("09", "9月"), |
|||
OCT("10", "10月"), |
|||
NOV("11", "11月"), |
|||
DEC("12", "12月"), |
|||
/** |
|||
* 季度相关枚举 |
|||
*/ |
|||
Q1("Q1", "第一季度"), |
|||
Q2("Q2", "第二季度"), |
|||
Q3("Q3", "第三季度"), |
|||
Q4("Q4", "第四季度"), |
|||
|
|||
|
|||
UN_KNOWN("0", "未知"); |
|||
|
|||
private String code; |
|||
private String name; |
|||
|
|||
|
|||
DateEnum(String code, String name) { |
|||
this.code = code; |
|||
this.name = name; |
|||
} |
|||
|
|||
public static String getName(String code) { |
|||
DateEnum[] dateEnums = values(); |
|||
for (DateEnum dateEnum : dateEnums) { |
|||
if (Objects.equals(dateEnum.getCode(), code)) { |
|||
return dateEnum.getName(); |
|||
} |
|||
} |
|||
return EpmetErrorCode.SERVER_ERROR.getMsg(); |
|||
} |
|||
|
|||
public String getCode() { |
|||
return code; |
|||
} |
|||
|
|||
public void setCode(String code) { |
|||
this.code = code; |
|||
} |
|||
|
|||
public String getName() { |
|||
return name; |
|||
} |
|||
|
|||
public void setName(String name) { |
|||
this.name = name; |
|||
} |
|||
} |
@ -0,0 +1,46 @@ |
|||
package com.epmet.commons.tools.enums; |
|||
|
|||
/** |
|||
* desc:数字社区平台-表单配置枚举类 |
|||
* |
|||
* @author jianjun liu |
|||
* @date 2020-07-03 11:14 |
|||
**/ |
|||
public enum IcFormCodeEnum { |
|||
/** |
|||
* 表单code枚举 |
|||
*/ |
|||
RESI_BASE_INFO("resi_base_info", "居民信息"), |
|||
|
|||
; |
|||
|
|||
private String code; |
|||
private String name; |
|||
|
|||
|
|||
|
|||
IcFormCodeEnum(String code, String name) { |
|||
this.code = code; |
|||
this.name = name; |
|||
} |
|||
|
|||
public static IcFormCodeEnum getEnum(String code) { |
|||
IcFormCodeEnum[] values = IcFormCodeEnum.values(); |
|||
for (IcFormCodeEnum value : values) { |
|||
if (value.getCode().equals(code)) { |
|||
return value; |
|||
} |
|||
} |
|||
return null; |
|||
} |
|||
|
|||
|
|||
public String getCode() { |
|||
return code; |
|||
} |
|||
|
|||
public String getName() { |
|||
return name; |
|||
} |
|||
|
|||
} |
@ -0,0 +1,110 @@ |
|||
package com.epmet.dataaggre.dto.epmetuser; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
import java.util.Date; |
|||
|
|||
|
|||
/** |
|||
* 人员类别分析 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2022-01-17 |
|||
*/ |
|||
@Data |
|||
public class FactIcuserCategoryAnalysisDailyDTO implements Serializable { |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键(人员类别分析表) |
|||
*/ |
|||
private String id; |
|||
|
|||
/** |
|||
* 客户id |
|||
*/ |
|||
private String customerId; |
|||
|
|||
/** |
|||
* 预警配置ID |
|||
*/ |
|||
private String configId; |
|||
|
|||
/** |
|||
* 类别列名,对个数据太麻烦了,在这个表存一下 |
|||
*/ |
|||
private String columnName; |
|||
|
|||
/** |
|||
* 当前数据是截止到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.未删除 1.已删除 |
|||
*/ |
|||
private Integer delFlag; |
|||
|
|||
/** |
|||
* 乐观锁 |
|||
*/ |
|||
private Integer revision; |
|||
|
|||
/** |
|||
* 创建人 |
|||
*/ |
|||
private String createdBy; |
|||
|
|||
/** |
|||
* 创建时间 |
|||
*/ |
|||
private Date createdTime; |
|||
|
|||
/** |
|||
* 更新人 |
|||
*/ |
|||
private String updatedBy; |
|||
|
|||
/** |
|||
* 更新时间 |
|||
*/ |
|||
private Date updatedTime; |
|||
|
|||
} |
@ -0,0 +1,37 @@ |
|||
package com.epmet.dataaggre.dto.epmetuser.form; |
|||
|
|||
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; |
|||
import lombok.Data; |
|||
import org.hibernate.validator.constraints.Length; |
|||
|
|||
import javax.validation.constraints.NotBlank; |
|||
import java.io.Serializable; |
|||
|
|||
/** |
|||
* 人员类别分析 入参 |
|||
*/ |
|||
@Data |
|||
public class IcUserCategoryFormDTO implements Serializable { |
|||
private static final long serialVersionUID = 2834180692632036316L; |
|||
|
|||
public interface AddUserInternalGroup { |
|||
} |
|||
|
|||
public interface AddUserShowGroup extends CustomerClientShowGroup { |
|||
} |
|||
|
|||
@NotBlank(message = "请选择查看某个组织或网格", groups = AddUserShowGroup.class) |
|||
private String orgId; |
|||
|
|||
@NotBlank(message = "orgType不能为空", groups = AddUserInternalGroup.class) |
|||
private String orgType; |
|||
|
|||
@NotBlank(message = "dateId不能为空", groups = AddUserInternalGroup.class) |
|||
@Length(min = 8, max = 8, message = "dateId格式:yyyyMMdd", groups = AddUserInternalGroup.class) |
|||
private String dateId; |
|||
|
|||
|
|||
@NotBlank(message = "customerId不能为空", groups = AddUserInternalGroup.class) |
|||
private String customerId; |
|||
|
|||
} |
@ -0,0 +1,50 @@ |
|||
package com.epmet.dataaggre.dto.epmetuser.result; |
|||
|
|||
|
|||
import lombok.AllArgsConstructor; |
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
|
|||
/** |
|||
* 人员类别分析-返参DTO |
|||
*/ |
|||
@Data |
|||
public class IcUserCategoryResultDTO implements Serializable { |
|||
private static final long serialVersionUID = -2150403803220667018L; |
|||
|
|||
/** |
|||
* 居民类别配置主键 |
|||
*/ |
|||
// @JsonIgnore
|
|||
private String configId; |
|||
/** |
|||
* 当前类别对应的列名 |
|||
*/ |
|||
private String categoryKey; |
|||
/** |
|||
* 类别名称 |
|||
*/ |
|||
private String categoryName; |
|||
/** |
|||
* 类别图标 |
|||
*/ |
|||
private String dataIcon; |
|||
|
|||
|
|||
|
|||
/** |
|||
* 当前类别下总人数 |
|||
*/ |
|||
private Integer total=0; |
|||
|
|||
/** |
|||
* 桥上月迁入 |
|||
*/ |
|||
private Integer immigration=0; |
|||
|
|||
/** |
|||
* 较上月迁出 |
|||
*/ |
|||
private Integer emigration=0; |
|||
} |
@ -0,0 +1,42 @@ |
|||
package com.epmet.dataaggre.controller; |
|||
|
|||
|
|||
import com.epmet.commons.tools.annotation.LoginUser; |
|||
import com.epmet.commons.tools.security.dto.TokenDto; |
|||
import com.epmet.commons.tools.utils.Result; |
|||
import com.epmet.commons.tools.validator.ValidatorUtils; |
|||
import com.epmet.dataaggre.dto.epmetuser.form.IcUserCategoryFormDTO; |
|||
import com.epmet.dataaggre.dto.epmetuser.result.IcUserCategoryResultDTO; |
|||
import com.epmet.dataaggre.service.epmetuser.EpmetUserService; |
|||
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.util.List; |
|||
|
|||
@RestController |
|||
@RequestMapping("icuser") |
|||
public class IcUserController { |
|||
|
|||
@Autowired |
|||
private EpmetUserService epmetUserService; |
|||
|
|||
|
|||
/** |
|||
* 【人员类别分析】-各类别人数 |
|||
* |
|||
* @param tokenDto |
|||
* @param formDTO |
|||
* @return |
|||
*/ |
|||
@PostMapping("category-data") |
|||
public Result<List<IcUserCategoryResultDTO>> queryIcUserCategoryData(@LoginUser TokenDto tokenDto, @RequestBody IcUserCategoryFormDTO formDTO) { |
|||
formDTO.setCustomerId(tokenDto.getCustomerId()); |
|||
ValidatorUtils.validateEntity(formDTO, IcUserCategoryFormDTO.AddUserShowGroup.class, IcUserCategoryFormDTO.AddUserInternalGroup.class); |
|||
return new Result<List<IcUserCategoryResultDTO>>().ok(epmetUserService.queryIcUserCategoryData(formDTO)); |
|||
} |
|||
|
|||
|
|||
} |
@ -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,74 @@ |
|||
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; |
|||
/** |
|||
* 类别列名,对个数据太麻烦了,在这个表存一下 |
|||
*/ |
|||
private String columnName; |
|||
/** |
|||
* 当前数据是截止到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,198 @@ |
|||
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.customize.IcResiCategoryConfigDTO; |
|||
import com.epmet.dto.user.result.OrgIcUserTotalDTO; |
|||
import com.epmet.entity.evaluationindex.screen.ScreenCustomerGridEntity; |
|||
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 com.google.common.collect.Lists; |
|||
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<ScreenCustomerGridEntity> gridDTOList = gridService.getByCustomerId(customerId); |
|||
if (CollectionUtils.isEmpty(gridDTOList)) { |
|||
return; |
|||
} |
|||
//网格维度、组织维度初始好数据
|
|||
List<FactIcuserCategoryAnalysisDailyEntity> initList = constructInitValue(customerId, dateId, gridDTOList, columnList); |
|||
if (CollectionUtils.isEmpty(initList)) { |
|||
return; |
|||
} |
|||
//当这3个数都为0的时候不插入数据库了
|
|||
List<FactIcuserCategoryAnalysisDailyEntity> insertList = initList.stream().filter(entity -> (null != entity.getTotal() && entity.getTotal() > 0) |
|||
|| (null != entity.getQcIncr() && entity.getQcIncr() > 0) |
|||
|| (null != entity.getQrIncr() && entity.getQrIncr() > 0)).collect(Collectors.toList()); |
|||
//删除旧数据
|
|||
clearOldDatas(customerId, dateId, OrgTypeEnum.GRID.getCode()); |
|||
// 批量插入数据
|
|||
Lists.partition(insertList, NumConstant.ONE_HUNDRED).forEach(list -> { |
|||
insertBatch(list); |
|||
}); |
|||
} |
|||
|
|||
/** |
|||
* 删除旧数据 |
|||
* |
|||
* @param customerId |
|||
* @param dateId |
|||
* @param orgType grid、agency |
|||
*/ |
|||
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<ScreenCustomerGridEntity> gridDTOList, List<IcResiCategoryConfigDTO> columnList) { |
|||
List<FactIcuserCategoryAnalysisDailyEntity> list = new ArrayList<>(); |
|||
|
|||
//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.calGridIcUserIncr(customerId, startDate, endDate, "qr"); |
|||
|
|||
//3、迁出 -10 :eg:dateId:20211226, [20211201,20211226],类别sum值 !=1的
|
|||
Map<String, List<OrgIcUserTotalDTO>> qcList = userService.calGridIcUserIncr(customerId, startDate, endDate, "qc"); |
|||
|
|||
for (IcResiCategoryConfigDTO config : columnList) { |
|||
gridDTOList.forEach(grid -> { |
|||
FactIcuserCategoryAnalysisDailyEntity gridData = new FactIcuserCategoryAnalysisDailyEntity(); |
|||
gridData.setCustomerId(customerId); |
|||
gridData.setConfigId(config.getConfigId()); |
|||
gridData.setColumnName(config.getColumnName()); |
|||
gridData.setDateId(dateId); |
|||
gridData.setOrgId(grid.getGridId()); |
|||
gridData.setOrgType(OrgTypeEnum.GRID.getCode()); |
|||
gridData.setPid(StringUtils.isNotBlank(grid.getParentAgencyId()) ? grid.getParentAgencyId() : NumConstant.ZERO_STR); |
|||
gridData.setPids(grid.getAllParentIds()); |
|||
|
|||
//截止到目前累计值
|
|||
boolean totalZeroFlag = true; |
|||
if (MapUtils.isNotEmpty(totalMapList) && totalMapList.containsKey(grid.getGridId())) { |
|||
//当前网格下,有的类别
|
|||
List<OrgIcUserTotalDTO> crrentGrid = totalMapList.get(grid.getGridId()); |
|||
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())) { |
|||
totalZeroFlag = false; |
|||
gridData.setTotal(categoryTotalMap.get(config.getColumnName())); |
|||
} |
|||
} |
|||
} |
|||
if (totalZeroFlag) { |
|||
gridData.setTotal(NumConstant.ZERO); |
|||
} |
|||
|
|||
//较上月迁入
|
|||
boolean incrZeroFlag = true; |
|||
if (MapUtils.isNotEmpty(qrList) && qrList.containsKey(grid.getGridId())) { |
|||
//当前网格下,有的类别
|
|||
List<OrgIcUserTotalDTO> crrentGrid = qrList.get(grid.getGridId()); |
|||
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())) { |
|||
incrZeroFlag = false; |
|||
gridData.setQrIncr(categoryTotalMap.get(config.getColumnName())); |
|||
} |
|||
} |
|||
} |
|||
if (incrZeroFlag) { |
|||
gridData.setQrIncr(NumConstant.ZERO); |
|||
} |
|||
|
|||
// 较上月迁出:
|
|||
boolean qcZeroFlag = true; |
|||
if (MapUtils.isNotEmpty(qcList) && qcList.containsKey(grid.getGridId())) { |
|||
//当前网格下,有的类别
|
|||
List<OrgIcUserTotalDTO> crrentGridQc = qcList.get(grid.getGridId()); |
|||
if (CollectionUtils.isNotEmpty(crrentGridQc)) { |
|||
//各个类别对应的数
|
|||
Map<String, Integer> categoryTotalMap = crrentGridQc.stream().collect(Collectors.toMap(OrgIcUserTotalDTO::getColumnName, OrgIcUserTotalDTO::getTotal, (key1, key2) -> key2)); |
|||
if (MapUtils.isNotEmpty(categoryTotalMap) && categoryTotalMap.containsKey(config.getColumnName())) { |
|||
qcZeroFlag = false; |
|||
gridData.setQcIncr(categoryTotalMap.get(config.getColumnName())); |
|||
} |
|||
} |
|||
} |
|||
if (qcZeroFlag) { |
|||
gridData.setQcIncr(NumConstant.ZERO); |
|||
} |
|||
|
|||
list.add(gridData); |
|||
}); |
|||
} |
|||
return list; |
|||
} |
|||
|
|||
|
|||
} |
@ -0,0 +1,21 @@ |
|||
CREATE TABLE `fact_icuser_category_analysis_daily` ( |
|||
`ID` varchar(32) NOT NULL COMMENT '主键(人员类别分析表)', |
|||
`CUSTOMER_ID` varchar(32) NOT NULL COMMENT '客户id', |
|||
`CONFIG_ID` varchar(64) NOT NULL COMMENT '预警配置ID', |
|||
`COLUMN_NAME` varchar(32) NOT NULL COMMENT '列名', |
|||
`DATE_ID` varchar(8) NOT NULL COMMENT '当前数据是截止到XXX的:yyyyMMdd', |
|||
`ORG_ID` varchar(32) NOT NULL COMMENT '网格id或者组织id', |
|||
`ORG_TYPE` varchar(10) NOT NULL COMMENT 'grid或者agency', |
|||
`PID` varchar(32) NOT NULL COMMENT 'orgid的上级', |
|||
`PIDS` varchar(255) NOT NULL COMMENT 'orgid的所有上级', |
|||
`TOTAL` int(11) NOT NULL COMMENT '当前类别总人数', |
|||
`QR_INCR` int(11) NOT NULL COMMENT '较上月迁入', |
|||
`QC_INCR` int(11) NOT NULL COMMENT '较上月迁出', |
|||
`DEL_FLAG` int(11) NOT NULL DEFAULT '0' COMMENT '删除标识 0.未删除 1.已删除', |
|||
`REVISION` int(11) NOT NULL COMMENT '乐观锁', |
|||
`CREATED_BY` varchar(64) NOT NULL COMMENT '创建人', |
|||
`CREATED_TIME` datetime NOT NULL COMMENT '创建时间', |
|||
`UPDATED_BY` varchar(64) NOT NULL COMMENT '更新人', |
|||
`UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', |
|||
PRIMARY KEY (`ID`) USING BTREE |
|||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='人员类别分析(目前只统计了网格)'; |
@ -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> |
@ -0,0 +1,115 @@ |
|||
package com.epmet.dto; |
|||
|
|||
import com.epmet.commons.tools.validator.group.AddGroup; |
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotNull; |
|||
import java.io.Serializable; |
|||
import java.util.Date; |
|||
|
|||
|
|||
/** |
|||
* 联建单位完成情况 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2022-01-17 |
|||
*/ |
|||
@Data |
|||
public class IcPartyUnitCompletionDTO implements Serializable { |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键 |
|||
*/ |
|||
private String id; |
|||
|
|||
/** |
|||
* 客户id |
|||
*/ |
|||
private String customerId; |
|||
|
|||
/** |
|||
* 组织ID |
|||
*/ |
|||
private String agencyId; |
|||
|
|||
/** |
|||
* |
|||
*/ |
|||
private String pids; |
|||
|
|||
/** |
|||
* 单位ID |
|||
*/ |
|||
@NotNull(message = "单位ID不能为空",groups = AddGroup.class) |
|||
private String unitId; |
|||
|
|||
/** |
|||
* 类型 monthly月度,quarter季度 |
|||
*/ |
|||
@NotNull(message = "类型不能为空",groups = AddGroup.class) |
|||
private String type; |
|||
|
|||
/** |
|||
* 评分 百分制 |
|||
*/ |
|||
@NotNull(message = "评分不能为空",groups = AddGroup.class) |
|||
private String score; |
|||
|
|||
/** |
|||
* 完成情况1已完成,0未完成 |
|||
*/ |
|||
@NotNull(message = "完成情况不能为空",groups = AddGroup.class) |
|||
private String status; |
|||
|
|||
/** |
|||
* 年份 |
|||
*/ |
|||
@NotNull(message = "年份不能为空",groups = AddGroup.class) |
|||
private String year; |
|||
|
|||
/** |
|||
* 月或季度 |
|||
*/ |
|||
@NotNull(message = "月或季度",groups = AddGroup.class) |
|||
private String monthQuarter; |
|||
|
|||
private String monthQuarterName; |
|||
|
|||
/** |
|||
* 时间 |
|||
*/ |
|||
private String recordDate; |
|||
|
|||
/** |
|||
* 删除标识 0未删除、1已删除 |
|||
*/ |
|||
private String delFlag; |
|||
|
|||
/** |
|||
* 乐观锁 |
|||
*/ |
|||
private Integer revision; |
|||
|
|||
/** |
|||
* 创建人 |
|||
*/ |
|||
private String createdBy; |
|||
|
|||
/** |
|||
* 创建时间 |
|||
*/ |
|||
private Date createdTime; |
|||
|
|||
/** |
|||
* 更新人 |
|||
*/ |
|||
private String updatedBy; |
|||
|
|||
/** |
|||
* 更新时间 |
|||
*/ |
|||
private Date updatedTime; |
|||
|
|||
} |
@ -0,0 +1,18 @@ |
|||
package com.epmet.dto.form; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
|
|||
/** |
|||
* @Description |
|||
* @Author zhaoqifeng |
|||
* @Date 2022/1/17 15:46 |
|||
*/ |
|||
@Data |
|||
public class CompletionFormDTO implements Serializable { |
|||
private static final long serialVersionUID = 4925867264241549310L; |
|||
private String unitId; |
|||
private Integer pageNo = 1; |
|||
private Integer pageSize = 10; |
|||
} |
@ -0,0 +1,40 @@ |
|||
package com.epmet.dto.form; |
|||
|
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
|||
import org.springframework.format.annotation.DateTimeFormat; |
|||
|
|||
import java.io.Serializable; |
|||
import java.util.Date; |
|||
|
|||
/** |
|||
* @Description |
|||
* @Author zhaoqifeng |
|||
* @Date 2022/1/18 9:34 |
|||
*/ |
|||
@NoArgsConstructor |
|||
@Data |
|||
public class PointRecordFormDTO implements Serializable { |
|||
private static final long serialVersionUID = -5200348821951188343L; |
|||
/** |
|||
* 服务方类型:社会组织:social_org;社区自组织:community_org;区域党建单位:party_unit |
|||
*/ |
|||
private String serviceType; |
|||
/** |
|||
* 服务方ID |
|||
*/ |
|||
private String serviceId; |
|||
/** |
|||
* 开始时间 |
|||
*/ |
|||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") |
|||
private Date startTime; |
|||
/** |
|||
* 结束时间 |
|||
*/ |
|||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") |
|||
private Date endTime; |
|||
private Integer pageNo = 1; |
|||
private Integer pageSize = 10; |
|||
private String customerId; |
|||
} |
@ -0,0 +1,33 @@ |
|||
package com.epmet.dto.form.demand; |
|||
|
|||
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; |
|||
import lombok.Data; |
|||
import org.hibernate.validator.constraints.Length; |
|||
|
|||
import javax.validation.constraints.NotBlank; |
|||
import javax.validation.constraints.NotNull; |
|||
import java.io.Serializable; |
|||
|
|||
/** |
|||
* 新增或者修改服务事项分类 |
|||
*/ |
|||
@Data |
|||
public class ServiceItemAddFormDTO implements Serializable { |
|||
public interface AddUserInternalGroup { |
|||
} |
|||
|
|||
public interface AddUserShowGroup extends CustomerClientShowGroup { |
|||
} |
|||
|
|||
@NotBlank(message = "customerId不能为空", groups = AddUserInternalGroup.class) |
|||
private String customerId; |
|||
|
|||
@NotBlank(message = "分类名称不能为空", groups = AddUserShowGroup.class) |
|||
@Length(max = 100, message = "分类名称至多输入100字", groups = AddUserShowGroup.class) |
|||
private String categoryName; |
|||
|
|||
@NotNull(message = "", groups = AddUserShowGroup.class) |
|||
private Integer awardPoint; |
|||
|
|||
private String categoryId; |
|||
} |
@ -0,0 +1,20 @@ |
|||
package com.epmet.dto.form.demand; |
|||
|
|||
import com.epmet.commons.tools.dto.form.PageFormDTO; |
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotBlank; |
|||
import java.io.Serializable; |
|||
|
|||
|
|||
/** |
|||
* 服务事项分类列表查询入参 |
|||
* 目前不分页 |
|||
*/ |
|||
@Data |
|||
public class ServiceItemPageFormDTO extends PageFormDTO implements Serializable { |
|||
public interface AddUserInternalGroup {} |
|||
|
|||
@NotBlank(message = "客户id不能为空",groups = AddUserInternalGroup.class) |
|||
private String customerId; |
|||
} |
@ -0,0 +1,24 @@ |
|||
package com.epmet.dto.form.demand; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotBlank; |
|||
import java.io.Serializable; |
|||
|
|||
|
|||
@Data |
|||
public class ServiceItemSelectFormDTO implements Serializable { |
|||
private static final long serialVersionUID = 1689002457565460495L; |
|||
|
|||
public interface AddUserInternalGroup { |
|||
} |
|||
/** |
|||
* all:查询全部 |
|||
* usable:可用的 |
|||
* 默认查询全部 |
|||
*/ |
|||
private String type; |
|||
|
|||
@NotBlank(message = "customerId不能为空", groups = AddUserInternalGroup.class) |
|||
private String customerId; |
|||
} |
@ -0,0 +1,44 @@ |
|||
package com.epmet.dto.result; |
|||
|
|||
import com.fasterxml.jackson.annotation.JsonIgnore; |
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
|||
|
|||
import java.io.Serializable; |
|||
|
|||
/** |
|||
* @Description |
|||
* @Author zhaoqifeng |
|||
* @Date 2022/1/18 9:30 |
|||
*/ |
|||
@NoArgsConstructor |
|||
@Data |
|||
public class PointRecordDTO implements Serializable { |
|||
private static final long serialVersionUID = 8562346042241117055L; |
|||
/** |
|||
* 需求类型 |
|||
*/ |
|||
@JsonIgnore |
|||
private String categoryCode; |
|||
private String categoryName; |
|||
/** |
|||
* 需求人 |
|||
*/ |
|||
private String demandUserName; |
|||
/** |
|||
* 需求内容 |
|||
*/ |
|||
private String content; |
|||
/** |
|||
* 发放积分时间 |
|||
*/ |
|||
private String pointTime; |
|||
/** |
|||
* 评价 |
|||
*/ |
|||
private String score; |
|||
/** |
|||
* 积分 |
|||
*/ |
|||
private String point; |
|||
} |
@ -0,0 +1,21 @@ |
|||
package com.epmet.dto.result; |
|||
|
|||
import com.epmet.commons.tools.page.PageData; |
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
|||
|
|||
import java.io.Serializable; |
|||
|
|||
/** |
|||
* @Description |
|||
* @Author zhaoqifeng |
|||
* @Date 2022/1/18 9:28 |
|||
*/ |
|||
@NoArgsConstructor |
|||
@Data |
|||
public class PointRecordResultDTO implements Serializable { |
|||
private static final long serialVersionUID = -2359756064125925616L; |
|||
private Integer totalPoint; |
|||
private PageData<PointRecordDTO> page; |
|||
|
|||
} |
@ -0,0 +1,17 @@ |
|||
package com.epmet.dto.result; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
|
|||
/** |
|||
* @Description |
|||
* @Author zhaoqifeng |
|||
* @Date 2022/1/21 15:47 |
|||
*/ |
|||
@Data |
|||
public class ServicePointDTO implements Serializable { |
|||
private static final long serialVersionUID = -1127819263685687151L; |
|||
private String serverId; |
|||
private Integer point; |
|||
} |
@ -0,0 +1,19 @@ |
|||
package com.epmet.dto.result.demand; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
|
|||
|
|||
/** |
|||
* 服务事项分类列表查询返参 |
|||
* 目前不分页 |
|||
*/ |
|||
@Data |
|||
public class ServiceItemResultDTO implements Serializable { |
|||
private static final long serialVersionUID = -590440160577071133L; |
|||
private String categoryId; |
|||
private String categoryName; |
|||
private Integer awardPoint; |
|||
private Boolean usableFlag; |
|||
} |
@ -0,0 +1,50 @@ |
|||
package com.epmet.controller; |
|||
|
|||
import com.epmet.commons.tools.page.PageData; |
|||
import com.epmet.commons.tools.utils.Result; |
|||
import com.epmet.commons.tools.validator.ValidatorUtils; |
|||
import com.epmet.commons.tools.validator.group.AddGroup; |
|||
import com.epmet.commons.tools.validator.group.DefaultGroup; |
|||
import com.epmet.dto.IcPartyUnitCompletionDTO; |
|||
import com.epmet.dto.form.CompletionFormDTO; |
|||
import com.epmet.service.IcPartyUnitCompletionService; |
|||
import org.apache.commons.lang3.StringUtils; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
|
|||
/** |
|||
* 联建单位完成情况 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2022-01-17 |
|||
*/ |
|||
@RestController |
|||
@RequestMapping("icpartyunitcompletion") |
|||
public class IcPartyUnitCompletionController { |
|||
|
|||
@Autowired |
|||
private IcPartyUnitCompletionService icPartyUnitCompletionService; |
|||
|
|||
@PostMapping("list") |
|||
public Result<PageData<IcPartyUnitCompletionDTO>> page(@RequestBody CompletionFormDTO formDTO){ |
|||
PageData<IcPartyUnitCompletionDTO> page = icPartyUnitCompletionService.page(formDTO); |
|||
return new Result<PageData<IcPartyUnitCompletionDTO>>().ok(page); |
|||
} |
|||
|
|||
@PostMapping("save") |
|||
public Result save(@RequestBody IcPartyUnitCompletionDTO dto){ |
|||
//效验数据
|
|||
if (StringUtils.isBlank(dto.getUnitId())) { |
|||
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); |
|||
} |
|||
icPartyUnitCompletionService.save(dto); |
|||
return new Result(); |
|||
} |
|||
|
|||
@PostMapping("delete") |
|||
public Result delete(@RequestBody IcPartyUnitCompletionDTO dto){ |
|||
icPartyUnitCompletionService.delete(dto.getId()); |
|||
return new Result(); |
|||
} |
|||
} |
@ -0,0 +1,88 @@ |
|||
package com.epmet.controller; |
|||
|
|||
|
|||
import com.epmet.commons.tools.annotation.LoginUser; |
|||
import com.epmet.commons.tools.page.PageData; |
|||
import com.epmet.commons.tools.security.dto.TokenDto; |
|||
import com.epmet.commons.tools.utils.Result; |
|||
import com.epmet.commons.tools.validator.ValidatorUtils; |
|||
import com.epmet.dto.form.demand.ServiceItemAddFormDTO; |
|||
import com.epmet.dto.form.demand.ServiceItemPageFormDTO; |
|||
import com.epmet.dto.form.demand.ServiceItemSelectFormDTO; |
|||
import com.epmet.dto.form.demand.StatusFormDTO; |
|||
import com.epmet.dto.result.demand.OptionDTO; |
|||
import com.epmet.dto.result.demand.ServiceItemResultDTO; |
|||
import com.epmet.service.IcServiceItemDictService; |
|||
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.util.List; |
|||
|
|||
/** |
|||
* 服务事项分类字典表 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2021-10-27 |
|||
*/ |
|||
@RestController |
|||
@RequestMapping("serviceitem") |
|||
public class IcServiceItemDictController { |
|||
|
|||
@Autowired |
|||
private IcServiceItemDictService icServiceItemDictService; |
|||
|
|||
|
|||
/** |
|||
* 01、分页列表查询 |
|||
* |
|||
* @param formDTO |
|||
* @return |
|||
*/ |
|||
@PostMapping("list") |
|||
public Result<PageData<ServiceItemResultDTO>> page(@RequestBody ServiceItemPageFormDTO formDTO){ |
|||
ValidatorUtils.validateEntity(formDTO,ServiceItemPageFormDTO.AddUserInternalGroup.class); |
|||
PageData<ServiceItemResultDTO> page = icServiceItemDictService.page(formDTO); |
|||
return new Result<PageData<ServiceItemResultDTO>>().ok(page); |
|||
} |
|||
|
|||
/** |
|||
* 02、新增分类 |
|||
* @param formDTO |
|||
* @return |
|||
*/ |
|||
@PostMapping("saveorupdate") |
|||
public Result addOrUpdate(@RequestBody ServiceItemAddFormDTO formDTO){ |
|||
ValidatorUtils.validateEntity(formDTO, ServiceItemAddFormDTO.AddUserShowGroup.class,ServiceItemAddFormDTO.AddUserInternalGroup.class); |
|||
icServiceItemDictService.addOrUpdate(formDTO); |
|||
return new Result(); |
|||
} |
|||
|
|||
/** |
|||
* 03、启用或者禁用分类 |
|||
* @param formDTO |
|||
* @return |
|||
*/ |
|||
@PostMapping("updatestatus") |
|||
public Result updateStatus(@LoginUser TokenDto tokenDto, @RequestBody StatusFormDTO formDTO){ |
|||
formDTO.setUserId(tokenDto.getUserId()); |
|||
ValidatorUtils.validateEntity(formDTO,StatusFormDTO.AddUserInternalGroup.class); |
|||
icServiceItemDictService.updateStatus(formDTO); |
|||
return new Result(); |
|||
} |
|||
|
|||
/** |
|||
* 新增联建单位,查询服务事项列表 |
|||
* |
|||
* @param tokenDto |
|||
* @return |
|||
*/ |
|||
@PostMapping("dict-list") |
|||
public Result<List<OptionDTO>> queryDictList(@LoginUser TokenDto tokenDto,@RequestBody ServiceItemSelectFormDTO formDTO){ |
|||
formDTO.setCustomerId(tokenDto.getCustomerId()); |
|||
ValidatorUtils.validateEntity(formDTO,ServiceItemSelectFormDTO.AddUserInternalGroup.class); |
|||
return new Result<List<OptionDTO>>().ok(icServiceItemDictService.queryDictListForSelect(formDTO)); |
|||
} |
|||
} |
@ -0,0 +1,16 @@ |
|||
package com.epmet.dao; |
|||
|
|||
import com.epmet.commons.mybatis.dao.BaseDao; |
|||
import com.epmet.entity.IcPartyUnitCompletionEntity; |
|||
import org.apache.ibatis.annotations.Mapper; |
|||
|
|||
/** |
|||
* 联建单位完成情况 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2022-01-17 |
|||
*/ |
|||
@Mapper |
|||
public interface IcPartyUnitCompletionDao extends BaseDao<IcPartyUnitCompletionEntity> { |
|||
|
|||
} |
@ -0,0 +1,39 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.dao; |
|||
|
|||
import com.epmet.commons.mybatis.dao.BaseDao; |
|||
import com.epmet.dto.result.demand.ServiceItemResultDTO; |
|||
import com.epmet.entity.IcServiceItemDictEntity; |
|||
import org.apache.ibatis.annotations.Mapper; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 服务事项分类字典表 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2022-01-14 |
|||
*/ |
|||
@Mapper |
|||
public interface IcServiceItemDictDao extends BaseDao<IcServiceItemDictEntity> { |
|||
|
|||
List<ServiceItemResultDTO> pageList(String customerId); |
|||
|
|||
IcServiceItemDictEntity selectMax(String customerId); |
|||
} |
@ -0,0 +1,71 @@ |
|||
package com.epmet.entity; |
|||
|
|||
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("ic_party_unit_completion") |
|||
public class IcPartyUnitCompletionEntity extends BaseEpmetEntity { |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 客户id |
|||
*/ |
|||
private String customerId; |
|||
|
|||
/** |
|||
* 组织ID |
|||
*/ |
|||
private String agencyId; |
|||
|
|||
/** |
|||
* |
|||
*/ |
|||
private String pids; |
|||
|
|||
/** |
|||
* 单位ID |
|||
*/ |
|||
private String unitId; |
|||
|
|||
/** |
|||
* 类型 monthly月度,quarter季度 |
|||
*/ |
|||
private String type; |
|||
|
|||
/** |
|||
* 评分 百分制 |
|||
*/ |
|||
private String score; |
|||
|
|||
/** |
|||
* 完成情况1已完成,0未完成 |
|||
*/ |
|||
private String status; |
|||
|
|||
/** |
|||
* 年份 |
|||
*/ |
|||
private String year; |
|||
|
|||
/** |
|||
* 月或季度 |
|||
*/ |
|||
private String monthQuarter; |
|||
|
|||
/** |
|||
* 时间 |
|||
*/ |
|||
private String recordDate; |
|||
|
|||
} |
@ -0,0 +1,83 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.entity; |
|||
|
|||
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-14 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper=false) |
|||
@TableName("ic_service_item_dict") |
|||
public class IcServiceItemDictEntity extends BaseEpmetEntity { |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 客户Id |
|||
*/ |
|||
private String customerId; |
|||
|
|||
/** |
|||
* 父级,一级默认为0 |
|||
*/ |
|||
private String parentCode; |
|||
|
|||
/** |
|||
* 分类编码 |
|||
*/ |
|||
private String categoryCode; |
|||
|
|||
/** |
|||
* 分类名称 |
|||
*/ |
|||
private String categoryName; |
|||
|
|||
/** |
|||
* 级别 |
|||
*/ |
|||
private Integer level; |
|||
|
|||
/** |
|||
* 备注 |
|||
*/ |
|||
private String remark; |
|||
|
|||
/** |
|||
* 排序 |
|||
*/ |
|||
private Integer sort; |
|||
|
|||
/** |
|||
* 1可用,0不可用 |
|||
*/ |
|||
private Boolean usableFlag; |
|||
|
|||
/** |
|||
* 奖励积分 |
|||
*/ |
|||
private Integer awardPoint; |
|||
|
|||
} |
@ -0,0 +1,46 @@ |
|||
package com.epmet.service; |
|||
|
|||
import com.epmet.commons.mybatis.service.BaseService; |
|||
import com.epmet.commons.tools.page.PageData; |
|||
import com.epmet.dto.IcPartyUnitCompletionDTO; |
|||
import com.epmet.dto.form.CompletionFormDTO; |
|||
import com.epmet.entity.IcPartyUnitCompletionEntity; |
|||
|
|||
/** |
|||
* 联建单位完成情况 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2022-01-17 |
|||
*/ |
|||
public interface IcPartyUnitCompletionService extends BaseService<IcPartyUnitCompletionEntity> { |
|||
|
|||
/** |
|||
* 默认分页 |
|||
* |
|||
* @param formDTO |
|||
* @return PageData<IcPartyUnitCompletionDTO> |
|||
* @author generator |
|||
* @date 2022-01-17 |
|||
*/ |
|||
PageData<IcPartyUnitCompletionDTO> page(CompletionFormDTO formDTO); |
|||
|
|||
/** |
|||
* 默认保存 |
|||
* |
|||
* @param dto |
|||
* @return void |
|||
* @author generator |
|||
* @date 2022-01-17 |
|||
*/ |
|||
void save(IcPartyUnitCompletionDTO dto); |
|||
|
|||
/** |
|||
* 删除 |
|||
* |
|||
* @param id |
|||
* @return void |
|||
* @author generator |
|||
* @date 2022-01-17 |
|||
*/ |
|||
void delete(String id); |
|||
} |
@ -0,0 +1,73 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.service; |
|||
|
|||
import com.epmet.commons.mybatis.service.BaseService; |
|||
import com.epmet.commons.tools.page.PageData; |
|||
import com.epmet.dto.form.demand.ServiceItemAddFormDTO; |
|||
import com.epmet.dto.form.demand.ServiceItemPageFormDTO; |
|||
import com.epmet.dto.form.demand.ServiceItemSelectFormDTO; |
|||
import com.epmet.dto.form.demand.StatusFormDTO; |
|||
import com.epmet.dto.result.demand.OptionDTO; |
|||
import com.epmet.dto.result.demand.ServiceItemResultDTO; |
|||
import com.epmet.entity.IcServiceItemDictEntity; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 服务事项分类字典表 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2022-01-14 |
|||
*/ |
|||
public interface IcServiceItemDictService extends BaseService<IcServiceItemDictEntity> { |
|||
|
|||
/** |
|||
* 01、列表查询 |
|||
* @param formDTO |
|||
* @return |
|||
*/ |
|||
PageData<ServiceItemResultDTO> page(ServiceItemPageFormDTO formDTO); |
|||
|
|||
/** |
|||
* 02、添加或者修改分类 |
|||
* @param formDTO |
|||
*/ |
|||
void addOrUpdate(ServiceItemAddFormDTO formDTO); |
|||
|
|||
/** |
|||
* 03、启用或者禁用分类 |
|||
* @param formDTO |
|||
* @return |
|||
*/ |
|||
void updateStatus(StatusFormDTO formDTO); |
|||
|
|||
/** |
|||
* 新增联建单位,查询服务事项列表 |
|||
* @param customerId |
|||
* @return |
|||
*/ |
|||
List<OptionDTO> queryDictList(String customerId); |
|||
|
|||
/** |
|||
* 前端调用此接口 |
|||
* @param formDTO |
|||
* @return |
|||
*/ |
|||
List<OptionDTO> queryDictListForSelect(ServiceItemSelectFormDTO formDTO); |
|||
} |
@ -0,0 +1,86 @@ |
|||
package com.epmet.service.impl; |
|||
|
|||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|||
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; |
|||
import com.epmet.commons.tools.constant.NumConstant; |
|||
import com.epmet.commons.tools.enums.DateEnum; |
|||
import com.epmet.commons.tools.page.PageData; |
|||
import com.epmet.commons.tools.utils.ConvertUtils; |
|||
import com.epmet.dao.IcPartyUnitCompletionDao; |
|||
import com.epmet.dto.IcPartyUnitCompletionDTO; |
|||
import com.epmet.dto.IcPartyUnitDTO; |
|||
import com.epmet.dto.form.CompletionFormDTO; |
|||
import com.epmet.entity.IcPartyUnitCompletionEntity; |
|||
import com.epmet.service.IcPartyUnitCompletionService; |
|||
import com.epmet.service.IcPartyUnitService; |
|||
import com.github.pagehelper.PageHelper; |
|||
import com.github.pagehelper.PageInfo; |
|||
import org.apache.commons.collections4.CollectionUtils; |
|||
import org.apache.commons.lang3.StringUtils; |
|||
import org.springframework.stereotype.Service; |
|||
import org.springframework.transaction.annotation.Transactional; |
|||
|
|||
import javax.annotation.Resource; |
|||
import java.util.Collections; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 联建单位完成情况 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2022-01-17 |
|||
*/ |
|||
@Service |
|||
public class IcPartyUnitCompletionServiceImpl extends BaseServiceImpl<IcPartyUnitCompletionDao, IcPartyUnitCompletionEntity> implements IcPartyUnitCompletionService { |
|||
|
|||
@Resource |
|||
private IcPartyUnitService icPartyUnitService; |
|||
|
|||
@Override |
|||
public PageData<IcPartyUnitCompletionDTO> page(CompletionFormDTO formDTO) { |
|||
if (StringUtils.isBlank(formDTO.getUnitId())) { |
|||
return new PageData<>(Collections.emptyList(), NumConstant.ZERO); |
|||
} |
|||
PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()); |
|||
LambdaQueryWrapper<IcPartyUnitCompletionEntity> wrapper = new LambdaQueryWrapper<>(); |
|||
wrapper.eq(IcPartyUnitCompletionEntity::getUnitId, formDTO.getUnitId()); |
|||
wrapper.orderByDesc(IcPartyUnitCompletionEntity::getCreatedTime); |
|||
List<IcPartyUnitCompletionEntity> list = baseDao.selectList(wrapper); |
|||
PageInfo<IcPartyUnitCompletionEntity> pageInfo = new PageInfo<>(list); |
|||
List<IcPartyUnitCompletionDTO> dtoList = ConvertUtils.sourceToTarget(list, IcPartyUnitCompletionDTO.class); |
|||
|
|||
if(CollectionUtils.isNotEmpty(dtoList)) { |
|||
dtoList.forEach(item -> { |
|||
item.setMonthQuarterName(DateEnum.getName(item.getMonthQuarter())); |
|||
}); |
|||
} |
|||
|
|||
return new PageData<>(dtoList, pageInfo.getTotal()); |
|||
} |
|||
|
|||
@Override |
|||
@Transactional(rollbackFor = Exception.class) |
|||
public void save(IcPartyUnitCompletionDTO dto) { |
|||
IcPartyUnitCompletionEntity entity = ConvertUtils.sourceToTarget(dto, IcPartyUnitCompletionEntity.class); |
|||
if (StringUtils.isNotBlank(dto.getYear()) && StringUtils.isNotBlank(dto.getMonthQuarter())) { |
|||
entity.setRecordDate(dto.getYear().concat(dto.getMonthQuarter())); |
|||
} |
|||
if(StringUtils.isBlank(dto.getId())) { |
|||
IcPartyUnitDTO unity = icPartyUnitService.get(dto.getUnitId()); |
|||
entity.setCustomerId(unity.getCustomerId()); |
|||
entity.setAgencyId(unity.getAgencyId()); |
|||
entity.setPids(unity.getPids()); |
|||
insert(entity); |
|||
} else { |
|||
updateById(entity); |
|||
} |
|||
} |
|||
|
|||
@Override |
|||
@Transactional(rollbackFor = Exception.class) |
|||
public void delete(String id) { |
|||
// 逻辑删除(@TableLogic 注解)
|
|||
baseDao.deleteById(id); |
|||
} |
|||
|
|||
} |
@ -0,0 +1,175 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.service.impl; |
|||
|
|||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
|||
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; |
|||
import com.epmet.commons.tools.constant.NumConstant; |
|||
import com.epmet.commons.tools.exception.EpmetErrorCode; |
|||
import com.epmet.commons.tools.exception.EpmetException; |
|||
import com.epmet.commons.tools.page.PageData; |
|||
import com.epmet.dao.IcServiceItemDictDao; |
|||
import com.epmet.dto.form.demand.ServiceItemAddFormDTO; |
|||
import com.epmet.dto.form.demand.ServiceItemPageFormDTO; |
|||
import com.epmet.dto.form.demand.ServiceItemSelectFormDTO; |
|||
import com.epmet.dto.form.demand.StatusFormDTO; |
|||
import com.epmet.dto.result.demand.OptionDTO; |
|||
import com.epmet.dto.result.demand.ServiceItemResultDTO; |
|||
import com.epmet.entity.IcServiceItemDictEntity; |
|||
import com.epmet.service.IcServiceItemDictService; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.apache.commons.collections4.CollectionUtils; |
|||
import org.apache.commons.lang3.StringUtils; |
|||
import org.springframework.stereotype.Service; |
|||
import org.springframework.transaction.annotation.Transactional; |
|||
|
|||
import java.util.ArrayList; |
|||
import java.util.Date; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 服务事项分类字典表 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2022-01-14 |
|||
*/ |
|||
@Slf4j |
|||
@Service |
|||
public class IcServiceItemDictServiceImpl extends BaseServiceImpl<IcServiceItemDictDao, IcServiceItemDictEntity> implements IcServiceItemDictService { |
|||
|
|||
|
|||
/** |
|||
* 列表查询 |
|||
* |
|||
* @param formDTO |
|||
* @return |
|||
*/ |
|||
@Override |
|||
public PageData<ServiceItemResultDTO> page(ServiceItemPageFormDTO formDTO) { |
|||
//目前不分页,只是接口支持分页
|
|||
List<ServiceItemResultDTO> list = baseDao.pageList(formDTO.getCustomerId()); |
|||
return new PageData<>(list, CollectionUtils.isNotEmpty(list) ? list.size() : NumConstant.ZERO); |
|||
} |
|||
|
|||
/** |
|||
* 02、添加或者修改分类 |
|||
* |
|||
* @param formDTO |
|||
*/ |
|||
@Transactional(rollbackFor = Exception.class) |
|||
@Override |
|||
public void addOrUpdate(ServiceItemAddFormDTO formDTO) { |
|||
formDTO.setCategoryName(formDTO.getCategoryName().trim()); |
|||
//分类名称是否唯一
|
|||
LambdaQueryWrapper<IcServiceItemDictEntity> nameQuery = new LambdaQueryWrapper<>(); |
|||
nameQuery.eq(IcServiceItemDictEntity::getCustomerId, formDTO.getCustomerId()) |
|||
.eq(IcServiceItemDictEntity::getCategoryName, formDTO.getCategoryName()) |
|||
.ne(StringUtils.isNotBlank(formDTO.getCategoryId()), IcServiceItemDictEntity::getId, formDTO.getCategoryId()); |
|||
if (baseDao.selectCount(nameQuery) > 0) { |
|||
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "当前客户下,分类名称已存在", "分类名称已存在"); |
|||
} |
|||
if (StringUtils.isNotBlank(formDTO.getCategoryId())) { |
|||
LambdaUpdateWrapper<IcServiceItemDictEntity> update = new LambdaUpdateWrapper<>(); |
|||
update.eq(IcServiceItemDictEntity::getId, formDTO.getCategoryId()); |
|||
update.set(IcServiceItemDictEntity::getCategoryName, formDTO.getCategoryName()) |
|||
.set(IcServiceItemDictEntity::getAwardPoint, formDTO.getAwardPoint()); |
|||
baseDao.update(null, update); |
|||
return; |
|||
} |
|||
//如果说当前查询的编码是1022,但是库里面1023已经存在且del_flag='0'。这个时候新增的编码为1023就会报错。
|
|||
IcServiceItemDictEntity max = baseDao.selectMax(formDTO.getCustomerId()); |
|||
// 获取编码
|
|||
IcServiceItemDictEntity insert = new IcServiceItemDictEntity(); |
|||
insert.setCustomerId(formDTO.getCustomerId()); |
|||
insert.setAwardPoint(formDTO.getAwardPoint()); |
|||
insert.setCategoryName(formDTO.getCategoryName()); |
|||
insert.setUsableFlag(true); |
|||
insert.setParentCode(NumConstant.ZERO_STR); |
|||
insert.setLevel(NumConstant.ONE); |
|||
insert.setSort(null != max ? max.getSort() + 1 : NumConstant.ONE); |
|||
insert.setCategoryCode(null != max ? String.valueOf(Integer.valueOf(max.getCategoryCode()) + 1) : "1001"); |
|||
baseDao.insert(insert); |
|||
} |
|||
|
|||
/** |
|||
* 03、启用或者禁用分类 |
|||
* |
|||
* @param formDTO |
|||
* @return |
|||
*/ |
|||
@Transactional(rollbackFor = Exception.class) |
|||
@Override |
|||
public void updateStatus(StatusFormDTO formDTO) { |
|||
LambdaUpdateWrapper<IcServiceItemDictEntity> update = new LambdaUpdateWrapper<>(); |
|||
update.eq(IcServiceItemDictEntity::getId, formDTO.getCategoryId()) |
|||
.set(IcServiceItemDictEntity::getUsableFlag, formDTO.getUsableFlag()) |
|||
.set(IcServiceItemDictEntity::getUpdatedTime, new Date()) |
|||
.set(IcServiceItemDictEntity::getUpdatedBy, formDTO.getUserId()); |
|||
baseDao.update(null, update); |
|||
} |
|||
|
|||
/** |
|||
* 新增联建单位,查询服务事项列表 |
|||
* |
|||
* @param customerId |
|||
* @return |
|||
*/ |
|||
@Override |
|||
public List<OptionDTO> queryDictList(String customerId) { |
|||
List<OptionDTO> resultList=new ArrayList<>(); |
|||
LambdaQueryWrapper<IcServiceItemDictEntity> query = new LambdaQueryWrapper<>(); |
|||
query.eq(IcServiceItemDictEntity::getCustomerId, customerId) |
|||
.orderByAsc(IcServiceItemDictEntity::getSort); |
|||
List<IcServiceItemDictEntity> list=baseDao.selectList(query); |
|||
for(IcServiceItemDictEntity entity:list){ |
|||
OptionDTO optionDTO=new OptionDTO(); |
|||
optionDTO.setLabel(entity.getCategoryName()); |
|||
optionDTO.setValue(entity.getCategoryCode()); |
|||
optionDTO.setAwardPoint(entity.getAwardPoint()); |
|||
resultList.add(optionDTO); |
|||
} |
|||
return resultList; |
|||
} |
|||
|
|||
/** |
|||
* 前端调用此接口 |
|||
* |
|||
* @param formDTO |
|||
* @return |
|||
*/ |
|||
@Override |
|||
public List<OptionDTO> queryDictListForSelect(ServiceItemSelectFormDTO formDTO) { |
|||
List<OptionDTO> resultList = new ArrayList<>(); |
|||
LambdaQueryWrapper<IcServiceItemDictEntity> query = new LambdaQueryWrapper<>(); |
|||
query.eq(IcServiceItemDictEntity::getCustomerId, formDTO.getCustomerId()) |
|||
.eq(StringUtils.isNotBlank(formDTO.getType()) && "usable".equals(formDTO.getType()), IcServiceItemDictEntity::getUsableFlag, true) |
|||
.orderByAsc(IcServiceItemDictEntity::getSort); |
|||
List<IcServiceItemDictEntity> list=baseDao.selectList(query); |
|||
for(IcServiceItemDictEntity entity:list){ |
|||
OptionDTO optionDTO=new OptionDTO(); |
|||
optionDTO.setLabel(entity.getCategoryName()); |
|||
optionDTO.setValue(entity.getCategoryCode()); |
|||
optionDTO.setAwardPoint(entity.getAwardPoint()); |
|||
resultList.add(optionDTO); |
|||
} |
|||
return resultList; |
|||
} |
|||
|
|||
|
|||
} |
@ -0,0 +1,49 @@ |
|||
-- 服务事项从需求分类字典表中抽离出来了,对应历史数据修改如下 |
|||
-- 1、联建单位的服务事项置空 |
|||
update ic_party_unit set SERVICE_MATTER =''; |
|||
-- 2、联建活动的服务事项修改为新的编码 |
|||
update ic_party_activity set SERVICE_MATTER='1006' where SERVICE_MATTER = '10100006'; |
|||
update ic_party_activity set SERVICE_MATTER='1008' where SERVICE_MATTER = '10100008'; |
|||
update ic_party_activity set SERVICE_MATTER='1002' where SERVICE_MATTER = '10100002'; |
|||
update ic_party_activity set SERVICE_MATTER='1009' where SERVICE_MATTER = '10100009'; |
|||
update ic_party_activity set SERVICE_MATTER='1017' where SERVICE_MATTER = '10100017'; |
|||
update ic_party_activity set SERVICE_MATTER='1021' where SERVICE_MATTER = '10100021'; |
|||
update ic_party_activity set SERVICE_MATTER='1015' where SERVICE_MATTER = '10100015'; |
|||
update ic_party_activity set SERVICE_MATTER='1011' where SERVICE_MATTER = '10100011'; |
|||
update ic_party_activity set SERVICE_MATTER='1018' where SERVICE_MATTER = '10100018'; |
|||
update ic_party_activity set SERVICE_MATTER='1005' where SERVICE_MATTER = '10100005'; |
|||
update ic_party_activity set SERVICE_MATTER='1010' where SERVICE_MATTER = '10100010'; |
|||
update ic_party_activity set SERVICE_MATTER='1003' where SERVICE_MATTER = '10100003'; |
|||
update ic_party_activity set SERVICE_MATTER='1020' where SERVICE_MATTER = '10100020'; |
|||
update ic_party_activity set SERVICE_MATTER='1022' where SERVICE_MATTER = '10100022'; |
|||
update ic_party_activity set SERVICE_MATTER='1014' where SERVICE_MATTER = '10100014'; |
|||
update ic_party_activity set SERVICE_MATTER='1007' where SERVICE_MATTER = '10100007'; |
|||
update ic_party_activity set SERVICE_MATTER='1001' where SERVICE_MATTER = '10100001'; |
|||
update ic_party_activity set SERVICE_MATTER='1004' where SERVICE_MATTER = '10100004'; |
|||
update ic_party_activity set SERVICE_MATTER='1016' where SERVICE_MATTER = '10100016'; |
|||
update ic_party_activity set SERVICE_MATTER='1013' where SERVICE_MATTER = '10100013'; |
|||
update ic_party_activity set SERVICE_MATTER='1012' where SERVICE_MATTER = '10100012'; |
|||
update ic_party_activity set SERVICE_MATTER='1019' where SERVICE_MATTER = '10100019'; |
|||
-- 3、爱心互助-活动类型为联建活动,对应的服务事项编码改为新的 |
|||
update act_info set SERVICE_MATTER='1006' where ACT_TYPE='party' and SERVICE_MATTER='10100006' ; |
|||
update act_info set SERVICE_MATTER='1008' where ACT_TYPE='party' and SERVICE_MATTER='10100008' ; |
|||
update act_info set SERVICE_MATTER='1002' where ACT_TYPE='party' and SERVICE_MATTER='10100002' ; |
|||
update act_info set SERVICE_MATTER='1009' where ACT_TYPE='party' and SERVICE_MATTER='10100009' ; |
|||
update act_info set SERVICE_MATTER='1017' where ACT_TYPE='party' and SERVICE_MATTER='10100017' ; |
|||
update act_info set SERVICE_MATTER='1021' where ACT_TYPE='party' and SERVICE_MATTER='10100021' ; |
|||
update act_info set SERVICE_MATTER='1015' where ACT_TYPE='party' and SERVICE_MATTER='10100015' ; |
|||
update act_info set SERVICE_MATTER='1011' where ACT_TYPE='party' and SERVICE_MATTER='10100011' ; |
|||
update act_info set SERVICE_MATTER='1018' where ACT_TYPE='party' and SERVICE_MATTER='10100018' ; |
|||
update act_info set SERVICE_MATTER='1005' where ACT_TYPE='party' and SERVICE_MATTER='10100005' ; |
|||
update act_info set SERVICE_MATTER='1010' where ACT_TYPE='party' and SERVICE_MATTER='10100010' ; |
|||
update act_info set SERVICE_MATTER='1003' where ACT_TYPE='party' and SERVICE_MATTER='10100003' ; |
|||
update act_info set SERVICE_MATTER='1020' where ACT_TYPE='party' and SERVICE_MATTER='10100020' ; |
|||
update act_info set SERVICE_MATTER='1022' where ACT_TYPE='party' and SERVICE_MATTER='10100022' ; |
|||
update act_info set SERVICE_MATTER='1014' where ACT_TYPE='party' and SERVICE_MATTER='10100014' ; |
|||
update act_info set SERVICE_MATTER='1007' where ACT_TYPE='party' and SERVICE_MATTER='10100007' ; |
|||
update act_info set SERVICE_MATTER='1001' where ACT_TYPE='party' and SERVICE_MATTER='10100001' ; |
|||
update act_info set SERVICE_MATTER='1004' where ACT_TYPE='party' and SERVICE_MATTER='10100004' ; |
|||
update act_info set SERVICE_MATTER='1016' where ACT_TYPE='party' and SERVICE_MATTER='10100016' ; |
|||
update act_info set SERVICE_MATTER='1013' where ACT_TYPE='party' and SERVICE_MATTER='10100013' ; |
|||
update act_info set SERVICE_MATTER='1012' where ACT_TYPE='party' and SERVICE_MATTER='10100012' ; |
|||
update act_info set SERVICE_MATTER='1019' where ACT_TYPE='party' and SERVICE_MATTER='10100019' ; |
@ -0,0 +1,117 @@ |
|||
CREATE TABLE `ic_service_item_dict` ( |
|||
`ID` varchar(64) NOT NULL COMMENT '主键', |
|||
`CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户Id', |
|||
`PARENT_CODE` varchar(32) NOT NULL COMMENT '父级,一级默认为0', |
|||
`CATEGORY_CODE` varchar(32) NOT NULL COMMENT '分类编码', |
|||
`CATEGORY_NAME` varchar(255) NOT NULL COMMENT '分类名称', |
|||
`LEVEL` int(11) NOT NULL COMMENT '级别', |
|||
`REMARK` varchar(255) DEFAULT NULL COMMENT '备注', |
|||
`SORT` int(10) unsigned NOT NULL COMMENT '排序', |
|||
`USABLE_FLAG` tinyint(1) NOT NULL DEFAULT '1' COMMENT '1可用,0不可用', |
|||
`AWARD_POINT` int(11) NOT NULL COMMENT '奖励积分', |
|||
`DEL_FLAG` int(11) NOT NULL COMMENT '删除标识:0.未删除 1.已删除', |
|||
`REVISION` int(11) NOT NULL COMMENT '乐观锁', |
|||
`CREATED_BY` varchar(32) NOT NULL COMMENT '创建人', |
|||
`CREATED_TIME` datetime NOT NULL COMMENT '创建时间', |
|||
`UPDATED_BY` varchar(32) NOT NULL COMMENT '更新人', |
|||
`UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', |
|||
PRIMARY KEY (`ID`) USING BTREE, |
|||
UNIQUE KEY `uk_dict_value` (`CATEGORY_CODE`,`CUSTOMER_ID`) USING BTREE |
|||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='服务事项分类字典表'; |
|||
|
|||
|
|||
INSERT INTO `epmet_heart`.`ic_service_item_dict` (`ID`, `CUSTOMER_ID`, `PARENT_CODE`, `CATEGORY_CODE`, `CATEGORY_NAME`, `LEVEL`, `REMARK`, `SORT`, `USABLE_FLAG`, `AWARD_POINT`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('1', 'default', '0', '1001', '积极配合社区安全巡查员进行场所消防、安全等方面的检查,并具备必须的安全意识及设备设施', 1, NULL, 1, 1, 10, 0, 0, 'APP_USER', '2022-01-13 14:37:12', 'APP_USER', '2022-01-13 14:37:12'); |
|||
INSERT INTO `epmet_heart`.`ic_service_item_dict` (`ID`, `CUSTOMER_ID`, `PARENT_CODE`, `CATEGORY_CODE`, `CATEGORY_NAME`, `LEVEL`, `REMARK`, `SORT`, `USABLE_FLAG`, `AWARD_POINT`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('2', 'default', '0', '1002', '积极参与社区举办的各类生产生活安全培训讲座等', 1, NULL, 2, 1, 10, 0, 0, 'APP_USER', '2022-01-13 14:37:12', 'APP_USER', '2022-01-13 14:37:12'); |
|||
INSERT INTO `epmet_heart`.`ic_service_item_dict` (`ID`, `CUSTOMER_ID`, `PARENT_CODE`, `CATEGORY_CODE`, `CATEGORY_NAME`, `LEVEL`, `REMARK`, `SORT`, `USABLE_FLAG`, `AWARD_POINT`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('3', 'default', '0', '1003', '定期开展内部自检自查,安全培训及演练,紧绷安全生产生活弦', 1, NULL, 3, 1, 10, 0, 0, 'APP_USER', '2022-01-13 14:37:12', 'APP_USER', '2022-01-13 14:37:12'); |
|||
INSERT INTO `epmet_heart`.`ic_service_item_dict` (`ID`, `CUSTOMER_ID`, `PARENT_CODE`, `CATEGORY_CODE`, `CATEGORY_NAME`, `LEVEL`, `REMARK`, `SORT`, `USABLE_FLAG`, `AWARD_POINT`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('4', 'default', '0', '1004', '社区困难群体生活帮扶', 1, NULL, 4, 1, 10, 0, 0, 'APP_USER', '2022-01-13 14:37:12', 'APP_USER', '2022-01-13 14:37:12'); |
|||
INSERT INTO `epmet_heart`.`ic_service_item_dict` (`ID`, `CUSTOMER_ID`, `PARENT_CODE`, `CATEGORY_CODE`, `CATEGORY_NAME`, `LEVEL`, `REMARK`, `SORT`, `USABLE_FLAG`, `AWARD_POINT`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('5', 'default', '0', '1005', '社区低保、伤残等困难家庭子女学习辅导', 1, NULL, 5, 1, 10, 0, 0, 'APP_USER', '2022-01-13 14:37:12', 'APP_USER', '2022-01-13 14:37:12'); |
|||
INSERT INTO `epmet_heart`.`ic_service_item_dict` (`ID`, `CUSTOMER_ID`, `PARENT_CODE`, `CATEGORY_CODE`, `CATEGORY_NAME`, `LEVEL`, `REMARK`, `SORT`, `USABLE_FLAG`, `AWARD_POINT`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('6', 'default', '0', '1006', '未成年人兴趣培养', 1, NULL, 6, 1, 10, 0, 0, 'APP_USER', '2022-01-13 14:37:12', 'APP_USER', '2022-01-13 14:37:12'); |
|||
INSERT INTO `epmet_heart`.`ic_service_item_dict` (`ID`, `CUSTOMER_ID`, `PARENT_CODE`, `CATEGORY_CODE`, `CATEGORY_NAME`, `LEVEL`, `REMARK`, `SORT`, `USABLE_FLAG`, `AWARD_POINT`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('7', 'default', '0', '1007', '楼道基础设施维护', 1, NULL, 7, 1, 10, 0, 0, 'APP_USER', '2022-01-13 14:37:12', 'APP_USER', '2022-01-13 14:37:12'); |
|||
INSERT INTO `epmet_heart`.`ic_service_item_dict` (`ID`, `CUSTOMER_ID`, `PARENT_CODE`, `CATEGORY_CODE`, `CATEGORY_NAME`, `LEVEL`, `REMARK`, `SORT`, `USABLE_FLAG`, `AWARD_POINT`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('8', 'default', '0', '1008', '健康知识专业讲座', 1, NULL, 8, 1, 10, 0, 0, 'APP_USER', '2022-01-13 14:37:12', 'APP_USER', '2022-01-13 14:37:12'); |
|||
INSERT INTO `epmet_heart`.`ic_service_item_dict` (`ID`, `CUSTOMER_ID`, `PARENT_CODE`, `CATEGORY_CODE`, `CATEGORY_NAME`, `LEVEL`, `REMARK`, `SORT`, `USABLE_FLAG`, `AWARD_POINT`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('9', 'default', '0', '1009', '老年人现代智能设备培训', 1, NULL, 9, 1, 10, 0, 0, 'APP_USER', '2022-01-13 14:37:12', 'APP_USER', '2022-01-13 14:37:12'); |
|||
INSERT INTO `epmet_heart`.`ic_service_item_dict` (`ID`, `CUSTOMER_ID`, `PARENT_CODE`, `CATEGORY_CODE`, `CATEGORY_NAME`, `LEVEL`, `REMARK`, `SORT`, `USABLE_FLAG`, `AWARD_POINT`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('10', 'default', '0', '1010', '空巢老人志愿帮扶', 1, NULL, 10, 1, 10, 0, 0, 'APP_USER', '2022-01-13 14:37:12', 'APP_USER', '2022-01-13 14:37:12'); |
|||
INSERT INTO `epmet_heart`.`ic_service_item_dict` (`ID`, `CUSTOMER_ID`, `PARENT_CODE`, `CATEGORY_CODE`, `CATEGORY_NAME`, `LEVEL`, `REMARK`, `SORT`, `USABLE_FLAG`, `AWARD_POINT`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('11', 'default', '0', '1011', '法律专业问题咨询', 1, NULL, 11, 1, 10, 0, 0, 'APP_USER', '2022-01-13 14:37:12', 'APP_USER', '2022-01-13 14:37:12'); |
|||
INSERT INTO `epmet_heart`.`ic_service_item_dict` (`ID`, `CUSTOMER_ID`, `PARENT_CODE`, `CATEGORY_CODE`, `CATEGORY_NAME`, `LEVEL`, `REMARK`, `SORT`, `USABLE_FLAG`, `AWARD_POINT`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('12', 'default', '0', '1012', '矛盾调解专业法律顾问', 1, NULL, 12, 1, 10, 0, 0, 'APP_USER', '2022-01-13 14:37:12', 'APP_USER', '2022-01-13 14:37:12'); |
|||
INSERT INTO `epmet_heart`.`ic_service_item_dict` (`ID`, `CUSTOMER_ID`, `PARENT_CODE`, `CATEGORY_CODE`, `CATEGORY_NAME`, `LEVEL`, `REMARK`, `SORT`, `USABLE_FLAG`, `AWARD_POINT`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('13', 'default', '0', '1013', '居民紧急自救、他救技能', 1, NULL, 13, 1, 10, 0, 0, 'APP_USER', '2022-01-13 14:37:12', 'APP_USER', '2022-01-13 14:37:12'); |
|||
INSERT INTO `epmet_heart`.`ic_service_item_dict` (`ID`, `CUSTOMER_ID`, `PARENT_CODE`, `CATEGORY_CODE`, `CATEGORY_NAME`, `LEVEL`, `REMARK`, `SORT`, `USABLE_FLAG`, `AWARD_POINT`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('14', 'default', '0', '1014', '少儿安全意识培养', 1, NULL, 14, 1, 10, 0, 0, 'APP_USER', '2022-01-13 14:37:12', 'APP_USER', '2022-01-13 14:37:12'); |
|||
INSERT INTO `epmet_heart`.`ic_service_item_dict` (`ID`, `CUSTOMER_ID`, `PARENT_CODE`, `CATEGORY_CODE`, `CATEGORY_NAME`, `LEVEL`, `REMARK`, `SORT`, `USABLE_FLAG`, `AWARD_POINT`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('15', 'default', '0', '1015', '文化队伍的培育和提升', 1, NULL, 15, 1, 10, 0, 0, 'APP_USER', '2022-01-13 14:37:12', 'APP_USER', '2022-01-13 14:37:12'); |
|||
INSERT INTO `epmet_heart`.`ic_service_item_dict` (`ID`, `CUSTOMER_ID`, `PARENT_CODE`, `CATEGORY_CODE`, `CATEGORY_NAME`, `LEVEL`, `REMARK`, `SORT`, `USABLE_FLAG`, `AWARD_POINT`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('16', 'default', '0', '1016', '老年群体的心理辅导', 1, NULL, 16, 1, 10, 0, 0, 'APP_USER', '2022-01-13 14:37:12', 'APP_USER', '2022-01-13 14:37:12'); |
|||
INSERT INTO `epmet_heart`.`ic_service_item_dict` (`ID`, `CUSTOMER_ID`, `PARENT_CODE`, `CATEGORY_CODE`, `CATEGORY_NAME`, `LEVEL`, `REMARK`, `SORT`, `USABLE_FLAG`, `AWARD_POINT`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('17', 'default', '0', '1017', '丰富多样的文体活动', 1, NULL, 17, 1, 10, 0, 0, 'APP_USER', '2022-01-13 14:37:12', 'APP_USER', '2022-01-13 14:37:12'); |
|||
INSERT INTO `epmet_heart`.`ic_service_item_dict` (`ID`, `CUSTOMER_ID`, `PARENT_CODE`, `CATEGORY_CODE`, `CATEGORY_NAME`, `LEVEL`, `REMARK`, `SORT`, `USABLE_FLAG`, `AWARD_POINT`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('18', 'default', '0', '1018', '失业人员技能培训', 1, NULL, 18, 1, 10, 0, 0, 'APP_USER', '2022-01-13 14:37:12', 'APP_USER', '2022-01-13 14:37:12'); |
|||
INSERT INTO `epmet_heart`.`ic_service_item_dict` (`ID`, `CUSTOMER_ID`, `PARENT_CODE`, `CATEGORY_CODE`, `CATEGORY_NAME`, `LEVEL`, `REMARK`, `SORT`, `USABLE_FLAG`, `AWARD_POINT`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('19', 'default', '0', '1019', '青年人文化活动的开展', 1, NULL, 19, 1, 10, 0, 0, 'APP_USER', '2022-01-13 14:37:12', 'APP_USER', '2022-01-13 14:37:12'); |
|||
INSERT INTO `epmet_heart`.`ic_service_item_dict` (`ID`, `CUSTOMER_ID`, `PARENT_CODE`, `CATEGORY_CODE`, `CATEGORY_NAME`, `LEVEL`, `REMARK`, `SORT`, `USABLE_FLAG`, `AWARD_POINT`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('20', 'default', '0', '1020', '亲子教育课堂', 1, NULL, 20, 1, 10, 0, 0, 'APP_USER', '2022-01-13 14:37:12', 'APP_USER', '2022-01-13 14:37:12'); |
|||
INSERT INTO `epmet_heart`.`ic_service_item_dict` (`ID`, `CUSTOMER_ID`, `PARENT_CODE`, `CATEGORY_CODE`, `CATEGORY_NAME`, `LEVEL`, `REMARK`, `SORT`, `USABLE_FLAG`, `AWARD_POINT`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('21', 'default', '0', '1021', '未成年人“家风”培育', 1, NULL, 21, 1, 10, 0, 0, 'APP_USER', '2022-01-13 14:37:12', 'APP_USER', '2022-01-13 14:37:12'); |
|||
INSERT INTO `epmet_heart`.`ic_service_item_dict` (`ID`, `CUSTOMER_ID`, `PARENT_CODE`, `CATEGORY_CODE`, `CATEGORY_NAME`, `LEVEL`, `REMARK`, `SORT`, `USABLE_FLAG`, `AWARD_POINT`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('22', 'default', '0', '1022', '和谐邻里活动开展', 1, NULL, 22, 1, 10, 0, 0, 'APP_USER', '2022-01-13 14:37:12', 'APP_USER', '2022-01-13 14:37:12'); |
|||
|
|||
|
|||
|
|||
-- 共建单位及九小场所共建 统一删除 |
|||
update ic_resi_demand_dict set DEL_FLAG='1',UPDATED_TIME=NOW(),REMARK="当前分类归属于服务事项分类" |
|||
where CATEGORY_CODE='1010' or PARENT_CODE='1010'; |
|||
|
|||
-- 居民积分统一从需求分类中移除 |
|||
-- 1、民生服务 |
|||
update ic_resi_demand_dict set DEL_FLAG='1',UPDATED_TIME=NOW(),REMARK="当前分类归属于居民积分" |
|||
where CATEGORY_CODE='1002' or PARENT_CODE='1002'; |
|||
-- 2、便民服务 |
|||
-- 2.1便民服务-参与日常矛盾调解并取得一定成效 |
|||
update ic_resi_demand_dict set DEL_FLAG='1',UPDATED_TIME=NOW(),REMARK="当前分类归属于居民积分" |
|||
where CATEGORY_CODE='10030001' or PARENT_CODE='10030001'; |
|||
-- 2.2便民服务-爱心敲门,自愿与社区高龄、独居、孤寡、残障等人员结对子,参与日常探望、帮扶 |
|||
update ic_resi_demand_dict set DEL_FLAG='1',UPDATED_TIME=NOW(),REMARK="当前分类归属于居民积分" |
|||
where CATEGORY_CODE='10030004' or PARENT_CODE='10030004'; |
|||
-- 2.3便民服务-收集反馈社区特殊群体(高龄、残障、独居等)生活需求,并协助社区共同落实解决。 |
|||
update ic_resi_demand_dict set DEL_FLAG='1',UPDATED_TIME=NOW(),REMARK="当前分类归属于居民积分" |
|||
where CATEGORY_CODE='10030005' or PARENT_CODE='10030005'; |
|||
-- 3、城市建设 |
|||
update ic_resi_demand_dict set DEL_FLAG='1',UPDATED_TIME=NOW(),REMARK="当前分类归属于居民积分" |
|||
where CATEGORY_CODE='1004' or PARENT_CODE='1004'; |
|||
-- 4、社区建设 |
|||
update ic_resi_demand_dict set DEL_FLAG='1',UPDATED_TIME=NOW(),REMARK="当前分类归属于居民积分" |
|||
where CATEGORY_CODE='1005' or PARENT_CODE='1005'; |
|||
-- 5、社区自治 |
|||
update ic_resi_demand_dict set DEL_FLAG='1',UPDATED_TIME=NOW(),REMARK="当前分类归属于居民积分" |
|||
where CATEGORY_CODE='1006' or PARENT_CODE='1006'; |
|||
-- 6、思想建设 |
|||
update ic_resi_demand_dict set DEL_FLAG='1',UPDATED_TIME=NOW(),REMARK="当前分类归属于居民积分" |
|||
where CATEGORY_CODE='1008' or PARENT_CODE='1008'; |
|||
-- 7、文化娱乐 |
|||
update ic_resi_demand_dict set DEL_FLAG='1',UPDATED_TIME=NOW(),REMARK="当前分类归属于居民积分" |
|||
where CATEGORY_CODE='1009' or PARENT_CODE='1009'; |
|||
-- 8、社会治安 |
|||
update ic_resi_demand_dict set DEL_FLAG='1',UPDATED_TIME=NOW(),REMARK="当前分类归属于居民积分" |
|||
where CATEGORY_CODE='1013' or PARENT_CODE='1013'; |
|||
-- 9、消防安全 |
|||
update ic_resi_demand_dict set DEL_FLAG='1',UPDATED_TIME=NOW(),REMARK="当前分类归属于居民积分" |
|||
where CATEGORY_CODE='1014' or PARENT_CODE='1014'; |
|||
-- 10、文化体育 |
|||
update ic_resi_demand_dict set DEL_FLAG='1',UPDATED_TIME=NOW(),REMARK="当前分类归属于居民积分" |
|||
where CATEGORY_CODE='1015' or PARENT_CODE='1015'; |
|||
-- 11、慈善募捐 |
|||
update ic_resi_demand_dict set DEL_FLAG='1',UPDATED_TIME=NOW(),REMARK="当前分类归属于居民积分" |
|||
where CATEGORY_CODE='1020' or PARENT_CODE='1020'; |
|||
-- 12、其他 |
|||
update ic_resi_demand_dict set DEL_FLAG='1',UPDATED_TIME=NOW(),REMARK="当前分类归属于居民积分" |
|||
where CATEGORY_CODE='1022' or PARENT_CODE='1022'; |
|||
|
|||
|
|||
|
|||
-- 删除需求记录、服务记录、评价记录 |
|||
update ic_user_demand_rec |
|||
set DEL_FLAG='1',UPDATED_TIME=NOW(),UPDATED_BY='删除分类' |
|||
where CATEGORY_CODE in ( |
|||
select distinct m.CATEGORY_CODE |
|||
from ic_resi_demand_dict m where m.DEL_FLAG='1' |
|||
and m.CUSTOMER_ID!='default' |
|||
); |
|||
update ic_user_demand_service set DEL_FLAG='1',UPDATED_TIME=NOW() |
|||
where DEMAND_REC_ID in( |
|||
select m.id from ic_user_demand_rec m where m.DEL_FLAG='1' |
|||
); |
|||
update ic_user_demand_satisfaction set DEL_FLAG='1',UPDATED_TIME=NOW() |
|||
WHERE DEMAND_REC_ID IN( |
|||
select m.id from ic_user_demand_rec m where m.DEL_FLAG='1' |
|||
); |
|||
|
|||
|
|||
|
@ -0,0 +1,22 @@ |
|||
CREATE TABLE `ic_party_unit_completion` |
|||
( |
|||
`ID` varchar(64) NOT NULL COMMENT '主键', |
|||
`CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户id', |
|||
`AGENCY_ID` varchar(64) NOT NULL COMMENT '组织ID', |
|||
`PIDS` varchar(255) NOT NULL, |
|||
`UNIT_ID` varchar(64) NOT NULL COMMENT '单位ID', |
|||
`TYPE` varchar(10) NOT NULL COMMENT '类型 monthly月度,quarter季度', |
|||
`SCORE` varchar(5) NOT NULL COMMENT '评分 百分制', |
|||
`STATUS` varchar(1) NOT NULL COMMENT '完成情况1已完成,0未完成', |
|||
`YEAR` varchar(4) NOT NULL COMMENT '年份', |
|||
`MONTH_QUARTER` varchar(4) NOT NULL COMMENT '月或季度', |
|||
`RECORD_DATE` varchar(12) NOT NULL COMMENT '时间', |
|||
`DEL_FLAG` varchar(1) NOT NULL DEFAULT '0' COMMENT '删除标识 0未删除、1已删除', |
|||
`REVISION` int(11) NOT NULL DEFAULT '0' COMMENT '乐观锁', |
|||
`CREATED_BY` varchar(32) NOT NULL COMMENT '创建人', |
|||
`CREATED_TIME` datetime NOT NULL COMMENT '创建时间', |
|||
`UPDATED_BY` varchar(32) NOT NULL COMMENT '更新人', |
|||
`UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', |
|||
PRIMARY KEY (`ID`) USING BTREE |
|||
) ENGINE = InnoDB |
|||
DEFAULT CHARSET = utf8mb4 COMMENT ='联建单位完成情况'; |
@ -0,0 +1,27 @@ |
|||
<?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.IcPartyUnitCompletionDao"> |
|||
|
|||
<resultMap type="com.epmet.entity.IcPartyUnitCompletionEntity" id="icPartyUnitCompletionMap"> |
|||
<result property="id" column="ID"/> |
|||
<result property="customerId" column="CUSTOMER_ID"/> |
|||
<result property="agencyId" column="AGENCY_ID"/> |
|||
<result property="pids" column="PIDS"/> |
|||
<result property="unitId" column="UNIT_ID"/> |
|||
<result property="type" column="TYPE"/> |
|||
<result property="score" column="SCORE"/> |
|||
<result property="status" column="STATUS"/> |
|||
<result property="year" column="YEAR"/> |
|||
<result property="monthQuarter" column="MONTH_QUARTER"/> |
|||
<result property="recordDate" column="RECORD_DATE"/> |
|||
<result property="delFlag" column="DEL_FLAG"/> |
|||
<result property="revision" column="REVISION"/> |
|||
<result property="createdBy" column="CREATED_BY"/> |
|||
<result property="createdTime" column="CREATED_TIME"/> |
|||
<result property="updatedBy" column="UPDATED_BY"/> |
|||
<result property="updatedTime" column="UPDATED_TIME"/> |
|||
</resultMap> |
|||
|
|||
|
|||
</mapper> |
@ -0,0 +1,34 @@ |
|||
<?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.IcServiceItemDictDao"> |
|||
|
|||
<select id="pageList" parameterType="java.lang.String" resultType="com.epmet.dto.result.demand.ServiceItemResultDTO"> |
|||
SELECT |
|||
d.id AS categoryId, |
|||
d.CATEGORY_NAME AS categoryName, |
|||
d.AWARD_POINT AS awardPoint, |
|||
d.USABLE_FLAG AS usableFlag |
|||
FROM |
|||
ic_service_item_dict d |
|||
WHERE |
|||
d.DEL_FLAG = '0' |
|||
AND d.CUSTOMER_ID = #{customerId} |
|||
ORDER BY |
|||
d.SORT DESC |
|||
</select> |
|||
|
|||
<select id="selectMax" parameterType="java.lang.String" resultType="com.epmet.entity.IcServiceItemDictEntity"> |
|||
SELECT |
|||
d.ID, |
|||
d.CATEGORY_CODE, |
|||
d.SORT |
|||
FROM |
|||
ic_service_item_dict d |
|||
WHERE |
|||
d.DEL_FLAG = '0' |
|||
AND d.CUSTOMER_ID = #{customerId} |
|||
order by CATEGORY_CODE desc |
|||
limit 1 |
|||
</select> |
|||
</mapper> |
Some files were not shown because too many files changed in this diff
Loading…
Reference in new issue