Browse Source

居民信息修改生成变更记录、变更明细

dev
sunyuchao 4 years ago
parent
commit
b5871e0a21
  1. 2
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiUserTransferFormDTO.java
  2. 92
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java
  3. 5
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcUserTransferRecordServiceImpl.java

2
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiUserTransferFormDTO.java

@ -63,6 +63,8 @@ public class IcResiUserTransferFormDTO implements Serializable {
*/
private String remark;
//标识,默认为true,为false表示是居民信息修改调用了人员调动的接口,只需要生成调动记录,不涉及修改基础信息
private Boolean idEdit = true;
//token中信息
private String customerId;
private String staffId;

92
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java

@ -58,10 +58,7 @@ import com.epmet.entity.IcUserChangeDetailedEntity;
import com.epmet.entity.IcUserChangeRecordEntity;
import com.epmet.excel.support.ExportResiUserItemDTO;
import com.epmet.feign.*;
import com.epmet.service.IcResiUserService;
import com.epmet.service.IcUserChangeDetailedService;
import com.epmet.service.IcUserChangeRecordService;
import com.epmet.service.UserService;
import com.epmet.service.*;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
@ -114,6 +111,8 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
private IcUserChangeRecordService icUserChangeRecordService;
@Autowired
private IcUserChangeDetailedService icUserChangeDetailedService;
@Autowired
private IcUserTransferRecordService icUserTransferRecordService;
private QueryWrapper<IcResiUserEntity> getWrapper(Map<String, Object> params){
String id = (String)params.get(FieldConstant.ID_HUMP);
@ -317,6 +316,9 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
if (null == entity) {
throw new RenException(String.format("居民信息修改,获取基础信息失败,基础信息Id->", resiUserId));
}
//2022-1-18 信息修改判断基础信息表人员网格、小区、楼栋、单元、房屋维度数据以及十八类的类别数据是否变化,相应生成变更记录和变更明细数据 sun start
icUserChangeRecord(tokenDto, entity, map);
//2022-1-18 sun end
//2.更新主表数据
if (map.size() > NumConstant.ONE) {
map.put("updated_by", tokenDto.getUserId());
@ -347,6 +349,88 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
return resiUserId;
}
/**
* @Author sun
* @Description 居民信息修改--生成变更记录和变更明细
**/
private void icUserChangeRecord(TokenDto tokenDto, IcResiUserEntity entity, LinkedHashMap<String, String> map) {
Date date = (Date) new java.util.Date();
//1.判断维度数据是否修改【网格、小区、楼栋、单元、房间有变化则先走人员调动逻辑】
if ((map.containsKey("GRID_ID") && !entity.getGridId().equals(map.get("GRID_ID"))) || (map.containsKey("VILLAGE_ID") && !entity.getVillageId().equals(map.get("VILLAGE_ID")))
|| (map.containsKey("BUILD_ID") && !entity.getBuildId().equals(map.get("BUILD_ID"))) || (map.containsKey("UNIT_ID") && !entity.getUnitId().equals(map.get("UNIT_ID")))
|| (map.containsKey("HOME_ID") && !entity.getHomeId().equals(map.get("HOME_ID")))) {
IcResiUserTransferFormDTO formDTO = new IcResiUserTransferFormDTO();
formDTO.setIcUserId(entity.getId());
formDTO.setType("in");
formDTO.setNewAgencyId(entity.getAgencyId());
formDTO.setNewGridId(map.containsKey("GRID_ID") ? map.get("GRID_ID") : entity.getGridId());
formDTO.setNewNeighborHoodId(map.containsKey("VILLAGE_ID") ? map.get("VILLAGE_ID") : entity.getVillageId());
formDTO.setNewBuildingId(map.containsKey("BUILD_ID") ? map.get("BUILD_ID") : entity.getBuildId());
formDTO.setNewBuildingUnitId(map.containsKey("UNIT_ID") ? map.get("UNIT_ID") : entity.getUnitId());
formDTO.setNewHouseId(map.containsKey("HOME_ID") ? map.get("HOME_ID") : entity.getHomeId());
formDTO.setTransferTime(date);
formDTO.setIdEdit(false);
formDTO.setCustomerId(tokenDto.getCustomerId());
formDTO.setStaffId(tokenDto.getUserId());
icUserTransferRecordService.add(formDTO);
}
//2.判断类别数据是否修改[类别修改的变更明细里边存修改后的新值,是就存1否就存-1]
Result<List<IcResiCategoryWarnConfigDTO>> resultList = operCustomizeOpenFeignClient.categoryWarnConfigList(tokenDto.getCustomerId());
if (!resultList.success()) {
throw new RuntimeException("居民信息修改,获取客户居民类别预警配置表数据失败");
}
//修改前数据库居民十八类信息值
Map<String, String> hash = icResiUserDao.getCategoryListMap(entity.getId());
//封装变更记录和变更明细数据
//变更记录
IcUserChangeRecordEntity changeRecordEntity = new IcUserChangeRecordEntity();
StringBuffer beforeChangeName = new StringBuffer("");
StringBuffer afterChangeName = new StringBuffer("");
//变更明细
List<IcUserChangeDetailedEntity> list = new ArrayList<>();
IcUserChangeDetailedEntity categoryEntity = null;
for (IcResiCategoryWarnConfigDTO dto : resultList.getData()) {
String oldValue = hash.get(dto.getColumnName());
if (map.containsKey(dto.getColumnName()) && !oldValue.equals(map.get(dto.getColumnName()))) {
//类别修改后的值
String newVlaue = map.get(dto.getColumnName());
beforeChangeName.append(dto.getLabel()).append(":").append("1".equals(oldValue) ? "是" : "否").append(";");
afterChangeName.append(dto.getLabel()).append(":").append("1".equals(newVlaue) ? "是" : "否").append(";");
//变更明细里边存修改后的新值,是就存1否就存-1
categoryEntity = new IcUserChangeDetailedEntity();
categoryEntity.setCustomerId(tokenDto.getCustomerId());
categoryEntity.setAgencyId(entity.getAgencyId());
categoryEntity.setGridId(map.containsKey("GRID_ID") ? map.get("GRID_ID") : entity.getGridId());
categoryEntity.setNeighborHoodId(map.containsKey("VILLAGE_ID") ? map.get("VILLAGE_ID") : entity.getVillageId());
categoryEntity.setBuildingId(map.containsKey("BUILD_ID") ? map.get("BUILD_ID") : entity.getBuildId());
categoryEntity.setBuildingUnitId(map.containsKey("UNIT_ID") ? map.get("UNIT_ID") : entity.getUnitId());
categoryEntity.setHouseId(map.containsKey("HOME_ID") ? map.get("HOME_ID") : entity.getHomeId());
categoryEntity.setIcUserId(entity.getId());
categoryEntity.setType("category");
categoryEntity.setTypeName("类别");
categoryEntity.setFieldName(dto.getColumnName());
categoryEntity.setValue("1".equals(newVlaue) ? 1 : -1);
list.add(categoryEntity);
}
}
//变更记录
CustomerStaffInfoCacheResult staffInfoCache = CustomerStaffRedis.getStaffInfo(tokenDto.getCustomerId(), tokenDto.getUserId());
changeRecordEntity.setCustomerId(tokenDto.getCustomerId());
changeRecordEntity.setOperatorId(tokenDto.getUserId());
changeRecordEntity.setIcUserId(entity.getId());
changeRecordEntity.setOperatorName(staffInfoCache.getRealName());
changeRecordEntity.setIcUserName(map.containsKey("NAME") ? map.get("NAME") : entity.getName());
changeRecordEntity.setType("category");
changeRecordEntity.setTypeName("类别");
changeRecordEntity.setBeforeChangeName(beforeChangeName.toString());
changeRecordEntity.setAfterChangeName(afterChangeName.toString());
changeRecordEntity.setChangeTime(date);
icUserChangeRecordService.insert(changeRecordEntity);
list.forEach(l -> l.setIcUserChangeRecordId(changeRecordEntity.getId()));
icUserChangeDetailedService.insertBatch(list);
}
/**
* @param homeId
* @Description 获取房间内人员

5
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcUserTransferRecordServiceImpl.java

@ -42,6 +42,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
@ -72,6 +73,7 @@ public class IcUserTransferRecordServiceImpl extends BaseServiceImpl<IcUserTrans
* @Description 基础信息人员调动
**/
@Override
@Transactional(rollbackFor = Exception.class)
public void add(IcResiUserTransferFormDTO formDTO) {
//1.判断被调动人员是否有效
IcResiUserDTO resiUserDTO = icResiUserDao.selectIdByIdCard(formDTO.getCustomerId(), null, formDTO.getIcUserId());
@ -111,7 +113,9 @@ public class IcUserTransferRecordServiceImpl extends BaseServiceImpl<IcUserTrans
throw new RenException("9000", "获取被调动人基础信息失败");
}
//4.修改被调动人所属各维度信息或人员状态信息
if (formDTO.getIdEdit()) {
IcResiUserEntity userEntity = new IcResiUserEntity();
userEntity.setId(formDTO.getIcUserId());
if ("out".equals(formDTO.getType())) {
@ -127,6 +131,7 @@ public class IcUserTransferRecordServiceImpl extends BaseServiceImpl<IcUserTrans
userEntity.setHomeId(formDTO.getNewHouseId());
}
icResiUserDao.updateById(userEntity);
}
//5.生成调动记录
CustomerStaffInfoCacheResult staffInfoCache = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getStaffId());

Loading…
Cancel
Save