Browse Source

1.修改:居民信息导入,只更新已填写的、(意思就是,上次我填了第一列第二列,提交了。这次我只填了第三第四列,第一第二列空着,那这次我导入之后4列都有值,而不是把1,2列更新为空)

dev
wxz 2 years ago
parent
commit
d856a33edb
  1. 11
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java
  2. 6
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java
  3. 13
      epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml

11
epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java

@ -61,6 +61,17 @@ public interface IcResiUserDao extends BaseDao<IcResiUserEntity> {
**/
void upTable(@Param("tableName") String tableName, @Param("id") String id, @Param("map") Map<String, ?> map);
/**
* @description: 选择性更新只更新不为null的
* @param tableName:
* @param id:
* @param map:
* @return
* @author: WangXianZhang
* @date: 2023/4/23 9:03 PM
*/
void updateTableSelective(@Param("tableName") String tableName, @Param("id") String id, @Param("map") Map<String, ?> map);
List<Map<String, Object>> selectListResiMap(@Param("customerId") String customerId,
@Param("formCode") String formCode,
@Param("conditions") List<ResiUserQueryValueDTO> conditions,

6
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java

@ -547,7 +547,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
if (existingResiMap != null) {
// 修改居民信息
icResiUserDao.upTable(tableName, existingResiMap.get("ID"), columnAndValues);
icResiUserDao.updateTableSelective(tableName, existingResiMap.get("ID"), columnAndValues);
// 任意组织维度一个发生变化,则放到调动居民缓存中
ResiImportChangedData transferData;
@ -747,7 +747,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
if (CollectionUtils.isNotEmpty(subInfos)) {
Map<String, Object> subInfo = subInfos.get(0);
// 附加信息存在,更新附加表内容
icResiUserDao.upTable(targetTableName, subInfo.get("ID").toString(), columnAndValues);
icResiUserDao.updateTableSelective(targetTableName, subInfo.get("ID").toString(), columnAndValues);
} else {
// 新增附加表信息
columnAndValues.put("CREATED_BY", currentUserId);
@ -1577,7 +1577,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
private void updateMainTableResiTypeFlag(IcResiUserTableEnum icResiUserTableEnum, String resiUserId) {
HashMap<String, Boolean> map = new HashMap<>();
map.put(icResiUserTableEnum.getMainTableFlagColumnName(), true);
icResiUserDao.upTable(IcResiUserTableEnum.IC_RESI_USER.getTableName(), resiUserId, map);
icResiUserDao.updateTableSelective(IcResiUserTableEnum.IC_RESI_USER.getTableName(), resiUserId, map);
}
/**

13
epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml

@ -73,6 +73,19 @@
WHERE id = #{id}
</update>
<!-- 选择性更新(只更新不为null的) -->
<update id="updateTableSelective">
UPDATE ${tableName}
SET
<foreach collection="map.entrySet()" index="key" item="value" separator=",">
<if test="value != null and value != ''">
${key} = #{value}
</if>
</foreach>
,UPDATED_TIME = NOW()
WHERE id = #{id}
</update>
<select id="selectListMapById" parameterType="map" resultType="map">
select * from ic_resi_user where del_flag='0' and id=#{icResiUserId} and customer_id=#{customerId}

Loading…
Cancel
Save