add 推送开票邮寄数据到会员系统
This commit is contained in:
+21
@@ -100,4 +100,25 @@ public class AuthenticationUtils {
|
|||||||
throw new JeroBootException("数据同步失败!");
|
throw new JeroBootException("数据同步失败!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 调用会员系统post接口
|
||||||
|
* @param methodName
|
||||||
|
* @param requestParam
|
||||||
|
* @param requestBody
|
||||||
|
*/
|
||||||
|
public static void postStandards(String methodName,String requestParam,Object requestBody) {
|
||||||
|
Map<String, String> stringStringMap = encryptByRsaPriKey();
|
||||||
|
String publicKey = stringStringMap.get("publicKey");
|
||||||
|
String token = stringStringMap.get("token");
|
||||||
|
String jsonString = JSONObject.toJSONString(requestBody);
|
||||||
|
//拼接url路径
|
||||||
|
StringBuilder urlBuilder = new StringBuilder(AuthenticationUtils.URL);
|
||||||
|
urlBuilder.append(methodName).append("?publicKey=").append(publicKey).append("&pushToken=").append(token);
|
||||||
|
if (StrUtil.isNotBlank(requestParam)){
|
||||||
|
urlBuilder.append(requestParam);
|
||||||
|
}
|
||||||
|
String post = HttpUtil.post(urlBuilder.toString(), jsonString);
|
||||||
|
checkResult(post);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
-43
@@ -1,43 +0,0 @@
|
|||||||
package com.jero.common.util;
|
|
||||||
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
import org.springframework.beans.BeansException;
|
|
||||||
import org.springframework.context.ApplicationContext;
|
|
||||||
import org.springframework.context.ApplicationContextAware;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Spring 上下文工具类
|
|
||||||
* @author liJiaRao
|
|
||||||
* @date 2021-09-16 15:05
|
|
||||||
*/
|
|
||||||
@Component
|
|
||||||
public class SpringContextUtil implements ApplicationContextAware {
|
|
||||||
private static ApplicationContext applicationContext;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setApplicationContext(@NotNull ApplicationContext applicationContext) throws BeansException {
|
|
||||||
SpringContextUtil.applicationContext = applicationContext;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取上下文
|
|
||||||
*/
|
|
||||||
public static ApplicationContext getApplicationContext() {
|
|
||||||
return applicationContext;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 通过 bena 名称获取上下文中的 bean
|
|
||||||
*/
|
|
||||||
public static Object getBean(String name) {
|
|
||||||
return applicationContext.getBean(name);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 通过类型获取上下文中的bean
|
|
||||||
*/
|
|
||||||
public static Object getBean(Class<?> requiredType) {
|
|
||||||
return applicationContext.getBean(requiredType);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+2
-3
@@ -1,9 +1,8 @@
|
|||||||
package com.jero.config.shiro.filters;
|
package com.jero.config.shiro.filters;
|
||||||
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.jero.common.system.util.JwtUtil;
|
|
||||||
import com.jero.common.util.AuthenticationUtils;
|
import com.jero.common.util.AuthenticationUtils;
|
||||||
import com.jero.common.util.SpringContextUtil;
|
import com.jero.common.util.SpringContextUtils;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.shiro.authc.AuthenticationException;
|
import org.apache.shiro.authc.AuthenticationException;
|
||||||
import org.apache.shiro.web.filter.authc.BasicHttpAuthenticationFilter;
|
import org.apache.shiro.web.filter.authc.BasicHttpAuthenticationFilter;
|
||||||
@@ -69,7 +68,7 @@ public class JwtFilter extends BasicHttpAuthenticationFilter {
|
|||||||
if (StrUtil.isNotBlank(pushToken)){
|
if (StrUtil.isNotBlank(pushToken)){
|
||||||
String publicKey = httpServletRequest.getParameter("publicKey");
|
String publicKey = httpServletRequest.getParameter("publicKey");
|
||||||
if (authenticationUtils ==null ){
|
if (authenticationUtils ==null ){
|
||||||
authenticationUtils = (AuthenticationUtils) SpringContextUtil.getBean("authenticationUtils");
|
authenticationUtils = (AuthenticationUtils) SpringContextUtils.getBean("authenticationUtils");
|
||||||
}
|
}
|
||||||
authenticationUtils.check(pushToken,publicKey);
|
authenticationUtils.check(pushToken,publicKey);
|
||||||
}else {
|
}else {
|
||||||
|
|||||||
+1
@@ -265,6 +265,7 @@ public class PayMailBillController extends JeroController<PayMailBill, IPayMailB
|
|||||||
tbMemberProjectSubitem.setMail(2);
|
tbMemberProjectSubitem.setMail(2);
|
||||||
tbMemberProjectSubitemService.updateById(tbMemberProjectSubitem);
|
tbMemberProjectSubitemService.updateById(tbMemberProjectSubitem);
|
||||||
}
|
}
|
||||||
|
payMailBillService.pushSendToStandards(payMailBill,one.getProjectId());
|
||||||
}
|
}
|
||||||
return Result.OK("编辑成功!");
|
return Result.OK("编辑成功!");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,107 @@
|
|||||||
|
package com.jero.mail.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import com.jero.common.aspect.annotation.Dict;
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
import org.jeecgframework.poi.excel.annotation.Excel;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 开票信息表
|
||||||
|
* @Author: jeecg-boot
|
||||||
|
* @Date: 2021-01-07
|
||||||
|
* @Version: V1.0
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@TableName("tb_billing_info")
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
@ApiModel(value="tb_billing_info对象", description="开票信息表")
|
||||||
|
public class BillingInfo implements Serializable {
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**主键*/
|
||||||
|
@ApiModelProperty(value = "主键")
|
||||||
|
private String id;
|
||||||
|
/**创建人*/
|
||||||
|
@ApiModelProperty(value = "创建人")
|
||||||
|
private String createBy;
|
||||||
|
/**创建日期*/
|
||||||
|
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||||
|
@ApiModelProperty(value = "创建日期")
|
||||||
|
private java.util.Date createTime;
|
||||||
|
/**更新人*/
|
||||||
|
@ApiModelProperty(value = "更新人")
|
||||||
|
private String updateBy;
|
||||||
|
/**更新日期*/
|
||||||
|
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||||
|
@ApiModelProperty(value = "更新日期")
|
||||||
|
private java.util.Date updateTime;
|
||||||
|
/**所属部门*/
|
||||||
|
@ApiModelProperty(value = "所属部门")
|
||||||
|
private String sysOrgCode;
|
||||||
|
/**单位全称*/
|
||||||
|
@ApiModelProperty(value = "单位全称")
|
||||||
|
private String companyName;
|
||||||
|
/**邮寄方式*/
|
||||||
|
@ApiModelProperty(value = "邮寄方式")
|
||||||
|
private Integer sendMethod;
|
||||||
|
/**邮寄单号*/
|
||||||
|
@ApiModelProperty(value = "邮寄单号")
|
||||||
|
private String postNo;
|
||||||
|
/**联系人*/
|
||||||
|
@ApiModelProperty(value = "联系人")
|
||||||
|
private String liaisonMan;
|
||||||
|
/**联系人手机号*/
|
||||||
|
@ApiModelProperty(value = "联系人手机号")
|
||||||
|
private String mobile;
|
||||||
|
/**邮寄状态*/
|
||||||
|
@ApiModelProperty(value = "邮寄状态")
|
||||||
|
private Integer postStatus;
|
||||||
|
/**开票类型*/
|
||||||
|
@ApiModelProperty(value = "开票类型")
|
||||||
|
private String billingType;
|
||||||
|
/**订单号*/
|
||||||
|
@ApiModelProperty(value = "订单号")
|
||||||
|
private String billNumber;
|
||||||
|
/**缴费时间*/
|
||||||
|
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||||
|
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||||
|
@ApiModelProperty(value = "缴费时间")
|
||||||
|
private java.util.Date paymentDate;
|
||||||
|
/**邮寄日期*/
|
||||||
|
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||||
|
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||||
|
@ApiModelProperty(value = "邮寄日期")
|
||||||
|
private java.util.Date sendDate;
|
||||||
|
/**发票金额*/
|
||||||
|
@ApiModelProperty(value = "发票金额")
|
||||||
|
private Double billMoney;
|
||||||
|
/**发票号码*/
|
||||||
|
@ApiModelProperty(value = "发票号码")
|
||||||
|
private String billNo;
|
||||||
|
/**通讯地址*/
|
||||||
|
@ApiModelProperty(value = "通讯地址")
|
||||||
|
private String address;
|
||||||
|
/**邮编*/
|
||||||
|
@ApiModelProperty(value = "邮编")
|
||||||
|
private String postcode;
|
||||||
|
/**缴费金额*/
|
||||||
|
@ApiModelProperty(value = "缴费金额")
|
||||||
|
private BigDecimal paymentAmount;
|
||||||
|
/**会员id*/
|
||||||
|
@ApiModelProperty(value = "会员id")
|
||||||
|
private String memberId;
|
||||||
|
}
|
||||||
+1
-1
@@ -38,5 +38,5 @@ public interface IPayMailBillService extends IService<PayMailBill> {
|
|||||||
Result<?> addPayBill(PayMailBillVO payMailBill);
|
Result<?> addPayBill(PayMailBillVO payMailBill);
|
||||||
|
|
||||||
|
|
||||||
|
void pushSendToStandards(PayMailBill payMailBill, String id);
|
||||||
}
|
}
|
||||||
|
|||||||
+48
-12
@@ -15,6 +15,7 @@ import com.jero.common.util.AuthenticationUtils;
|
|||||||
import com.jero.common.util.oConvertUtils;
|
import com.jero.common.util.oConvertUtils;
|
||||||
import com.jero.contract.common.PayIncomeContractCommon;
|
import com.jero.contract.common.PayIncomeContractCommon;
|
||||||
import com.jero.mail.PayMailBillVO;
|
import com.jero.mail.PayMailBillVO;
|
||||||
|
import com.jero.mail.entity.BillingInfo;
|
||||||
import com.jero.mail.entity.PayMailBill;
|
import com.jero.mail.entity.PayMailBill;
|
||||||
import com.jero.mail.entity.PayMailBillProject;
|
import com.jero.mail.entity.PayMailBillProject;
|
||||||
import com.jero.mail.entity.PayMailBillSearch;
|
import com.jero.mail.entity.PayMailBillSearch;
|
||||||
@@ -116,22 +117,19 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
|
|||||||
|
|
||||||
|
|
||||||
for (int i = 0; i < bmpList.size(); i++) {
|
for (int i = 0; i < bmpList.size(); i++) {
|
||||||
if (PayIncomeContractCommon.PROJECT_TYPE5.equals(String.valueOf(bmpList.get(i).getProjectType()))) {
|
PayMailBillProject payMailBillProject = bmpList.get(i);
|
||||||
|
if (PayIncomeContractCommon.PROJECT_TYPE5.equals(String.valueOf(payMailBillProject.getProjectType()))) {
|
||||||
|
String id = payMailBillProject.getProjectId();
|
||||||
LambdaQueryWrapper<PayMailBillProject> wrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<PayMailBillProject> wrapper = new LambdaQueryWrapper<>();
|
||||||
wrapper.eq(PayMailBillProject::getProjectId, bmpList.get(i).getId());
|
wrapper.eq(PayMailBillProject::getProjectId, id);
|
||||||
wrapper.eq(PayMailBillProject::getProjectType, PayIncomeContractCommon.PROJECT_TYPE5);
|
wrapper.eq(PayMailBillProject::getProjectType, PayIncomeContractCommon.PROJECT_TYPE5);
|
||||||
List<PayMailBillProject> type5List = payMailBillProjectService.list(wrapper);
|
List<PayMailBillProject> type5List = payMailBillProjectService.list(wrapper);
|
||||||
|
|
||||||
if (type5List != null && type5List.size() > 0) {
|
if (type5List != null && type5List.size() > 0) {
|
||||||
throw new JeroBootException("标协会员项目,只能开票一次。");
|
throw new JeroBootException("标协会员项目,只能开票一次。");
|
||||||
}
|
}
|
||||||
Map<String, String> stringStringMap = AuthenticationUtils.encryptByRsaPriKey();
|
//推送开票数据到会员系统
|
||||||
String publicKey = stringStringMap.get("publicKey");
|
pushBillToStandards(payMailBill, id);
|
||||||
String token = stringStringMap.get("token");
|
|
||||||
String jsonString1 = JSONObject.toJSONString(payMailBill);
|
|
||||||
String post = HttpUtil.post(AuthenticationUtils.URL + "/stablecrosstraining/stableCrossTraining/addStandardsFile?publicKey=" + publicKey + "&token=" + token, jsonString1);
|
|
||||||
AuthenticationUtils.checkResult(post);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -163,6 +161,44 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
|
|||||||
return Result.OK("添加成功!");
|
return Result.OK("添加成功!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 推送开票数据到会员系统
|
||||||
|
* @param payMailBill
|
||||||
|
* @param id
|
||||||
|
*/
|
||||||
|
private void pushBillToStandards(PayMailBillVO payMailBill, String id) {
|
||||||
|
TbMemberProjectSubitem tbMemberProjectSubitem = tbMemberProjectSubitemMapper.selectById(id);
|
||||||
|
BillingInfo billingInfo = new BillingInfo();
|
||||||
|
billingInfo.setBillNumber(tbMemberProjectSubitem.getBillNumber());
|
||||||
|
billingInfo.setMemberId(tbMemberProjectSubitem.getMemberId());
|
||||||
|
billingInfo.setBillNo(payMailBill.getBillNo());
|
||||||
|
//调用接口
|
||||||
|
AuthenticationUtils.postStandards("/billingInfo/billingInfo/billFromPayment",null,billingInfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 推送邮寄数据到会员系统
|
||||||
|
* @param payMailBill
|
||||||
|
* @param id
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void pushSendToStandards(PayMailBill payMailBill, String id) {
|
||||||
|
TbMemberProjectSubitem tbMemberProjectSubitem = tbMemberProjectSubitemMapper.selectById(id);
|
||||||
|
BillingInfo billingInfo = new BillingInfo();
|
||||||
|
billingInfo.setBillNumber(tbMemberProjectSubitem.getBillNumber());
|
||||||
|
billingInfo.setMemberId(tbMemberProjectSubitem.getMemberId());
|
||||||
|
billingInfo.setBillNo(payMailBill.getBillNo());
|
||||||
|
billingInfo.setSendMethod(payMailBill.getSendMethod());
|
||||||
|
billingInfo.setSendDate(payMailBill.getSendDate());
|
||||||
|
billingInfo.setPostNo(payMailBill.getPostNo());
|
||||||
|
Map<String, String> stringStringMap = AuthenticationUtils.encryptByRsaPriKey();
|
||||||
|
String publicKey = stringStringMap.get("publicKey");
|
||||||
|
String token = stringStringMap.get("token");
|
||||||
|
String jsonString1 = JSONObject.toJSONString(billingInfo);
|
||||||
|
String post = HttpUtil.post(AuthenticationUtils.URL + "/billingInfo/billingInfo/postFromPayment?publicKey=" + publicKey + "&pushToken=" + token, jsonString1);
|
||||||
|
AuthenticationUtils.checkResult(post);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//校验不同项目是否属于同一个公司
|
//校验不同项目是否属于同一个公司
|
||||||
private String checkCompanyProject(List<PayMailBillProject> bmpList) {
|
private String checkCompanyProject(List<PayMailBillProject> bmpList) {
|
||||||
@@ -171,7 +207,7 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
|
|||||||
for (int i = 0; i < bmpList.size(); i++) {
|
for (int i = 0; i < bmpList.size(); i++) {
|
||||||
|
|
||||||
//之前开票总额
|
//之前开票总额
|
||||||
BigDecimal oldInvoiceAmount=new BigDecimal("0");
|
BigDecimal oldInvoiceAmount = new BigDecimal("0");
|
||||||
//之前开票总额+本次开票金额
|
//之前开票总额+本次开票金额
|
||||||
BigDecimal invoiceAmount=new BigDecimal("0");
|
BigDecimal invoiceAmount=new BigDecimal("0");
|
||||||
|
|
||||||
@@ -259,7 +295,7 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
|
|||||||
if (!standardCompanyId.equals(tbMemberProject.getCompanyId())) {
|
if (!standardCompanyId.equals(tbMemberProject.getCompanyId())) {
|
||||||
return "打包开票只能是同一个企业";
|
return "打包开票只能是同一个企业";
|
||||||
}
|
}
|
||||||
oldInvoiceAmount = tbMemberProject.getInvoiceAmount();
|
oldInvoiceAmount = tbMemberProject.getInvoiceAmount()==null? oldInvoiceAmount:tbMemberProject.getInvoiceAmount();
|
||||||
//之前开票总额+本次开票金额
|
//之前开票总额+本次开票金额
|
||||||
invoiceAmount = oldInvoiceAmount.add(bmpList.get(i).getInvoiceAmount()).setScale(2, BigDecimal.ROUND_HALF_UP);
|
invoiceAmount = oldInvoiceAmount.add(bmpList.get(i).getInvoiceAmount()).setScale(2, BigDecimal.ROUND_HALF_UP);
|
||||||
//开票总额>应收
|
//开票总额>应收
|
||||||
@@ -330,7 +366,7 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
|
|||||||
TbMemberProjectSubitem tbMemberProject = tbMemberProjectSubitemMapper.selectById(payMailBillProject.getProjectId());
|
TbMemberProjectSubitem tbMemberProject = tbMemberProjectSubitemMapper.selectById(payMailBillProject.getProjectId());
|
||||||
amountReceivable = tbMemberProject.getAmountReceivable();//应收
|
amountReceivable = tbMemberProject.getAmountReceivable();//应收
|
||||||
needInvoice = tbMemberProject.getInvoiceRequirements();//是否需要发票
|
needInvoice = tbMemberProject.getInvoiceRequirements();//是否需要发票
|
||||||
oldInvoiceAmount = tbMemberProject.getInvoiceAmount();
|
oldInvoiceAmount = tbMemberProject.getInvoiceAmount()!=null?tbMemberProject.getInvoiceAmount():new BigDecimal("0");
|
||||||
//之前开票总额+本次开票金额
|
//之前开票总额+本次开票金额
|
||||||
invoiceAmount = oldInvoiceAmount.add(invoiceAmount).setScale(2, BigDecimal.ROUND_HALF_UP);
|
invoiceAmount = oldInvoiceAmount.add(invoiceAmount).setScale(2, BigDecimal.ROUND_HALF_UP);
|
||||||
break;
|
break;
|
||||||
|
|||||||
+8
@@ -182,6 +182,14 @@ public class TbMemberProjectSubitem implements Serializable {
|
|||||||
@JsonFormat(shape = JsonFormat.Shape.STRING)
|
@JsonFormat(shape = JsonFormat.Shape.STRING)
|
||||||
private BigDecimal invoiceAmount;
|
private BigDecimal invoiceAmount;
|
||||||
|
|
||||||
|
/**缴费单号*/
|
||||||
|
@ApiModelProperty(value = "缴费单号")
|
||||||
|
private String billNumber;
|
||||||
|
|
||||||
|
/**会员id*/
|
||||||
|
@ApiModelProperty(value = "会员id")
|
||||||
|
private String memberId;
|
||||||
|
|
||||||
public String convertisEmail(){
|
public String convertisEmail(){
|
||||||
return PasswordUtil.decrypt(email);
|
return PasswordUtil.decrypt(email);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user