Преглед изворни кода

增加根据roomID 查询合同

Your Name пре 3 година
родитељ
комит
43c24417c5

+ 9 - 0
java110-bean/src/main/java/com/java110/dto/owner/OwnerDto.java

@@ -96,6 +96,7 @@ public class OwnerDto extends PageDto implements Serializable {
     private String repairCount;
 
     private String oweFee;
+    private String contractCount;
 
     public String getSex() {
         return sex;
@@ -491,4 +492,12 @@ public class OwnerDto extends PageDto implements Serializable {
     public void setOweFee(String oweFee) {
         this.oweFee = oweFee;
     }
+
+    public String getContractCount() {
+        return contractCount;
+    }
+
+    public void setContractCount(String contractCount) {
+        this.contractCount = contractCount;
+    }
 }

+ 9 - 0
java110-bean/src/main/java/com/java110/vo/api/ApiOwnerDataVo.java

@@ -59,6 +59,7 @@ public class ApiOwnerDataVo extends Vo {
 
     private double oweFee;
 
+    private String contractCount;
     public String getOwnerId() {
         return ownerId;
     }
@@ -242,4 +243,12 @@ public class ApiOwnerDataVo extends Vo {
     public void setOweFee(double oweFee) {
         this.oweFee = oweFee;
     }
+
+    public String getContractCount() {
+        return contractCount;
+    }
+
+    public void setContractCount(String contractCount) {
+        this.contractCount = contractCount;
+    }
 }

+ 12 - 0
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>

+ 9 - 0
java110-interface/src/main/java/com/java110/intf/store/IContractInnerServiceSMO.java

@@ -9,6 +9,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * @ClassName IContractInnerServiceSMO
@@ -49,4 +50,12 @@ public interface IContractInnerServiceSMO {
      */
     @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);
 }

+ 123 - 0
service-store/src/main/java/com/java110/store/cmd/contract/QueryContractByRoomIdCmd.java

@@ -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);
+        }
+
+
+    }
+}

+ 1 - 0
service-store/src/main/java/com/java110/store/dao/IContractServiceDao.java

@@ -58,4 +58,5 @@ public interface IContractServiceDao {
      */
     int queryContractsCount(Map info);
 
+    List<Map> queryContractsByOwnerIds(Map info);
 }

+ 8 - 0
service-store/src/main/java/com/java110/store/dao/impl/ContractServiceDaoImpl.java

@@ -94,5 +94,13 @@ public class ContractServiceDaoImpl extends BaseServiceDao implements IContractS
         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;
+    }
+
 
 }

+ 6 - 0
service-store/src/main/java/com/java110/store/smo/impl/ContractInnerServiceSMOImpl.java

@@ -13,6 +13,7 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * @ClassName FloorInnerServiceSMOImpl
@@ -73,6 +74,11 @@ public class ContractInnerServiceSMOImpl extends BaseServiceSMO implements ICont
         return contractServiceDaoImpl.queryContractsCount(BeanConvertUtil.beanCovertMap(contractDto));
     }
 
+    @Override
+    public List<Map> queryContractsByOwnerIds(@RequestBody Map info) {
+        return contractServiceDaoImpl.queryContractsByOwnerIds(info);
+    }
+
     public IContractServiceDao getContractServiceDaoImpl() {
         return contractServiceDaoImpl;
     }

+ 22 - 0
service-user/src/main/java/com/java110/user/bmo/owner/impl/QueryOwnerStatisticsBMOImpl.java

@@ -4,6 +4,7 @@ import com.java110.dto.owner.OwnerDto;
 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;
@@ -39,6 +40,9 @@ public class QueryOwnerStatisticsBMOImpl implements IQueryOwnerStatisticsBMO {
     @Autowired
     private IReportOweFeeInnerServiceSMO reportOweFeeInnerServiceSMOImpl;
 
+    @Autowired
+    private IContractInnerServiceSMO contractInnerServiceSMOImpl;
+
     @Override
     public List<OwnerDto> query(List<OwnerDto> ownerDtos) {
 
@@ -76,9 +80,27 @@ public class QueryOwnerStatisticsBMOImpl implements IQueryOwnerStatisticsBMO {
         // 查询业主欠费
         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