java110-bean/src/main/java/com/java110/dto/FloorDto.java
@@ -1,7 +1,10 @@ package com.java110.dto; import com.java110.dto.floorAttr.FloorAttrDto; import java.io.Serializable; import java.util.Date; import java.util.List; /** * @ClassName FloorDto @@ -44,6 +47,8 @@ private Date createTime; private String statusCd = "0"; private List<FloorAttrDto> floorAttrDto; public String getFloorId() { return floorId; @@ -132,4 +137,12 @@ public void setStatusCd(String statusCd) { this.statusCd = statusCd; } public List<FloorAttrDto> getFloorAttrDto() { return floorAttrDto; } public void setFloorAttrDto(List<FloorAttrDto> floorAttrDto) { this.floorAttrDto = floorAttrDto; } } java110-bean/src/main/java/com/java110/dto/RoomAttrDto.java
@@ -13,7 +13,6 @@ * add by wuxw 2019/4/24 **/ public class RoomAttrDto extends PageDto implements Serializable { private String attrId; private String specCd; private String value; java110-bean/src/main/java/com/java110/dto/floorAttr/FloorAttrDto.java
@@ -19,6 +19,9 @@ private String specCd; private String communityId; private String value; private String specName; private String valueName; private String listShow; private Date createTime; @@ -73,4 +76,28 @@ public void setStatusCd(String statusCd) { this.statusCd = statusCd; } public String getSpecName() { return specName; } public void setSpecName(String specName) { this.specName = specName; } public String getValueName() { return valueName; } public void setValueName(String valueName) { this.valueName = valueName; } public String getListShow() { return listShow; } public void setListShow(String listShow) { this.listShow = listShow; } } java110-db/src/main/resources/mapper/community/FloorAttrServiceDaoImplMapper.xml
@@ -84,9 +84,22 @@ <!-- 查询考勤班组属性信息 add by wuxw 2018-07-03 --> <select id="getFloorAttrInfo" parameterType="Map" resultType="Map"> select t.floor_id,t.floor_id floorId,t.attr_id,t.attr_id attrId,t.spec_cd,t.spec_cd specCd,t.status_cd,t.status_cd statusCd,t.community_id,t.community_id communityId,t.b_id,t.b_id bId,t.value specCd,t.status_cd,t.status_cd statusCd,t.community_id,t.community_id communityId,t.b_id,t.b_id bId,t.value, s.spec_name specName, v.value_name valueName, s.list_show listShow from f_floor_attr t where 1 =1 left join attr_spec s on t.spec_cd = s.spec_cd and s.status_cd = '0' and s.table_name = 'building_room_attr' left join attr_value v on t.`value` = v.`value` and t.spec_cd = v.spec_cd and v.status_cd = '0' where 1=1 <if test="floorIds !=null and floorIds != ''"> and t.floor_id in <foreach collection="floorIds" item="item" index="index" open="(" close=")" separator=","> #{item} </foreach> </if> <if test="floorId !=null and floorId != ''"> and t.floor_id= #{floorId} </if> java110-interface/src/main/java/com/java110/intf/community/IRoomAttrInnerServiceSMO.java
@@ -50,4 +50,12 @@ */ @RequestMapping(value = "/saveRoomAttr", method = RequestMethod.POST) int saveRoomAttr(@RequestBody RoomAttrPo roomAttrPo); /** * 查询<p>小区楼</p>总记录数 * * @param roomAttrPo 数据对象分享 * @return 小区下的小区楼记录数 */ @RequestMapping(value = "/updateRoomAttrInfoInstance", method = RequestMethod.POST) int updateRoomAttrInfoInstance(@RequestBody RoomAttrPo roomAttrPo); } service-community/src/main/java/com/java110/community/dao/IRoomAttrServiceDao.java
@@ -62,7 +62,7 @@ * @param info 修改信息 * @throws DAOException DAO 异常信息 */ void updateRoomAttrInfoInstance(Map info) throws DAOException; int updateRoomAttrInfoInstance(Map info) throws DAOException; /** service-community/src/main/java/com/java110/community/dao/impl/RoomAttrServiceDaoImpl.java
@@ -102,7 +102,7 @@ * @throws DAOException */ @Override public void updateRoomAttrInfoInstance(Map info) throws DAOException { public int updateRoomAttrInfoInstance(Map info) throws DAOException { logger.debug("修改小区房屋属性信息Instance 入参 info : {}", info); int saveFlag = sqlSessionTemplate.update("roomAttrServiceDaoImpl.updateRoomAttrInfoInstance", info); @@ -110,6 +110,7 @@ if (saveFlag < 1) { throw new DAOException(ResponseConstant.RESULT_PARAM_ERROR, "修改小区房屋属性信息Instance数据失败:" + JSONObject.toJSONString(info)); } return saveFlag; } /** service-community/src/main/java/com/java110/community/smo/impl/FloorInnerServiceSMOImpl.java
@@ -1,5 +1,8 @@ package com.java110.community.smo.impl; import com.java110.community.dao.IFloorAttrServiceDao; import com.java110.dto.floorAttr.FloorAttrDto; import com.java110.intf.community.IFloorAttrInnerServiceSMO; import com.java110.utils.util.BeanConvertUtil; import com.java110.community.dao.IFloorServiceDao; import com.java110.core.base.smo.BaseServiceSMO; @@ -34,6 +37,9 @@ @Autowired private IUserInnerServiceSMO userInnerServiceSMOImpl; @Autowired private IFloorAttrServiceDao floorAttrServiceDaoImpl; /** * 查询 信息 @@ -101,9 +107,35 @@ //根据 userId 查询用户信息 List<UserDto> users = userInnerServiceSMOImpl.getUserInfo(userIds); List<String> floorIds = new ArrayList<>(); for (FloorDto floor : floors) { floorIds.add(floor.getFloorId()); refreshFloor(floor, users); } Map info = new HashMap(); info.put("floorIds", floorIds.toArray(new String[floorIds.size()])); info.put("communityId", floors.get( 0 ).getCommunityId()); List<FloorAttrDto> floorAttrDtos = BeanConvertUtil.covertBeanList(floorAttrServiceDaoImpl.getFloorAttrInfo(info), FloorAttrDto.class); if (floorAttrDtos == null || floorAttrDtos.size() < 1) { return floors; } for (FloorDto tmpFloorDto : floors) { List<FloorAttrDto> tmpCommunityAttrDtos = new ArrayList<>(); for (FloorAttrDto floorAttrDto : floorAttrDtos) { if (tmpFloorDto.getCommunityId().equals(floorAttrDto.getCommunityId()) && tmpFloorDto.getFloorId().equals( floorAttrDto.getFloorId() )) { tmpCommunityAttrDtos.add(floorAttrDto); } } tmpFloorDto.setFloorAttrDto(tmpCommunityAttrDtos); } return floors; } service-community/src/main/java/com/java110/community/smo/impl/RoomAttrInnerServiceSMOImpl.java
@@ -61,6 +61,11 @@ return roomAttrServiceDaoImpl.saveRoomAttr(BeanConvertUtil.beanCovertMap(roomAttrPo)); } @Override public int updateRoomAttrInfoInstance(@RequestBody RoomAttrPo roomAttrPo) { return roomAttrServiceDaoImpl.updateRoomAttrInfoInstance(BeanConvertUtil.beanCovertMap(roomAttrPo)); } public IRoomAttrServiceDao getRoomAttrServiceDaoImpl() { return roomAttrServiceDaoImpl; } service-job/src/main/java/com/java110/job/adapt/hcGov/HcGovConstant.java
@@ -37,15 +37,17 @@ public static final String GOV_SWITCH = "GOV_SWITCH"; // 推送政务开关 //政务小区编码 //政务小区编码/楼栋外部便阿门/房屋外部编码/业主外部编码 SPEC_CD public static final String EXT_COMMUNITY_ID = "9329000004"; //添加楼栋 public static final String ADD_FLOOR_ACTION = "ADD_FLOOR"; //修改楼栋 public static final String EDIT_FLOOR_ACTION = "EDIT_FLOOR"; //删除楼栋 public static final String DEL_FLOOR_ACTION = "DEL_FLOOR"; //添加房屋 public static final String ADD_ROOM_ACTION = "ADD_ROOM"; //修改房屋 public static final String EDIT_ROOM_ACTION = "EDIT_ROOM"; public static void generatorProducerSign(JSONObject header, JSONObject body, String code) { service-job/src/main/java/com/java110/job/adapt/hcGov/floor/AddFloorToHcGovAdapt.java
@@ -93,7 +93,7 @@ communityDto.setCommunityId(floorPo.getCommunityId()); List<CommunityDto> communityDtos = communityInnerServiceSMOImpl.queryCommunitys(communityDto); Assert.listOnlyOne(communityDtos, "未包含小区信息"); Assert.listNotNull(communityDtos, "未包含小区信息"); CommunityDto tmpCommunityDto = communityDtos.get(0); String extCommunityId = ""; String communityId = tmpCommunityDto.getCommunityId(); service-job/src/main/java/com/java110/job/adapt/hcGov/floor/AddFloorToHcGovReturnAdapt.java
@@ -23,6 +23,7 @@ import com.java110.intf.common.IHcGovTranslateInnerServiceSMO; import com.java110.intf.community.ICommunityInnerServiceSMO; import com.java110.intf.community.IFloorAttrInnerServiceSMO; import com.java110.job.adapt.hcGov.HcGovConstant; import com.java110.job.adapt.hcGov.IReportReturnDataAdapt; import com.java110.po.floorAttr.FloorAttrPo; import org.springframework.beans.factory.annotation.Autowired; @@ -59,7 +60,7 @@ FloorAttrDto floorAttrDto = new FloorAttrDto(); floorAttrDto.setFloorId(hcGovTranslateDtos.get(0).getObjId()); floorAttrDto.setCommunityId(hcGovTranslateDtos.get(0).getCommunityId()); floorAttrDto.setSpecCd(CommunityAttrDto.SPEC_CD_GOV); floorAttrDto.setSpecCd( HcGovConstant.EXT_COMMUNITY_ID); List<FloorAttrDto> floorAttrDtos = floorAttrInnerServiceSMOImpl.queryFloorAttrs(floorAttrDto); FloorAttrPo floorAttrPo = new FloorAttrPo(); service-job/src/main/java/com/java110/job/adapt/hcGov/floor/EditFloorToHcGovAdapt.java
@@ -75,19 +75,19 @@ //JSONObject businessOwnerCar = data.getJSONObject("businessOwnerCar"); for (int bOwnerCarIndex = 0; bOwnerCarIndex < businessOwnerCars.size(); bOwnerCarIndex++) { JSONObject businessOwnerCar = businessOwnerCars.getJSONObject(bOwnerCarIndex); doAddFloor(business, businessOwnerCar); doEditFloor(business, businessOwnerCar); } } } private void doAddFloor(Business business, JSONObject businessFloor) { private void doEditFloor(Business business, JSONObject businessFloor) { FloorPo floorPo = BeanConvertUtil.covertBean(businessFloor, FloorPo.class); CommunityDto communityDto = new CommunityDto(); communityDto.setCommunityId(floorPo.getCommunityId()); List<CommunityDto> communityDtos = communityInnerServiceSMOImpl.queryCommunitys(communityDto); Assert.listOnlyOne(communityDtos, "未包含小区信息"); Assert.listNotNull(communityDtos, "未包含小区信息"); CommunityDto tmpCommunityDto = communityDtos.get(0); String extCommunityId = ""; String communityId = tmpCommunityDto.getCommunityId(); service-job/src/main/java/com/java110/job/adapt/hcGov/floor/EditFloorToHcGovReturnAdapt.java
@@ -22,6 +22,7 @@ import com.java110.dto.reportData.ReportDataDto; import com.java110.intf.common.IHcGovTranslateInnerServiceSMO; import com.java110.intf.community.IFloorAttrInnerServiceSMO; import com.java110.job.adapt.hcGov.HcGovConstant; import com.java110.job.adapt.hcGov.IReportReturnDataAdapt; import com.java110.po.floorAttr.FloorAttrPo; import org.springframework.beans.factory.annotation.Autowired; @@ -58,7 +59,7 @@ FloorAttrDto floorAttrDto = new FloorAttrDto(); floorAttrDto.setFloorId(hcGovTranslateDtos.get(0).getObjId()); floorAttrDto.setCommunityId(hcGovTranslateDtos.get(0).getCommunityId()); floorAttrDto.setSpecCd(CommunityAttrDto.SPEC_CD_GOV); floorAttrDto.setSpecCd( HcGovConstant.EXT_COMMUNITY_ID); List<FloorAttrDto> floorAttrDtos = floorAttrInnerServiceSMOImpl.queryFloorAttrs(floorAttrDto); FloorAttrPo floorAttrPo = new FloorAttrPo(); service-job/src/main/java/com/java110/job/adapt/hcGov/room/AddRoomToHcGovAdapt.java
New file @@ -0,0 +1,161 @@ /* * Copyright 2017-2020 吴学文 and java110 team. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.java110.job.adapt.hcGov.room; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.java110.dto.FloorDto; import com.java110.dto.RoomDto; import com.java110.dto.UnitDto; import com.java110.dto.community.CommunityAttrDto; import com.java110.dto.community.CommunityDto; import com.java110.dto.floorAttr.FloorAttrDto; import com.java110.entity.order.Business; import com.java110.intf.community.ICommunityInnerServiceSMO; import com.java110.intf.community.IFloorInnerServiceSMO; import com.java110.intf.community.IRoomInnerServiceSMO; import com.java110.intf.community.IUnitInnerServiceSMO; import com.java110.job.adapt.DatabusAdaptImpl; import com.java110.job.adapt.hcGov.HcGovConstant; import com.java110.job.adapt.hcGov.asyn.BaseHcGovSendAsyn; import com.java110.po.floor.FloorPo; import com.java110.po.room.RoomPo; import com.java110.utils.cache.MappingCache; import com.java110.utils.util.Assert; import com.java110.utils.util.BeanConvertUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.List; /** * 新增房屋同步HC政务接口 * <p> * 接口协议地址: https://gitee.com/java110/microCommunityInformation/tree/master/info-doc#1%E6%A5%BC%E6%A0%8B%E4%B8%8A%E4%BC%A0 * * @desc add by 吴学文 16:20 */ @Component(value = "addRoomToHcGovAdapt") public class AddRoomToHcGovAdapt extends DatabusAdaptImpl { @Autowired private ICommunityInnerServiceSMO communityInnerServiceSMOImpl; @Autowired private IUnitInnerServiceSMO unitInnerServiceSMOImpl; @Autowired private IFloorInnerServiceSMO floorInnerServiceSMOImpl; @Autowired private IRoomInnerServiceSMO roomInnerServiceSMOImpl; @Autowired private BaseHcGovSendAsyn baseHcGovSendAsynImpl; /** * @param business 当前处理业务 * @param businesses 所有业务信息 */ @Override public void execute(Business business, List<Business> businesses) { JSONObject data = business.getData(); if (data.containsKey(FloorPo.class.getSimpleName())) { Object bObj = data.get(FloorPo.class.getSimpleName()); JSONArray businessOwnerCars = null; if (bObj instanceof JSONObject) { businessOwnerCars = new JSONArray(); businessOwnerCars.add(bObj); } else if (bObj instanceof List) { businessOwnerCars = JSONArray.parseArray(JSONObject.toJSONString(bObj)); } else { businessOwnerCars = (JSONArray) bObj; } //JSONObject businessOwnerCar = data.getJSONObject("businessOwnerCar"); for (int bOwnerCarIndex = 0; bOwnerCarIndex < businessOwnerCars.size(); bOwnerCarIndex++) { JSONObject businessOwnerCar = businessOwnerCars.getJSONObject(bOwnerCarIndex); doAddRoom(business, businessOwnerCar); } } } private void doAddRoom(Business business, JSONObject businessRooom) { RoomPo roomPo = BeanConvertUtil.covertBean(businessRooom, RoomPo.class); RoomDto roomDto = new RoomDto(); roomDto.setRoomId( roomPo.getRoomId() ); roomDto.setCommunityId( roomPo.getCommunityId() ); List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms( roomDto ); Assert.listNotNull(roomDtos, "未查询到房屋信息"); CommunityDto communityDto = new CommunityDto(); communityDto.setCommunityId(roomPo.getCommunityId()); List<CommunityDto> communityDtos = communityInnerServiceSMOImpl.queryCommunitys(communityDto); Assert.listNotNull(communityDtos, "未包含小区信息"); UnitDto unitDto = new UnitDto(); unitDto.setUnitId( roomPo.getUnitId() ); unitDto.setCommunityId( roomPo.getCommunityId() ); List<UnitDto> unitDtos = unitInnerServiceSMOImpl.queryUnits( unitDto ); Assert.listNotNull(unitDtos, "未包含单元信息"); unitDto = new UnitDto(); unitDto.setCommunityId( unitDtos.get( 0 ).getCommunityId() ); unitDto.setFloorId( unitDtos.get( 0 ).getFloorId() ); List<UnitDto> unitDtoList = unitInnerServiceSMOImpl.queryUnits( unitDto ); Assert.listNotNull(unitDtoList, "未通过楼栋所属ID查到楼栋数据,请检查数据"); String unitCount = unitDtoList.size()+""; //单元数 String layerCount = unitDtoList.get( 0 ).getLayerCount(); //楼层数 CommunityDto tmpCommunityDto = communityDtos.get(0); String extCommunityId = ""; String extFloorId = ""; String communityId = tmpCommunityDto.getCommunityId(); String roomId = roomPo.getRoomId(); for (CommunityAttrDto communityAttrDto : tmpCommunityDto.getCommunityAttrDtos()) { if (HcGovConstant.EXT_COMMUNITY_ID.equals(communityAttrDto.getSpecCd())) { extCommunityId = communityAttrDto.getValue(); } } FloorDto floorDto = new FloorDto(); floorDto.setCommunityId( unitDtos.get( 0 ).getCommunityId() ); floorDto.setFloorId( unitDtos.get( 0 ).getFloorId() ); List<FloorDto> floorDtos = floorInnerServiceSMOImpl.queryFloors( floorDto ); Assert.listNotNull(floorDtos, "未通过单元所属ID查到楼栋数据,请检查数据"); FloorDto tmpFloorDto = floorDtos.get(0); for (FloorAttrDto floorAttrDto : tmpFloorDto.getFloorAttrDto()) { if (HcGovConstant.EXT_COMMUNITY_ID.equals(floorAttrDto.getSpecCd())) { extFloorId = floorAttrDto.getValue(); } } JSONObject body = new JSONObject(); body.put("roomNum", roomPo.getRoomNum()); body.put("builtUpArea", roomPo.getBuiltUpArea()); body.put("layer", roomPo.getLayer()); body.put("roomArea", roomPo.getRoomArea()); body.put("layerCount", layerCount); body.put("unitCount", unitCount); body.put("roomRent", roomPo.getRoomRent()); body.put("userId", roomPo.getUnitId());//户主ID后期待业主信息同步后采用政务系统编码 body.put("extFloorId", extFloorId); body.put("state", roomDtos.get( 0 ).getStateName()); body.put("roomSubType", roomDtos.get( 0 ).getRoomSubTypeName()); JSONObject kafkaData = baseHcGovSendAsynImpl.createHeadersOrBody(body, extCommunityId, HcGovConstant.ADD_ROOM_ACTION, HcGovConstant.COMMUNITY_SECURE); baseHcGovSendAsynImpl.sendKafka(HcGovConstant.GOV_TOPIC, kafkaData, communityId, roomId, HcGovConstant.COMMUNITY_SECURE); } } service-job/src/main/java/com/java110/job/adapt/hcGov/room/AddRoomToHcGovReturnAdapt.java
New file @@ -0,0 +1,88 @@ /* * Copyright 2017-2020 吴学文 and java110 team. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.java110.job.adapt.hcGov.room; import com.java110.core.factory.GenerateCodeFactory; import com.java110.dto.RoomAttrDto; import com.java110.dto.community.CommunityAttrDto; import com.java110.dto.floorAttr.FloorAttrDto; import com.java110.dto.hcGovTranslate.HcGovTranslateDto; import com.java110.dto.reportData.ReportDataDto; import com.java110.intf.common.IHcGovTranslateInnerServiceSMO; import com.java110.intf.community.IFloorAttrInnerServiceSMO; import com.java110.intf.community.IRoomAttrInnerServiceSMO; import com.java110.job.adapt.hcGov.HcGovConstant; import com.java110.job.adapt.hcGov.IReportReturnDataAdapt; import com.java110.po.floorAttr.FloorAttrPo; import com.java110.po.room.RoomAttrPo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.List; /** * 新增房屋同步HC政务接口 返回 * <p> * 接口协议地址: https://gitee.com/java110/microCommunityInformation/tree/master/info-doc#1%E6%A5%BC%E6%A0%8B%E4%B8%8A%E4%BC%A0 * * @desc add by 吴学文 16:20 */ @Component(value = "ADD_ROOM_RETURN") public class AddRoomToHcGovReturnAdapt implements IReportReturnDataAdapt { @Autowired private IRoomAttrInnerServiceSMO roomAttrInnerServiceSMOImpl; @Autowired private IHcGovTranslateInnerServiceSMO hcGovTranslateInnerServiceSMOImpl; @Override public void reportReturn(ReportDataDto reportDataDto, String extCommunityId) { HcGovTranslateDto hcGovTranslateDto = new HcGovTranslateDto(); hcGovTranslateDto.setTranId(reportDataDto.getReportDataHeaderDto().getTranId()); hcGovTranslateDto.setServiceCode(reportDataDto.getReportDataHeaderDto().getServiceCode()); List<HcGovTranslateDto> hcGovTranslateDtos = hcGovTranslateInnerServiceSMOImpl.queryHcGovTranslates(hcGovTranslateDto); if (hcGovTranslateDtos == null || hcGovTranslateDtos.size() < 1) { throw new IllegalArgumentException("查询推送报文失败。不是同一订单信息"); } RoomAttrDto roomAttrDto = new RoomAttrDto(); roomAttrDto.setRoomId(hcGovTranslateDtos.get(0).getObjId()); roomAttrDto.setSpecCd( HcGovConstant.EXT_COMMUNITY_ID ); List<RoomAttrDto> roomAttrDtos = roomAttrInnerServiceSMOImpl.queryRoomAttrs(roomAttrDto); RoomAttrPo roomAttrPo = new RoomAttrPo(); roomAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_roomId)); roomAttrPo.setRoomId(roomAttrDto.getRoomId()); roomAttrPo.setSpecCd(roomAttrDto.getSpecCd()); roomAttrPo.setValue(reportDataDto.getReportDataBodyDto().getString("extRoomId")); if (roomAttrDtos == null || roomAttrDtos.size() < 1) { int flag = roomAttrInnerServiceSMOImpl.saveRoomAttr(roomAttrPo); if (flag < 1) { throw new IllegalArgumentException("保存房屋属性失败"); } } else { roomAttrPo.setAttrId(roomAttrDtos.get(0).getAttrId()); int flag = roomAttrInnerServiceSMOImpl.updateRoomAttrInfoInstance(roomAttrPo); if (flag < 1) { throw new IllegalArgumentException("修改房屋属性失败"); } } } }