java110-bean/src/main/java/com/java110/dto/owner/OwnerDto.java
@@ -96,6 +96,7 @@ private String repairCount; private String oweFee; private String contractCount; public String getSex() { return sex; @@ -491,4 +492,12 @@ public void setOweFee(String oweFee) { this.oweFee = oweFee; } public String getContractCount() { return contractCount; } public void setContractCount(String contractCount) { this.contractCount = contractCount; } } java110-bean/src/main/java/com/java110/vo/api/ApiOwnerDataVo.java
@@ -59,6 +59,7 @@ private double oweFee; private String contractCount; public String getOwnerId() { return ownerId; } @@ -242,4 +243,12 @@ public void setOweFee(double oweFee) { this.oweFee = oweFee; } public String getContractCount() { return contractCount; } public void setContractCount(String contractCount) { this.contractCount = contractCount; } } java110-db/src/main/resources/mapper/store/ContractServiceDaoImplMapper.xml
@@ -299,4 +299,16 @@ </select> <select id="queryContractsByOwnerIds" parameterType="Map" resultType="Map"> select t.obj_id ownerId,count(t.contract_id) contractCount from contract t where t.status_cd = '0' and t.obj_id in <foreach collection="ownerIds" item="item" index="index" open="(" close=")" separator=","> #{item} </foreach> group by t.obj_id </select> </mapper> java110-interface/src/main/java/com/java110/intf/store/IContractInnerServiceSMO.java
@@ -9,6 +9,7 @@ import org.springframework.web.bind.annotation.RequestMethod; import java.util.List; import java.util.Map; /** * @ClassName IContractInnerServiceSMO @@ -49,4 +50,12 @@ */ @RequestMapping(value = "/queryContractsCount", method = RequestMethod.POST) int queryContractsCount(@RequestBody ContractDto contractDto); /** * 查询业主合同 * @param info * @return */ @RequestMapping(value = "/queryContractsByOwnerIds", method = RequestMethod.POST) List<Map> queryContractsByOwnerIds(@RequestBody Map info); } service-store/src/main/java/com/java110/store/cmd/contract/QueryContractByRoomIdCmd.java
New file @@ -0,0 +1,123 @@ package com.java110.store.cmd.contract; import com.alibaba.fastjson.JSONObject; import com.java110.core.annotation.Java110Cmd; import com.java110.core.context.ICmdDataFlowContext; import com.java110.core.event.cmd.Cmd; import com.java110.core.event.cmd.CmdEvent; import com.java110.dto.contract.ContractDto; import com.java110.dto.contractAttr.ContractAttrDto; import com.java110.dto.contractRoom.ContractRoomDto; import com.java110.intf.common.IContractApplyUserInnerServiceSMO; import com.java110.intf.common.IContractChangeUserInnerServiceSMO; import com.java110.intf.store.IContractAttrInnerServiceSMO; import com.java110.intf.store.IContractInnerServiceSMO; import com.java110.intf.store.IContractRoomInnerServiceSMO; import com.java110.utils.exception.CmdException; import com.java110.utils.util.Assert; import com.java110.utils.util.BeanConvertUtil; import com.java110.utils.util.DateUtil; import com.java110.vo.ResultVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import java.util.ArrayList; import java.util.List; /** * 根据房屋ID查询合同 */ @Java110Cmd(serviceCode = "contract.queryContractByRoomId") public class QueryContractByRoomIdCmd extends Cmd { @Autowired private IContractInnerServiceSMO contractInnerServiceSMOImpl; @Autowired private IContractAttrInnerServiceSMO contractAttrInnerServiceSMOImpl; @Autowired private IContractApplyUserInnerServiceSMO contractApplyUserInnerServiceSMOImpl; @Autowired private IContractChangeUserInnerServiceSMO contractChangeUserInnerServiceSMO; @Autowired private IContractRoomInnerServiceSMO contractRoomInnerServiceSMOImpl; @Override public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException { super.validatePageInfo(reqJson); Assert.hasKeyAndValue(reqJson, "roomId", "未包含房屋信息"); } @Override public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException { ContractRoomDto contractRoomDto = new ContractRoomDto(); contractRoomDto.setRoomId(reqJson.getString("roomId")); List<ContractRoomDto> roomDtos = contractRoomInnerServiceSMOImpl.queryContractRooms(contractRoomDto); if(roomDtos == null || roomDtos.size()<1){ return ; } List<String> contractIds = new ArrayList<>(); for(ContractRoomDto tmpContractRoomDto : roomDtos){ contractIds.add(tmpContractRoomDto.getContractId()); } ContractDto contractDto = BeanConvertUtil.covertBean(reqJson, ContractDto.class); contractDto.setContractIds(contractIds.toArray(new String[contractIds.size()])); int count = contractInnerServiceSMOImpl.queryContractsCount(contractDto); List<ContractDto> contractDtos = null; if (count > 0) { contractDtos = contractInnerServiceSMOImpl.queryContracts(contractDto); refreshAttr(contractDtos); } else { contractDtos = new ArrayList<>(); } ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) contractDto.getRow()), count, contractDtos); ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK); cmdDataFlowContext.setResponseEntity(responseEntity); } /** * 属性属性 * * @param contractDtos */ private void refreshAttr(List<ContractDto> contractDtos) { List<String> contractIds = new ArrayList<>(); for (ContractDto contractDto : contractDtos) { contractIds.add(contractDto.getContractId()); } if (contractIds.size() < 1) { return; } ContractAttrDto contractAttrDto = new ContractAttrDto(); contractAttrDto.setContractIds(contractIds.toArray(new String[contractIds.size()])); List<ContractAttrDto> contractAttrDtos = contractAttrInnerServiceSMOImpl.queryContractAttrs(contractAttrDto); List<ContractAttrDto> attrs = null; for (ContractDto contractDto : contractDtos) { attrs = new ArrayList<>(); for (ContractAttrDto tmpContractAttrDto : contractAttrDtos) { if (contractDto.getContractId().equals(tmpContractAttrDto.getContractId())) { attrs.add(tmpContractAttrDto); } } contractDto.setAttrs(attrs); } } } service-store/src/main/java/com/java110/store/dao/IContractServiceDao.java
@@ -58,4 +58,5 @@ */ int queryContractsCount(Map info); List<Map> queryContractsByOwnerIds(Map info); } service-store/src/main/java/com/java110/store/dao/impl/ContractServiceDaoImpl.java
@@ -94,5 +94,13 @@ return Integer.parseInt(businessContractInfos.get(0).get("count").toString()); } @Override public List<Map> queryContractsByOwnerIds(Map info) { logger.debug("查询合同管理数据 入参 info : {}",info); List<Map> result = sqlSessionTemplate.selectList("contractServiceDaoImpl.queryContractsByOwnerIds", info); return result; } } service-store/src/main/java/com/java110/store/smo/impl/ContractInnerServiceSMOImpl.java
@@ -13,6 +13,7 @@ import org.springframework.web.bind.annotation.RestController; import java.util.List; import java.util.Map; /** * @ClassName FloorInnerServiceSMOImpl @@ -73,6 +74,11 @@ return contractServiceDaoImpl.queryContractsCount(BeanConvertUtil.beanCovertMap(contractDto)); } @Override public List<Map> queryContractsByOwnerIds(@RequestBody Map info) { return contractServiceDaoImpl.queryContractsByOwnerIds(info); } public IContractServiceDao getContractServiceDaoImpl() { return contractServiceDaoImpl; } service-user/src/main/java/com/java110/user/bmo/owner/impl/QueryOwnerStatisticsBMOImpl.java
@@ -4,6 +4,7 @@ import com.java110.intf.community.IComplaintV1InnerServiceSMO; import com.java110.intf.community.IRepairPoolV1InnerServiceSMO; import com.java110.intf.report.IReportOweFeeInnerServiceSMO; import com.java110.intf.store.IContractInnerServiceSMO; import com.java110.intf.user.IOwnerCarV1InnerServiceSMO; import com.java110.intf.user.IOwnerRoomRelV1InnerServiceSMO; import com.java110.intf.user.IOwnerV1InnerServiceSMO; @@ -38,6 +39,9 @@ @Autowired private IReportOweFeeInnerServiceSMO reportOweFeeInnerServiceSMOImpl; @Autowired private IContractInnerServiceSMO contractInnerServiceSMOImpl; @Override public List<OwnerDto> query(List<OwnerDto> ownerDtos) { @@ -76,9 +80,27 @@ // 查询业主欠费 queryOwnerOweFee(ownerIds,ownerDtos); // 查询业主合同 queryOwnerContractCount(ownerIds,ownerDtos); return ownerDtos; } private void queryOwnerContractCount(List<String> ownerIds, List<OwnerDto> ownerDtos) { Map info = new HashMap(); info.put("communityId",ownerDtos.get(0).getCommunityId()); info.put("ownerIds",ownerIds.toArray(new String[ownerIds.size()])); List<Map> contractsCount = contractInnerServiceSMOImpl.queryContractsByOwnerIds(info); for(OwnerDto ownerDto : ownerDtos) { for (Map count : contractsCount) { if(ownerDto.getOwnerId().equals(count.get("ownerId"))){ ownerDto.setContractCount(count.get("contractCount").toString()); } } } } /** * 查询业主欠费 * @param ownerIds