From 958c8c8af9236edd91b73ead3074013a5aa3d8ad Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Wed, 27 Oct 2021 17:37:47 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/IcResiUserController.java | 4 +- .../java/com/epmet/dao/IcResiUserDao.java | 10 ++++ .../com/epmet/service/IcResiUserService.java | 2 +- .../service/impl/IcResiUserServiceImpl.java | 54 +++++++++++++++++-- .../main/resources/mapper/IcResiUserDao.xml | 23 +++++--- 5 files changed, 78 insertions(+), 15 deletions(-) diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java index 0fdf14cf48..415dcd9323 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java @@ -121,8 +121,8 @@ public class IcResiUserController { * @Description 党建互联平台--修改居民信息 **/ @PostMapping("edit") - public Result edit(@LoginUser TokenDto tokenDto, @RequestBody IcResiUserFormDTO formDTO) { - icResiUserService.edit(formDTO); + public Result edit(@LoginUser TokenDto tokenDto, @RequestBody List formDTO) { + icResiUserService.edit(tokenDto, formDTO); return new Result(); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java index 7b45e51552..3ddc71fec4 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java @@ -33,5 +33,15 @@ import java.util.Map; @Mapper public interface IcResiUserDao extends BaseDao { + /** + * @Author sun + * @Description 居民信息各表新增数据 + **/ void add(@Param("tableName") String tableName, @Param("map") Map map); + + /** + * @Author sun + * @Description 更新或新增居民信息各表数据 + **/ + void upTable(@Param("tableName") String tableName, @Param("id") String id, @Param("map") Map map); } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java index f4bc23b00f..fe66ec72e6 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java @@ -105,5 +105,5 @@ public interface IcResiUserService extends BaseService { * @Author sun * @Description 党建互联平台--修改居民信息 **/ - void edit(IcResiUserFormDTO formDTO); + void edit(TokenDto tokenDto, List formDTO); } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java index 2bc1390f19..e255ee7309 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java @@ -21,6 +21,7 @@ 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.exception.RenException; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; @@ -34,6 +35,7 @@ import com.epmet.entity.IcResiUserEntity; import com.epmet.feign.GovOrgOpenFeignClient; import com.epmet.redis.IcResiUserRedis; import com.epmet.service.IcResiUserService; +import oracle.sql.NUMBER; import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -41,10 +43,7 @@ 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.List; -import java.util.Map; -import java.util.UUID; +import java.util.*; /** * 用户基础信息 @@ -163,7 +162,52 @@ public class IcResiUserServiceImpl extends BaseServiceImpl formDTO) { + //1.校验主表数据是否存在 + String resiUserId = ""; + Map map = new HashMap<>(); + for (IcResiUserFormDTO d : formDTO) { + if ("ic_resi_user".equals(d.getTableName())) { + map = d.getList().get(0); + if (!map.containsKey("ID")) { + throw new RenException(String.format("居民信息修改-居民信息表主键值为空")); + } + resiUserId = map.get("ID"); + } + } + if (null == map) { + throw new RenException(String.format("居民信息修改,参数错误,未传入基础信息Id")); + } + IcResiUserEntity entity = baseDao.selectById(resiUserId); + if (null == entity) { + throw new RenException(String.format("居民信息修改,获取基础信息失败,基础信息Id->", resiUserId)); + } + //2.更新主表数据 + if (map.size() > NumConstant.ONE) { + map.put("updated_by", tokenDto.getUserId()); + baseDao.upTable("ic_resi_user", resiUserId, map); + } + + //3.循环更新或新增字表数据 + String finalResiUserId = resiUserId; + formDTO.forEach(d -> { + if (!"ic_resi_user".equals(d.getTableName())) { + d.getList().forEach(hash -> { + hash.put("updated_by", tokenDto.getUserId()); + if (!hash.containsKey("ID")) { + hash.put("id", UUID.randomUUID().toString().replaceAll("-", "")); + hash.put("ic_resi_user", finalResiUserId); + hash.put("customer_id", tokenDto.getCustomerId()); + hash.put("created_by", tokenDto.getUserId()); + //字表新增数据 + baseDao.add(d.getTableName(), hash); + } else { + //字表更新数据 + baseDao.upTable(d.getTableName(), hash.get("ID"), hash); + } + }); + } + }); } diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml index 2631d213fd..a80df030b9 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml @@ -15,15 +15,24 @@ ,UPDATED_TIME ) values ( - - #{value} - - ,'0' - ,'0' - ,NOW() - ,NOW() + + #{value} + + ,'0' + ,'0' + ,NOW() + ,NOW() ) + + UPDATE ${tableName} + SET + + ${key} = #{value} + + ,UPDATED_TIME = NOW() + WHERE id = #{id} + \ No newline at end of file