java110-bean/src/main/java/com/java110/po/owner/OwnerRoomRelPo.java
@@ -20,6 +20,9 @@ private String remark; private String startTime; private String endTime; private String statusCd; private String operate; private String bId; public String getRelId() { return relId; @@ -84,4 +87,28 @@ public void setEndTime(String endTime) { this.endTime = endTime; } public String getStatusCd() { return statusCd; } public void setStatusCd(String statusCd) { this.statusCd = statusCd; } public String getOperate() { return operate; } public void setOperate(String operate) { this.operate = operate; } public String getbId() { return bId; } public void setbId(String bId) { this.bId = bId; } } java110-db/src/main/resources/mapper/user/OwnerRoomRelServiceDaoImplMapper.xml
@@ -14,10 +14,20 @@ </insert> <insert id="saveOwnerRoomRels" parameterType="Map"> insert into building_owner_room_rel( rel_id,remark,state,owner_id,b_id,user_id,room_id,start_time,end_time ) values ( #{relId},#{remark},#{state},#{ownerId},-1,#{userId},#{roomId},#{startTime},#{endTime} ) </insert> <!-- 查询业主房屋信息(Business) add by wuxw 2018-07-03 --> <select id="getBusinessOwnerRoomRelInfo" parameterType="Map" resultType="Map"> select t.rel_id,t.rel_id relId,t.operate,t.remark,t.state,t.owner_id,t.owner_id ownerId,t.b_id,t.b_id bId,t.user_id,t.user_id userId,t.room_id,t.room_id roomId,t.start_time,t.end_time,t.start_time startTime,t.end_time endTime bId,t.user_id,t.user_id userId,t.room_id,t.room_id roomId,t.start_time,t.end_time,t.start_time startTime,t.end_time endTime from business_building_owner_room_rel t where 1 =1 <if test="relId !=null and relId != ''"> java110-interface/src/main/java/com/java110/intf/user/IOwnerRoomRelInnerServiceSMO.java
@@ -2,6 +2,7 @@ import com.java110.config.feign.FeignConfiguration; import com.java110.dto.owner.OwnerRoomRelDto; import com.java110.po.owner.OwnerRoomRelPo; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -24,7 +25,6 @@ /** * <p>查询小区楼信息</p> * * * @param ownerRoomRelDto 数据对象分享 * @return OwnerRoomRelDto 对象数据 */ @@ -39,4 +39,31 @@ */ @RequestMapping(value = "/queryOwnerRoomRelsCount", method = RequestMethod.POST) int queryOwnerRoomRelsCount(@RequestBody OwnerRoomRelDto ownerRoomRelDto); /** * <p>保存业主房屋关系</p> * * @param ownerRoomRelPo 关系对象 * @return OwnerRoomRelDto 对象数据 */ @RequestMapping(value = "/saveOwnerRoomRels", method = RequestMethod.POST) int saveOwnerRoomRels(@RequestBody OwnerRoomRelPo ownerRoomRelPo); /** * <p>保存业主房屋关系</p> * * @param ownerRoomRelPo 关系对象 * @return OwnerRoomRelDto 对象数据 */ @RequestMapping(value = "/saveBusinessOwnerRoomRels", method = RequestMethod.POST) int saveBusinessOwnerRoomRels(@RequestBody OwnerRoomRelPo ownerRoomRelPo); /** * <p>保存业主房屋关系</p> * * @param ownerRoomRelPo 关系对象 * @return OwnerRoomRelDto 对象数据 */ @RequestMapping(value = "/updateOwnerRoomRels", method = RequestMethod.POST) int updateOwnerRoomRels(@RequestBody OwnerRoomRelPo ownerRoomRelPo); } service-store/src/main/java/com/java110/store/bmo/contract/impl/SaveContractBMOImpl.java
@@ -4,20 +4,27 @@ import com.alibaba.fastjson.JSONObject; import com.java110.core.annotation.Java110Transactional; import com.java110.core.factory.GenerateCodeFactory; import com.java110.dto.RoomDto; import com.java110.dto.contract.ContractDto; import com.java110.dto.contractType.ContractTypeDto; import com.java110.dto.fee.FeeDto; import com.java110.dto.owner.OwnerRoomRelDto; import com.java110.dto.rentingPool.RentingPoolDto; import com.java110.dto.store.StoreDto; import com.java110.intf.common.IContractApplyUserInnerServiceSMO; import com.java110.intf.community.IRoomInnerServiceSMO; import com.java110.intf.fee.IFeeInnerServiceSMO; import com.java110.intf.store.*; import com.java110.intf.user.IOwnerRoomRelInnerServiceSMO; import com.java110.intf.user.IRentingPoolInnerServiceSMO; import com.java110.po.contract.ContractPo; import com.java110.po.contractAttr.ContractAttrPo; import com.java110.po.contractFile.ContractFilePo; import com.java110.po.contractRoom.ContractRoomPo; import com.java110.po.owner.OwnerRoomRelPo; import com.java110.po.rentingPool.RentingPoolPo; import com.java110.store.bmo.contract.ISaveContractBMO; import com.java110.utils.constant.StatusConstant; import com.java110.utils.util.Assert; import com.java110.utils.util.BeanConvertUtil; import com.java110.utils.util.StringUtil; @@ -52,6 +59,15 @@ @Autowired private IContractRoomInnerServiceSMO contractRoomInnerServiceSMOImpl; @Autowired private IOwnerRoomRelInnerServiceSMO ownerRoomRelInnerServiceSMOImpl; @Autowired private IRoomInnerServiceSMO roomInnerServiceSMOImpl; @Autowired private IFeeInnerServiceSMO feeInnerServiceSMOImpl; /** * 添加小区信息 * @@ -68,6 +84,8 @@ List<ContractTypeDto> contractTypeDtos = contractTypeInnerServiceSMOImpl.queryContractTypes(contractTypeDto); Assert.listOnlyOne(contractTypeDtos, "查询合同类型失败"); validateRoom(contractPo, reqJson); String audit = contractTypeDtos.get(0).getAudit(); @@ -136,6 +154,53 @@ } /** * 房屋是否欠费校验 * * @param contractPo * @param reqJson */ private void validateRoom(ContractPo contractPo, JSONObject reqJson) { //校验 房屋上是否有费用存在 if (!reqJson.containsKey("rooms")) { return; } JSONArray rooms = reqJson.getJSONArray("rooms"); for (int conFileIndex = 0; conFileIndex < rooms.size(); conFileIndex++) { JSONObject roomObj = rooms.getJSONObject(conFileIndex); //判断房屋是否存在 RoomDto roomDto = new RoomDto(); roomDto.setRoomId(roomObj.getString("roomId")); roomDto.setCommunityId(reqJson.getString("communityId")); List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto); Assert.listOnlyOne(roomDtos, "房屋不存在"); OwnerRoomRelDto ownerRoomRelDto = new OwnerRoomRelDto(); ownerRoomRelDto.setRoomId(roomObj.getString("roomId")); List<OwnerRoomRelDto> ownerRoomRelDtos = ownerRoomRelInnerServiceSMOImpl.queryOwnerRoomRels(ownerRoomRelDto); //不存在关系 if (ownerRoomRelDtos == null || ownerRoomRelDtos.size() == 0) { // 说明业主没有发生变化,后续工作不做处理 continue; } //存在关系 并且是他自己 if (contractPo.getObjId().equals(ownerRoomRelDtos.get(0).getOwnerId())) { continue; } //查询房屋时候有欠费 FeeDto feeDto = new FeeDto(); feeDto.setPayerObjType(FeeDto.PAYER_OBJ_TYPE_ROOM); feeDto.setPayerObjId(roomObj.getString("roomId")); feeDto.setState(FeeDto.STATE_DOING); List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDto); if (feeDtos != null && feeDtos.size() > 0) { throw new IllegalArgumentException(roomDtos.get(0).getRoomNum() + "房屋存在未结束的费用 请先处理"); } } } private void saveContractRoomRel(JSONObject reqJson, ContractPo contractPo) { //保存关联房屋 @@ -153,8 +218,54 @@ resourceStore.getString("floorNum") + "-" + resourceStore.getString("unitNum") + "-" + resourceStore.getString("roomNum")); contractRoomInnerServiceSMOImpl.saveContractRoom(contractRoomPo); //刷业主 OwnerRoomRelDto ownerRoomRelDto = new OwnerRoomRelDto(); ownerRoomRelDto.setRoomId(contractRoomPo.getRoomId()); List<OwnerRoomRelDto> ownerRoomRelDtos = ownerRoomRelInnerServiceSMOImpl.queryOwnerRoomRels(ownerRoomRelDto); if (ownerRoomRelDtos != null && ownerRoomRelDtos.size() > 0) { // 说明业主没有发生变化,后续工作不做处理 if (contractPo.getObjId().equals(ownerRoomRelDtos.get(0).getOwnerId())) { continue; } } //补充 B过程数据 ADD OwnerRoomRelPo ownerRoomRelPo = new OwnerRoomRelPo(); ownerRoomRelPo.setEndTime(contractPo.getEndTime()); ownerRoomRelPo.setStartTime(contractPo.getStartTime()); ownerRoomRelPo.setOwnerId(contractPo.getObjId()); ownerRoomRelPo.setRelId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_relId)); ownerRoomRelPo.setRemark("签订合同自动绑定"); ownerRoomRelPo.setRoomId(contractRoomPo.getRoomId()); ownerRoomRelPo.setState("2001"); ownerRoomRelPo.setUserId("-1"); ownerRoomRelPo.setOperate("ADD"); ownerRoomRelPo.setbId("-1"); ownerRoomRelInnerServiceSMOImpl.saveBusinessOwnerRoomRels(ownerRoomRelPo); ownerRoomRelPo = new OwnerRoomRelPo(); ownerRoomRelPo.setEndTime(contractPo.getEndTime()); ownerRoomRelPo.setStartTime(contractPo.getStartTime()); ownerRoomRelPo.setOwnerId(contractPo.getObjId()); ownerRoomRelPo.setRelId(ownerRoomRelPo.getRelId()); ownerRoomRelPo.setRemark("签订合同自动绑定"); ownerRoomRelPo.setRoomId(contractRoomPo.getRoomId()); ownerRoomRelPo.setState("2001"); ownerRoomRelInnerServiceSMOImpl.saveOwnerRoomRels(ownerRoomRelPo); //删除老的 if (ownerRoomRelDtos != null && ownerRoomRelDtos.size() > 0) { ownerRoomRelPo = new OwnerRoomRelPo(); ownerRoomRelPo.setStatusCd(StatusConstant.STATUS_CD_INVALID); ownerRoomRelPo.setRelId(ownerRoomRelDtos.get(0).getRelId()); ownerRoomRelInnerServiceSMOImpl.updateOwnerRoomRels(ownerRoomRelPo); ownerRoomRelPo = BeanConvertUtil.covertBean(ownerRoomRelDtos.get(0), OwnerRoomRelPo.class); ownerRoomRelPo.setbId("-1"); ownerRoomRelPo.setOperate("DEL"); ownerRoomRelInnerServiceSMOImpl.saveBusinessOwnerRoomRels(ownerRoomRelPo); } } //刷业主 } /** service-user/src/main/java/com/java110/user/dao/IOwnerRoomRelServiceDao.java
@@ -10,23 +10,24 @@ * 业主房屋组件内部之间使用,没有给外围系统提供服务能力 * 业主房屋服务接口类,要求全部以字符串传输,方便微服务化 * 新建客户,修改客户,删除客户,查询客户等功能 * * <p> * Created by wuxw on 2016/12/27. */ public interface IOwnerRoomRelServiceDao { /** * 保存 业主房屋信息 * * @param businessOwnerRoomRelInfo 业主房屋信息 封装 * @throws DAOException 操作数据库异常 */ void saveBusinessOwnerRoomRelInfo(Map businessOwnerRoomRelInfo) throws DAOException; /** * 查询业主房屋信息(business过程) * 根据bId 查询业主房屋信息 * * @param info bId 信息 * @return 业主房屋信息 * @throws DAOException DAO异常 @@ -34,31 +35,29 @@ List<Map> getBusinessOwnerRoomRelInfo(Map info) throws DAOException; /** * 保存 业主房屋信息 Business数据到 Instance中 * * @param info * @throws DAOException DAO异常 */ void saveOwnerRoomRelInfoInstance(Map info) throws DAOException; /** * 查询业主房屋信息(instance过程) * 根据bId 查询业主房屋信息 * * @param info bId 信息 * @return 业主房屋信息 * @throws DAOException DAO异常 */ List<Map<Object,Object>> getOwnerRoomRelInfo(Map<Object,Object> info) throws DAOException; List<Map<Object, Object>> getOwnerRoomRelInfo(Map<Object, Object> info) throws DAOException; /** * 修改业主房屋信息 * * @param info 修改信息 * @throws DAOException DAO异常 */ @@ -73,4 +72,19 @@ */ int queryOwnerRoomRelsCount(Map info); /** * 保存关系 * * @param beanCovertMap * @return */ int saveOwnerRoomRels(Map beanCovertMap); /** * 修改关系 * * @param beanCovertMap * @return */ int updateOwnerRoomRels(Map beanCovertMap); } service-user/src/main/java/com/java110/user/dao/impl/OwnerRoomRelServiceDaoImpl.java
@@ -1,11 +1,11 @@ package com.java110.user.dao.impl; import com.alibaba.fastjson.JSONObject; import com.java110.core.base.dao.BaseServiceDao; import com.java110.user.dao.IOwnerRoomRelServiceDao; import com.java110.utils.constant.ResponseConstant; import com.java110.utils.exception.DAOException; import com.java110.utils.util.DateUtil; import com.java110.core.base.dao.BaseServiceDao; import com.java110.user.dao.IOwnerRoomRelServiceDao; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; @@ -86,10 +86,10 @@ * @throws DAOException DAO异常 */ @Override public List<Map<Object,Object>> getOwnerRoomRelInfo(Map<Object,Object> info) throws DAOException { public List<Map<Object, Object>> getOwnerRoomRelInfo(Map<Object, Object> info) throws DAOException { logger.debug("查询业主房屋信息 入参 info : {}", info); List<Map<Object,Object>> businessOwnerRoomRelInfos = sqlSessionTemplate.selectList("ownerRoomRelServiceDaoImpl.getOwnerRoomRelInfo", info); List<Map<Object, Object>> businessOwnerRoomRelInfos = sqlSessionTemplate.selectList("ownerRoomRelServiceDaoImpl.getOwnerRoomRelInfo", info); return businessOwnerRoomRelInfos; } @@ -130,5 +130,17 @@ return Integer.parseInt(businessOwnerRoomRelInfos.get(0).get("count").toString()); } @Override public int saveOwnerRoomRels(Map info) { int saveFlag = sqlSessionTemplate.update("ownerRoomRelServiceDaoImpl.saveOwnerRoomRels", info); return saveFlag; } @Override public int updateOwnerRoomRels(Map info) { int saveFlag = sqlSessionTemplate.update("ownerRoomRelServiceDaoImpl.updateOwnerRoomRelInfoInstance", info); return saveFlag; } } service-user/src/main/java/com/java110/user/smo/impl/OwnerRoomRelInnerServiceSMOImpl.java
@@ -1,14 +1,15 @@ package com.java110.user.smo.impl; import com.java110.utils.util.BeanConvertUtil; import com.java110.core.base.smo.BaseServiceSMO; import com.java110.dto.PageDto; import com.java110.dto.owner.OwnerRoomRelDto; import com.java110.dto.user.UserDto; import com.java110.intf.user.IOwnerRoomRelInnerServiceSMO; import com.java110.intf.user.IUserInnerServiceSMO; import com.java110.dto.owner.OwnerRoomRelDto; import com.java110.dto.PageDto; import com.java110.dto.user.UserDto; import com.java110.po.owner.OwnerRoomRelPo; import com.java110.user.dao.IOwnerRoomRelServiceDao; import com.java110.utils.util.BeanConvertUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; @@ -34,7 +35,7 @@ private IUserInnerServiceSMO userInnerServiceSMOImpl; @Override public List<OwnerRoomRelDto> queryOwnerRoomRels(@RequestBody OwnerRoomRelDto ownerRoomRelDto) { public List<OwnerRoomRelDto> queryOwnerRoomRels(@RequestBody OwnerRoomRelDto ownerRoomRelDto) { //校验是否传了 分页信息 @@ -64,7 +65,7 @@ * 从用户列表中查询用户,将用户中的信息 刷新到 floor对象中 * * @param ownerRoomRel 小区业主房屋信息 * @param users 用户列表 * @param users 用户列表 */ private void refreshOwnerRoomRel(OwnerRoomRelDto ownerRoomRel, List<UserDto> users) { for (UserDto user : users) { @@ -91,7 +92,26 @@ @Override public int queryOwnerRoomRelsCount(@RequestBody OwnerRoomRelDto ownerRoomRelDto) { return ownerRoomRelServiceDaoImpl.queryOwnerRoomRelsCount(BeanConvertUtil.beanCovertMap(ownerRoomRelDto)); } return ownerRoomRelServiceDaoImpl.queryOwnerRoomRelsCount(BeanConvertUtil.beanCovertMap(ownerRoomRelDto)); } @Override public int saveOwnerRoomRels(@RequestBody OwnerRoomRelPo ownerRoomRelPo) { return ownerRoomRelServiceDaoImpl.saveOwnerRoomRels(BeanConvertUtil.beanCovertMap(ownerRoomRelPo)); } @Override public int saveBusinessOwnerRoomRels(@RequestBody OwnerRoomRelPo ownerRoomRelPo) { ownerRoomRelServiceDaoImpl.saveBusinessOwnerRoomRelInfo(BeanConvertUtil.beanCovertMap(ownerRoomRelPo)); return 1; } @Override public int updateOwnerRoomRels(@RequestBody OwnerRoomRelPo ownerRoomRelPo) { return ownerRoomRelServiceDaoImpl.updateOwnerRoomRels(BeanConvertUtil.beanCovertMap(ownerRoomRelPo)); } public IOwnerRoomRelServiceDao getOwnerRoomRelServiceDaoImpl() { return ownerRoomRelServiceDaoImpl;