xinyb_
2022-01-22 74e0609e9ae8747041720edbac54ae11bd444fc4
优化维护费支付功能-sql交互的调整
26个文件已删除
2个文件已添加
18个文件已修改
1621 ■■■■ 已修改文件
WebRoot/public/staticform/150371/5/payment.jsp 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/MaintenanceFee/controller/MaintainController.java 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/MaintenanceFee/controller/MaintainPayController.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/MaintenanceFee/entiy/CltInfo.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/MaintenanceFee/entiy/Order.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/MaintenanceFee/entiy/PayInfo.java 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/MaintenanceFee/entiy/PayItem.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/MaintenanceFee/entiy/PayLog.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/MaintenanceFee/entiy/PayMessage.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/MaintenanceFee/entiy/PayTask.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/MaintenanceFee/entiy/Receipt.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/MaintenanceFee/entiy/ReceiptDetailed.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/MaintenanceFee/entiy/ReceiptEntity.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/MaintenanceFee/mapper/CltInfoMapper.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/MaintenanceFee/mapper/OrderMapper.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/MaintenanceFee/mapper/PayInfoMapper.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/MaintenanceFee/mapper/PayItemMapper.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/MaintenanceFee/mapper/PayLogMapper.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/MaintenanceFee/mapper/PayMessageMapper.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/MaintenanceFee/mapper/PayTaskMapper.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/MaintenanceFee/mapper/ReceiptDetailedMapper.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/MaintenanceFee/mapper/ReceiptMapper.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/MaintenanceFee/schedule/MaintainPayGate.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/MaintenanceFee/service/CltInfoService.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/MaintenanceFee/service/MaintainService.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/MaintenanceFee/service/OrderService.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/MaintenanceFee/service/PayInfoService.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/MaintenanceFee/service/PayItemService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/MaintenanceFee/service/PayLogService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/MaintenanceFee/service/PayMessageService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/MaintenanceFee/service/PayTaskService.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/MaintenanceFee/service/ReceiptService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/MaintenanceFee/service/impl/CltInfoServiceImpl.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/MaintenanceFee/service/impl/MaintainServiceImpl.java 56 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/MaintenanceFee/service/impl/OrderServiceImpl.java 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/MaintenanceFee/service/impl/PayInfoServiceImpl.java 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/MaintenanceFee/service/impl/PayItemServiceImpl.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/MaintenanceFee/service/impl/PayLogServiceImpl.java 69 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/MaintenanceFee/service/impl/PayMessageServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/MaintenanceFee/service/impl/PayTaskServiceImpl.java 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/MaintenanceFee/service/impl/ReceiptServiceImpl.java 52 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/MaintenanceFee/utils/CronDateUtil.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/MaintenanceFee/utils/DateUtil.java 165 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/MaintenanceFee/utils/ReceiptUtils.java 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/MaintenanceFee/utils/ResultCode.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/help/config/MyBatisHelpConfig.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebRoot/public/staticform/150371/5/payment.jsp
@@ -107,7 +107,7 @@
            <thead>
            <tr>
                <th>费用单号</th>
                <th>费用日期</th>
<%--                <th>费用日期</th>--%>
                <th>金额</th>
                <th>收费项目</th>
                <th>有效期</th>
@@ -116,7 +116,7 @@
            <tbody>
            <tr v-for="(item,index) in order" style="color:green;">
                <td>{{item.sodocCode}}</td>
                <td v-html="getFilters(item.payItem,1)"></td>
<%--                <td v-html="getFilters(item.payItem,1)"></td>--%>
                <td>{{item.amount}}</td>
                <td v-html="getFilters(item.payItem,2)"></td>
                <td v-html="getFilters(item.payItem,3)"></td>
