Parcourir la source

优化收据生成失败时 手工生成

java110 il y a 2 ans
Parent
commit
61179751da

+ 32 - 0
java110-interface/src/main/java/com/java110/intf/fee/IGeneratorFeeReceiptInnerServiceSMO.java

@@ -0,0 +1,32 @@
+package com.java110.intf.fee;
+
+import com.java110.config.feign.FeignConfiguration;
+import com.java110.dto.fee.FeeReceiptDto;
+import com.java110.dto.fee.FeeReceiptDtoNew;
+import com.java110.po.fee.FeeReceiptPo;
+import com.java110.po.fee.PayFeeDetailPo;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+
+import java.util.List;
+
+/**
+ * @ClassName IFeeReceiptInnerServiceSMO
+ * @Description 收据接口类
+ * @Author wuxw
+ * @Date 2019/4/24 9:04
+ * @Version 1.0
+ * add by wuxw 2019/4/24
+ **/
+@FeignClient(name = "fee-service", configuration = {FeignConfiguration.class})
+@RequestMapping("/generatorFeeReceiptApi")
+public interface IGeneratorFeeReceiptInnerServiceSMO {
+
+
+    @RequestMapping(value = "/generator", method = RequestMethod.POST)
+   int generator(@RequestBody PayFeeDetailPo payFeeDetailPo);
+
+
+}

+ 89 - 0
service-fee/src/main/java/com/java110/fee/cmd/receipt/GeneratorReceiptCmd.java

@@ -0,0 +1,89 @@
+package com.java110.fee.cmd.receipt;
+
+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.fee.FeeDetailDto;
+import com.java110.dto.fee.FeeReceiptDetailDto;
+import com.java110.intf.fee.*;
+import com.java110.po.fee.PayFeeDetailPo;
+import com.java110.utils.cache.CommonCache;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.utils.util.StringUtil;
+import com.java110.vo.ResultVo;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.text.ParseException;
+import java.util.List;
+
+/**
+ * 手工生成收据
+ */
+@Java110Cmd(serviceCode = "receipt.generatorReceipt")
+public class GeneratorReceiptCmd extends Cmd {
+
+    @Autowired
+    private IFeeDetailInnerServiceSMO feeDetailInnerServiceSMOImpl;
+
+    @Autowired
+    private IFeeReceiptDetailInnerServiceSMO feeReceiptDetailInnerServiceSMOImpl;
+
+    @Autowired
+    private IGeneratorFeeReceiptInnerServiceSMO generatorFeeReceiptInnerServiceSMOImpl;
+
+    @Override
+    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+        Assert.hasKeyAndValue(reqJson, "communityId", "未包含小区信息");
+        Assert.hasKeyAndValue(reqJson, "detailId", "未包含收据ID");
+
+
+        //todo 查询收费明细是否存在
+        FeeDetailDto feeDetailDto = new FeeDetailDto();
+        feeDetailDto.setDetailId(reqJson.getString("detailId"));
+        feeDetailDto.setCommunityId(reqJson.getString("communityId"));
+        List<FeeDetailDto> feeDetailDtos = feeDetailInnerServiceSMOImpl.queryFeeDetails(feeDetailDto);
+        Assert.listOnlyOne(feeDetailDtos, "缴费明细不存在");
+
+
+        FeeReceiptDetailDto feeReceiptDetailDto = new FeeReceiptDetailDto();
+        feeReceiptDetailDto.setDetailId(reqJson.getString("detailId"));
+        feeReceiptDetailDto.setCommunityId(reqJson.getString("communityId"));
+        List<FeeReceiptDetailDto> feeReceiptDetailDtos = feeReceiptDetailInnerServiceSMOImpl.queryFeeReceiptDetails(feeReceiptDetailDto);
+
+        if (feeReceiptDetailDtos != null && feeReceiptDetailDtos.size() > 0) {
+            throw new CmdException("收据已存在");
+        }
+
+
+        reqJson.put("feeDetailDto", feeDetailDtos.get(0));
+
+
+    }
+
+    @Override
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+
+        FeeDetailDto feeDetailDto = (FeeDetailDto) reqJson.get("feeDetailDto");
+
+
+        PayFeeDetailPo payFeeDetailPo = BeanConvertUtil.covertBean(feeDetailDto, PayFeeDetailPo.class);
+
+        String receiptCode = reqJson.getString("receiptCode");
+        if (!StringUtil.isEmpty(receiptCode)) {
+            CommonCache.setValue(payFeeDetailPo.getDetailId() + CommonCache.RECEIPT_CODE, receiptCode);
+        }
+
+        //todo 手工打印
+        generatorFeeReceiptInnerServiceSMOImpl.generator(payFeeDetailPo);
+
+        if (!StringUtil.isEmpty(receiptCode)) {
+            CommonCache.removeValue(payFeeDetailPo.getDetailId() + CommonCache.RECEIPT_CODE);
+        }
+
+        context.setResponseEntity(ResultVo.success());
+    }
+}

