From 3306ec74ea6c2928bfad48ef7d60af981540492f Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Mon, 28 Mar 2022 15:08:45 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E6=A0=B8=E9=85=B8=E3=80=91=E6=A0=B8?= =?UTF-8?q?=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 | 13 +++ .../com/epmet/dto/form/AddIcNatFormDTO.java | 4 + .../com/epmet/dto/form/MyNatListFormDTO.java | 12 ++ .../com/epmet/controller/IcNatController.java | 52 ++------- .../src/main/java/com/epmet/dao/IcNatDao.java | 8 +- .../java/com/epmet/service/IcNatService.java | 64 +---------- .../epmet/service/impl/IcNatServiceImpl.java | 107 ++++++++---------- .../src/main/resources/mapper/IcNatDao.xml | 4 + 8 files changed, 102 insertions(+), 162 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 a201e11ad0..df1f7db433 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 @@ -2,6 +2,9 @@ package com.epmet.dto; import java.io.Serializable; import java.util.Date; +import java.util.List; + +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; @@ -65,6 +68,7 @@ public class IcNatDTO implements Serializable { /** * 检测时间,精确到分钟 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8") private Date natTime; /** @@ -122,4 +126,13 @@ public class IcNatDTO implements Serializable { */ private Date updatedTime; + /** + * 通知渠道 0小程序通知,1短信通知,多选是数组 + */ + private List channel; + /** + * 通知内容 + */ + 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 f291477154..6000b6a969 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 @@ -20,6 +20,10 @@ public class AddIcNatFormDTO implements Serializable { public interface Nat extends CustomerClientShowGroup { } + /** + * 核酸记录Id,修改时使用 + */ + private String icNatId; /** * 当前网格所属组织Id */ 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 7d5eb73285..b19a1d9caf 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 @@ -16,6 +16,12 @@ public class MyNatListFormDTO implements Serializable { public interface MyNat extends CustomerClientShowGroup { } + public interface Detail extends CustomerClientShowGroup { + } + public interface Del extends CustomerClientShowGroup { + } + public interface Synchro extends CustomerClientShowGroup { + } /** * 身份证号 @@ -49,6 +55,12 @@ public class MyNatListFormDTO implements Serializable { private Integer pageNo = 1; private Integer pageSize = 10; + /** + * 核酸记录Id + */ + @NotBlank(message = "核酸记录Id不能为空", groups = { Detail.class, Del.class, Synchro.class}) + private String icNatId; + //token信息 private String customerId; private String userId; 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 38cb884864..929e95ce4b 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 @@ -36,43 +36,6 @@ public class IcNatController { @Autowired private IcNatService icNucleinService; - @RequestMapping("page") - public Result> page(@RequestParam Map params) { - PageData page = icNucleinService.page(params); - return new Result>().ok(page); - } - - @RequestMapping(value = "{id}", method = {RequestMethod.POST, RequestMethod.GET}) - public Result get(@PathVariable("id") String id) { - IcNatDTO data = icNucleinService.get(id); - return new Result().ok(data); - } - - @NoRepeatSubmit - @PostMapping("save") - public Result save(@RequestBody IcNatDTO dto) { - //效验数据 - ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); - icNucleinService.save(dto); - return new Result(); - } - - @NoRepeatSubmit - @PostMapping("update") - public Result update(@RequestBody IcNatDTO dto) { - //效验数据 - ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); - icNucleinService.update(dto); - return new Result(); - } - - @PostMapping("delete") - public Result delete(@RequestBody String[] ids) { - //效验数据 - AssertUtils.isArrayEmpty(ids, "id"); - icNucleinService.delete(ids); - return new Result(); - } /** * @Author sun @@ -117,8 +80,9 @@ public class IcNatController { **/ @NoRepeatSubmit @PostMapping("detail") - public Result detail(@RequestBody MyNatListFormDTO formDTO) { - return new Result().ok(icNucleinService.detail(formDTO)); + public Result detail(@RequestBody MyNatListFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, MyNatListFormDTO.Detail.class); + return new Result().ok(icNucleinService.detail(formDTO)); } /** @@ -127,7 +91,7 @@ public class IcNatController { **/ @NoRepeatSubmit @PostMapping("edit") - public Result edit(@RequestBody MyNatListFormDTO formDTO) { + public Result edit(@RequestBody AddIcNatFormDTO formDTO) { icNucleinService.edit(formDTO); return new Result(); } @@ -138,7 +102,8 @@ public class IcNatController { **/ @NoRepeatSubmit @PostMapping("del") - public Result del(@RequestBody MyNatListFormDTO formDTO) { + public Result del(@RequestBody MyNatListFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, MyNatListFormDTO.Del.class); icNucleinService.del(formDTO); return new Result<>(); } @@ -149,7 +114,10 @@ public class IcNatController { **/ @NoRepeatSubmit @PostMapping("synchro") - public Result synchro(@RequestBody MyNatListFormDTO formDTO) { + public Result synchro(@LoginUser TokenDto tokenDto, @RequestBody MyNatListFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, MyNatListFormDTO.Synchro.class); + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setUserId(tokenDto.getUserId()); icNucleinService.synchro(formDTO); return new Result(); } 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 5d292bb229..91ce606f2d 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 @@ -6,12 +6,12 @@ import com.epmet.dto.result.MyNatListResultDTO; import com.epmet.dto.result.NatListResultDTO; import com.epmet.entity.IcNatEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import java.util.List; /** * 核酸上报记录 - * * @author generator generator@elink-cn.com * @since v1.0.0 2022-03-25 @@ -30,4 +30,10 @@ public interface IcNatDao extends BaseDao { * @Description 【核酸】核酸检测信息列表 **/ List getNatList(MyNatListFormDTO formDTO); + + /** + * @Author sun + * @Description 删除/取消同步操作--物理删除业务数据 + **/ + boolean 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 1bc5c22b63..2da059b99f 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 @@ -20,66 +20,6 @@ import java.util.Map; */ public interface IcNatService extends BaseService { - /** - * 默认分页 - * - * @param params - * @return PageData - * @author generator - * @date 2022-03-25 - */ - PageData page(Map params); - - /** - * 默认查询 - * - * @param params - * @return java.util.List - * @author generator - * @date 2022-03-25 - */ - List list(Map params); - - /** - * 单条查询 - * - * @param id - * @return IcNucleinDTO - * @author generator - * @date 2022-03-25 - */ - IcNatDTO get(String id); - - /** - * 默认保存 - * - * @param dto - * @return void - * @author generator - * @date 2022-03-25 - */ - void save(IcNatDTO dto); - - /** - * 默认更新 - * - * @param dto - * @return void - * @author generator - * @date 2022-03-25 - */ - void update(IcNatDTO dto); - - /** - * 批量删除 - * - * @param ids - * @return void - * @author generator - * @date 2022-03-25 - */ - void delete(String[] ids); - /** * @Author sun * @Description 核酸检测-上报核酸记录 @@ -102,13 +42,13 @@ public interface IcNatService extends BaseService { * @Author sun * @Description 【核酸】核酸检测信息详情 **/ - NatListResultDTO detail(MyNatListFormDTO formDTO); + IcNatDTO detail(MyNatListFormDTO formDTO); /** * @Author sun * @Description 【核酸】核酸检测信息修改 **/ - void edit(MyNatListFormDTO formDTO); + void edit(AddIcNatFormDTO formDTO); /** * @Author sun 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 d2bafa5070..8a7061152e 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.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; @@ -23,6 +24,7 @@ import com.epmet.entity.IcNatEntity; import com.epmet.service.IcNatService; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -38,61 +40,10 @@ import java.util.Map; * @since v1.0.0 2022-03-25 */ @Service +@Slf4j public class IcNatServiceImpl extends BaseServiceImpl implements IcNatService { - @Override - public PageData page(Map params) { - IPage page = baseDao.selectPage( - getPage(params, FieldConstant.CREATED_TIME, false), - getWrapper(params) - ); - return getPageData(page, IcNatDTO.class); - } - - @Override - public List list(Map params) { - List entityList = baseDao.selectList(getWrapper(params)); - - return ConvertUtils.sourceToTarget(entityList, IcNatDTO.class); - } - - private QueryWrapper getWrapper(Map params) { - String id = (String) params.get(FieldConstant.ID_HUMP); - - QueryWrapper wrapper = new QueryWrapper<>(); - wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); - - return wrapper; - } - - @Override - public IcNatDTO get(String id) { - IcNatEntity entity = baseDao.selectById(id); - return ConvertUtils.sourceToTarget(entity, IcNatDTO.class); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void save(IcNatDTO dto) { - IcNatEntity entity = ConvertUtils.sourceToTarget(dto, IcNatEntity.class); - insert(entity); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void update(IcNatDTO dto) { - IcNatEntity entity = ConvertUtils.sourceToTarget(dto, IcNatEntity.class); - updateById(entity); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void delete(String[] ids) { - // 逻辑删除(@TableLogic 注解) - baseDao.deleteBatchIds(Arrays.asList(ids)); - } - /** * @Author sun * @Description 核酸检测-上报核酸记录 @@ -158,9 +109,19 @@ public class IcNatServiceImpl extends BaseServiceImpl imp * @Description 【核酸】核酸检测信息详情 **/ @Override - public NatListResultDTO detail(MyNatListFormDTO formDTO) { + public IcNatDTO detail(MyNatListFormDTO formDTO) { + IcNatDTO resultDTO = new IcNatDTO(); + //1.查询核酸记录信息 + IcNatEntity entity = baseDao.selectById(formDTO.getIcNatId()); + if (null == resultDTO) { + return resultDTO; + } + resultDTO = ConvertUtils.sourceToTarget(entity, IcNatDTO.class); - return null; + //2.查询对应的通知记录信息 + //TODO + + return resultDTO; } /** @@ -168,8 +129,18 @@ public class IcNatServiceImpl extends BaseServiceImpl imp * @Description 【核酸】核酸检测信息修改 **/ @Override - public void edit(MyNatListFormDTO formDTO) { + public void edit(AddIcNatFormDTO formDTO) { + //1.更新核酸记录表数据 + IcNatEntity entity = ConvertUtils.sourceToTarget(formDTO, IcNatEntity.class); + if (!updateById(entity)) { + log.error(String.format("数据修改失败,核酸记录Id->", formDTO.getIcNatId())); + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "核酸记录修改失败"); + } + //3.新增通知表信息 + if (formDTO.getChannel().size() > NumConstant.ZERO) { + //TODO + } } /** @@ -178,7 +149,11 @@ 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())); + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "数据操作失败"); + } } /** @@ -187,7 +162,25 @@ public class IcNatServiceImpl extends BaseServiceImpl imp **/ @Override public void synchro(MyNatListFormDTO formDTO) { - + //1.根据核酸记录Id查询业务数据并进行必要校验 + IcNatEntity entity = baseDao.selectById(formDTO.getIcNatId()); + if (null == entity || formDTO.getAgencyId().equals(entity.getAgencyId()) + || (!"import".equals(entity.getUserType()) && !"synchro".equals(entity.getUserType()))) { + log.error(String.format("数据同步失败,核酸记录Id->", 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()); + entity.setPids(staffInfo.getAgencyPIds()); + entity.setUserType("synchro"); + 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 0d49f7d6c3..b0e8a01607 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 @@ -61,4 +61,8 @@ + + DELETE FROM ic_nat WHERE id = #{icNatId} + + \ No newline at end of file