From f57a120d0f2e877bd40e2e20e8bf4f971506db0f Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Fri, 11 Nov 2022 15:17:22 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E7=96=AB=E8=8B=97=E6=8E=A5=E7=A7=8D?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E5=A2=9E=E5=8A=A0=E6=98=AF=E5=90=A6=E6=9C=AC?= =?UTF-8?q?=E8=BE=96=E5=8C=BA=E5=B1=85=E6=B0=91=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/dto/IcVaccineRelationDTO.java | 5 +++++ .../epmet/dto/result/IcVaccineListResultDTO.java | 7 +++++++ .../com/epmet/entity/IcVaccineRelationEntity.java | 5 +++++ .../epmet/service/impl/IcVaccineServiceImpl.java | 15 ++++++++------- .../V0.0.87__alter_ic_vaccine_relation.sql | 5 +++++ .../src/main/resources/mapper/IcVaccineDao.xml | 3 ++- 6 files changed, 32 insertions(+), 8 deletions(-) create mode 100644 epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.87__alter_ic_vaccine_relation.sql diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcVaccineRelationDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcVaccineRelationDTO.java index 7939293b5b..5fcb403a1e 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcVaccineRelationDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcVaccineRelationDTO.java @@ -50,6 +50,11 @@ public class IcVaccineRelationDTO implements Serializable { */ private String userType; + /** + * 是否本辖区居民,1:是;0:否 + */ + private String isLocalResiUser; + /** * 删除标识 */ diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcVaccineListResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcVaccineListResultDTO.java index 87480268cf..1764d1c61c 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcVaccineListResultDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcVaccineListResultDTO.java @@ -85,5 +85,12 @@ public class IcVaccineListResultDTO implements Serializable { @ExcelProperty(value = "疫苗厂家",order = 7) private String manufacturer; + /** + * 是否本辖区居民,1:是;0:否 + */ + @ExcelIgnore + private String isLocalResiUser; + + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcVaccineRelationEntity.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcVaccineRelationEntity.java index d4cfb6ad48..cbacf0b140 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcVaccineRelationEntity.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcVaccineRelationEntity.java @@ -49,4 +49,9 @@ public class IcVaccineRelationEntity extends BaseEpmetEntity { */ private String userType; + /** + * 是否本辖区居民,1:是;0:否 + */ + private String isLocalResiUser; + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcVaccineServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcVaccineServiceImpl.java index 6d183807ab..cdb0e2348b 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcVaccineServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcVaccineServiceImpl.java @@ -23,10 +23,7 @@ import com.epmet.dao.IcVaccineDao; import com.epmet.dao.IcVaccineRelationDao; import com.epmet.dto.IcVaccineDTO; import com.epmet.dto.form.*; -import com.epmet.dto.result.IcVaccineListResultDTO; -import com.epmet.dto.result.LoginUserDetailsResultDTO; -import com.epmet.dto.result.UploadImgResultDTO; -import com.epmet.dto.result.VaccineListDTO; +import com.epmet.dto.result.*; import com.epmet.entity.IcResiUserEntity; import com.epmet.entity.IcVaccineEntity; import com.epmet.entity.IcVaccineRelationEntity; @@ -369,7 +366,7 @@ public class IcVaccineServiceImpl extends BaseServiceImpl query = new LambdaQueryWrapper<>(); @@ -440,6 +437,7 @@ public class IcVaccineServiceImpl extends BaseServiceImpl #{endTime} - AND b.IS_RESI_USER = #{isResiUser} + AND a.is_local_resi_user = #{isResiUser} ORDER BY b.INOCULATE_TIME DESC, b.id ASC From 9cce2df712da319ab52aa3a99827393dc45fd0e5 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Fri, 11 Nov 2022 17:49:29 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E5=8E=86=E5=8F=B2=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E8=B5=8B=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/controller/IcVaccineController.java | 7 +++ .../main/java/com/epmet/dao/IcVaccineDao.java | 6 +++ .../com/epmet/service/IcVaccineService.java | 2 + .../service/impl/IcVaccineServiceImpl.java | 45 +++++++++++++++++++ .../main/resources/mapper/IcVaccineDao.xml | 42 +++++++++++++++++ 5 files changed, 102 insertions(+) diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcVaccineController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcVaccineController.java index 8c742919a7..cf78a5535a 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcVaccineController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcVaccineController.java @@ -277,5 +277,12 @@ public class IcVaccineController implements ResultDataResolver { return new Result<>(); } + @PostMapping("initVaccineLocal") + public Result initVaccineLocal(){ + icVaccineService.initVaccineLocal(); + return new Result(); + } + + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcVaccineDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcVaccineDao.java index 55b4591be3..c081011f88 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcVaccineDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcVaccineDao.java @@ -7,6 +7,7 @@ import com.epmet.dto.form.MyNatListFormDTO; import com.epmet.dto.form.VaccineListFormDTO; import com.epmet.dto.result.IcVaccineListResultDTO; import com.epmet.dto.result.MyNatListResultDTO; +import com.epmet.dto.result.RelationAndNatResultDTO; import com.epmet.entity.IcVaccineEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -72,4 +73,9 @@ public interface IcVaccineDao extends BaseDao { */ List getVaccineListByIdCard(@Param("idCard") String idCard,@Param("time") String time); + List initVaccineLocal(); + + void updateRelation(List list); + + void updateRelationOther(@Param("isLocalResiUser") String isLocalResiUser); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcVaccineService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcVaccineService.java index c89b5f2db4..609297b255 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcVaccineService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcVaccineService.java @@ -68,4 +68,6 @@ public interface IcVaccineService extends BaseService { void edit(AddIcVaccineFormDTO formDTO); void del(IcVaccineFormDTO formDTO); + + void initVaccineLocal(); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcVaccineServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcVaccineServiceImpl.java index cdb0e2348b..0d6b3418bd 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcVaccineServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcVaccineServiceImpl.java @@ -18,6 +18,7 @@ import com.epmet.commons.tools.redis.common.CustomerStaffRedis; import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache; import com.epmet.commons.tools.utils.*; import com.epmet.constants.ImportTaskConstants; +import com.epmet.dao.IcNatDao; import com.epmet.dao.IcResiUserDao; import com.epmet.dao.IcVaccineDao; import com.epmet.dao.IcVaccineRelationDao; @@ -79,6 +80,8 @@ public class IcVaccineServiceImpl extends BaseServiceImpl pageInfo = PageHelper.startPage(no, NumConstant.ONE_THOUSAND).doSelectPageInfo(() -> baseDao.initVaccineLocal()); + List list = pageInfo.getList(); + size = list.size(); + if (CollectionUtils.isNotEmpty(list)){ + List users = icNatDao.getResiByIdCards(list.stream().map(m -> m.getIdCard()).distinct().collect(Collectors.toList())); + if (CollectionUtils.isNotEmpty(users)){ + for (RelationAndNatResultDTO l : list) { + for (IcResiUserEntity u : users) { + if (l.getStaffAgencyIdPath().contains(u.getAgencyId())){ + l.setIsLocalResiUser(NumConstant.ONE_STR); + break; + } + } + } + updateRelation(list,NumConstant.ONE_STR); + } + } + no++; + }while (size == NumConstant.ONE_THOUSAND); + // 其他类型的userType直接是居民的组织信息,所以直接赋值 is_local_resi_user = '1' + updateRelation(null,NumConstant.TWO_STR); + log.error("/epmetuser/icNat/initNatLocal更新核酸检测记录关系表,是否是本辖区居民标志 end"); + } + + @Transactional(rollbackFor = Exception.class) + public void updateRelation(List list,String type){ + if (NumConstant.ONE_STR.equals(type)){ + if (CollectionUtils.isNotEmpty(list)){ + baseDao.updateRelation(list); + } + }else { + baseDao.updateRelationOther("1"); + baseDao.updateRelationOther("0"); + } + } + } diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/IcVaccineDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/IcVaccineDao.xml index d4a58ec8a9..a580d72a00 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/IcVaccineDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/IcVaccineDao.xml @@ -184,4 +184,46 @@ and ID_CARD = #{idCard} and DATE_FORMAT( INOCULATE_TIME, '%Y-%m-%d' ) = #{time} + + + + + UPDATE ic_vaccine_relation + + + + when ID = #{l.relationId} then #{l.isLocalResiUser} + + + updated_time = NOW() + + WHERE ID IN( + + #{l.relationId} + ) + + + UPDATE ic_vaccine_relation a + INNER JOIN ic_vaccine b ON a.ic_vaccine_id = b.id + set a.is_local_resi_user = #{isLocalResiUser}, + a.updated_time = NOW() + where a.user_type != 'import' + + and b.USER_ID is not null + and b.USER_ID != '' + + + and (b.USER_ID is null or b.USER_ID ='') + + From d02b0fb6509b914dde0710ac988f373a7e62677d Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Mon, 14 Nov 2022 09:03:40 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E6=98=AF=E5=90=A6=E6=9C=AC=E5=9C=B0?= =?UTF-8?q?=E5=B1=85=E6=B0=91=E7=9A=84pids=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/service/impl/IcNatServiceImpl.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) 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 fe452ead61..8d0486a925 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 @@ -703,28 +703,28 @@ public class IcNatServiceImpl extends BaseServiceImpl imp /** * 创建nat关系 * @param natId - * @param currentUserAgencyId 居民所属组织 + * @param currentResiAgencyId 居民所属组织 * @param staffAgencyId 工作人员所属组织 * @param agencyPids 工作人员所属组织路径 */ - private void createNatRelation(String natId, String currentUserAgencyId, String agencyPids,String staffAgencyId) { + private void createNatRelation(String natId, String currentResiAgencyId, String agencyPids,String staffAgencyId) { // 没有关系创建关系,有关系就跳过 // 2022-10-25 修改:不管是不是本辖区居民,都创建关系,用 is_local_resi_user区分是不是本辖区居民 // 组织ID都改成工作人员所属组织ID LambdaQueryWrapper query = new LambdaQueryWrapper<>(); query.eq(IcNatRelationEntity::getIcNatId, natId); - query.eq(IcNatRelationEntity::getAgencyId, currentUserAgencyId); + query.eq(IcNatRelationEntity::getAgencyId, currentResiAgencyId); if (icNatRelationDao.selectCount(query) > 0) { return; } IcNatRelationEntity relation = new IcNatRelationEntity(); - relation.setAgencyId(currentUserAgencyId); - relation.setPids(String.join(":", Arrays.asList(agencyPids, currentUserAgencyId))); + relation.setAgencyId(currentResiAgencyId); + relation.setPids(String.join(":", Arrays.asList(agencyPids, staffAgencyId))); relation.setIcNatId(natId); relation.setUserType("import"); - relation.setIsLocalResiUser(agencyPids.contains(currentUserAgencyId) ? NumConstant.ONE_STR : NumConstant.ZERO_STR); + relation.setIsLocalResiUser(agencyPids.contains(currentResiAgencyId) ? NumConstant.ONE_STR : NumConstant.ZERO_STR); icNatRelationDao.insert(relation); }