From e831d56eb0409be4e9f246936a64a171592a8ac3 Mon Sep 17 00:00:00 2001 From: zhaoqifeng Date: Mon, 28 Mar 2022 16:07:50 +0800 Subject: [PATCH 01/11] =?UTF-8?q?=E9=98=B2=E7=96=AB=E9=80=9A=E7=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../constant/UserMessageTypeConstant.java | 4 + .../main/java/com/epmet/dto/IcNoticeDTO.java | 17 ++- .../com/epmet/dto/form/SendNoticeFormDTO.java | 63 ++++++++++ .../epmet/controller/IcNoticeController.java | 14 ++- .../java/com/epmet/entity/IcNoticeEntity.java | 12 +- .../com/epmet/service/IcNoticeService.java | 20 ++++ .../service/impl/IcNoticeServiceImpl.java | 108 +++++++++++++++++- 7 files changed, 228 insertions(+), 10 deletions(-) create mode 100644 epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/SendNoticeFormDTO.java diff --git a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/UserMessageTypeConstant.java b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/UserMessageTypeConstant.java index c4f703049c..57ac759211 100644 --- a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/UserMessageTypeConstant.java +++ b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/UserMessageTypeConstant.java @@ -164,6 +164,10 @@ public interface UserMessageTypeConstant { */ String PROJECT_REMIND="project_remind"; + /** + * 防疫通知 + */ + String ANTIEPIDEMIC="antiepidemic"; /** diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcNoticeDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcNoticeDTO.java index 6e0fb6b20b..0a67cd4875 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcNoticeDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcNoticeDTO.java @@ -1,8 +1,11 @@ package com.epmet.dto; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + import java.io.Serializable; import java.util.Date; -import lombok.Data; +import java.util.List; /** @@ -30,12 +33,21 @@ public class IcNoticeDTO implements Serializable { * 通知渠道 0小程序通知,1短信通知 */ private String channel; - + private List channelList; /** * 通知来源 0行程上报,1疫苗接种,2核酸检测 */ private String origin; + /** + * 用户ID + */ + private String userId; + /** + * 手机号 + */ + private String mobile; + /** * 被通知人身份证号 */ @@ -69,6 +81,7 @@ public class IcNoticeDTO implements Serializable { /** * 创建时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8") private Date createdTime; /** diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/SendNoticeFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/SendNoticeFormDTO.java new file mode 100644 index 0000000000..0d038cf71a --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/SendNoticeFormDTO.java @@ -0,0 +1,63 @@ +package com.epmet.dto.form; + +import com.epmet.commons.tools.validator.group.DefaultGroup; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.util.List; + +/** + * @Description + * @Author zhaoqifeng + * @Date 2022/3/28 14:14 + */ +@NoArgsConstructor +@Data +public class SendNoticeFormDTO implements Serializable { + private static final long serialVersionUID = 4800907725063604885L; + private String customerId; + /** + * 用户列表 + */ + @NotNull(message = "用户列表不能为空", groups = DefaultGroup.class) + private List userList; + /** + * 通知渠道通知渠道 0小程序通知,1短信通知 + */ + @NotNull(message = "通知渠道不能为空", groups = DefaultGroup.class) + private List channel; + /** + * 通知来源 0 行程上报,1 疫苗接种,2 核酸检测 + */ + @NotNull(message = "通知来源不能为空", groups = DefaultGroup.class) + private String origin; + /** + * 通知内容 + */ + @NotNull(message = "通知内容不能为空", groups = DefaultGroup.class) + private String content; + /** + * 组织名 + */ + @NotNull(message = "组织名不能为空", groups = DefaultGroup.class) + private String orgName; + + @NoArgsConstructor + @Data + public static class UserListBean { + /** + * 用户ID + */ + private String userId; + /** + * 手机号 + */ + private String mobile; + /** + * 身份证 + */ + private String idCard; + } +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNoticeController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNoticeController.java index 11000e575d..644c768530 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNoticeController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNoticeController.java @@ -1,19 +1,21 @@ package com.epmet.controller; +import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.aop.NoRepeatSubmit; 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.AssertUtils; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.group.AddGroup; -import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.commons.tools.validator.group.DefaultGroup; +import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.dto.IcNoticeDTO; +import com.epmet.dto.form.SendNoticeFormDTO; import com.epmet.service.IcNoticeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import java.util.List; import java.util.Map; @@ -68,6 +70,12 @@ public class IcNoticeController { return new Result(); } - + @PostMapping("sendNotice") + public Result sendNotice(@LoginUser TokenDto tokenDto, @RequestBody SendNoticeFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, DefaultGroup.class); + formDTO.setCustomerId(tokenDto.getCustomerId()); + icNoticeService.sendNotice(formDTO); + return new Result(); + } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcNoticeEntity.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcNoticeEntity.java index 0114b3c5e7..133d56dfcd 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcNoticeEntity.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcNoticeEntity.java @@ -1,13 +1,10 @@ package com.epmet.entity; import com.baomidou.mybatisplus.annotation.TableName; - import com.epmet.commons.mybatis.entity.BaseEpmetEntity; import lombok.Data; import lombok.EqualsAndHashCode; -import java.util.Date; - /** * 防疫通知 * @@ -36,6 +33,15 @@ public class IcNoticeEntity extends BaseEpmetEntity { */ private String origin; + /** + * 用户ID + */ + private String userId; + /** + * 手机号 + */ + private String mobile; + /** * 被通知人身份证号 */ diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcNoticeService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcNoticeService.java index 82d94c16d9..9bbcd2428e 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcNoticeService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcNoticeService.java @@ -3,6 +3,7 @@ package com.epmet.service; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.dto.IcNoticeDTO; +import com.epmet.dto.form.SendNoticeFormDTO; import com.epmet.entity.IcNoticeEntity; import java.util.List; @@ -75,4 +76,23 @@ public interface IcNoticeService extends BaseService { * @date 2022-03-28 */ void delete(String[] ids); + + /** + * 发送通知 + * + * @Param formDTO + * @Return + * @Author zhaoqifeng + * @Date 2022/3/28 14:19 + */ + void sendNotice(SendNoticeFormDTO formDTO); + + /** + * 获取人员最新一条通知 + * @Param idCard + * @Return {@link IcNoticeDTO} + * @Author zhaoqifeng + * @Date 2022/3/28 15:43 + */ + IcNoticeDTO getNotice(String customerId, String idCard); } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcNoticeServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcNoticeServiceImpl.java index 9c1d1c4628..ddd101c46b 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcNoticeServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcNoticeServiceImpl.java @@ -1,23 +1,36 @@ package com.epmet.service.impl; +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.tools.constant.*; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.ConvertUtils; -import com.epmet.commons.tools.constant.FieldConstant; +import com.epmet.commons.tools.utils.Result; +import com.epmet.constant.SmsTemplateConstant; +import com.epmet.constant.UserMessageTypeConstant; import com.epmet.dao.IcNoticeDao; import com.epmet.dto.IcNoticeDTO; +import com.epmet.dto.form.ProjectSendMsgFormDTO; +import com.epmet.dto.form.SendNoticeFormDTO; +import com.epmet.dto.form.UserMessageFormDTO; import com.epmet.entity.IcNoticeEntity; +import com.epmet.feign.MessageFeignClient; import com.epmet.service.IcNoticeService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** * 防疫通知 @@ -25,9 +38,13 @@ import java.util.Map; * @author generator generator@elink-cn.com * @since v1.0.0 2022-03-28 */ +@Slf4j @Service public class IcNoticeServiceImpl extends BaseServiceImpl implements IcNoticeService { + @Resource + private MessageFeignClient messageFeignClient; + @Override public PageData page(Map params) { IPage page = baseDao.selectPage( @@ -80,4 +97,91 @@ public class IcNoticeServiceImpl extends BaseServiceImpl entityList = formDTO.getUserList().stream().map(item -> { + IcNoticeEntity entity = new IcNoticeEntity(); + entity.setCustomerId(formDTO.getCustomerId()); + entity.setChannel(channel); + entity.setContent(formDTO.getContent()); + entity.setOrigin(entity.getOrigin()); + entity.setUserId(item.getUserId()); + entity.setMobile(entity.getMobile()); + entity.setIdCard(item.getIdCard()); + entity.setOrgName(formDTO.getOrgName()); + return entity; + }).collect(Collectors.toList()); + insertBatch(entityList); + + //通知 + List msgList = new ArrayList<>(); + //短信消息 + List smsList = new ArrayList<>(); + + entityList.forEach(item -> { + if (StringUtils.isNotBlank(item.getUserId())) { + UserMessageFormDTO messageFormDTO = new UserMessageFormDTO(); + messageFormDTO.setCustomerId(item.getCustomerId()); + messageFormDTO.setApp(AppClientConstant.APP_GOV); + messageFormDTO.setGridId(StrConstant.STAR); + messageFormDTO.setUserId(item.getUserId()); + messageFormDTO.setTitle("您有一条通知消息!"); + messageFormDTO.setMessageContent(item.getContent()); + messageFormDTO.setReadFlag(Constant.UNREAD); + messageFormDTO.setMessageType(UserMessageTypeConstant.ANTIEPIDEMIC); + messageFormDTO.setTargetId(item.getId()); + msgList.add(messageFormDTO); + } + //TODO + if (StringUtils.isNotBlank(item.getMobile())) { + ProjectSendMsgFormDTO sms = new ProjectSendMsgFormDTO(); + sms.setCustomerId(item.getCustomerId()); + sms.setMobile(item.getMobile()); + sms.setAliyunTemplateCode(SmsTemplateConstant.PROJECT_OVERDUE); + sms.setParameterKey("send_msg"); + smsList.add(sms); + } + }); + + Result result = messageFeignClient.saveUserMessageList(msgList); + if (!result.success()) { + log.error("发送小程序消息失败" + JSON.toJSONString(result)); + } + } + + /** + * 获取人员最新一条通知 + * + * @param idCard + * @Param idCard + * @Return {@link IcNoticeDTO} + * @Author zhaoqifeng + * @Date 2022/3/28 15:43 + */ + @Override + public IcNoticeDTO getNotice(String customerId, String idCard) { + IcNoticeDTO result = new IcNoticeDTO(); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(IcNoticeEntity::getCustomerId, customerId); + wrapper.eq(IcNoticeEntity::getIdCard, idCard); + wrapper.orderByDesc(IcNoticeEntity::getCreatedTime); + List list = baseDao.selectList(wrapper); + if (CollectionUtils.isNotEmpty(list)) { + result = ConvertUtils.sourceToTarget(list.get(NumConstant.ZERO), IcNoticeDTO.class); + result.setChannelList(Arrays.asList(result.getChannel().split(StrConstant.COMMA))); + } + return result; + } + } \ No newline at end of file From 4740324be7d5bed1d016dba8c101fd5c4df25ef3 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Mon, 28 Mar 2022 16:22:45 +0800 Subject: [PATCH 02/11] =?UTF-8?q?=E3=80=90=E6=A0=B8=E9=85=B8=E3=80=91?= =?UTF-8?q?=E6=A0=B8=E9=85=B8=E6=A3=80=E6=B5=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/epmet/dto/IcNatDTO.java | 5 ++-- .../com/epmet/dto/form/AddIcNatFormDTO.java | 7 ++--- .../com/epmet/controller/IcNatController.java | 2 +- .../src/main/java/com/epmet/dao/IcNatDao.java | 2 +- .../java/com/epmet/entity/IcNatEntity.java | 2 +- .../epmet/service/impl/IcNatServiceImpl.java | 26 +++++++++++-------- .../src/main/resources/mapper/IcNatDao.xml | 2 ++ 7 files changed, 27 insertions(+), 19 deletions(-) diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcNatDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcNatDTO.java index df1f7db433..9c98833ed4 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcNatDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcNatDTO.java @@ -1,6 +1,7 @@ package com.epmet.dto; import java.io.Serializable; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -129,10 +130,10 @@ public class IcNatDTO implements Serializable { /** * 通知渠道 0小程序通知,1短信通知,多选是数组 */ - private List channel; + private List channel = new ArrayList<>(); /** * 通知内容 */ - private String content; + private String content = ""; } \ No newline at end of file diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/AddIcNatFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/AddIcNatFormDTO.java index 6000b6a969..73928633fb 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/AddIcNatFormDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/AddIcNatFormDTO.java @@ -6,6 +6,7 @@ import lombok.Data; import javax.validation.constraints.NotBlank; import java.io.Serializable; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -56,7 +57,7 @@ public class AddIcNatFormDTO implements Serializable { /** * 检测时间 */ - @NotBlank(message = "检测时间不能为空", groups = Nat.class) + //@NotBlank(message = "检测时间不能为空", groups = Nat.class) @JsonFormat(pattern="yyyy-MM-dd HH:mm") private Date natTime; /** @@ -83,11 +84,11 @@ public class AddIcNatFormDTO implements Serializable { /** * 通知渠道 0小程序通知,1短信通知,多选是数组 */ - private List channel; + private List channel = new ArrayList<>(); /** * 通知内容 */ - private String content; + private String content = ""; //token中信息 private String customerId; diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNatController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNatController.java index 929e95ce4b..3f39c2500d 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNatController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNatController.java @@ -41,7 +41,7 @@ public class IcNatController { * @Author sun * @Description 核酸检测-上报核酸记录 **/ - @NoRepeatSubmit + //@NoRepeatSubmit @PostMapping("add") public Result add(@LoginUser TokenDto tokenDto, @RequestBody AddIcNatFormDTO formDTO) { ValidatorUtils.validateEntity(formDTO, AddIcNatFormDTO.Nat.class); diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcNatDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcNatDao.java index 91ce606f2d..5ab06f865d 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcNatDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcNatDao.java @@ -35,5 +35,5 @@ public interface IcNatDao extends BaseDao { * @Author sun * @Description 删除/取消同步操作--物理删除业务数据 **/ - boolean delById(@Param("icNatId") String icNatId); + int delById(@Param("icNatId") String icNatId); } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcNatEntity.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcNatEntity.java index d1f62275b1..84d875c391 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcNatEntity.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcNatEntity.java @@ -74,7 +74,7 @@ public class IcNatEntity extends BaseEpmetEntity { /** * 检测地点 */ - private String natOAddress; + private String natAddress; /** * 文件名 diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcNatServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcNatServiceImpl.java index 8a7061152e..400b52f5fd 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcNatServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcNatServiceImpl.java @@ -49,6 +49,7 @@ public class IcNatServiceImpl extends BaseServiceImpl imp * @Description 核酸检测-上报核酸记录 **/ @Override + @Transactional(rollbackFor = Exception.class) public void add(AddIcNatFormDTO formDTO) { //1.获取所填居民所属组织缓存信息 AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(formDTO.getAgencyId()); @@ -63,6 +64,8 @@ public class IcNatServiceImpl extends BaseServiceImpl imp //3.新增通知表信息 if (formDTO.getChannel().size() > NumConstant.ZERO) { //TODO + + } } @@ -132,8 +135,9 @@ public class IcNatServiceImpl extends BaseServiceImpl imp public void edit(AddIcNatFormDTO formDTO) { //1.更新核酸记录表数据 IcNatEntity entity = ConvertUtils.sourceToTarget(formDTO, IcNatEntity.class); + entity.setId(formDTO.getIcNatId()); if (!updateById(entity)) { - log.error(String.format("数据修改失败,核酸记录Id->", formDTO.getIcNatId())); + log.error(String.format("数据修改失败,核酸记录Id->%s", formDTO.getIcNatId())); throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "核酸记录修改失败"); } @@ -150,8 +154,8 @@ public class IcNatServiceImpl extends BaseServiceImpl imp @Override public void del(MyNatListFormDTO formDTO) { //1.物理删除业务数据 - if (baseDao.delById(formDTO.getIcNatId())) { - log.error(String.format("数据删除/取消同步失败,核酸记录Id->", formDTO.getIcNatId())); + if (baseDao.delById(formDTO.getIcNatId()) < NumConstant.ONE) { + log.error(String.format("数据删除/取消同步失败,核酸记录Id->%s", formDTO.getIcNatId())); throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "数据操作失败"); } } @@ -162,19 +166,19 @@ public class IcNatServiceImpl extends BaseServiceImpl imp **/ @Override public void synchro(MyNatListFormDTO formDTO) { + //1.获取工作人员缓存数据 + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getUserId()); + if (null == staffInfo) { + throw new EpmetException(String.format("查询工作人员%s缓存信息失败...", formDTO.getUserId())); + } //1.根据核酸记录Id查询业务数据并进行必要校验 IcNatEntity entity = baseDao.selectById(formDTO.getIcNatId()); - if (null == entity || formDTO.getAgencyId().equals(entity.getAgencyId()) + if (null == entity || staffInfo.getAgencyId().equals(entity.getAgencyId()) || (!"import".equals(entity.getUserType()) && !"synchro".equals(entity.getUserType()))) { - log.error(String.format("数据同步失败,核酸记录Id->", formDTO.getIcNatId())); + log.error(String.format("数据同步失败,核酸记录Id->%s", formDTO.getIcNatId())); throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "数据同步失败,不是导入数据或非本组织数据"); } - //2.获取工作人员缓存数据 - //获取工作人员缓存信息 - CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getUserId()); - if (null == staffInfo) { - throw new EpmetException(String.format("查询工作人员%s缓存信息失败...", formDTO.getUserId())); - } + //3.待同步组织新增业务数据 entity.setId(""); entity.setAgencyId(staffInfo.getAgencyId()); diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/IcNatDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/IcNatDao.xml index b0e8a01607..7899c84227 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/IcNatDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/IcNatDao.xml @@ -22,6 +22,7 @@ del_flag = '0' AND customer_id = #{customerId} AND id_card = #{idCard} + ORDER BY nat_time DESC From d299af5789f32721adef1fe33a13708443e146ed Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Mon, 28 Mar 2022 16:33:02 +0800 Subject: [PATCH 03/11] =?UTF-8?q?=E3=80=90=E6=A0=B8=E9=85=B8=E3=80=91?= =?UTF-8?q?=E6=A0=B8=E9=85=B8=E6=A3=80=E6=B5=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/controller/IcNatController.java | 11 ++--- .../java/com/epmet/service/IcNatService.java | 2 - .../epmet/service/impl/IcNatServiceImpl.java | 49 ++++++++++++++----- 3 files changed, 40 insertions(+), 22 deletions(-) diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNatController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNatController.java index 3f39c2500d..5384a76dbb 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNatController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNatController.java @@ -2,14 +2,9 @@ package com.epmet.controller; import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.aop.NoRepeatSubmit; -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.AssertUtils; 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.commons.tools.validator.group.UpdateGroup; import com.epmet.dto.IcNatDTO; import com.epmet.dto.form.AddIcNatFormDTO; import com.epmet.dto.form.MyNatListFormDTO; @@ -17,10 +12,12 @@ import com.epmet.dto.result.MyNatListResultDTO; import com.epmet.dto.result.NatListResultDTO; import com.epmet.service.IcNatService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; +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; -import java.util.Map; /** diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcNatService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcNatService.java index 2da059b99f..50bf30b6f8 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcNatService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcNatService.java @@ -1,7 +1,6 @@ package com.epmet.service; import com.epmet.commons.mybatis.service.BaseService; -import com.epmet.commons.tools.page.PageData; import com.epmet.dto.IcNatDTO; import com.epmet.dto.form.AddIcNatFormDTO; import com.epmet.dto.form.MyNatListFormDTO; @@ -10,7 +9,6 @@ import com.epmet.dto.result.NatListResultDTO; import com.epmet.entity.IcNatEntity; import java.util.List; -import java.util.Map; /** * 核酸上报记录 diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcNatServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcNatServiceImpl.java index 400b52f5fd..40e1c49d5c 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcNatServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcNatServiceImpl.java @@ -1,37 +1,35 @@ package com.epmet.service.impl; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; -import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.RenException; -import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.redis.common.CustomerOrgRedis; import com.epmet.commons.tools.redis.common.CustomerStaffRedis; import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.dao.IcNatDao; import com.epmet.dto.IcNatDTO; +import com.epmet.dto.IcNoticeDTO; import com.epmet.dto.form.AddIcNatFormDTO; import com.epmet.dto.form.MyNatListFormDTO; +import com.epmet.dto.form.SendNoticeFormDTO; import com.epmet.dto.result.MyNatListResultDTO; import com.epmet.dto.result.NatListResultDTO; import com.epmet.entity.IcNatEntity; import com.epmet.service.IcNatService; +import com.epmet.service.IcNoticeService; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.Arrays; +import java.util.ArrayList; import java.util.List; -import java.util.Map; /** * 核酸上报记录 @@ -42,7 +40,8 @@ import java.util.Map; @Service @Slf4j public class IcNatServiceImpl extends BaseServiceImpl implements IcNatService { - + @Autowired + private IcNoticeService icNoticeService; /** * @Author sun @@ -63,9 +62,15 @@ public class IcNatServiceImpl extends BaseServiceImpl imp //3.新增通知表信息 if (formDTO.getChannel().size() > NumConstant.ZERO) { - //TODO - - + SendNoticeFormDTO dto = new SendNoticeFormDTO(); + List userList = new ArrayList<>(); + userList.add(ConvertUtils.sourceToTarget(formDTO, SendNoticeFormDTO.UserListBean.class)); + dto.setUserList(userList); + dto.setChannel(formDTO.getChannel()); + dto.setOrigin("2"); + dto.setContent(formDTO.getContent()); + dto.setOrgName(agencyInfo.getOrganizationName()); + icNoticeService.sendNotice(dto); } } @@ -122,7 +127,11 @@ public class IcNatServiceImpl extends BaseServiceImpl imp resultDTO = ConvertUtils.sourceToTarget(entity, IcNatDTO.class); //2.查询对应的通知记录信息 - //TODO + IcNoticeDTO dto = icNoticeService.getNotice(entity.getCustomerId(), entity.getIdCard()); + if (null != dto) { + resultDTO.setChannel(dto.getChannelList()); + resultDTO.setContent(dto.getContent()); + } return resultDTO; } @@ -143,7 +152,21 @@ public class IcNatServiceImpl extends BaseServiceImpl imp //3.新增通知表信息 if (formDTO.getChannel().size() > NumConstant.ZERO) { - //TODO + IcNatEntity icNatEntity = baseDao.selectById(formDTO.getIcNatId()); + //1.获取所填居民所属组织缓存信息 + AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(icNatEntity.getAgencyId()); + if (null == agencyInfo) { + throw new RenException(String.format("获取组织缓存信息失败%s", icNatEntity.getAgencyId())); + } + SendNoticeFormDTO dto = new SendNoticeFormDTO(); + List userList = new ArrayList<>(); + userList.add(ConvertUtils.sourceToTarget(formDTO, SendNoticeFormDTO.UserListBean.class)); + dto.setUserList(userList); + dto.setChannel(formDTO.getChannel()); + dto.setOrigin("2"); + dto.setContent(formDTO.getContent()); + dto.setOrgName(agencyInfo.getOrganizationName()); + icNoticeService.sendNotice(dto); } } From 1bdfbf6acd9e275414f47792993a0b796089e25e Mon Sep 17 00:00:00 2001 From: zhaoqifeng Date: Mon, 28 Mar 2022 16:48:04 +0800 Subject: [PATCH 04/11] =?UTF-8?q?=E9=98=B2=E7=96=AB=E9=80=9A=E7=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../commons/tools/enums/ChannelEnum.java | 57 +++++++++++++++++++ .../main/java/com/epmet/dto/IcNoticeDTO.java | 12 ++++ .../com/epmet/dto/form/IcNoticeFormDTO.java | 21 +++++++ .../epmet/controller/IcNoticeController.java | 8 +-- .../com/epmet/service/IcNoticeService.java | 5 +- .../service/impl/IcNoticeServiceImpl.java | 36 +++++++++--- 6 files changed, 124 insertions(+), 15 deletions(-) create mode 100644 epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/ChannelEnum.java create mode 100644 epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcNoticeFormDTO.java diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/ChannelEnum.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/ChannelEnum.java new file mode 100644 index 0000000000..389338f717 --- /dev/null +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/ChannelEnum.java @@ -0,0 +1,57 @@ +package com.epmet.commons.tools.enums; + +import com.epmet.commons.tools.exception.EpmetErrorCode; + +/** + * @author Administrator + */ +public enum ChannelEnum { + //通知渠道 0小程序通知,1短信通知 + APP("0", "小程序通知"), + MESSAGE("1", "短信通知"), + ALL("2", "小程序通知,短信通知"); + private String code; + private String name; + + + ChannelEnum(String code, String name) { + this.code = code; + this.name = name; + } + + public static String getName(String code) { + ChannelEnum[] houseTypeEnums = values(); + for (ChannelEnum houseTypeEnum : houseTypeEnums) { + if (houseTypeEnum.getCode() == code) { + return houseTypeEnum.getName(); + } + } + return EpmetErrorCode.SERVER_ERROR.getMsg(); + } + + public static String getCode(String name) { + ChannelEnum[] houseTypeEnums = values(); + for (ChannelEnum houseTypeEnum : houseTypeEnums) { + if (houseTypeEnum.getName().equals(name)) { + return houseTypeEnum.getCode(); + } + } + return null; + } + + 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; + } +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcNoticeDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcNoticeDTO.java index 0a67cd4875..72520ef800 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcNoticeDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcNoticeDTO.java @@ -1,6 +1,7 @@ package com.epmet.dto; import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import java.io.Serializable; @@ -22,11 +23,13 @@ public class IcNoticeDTO implements Serializable { /** * 唯一标识 */ + @JsonIgnore private String id; /** * 客户Id customer.id */ + @JsonIgnore private String customerId; /** @@ -37,20 +40,24 @@ public class IcNoticeDTO implements Serializable { /** * 通知来源 0行程上报,1疫苗接种,2核酸检测 */ + @JsonIgnore private String origin; /** * 用户ID */ + @JsonIgnore private String userId; /** * 手机号 */ + @JsonIgnore private String mobile; /** * 被通知人身份证号 */ + @JsonIgnore private String idCard; /** @@ -66,16 +73,19 @@ public class IcNoticeDTO implements Serializable { /** * 删除标识:0.未删除 1.已删除 */ + @JsonIgnore private Integer delFlag; /** * 乐观锁 */ + @JsonIgnore private Integer revision; /** * 创建人 */ + @JsonIgnore private String createdBy; /** @@ -87,11 +97,13 @@ public class IcNoticeDTO implements Serializable { /** * 更新人 */ + @JsonIgnore private String updatedBy; /** * 更新时间 */ + @JsonIgnore private Date updatedTime; } \ No newline at end of file diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcNoticeFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcNoticeFormDTO.java new file mode 100644 index 0000000000..057ee17921 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcNoticeFormDTO.java @@ -0,0 +1,21 @@ +package com.epmet.dto.form; + +import com.epmet.commons.tools.dto.form.PageFormDTO; +import com.epmet.commons.tools.validator.group.DefaultGroup; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Description + * @Author zhaoqifeng + * @Date 2022/3/28 16:13 + */ +@Data +public class IcNoticeFormDTO extends PageFormDTO implements Serializable { + private static final long serialVersionUID = 7392894573654015338L; + private String customerId; + @NotBlank(message = "身份证号不能为空", groups = DefaultGroup.class) + private String idCard; +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNoticeController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNoticeController.java index 644c768530..f7cb128fc4 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNoticeController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNoticeController.java @@ -11,13 +11,12 @@ import com.epmet.commons.tools.validator.group.AddGroup; import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.dto.IcNoticeDTO; +import com.epmet.dto.form.IcNoticeFormDTO; import com.epmet.dto.form.SendNoticeFormDTO; import com.epmet.service.IcNoticeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import java.util.Map; - /** * 防疫通知 @@ -33,8 +32,9 @@ public class IcNoticeController { private IcNoticeService icNoticeService; @RequestMapping("page") - public Result> page(@RequestParam Map params){ - PageData page = icNoticeService.page(params); + public Result> page(@LoginUser TokenDto tokenDto, @RequestBody IcNoticeFormDTO formDTO){ + formDTO.setCustomerId(tokenDto.getCustomerId()); + PageData page = icNoticeService.page(formDTO); return new Result>().ok(page); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcNoticeService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcNoticeService.java index 9bbcd2428e..937cca916a 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcNoticeService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcNoticeService.java @@ -3,6 +3,7 @@ package com.epmet.service; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.dto.IcNoticeDTO; +import com.epmet.dto.form.IcNoticeFormDTO; import com.epmet.dto.form.SendNoticeFormDTO; import com.epmet.entity.IcNoticeEntity; @@ -20,12 +21,12 @@ public interface IcNoticeService extends BaseService { /** * 默认分页 * - * @param params + * @param dto * @return PageData * @author generator * @date 2022-03-28 */ - PageData page(Map params); + PageData page(IcNoticeFormDTO formDTO); /** * 默认查询 diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcNoticeServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcNoticeServiceImpl.java index ddd101c46b..64fe1016c2 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcNoticeServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcNoticeServiceImpl.java @@ -3,9 +3,9 @@ package com.epmet.service.impl; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.*; +import com.epmet.commons.tools.enums.ChannelEnum; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; @@ -13,12 +13,15 @@ import com.epmet.constant.SmsTemplateConstant; import com.epmet.constant.UserMessageTypeConstant; import com.epmet.dao.IcNoticeDao; import com.epmet.dto.IcNoticeDTO; +import com.epmet.dto.form.IcNoticeFormDTO; import com.epmet.dto.form.ProjectSendMsgFormDTO; import com.epmet.dto.form.SendNoticeFormDTO; import com.epmet.dto.form.UserMessageFormDTO; import com.epmet.entity.IcNoticeEntity; import com.epmet.feign.MessageFeignClient; import com.epmet.service.IcNoticeService; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; @@ -46,12 +49,27 @@ public class IcNoticeServiceImpl extends BaseServiceImpl page(Map params) { - IPage page = baseDao.selectPage( - getPage(params, FieldConstant.CREATED_TIME, false), - getWrapper(params) - ); - return getPageData(page, IcNoticeDTO.class); + public PageData page(IcNoticeFormDTO formDTO) { + PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(IcNoticeEntity::getCustomerId, formDTO.getCustomerId()); + wrapper.eq(IcNoticeEntity::getIdCard, formDTO.getIdCard()); + wrapper.orderByDesc(IcNoticeEntity::getCreatedTime); + List list = baseDao.selectList(wrapper); + PageInfo pageInfo = new PageInfo<>(list); + List dtoList = ConvertUtils.sourceToTarget(list, IcNoticeDTO.class); + + if (CollectionUtils.isNotEmpty(dtoList)) { + dtoList.forEach(item -> { + List channelList = Arrays.asList(item.getChannel().split(StrConstant.COMMA)); + if (channelList.size() == NumConstant.ONE) { + item.setChannel(ChannelEnum.getName(channelList.get(0))); + } else { + item.setChannel(ChannelEnum.getName(NumConstant.TWO_STR)); + } + }); + } + return new PageData<>(dtoList, pageInfo.getTotal()); } @Override @@ -115,9 +133,9 @@ public class IcNoticeServiceImpl extends BaseServiceImpl Date: Mon, 28 Mar 2022 16:53:20 +0800 Subject: [PATCH 05/11] =?UTF-8?q?=E3=80=90=E6=A0=B8=E9=85=B8=E3=80=91?= =?UTF-8?q?=E6=A0=B8=E9=85=B8=E6=A3=80=E6=B5=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/epmet/controller/IcNatController.java | 3 ++- .../main/java/com/epmet/service/impl/IcNatServiceImpl.java | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNatController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNatController.java index 5384a76dbb..0f6f799dd4 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNatController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNatController.java @@ -88,7 +88,8 @@ public class IcNatController { **/ @NoRepeatSubmit @PostMapping("edit") - public Result edit(@RequestBody AddIcNatFormDTO formDTO) { + public Result edit(@LoginUser TokenDto tokenDto, @RequestBody AddIcNatFormDTO formDTO) { + formDTO.setCustomerId(tokenDto.getCustomerId()); icNucleinService.edit(formDTO); return new Result(); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcNatServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcNatServiceImpl.java index 40e1c49d5c..f367748156 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcNatServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcNatServiceImpl.java @@ -65,6 +65,7 @@ public class IcNatServiceImpl extends BaseServiceImpl imp SendNoticeFormDTO dto = new SendNoticeFormDTO(); List userList = new ArrayList<>(); userList.add(ConvertUtils.sourceToTarget(formDTO, SendNoticeFormDTO.UserListBean.class)); + dto.setCustomerId(formDTO.getCustomerId()); dto.setUserList(userList); dto.setChannel(formDTO.getChannel()); dto.setOrigin("2"); @@ -141,6 +142,7 @@ public class IcNatServiceImpl extends BaseServiceImpl imp * @Description 【核酸】核酸检测信息修改 **/ @Override + @Transactional(rollbackFor = Exception.class) public void edit(AddIcNatFormDTO formDTO) { //1.更新核酸记录表数据 IcNatEntity entity = ConvertUtils.sourceToTarget(formDTO, IcNatEntity.class); @@ -161,6 +163,7 @@ public class IcNatServiceImpl extends BaseServiceImpl imp SendNoticeFormDTO dto = new SendNoticeFormDTO(); List userList = new ArrayList<>(); userList.add(ConvertUtils.sourceToTarget(formDTO, SendNoticeFormDTO.UserListBean.class)); + dto.setCustomerId(formDTO.getCustomerId()); dto.setUserList(userList); dto.setChannel(formDTO.getChannel()); dto.setOrigin("2"); @@ -175,6 +178,7 @@ public class IcNatServiceImpl extends BaseServiceImpl imp * @Description 【核酸】核酸检测信息删除/取消同步 **/ @Override + @Transactional(rollbackFor = Exception.class) public void del(MyNatListFormDTO formDTO) { //1.物理删除业务数据 if (baseDao.delById(formDTO.getIcNatId()) < NumConstant.ONE) { @@ -188,6 +192,7 @@ public class IcNatServiceImpl extends BaseServiceImpl imp * @Description 【核酸】核酸检测信息同步 **/ @Override + @Transactional(rollbackFor = Exception.class) public void synchro(MyNatListFormDTO formDTO) { //1.获取工作人员缓存数据 CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getUserId()); From d8666c408f094fd9d9e8c3f0752c8759fb1e9964 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Mon, 28 Mar 2022 16:55:39 +0800 Subject: [PATCH 06/11] add --- .../dto/form/CancelAttentionFormDTO.java | 6 +++ .../form/CancelAttentionPackageFormDTO.java | 20 ++++++++++ .../IcEpidemicSpecialAttentionController.java | 18 ++++----- .../IcEpidemicSpecialAttentionService.java | 3 +- ...IcEpidemicSpecialAttentionServiceImpl.java | 38 +++++++++++++++---- 5 files changed, 65 insertions(+), 20 deletions(-) create mode 100644 epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CancelAttentionPackageFormDTO.java diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CancelAttentionFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CancelAttentionFormDTO.java index e1fcde9b28..bd9e48906c 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CancelAttentionFormDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CancelAttentionFormDTO.java @@ -2,6 +2,8 @@ package com.epmet.dto.form; import lombok.Data; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; import java.io.Serializable; import java.util.List; @@ -15,13 +17,17 @@ public class CancelAttentionFormDTO implements Serializable { private static final long serialVersionUID = 2252387281427013057L; + public interface CancelAttentionForm{} + /** * 身份证 */ + @NotBlank(message = "idCard不能为空",groups = CancelAttentionForm.class) private String idCard; /** * 关注类型,核酸检测:2,疫苗接种:1 */ + @NotNull(message = "attentionType不能为空",groups = CancelAttentionForm.class) private Integer attentionType ; } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CancelAttentionPackageFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CancelAttentionPackageFormDTO.java new file mode 100644 index 0000000000..db47f3520a --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CancelAttentionPackageFormDTO.java @@ -0,0 +1,20 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.Valid; +import java.io.Serializable; +import java.util.List; + +/** + * @Author zxc + * @DateTime 2022/3/28 16:48 + * @DESC + */ +@Data +public class CancelAttentionPackageFormDTO implements Serializable { + + private static final long serialVersionUID = 2198470055930997870L; + @Valid + private List list; +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcEpidemicSpecialAttentionController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcEpidemicSpecialAttentionController.java index cf91237a2d..f7325eca20 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcEpidemicSpecialAttentionController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcEpidemicSpecialAttentionController.java @@ -12,10 +12,7 @@ import com.epmet.commons.tools.validator.group.AddGroup; import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.dto.IcEpidemicSpecialAttentionDTO; -import com.epmet.dto.form.CancelAttentionFormDTO; -import com.epmet.dto.form.NatListFormDTO; -import com.epmet.dto.form.VaccinationAddFormDTO; -import com.epmet.dto.form.VaccinationListFormDTO; +import com.epmet.dto.form.*; import com.epmet.service.IcEpidemicSpecialAttentionService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -55,15 +52,13 @@ public class IcEpidemicSpecialAttentionController { /** * Desc:【疫苗接种关注名单,核酸检测关注名单】新增 - * @param list + * @param formDTO * @param tokenDto * @author zxc * @date 2022/3/28 13:35 */ @PostMapping("vaccination-add") - public Result vaccinationAdd(@RequestBody List list,@LoginUser TokenDto tokenDto){ - VaccinationAddFormDTO formDTO = new VaccinationAddFormDTO(); - formDTO.setList(list); + public Result vaccinationAdd(@RequestBody VaccinationAddFormDTO formDTO,@LoginUser TokenDto tokenDto){ ValidatorUtils.validateEntity(formDTO, VaccinationAddFormDTO.VaccinationAddForm.class); formDTO.setCustomerId(tokenDto.getCustomerId()); formDTO.setUserId(tokenDto.getUserId()); @@ -85,13 +80,14 @@ public class IcEpidemicSpecialAttentionController { /** * Desc: 取消关注 - * @param list + * @param formDTO * @author zxc * @date 2022/3/28 13:51 */ @PostMapping("cancel-attention") - public Result cancelAttention(@RequestBody List list){ - icEpidemicSpecialAttentionService.cancelAttention(list); + public Result cancelAttention(@RequestBody CancelAttentionPackageFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO, CancelAttentionFormDTO.CancelAttentionForm.class); + icEpidemicSpecialAttentionService.cancelAttention(formDTO); return new Result(); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcEpidemicSpecialAttentionService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcEpidemicSpecialAttentionService.java index c1f051233d..2ed2223152 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcEpidemicSpecialAttentionService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcEpidemicSpecialAttentionService.java @@ -4,6 +4,7 @@ import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.dto.IcEpidemicSpecialAttentionDTO; import com.epmet.dto.form.CancelAttentionFormDTO; +import com.epmet.dto.form.CancelAttentionPackageFormDTO; import com.epmet.dto.form.VaccinationAddFormDTO; import com.epmet.dto.form.VaccinationListFormDTO; import com.epmet.entity.IcEpidemicSpecialAttentionEntity; @@ -110,5 +111,5 @@ public interface IcEpidemicSpecialAttentionService extends BaseService list); + void cancelAttention(CancelAttentionPackageFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcEpidemicSpecialAttentionServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcEpidemicSpecialAttentionServiceImpl.java index d9651531f1..f87b2c3184 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcEpidemicSpecialAttentionServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcEpidemicSpecialAttentionServiceImpl.java @@ -7,15 +7,14 @@ import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.redis.common.CustomerOrgRedis; import com.epmet.commons.tools.redis.common.CustomerStaffRedis; +import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.dao.IcEpidemicSpecialAttentionDao; import com.epmet.dto.IcEpidemicSpecialAttentionDTO; -import com.epmet.dto.form.CancelAttentionFormDTO; -import com.epmet.dto.form.NatListFormDTO; -import com.epmet.dto.form.VaccinationAddFormDTO; -import com.epmet.dto.form.VaccinationListFormDTO; +import com.epmet.dto.form.*; import com.epmet.dto.result.VaccinationListResultDTO; import com.epmet.entity.IcEpidemicSpecialAttentionEntity; import com.epmet.service.IcEpidemicSpecialAttentionService; @@ -100,10 +99,10 @@ public class IcEpidemicSpecialAttentionServiceImpl extends BaseServiceImpl result = new PageData(new ArrayList(), NumConstant.ZERO_L); CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getUserId()); if (null == staffInfo){ - throw new EpmetException("为查询到工作人员信息"+formDTO.getUserId()); + throw new EpmetException("未查询到工作人员信息"+formDTO.getUserId()); } formDTO.setOrgId(staffInfo.getAgencyId()); // 关注类型,核酸检测:2,疫苗接种:1 @@ -128,6 +127,11 @@ public class IcEpidemicSpecialAttentionServiceImpl extends BaseServiceImpl entities = ConvertUtils.sourceToTarget(formDTO.getList(), IcEpidemicSpecialAttentionEntity.class); + entities.forEach(e -> { + e.setIsAttention(NumConstant.ONE); + e.setOrgId(agencyInfo.getId()); + e.setPid(agencyInfo.getPid()); + e.setPids(agencyInfo.getPids()); + e.setCustomerId(formDTO.getCustomerId()); + }); + insertBatch(entities); + //TODO 发送通知 } /** @@ -162,7 +184,7 @@ public class IcEpidemicSpecialAttentionServiceImpl extends BaseServiceImpl list) { + public void cancelAttention(CancelAttentionPackageFormDTO formDTO) { } From cdb8ec7e286a7b1d8bdfcc060d26522049beab15 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Mon, 28 Mar 2022 17:06:18 +0800 Subject: [PATCH 07/11] =?UTF-8?q?=E3=80=90=E6=A0=B8=E9=85=B8=E3=80=91?= =?UTF-8?q?=E6=A0=B8=E9=85=B8=E6=A3=80=E6=B5=8B=E4=B8=8B=E8=BD=BD=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/controller/IcNatController.java | 36 ++++++++++++++++-- .../src/main/resources/excel/ic_nat.xlsx | Bin 0 -> 9114 bytes 2 files changed, 32 insertions(+), 4 deletions(-) create mode 100644 epmet-user/epmet-user-server/src/main/resources/excel/ic_nat.xlsx diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNatController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNatController.java index 0f6f799dd4..35d3511196 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNatController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNatController.java @@ -11,12 +11,16 @@ import com.epmet.dto.form.MyNatListFormDTO; import com.epmet.dto.result.MyNatListResultDTO; import com.epmet.dto.result.NatListResultDTO; import com.epmet.service.IcNatService; +import org.apache.commons.io.IOUtils; 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 org.springframework.http.HttpHeaders; +import org.springframework.web.bind.annotation.*; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.InputStream; +import java.net.URLEncoder; import java.util.List; @@ -120,5 +124,29 @@ public class IcNatController { return new Result(); } + /** + * @Author sun + * @Description 【核酸】核酸检测信息下载模板 + **/ + @RequestMapping(value = "import-template-download", method = {RequestMethod.GET, RequestMethod.POST}) + public void downloadTemplate(HttpServletResponse response) throws IOException { + response.setCharacterEncoding("UTF-8"); + response.addHeader(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS, "Content-Disposition"); + //response.setHeader(HttpHeaders.CONTENT_TYPE, "application/vnd.ms-excel"); + response.setHeader(HttpHeaders.CONTENT_TYPE, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode("社区自组织导入模板", "UTF-8") + ".xlsx"); + + InputStream is = this.getClass().getClassLoader().getResourceAsStream("excel/ic_nat.xlsx"); + try { + ServletOutputStream os = response.getOutputStream(); + IOUtils.copy(is, os); + } finally { + if (is != null) { + is.close(); + } + } + + } + } diff --git a/epmet-user/epmet-user-server/src/main/resources/excel/ic_nat.xlsx b/epmet-user/epmet-user-server/src/main/resources/excel/ic_nat.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..4d7df5944a91e416a31a21891975ba1778567252 GIT binary patch literal 9114 zcmaJ{1yo$ivc-ZE+}+(>g1fuB1s~jlyCpzyf(8jraCaxT6Wrb1J|zF$d&9r~^;&1n ztTRq;@`M=X#~RI+u)$ZgYzH&sERL3Wigj#PWtp?2rgriGH! z9Ob*Y!2VXrCc&_5khuZ&>&-Cc7O7R&OJidNQS{n$HFO{_Ui;d`ah!vOn(}7vpl;c8d2`k^!MCv-<|IpV+Gc)sjg9Qhy*XcfxH&nv zprc!%x!oyF=-8Iu17+L+RoDk_@asg3)M?M@#%gy{5&!57Bp1~BPN-dmBb*f|_lr>T z<7(}W8vEUi&B>cT(N)4w$OSY;I+yS<)8#{I}Y+!A^DF;ap&QmF+9}A**Te)VpL83`S5X}}L zzZHVK1F)Y!iwrT-sxO#Pj6mUNCQPewvVUer!?QMOb%&yZCOM#Bf5YVppy-am=Vwd+ z3x2!WTpo5~TZPIN(NYd=8=osx)XLn((}BytMvV9++V7+Inav&^0Y?xPirEo^1mxqT zds+X3#t1cXUd*F$yYyDAQuVSwNBu|HsP1a(Sm&u8$Q!7|cR%?qvbz;syt{zo>Xtui z={J{~3^+P{miESLC+tBct-Y1^M-@hy8zGz!aZ6fQv}VsA9HR*z*GMg{4v=Tc)3}{0 z_nL6A4u(Kgtxb3$quVhQ*kVUseIvhlJzX&H%6o?*b*dkparJt}82Jx;og5qi*1sJ1 zlYpE*1B%ZP*<*0-)tF*C&et+XD|Gl|4j1wqD;YDXIX|Q|?;2ySBRsw41o|ZptE)_K z2AI9Cqi-UJL3~GkIx42aTs!k*(1H!s)LTMiivXjqESEI47|~Bfw7XN{KtdltyPkLr zGCJQADeqR3>UM{OsBzjGvuOF2c5I;CQ-j zx_@;_Z7CV2Be{XU`{fNoGdDm=QZX!sB0R<{_A6$GcgV_;U(5>Y!ENm+_KP?EdrAO( zM$6Ue7o7ht@bqdy{C3ayXwAW{yX6Q4iK@8<{e^f&rk_}-{uPWofIn4$+JrnvkW4LmglYRbFE?E=!8mw!kc=60m?Yq!k z5Qt(-6Ta=~)xnscOwhjmkVe{YVg_w~TlNU%2mKC_wM?0n9N6xT&jMJ|2Rss6#EyOt z6&Sz^lG@Dms@yJeu_@I3=2_;@RicY>gx?DTZ1bt3GEOJ2(3M!5Gm|BkAnhy%zxW%P zA*eHV(@U^ujY4e@JVK?|)K$n2;`)H0#w^^SO%6KuFV?^`%?byV!O;rlP4%v8JUJ==Br@A8`B~H*=Q

GE`lEva968# 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 Date: Mon, 28 Mar 2022 17:30:57 +0800 Subject: [PATCH 08/11] =?UTF-8?q?=E3=80=90=E6=A0=B8=E9=85=B8=E3=80=91?= =?UTF-8?q?=E6=A0=B8=E9=85=B8=E6=A3=80=E6=B5=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet-user-server/src/main/resources/mapper/IcNatDao.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/IcNatDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/IcNatDao.xml index 7899c84227..f8b162ee5c 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/IcNatDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/IcNatDao.xml @@ -43,7 +43,7 @@ del_flag = '0' AND customer_id = #{customerId} - AND pids like concat('%', #{agencyId}, '%') + AND (agency_id = #{agencyId} OR pids like concat('%', #{agencyId}, '%')) AND name like concat('%', #{name}, '%') From 567479cb6f82d56b8cd5422d1a91740d65297ad4 Mon Sep 17 00:00:00 2001 From: jianjun Date: Mon, 28 Mar 2022 17:35:26 +0800 Subject: [PATCH 09/11] =?UTF-8?q?=E5=AF=BC=E5=87=BA=E6=A0=B8=E9=85=B8?= =?UTF-8?q?=E6=A3=80=E6=B5=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- epmet-commons/epmet-commons-tools/pom.xml | 20 ++++ .../data-report/data-report-server/pom.xml | 6 - .../com/epmet/dto/form/MyNatListFormDTO.java | 13 +- .../epmet/dto/result/NatListResultDTO.java | 111 ++++++++++-------- epmet-user/epmet-user-server/pom.xml | 19 --- .../com/epmet/controller/IcNatController.java | 53 ++++++++- .../src/main/java/com/epmet/dao/IcNatDao.java | 4 +- .../java/com/epmet/service/IcNatService.java | 8 +- .../epmet/service/impl/IcNatServiceImpl.java | 16 ++- .../src/main/resources/mapper/IcNatDao.xml | 4 +- 10 files changed, 152 insertions(+), 102 deletions(-) diff --git a/epmet-commons/epmet-commons-tools/pom.xml b/epmet-commons/epmet-commons-tools/pom.xml index 7f1fb8e728..e516c5fba7 100644 --- a/epmet-commons/epmet-commons-tools/pom.xml +++ b/epmet-commons/epmet-commons-tools/pom.xml @@ -24,6 +24,7 @@ 2.8.6 1.11.3 1.18.4 + 3.0.3 @@ -177,6 +178,25 @@ javase 3.4.1 + + com.alibaba + easyexcel + ${easyexcel.version} + + + poi + org.apache.poi + + + poi-ooxml + org.apache.poi + + + poi-ooxml-schemas + org.apache.poi + + + diff --git a/epmet-module/data-report/data-report-server/pom.xml b/epmet-module/data-report/data-report-server/pom.xml index 472525e5e7..cf8312e897 100644 --- a/epmet-module/data-report/data-report-server/pom.xml +++ b/epmet-module/data-report/data-report-server/pom.xml @@ -100,12 +100,6 @@ 2.0.0 compile - - com.alibaba - easyexcel - 3.0.3 - compile - diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/MyNatListFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/MyNatListFormDTO.java index b19a1d9caf..e9620dc5d2 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/MyNatListFormDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/MyNatListFormDTO.java @@ -1,17 +1,17 @@ package com.epmet.dto.form; +import com.epmet.commons.tools.dto.form.PageFormDTO; import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; import lombok.Data; import javax.validation.constraints.NotBlank; -import java.io.Serializable; /** * @Description 核酸检测-我的上报记录 * @Author sun */ @Data -public class MyNatListFormDTO implements Serializable { +public class MyNatListFormDTO extends PageFormDTO { private static final long serialVersionUID = 9156247659994638103L; public interface MyNat extends CustomerClientShowGroup { @@ -49,11 +49,6 @@ public class MyNatListFormDTO implements Serializable { * 检测结束时间yyyy-MM-dd HH:mm间yy-mm-dd */ private String endTime; - /** - * 分页参数 - */ - private Integer pageNo = 1; - private Integer pageSize = 10; /** * 核酸记录Id @@ -61,7 +56,9 @@ public class MyNatListFormDTO implements Serializable { @NotBlank(message = "核酸记录Id不能为空", groups = { Detail.class, Del.class, Synchro.class}) private String icNatId; - //token信息 + /** + * token里设置 + */ private String customerId; private String userId; diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/NatListResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/NatListResultDTO.java index d3cbead954..7a62c359a8 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/NatListResultDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/NatListResultDTO.java @@ -1,12 +1,13 @@ package com.epmet.dto.result; +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import java.io.Serializable; -import java.util.ArrayList; import java.util.Date; -import java.util.List; /** * @Description 核酸检测-我的上报记录 @@ -16,61 +17,69 @@ import java.util.List; public class NatListResultDTO implements Serializable { private static final long serialVersionUID = 1L; - //总条数 - private Integer total; - List list = new ArrayList<>(); + /** + * 核酸记录Id + */ + @ExcelIgnore + private String icNatId; + /** + * 组织Id + */ + @ExcelIgnore + private String agencyId; + /** + * 居民端小程序的用户id、数字社区的icResiUserId、其他情况无值 + */ + @ExcelIgnore + private String userId; + /** + * 居民端小程序的人:resi;数字社区的居民:icresi;未关联上的:other + */ + @ExcelIgnore + private String userType; - @Data - public static class NatListDTO { + /** + * 姓名 + */ + @ColumnWidth(20) + @ExcelProperty("姓名") + private String name; - /** - * 核酸记录Id - */ - private String icNatId; - /** - * 组织Id - */ - private String agencyId; - /** - * 居民端小程序的用户id、数字社区的icResiUserId、其他情况无值 - */ - private String userId; - /** - * 居民端小程序的人:resi;数字社区的居民:icresi;未关联上的:other - */ - private String userType; + /** + * 手机号 + */ + @ColumnWidth(20) + @ExcelProperty("手机号") + private String mobile; - /** - * 姓名 - */ - private String name; + /** + * 身份证号 + */ + @ColumnWidth(25) + @ExcelProperty("身份证号") + private String idCard; - /** - * 手机号 - */ - private String mobile; + /** + * 检测时间,yyyy-MM-dd HH:mm + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8") + @ColumnWidth(25) + @ExcelProperty("检测时间") + private Date natTime; - /** - * 身份证号 - */ - private String idCard; + /** + * 检测结果 + */ + @ColumnWidth(20) + @ExcelProperty("检测结果") + private String natResult; - /** - * 检测时间,yyyy-MM-dd HH:mm - */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8") - private Date natTime; + /** + * 检测地点 + */ + @ColumnWidth(30) + @ExcelProperty("检测地点") + private String natAddress; - /** - * 检测结果 - */ - private String natResult; - - /** - * 检测地点 - */ - private String natAddress; - - } } diff --git a/epmet-user/epmet-user-server/pom.xml b/epmet-user/epmet-user-server/pom.xml index 0189ee8ce0..fb8ea8e9b4 100644 --- a/epmet-user/epmet-user-server/pom.xml +++ b/epmet-user/epmet-user-server/pom.xml @@ -18,25 +18,6 @@ epmet-admin-client 2.0.0 - - com.alibaba - easyexcel - 3.0.3 - - - poi - org.apache.poi - - - poi-ooxml - org.apache.poi - - - poi-ooxml-schemas - org.apache.poi - - - com.epmet epmet-user-client diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNatController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNatController.java index 35d3511196..a52e4e2a59 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNatController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNatController.java @@ -1,8 +1,14 @@ package com.epmet.controller; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.ExcelWriter; +import com.alibaba.excel.write.metadata.WriteSheet; import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.aop.NoRepeatSubmit; +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.commons.tools.utils.ExcelUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dto.IcNatDTO; @@ -11,6 +17,8 @@ import com.epmet.dto.form.MyNatListFormDTO; import com.epmet.dto.result.MyNatListResultDTO; import com.epmet.dto.result.NatListResultDTO; import com.epmet.service.IcNatService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.io.IOUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpHeaders; @@ -30,6 +38,7 @@ import java.util.List; * @author generator generator@elink-cn.com * @since v1.0.0 2022-03-25 */ +@Slf4j @RestController @RequestMapping("icNat") public class IcNatController { @@ -69,10 +78,10 @@ public class IcNatController { **/ @NoRepeatSubmit @PostMapping("natlist") - public Result natList(@LoginUser TokenDto tokenDto, @RequestBody MyNatListFormDTO formDTO) { + public Result> natList(@LoginUser TokenDto tokenDto, @RequestBody MyNatListFormDTO formDTO) { formDTO.setCustomerId(tokenDto.getCustomerId()); formDTO.setUserId(tokenDto.getUserId()); - return new Result().ok(icNucleinService.natList(formDTO)); + return new Result>().ok(icNucleinService.natList(formDTO)); } /** @@ -148,5 +157,45 @@ public class IcNatController { } + /** + * @Author sun + * @Description 【核酸】核酸检测信息列表 + **/ + @NoRepeatSubmit + @PostMapping("export") + public void export(@LoginUser TokenDto tokenDto, @RequestBody MyNatListFormDTO formDTO, HttpServletResponse response) { + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setUserId(tokenDto.getUserId()); + + //formDTO.setCustomerId("45687aa479955f9d06204d415238f7cc"); + //formDTO.setUserId("73ae6280e46a6653a5605d51d5462725"); + + formDTO.setPage(false); + + ExcelWriter excelWriter = null; + formDTO.setPageSize(NumConstant.TEN_THOUSAND); + int pageNo = formDTO.getPageNo(); + try { + // 这里 需要指定写用哪个class去写 + String fileName = "核酸检测信息.xlsx"; + excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel(fileName, response),NatListResultDTO.class).build(); + WriteSheet writeSheet = EasyExcel.writerSheet().build(); + PageData data = null; + do { + data = icNucleinService.natList(formDTO); + formDTO.setPageNo(++pageNo); + excelWriter.write(data.getList(), writeSheet); + } while (CollectionUtils.isNotEmpty(data.getList()) && data.getList().size()==formDTO.getPageSize()); + + }catch (Exception e){ + log.error("export exception", e); + }finally { + // 千万别忘记finish 会帮忙关闭流 + if (excelWriter != null) { + excelWriter.finish(); + } + } + } + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcNatDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcNatDao.java index 5ab06f865d..4ac7359f2e 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcNatDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcNatDao.java @@ -29,11 +29,11 @@ public interface IcNatDao extends BaseDao { * @Author sun * @Description 【核酸】核酸检测信息列表 **/ - List getNatList(MyNatListFormDTO formDTO); + List getNatList(MyNatListFormDTO formDTO); /** * @Author sun * @Description 删除/取消同步操作--物理删除业务数据 **/ int delById(@Param("icNatId") String icNatId); -} \ No newline at end of file +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcNatService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcNatService.java index 50bf30b6f8..736cb505df 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcNatService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcNatService.java @@ -1,6 +1,7 @@ package com.epmet.service; import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.commons.tools.page.PageData; import com.epmet.dto.IcNatDTO; import com.epmet.dto.form.AddIcNatFormDTO; import com.epmet.dto.form.MyNatListFormDTO; @@ -33,8 +34,9 @@ public interface IcNatService extends BaseService { /** * @Author sun * @Description 【核酸】核酸检测信息列表 - **/ - NatListResultDTO natList(MyNatListFormDTO formDTO); + * + * @return*/ + PageData natList(MyNatListFormDTO formDTO); /** * @Author sun @@ -59,4 +61,4 @@ public interface IcNatService extends BaseService { * @Description 【核酸】核酸检测信息同步 **/ void synchro(MyNatListFormDTO formDTO); -} \ No newline at end of file +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcNatServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcNatServiceImpl.java index f367748156..f022f10d9b 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcNatServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcNatServiceImpl.java @@ -6,6 +6,7 @@ import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.RenException; +import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.redis.common.CustomerOrgRedis; import com.epmet.commons.tools.redis.common.CustomerStaffRedis; import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache; @@ -90,10 +91,10 @@ public class IcNatServiceImpl extends BaseServiceImpl imp /** * @Author sun * @Description 【核酸】核酸检测信息列表 - **/ + * + * @return*/ @Override - public NatListResultDTO natList(MyNatListFormDTO formDTO) { - NatListResultDTO resultDTO = new NatListResultDTO(); + public PageData natList(MyNatListFormDTO formDTO) { //1.根据orgType值判断是查询当前组织下还是整个客户下数据 if ("current".equals(formDTO.getOrgType())) { //获取工作人员缓存信息 @@ -105,12 +106,9 @@ public class IcNatServiceImpl extends BaseServiceImpl imp } //2.按条件查询业务数据 - PageInfo data = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()) + PageInfo data = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.isPage()) .doSelectPageInfo(() -> baseDao.getNatList(formDTO)); - resultDTO.setTotal((int) data.getTotal()); - resultDTO.setList(data.getList()); - - return resultDTO; + return new PageData(data.getList(),data.getTotal()); } /** @@ -215,4 +213,4 @@ public class IcNatServiceImpl extends BaseServiceImpl imp insert(entity); } -} \ No newline at end of file +} diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/IcNatDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/IcNatDao.xml index f8b162ee5c..a16f593941 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/IcNatDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/IcNatDao.xml @@ -25,7 +25,7 @@ ORDER BY nat_time DESC - SELECT id icNatId, agency_id agencyId, @@ -67,4 +67,4 @@ DELETE FROM ic_nat WHERE id = #{icNatId} - \ No newline at end of file + From 68529ce18a627dc2678567396f6be5fa24503cdb Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Mon, 28 Mar 2022 17:40:27 +0800 Subject: [PATCH 10/11] =?UTF-8?q?=E5=8F=96=E6=B6=88=E5=85=B3=E6=B3=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/form/CancelAttentionFormDTO.java | 33 ------------------- .../form/CancelAttentionPackageFormDTO.java | 19 +++++++++-- .../IcEpidemicSpecialAttentionController.java | 2 +- .../dao/IcEpidemicSpecialAttentionDao.java | 19 +++++++++++ .../IcEpidemicSpecialAttentionService.java | 3 +- ...IcEpidemicSpecialAttentionServiceImpl.java | 23 +++++++++++-- .../mapper/IcEpidemicSpecialAttentionDao.xml | 28 ++++++++++++++++ 7 files changed, 87 insertions(+), 40 deletions(-) delete mode 100644 epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CancelAttentionFormDTO.java diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CancelAttentionFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CancelAttentionFormDTO.java deleted file mode 100644 index bd9e48906c..0000000000 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CancelAttentionFormDTO.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.epmet.dto.form; - -import lombok.Data; - -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; -import java.io.Serializable; -import java.util.List; - -/** - * @Author zxc - * @DateTime 2022/3/28 13:47 - * @DESC - */ -@Data -public class CancelAttentionFormDTO implements Serializable { - - private static final long serialVersionUID = 2252387281427013057L; - - public interface CancelAttentionForm{} - - /** - * 身份证 - */ - @NotBlank(message = "idCard不能为空",groups = CancelAttentionForm.class) - private String idCard; - - /** - * 关注类型,核酸检测:2,疫苗接种:1 - */ - @NotNull(message = "attentionType不能为空",groups = CancelAttentionForm.class) - private Integer attentionType ; -} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CancelAttentionPackageFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CancelAttentionPackageFormDTO.java index db47f3520a..f0c8f9a900 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CancelAttentionPackageFormDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CancelAttentionPackageFormDTO.java @@ -3,6 +3,8 @@ package com.epmet.dto.form; import lombok.Data; import javax.validation.Valid; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; import java.io.Serializable; import java.util.List; @@ -15,6 +17,19 @@ import java.util.List; public class CancelAttentionPackageFormDTO implements Serializable { private static final long serialVersionUID = 2198470055930997870L; - @Valid - private List list; + + public interface CancelAttentionPackageForm{} + + + /** + * 身份证 + */ + @NotNull(message = "idCard不能为空",groups = CancelAttentionPackageForm.class) + private List idCards; + + /** + * 关注类型,核酸检测:2,疫苗接种:1 + */ + @NotNull(message = "attentionType不能为空",groups = CancelAttentionPackageForm.class) + private Integer attentionType ; } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcEpidemicSpecialAttentionController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcEpidemicSpecialAttentionController.java index f7325eca20..42fcc20c23 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcEpidemicSpecialAttentionController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcEpidemicSpecialAttentionController.java @@ -86,7 +86,7 @@ public class IcEpidemicSpecialAttentionController { */ @PostMapping("cancel-attention") public Result cancelAttention(@RequestBody CancelAttentionPackageFormDTO formDTO){ - ValidatorUtils.validateEntity(formDTO, CancelAttentionFormDTO.CancelAttentionForm.class); + ValidatorUtils.validateEntity(formDTO, CancelAttentionPackageFormDTO.CancelAttentionPackageForm.class); icEpidemicSpecialAttentionService.cancelAttention(formDTO); return new Result(); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcEpidemicSpecialAttentionDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcEpidemicSpecialAttentionDao.java index cc1d3ba4a1..11b6b3ab09 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcEpidemicSpecialAttentionDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcEpidemicSpecialAttentionDao.java @@ -5,6 +5,7 @@ import com.epmet.dto.form.VaccinationListFormDTO; import com.epmet.dto.result.VaccinationListResultDTO; import com.epmet.entity.IcEpidemicSpecialAttentionEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -33,4 +34,22 @@ public interface IcEpidemicSpecialAttentionDao extends BaseDao natList(VaccinationListFormDTO formDTO); + /** + * Desc: 取消关注 + * @param list + * @param attentionType + * @author zxc + * @date 2022/3/28 16:59 + */ + void cancelAttention(@Param("list")List list,@Param("attentionType")Integer attentionType); + + /** + * Desc: 查询已经存在的关注 + * @param attentionType + * @param list + * @author zxc + * @date 2022/3/28 17:29 + */ + List getExistList(@Param("attentionType")Integer attentionType,@Param("list")List list); + } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcEpidemicSpecialAttentionService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcEpidemicSpecialAttentionService.java index 2ed2223152..3690df2640 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcEpidemicSpecialAttentionService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcEpidemicSpecialAttentionService.java @@ -3,7 +3,6 @@ package com.epmet.service; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.dto.IcEpidemicSpecialAttentionDTO; -import com.epmet.dto.form.CancelAttentionFormDTO; import com.epmet.dto.form.CancelAttentionPackageFormDTO; import com.epmet.dto.form.VaccinationAddFormDTO; import com.epmet.dto.form.VaccinationListFormDTO; @@ -107,7 +106,7 @@ public interface IcEpidemicSpecialAttentionService extends BaseService entities = ConvertUtils.sourceToTarget(formDTO.getList(), IcEpidemicSpecialAttentionEntity.class); + List idCards = entities.stream().map(m -> m.getIdCard()).collect(Collectors.toList()); + Integer attentionType = entities.get(NumConstant.ZERO).getAttentionType(); + List existList = baseDao.getExistList(attentionType, idCards); + if (CollectionUtils.isNotEmpty(existList)){ + for (String s : existList) { + for (int i = NumConstant.ZERO; i < entities.size(); i++) { + if (s.equals(entities.get(i).getIdCard())){ + entities.remove(i); + continue; + } + } + } + } entities.forEach(e -> { + e.setIsAttention(NumConstant.ONE); e.setOrgId(agencyInfo.getId()); e.setPid(agencyInfo.getPid()); @@ -179,13 +195,16 @@ public class IcEpidemicSpecialAttentionServiceImpl extends BaseServiceImpl + + + UPDATE ic_epidemic_special_attention + SET UPDATED_TIME = NOW(), + IS_ATTENTION = 0 + WHERE del_flag = 0 + AND attention_type = #{attentionType} + AND id_card IN ( + + #{l} + + ) + + + + + \ No newline at end of file From 9c8cb15b5f37320dea1549400b43e2d0cf1f5c01 Mon Sep 17 00:00:00 2001 From: jianjun Date: Mon, 28 Mar 2022 18:32:10 +0800 Subject: [PATCH 11/11] =?UTF-8?q?=E5=AF=BC=E5=87=BA=E6=A0=B8=E9=85=B8?= =?UTF-8?q?=E9=A2=9C=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/epmet/dto/result/NatListResultDTO.java | 3 +++ .../src/main/java/com/epmet/controller/IcNatController.java | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/NatListResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/NatListResultDTO.java index 7a62c359a8..a65563bb5b 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/NatListResultDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/NatListResultDTO.java @@ -3,6 +3,8 @@ package com.epmet.dto.result; import com.alibaba.excel.annotation.ExcelIgnore; import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.HeadStyle; +import com.alibaba.excel.enums.poi.FillPatternTypeEnum; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; @@ -13,6 +15,7 @@ import java.util.Date; * @Description 核酸检测-我的上报记录 * @Author sun */ +@HeadStyle(fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND, fillForegroundColor = 44) @Data public class NatListResultDTO implements Serializable { private static final long serialVersionUID = 1L; diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNatController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNatController.java index a52e4e2a59..db7de0852b 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNatController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNatController.java @@ -179,7 +179,7 @@ public class IcNatController { // 这里 需要指定写用哪个class去写 String fileName = "核酸检测信息.xlsx"; excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel(fileName, response),NatListResultDTO.class).build(); - WriteSheet writeSheet = EasyExcel.writerSheet().build(); + WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").build(); PageData data = null; do { data = icNucleinService.natList(formDTO);