26个文件已删除
2个文件已添加
18个文件已修改
| | |
| | | <thead> |
| | | <tr> |
| | | <th>费用单号</th> |
| | | <th>费用日期</th> |
| | | <%-- <th>费用日期</th>--%> |
| | | <th>金额</th> |
| | | <th>收费项目</th> |
| | | <th>有效期</th> |
| | |
| | | <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> |
| | |
| | | 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; |
| | |
| | | @RestController |
| | | @RequestMapping("/Maintain") |
| | | public class MaintainController { |
| | | |
| | | @Autowired |
| | | private CltInfoService cltInfoService; |
| | | |
| | | @Autowired |
| | | private PayInfoService payInfoService; |
| | | |
| | |
| | | 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"); |
| | | 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()); |
| | | } |
| | | 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; |
| | | 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 { |
| | |
| | | log.setRefformid(150101); |
| | | log.setRefformtype(496); |
| | | log.setInsertTime(new Date()); |
| | | log.setBatchNo(0); |
| | | log.setStatus("0"); |
| | | log.setMerchantRemarks("维护费生成信息。生成了收款单:" + skCode + ",未支付。"); |
| | | //使用自定义的格式 |
| | |
| | | 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); |
| | |
| | | |
| | | /** |
| | | * 支付后更新推送信息 |
| | | * |
| | | * @param skCode |
| | | * @param request |
| | | * @return |
| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | 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()); |
| | |
| | | maintainService.savePostingLogic(skCode); |
| | | //更新日志 |
| | | log.setRefDoccode(skCode); |
| | | maintainService.saveOrUpdatePayLog(log); |
| | | payLogService.saveOrUpdatePayLog(log); |
| | | }finally { |
| | | SpObserver.setDBtoInstance(); |
| | | } |
| | |
| | | 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; |
| | | |
| | | } |
| | |
| | | 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; |
| | |
| | | * 维护费用子项 |
| | | */ |
| | | @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; |
| | | } |
| | |
| | | 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; |
| | |
| | | * @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; |
| | | } |
| | |
| | | import lombok.Data; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | |
| | | private String hdMemo; |
| | | private BigDecimal sumNatAmount; |
| | | private BigDecimal sumAmount; |
| | | private List<ReceiptDetailed> detailed; |
| | | private List<ReceiptDetailed> detailed=new ArrayList<>(); |
| | | private String payee;//收款人 |
| | | |
| | | |
| | |
| | | import lombok.Data; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | /** |
| | |
| | | private String SOFormId; |
| | | private BigDecimal natAmount; |
| | | private BigDecimal amount; |
| | | private List<PayItem> payItem; |
| | | |
| | | private List<PayItem> payItem=new ArrayList<>(); |
| | | |
| | | } |
New file |
| | |
| | | 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; |
| | | } |
| | |
| | | |
| | | 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; |
| | |
| | | |
| | | 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"); |
| | | } |
| | |
| | | } |
| | | 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 金额 |
| | |
| | | log.setStatus("03"); |
| | | log.setMerchantRemarks("维护费退款信息。订单号:" + orderEntity.getOrderNo() + ",退款成功!退款金额:" + amount); |
| | | log.setInsertTime(new Date()); |
| | | maintainService.saveOrUpdatePayLog(log); |
| | | payLogService.saveOrUpdatePayLog(log); |
| | | }else{ |
| | | throw new ApplicationException(msg.getMsg()); |
| | | } |
| | |
| | | package com.yc.MaintenanceFee.service; |
| | | |
| | | import com.yc.MaintenanceFee.entiy.PayLog; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | |
| | | * @DATE: 2021-11-22 17:55 |
| | | */ |
| | | public interface MaintainService { |
| | | /** |
| | | * 保存或更新支付记录 |
| | | * @param payLog |
| | | */ |
| | | abstract int saveOrUpdatePayLog(PayLog payLog); |
| | | |
| | | /** |
| | | * 保存及过账 |
| | |
| | | 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 |
| | |
| | | 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); |
| | | |
| | | } |
| | |
| | | * @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); |
| | | |
| | |
| | | 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); |
| | | } |
| | |
| | | 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; |
| | |
| | | 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) { |
| | |
| | | } |
| | | |
| | | @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"; |
| | |
| | | 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) { |
| | |
| | | @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值"); |
| | | } |
| | |
| | | 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); |
| | | 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 ""; |
| | | } |
| | | } |
| | | } |
| | |
| | | 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) { |
| | | try { |
| | | UpdateWrapper<PayLog> updateWrapper=new UpdateWrapper<>(); |
| | | updateWrapper.eq("RefDoccode",doCode).set("NotifyType",payDbId); |
| | | return payLogMapper.update(null,updateWrapper); |
| | | 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; |
| | | } |
| | |
| | | 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) { |
| | | try { |
| | | return receiptMapper.selectReceipt(cltCode,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.CltCode='"+cltCode+"' and a.DocStatus="+docStatus; |
| | | return ReceiptUtils.getReceipts(super.jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(ReceiptEntity.class))); |
| | | }catch (Exception e){ |
| | | throw e; |
| | | } |
| | |
| | | @Override |
| | | public void cancelReceipt(String skCode) { |
| | | try { |
| | | receiptMapper.cancelReceipt(skCode); |
| | | 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; |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | 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; |
| | | } |
| | | } |
| | |
| | | * @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; |