zxc 3 years ago
parent
commit
6ca58cc68b
  1. 10
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcEpidemicSpecialAttentionDTO.java
  2. 3
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/VaccinationListFormDTO.java
  3. 30
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/NatPieResultDTO.java
  4. 2
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/VaccinationListResultDTO.java
  5. 46
      epmet-user/epmet-user-client/src/main/java/com/epmet/enums/NatPieColorEnum.java
  6. 15
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcEpidemicSpecialAttentionController.java
  7. 6
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcEpidemicSpecialAttentionDao.java
  8. 10
      epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcEpidemicSpecialAttentionEntity.java
  9. 4
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcEpidemicSpecialAttentionService.java
  10. 91
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcEpidemicSpecialAttentionServiceImpl.java
  11. 3
      epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.69__alter_ic_epidemic_special_attention.sql
  12. 46
      epmet-user/epmet-user-server/src/main/resources/mapper/IcEpidemicSpecialAttentionDao.xml

10
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcEpidemicSpecialAttentionDTO.java

@ -55,6 +55,16 @@ public class IcEpidemicSpecialAttentionDTO implements Serializable {
*/
private Integer isAttention;
/**
* 是否历史关注1是0否
*/
private String isHistory;
/**
* 隔离类型,来自字典表
*/
private String isolatedState;
/**
* 关注类型核酸检测2疫苗接种1行程上报0
*/

3
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/VaccinationListFormDTO.java

@ -24,6 +24,9 @@ public class VaccinationListFormDTO extends PageFormDTO implements Serializable
@NotNull(message = "attentionType不能为空",groups = VaccinationListForm.class)
private Integer attentionType;
private String isolatedState;
private String isHistory;
/**
* 手机号
*/

30
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/NatPieResultDTO.java

@ -0,0 +1,30 @@
package com.epmet.dto.result;
import com.epmet.commons.tools.constant.NumConstant;
import lombok.Data;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/**
* @Author zxc
* @DateTime 2022/9/19 15:47
* @DESC
*/
@Data
public class NatPieResultDTO implements Serializable {
private static final long serialVersionUID = -1617454069928624020L;
private List<IsolatedList> isolatedList = new ArrayList<>();
private List<IsolatedList> historyList = new ArrayList<>();
@Data
public static class IsolatedList{
private Integer total = NumConstant.ZERO;
private String categoryCode;
private String categoryName;
private String color;
}
}

2
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/VaccinationListResultDTO.java

@ -102,7 +102,9 @@ public class VaccinationListResultDTO implements Serializable {
* 小区名+楼栋名+单元名+房屋名
*/
private String allName;
private String isolatedState;
private String id;
private String userId;
public VaccinationListResultDTO() {
this.vaccinationCount = NumConstant.ZERO;

46
epmet-user/epmet-user-client/src/main/java/com/epmet/enums/NatPieColorEnum.java

@ -0,0 +1,46 @@
package com.epmet.enums;
import com.epmet.commons.tools.constant.NumConstant;
import org.apache.commons.lang3.StringUtils;
/**
* @Author zxc
* @DateTime 2022/3/29 16:17
* @DESC
*/
public enum NatPieColorEnum {
REd("0","#ee6666"),
YELLOW("2","#fac858"),
ORANGE("1","#fc8452"),
GREEN("3","#91cc75"),
;
private String key;
private String value;
NatPieColorEnum(String key, String value) {
this.key = key;
this.value = value;
}
public static String getValueByKey(String key){
if (StringUtils.isBlank(key)){
return NumConstant.ZERO_STR;
}
for (NatPieColorEnum a : NatPieColorEnum.values()) {
if (a.getKey().equals(key)){
return a.getValue();
}
}
return NumConstant.ZERO_STR;
}
public String getKey() {
return key;
}
public String getValue() {
return value;
}
}

15
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcEpidemicSpecialAttentionController.java

@ -17,6 +17,7 @@ import com.epmet.constants.ImportTaskConstants;
import com.epmet.dto.IcEpidemicSpecialAttentionDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.ImportTaskCommonResultDTO;
import com.epmet.dto.result.NatPieResultDTO;
import com.epmet.dto.result.VaccinationListResultDTO;
import com.epmet.excel.NatExportExcel;
import com.epmet.excel.NatImportExcel;
@ -68,6 +69,15 @@ public class IcEpidemicSpecialAttentionController {
return new Result<PageData>().ok(icEpidemicSpecialAttentionService.vaccinationList(formDTO));
}
@PostMapping("historyList")
@MaskResponse(fieldNames = { "mobile", "idCard" }, fieldsMaskType = { MaskResponse.MASK_TYPE_MOBILE, MaskResponse.MASK_TYPE_ID_CARD })
public Result<PageData> historyList(@RequestBody VaccinationListFormDTO formDTO, @LoginUser TokenDto tokenDto){
ValidatorUtils.validateEntity(formDTO, PageFormDTO.AddUserInternalGroup.class, VaccinationListFormDTO.VaccinationListForm.class);
formDTO.setCustomerId(tokenDto.getCustomerId());
formDTO.setUserId(tokenDto.getUserId());
return new Result<PageData>().ok(icEpidemicSpecialAttentionService.historyList(formDTO));
}
/**
* Desc: 疫苗接种关注名单疫苗接种关注名单详情
* @param formDTO
@ -213,4 +223,9 @@ public class IcEpidemicSpecialAttentionController {
ExcelPoiUtils.exportExcel(templatePath ,map,fileName,response);
}
@PostMapping("pie")
public Result<NatPieResultDTO> pie(@LoginUser TokenDto tokenDto){
return new Result<NatPieResultDTO>().ok(icEpidemicSpecialAttentionService.pie(tokenDto));
}
}

6
epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcEpidemicSpecialAttentionDao.java

@ -3,6 +3,7 @@ package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.form.AttentionDetailFormDTO;
import com.epmet.dto.form.VaccinationListFormDTO;
import com.epmet.dto.result.NatPieResultDTO;
import com.epmet.dto.result.VaccinationListResultDTO;
import com.epmet.entity.IcEpidemicSpecialAttentionEntity;
import org.apache.ibatis.annotations.Mapper;
@ -51,6 +52,7 @@ public interface IcEpidemicSpecialAttentionDao extends BaseDao<IcEpidemicSpecial
* @date 2022/3/28 16:59
*/
void cancelAttention(@Param("list")List<String> list,@Param("attentionType")Integer attentionType);
void addAttention(@Param("list")List<String> list,@Param("attentionType")Integer attentionType);
/**
* Desc: 查询已经存在的关注
@ -69,4 +71,8 @@ public interface IcEpidemicSpecialAttentionDao extends BaseDao<IcEpidemicSpecial
* @return
*/
List<String> getIdCardList(@Param("customerId") String customerId,@Param("idCardSet") List<String> idCardSet, @Param("attentionType") Integer attentionType);
List<NatPieResultDTO.IsolatedList> isolatedList(@Param("agencyId")String agencyId);
Integer getHistoryCount(@Param("agencyId")String agencyId);
}

10
epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcEpidemicSpecialAttentionEntity.java

@ -43,6 +43,16 @@ public class IcEpidemicSpecialAttentionEntity extends BaseEpmetEntity {
*/
private Integer isAttention;
/**
* 是否历史关注1是0否
*/
private String isHistory;
/**
* 隔离类型,来自字典表
*/
private String isolatedState;
/**
* 关注类型核酸检测2疫苗接种1行程上报0
*/

4
epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcEpidemicSpecialAttentionService.java

@ -8,6 +8,7 @@ import com.epmet.dto.form.AttentionDetailFormDTO;
import com.epmet.dto.form.CancelAttentionPackageFormDTO;
import com.epmet.dto.form.VaccinationAddFormDTO;
import com.epmet.dto.form.VaccinationListFormDTO;
import com.epmet.dto.result.NatPieResultDTO;
import com.epmet.dto.result.VaccinationListResultDTO;
import com.epmet.entity.IcEpidemicSpecialAttentionEntity;
@ -90,6 +91,7 @@ public interface IcEpidemicSpecialAttentionService extends BaseService<IcEpidemi
* @date 2022/3/28 10:29
*/
PageData vaccinationList(VaccinationListFormDTO formDTO);
PageData historyList(VaccinationListFormDTO formDTO);
/**
@ -140,4 +142,6 @@ public interface IcEpidemicSpecialAttentionService extends BaseService<IcEpidemi
* @date 2022/4/27 15:33
*/
VaccinationListResultDTO detail(AttentionDetailFormDTO formDTO);
NatPieResultDTO pie(TokenDto tokenDto);
}

91
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcEpidemicSpecialAttentionServiceImpl.java

@ -22,14 +22,18 @@ import com.epmet.commons.tools.utils.Result;
import com.epmet.constants.ImportTaskConstants;
import com.epmet.dao.IcEpidemicSpecialAttentionDao;
import com.epmet.dto.IcEpidemicSpecialAttentionDTO;
import com.epmet.dto.SysDictDataDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.HouseInfoDTO;
import com.epmet.dto.result.NatPieResultDTO;
import com.epmet.dto.result.UploadImgResultDTO;
import com.epmet.dto.result.VaccinationListResultDTO;
import com.epmet.entity.IcEpidemicSpecialAttentionEntity;
import com.epmet.enums.ChannelEnum;
import com.epmet.enums.NatPieColorEnum;
import com.epmet.excel.ImportEpidemicSpecialAttention;
import com.epmet.excel.error.EpidemicSpecialAttentionErrorModel;
import com.epmet.feign.EpmetAdminOpenFeignClient;
import com.epmet.feign.EpmetCommonServiceOpenFeignClient;
import com.epmet.feign.GovOrgOpenFeignClient;
import com.epmet.feign.OssFeignClient;
@ -76,6 +80,8 @@ public class IcEpidemicSpecialAttentionServiceImpl extends BaseServiceImpl<IcEpi
private IcNoticeService noticeService;
@Autowired
private GovOrgOpenFeignClient govOrgOpenFeignClient;
@Autowired
private EpmetAdminOpenFeignClient epmetAdminOpenFeignClient;
@Override
public PageData<IcEpidemicSpecialAttentionDTO> page(Map<String, Object> params) {
@ -195,6 +201,54 @@ public class IcEpidemicSpecialAttentionServiceImpl extends BaseServiceImpl<IcEpi
return result;
}
@Override
public PageData historyList(VaccinationListFormDTO formDTO) {
PageData<VaccinationListResultDTO> result = new PageData(new ArrayList(), NumConstant.ZERO_L);
CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getUserId());
if (null == staffInfo){
throw new EpmetException("未查询到工作人员信息"+formDTO.getUserId());
}
formDTO.setOrgId(staffInfo.getAgencyId());
formDTO.setIsHistory(NumConstant.ONE_STR);
if (formDTO.getIsPage()){
PageInfo<VaccinationListResultDTO> pageInfo = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()).doSelectPageInfo(() -> baseDao.natList(formDTO));
result.setList(pageInfo.getList());
result.setTotal(Integer.valueOf(String.valueOf(pageInfo.getTotal())));
}else {
List<VaccinationListResultDTO> list = baseDao.natList(formDTO);
result.setList(list);
result.setTotal(list.size());
}
if (CollectionUtils.isNotEmpty(result.getList())){
result.getList().forEach(v -> {
v.setSex();
});
}
//需求调整 列表和导出增加所属房屋(小区+楼栋+单元+房间)一列值 sun
Map<String, HouseInfoDTO> houseInfoMap = new HashMap<>();
//查询房屋信息
if (result.getList().size() > NumConstant.ZERO) {
Set<String> houseIds = result.getList().stream().filter(l -> StringUtils.isNotBlank(l.getHomeId())).map(m -> m.getHomeId()).collect(Collectors.toSet());
Result<List<HouseInfoDTO>> houseInfoRes = govOrgOpenFeignClient.queryListHouseInfo(houseIds, formDTO.getCustomerId());
List<HouseInfoDTO> houseInfoDTOList = houseInfoRes.success() && !CollectionUtils.isEmpty(houseInfoRes.getData()) ? houseInfoRes.getData() : new ArrayList<>();
houseInfoMap = houseInfoDTOList.stream().collect(Collectors.toMap(HouseInfoDTO::getHomeId, Function.identity()));
}
int i = (formDTO.getPageNo() - NumConstant.ONE) * formDTO.getPageSize();
for (VaccinationListResultDTO v : result.getList()) {
i += 1;
v.setSort(i);
if (null != houseInfoMap && houseInfoMap.containsKey(v.getHomeId())) {
v.setVillageName(houseInfoMap.get(v.getHomeId()).getNeighborHoodName());
v.setBuildName(houseInfoMap.get(v.getHomeId()).getBuildingName());
v.setUnitName(houseInfoMap.get(v.getHomeId()).getUnitName());
v.setHomeName(houseInfoMap.get(v.getHomeId()).getDoorName());
v.setAllName(houseInfoMap.get(v.getHomeId()).getAllName());
}
}
return result;
}
/**
* Desc:疫苗接种关注名单核酸检测关注名单新增
* @param formDTO
@ -226,12 +280,14 @@ public class IcEpidemicSpecialAttentionServiceImpl extends BaseServiceImpl<IcEpi
}
}
}
baseDao.addAttention(idCards,attentionType);
entities.forEach(e -> {
e.setIsAttention(NumConstant.ONE);
e.setOrgId(agencyInfo.getId());
e.setPid(agencyInfo.getPid());
e.setPids(agencyInfo.getPids());
e.setCustomerId(formDTO.getCustomerId());
e.setIsHistory(NumConstant.ZERO_STR);
if (e.getAttentionType().equals(NumConstant.TWO)){
e.setReason("有重点区域行程");
}
@ -482,6 +538,41 @@ public class IcEpidemicSpecialAttentionServiceImpl extends BaseServiceImpl<IcEpi
return baseDao.nat(formDTO);
}
@Override
public NatPieResultDTO pie(TokenDto tokenDto) {
CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(tokenDto.getCustomerId(), tokenDto.getUserId());
if (null == staffInfo){
throw new EpmetException("未查询到工作人员信息"+tokenDto.getUserId());
}
NatPieResultDTO result = new NatPieResultDTO();
Result<List<SysDictDataDTO>> isolatedState = epmetAdminOpenFeignClient.dictDataList("isolatedState");
if (!isolatedState.success()){
throw new EpmetException("查询字典表数据失败..."+"isolatedState");
}
List<SysDictDataDTO> data = isolatedState.getData();
if (CollectionUtils.isEmpty(data)){
return result;
}
List<NatPieResultDTO.IsolatedList> conResult = new ArrayList<>();
data.forEach(d -> {
NatPieResultDTO.IsolatedList dto = new NatPieResultDTO.IsolatedList();
dto.setCategoryCode(d.getDictValue());
dto.setCategoryName(d.getDictLabel());
dto.setColor(NatPieColorEnum.getValueByKey(d.getDictValue()));
conResult.add(dto);
});
List<NatPieResultDTO.IsolatedList> isolatedLists = baseDao.isolatedList(staffInfo.getAgencyId());
conResult.forEach(c -> isolatedLists.stream().filter(i -> i.getCategoryCode().equals(c.getCategoryCode())).forEach(i -> c.setTotal(i.getTotal())));
NatPieResultDTO.IsolatedList dto = new NatPieResultDTO.IsolatedList();
dto.setCategoryCode("");
dto.setCategoryName("历史关注人数");
dto.setColor(NatPieColorEnum.getValueByKey(NumConstant.THREE_STR));
dto.setTotal(baseDao.getHistoryCount(staffInfo.getAgencyId()));
result.setIsolatedList(conResult);
result.setHistoryList(Arrays.asList(dto));
return result;
}
/**
* Desc: 文件上传并返回url
* @param errorRows

3
epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.69__alter_ic_epidemic_special_attention.sql

@ -1,4 +1,3 @@
ALTER TABLE ic_epidemic_special_attention ADD COLUMN IS_HISTORY tinyint not null DEFAULT '0' COMMENT '是否历史关注,1是0否' AFTER ATTENTION_TYPE;
ALTER TABLE ic_epidemic_special_attention ADD COLUMN ISOLATED_TYPE VARCHAR(10) COMMENT '隔离类型,来自字典表' AFTER IS_HISTORY;
ALTER TABLE ic_epidemic_special_attention ADD COLUMN ISOLATED_DAY INT(10) COMMENT '隔离天数' AFTER ISOLATED_TYPE;
ALTER TABLE ic_epidemic_special_attention ADD COLUMN ISOLATED_STATE VARCHAR(20) COMMENT '隔离类型,来自字典表' AFTER IS_HISTORY;

46
epmet-user/epmet-user-server/src/main/resources/mapper/IcEpidemicSpecialAttentionDao.xml

@ -8,7 +8,7 @@
UPDATE ic_epidemic_special_attention
SET UPDATED_TIME = NOW(),
IS_ATTENTION = 0,
del_flag = 1
IS_HISTORY = '1'
WHERE del_flag = 0
AND attention_type = #{attentionType}
AND id IN (
@ -18,6 +18,19 @@
)
</update>
<update id="addAttention">
UPDATE ic_epidemic_special_attention
SET UPDATED_TIME = NOW(),
IS_ATTENTION = 1
WHERE del_flag = 0
AND attention_type = #{attentionType}
AND id_card IN (
<foreach collection="list" item="l" separator=",">
#{l}
</foreach>
)
</update>
<!-- 疫苗接种关注名单 -->
<select id="vaccinationList" resultType="com.epmet.dto.result.VaccinationListResultDTO">
SELECT a.id,
@ -83,12 +96,19 @@
b.BUILD_ID,
b.UNIT_ID,
b.HOME_ID,
b.id as userId,
IFNULL((SELECT DATE_FORMAT(CREATED_TIME,'%Y-%m-%d %H:%i:%s') FROM ic_notice WHERE DEL_FLAG = '0' AND ORIGIN = #{attentionType} AND ID_CARD = a.ID_CARD ORDER BY CREATED_TIME DESC LIMIT 1),'') AS lastInformTime
FROM ic_epidemic_special_attention a
LEFT JOIN ic_resi_user b ON a.id_card = b.id_card AND b.del_flag = '0' and a.CUSTOMER_ID = b.CUSTOMER_ID
WHERE a.DEL_FLAG = 0
AND concat(a.pids,':',ORG_ID) like concat('%',#{orgId},'%')
AND a.ATTENTION_TYPE = #{attentionType}
<if test='null != isolatedState and "" != isolatedState'>
AND a.isolatedState = #{isolatedState}
</if>
<if test='null != isHistory and "" != isHistory'>
AND a.is_history = 1
</if>
<if test='null != name and "" != name'>
AND a.`NAME` LIKE CONCAT('%',#{name},'%')
</if>
@ -158,8 +178,30 @@
a.MOBILE,
a.ID_CARD,
a.REMARK,
a.REASON
a.REASON,
a.ISOLATED_STATE
FROM ic_epidemic_special_attention a
WHERE a.ID = #{id}
</select>
<select id="isolatedList" resultType="com.epmet.dto.result.NatPieResultDTO$IsolatedList">
SELECT
count(id) AS total,
ISOLATED_STATE AS categoryCode
FROM ic_epidemic_special_attention
WHERE DEL_FLAG = 0
AND concat( pids, ':', ORG_ID ) LIKE concat( '%', #{agencyId}, '%' )
AND ATTENTION_TYPE = 2
AND IS_ATTENTION = 1
AND ISOLATED_STATE is not null
GROUP BY categoryCode
</select>
<select id="getHistoryCount" resultType="java.lang.Integer">
SELECT
count(id)
FROM ic_epidemic_special_attention
WHERE DEL_FLAG = 0
AND concat( pids, ':', ORG_ID ) LIKE concat( '%', #{agencyId}, '%' )
AND ATTENTION_TYPE = 2
AND IS_HISTORY = 1
</select>
</mapper>

Loading…
Cancel
Save