+ 160 - 0
service-fee/src/main/java/com/java110/fee/smo/impl/GeneratorFeeReceiptInnerServiceSMOImpl.java

@@ -0,0 +1,160 @@
+package com.java110.fee.smo.impl;
+
+
+import com.java110.core.base.smo.BaseServiceSMO;
+import com.java110.core.factory.CommunitySettingFactory;
+import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.core.log.LoggerFactory;
+import com.java110.core.smo.IComputeFeeSMO;
+import com.java110.dto.PageDto;
+import com.java110.dto.community.CommunitySettingDto;
+import com.java110.dto.fee.FeeDetailDto;
+import com.java110.dto.fee.FeeDto;
+import com.java110.dto.fee.FeeReceiptDto;
+import com.java110.dto.fee.FeeReceiptDtoNew;
+import com.java110.dto.log.LogSystemErrorDto;
+import com.java110.dto.machine.MachinePrinterDto;
+import com.java110.dto.owner.OwnerDto;
+import com.java110.dto.printerRule.PrinterRuleDto;
+import com.java110.dto.printerRule.PrinterRuleFeeDto;
+import com.java110.dto.printerRule.PrinterRuleMachineDto;
+import com.java110.fee.dao.IFeeReceiptServiceDao;
+import com.java110.intf.common.IMachinePrinterV1InnerServiceSMO;
+import com.java110.intf.common.IPrinterRuleFeeV1InnerServiceSMO;
+import com.java110.intf.common.IPrinterRuleMachineV1InnerServiceSMO;
+import com.java110.intf.common.IPrinterRuleV1InnerServiceSMO;
+import com.java110.intf.community.ICommunitySettingInnerServiceSMO;
+import com.java110.intf.fee.*;
+import com.java110.po.community.CommunitySettingPo;
+import com.java110.po.fee.FeeReceiptDetailPo;
+import com.java110.po.fee.FeeReceiptPo;
+import com.java110.po.fee.PayFeeDetailPo;
+import com.java110.po.log.LogSystemErrorPo;
+import com.java110.service.smo.ISaveSystemErrorSMO;
+import com.java110.utils.cache.CommonCache;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.factory.ApplicationContextFactory;
+import com.java110.utils.lock.DistributedLock;
+import com.java110.utils.util.*;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @ClassName FloorInnerServiceSMOImpl
+ * @Description 收据内部服务实现类
+ * @Author wuxw
+ * @Date 2019/4/24 9:20
+ * @Version 1.0
+ * add by wuxw 2019/4/24
+ **/
+@RestController
+public class GeneratorFeeReceiptInnerServiceSMOImpl extends BaseServiceSMO implements IGeneratorFeeReceiptInnerServiceSMO {
+    private static Logger logger = LoggerFactory.getLogger(GeneratorFeeReceiptInnerServiceSMOImpl.class);
+
+    @Autowired
+    private ISaveSystemErrorSMO saveSystemErrorSMOImpl;
+
+    @Autowired
+    private IFeeReceiptInnerServiceSMO feeReceiptInnerServiceSMOImpl;
+
+    @Autowired
+    private IFeeReceiptDetailInnerServiceSMO feeReceiptDetailInnerServiceSMOImpl;
+
+    @Autowired
+    private IFeeInnerServiceSMO feeInnerServiceSMOImpl;
+
+    @Autowired
+    private IFeeDetailInnerServiceSMO feeDetailInnerServiceSMOImpl;
+
+    @Autowired
+    private IComputeFeeSMO computeFeeSMOImpl;
+
+    @Autowired
+    private IFeeReceiptServiceDao feeReceiptServiceDaoImpl;
+
+    @Autowired
+    private ICommunitySettingInnerServiceSMO communitySettingInnerServiceSMOImpl;
+
+
+    //键(退费收据开关)
+    public static final String REFUND_RECEIPT_SWITCH = "REFUND_RECEIPT_SWITCH";
+
+    @Override
+    public int generator(@RequestBody PayFeeDetailPo payFeeDetailPo) {
+        int saveFlag = 1;
+        try {
+
+            FeeDto feeDto = new FeeDto();
+            feeDto.setFeeId(payFeeDetailPo.getFeeId());
+            feeDto.setCommunityId(payFeeDetailPo.getCommunityId());
+            List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDto);
+            Assert.listOnlyOne(feeDtos, "未查询到费用信息");
+            feeDto = feeDtos.get(0);
+            //查询业主信息
+            OwnerDto ownerDto = computeFeeSMOImpl.getFeeOwnerDto(feeDto);
+            //获取小区配置里退费收据开关(open开;off关)
+            String refundReceiptSwitch = CommunitySettingFactory.getValue(payFeeDetailPo.getCommunityId(), REFUND_RECEIPT_SWITCH);
+            // if received amount lt zero
+            if ("off".equals(refundReceiptSwitch) && Double.parseDouble(payFeeDetailPo.getReceivedAmount()) < 0) {
+                return 0;
+            }
+
+            String receiptCode = CommonCache.getValue(payFeeDetailPo.getDetailId() + CommonCache.RECEIPT_CODE);
+            //todo 如果为空重新生成收据编号
+            if (StringUtil.isEmpty(receiptCode)) {
+                receiptCode = feeReceiptInnerServiceSMOImpl.generatorReceiptCode(payFeeDetailPo.getCommunityId());
+            }
+
+            //添加收据和收据详情
+            FeeReceiptPo feeReceiptPo = new FeeReceiptPo();
+            FeeReceiptDetailPo feeReceiptDetailPo = new FeeReceiptDetailPo();
+            feeReceiptDetailPo.setAmount(payFeeDetailPo.getReceivedAmount());
+            feeReceiptDetailPo.setCommunityId(feeDto.getCommunityId());
+            feeReceiptDetailPo.setCycle(payFeeDetailPo.getCycles());
+            feeReceiptDetailPo.setDetailId(payFeeDetailPo.getDetailId());
+            feeReceiptDetailPo.setEndTime(payFeeDetailPo.getEndTime());
+            feeReceiptDetailPo.setFeeId(feeDto.getFeeId());
+            feeReceiptDetailPo.setFeeName(StringUtil.isEmpty(feeDto.getImportFeeName()) ? feeDto.getFeeName() : feeDto.getImportFeeName());
+            feeReceiptDetailPo.setStartTime(payFeeDetailPo.getStartTime());
+            feeReceiptDetailPo.setReceiptId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_receiptId));
+            feeReceiptDetailPo.setCreateTime(payFeeDetailPo.getCreateTime());
+            //处理 小数点后 0
+            feeDto.setSquarePrice(Double.parseDouble(feeDto.getSquarePrice()) + "");
+            feeDto.setAdditionalAmount(Double.parseDouble(feeDto.getAdditionalAmount()) + "");
+            computeFeeSMOImpl.freshFeeReceiptDetail(feeDto, feeReceiptDetailPo);
+            feeReceiptPo.setAmount(feeReceiptDetailPo.getAmount());
+            feeReceiptPo.setCommunityId(feeReceiptDetailPo.getCommunityId());
+            feeReceiptPo.setReceiptId(feeReceiptDetailPo.getReceiptId());
+            feeReceiptPo.setObjType(feeDto.getPayerObjType());
+            feeReceiptPo.setObjId(feeDto.getPayerObjId());
+            feeReceiptPo.setObjName(computeFeeSMOImpl.getFeeObjName(feeDto));
+            feeReceiptPo.setPayObjId(ownerDto.getOwnerId());
+            feeReceiptPo.setPayObjName(ownerDto.getName());
+            feeReceiptPo.setCreateTime(payFeeDetailPo.getCreateTime());
+            feeReceiptPo.setReceiptCode(receiptCode);
+            //这里只是写入 收据表,暂不考虑 事务一致性问题,就算写入失败 也只是影响 收据打印,如果 贵公司对 收据要求 比较高,不能有失败的情况 请加入事务管理
+            feeReceiptDetailInnerServiceSMOImpl.saveFeeReceiptDetail(feeReceiptDetailPo);
+            feeReceiptInnerServiceSMOImpl.saveFeeReceipt(feeReceiptPo);
+
+
+        } catch (Exception e) {
+            LogSystemErrorPo logSystemErrorPo = new LogSystemErrorPo();
+            logSystemErrorPo.setErrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_errId));
+            logSystemErrorPo.setErrType(LogSystemErrorDto.ERR_TYPE_NOTICE);
+            logSystemErrorPo.setMsg(ExceptionUtil.getStackTrace(e));
+            saveSystemErrorSMOImpl.saveLog(logSystemErrorPo);
+            logger.error("通知异常", e);
+        }
+        return saveFlag;
+    }
+
+
+
+}