src/com/yc/MaintenanceFee/controller/MaintainController.java
@@ -9,13 +9,11 @@
import com.yc.entity.DataSourceEntity;
import com.yc.multiData.MultiDataSource;
import com.yc.multiData.SpObserver;
import com.yc.service.build.type.T_22_Ifc;
import com.yc.service.grid.GridServiceIfc;
import com.yc.service.impl.DBHelper;
import com.yc.utils.SessionKey;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.support.rowset.SqlRowSet;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@@ -36,10 +34,6 @@
@RestController
@RequestMapping("/Maintain")
public class MaintainController {
    @Autowired
    private CltInfoService cltInfoService;
    @Autowired
    private PayInfoService payInfoService;
@@ -70,45 +64,30 @@
            SpObserver.setDBtoInstance(DBID);
            //通过session携带dbId查询表得到相对应的客户编号
            String dbId = (String) session.getAttribute(SessionKey.DATA_BASE_ID);
            String cltCode = cltInfoService.queryCltCodeByDbId(dbId);
            if (StringUtils.isBlank(cltCode)) {
                msg.setOk(null);
                return msg;
            }
            //根据cltCode查询所有维护费用数据
            List<PayInfo> list = payInfoService.queryListByCltCode(cltCode, 100);
            if (list != null && list.size() > 0) {
                for (int i = 0; i < list.size(); i++) {
                    PayInfo payInfo = list.get(i);
                    boolean bol = false;
                    if (payInfo.getReceipts() != null && payInfo.getReceipts().size() > 0) {
                        for (Receipt r : payInfo.getReceipts()) {
                            if (StringUtils.isBlank(r.getDocStatus())) {
                                r.setDocStatus("0");
                            }
                            switch (r.getDocStatus()) {//存在收款单
                                case "0":
                                    payInfo.setStatus(1);
                                    payInfo.setSkCode(r.getDocCode());//收款单
                                    bol = true;
                                    break;
                                case "100":
                                    payInfo.setStatus(2);
                                    bol = true;
                                    break;
                                default:
                                    break;
                            }
                            if (bol) {
                                break;
            List<PayInfo> info = payInfoService.queryListByCltCode(dbId);
            if (info != null && info.size() > 0) {
                List<String> doc = new ArrayList<>();
                for (PayInfo i : info) {
                    doc.add(i.getDocCode());
                }
                msg.setCltCode(info.get(0).getCltCode());
                List<Map<String, Object>> d = receiptService.getReceiptStatus(String.join(",", doc));
                if (d != null && d.size() > 0) {
                    for (PayInfo f : info) {
                        for (Map<String, Object> m : d) {
                            if (f.getDocCode().equals(DBHelper.getValue(m,"soDocCode"))) {
                                f.setStatus(DBHelper.getValueInt(m, "docStatus"));
                                f.setSkCode(DBHelper.getValue(m,"docCode"));
                            }
                        }
                        payInfo.setReceipts(null);
                    }
                }
                list.removeIf(payInfo -> payInfo.getStatus() == 2);
                msg.setOk(info);
            } else {
                msg.setCltCode(payInfoService.queryCltCodeByDbId(dbId));
                msg.setOk(null);
            }
            msg.setCltCode(cltCode).setOk(list);
        } catch (Exception e) {
            msg.setError(e.getCause() != null ? e.getCause().getMessage() : e.getMessage());
        } finally {
@@ -151,6 +130,7 @@
                    log.setRefformid(150101);
                    log.setRefformtype(496);
                    log.setInsertTime(new Date());
                    log.setBatchNo(0);
                    log.setStatus("0");
                    log.setMerchantRemarks("维护费生成信息。生成了收款单:" + skCode + ",未支付。");
                    //使用自定义的格式
@@ -194,8 +174,8 @@
            }
            SpObserver.setDBtoInstance(DBID);
            Receipt receipt = receiptService.QueryReceipt(skCode, 0);
            if(receipt!=null && !StringUtils.isBlank(receipt.getDocCode())){
                String dbId= (String) request.getSession().getAttribute(SessionKey.DATA_BASE_ID);
            if (receipt != null && !StringUtils.isBlank(receipt.getDocCode())) {
                String dbId = (String) request.getSession().getAttribute(SessionKey.DATA_BASE_ID);
                //获取收款人
                receipt.setPayee(PayCallBackUtil.getReceivingCompany(dbId));
            }
@@ -253,11 +233,13 @@
        BackMsg msg = new BackMsg();
        try {
            if (StringUtils.isBlank(cltCode)) {
                msg.setError("客户编号不能为空!");
//                msg.setError("客户编号不能为空!");
                msg.setOk(null);
                return msg;
            }
            if (docStatus == null) {
                msg.setError("输入查询的状态值");
//                msg.setError("输入查询的状态值");
                msg.setOk(null);
                return msg;
            }
            SpObserver.setDBtoInstance(DBID);
@@ -273,6 +255,7 @@
    /**
     * 支付后更新推送信息
     *
     * @param skCode
     * @param request
     * @return
@@ -281,7 +264,7 @@
    public BackMsg getUpdateMessage(String skCode, HttpServletRequest request) {
        BackMsg msg = new BackMsg();
        List<String> list = null;
        String dbId= (String) request.getSession().getAttribute(SessionKey.DATA_BASE_ID);
        String dbId = (String) request.getSession().getAttribute(SessionKey.DATA_BASE_ID);
        try {
            SpObserver.setDBtoInstance(DBID);
            list = maintainService.selectWHCode(skCode);
@@ -294,9 +277,9 @@
        try {
            SpObserver.setDBtoInstance("_" + dbId);
            if (list != null && list.size() > 0) {
               maintainService.updateMessage(String.join(",", list));
                maintainService.updateMessage(String.join(",", list));
            }
        }finally {
        } finally {
            SpObserver.setDBtoInstance();
        }
        return msg;
src/com/yc/MaintenanceFee/controller/MaintainPayController.java
@@ -1,9 +1,6 @@
package com.yc.MaintenanceFee.controller;
import com.alipay.api.AlipayApiException;
import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyResult;
import com.github.binarywang.wxpay.bean.notify.WxScanPayNotifyResult;
import com.github.binarywang.wxpay.exception.WxPayException;
import com.yc.MaintenanceFee.entiy.*;
import com.yc.MaintenanceFee.service.*;
import com.yc.MaintenanceFee.utils.BackMsg;
@@ -14,7 +11,6 @@
import com.yc.sdk.shopping.util.SettingKey;
import com.yc.service.impl.DBHelper;
import com.yc.utils.SessionKey;
import me.chanjar.weixin.common.util.XmlUtils;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -27,8 +23,6 @@
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
@@ -182,7 +176,7 @@
                        log.setMerchantRemarks(remarks);
                        log.setAmount(map.get("totalFee").toString());
                        log.setThirdOrderNo((String) map.get("transactionId"));
                        maintainService.saveOrUpdatePayLog(log);
                        payLogService.saveOrUpdatePayLog(log);
                    }
                } catch (Exception e) {
                    map.put("LogError", e.getCause() != null ? e.getCause().getMessage() : e.getMessage());
@@ -366,7 +360,7 @@
                            maintainService.savePostingLogic(skCode);
                            //更新日志
                            log.setRefDoccode(skCode);
                            maintainService.saveOrUpdatePayLog(log);
                            payLogService.saveOrUpdatePayLog(log);
                        }finally {
                            SpObserver.setDBtoInstance();
                        }
src/com/yc/MaintenanceFee/entiy/CltInfo.java
File was deleted
src/com/yc/MaintenanceFee/entiy/Order.java
File was deleted
src/com/yc/MaintenanceFee/entiy/PayInfo.java
@@ -1,43 +1,24 @@
package com.yc.MaintenanceFee.entiy;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
 *
 */
@Data
@TableName("t120301H")//主表数据
public class PayInfo extends Model<PayInfo> {
public class PayInfo {
    @TableId(value = "DocCode",type = IdType.INPUT)
    private String docCode;
    @TableField("CltCode")
    private String cltCode;
    @TableField("CltName")
    private String DocCode;
    private String CltCode;
    private String cltName;
    @TableField("DocType")
    private String DocType;
    @TableField("DocDate")
    private String docDate;
    @TableField("ReceivMoney")
    private BigDecimal receivMoney;
    //可能需要添加的字段(维护费用支付状态)
    private String DocDate;
    private BigDecimal ReceivMoney;
    @TableField(exist = false)
    private List<PayItem> itemList;
    @TableField(exist = false)
    private List<Receipt> receipts;
    @TableField(exist = false)
    private Integer status=0;
    @TableField(exist = false)
    private String skCode;
}
src/com/yc/MaintenanceFee/entiy/PayItem.java
@@ -1,10 +1,4 @@
package com.yc.MaintenanceFee.entiy;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.Data;
import java.math.BigDecimal;
@@ -13,24 +7,18 @@
 * 维护费用子项
 */
@Data
@TableName("t120301D")//从表数据
public class PayItem extends Model<PayItem> {
    @TableId(type = IdType.INPUT,value = "docCode")
    private String docCode;
    @TableField(value = "MatName")
    private String matName;
    @TableField(value = "Price")
    private BigDecimal price;
    @TableField("TotalMoney")
    private BigDecimal totalMoney;
    @TableField("ItemMemo")
    private String itemMemo;
    @TableField("Digit")
    private Integer Digit;
    @TableField("FYbeginday")
    private String FYbeginday;
    @TableField("FYendday")
    private String FYendday;
public class PayItem {
    private String DocCode;
    private String CltCode;
    private String cltName;
    private String DocType;
    private String DocDate;
    private BigDecimal ReceivMoney;
    private String matName;
    private BigDecimal price;
    private BigDecimal totalMoney;
    private String itemMemo;
    private Integer Digit;
    private String FYbeginday;
    private String FYendday;
}
src/com/yc/MaintenanceFee/entiy/PayLog.java
@@ -1,9 +1,5 @@
package com.yc.MaintenanceFee.entiy;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.Date;
@@ -14,44 +10,24 @@
 * @DATE: 2021-11-22 16:24
 */
@Data
@TableName("t150101log")
public class PayLog {
    @TableField(value = "MerchantID")
    private String MerchantID;
    @TableField(value = "TrxType")
    private String TrxType;
    @TableId(value = "RefDoccode",type = IdType.INPUT)
    private String RefDoccode;//主键
    @TableField(value = "Refformid")
    private Integer Refformid;
    @TableField(value = "Refformtype")
    private Integer Refformtype;
    @TableField(value = "Amount")
    private String Amount;
    @TableField(value = "BatchNo")
    private double BatchNo;
    @TableField(value = "VoucherNo")
    private String VoucherNo;
    @TableField(value = "HostDate")
    private String HostDate;
    @TableField(value = "HostTime")
    private String HostTime;
    @TableField(value = "MerchantRemarks")
    private String MerchantRemarks;
    @TableField(value = "PayType")
    private String PayType;
    @TableField(value = "NotifyType")
    private String NotifyType;
    @TableField(value = "iRspRef")
    private String iRspRef;
    @TableField(value = "bank_type")
    private String bank_type;
    @TableField(value = "ThirdOrderNo")
    private String ThirdOrderNo;
    @TableField(value = "Status")
    private String Status;
    @TableField(value = "InsertTime")
    private Date InsertTime;
    @TableField(exist = false)
    private List<PayItem> itemList;
}
src/com/yc/MaintenanceFee/entiy/PayMessage.java
File was deleted
src/com/yc/MaintenanceFee/entiy/PayTask.java
File was deleted
src/com/yc/MaintenanceFee/entiy/Receipt.java
@@ -3,6 +3,7 @@
import lombok.Data;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -26,7 +27,7 @@
    private String hdMemo;
    private BigDecimal sumNatAmount;
    private BigDecimal sumAmount;
    private List<ReceiptDetailed> detailed;
    private List<ReceiptDetailed> detailed=new ArrayList<>();
    private String payee;//收款人
src/com/yc/MaintenanceFee/entiy/ReceiptDetailed.java
@@ -3,6 +3,7 @@
import lombok.Data;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
/**
@@ -18,6 +19,7 @@
    private String SOFormId;
    private BigDecimal natAmount;
    private BigDecimal amount;
    private List<PayItem> payItem;
    private List<PayItem> payItem=new ArrayList<>();
}
src/com/yc/MaintenanceFee/entiy/ReceiptEntity.java
New file
@@ -0,0 +1,38 @@
package com.yc.MaintenanceFee.entiy;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
 * @USER: xinyb_
 * @DATE: 2022-01-20 15:28
 */
@Data
public class ReceiptEntity {
    private String DocCode;
    private String FormID;
    private String DocDate;
    private Date EnterDate;
    private String DocType;
    private String RefCode;
    private String CompanyName;
    private String DocStatus;
    private String CltCode;
    private String CltName;
    private String HDMemo;
    private BigDecimal SumNatAmount;
    private BigDecimal SumAmount;
    private String SODocCode;
    private String SOFormId;
    private BigDecimal natAmount;
    private BigDecimal amount;
    private String MatName;
    private BigDecimal TotalMoney;
    private Integer Digit;
    private String FYbeginday;
    private String FYendday;
}
src/com/yc/MaintenanceFee/mapper/CltInfoMapper.java
File was deleted
src/com/yc/MaintenanceFee/mapper/OrderMapper.java
File was deleted
src/com/yc/MaintenanceFee/mapper/PayInfoMapper.java
File was deleted
src/com/yc/MaintenanceFee/mapper/PayItemMapper.java
File was deleted
src/com/yc/MaintenanceFee/mapper/PayLogMapper.java
File was deleted
src/com/yc/MaintenanceFee/mapper/PayMessageMapper.java
File was deleted
src/com/yc/MaintenanceFee/mapper/PayTaskMapper.java
File was deleted
src/com/yc/MaintenanceFee/mapper/ReceiptDetailedMapper.java
File was deleted
src/com/yc/MaintenanceFee/mapper/ReceiptMapper.java
File was deleted
src/com/yc/MaintenanceFee/schedule/MaintainPayGate.java
@@ -2,15 +2,13 @@
import com.yc.MaintenanceFee.entiy.PayLog;
import com.yc.MaintenanceFee.service.AliPayService;
import com.yc.MaintenanceFee.service.MaintainService;
import com.yc.MaintenanceFee.service.PayLogService;
import com.yc.MaintenanceFee.service.WxPayService;
import com.yc.MaintenanceFee.utils.BackMsg;
import com.yc.abc.entity.OrderEntity;
import com.yc.abc.service.AbcPayServiceIfc;
import com.yc.entity.DataSourceEntity;
import com.yc.exception.ApplicationException;
import com.yc.factory.FactoryBean;
import com.yc.multiData.MultiDataSource;
import com.yc.multiData.SpObserver;
import com.yc.open.init.BaseGate;
import com.yc.open.init.Task;
@@ -32,13 +30,13 @@
    private static AliPayService aliPayService;
    private static WxPayService wxPayService;
    private static MaintainService maintainService;
    private static PayLogService payLogService;
    private static AbcPayServiceIfc abcPayServiceIfc;
    private static String TASKID = "OP0029";
    static {
        abcPayServiceIfc = (AbcPayServiceIfc) FactoryBean.getBean("abcPayServiceImpl");
        maintainService = (MaintainService) FactoryBean.getBean("maintainServiceImpl");
        payLogService= (PayLogService) FactoryBean.getBean("payLogServiceImpl");
        aliPayService = (AliPayService) FactoryBean.getBean("aliPayServiceImpl");
        wxPayService = (WxPayService) FactoryBean.getBean("wxPayServiceImpl");
    }
@@ -56,7 +54,7 @@
                    }
                    if (orderEntity.getAmount().doubleValue() > 0) {
                        //获取客户支付的日志信息
                        PayLog log = maintainService.selectPayLog(orderEntity.getOrderNo());
                        PayLog log = payLogService.getPayLog(orderEntity.getOrderNo());//maintainService.selectPayLog(orderEntity.getOrderNo());
                        //退款金额>0才执行退款操作
                        if (log != null && !StringUtils.isBlank(log.getPayType())) {
                            //todo 金额
@@ -78,7 +76,7 @@
                                log.setStatus("03");
                                log.setMerchantRemarks("维护费退款信息。订单号:" + orderEntity.getOrderNo() + ",退款成功!退款金额:" + amount);
                                log.setInsertTime(new Date());
                                maintainService.saveOrUpdatePayLog(log);
                                payLogService.saveOrUpdatePayLog(log);
                            }else{
                                throw new ApplicationException(msg.getMsg());
                            }
src/com/yc/MaintenanceFee/service/CltInfoService.java
File was deleted
src/com/yc/MaintenanceFee/service/MaintainService.java
@@ -1,7 +1,5 @@
package com.yc.MaintenanceFee.service;
import com.yc.MaintenanceFee.entiy.PayLog;
import java.util.List;
import java.util.Map;
@@ -10,11 +8,6 @@
 * @DATE: 2021-11-22 17:55
 */
public interface MaintainService {
    /**
     * 保存或更新支付记录
     * @param payLog
     */
    abstract int saveOrUpdatePayLog(PayLog payLog);
    /**
     * 保存及过账
@@ -24,19 +17,11 @@
    abstract boolean savePostingLogic(String docCode);
    /**
     * 查询支付记录
     * @param docCode
     * @return
     */
    abstract PayLog selectPayLog(String docCode);
    /**
     * 用于维护费单据确认时检查目标客户是否有人接收费维费通知
     * @return
     */
     abstract List<Map<String, Object>> selectMaintenanceFeeNotification(String userCode);
//     abstract List<String> selectMaintainNoticeUser();
    /**
     * 推送给客户后,更新T150372
src/com/yc/MaintenanceFee/service/OrderService.java
File was deleted
src/com/yc/MaintenanceFee/service/PayInfoService.java
@@ -1,42 +1,29 @@
package com.yc.MaintenanceFee.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yc.MaintenanceFee.entiy.PayInfo;
import java.util.List;
public interface PayInfoService extends IService<PayInfo> {
    List<PayInfo> getAllPayInfo();
    /**
     * 查询费用项
     * @param cltCode 客户编码
     * @param docCode 文档编码
     * @return
     */
    PayInfo getPayInfoByCltCode(String cltCode,String docCode,Integer docStatus);
    /**
     * 查询费用项
     * @param cltCode 客户编码
     * @param docCode 文档编码
     * @return
     */
    PayInfo getPayInfoByCltCode2(String cltCode,String docCode,Integer docStatus);
    /**
     * 查询最新的文档编号
     * @param cltCode 客户编号
     * @return
     */
    String getLastDocCodeByCltCode(String cltCode);
public interface PayInfoService {
    /**
     * 查询对应客户未支付维护费用数据
     * @param cltCode 客户编号
     * @return
     */
    List<PayInfo> queryListByCltCode(String cltCode,Integer docStatus);
    List<PayInfo> queryListByCltCode(String dbId);
    /**
     * 根据客户编数查询码据源
     * @param cltCode
     * @return
     */
    Integer queryDbIdByCltCode(String cltCode);
    /**
     * 根据客户数据源查询客户编号
     * @param dbId
     * @return
     */
    String queryCltCodeByDbId(String dbId);
}
src/com/yc/MaintenanceFee/service/PayItemService.java
File was deleted
src/com/yc/MaintenanceFee/service/PayLogService.java
@@ -9,11 +9,10 @@
 * @USER: xinyb_
 * @DATE: 2021-11-22 16:33
 */
public interface PayLogService extends IService<PayLog> {
public interface PayLogService {
    //保存
    int saveOrUpdatePayLog(PayLog payLog);
    List<PayLog> selectPayLog(String cltCode);
    PayLog getPayLog(String docCode);
src/com/yc/MaintenanceFee/service/PayMessageService.java
File was deleted
src/com/yc/MaintenanceFee/service/PayTaskService.java
File was deleted
src/com/yc/MaintenanceFee/service/ReceiptService.java
@@ -1,19 +1,21 @@
package com.yc.MaintenanceFee.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yc.MaintenanceFee.entiy.Receipt;
import java.util.List;
import java.util.Map;
/**
 * @USER: xinyb_
 * @DATE: 2021-12-04 15:26
 */
public interface ReceiptService extends IService<Receipt> {
public interface ReceiptService {
    abstract Receipt QueryReceipt(String docCode,Integer docStatus);
    abstract List<Receipt> selectReceipt(String cltCode,Integer docStatus);
    abstract void cancelReceipt(String skCode);
    abstract List<Map<String,Object>> getReceiptStatus(String docCode);
}
src/com/yc/MaintenanceFee/service/impl/CltInfoServiceImpl.java
File was deleted
src/com/yc/MaintenanceFee/service/impl/MaintainServiceImpl.java
@@ -1,19 +1,10 @@
package com.yc.MaintenanceFee.service.impl;
import com.yc.MaintenanceFee.entiy.Order;
import com.yc.MaintenanceFee.entiy.PayInfo;
import com.yc.MaintenanceFee.entiy.PayLog;
import com.yc.MaintenanceFee.mapper.PayInfoMapper;
import com.yc.MaintenanceFee.service.CltInfoService;
import com.yc.MaintenanceFee.service.MaintainService;
import com.yc.MaintenanceFee.service.PayLogService;
import com.yc.abc.entity.OrderEntity;
import com.yc.entity.DataSourceEntity;
import com.yc.multiData.MultiDataSource;
import com.yc.MaintenanceFee.service.PayInfoService;
import com.yc.service.BaseService;
import net.bytebuddy.implementation.bind.annotation.Super;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.util.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.RowMapper;
@@ -32,20 +23,7 @@
public class MaintainServiceImpl extends BaseService implements MaintainService {
    @Autowired
    PayLogService payLogService;
    @Autowired
    CltInfoService cltInfoService;
    @Autowired
    PayInfoMapper payInfoMapper;
    @Override
    public int saveOrUpdatePayLog(PayLog payLog) {
        try {
            return payLogService.saveOrUpdatePayLog(payLog);
        } catch (Exception e) {
            return 0;
        }
    }
    PayInfoService payInfoService;
    @Override
    public boolean savePostingLogic(String docCode) {
@@ -73,15 +51,6 @@
    }
    @Override
    public PayLog selectPayLog(String docCode) {
        try {
            return payLogService.getPayLog(docCode);
        } catch (Exception e) {
            return null;
        }
    }
    @Override
    public List<Map<String, Object>> selectMaintenanceFeeNotification(String userCode) {
        try {
            String sql = "select isReceiveMaintenanceFeeNotification,inactive,usercode,username,tel from _sys_LoginUser where isReceiveMaintenanceFeeNotification=1 and inactive=0";
@@ -93,21 +62,6 @@
            return null;
        }
    }
//    @Override
//    public List<String> selectMaintainNoticeUser() {
//        try {
//            String sql = "select UserCode from _sys_LoginUser where isReceiveMaintenanceFeeNotification=1 and inActive=0";
//            return super.jdbcTemplate.query(sql, new RowMapper<String>() {
//                @Override
//                public String mapRow(ResultSet resultSet, int i) throws SQLException {
//                    return resultSet.getString(1);
//                }
//            }, null);
//        } catch (Exception e) {
//            return null;
//        }
//    }
    @Override
    public boolean updateT150372(String autoIds) {
@@ -153,9 +107,11 @@
    @Override
    public String selectCltCodeDbId(String table, String docCode) throws Exception {
        try {
            PayInfo info = payInfoMapper.getPayInfoTable(table, docCode);
            String sql="select DocCode,CltCode,DocType,DocDate \n" +
                    " from "+table+" where DocCode = '"+docCode+"'";
            PayInfo info = super.jdbcTemplate.queryForObject(sql,new BeanPropertyRowMapper<>(PayInfo.class));
            if (info != null && !StringUtils.isBlank(info.getCltCode())) {
                Integer dbId = cltInfoService.queryDbIdByCltCode(info.getCltCode());
                Integer dbId = payInfoService.queryDbIdByCltCode(info.getCltCode());
                if (dbId == null || dbId == 0) {
                    throw new Exception("获取不到客户编号:" + info.getCltCode() + "的dbId值,请完善【维护客户资料-110203】表内的dbId值");
                }
src/com/yc/MaintenanceFee/service/impl/OrderServiceImpl.java
File was deleted
src/com/yc/MaintenanceFee/service/impl/PayInfoServiceImpl.java
@@ -1,75 +1,49 @@
package com.yc.MaintenanceFee.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yc.MaintenanceFee.entiy.PayInfo;
import com.yc.MaintenanceFee.entiy.PayItem;
import com.yc.MaintenanceFee.mapper.PayInfoMapper;
import com.yc.MaintenanceFee.service.PayInfoService;
import com.yc.MaintenanceFee.service.PayItemService;
import org.springframework.beans.factory.annotation.Autowired;
import com.yc.MaintenanceFee.utils.ReceiptUtils;
import com.yc.service.BaseService;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.stereotype.Service;
import java.util.List;
@Service("payInfoServiceImpl")
public class PayInfoServiceImpl extends ServiceImpl<PayInfoMapper, PayInfo> implements PayInfoService {
    @Autowired
    private PayItemService payItemService;
    @Autowired
    private PayInfoMapper payInfoMapper;
public class PayInfoServiceImpl extends BaseService implements PayInfoService {
    @Override
    public List<PayInfo> getAllPayInfo() {
        return null;
    }
    @Override
    public PayInfo getPayInfoByCltCode(String cltCode, String docCode,Integer docStatus) {
        return payInfoMapper.getPayInfoByCltCode(cltCode, docCode,docStatus);
    }
    @Override
    public PayInfo getPayInfoByCltCode2(String cltCode, String docCode,Integer docStatus) {
        QueryWrapper<PayItem> payItemQueryWrapper = new QueryWrapper<>();
        payItemQueryWrapper.eq("doccode", docCode);
        List<PayItem> list = payItemService.list(payItemQueryWrapper);
        QueryWrapper<PayInfo> payInfoQueryWrapper = new QueryWrapper<>();
        payInfoQueryWrapper.eq("DocCode", docCode);
        payInfoQueryWrapper.eq("CltCode", cltCode);
        PayInfo payInfo;
        payInfo = this.getOne(payInfoQueryWrapper);
        if (payInfo == null) {
            throw new RuntimeException("参数错误,请检查" + cltCode +"和"+ docCode);
        }
//        payInfo.setItemList(list);
        payInfo.setItemList(list);
        return payInfo;
    }
    @Override
    public String getLastDocCodeByCltCode(String cltCode) {
        QueryWrapper<PayInfo> queryWrapper = new QueryWrapper<>();
        queryWrapper.notExists("select 1 from t120301H b where t120301H.CltCode = b.CltCode and b.DocDate > t120301H.DocDate");
        queryWrapper.eq("CltCode", cltCode);
        return this.getOne(queryWrapper).getDocCode();
    }
    @Override
    public List<PayInfo> queryListByCltCode(String cltCode,Integer docStatus) {
    public List<PayInfo> queryListByCltCode(String dbId) {
        try {
            return payInfoMapper.getPayInfoListByCltCode(cltCode,docStatus);
        }catch (Exception e){
            String sql = "select a.DocCode,a.CltCode,a.cltName,a.DocType,a.DocDate,a.ReceivMoney,b.MatName, b.Price, b.TotalMoney, b.ItemMemo,b.Digit,b.FYbeginday,b.FYendday\n" +
                    "from dbo.t120301H a join t120301D b on a.DocCode=b.doccode and  isnull(a.DocStatus,0)=100 and isnull(a.ReceivMoney,0)- isnull(a.ShouKuanAmount,0) > 0 \n" +
                    "join t110203 c on a.CltCode=c.cltCode \n" +
                    "where c.dbid=" + dbId + " order by a.DocDate desc";
            return ReceiptUtils.getList_T(super.jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(PayItem.class)));
        } catch (Exception e) {
            throw e;
        }
    }
    @Override
    public Integer queryDbIdByCltCode(String cltCode) {
        try {
            String sql = "select dbId from t110203 where cltCode='" + cltCode + "'";
            return super.jdbcTemplate.queryForObject(sql, Integer.class);
        } catch (Exception e) {
            return 0;
        }
    }
    @Override
    public String queryCltCodeByDbId(String dbId) {
        try {
            String sql = "select cltCode from t110203 where dbId=" + dbId;
            return super.jdbcTemplate.queryForObject(sql, String.class);
        } catch (Exception e) {
            return "";
        }
    }
}
src/com/yc/MaintenanceFee/service/impl/PayItemServiceImpl.java
File was deleted
src/com/yc/MaintenanceFee/service/impl/PayLogServiceImpl.java
@@ -1,67 +1,68 @@
package com.yc.MaintenanceFee.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yc.MaintenanceFee.entiy.PayLog;
import com.yc.MaintenanceFee.mapper.PayLogMapper;
import com.yc.MaintenanceFee.service.PayLogService;
import org.springframework.beans.factory.annotation.Autowired;
import com.yc.service.BaseService;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.stereotype.Service;
import java.util.List;
/**
 * @USER: xinyb_
 * @DATE: 2021-11-22 16:33
 */
@Service
public class PayLogServiceImpl extends ServiceImpl<PayLogMapper, PayLog> implements PayLogService {
    @Autowired
    PayLogMapper payLogMapper;
public class PayLogServiceImpl extends BaseService implements PayLogService {
    @Override
    public int saveOrUpdatePayLog(PayLog payLog) {
        int i = 0;
        try {
            boolean bol = this.saveOrUpdate(payLog);
            if (bol) {
                i = 1;
            }
            return i;
            String sql = "set nocount on ;  \n" +
                    " begin \n";
            sql+="if not exists(select 1 from t150101Log where RefDoccode='"+payLog.getRefDoccode()+"') \n";
            sql += "insert into t150101Log(MerchantID,TrxType,RefDoccode,Refformid,Refformtype,Amount,BatchNo,\n" +
                    "VoucherNo,HostDate,HostTime,MerchantRemarks,PayType,NotifyType,ThirdOrderNo,Status,InsertTime)\n" +
                    "values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) \n";
            sql+=" else \n";
            sql+="update a set a.MerchantRemarks='"+payLog.getMerchantRemarks()+"',a.TrxType='"+payLog.getTrxType()+"'," +
                    "a.PayType='"+payLog.getPayType()+"',a.Status=?"+
                    ",a.Amount="+payLog.getAmount()+
                    ",a.ThirdOrderNo='"+payLog.getThirdOrderNo()+"',a.InsertTime=?"+
                    " from t150101Log a where a.RefDoccode='"+payLog.getRefDoccode()+"'\n";
            sql += " end \n" +
                    " select @@ROWCOUNT";
            int count = super.jdbcTemplate.queryForObject(sql, new Object[]{payLog.getMerchantID()
                    , payLog.getTrxType(), payLog.getRefDoccode(), payLog.getRefformid(), payLog.getRefformtype(),
                    payLog.getAmount(), payLog.getBatchNo(), payLog.getVoucherNo(), payLog.getHostDate(), payLog.getHostTime(),
                    payLog.getMerchantRemarks(), payLog.getPayType(), payLog.getNotifyType(), payLog.getThirdOrderNo(),
                    payLog.getStatus(), payLog.getInsertTime(),payLog.getStatus(),payLog.getInsertTime()}, Integer.class);
            return count;
        } catch (Exception e) {
            throw e;
        }
    }
    @Override
    public List<PayLog> selectPayLog(String cltCode) {
        try {
            return payLogMapper.getPayLogInfo(cltCode);
        } catch (Exception e) {
            return null;
        }
    }
    @Override
    public PayLog getPayLog(String docCode) {
        try {
            QueryWrapper<PayLog> q = new QueryWrapper<>();
            q.eq("RefDoccode", docCode);
            return payLogMapper.selectOne(q);
            String sql = "select MerchantID,TrxType,RefDoccode,Refformid,Refformtype,Amount,BatchNo,\n" +
                    "VoucherNo,HostDate,HostTime,MerchantRemarks,PayType,NotifyType,ThirdOrderNo,Status,InsertTime " +
                    "from t150101Log where RefDoccode='" + docCode + "'";
            return super.jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<>(PayLog.class));
        } catch (Exception e) {
            throw null;
        }
    }
    @Override
    public int updateNotifyType(String doCode,Integer payDbId) {
    public int updateNotifyType(String doCode, Integer payDbId) {
        try {
            UpdateWrapper<PayLog> updateWrapper=new UpdateWrapper<>();
            updateWrapper.eq("RefDoccode",doCode).set("NotifyType",payDbId);
            return payLogMapper.update(null,updateWrapper);
        }catch (Exception e){
            String sql = "set nocount on ;\n" +
                    " begin \n";
            sql += " update a set a.NotifyType='" + payDbId + "' from t150101Log a where a.RefDoccode='" + doCode + "' ";
            sql += " end \n";
            sql += " select @@ROWCOUNT";
            return super.jdbcTemplate.queryForObject(sql, Integer.class);
        } catch (Exception e) {
            return 0;
        }
    }
src/com/yc/MaintenanceFee/service/impl/PayMessageServiceImpl.java
File was deleted
src/com/yc/MaintenanceFee/service/impl/PayTaskServiceImpl.java
File was deleted
src/com/yc/MaintenanceFee/service/impl/ReceiptServiceImpl.java
@@ -1,37 +1,49 @@
package com.yc.MaintenanceFee.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yc.MaintenanceFee.entiy.Receipt;
import com.yc.MaintenanceFee.mapper.ReceiptMapper;
import com.yc.MaintenanceFee.entiy.ReceiptEntity;
import com.yc.MaintenanceFee.service.ReceiptService;
import org.springframework.beans.factory.annotation.Autowired;
import com.yc.MaintenanceFee.utils.ReceiptUtils;
import com.yc.service.BaseService;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
 * @USER: xinyb_
 * @DATE: 2021-12-04 15:27
 */
@Service
public class ReceiptServiceImpl extends ServiceImpl<ReceiptMapper, Receipt> implements ReceiptService {
    @Autowired
    ReceiptMapper receiptMapper;
public class ReceiptServiceImpl extends BaseService implements ReceiptService {
    @Override
    public Receipt QueryReceipt(String docCode, Integer docStatus) {
        try {
            return receiptMapper.queryReceipt(docCode, docStatus);
            String sql="select a.DocCode,a.FormID,a.DocDate,a.EnterDate,a.DocType,a.RefCode,a.CompanyName,a.DocStatus,a.CltCode,\n" +
                    "a.CltName,a.HDMemo,a.SumNatAmount,a.SumAmount,b.SODocCode,b.SOFormId,b.natAmount,b.amount,\n" +
                    "c.MatName,c.Digit,c.TotalMoney,c.FYendday,c.FYbeginday \n" +
                    "from t150101H a join t150101D b on a.DocCode=b.DocCode\n" +
                    "join t120301D c on c.doccode=b.SODoccode\n" +
                    "where a.DocCode='"+docCode+"' and a.DocStatus="+docStatus;
            return ReceiptUtils.getReceipt(super.jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(ReceiptEntity.class)));
        } catch (Exception e) {
            throw e;
        }
    }
    @Override
    public List<Receipt> selectReceipt(String cltCode,Integer docStatus) {
    public List<Receipt> selectReceipt(String cltCode, Integer docStatus) {
        try {
            return  receiptMapper.selectReceipt(cltCode,docStatus);
        }catch (Exception e){
            String sql="select a.DocCode,a.FormID,a.DocDate,a.EnterDate,a.DocType,a.RefCode,a.CompanyName,a.DocStatus,a.CltCode,\n" +
                    "a.CltName,a.HDMemo,a.SumNatAmount,a.SumAmount,b.SODocCode,b.SOFormId,b.natAmount,b.amount,\n" +
                    "c.MatName,c.Digit,c.TotalMoney,c.FYendday,c.FYbeginday \n" +
                    "from t150101H a join t150101D b on a.DocCode=b.DocCode\n" +
                    "join t120301D c on c.doccode=b.SODoccode\n" +
                    "where a.CltCode='"+cltCode+"' and a.DocStatus="+docStatus;
            return ReceiptUtils.getReceipts(super.jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(ReceiptEntity.class)));
        } catch (Exception e) {
            throw e;
        }
    }
@@ -39,9 +51,25 @@
    @Override
    public void cancelReceipt(String skCode) {
        try {
            receiptMapper.cancelReceipt(skCode);
        }catch (Exception e){
            String sql = " set nocount on\n" +
                    " declare @docCode varchar(50)='"+skCode+"' \n" +
                    " exec p150101v4 @doccode \n";
            super.jdbcTemplate.update(sql);
        } catch (Exception e) {
//           throw e;
        }
    }
    @Override
    public List<Map<String, Object>> getReceiptStatus(String docCode) {
        try {
            String sql="set nocount on \n"+
                    " declare @doc varchar(max) = '" + docCode + "' \n" +
                    " select (case when a.DocStatus=0 then 1 else 0 end) docstatus,b.sodoccode,a.doccode from t150101H a left join t150101D b on a.doccode=b.doccode " +
                    "where b.SODoccode in(select list from GetInStr(@doc)) and a.DocStatus=0";
            return super.jdbcTemplate.queryForList(sql);
        }catch (Exception e){
            throw e;
        }
    }
}
src/com/yc/MaintenanceFee/utils/CronDateUtil.java
File was deleted
src/com/yc/MaintenanceFee/utils/DateUtil.java
File was deleted
src/com/yc/MaintenanceFee/utils/ReceiptUtils.java
New file
@@ -0,0 +1,109 @@
package com.yc.MaintenanceFee.utils;
import com.yc.MaintenanceFee.entiy.*;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
 * @USER: xinyb_
 * @DATE: 2022-01-19 10:49
 */
public class ReceiptUtils {
    /**
     * 组装对应客户未支付维护费用数据
     *
     * @param list
     * @return
     */
    public static List<PayInfo> getList_T(List<PayItem> list) {
        List<PayInfo> info = new ArrayList<>();
        for (PayItem item : list) {
            String docCode = item.getDocCode();
            if (info.stream().filter(i -> i.getDocCode().equals(docCode)).count() == 0) {
                List<PayItem> m = list.stream().filter(s -> s.getDocCode().equals(docCode)).collect(Collectors.toList());
                if (m == null || m.size() == 0) {
                    continue;
                }
                PayInfo payInfo = new PayInfo();
                payInfo.setDocCode(docCode);
                payInfo.setCltCode(item.getCltCode());
                payInfo.setCltName(item.getCltName());
                payInfo.setDocType(item.getDocType());
                payInfo.setDocDate(item.getDocDate());
                payInfo.setReceivMoney(item.getReceivMoney());
                payInfo.setItemList(m);
                info.add(payInfo);
            }
        }
        return info;
    }
    public static Receipt getReceipt(List<ReceiptEntity> R) {
        if (R != null && R.size() > 0) {
            return getReceipts(R).get(0);
        }
        return null;
    }
    public static List<Receipt> getReceipts(List<ReceiptEntity> R) {
        List<Receipt> receipts = new ArrayList<>();
        try {
            if (R != null && R.size() > 0) {
                for (ReceiptEntity e : R) {
                    String docCode = e.getDocCode();
                    if (receipts.stream().filter(r -> r.getDocCode().equals(docCode)).count() == 0) {
                        Receipt receipt = new Receipt();
                        List<ReceiptEntity> r1 = R.stream().filter(s -> s.getDocCode().equals(docCode)).collect(Collectors.toList());
                        receipt.setDocCode(docCode);
                        receipt.setFormId(r1.get(0).getFormID());
                        receipt.setDocDate(r1.get(0).getDocDate());
                        receipt.setEnterDate(r1.get(0).getEnterDate());
                        receipt.setDocType(r1.get(0).getDocType());
                        receipt.setRefCode(r1.get(0).getRefCode());
                        receipt.setCompanyName(r1.get(0).getCompanyName());
                        receipt.setDocStatus(r1.get(0).getDocStatus());
                        receipt.setCltCode(r1.get(0).getCltCode());
                        receipt.setCltName(r1.get(0).getCltName());
                        receipt.setHdMemo(r1.get(0).getHDMemo());
                        receipt.setSumAmount(r1.get(0).getSumAmount());
                        receipt.setSumNatAmount(r1.get(0).getSumNatAmount());
                        List<ReceiptDetailed> receiptDetailedList = new ArrayList<>();
                        for (ReceiptEntity e1 : r1) {
                            String whCode = e1.getSODocCode();
                            if (receiptDetailedList.stream().filter(d -> d.getSODocCode().equals(whCode)).count() == 0) {
                                ReceiptDetailed receiptDetailed = new ReceiptDetailed();
                                List<ReceiptEntity> r2 = r1.stream().filter(f -> f.getSODocCode().equals(whCode)).collect(Collectors.toList());
                                receiptDetailed.setSODocCode(whCode);
                                receiptDetailed.setCltCode(r2.get(0).getCltCode());
                                receiptDetailed.setCltName(r2.get(0).getCltName());
                                receiptDetailed.setAmount(r2.get(0).getAmount());
                                receiptDetailed.setDocCode(r2.get(0).getDocCode());
                                receiptDetailed.setNatAmount(r2.get(0).getNatAmount());
                                receiptDetailed.setSOFormId(r2.get(0).getSOFormId());
                                List<PayItem> payItems = new ArrayList<>();
                                for (ReceiptEntity e2 : r2) {
                                    PayItem payItem = new PayItem();
                                    payItem.setMatName(e2.getMatName());
                                    payItem.setTotalMoney(e2.getTotalMoney());
                                    payItem.setDigit(e2.getDigit());
                                    payItem.setFYbeginday(e2.getFYbeginday());
                                    payItem.setFYendday(e2.getFYendday());
                                    payItems.add(payItem);
                                }
                                receiptDetailed.setPayItem(payItems);
                                receiptDetailedList.add(receiptDetailed);
                            }
                        }
                        receipt.setDetailed(receiptDetailedList);
                        receipts.add(receipt);
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return receipts;
    }
}
src/com/yc/MaintenanceFee/utils/ResultCode.java
File was deleted
src/com/yc/help/config/MyBatisHelpConfig.java
@@ -15,7 +15,7 @@
 * @DATE: 2021-09-02 16:14
 */
@Configuration
@MapperScan({"com.yc.help.mapper","com.yc.MaintenanceFee.mapper"})
@MapperScan({"com.yc.help.mapper"})
public class MyBatisHelpConfig implements ApplicationContextAware {
    private ApplicationContext applicationContext;