java110 %!s(int64=5) %!d(string=hai) anos
pai
achega
f1975c95f5

+ 9 - 0
java110-bean/src/main/java/com/java110/dto/feeReceipt/FeeReceiptDetailDto.java

@@ -19,6 +19,7 @@ public class FeeReceiptDetailDto extends PageDto implements Serializable {
     private String amount;
     private String feeName;
     private String detailId;
+    private String[] detailIds;
     private String startTime;
     private String endTime;
     private String communityId;
@@ -164,4 +165,12 @@ public class FeeReceiptDetailDto extends PageDto implements Serializable {
     public void setReceiptIds(String[] receiptIds) {
         this.receiptIds = receiptIds;
     }
+
+    public String[] getDetailIds() {
+        return detailIds;
+    }
+
+    public void setDetailIds(String[] detailIds) {
+        this.detailIds = detailIds;
+    }
 }

+ 6 - 0
java110-db/src/main/resources/mapper/fee/FeeReceiptDetailServiceDaoImplMapper.xml

@@ -51,6 +51,12 @@
         <if test="detailId !=null and detailId != ''">
             and t.detail_id= #{detailId}
         </if>
+        <if test="detailIds !=null ">
+            and t.detail_id in
+            <foreach collection="detailIds" item="item" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
         <if test="startTime !=null and startTime != ''">
             and t.start_time= #{startTime}
         </if>

+ 13 - 3
service-api/src/main/java/com/java110/api/listener/fee/PayFeeListener.java

@@ -11,6 +11,7 @@ import com.java110.core.event.service.api.ServiceDataFlowEvent;
 import com.java110.dto.fee.FeeAttrDto;
 import com.java110.dto.fee.FeeConfigDto;
 import com.java110.dto.fee.FeeDto;
+import com.java110.dto.feeReceipt.FeeReceiptDetailDto;
 import com.java110.dto.owner.OwnerCarDto;
 import com.java110.dto.repair.RepairDto;
 import com.java110.entity.center.AppService;
@@ -20,7 +21,6 @@ import com.java110.intf.fee.IFeeAttrInnerServiceSMO;
 import com.java110.intf.fee.IFeeConfigInnerServiceSMO;
 import com.java110.intf.fee.IFeeInnerServiceSMO;
 import com.java110.intf.fee.IFeeReceiptDetailInnerServiceSMO;
-import com.java110.intf.fee.IFeeReceiptInnerServiceSMO;
 import com.java110.intf.user.IOwnerCarInnerServiceSMO;
 import com.java110.po.car.OwnerCarPo;
 import com.java110.po.feeReceipt.FeeReceiptPo;
@@ -78,10 +78,12 @@ public class PayFeeListener extends AbstractServiceApiDataFlowListener {
     private IOwnerCarInnerServiceSMO ownerCarInnerServiceSMOImpl;
 
 
-
     @Autowired
     private IPayFeeDetailDiscountBMO payFeeDetailDiscountBMOImpl;
 
+    @Autowired
+    private IFeeReceiptDetailInnerServiceSMO feeReceiptDetailInnerServiceSMOImpl;
+
 
     @Override
     public String getServiceCode() {
@@ -183,8 +185,16 @@ public class PayFeeListener extends AbstractServiceApiDataFlowListener {
             return;
         }
 
+        //根据明细ID 查询收据信息
+        FeeReceiptDetailDto feeReceiptDetailDto = new FeeReceiptDetailDto();
+        feeReceiptDetailDto.setDetailId(paramObj.getString("detailId"));
+        feeReceiptDetailDto.setCommunityId(paramObj.getString("communityId"));
+        List<FeeReceiptDetailDto> feeReceiptDetailDtos = feeReceiptDetailInnerServiceSMOImpl.queryFeeReceiptDetails(feeReceiptDetailDto);
 
-
+        if(feeReceiptDetailDtos != null || feeReceiptDetailDtos.size()> 0){
+            dataFlowContext.setResponseEntity(ResultVo.createResponseEntity(feeReceiptDetailDtos.get(0)));
+            return ;
+        }
         dataFlowContext.setResponseEntity(ResultVo.createResponseEntity(feeReceiptDetailPo));
     }
 

+ 16 - 3
service-api/src/main/java/com/java110/api/listener/fee/PayOweFeeListener.java

@@ -9,6 +9,7 @@ import com.java110.core.annotation.Java110Listener;
 import com.java110.core.context.DataFlowContext;
 import com.java110.core.event.service.api.ServiceDataFlowEvent;
 import com.java110.dto.fee.FeeAttrDto;
+import com.java110.dto.feeReceipt.FeeReceiptDetailDto;
 import com.java110.dto.repair.RepairDto;
 import com.java110.entity.center.AppService;
 import com.java110.intf.community.IParkingSpaceInnerServiceSMO;
@@ -124,12 +125,24 @@ public class PayOweFeeListener extends AbstractServiceApiDataFlowListener {
         }
 
         //这里只是写入 收据表,暂不考虑 事务一致性问题,就算写入失败 也只是影响 收据打印,如果 贵公司对 收据要求 比较高,不能有失败的情况 请加入事务管理
-        feeReceiptDetailInnerServiceSMOImpl.saveFeeReceiptDetails(feeReceiptDetailPos);
+//        feeReceiptDetailInnerServiceSMOImpl.saveFeeReceiptDetails(feeReceiptDetailPos);
+//
+//        feeReceiptInnerServiceSMOImpl.saveFeeReceipts(feeReceiptPos);
 
+        //根据明细ID 查询收据信息
+        List<String> detailIds = new ArrayList<>();
+
+        for (FeeReceiptDetailPo feeReceiptDetailPo : feeReceiptDetailPos) {
+            detailIds.add(feeReceiptDetailPo.getDetailId());
+        }
+
+        FeeReceiptDetailDto feeReceiptDetailDto = new FeeReceiptDetailDto();
+        feeReceiptDetailDto.setDetailIds(detailIds.toArray(new String[detailIds.size()]));
+        feeReceiptDetailDto.setCommunityId(paramObj.getString("communityId"));
+        List<FeeReceiptDetailDto> feeReceiptDetailDtos = feeReceiptDetailInnerServiceSMOImpl.queryFeeReceiptDetails(feeReceiptDetailDto);
 
-        feeReceiptInnerServiceSMOImpl.saveFeeReceipts(feeReceiptPos);
 
-        dataFlowContext.setResponseEntity(ResultVo.createResponseEntity(feeReceiptPos));
+        dataFlowContext.setResponseEntity(ResultVo.createResponseEntity(feeReceiptDetailDtos));
     }
 
     private void getFeeReceiptDetailPo(DataFlowContext dataFlowContext, JSONObject paramObj, JSONArray businesses, List<FeeReceiptDetailPo> feeReceiptDetailPos, List<FeeReceiptPo> feeReceiptPos) {