+ 14 - 91
service-job/src/main/java/com/java110/job/adapt/payment/receipt/PayFeeReceiptAdapt.java

@@ -19,10 +19,7 @@ import com.java110.intf.common.IMachinePrinterV1InnerServiceSMO;
 import com.java110.intf.common.IPrinterRuleFeeV1InnerServiceSMO;
 import com.java110.intf.common.IPrinterRuleMachineV1InnerServiceSMO;
 import com.java110.intf.common.IPrinterRuleV1InnerServiceSMO;
-import com.java110.intf.fee.IFeeDetailInnerServiceSMO;
-import com.java110.intf.fee.IFeeInnerServiceSMO;
-import com.java110.intf.fee.IFeeReceiptDetailInnerServiceSMO;
-import com.java110.intf.fee.IFeeReceiptInnerServiceSMO;
+import com.java110.intf.fee.*;
 import com.java110.job.adapt.DatabusAdaptImpl;
 import com.java110.job.printer.IPrinter;
 import com.java110.po.fee.PayFeeDetailPo;
@@ -56,38 +53,25 @@ public class PayFeeReceiptAdapt extends DatabusAdaptImpl {
 
     private static Logger logger = LoggerFactory.getLogger(PayFeeReceiptAdapt.class);
 
-    @Autowired
-    private ISaveSystemErrorSMO saveSystemErrorSMOImpl;
-
-    @Autowired
-    private IFeeReceiptInnerServiceSMO feeReceiptInnerServiceSMOImpl;
 
     @Autowired
-    private IFeeReceiptDetailInnerServiceSMO feeReceiptDetailInnerServiceSMOImpl;
-
-    @Autowired
-    private IFeeInnerServiceSMO feeInnerServiceSMOImpl;
+    private IPrinterRuleFeeV1InnerServiceSMO printerRuleFeeV1InnerServiceSMOImpl;
 
     @Autowired
-    private IFeeDetailInnerServiceSMO feeDetailInnerServiceSMOImpl;
+    private IPrinterRuleV1InnerServiceSMO printerRuleV1InnerServiceSMOImpl;
 
     @Autowired
-    private IComputeFeeSMO computeFeeSMOImpl;
-
-    //键(退费收据开关)
-    public static final String REFUND_RECEIPT_SWITCH = "REFUND_RECEIPT_SWITCH";
+    private IPrinterRuleMachineV1InnerServiceSMO printerRuleMachineV1InnerServiceSMOImpl;
 
     @Autowired
-    private IPrinterRuleFeeV1InnerServiceSMO printerRuleFeeV1InnerServiceSMOImpl;
+    private IMachinePrinterV1InnerServiceSMO machinePrinterV1InnerServiceSMOImpl;
 
     @Autowired
-    private IPrinterRuleV1InnerServiceSMO printerRuleV1InnerServiceSMOImpl;
+    private IFeeDetailInnerServiceSMO feeDetailInnerServiceSMOImpl;
 
-    @Autowired
-    private IPrinterRuleMachineV1InnerServiceSMO printerRuleMachineV1InnerServiceSMOImpl;
 
     @Autowired
-    private IMachinePrinterV1InnerServiceSMO machinePrinterV1InnerServiceSMOImpl;
+    private IGeneratorFeeReceiptInnerServiceSMO generatorFeeReceiptInnerServiceSMOImpl;
 
 
     //模板信息推送地址
@@ -138,76 +122,14 @@ public class PayFeeReceiptAdapt extends DatabusAdaptImpl {
     }
 
     private void doPayFeeDetail(Business business, JSONObject businessPayFeeDetail) {
-        try {
-            //查询缴费明细
-            PayFeeDetailPo payFeeDetailPo = BeanConvertUtil.covertBean(businessPayFeeDetail, PayFeeDetailPo.class);
-            FeeDto feeDto = new FeeDto();
-            feeDto.setFeeId(payFeeDetailPo.getFeeId());
-            feeDto.setCommunityId(payFeeDetailPo.getCommunityId());
-            List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDto);
-            Assert.listOnlyOne(feeDtos, "未查询到费用信息");
-            feeDto = feeDtos.get(0);
-            //查询业主信息
-            OwnerDto ownerDto = computeFeeSMOImpl.getFeeOwnerDto(feeDto);
-            //获取小区配置里退费收据开关(open开;off关)
-            String refundReceiptSwitch = CommunitySettingFactory.getValue(payFeeDetailPo.getCommunityId(), REFUND_RECEIPT_SWITCH);
-            // if received amount lt zero
-            if (!StringUtil.isEmpty(refundReceiptSwitch) && refundReceiptSwitch.equals("off") && businessPayFeeDetail.containsKey("receivedAmount")
-                    && businessPayFeeDetail.getDoubleValue("receivedAmount") < 0) {
-                return;
-            }
+        //查询缴费明细
+        PayFeeDetailPo payFeeDetailPo = BeanConvertUtil.covertBean(businessPayFeeDetail, PayFeeDetailPo.class);
+        generatorFeeReceiptInnerServiceSMOImpl.generator(payFeeDetailPo);
 
-            String receiptCode = CommonCache.getValue(payFeeDetailPo.getDetailId()+CommonCache.RECEIPT_CODE);
-            //todo 如果为空重新生成收据编号
-            if(StringUtil.isEmpty(receiptCode)){
-                receiptCode = feeReceiptInnerServiceSMOImpl.generatorReceiptCode(payFeeDetailPo.getCommunityId());
-            }
-
-            //添加收据和收据详情
-            FeeReceiptPo feeReceiptPo = new FeeReceiptPo();
-            FeeReceiptDetailPo feeReceiptDetailPo = new FeeReceiptDetailPo();
-            feeReceiptDetailPo.setAmount(businessPayFeeDetail.getString("receivedAmount"));
-            feeReceiptDetailPo.setCommunityId(feeDto.getCommunityId());
-            feeReceiptDetailPo.setCycle(businessPayFeeDetail.getString("cycles"));
-            feeReceiptDetailPo.setDetailId(businessPayFeeDetail.getString("detailId"));
-            feeReceiptDetailPo.setEndTime(businessPayFeeDetail.getString("endTime"));
-            feeReceiptDetailPo.setFeeId(feeDto.getFeeId());
-            feeReceiptDetailPo.setFeeName(StringUtil.isEmpty(feeDto.getImportFeeName()) ? feeDto.getFeeName() : feeDto.getImportFeeName());
-            feeReceiptDetailPo.setStartTime(businessPayFeeDetail.getString("startTime"));
-            feeReceiptDetailPo.setReceiptId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_receiptId));
-            feeReceiptDetailPo.setCreateTime(payFeeDetailPo.getCreateTime());
-            //处理 小数点后 0
-            feeDto.setSquarePrice(Double.parseDouble(feeDto.getSquarePrice()) + "");
-            feeDto.setAdditionalAmount(Double.parseDouble(feeDto.getAdditionalAmount()) + "");
-            computeFeeSMOImpl.freshFeeReceiptDetail(feeDto, feeReceiptDetailPo);
-            feeReceiptPo.setAmount(feeReceiptDetailPo.getAmount());
-            feeReceiptPo.setCommunityId(feeReceiptDetailPo.getCommunityId());
-            feeReceiptPo.setReceiptId(feeReceiptDetailPo.getReceiptId());
-            feeReceiptPo.setObjType(feeDto.getPayerObjType());
-            feeReceiptPo.setObjId(feeDto.getPayerObjId());
-            feeReceiptPo.setObjName(computeFeeSMOImpl.getFeeObjName(feeDto));
-            feeReceiptPo.setPayObjId(ownerDto.getOwnerId());
-            feeReceiptPo.setPayObjName(ownerDto.getName());
-            feeReceiptPo.setCreateTime(payFeeDetailPo.getCreateTime());
-            feeReceiptPo.setReceiptCode(receiptCode);
-            //这里只是写入 收据表,暂不考虑 事务一致性问题,就算写入失败 也只是影响 收据打印,如果 贵公司对 收据要求 比较高,不能有失败的情况 请加入事务管理
-            feeReceiptDetailInnerServiceSMOImpl.saveFeeReceiptDetail(feeReceiptDetailPo);
-            feeReceiptInnerServiceSMOImpl.saveFeeReceipt(feeReceiptPo);
-
-            // 是否配置了自动打印功能 如果配置了自动打印功能 自动打印
-            autoPrintReceipt(businessPayFeeDetail.getString("detailId"), feeDto.getCommunityId());
-        } catch (Exception e) {
-            LogSystemErrorPo logSystemErrorPo = new LogSystemErrorPo();
-            logSystemErrorPo.setErrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_errId));
-            logSystemErrorPo.setErrType(LogSystemErrorDto.ERR_TYPE_NOTICE);
-            logSystemErrorPo.setMsg(ExceptionUtil.getStackTrace(e));
-            saveSystemErrorSMOImpl.saveLog(logSystemErrorPo);
-            logger.error("通知异常", e);
-        }
+        //todo 是否配置了自动打印功能 如果配置了自动打印功能 自动打印
+        autoPrintReceipt(payFeeDetailPo.getDetailId(), payFeeDetailPo.getCommunityId());
     }
 
-
-
     private void autoPrintReceipt(String detailId, String communityId) {
 
         FeeDetailDto feeDetailDto = new FeeDetailDto();
@@ -271,9 +193,10 @@ public class PayFeeReceiptAdapt extends DatabusAdaptImpl {
             throw new CmdException("打印机异常,未包含适配器");
         }
 
-        printer.printPayFeeDetail(new String[]{detailId}, tmpPrinterRuleMachineDto.getCommunityId(), Integer.parseInt(tmpPrinterRuleMachineDto.getQuantity()), machinePrinterDtos.get(0),"");
+        printer.printPayFeeDetail(new String[]{detailId}, tmpPrinterRuleMachineDto.getCommunityId(), Integer.parseInt(tmpPrinterRuleMachineDto.getQuantity()), machinePrinterDtos.get(0), "");
 
     }
 
 
+
 }