diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcHouseChangeRecordDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcHouseChangeRecordDTO.java index d438b5390e..bfe7eaaabf 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcHouseChangeRecordDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcHouseChangeRecordDTO.java @@ -39,7 +39,7 @@ public class IcHouseChangeRecordDTO implements Serializable { /** * 小区ID */ - private String neighborhoodId; + private String neighborHoodId; /** * 楼栋ID diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/HouseAgencyInfoResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/HouseAgencyInfoResultDTO.java new file mode 100644 index 0000000000..d5734e2791 --- /dev/null +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/HouseAgencyInfoResultDTO.java @@ -0,0 +1,34 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2022/5/10 09:21 + * @DESC + */ +@Data +public class HouseAgencyInfoResultDTO implements Serializable { + + private static final long serialVersionUID = 2056073386531945191L; + + private String agencyId; + private String gridId; + private String pids; + private String houseId; + private String neighborHoodId; + private String buildingId; + private String buildingUnitId; + + public HouseAgencyInfoResultDTO() { + this.agencyId = ""; + this.gridId = ""; + this.pids = ""; + this.houseId = ""; + this.neighborHoodId = ""; + this.buildingId = ""; + this.buildingUnitId = ""; + } +} diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/enums/HouseChangeEnums.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/enums/HouseChangeEnums.java new file mode 100644 index 0000000000..bd8cd9a1be --- /dev/null +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/enums/HouseChangeEnums.java @@ -0,0 +1,47 @@ +package com.epmet.enums; + +import org.springframework.util.StringUtils; + +/** + * @Author zxc + * @DateTime 2022/5/9 17:03 + * @DESC + */ +public enum HouseChangeEnums { + + HOUSE_TYPE("HOUSE_TYPE","房屋类型"), + PURPOSE("PURPOSE","房屋用途"), + RENT_FLAG("RENT_FLAG","房屋状态"), + OWNER_NAME("OWNER_NAME","房主姓名"), + OWNER_PHONE("OWNER_PHONE","房主电话"), + OWNER_ID_CARD("OWNER_ID_CARD","房主身份证"); + + private String column; + + private String columnName; + + HouseChangeEnums(String column, String columnName) { + this.column = column; + this.columnName = columnName; + } + + public static String getColumnNameByColumn(String column){ + if(StringUtils.isEmpty(column)){ + return ""; + } + for (HouseChangeEnums v : HouseChangeEnums.values()) { + if (v.column.equals(column)){ + return v.getColumnName(); + } + } + return ""; + } + + public String getColumn() { + return column; + } + + public String getColumnName() { + return columnName; + } +} diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java index 3e625e88c2..1d9903832b 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java @@ -145,7 +145,6 @@ public class HouseController implements ResultDataResolver { //效验数据 ValidatorUtils.validateEntity(formDTO, IcHouseAddFormDTO.UpdateShowGroup.class); String customerId = tokenDTO.getCustomerId(); -// String customerId = "123123"; houseService.updateHouse(customerId, formDTO); return new Result(); } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java index 05d4c86990..e1cb4de562 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java @@ -93,4 +93,13 @@ public interface IcHouseDao extends BaseDao { * @Description 【人房】房屋总数饼图 **/ List houseChart(@Param("orgId") String orgId, @Param("orgType") String orgType); + + /** + * Desc: 根据房屋ID获取房屋信息 + * @param houseId + * @author zxc + * @date 2022/5/10 09:23 + */ + HouseAgencyInfoResultDTO getHouseAgencyInfo(@Param("houseId") String houseId); + } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcHouseChangeRecordEntity.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcHouseChangeRecordEntity.java index 9f9e555b20..920804fec2 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcHouseChangeRecordEntity.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcHouseChangeRecordEntity.java @@ -39,7 +39,7 @@ public class IcHouseChangeRecordEntity extends BaseEpmetEntity { /** * 小区ID */ - private String neighborhoodId; + private String neighborHoodId; /** * 楼栋ID diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java index 2c2101e5b3..dc7960d113 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java @@ -1,4 +1,5 @@ package com.epmet.service.impl; +import java.util.Date; import cn.afterturn.easypoi.excel.entity.TemplateExportParams; import com.alibaba.excel.EasyExcel; @@ -24,8 +25,12 @@ import com.epmet.dao.*; import com.epmet.dto.*; import com.epmet.dto.form.*; import com.epmet.dto.result.*; +import com.epmet.entity.IcHouseChangeDetailEntity; +import com.epmet.entity.IcHouseChangeRecordEntity; import com.epmet.entity.IcHouseEntity; +import com.epmet.enums.HouseChangeEnums; import com.epmet.enums.HousePurposeEnums; +import com.epmet.enums.HouseRentFlagEnums; import com.epmet.enums.HouseTypeEnums; import com.epmet.feign.EpmetCommonServiceOpenFeignClient; import com.epmet.feign.EpmetUserOpenFeignClient; @@ -91,6 +96,10 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver { private CustomerAgencyDao customerAgencyDao; @Autowired private CustomerGridDao customerGridDao; + @Autowired + private IcHouseChangeRecordService changeRecordService; + @Autowired + private IcHouseChangeDetailService changeDetailService; @Override @@ -134,13 +143,96 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver { icHouseDTO.setId(formDTO.getHouseId()); icHouseDTO.setCustomerId(customerId); icHouseDTO.setRentFlag(formDTO.getRentFlag()); + icHouseDTO.setHouseTypeName(HouseTypeEnums.getTypeValue(formDTO.getHouseType())); + icHouseDTO.setPurposeName(HousePurposeEnums.getTypeValue(formDTO.getPurpose())); + icHouseDTO.setRentName(HouseRentFlagEnums.getTypeValue(formDTO.getRentFlag())); //设置 icHouseDTO.setHouseName(getHouseName(formDTO)); + houseChangeRecord(formDTO.getHouseId(), customerId, icHouseDTO); icHouseService.update(icHouseDTO); //删除房屋缓存 icHouseRedis.delHouseInfo(formDTO.getHouseId(),customerId); } + public void houseChangeRecord(String houseId, String customerId, IcHouseDTO houseDTO){ + IcHouseEntity entity = icHouseService.selectById(houseId); + if (null == entity){ + throw new EpmetException("不存在此房屋..."); + } + StringBuilder sbBefore = new StringBuilder(); + StringBuilder sbAfter = new StringBuilder(); + List entityList = new ArrayList<>(); + if (!houseDTO.getHouseType().equals(entity.getHouseType())){ + sbAfter.append(HouseChangeEnums.HOUSE_TYPE.getColumnName()).append(":").append(houseDTO.getHouseTypeName()).append(";"); + sbBefore.append(HouseChangeEnums.HOUSE_TYPE.getColumnName()).append(":").append(HouseTypeEnums.getTypeValue(entity.getHouseType())).append(";"); + IcHouseChangeDetailEntity e = new IcHouseChangeDetailEntity(); + e.setChangeCol(HouseChangeEnums.HOUSE_TYPE.getColumn()); + e.setChangeBefore(HouseTypeEnums.getTypeValue(entity.getHouseType())); + e.setChangeAfter(houseDTO.getHouseTypeName()); + entityList.add(e); + } + if (!houseDTO.getPurpose().equals(entity.getPurpose())){ + sbAfter.append(HouseChangeEnums.PURPOSE.getColumnName()).append(":").append(houseDTO.getPurposeName()).append(";"); + sbBefore.append(HouseChangeEnums.PURPOSE.getColumnName()).append(":").append(HousePurposeEnums.getTypeValue(entity.getPurpose())).append(";"); + IcHouseChangeDetailEntity e = new IcHouseChangeDetailEntity(); + e.setChangeCol(HouseChangeEnums.PURPOSE.getColumn()); + e.setChangeAfter(houseDTO.getPurposeName()); + e.setChangeBefore(HousePurposeEnums.getTypeValue(entity.getPurpose())); + entityList.add(e); + } + if (!houseDTO.getRentFlag().equals(entity.getRentFlag())){ + sbAfter.append(HouseChangeEnums.RENT_FLAG.getColumnName()).append(":").append(houseDTO.getRentName()).append(";"); + sbBefore.append(HouseChangeEnums.RENT_FLAG.getColumnName()).append(":").append(HouseRentFlagEnums.getTypeValue(entity.getRentFlag())).append(";"); + IcHouseChangeDetailEntity e = new IcHouseChangeDetailEntity(); + e.setChangeCol(HouseChangeEnums.RENT_FLAG.getColumn()); + e.setChangeAfter(houseDTO.getRentName()); + e.setChangeBefore(HouseRentFlagEnums.getTypeValue(entity.getRentFlag())); + entityList.add(e); + } + if (!houseDTO.getOwnerName().equals(entity.getOwnerName())){ + sbAfter.append(HouseChangeEnums.OWNER_NAME.getColumnName()).append(":").append(houseDTO.getOwnerName()).append(";"); + sbBefore.append(HouseChangeEnums.OWNER_NAME.getColumnName()).append(":").append(entity.getOwnerName()).append(";"); + IcHouseChangeDetailEntity e = new IcHouseChangeDetailEntity(); + e.setChangeCol(HouseChangeEnums.OWNER_NAME.getColumn()); + e.setChangeAfter(houseDTO.getOwnerName()); + e.setChangeBefore(entity.getOwnerName()); + entityList.add(e); + } + if (!houseDTO.getOwnerPhone().equals(entity.getOwnerPhone())){ + sbAfter.append(HouseChangeEnums.OWNER_PHONE.getColumnName()).append(":").append(houseDTO.getOwnerPhone()).append(";"); + sbBefore.append(HouseChangeEnums.OWNER_PHONE.getColumnName()).append(":").append(entity.getOwnerPhone()).append(";"); + IcHouseChangeDetailEntity e = new IcHouseChangeDetailEntity(); + e.setChangeCol(HouseChangeEnums.OWNER_PHONE.getColumn()); + e.setChangeAfter(houseDTO.getOwnerPhone()); + e.setChangeBefore(entity.getOwnerPhone()); + entityList.add(e); + } + if (!houseDTO.getOwnerIdCard().equals(entity.getOwnerIdCard())){ + sbAfter.append(HouseChangeEnums.OWNER_ID_CARD.getColumnName()).append(":").append(houseDTO.getOwnerIdCard()).append(";"); + sbBefore.append(HouseChangeEnums.OWNER_ID_CARD.getColumnName()).append(":").append(entity.getOwnerIdCard()).append(";"); + IcHouseChangeDetailEntity e = new IcHouseChangeDetailEntity(); + e.setChangeCol(HouseChangeEnums.OWNER_ID_CARD.getColumn()); + e.setChangeAfter(houseDTO.getOwnerIdCard()); + e.setChangeBefore(entity.getOwnerIdCard()); + entityList.add(e); + } + if (StringUtils.isNotBlank(sbAfter)){ + String before = sbBefore.substring(NumConstant.ZERO, sbBefore.length() - NumConstant.ONE); + String after = sbAfter.substring(NumConstant.ZERO, sbAfter.length() - NumConstant.ONE); + HouseAgencyInfoResultDTO houseAgencyInfo = icHouseDao.getHouseAgencyInfo(houseId); + IcHouseChangeRecordEntity recordEntity = ConvertUtils.sourceToTarget(houseAgencyInfo, IcHouseChangeRecordEntity.class); + recordEntity.setCustomerId(customerId); + recordEntity.setChangeBefore(before); + recordEntity.setChangeAfter(after); + changeRecordService.insert(recordEntity); + entityList.forEach(e -> { + e.setCustomerId(customerId); + e.setRecordId(recordEntity.getId()); + }); + changeDetailService.insertBatch(entityList); + } + } + @Override @Transactional(rollbackFor = Exception.class) public void update2Rent(RentHouseFormDTO formDTO) { diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml index 49472d0dc7..1228478671 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml @@ -344,4 +344,19 @@ GROUP BY rent_flag + + +