Procházet zdrojové kódy

2023年2月21日18:06:34

纪新园 před 2 roky
rodič
revize
16815814ea
16 změnil soubory, kde provedl 474 přidání a 233 odebrání
  1. 17 0
      blade-service-api/blade-deliver-goods-api/src/main/java/org/springblade/deliver/goods/entity/Delivery.java
  2. 2 0
      blade-service-api/blade-payment-api/src/main/java/org/springblade/pay/tonglianPayment/dto/PaymentDTO.java
  3. 4 0
      blade-service-api/blade-payment-api/src/main/java/org/springblade/pay/tonglianPayment/fegin/IPaymentClient.java
  4. 6 0
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/entity/Order.java
  5. 3 2
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/feign/IOrderDescClient.java
  6. 8 8
      blade-service/blade-check/src/main/java/org/springblade/check/service/impl/AuditProecessServiceImpl.java
  7. 143 72
      blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/feign/DeliveryClient.java
  8. 143 25
      blade-service/blade-pay/src/main/java/org/springblade/pay/tonglianPayment/controller/TongLianPaymentController.java
  9. 26 2
      blade-service/blade-pay/src/main/java/org/springblade/pay/tonglianPayment/feign/PaymentClient.java
  10. 2 2
      blade-service/blade-pay/src/main/java/org/springblade/pay/tonglianPayment/method/ApiTestV2.java
  11. 6 1
      blade-service/blade-pay/src/main/java/org/springblade/pay/tonglianPayment/service/impl/PaymentServiceImpl.java
  12. 17 42
      blade-service/blade-pay/src/main/java/org/springblade/pay/tonglianPayment/utils/SybPayService.java
  13. 17 24
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/feign/OrderDescClient.java
  14. 11 11
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/partsapp/AppPartsController.java
  15. 68 43
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java
  16. 1 1
      blade-service/blade-user/src/main/java/org/springblade/system/user/controller/UserController.java

+ 17 - 0
blade-service-api/blade-deliver-goods-api/src/main/java/org/springblade/deliver/goods/entity/Delivery.java

@@ -642,4 +642,21 @@ public class Delivery implements Serializable {
 	@ApiModelProperty(value = "提单号")
 	private String billLadingNo;
 
+	/**
+	 * 所属公司id(全称)销售公司
+	 */
+	@ApiModelProperty(value = "所属公司id(全称)销售公司")
+	private Long belongToCorpId;
+
+	/**
+	 * 客户联系人
+	 */
+	@ApiModelProperty(value = "客户联系人")
+	private String corpAttn;
+	/**
+	 * 联系人电话
+	 */
+	@ApiModelProperty(value = "联系人电话")
+	private String corpTel;
+
 }

+ 2 - 0
blade-service-api/blade-payment-api/src/main/java/org/springblade/pay/tonglianPayment/dto/PaymentDTO.java

@@ -26,6 +26,8 @@ public class PaymentDTO {
 	private String extendparams;
 	private String cusip;
 	private String fqnum;
+	private String oldreqsn;
+	private String oldtrxid;
 
 
 }

+ 4 - 0
blade-service-api/blade-payment-api/src/main/java/org/springblade/pay/tonglianPayment/fegin/IPaymentClient.java

@@ -19,6 +19,7 @@ public interface IPaymentClient {
 	String APP_PREFIX = "/pay";
 	String GET_BY_ID = APP_PREFIX + "/WeChatPayment";
 	String PAY_PREPAY = APP_PREFIX + "/payPrepay";
+	String REFUND = APP_PREFIX + "/refund";
 
 	@PostMapping(GET_BY_ID)
 	R getWeChatPayment(@RequestBody Order order);
@@ -26,5 +27,8 @@ public interface IPaymentClient {
 	@PostMapping(PAY_PREPAY)
 	R<Map<Object, Object>> payPrepay(@RequestBody PaymentDTO paymentDTO);
 
+	@PostMapping(REFUND)
+	R<Map<String, String>> refund(@RequestBody PaymentDTO paymentDTO);
+
 
 }

+ 6 - 0
blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/entity/Order.java

@@ -1313,6 +1313,12 @@ public class Order implements Serializable {
 	@ApiModelProperty(value = "提单号")
 	private String billLadingNo;
 
+	/**
+	 * 收银宝平台流水号
+	 */
+	@ApiModelProperty(value = "收银宝平台流水号")
+	private String oldTrxId;
+
 
 	/**
 	 * 采购状态类型

+ 3 - 2
blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/feign/IOrderDescClient.java

@@ -12,6 +12,7 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestParam;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author caifc
@@ -50,7 +51,7 @@ public interface IOrderDescClient {
 	Order getByOrder(@RequestBody Order order);
 
 	@GetMapping(GET_BY_ID)
-	Order getById(@RequestParam("id") Long id);
+	Order getById(@RequestParam("orderId") Long orderId);
 
 	@PostMapping(GET_BY_CONDITIONS)
 	R<List<Order>> getByConditions(@RequestBody Order order);
@@ -96,7 +97,7 @@ public interface IOrderDescClient {
 	R passCancelTH(@RequestParam("id") Long id);
 
 	@GetMapping(PASS_CHECK_TH)
-	R passCheckTH(@RequestParam("id") Long id);
+	R<Map<String, String>> passCheckTH(@RequestParam("id") Long id);
 	@PostMapping(SHIPPING_ORDER)
 	void shippingOrder(@RequestBody Order order);
 

+ 8 - 8
blade-service/blade-check/src/main/java/org/springblade/check/service/impl/AuditProecessServiceImpl.java

@@ -62,7 +62,6 @@ import org.springblade.purchase.sales.entity.Order;
 import org.springblade.purchase.sales.feign.IBidingDescClient;
 import org.springblade.purchase.sales.feign.IOrderCheckClient;
 import org.springblade.school.feign.ISalaryClient;
-import org.springblade.system.cache.ParamCache;
 import org.springblade.system.feign.ISysClient;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
@@ -71,10 +70,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.text.SimpleDateFormat;
-import java.util.Arrays;
-import java.util.Comparator;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
 
 import static org.springblade.common.constant.TenantConstant.APPROVAL_PROCESS;
@@ -141,8 +137,6 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, A
 
 	private final IAgreementClient agreementClient;//协议管理
 
-
-
 	@Override
 	public IPage<AuditProecessVO> selectAuditProecessPage(IPage<AuditProecessVO> page, AuditProecessVO auditProecess) {
 		return page.setRecords(baseMapper.selectAuditProecessPage(page, auditProecess));
@@ -4121,9 +4115,15 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, A
 			if (operate == 1) {
 				//todo 调用feign直接通过
 				auditProecess.setAuditStatus("A");
-				R sumbit = orderDescClient.passCheckTH(auditProecess.getSrcBillId());
+				R<Map<String, String>> sumbit = orderDescClient.passCheckTH(auditProecess.getSrcBillId());
 				if (!sumbit.isSuccess()) {
 					throw new SecurityException(sumbit.getMsg());
+				}else{
+					if ("3008".equals(sumbit.getData().get("trxstatus"))){
+						throw new RuntimeException("账户余额不足,退款失败");
+					}else if ("3999".equals(sumbit.getData().get("trxstatus"))){
+						throw new RuntimeException("金额错误,当前可退货金额为:0.00");
+					}
 				}
 				if ("中电采购退货审批".equals(proecessTemp.getProcessType())) {
 					sendMessage.setMessageBody("您的采购退货审批已通过" + ",单号:" + proecessTemp.getBillNo() + ",请继续操作");

+ 143 - 72
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/feign/DeliveryClient.java

@@ -106,81 +106,152 @@ public class DeliveryClient implements IDeliveryClient {
 
 	@Override
 	public R<Delivery> saveAddDelivery(Order order) {
-		Delivery delivery = new Delivery();
-		R billNo = serialClient.getBillNo("FH", "JK", "FH");
-		if (billNo.isSuccess() && billNo.getData() != null) {
-			delivery.setSysNo((String) billNo.getData());
+
+		Delivery deliveryNew = new Delivery();
+		List<DeliveryItems> deliveryItemsList = new ArrayList<>();
+		LambdaQueryWrapper<Delivery> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(Delivery::getIsDeleted, 0)
+			.eq(Delivery::getTenantId, AuthUtil.getTenantId())
+			.eq(Delivery::getSrcId, order.getId())
+			.eq(Delivery::getBillType, "FH")
+			.eq(Delivery::getTradeType, "CK")
+			.eq(Delivery::getSrcOrderNo, order.getOrderNo())
+			.eq(Delivery::getOrgOrderNo, order.getSysNo())
+			.eq(Delivery::getOrgId, order.getId());
+		Delivery delivery1 = deliveryService.getOne(lambdaQueryWrapper);
+		if (ObjectUtils.isNotNull(delivery1)) {
+			delivery1.setCorpId(order.getCorpId());
+			delivery1.setCorpName(order.getCorpName());
+			delivery1.setClientMessage(order.getClientMessage());
+			delivery1.setBusinesDate(order.getBusinesDate());
+			delivery1.setPlannedDeliveryDate(order.getPlannedDeliveryDate());
+			delivery1.setPortOfLoad(order.getPortOfLoad());
+			delivery1.setPortOfDestination(order.getPortOfDestination());
+			delivery1.setTransport(order.getTransport());
+			delivery1.setDateClause(order.getDateClause());
+			delivery1.setDateDesc(order.getDateDesc());
+			delivery1.setCargoType(order.getCargoType());
+			delivery1.setPriceTerms(order.getPriceTerms());
+			delivery1.setPriceTermsDescription(order.getPriceTermsDescription());
+			delivery1.setPaymentType(order.getPaymentType());
+			delivery1.setPaymentTypeDescription(order.getPaymentTypeDescription());
+			delivery1.setCurrency(order.getCurrency());
+			delivery1.setExchangeRate(order.getExchangeRate());
+			delivery1.setPurchaseRemark(order.getPurchaseRemark());
+			delivery1.setShippingRemark(order.getShippingRemark());
+			delivery1.setBelongToCorpId(order.getBelongToCorpId());
+			delivery1.setCorpAttn(order.getCorpAttn());
+			delivery1.setCorpTel(order.getCorpTel());
+			deliveryService.updateById(delivery1);
+			deliveryNew = delivery1;
 		} else {
-			return R.fail(500, "系统编号生成失败");
+			Delivery delivery = new Delivery();
+			R billNo = serialClient.getBillNo("FH", "JK", "FH");
+			if (billNo.isSuccess() && billNo.getData() != null) {
+				delivery.setSysNo((String) billNo.getData());
+			} else {
+				return R.fail(500, "系统编号生成失败");
+			}
+			delivery.setSrcOrderNo(order.getOrderNo());
+			delivery.setSrcId(order.getId());
+			delivery.setOrgOrderNo(order.getSysNo());
+			delivery.setOrgId(order.getId());
+			delivery.setBillType("FH");
+			delivery.setTradeType("CK");
+			delivery.setCorpId(order.getCorpId());
+			delivery.setCorpName(order.getCorpName());
+			delivery.setClientMessage(order.getClientMessage());
+			delivery.setBusinesDate(order.getBusinesDate());
+			delivery.setPlannedDeliveryDate(order.getPlannedDeliveryDate());
+			delivery.setPortOfLoad(order.getPortOfLoad());
+			delivery.setPortOfDestination(order.getPortOfDestination());
+			delivery.setTransport(order.getTransport());
+			delivery.setDateClause(order.getDateClause());
+			delivery.setDateDesc(order.getDateDesc());
+			delivery.setCargoType(order.getCargoType());
+			delivery.setPriceTerms(order.getPriceTerms());
+			delivery.setPriceTermsDescription(order.getPriceTermsDescription());
+			delivery.setPaymentType(order.getPaymentType());
+			delivery.setPaymentTypeDescription(order.getPaymentTypeDescription());
+			delivery.setCurrency(order.getCurrency());
+			delivery.setExchangeRate(order.getExchangeRate());
+			delivery.setPurchaseRemark(order.getPurchaseRemark());
+			delivery.setShippingRemark(order.getShippingRemark());
+			delivery.setDocumentaryStatus(order.getDocumentaryStatus());
+			delivery.setDocumentaryDate(order.getDocumentaryDate());
+			delivery.setCreateUser(order.getDocumenterId());
+			delivery.setCreateTime(new Date());
+			delivery.setTenantId(SecureUtil.getTenantId());
+			delivery.setDeliveryStatus("录入");
+			delivery.setBelongToCorpId(order.getBelongToCorpId());
+			delivery.setCorpAttn(order.getCorpAttn());
+			delivery.setCorpTel(order.getCorpTel());
+			deliveryService.save(delivery);
+			deliveryNew = delivery;
 		}
-		delivery.setSrcOrderNo(order.getOrderNo());
-		delivery.setSrcId(order.getId());
-		delivery.setOrgOrderNo(order.getSysNo());
-		delivery.setOrgId(order.getId());
-		delivery.setBillType("FH");
-		delivery.setTradeType("CK");
-		delivery.setCorpId(order.getCorpId());
-		delivery.setCorpName(order.getCorpName());
-		delivery.setClientMessage(order.getClientMessage());
-		delivery.setBusinesDate(order.getBusinesDate());
-		delivery.setPlannedDeliveryDate(order.getPlannedDeliveryDate());
-		delivery.setPortOfLoad(order.getPortOfLoad());
-		delivery.setPortOfDestination(order.getPortOfDestination());
-		delivery.setTransport(order.getTransport());
-		delivery.setDateClause(order.getDateClause());
-		delivery.setDateDesc(order.getDateDesc());
-		delivery.setCargoType(order.getCargoType());
-		delivery.setPriceTerms(order.getPriceTerms());
-		delivery.setPriceTermsDescription(order.getPriceTermsDescription());
-		delivery.setPaymentType(order.getPaymentType());
-		delivery.setPaymentTypeDescription(order.getPaymentTypeDescription());
-		delivery.setCurrency(order.getCurrency());
-		delivery.setExchangeRate(order.getExchangeRate());
-		delivery.setPurchaseRemark(order.getPurchaseRemark());
-		delivery.setShippingRemark(order.getShippingRemark());
-		delivery.setDocumentaryStatus(order.getDocumentaryStatus());
-		delivery.setDocumentaryDate(order.getDocumentaryDate());
-		delivery.setCreateUser(order.getDocumenterId());
-		delivery.setCreateTime(new Date());
-		delivery.setTenantId(SecureUtil.getTenantId());
-		delivery.setDeliveryStatus("录入");
-		deliveryService.save(delivery);
-
 		if (ObjectUtils.isNotNull(order.getOrderItemsList()) && order.getOrderItemsList().size() > 0) {
-			List<DeliveryItems> deliveryItemsList = new ArrayList<>();
 			for (OrderItems orderItems : order.getOrderItemsList()) {
-				DeliveryItems deliveryItems = new DeliveryItems();
-				deliveryItems.setPid(delivery.getId());
-				deliveryItems.setSort(1);
-				deliveryItems.setSrcOrderNo(order.getOrderNo());//来源订单号
-				deliveryItems.setOrgOrderNo(order.getSysNo());//原始订单号
-				deliveryItems.setSrcId(orderItems.getId());//来源id
-				deliveryItems.setItemId(orderItems.getItemId());//货物
-				deliveryItems.setPriceCategory(orderItems.getPriceCategory());//商品类别
-				deliveryItems.setProductDesc(orderItems.getItemDescription());//产品描述
-				deliveryItems.setSpecificationAndModel(orderItems.getItemType());//产品型号
-				deliveryItems.setPriceCategoryNames(orderItems.getPriceCategory());//商品类别名称
-				deliveryItems.setItemProp(orderItems.getItemProp());//产品属性
-				deliveryItems.setPackageRemarks(orderItems.getPartsColourName());//包装要求
-				deliveryItems.setActualQuantity(orderItems.getOrderQuantity());//数量
-				deliveryItems.setPrice(orderItems.getPrice());//单价
-				deliveryItems.setPurchaseAmount(orderItems.getAmount());//采购金额
-				deliveryItems.setPurchaseTotalAmount(orderItems.getAmount());//采购总价
-				deliveryItems.setPurchaseQuantity(orderItems.getOrderQuantity());//采购数量
-				deliveryItems.setUnit(orderItems.getUnit());//计量单位
-				deliveryItems.setTaxRate(orderItems.getTaxRate());//税率
-				deliveryItems.setCurrency(order.getCurrency());//币别
-				deliveryItems.setExRate(order.getExchangeRate());//汇率
-				deliveryItems.setGoodType(0);//默认0为商品信息 1为赠品信息
-				deliveryItems.setCreateUser(order.getDocumenterId());
-				deliveryItems.setCreateTime(new Date());
-				deliveryItems.setTenantId(SecureUtil.getTenantId());
-				deliveryItemsService.save(deliveryItems);
-				deliveryItemsList.add(deliveryItems);
-				delivery.setDeliveryItemsList(deliveryItemsList);
+				LambdaQueryWrapper<DeliveryItems> itemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
+				itemsLambdaQueryWrapper.eq(DeliveryItems::getIsDeleted, 0)
+					.eq(DeliveryItems::getTenantId, AuthUtil.getTenantId())
+					.eq(DeliveryItems::getSrcId, orderItems.getId())
+					.eq(DeliveryItems::getSrcOrderNo, order.getOrderNo())
+					.eq(DeliveryItems::getOrgOrderNo, order.getSysNo());
+				DeliveryItems deliveryItems1 = deliveryItemsService.getOne(itemsLambdaQueryWrapper);
+				if (ObjectUtils.isNotNull(deliveryItems1)){
+					deliveryItems1.setItemId(orderItems.getItemId());//货物
+					deliveryItems1.setPriceCategory(orderItems.getPriceCategory());//商品类别
+					deliveryItems1.setProductDesc(orderItems.getItemDescription());//产品描述
+					deliveryItems1.setSpecificationAndModel(orderItems.getItemType());//产品型号
+					deliveryItems1.setPriceCategoryNames(orderItems.getPriceCategory());//商品类别名称
+					deliveryItems1.setItemProp(orderItems.getItemProp());//产品属性
+					deliveryItems1.setPackageRemarks(orderItems.getPartsColourName());//包装要求
+					deliveryItems1.setActualQuantity(orderItems.getOrderQuantity());//数量
+					deliveryItems1.setPrice(orderItems.getPrice());//单价
+					deliveryItems1.setPurchaseAmount(orderItems.getAmount());//采购金额
+					deliveryItems1.setPurchaseTotalAmount(orderItems.getAmount());//采购总价
+					deliveryItems1.setPurchaseQuantity(orderItems.getOrderQuantity());//采购数量
+					deliveryItems1.setUnit(orderItems.getUnit());//计量单位
+					deliveryItems1.setTaxRate(orderItems.getTaxRate());//税率
+					deliveryItems1.setCurrency(order.getCurrency());//币别
+					deliveryItems1.setExRate(order.getExchangeRate());//汇率
+					deliveryItems1.setGoodType(0);//默认0为商品信息 1为赠品信息
+					deliveryItemsService.updateById(deliveryItems1);
+					deliveryItemsList.add(deliveryItems1);
+				}else{
+					DeliveryItems deliveryItems = new DeliveryItems();
+					deliveryItems.setPid(deliveryNew.getId());
+					deliveryItems.setSort(1);
+					deliveryItems.setSrcOrderNo(order.getOrderNo());//来源订单号
+					deliveryItems.setOrgOrderNo(order.getSysNo());//原始订单号
+					deliveryItems.setSrcId(orderItems.getId());//来源id
+					deliveryItems.setItemId(orderItems.getItemId());//货物
+					deliveryItems.setPriceCategory(orderItems.getPriceCategory());//商品类别
+					deliveryItems.setProductDesc(orderItems.getItemDescription());//产品描述
+					deliveryItems.setSpecificationAndModel(orderItems.getItemType());//产品型号
+					deliveryItems.setPriceCategoryNames(orderItems.getPriceCategory());//商品类别名称
+					deliveryItems.setItemProp(orderItems.getItemProp());//产品属性
+					deliveryItems.setPackageRemarks(orderItems.getPartsColourName());//包装要求
+					deliveryItems.setActualQuantity(orderItems.getOrderQuantity());//数量
+					deliveryItems.setPrice(orderItems.getPrice());//单价
+					deliveryItems.setPurchaseAmount(orderItems.getAmount());//采购金额
+					deliveryItems.setPurchaseTotalAmount(orderItems.getAmount());//采购总价
+					deliveryItems.setPurchaseQuantity(orderItems.getOrderQuantity());//采购数量
+					deliveryItems.setUnit(orderItems.getUnit());//计量单位
+					deliveryItems.setTaxRate(orderItems.getTaxRate());//税率
+					deliveryItems.setCurrency(order.getCurrency());//币别
+					deliveryItems.setExRate(order.getExchangeRate());//汇率
+					deliveryItems.setGoodType(0);//默认0为商品信息 1为赠品信息
+					deliveryItems.setCreateUser(order.getDocumenterId());
+					deliveryItems.setCreateTime(new Date());
+					deliveryItems.setTenantId(SecureUtil.getTenantId());
+					deliveryItemsService.save(deliveryItems);
+					deliveryItemsList.add(deliveryItems);
+				}
 			}
+			deliveryNew.setDeliveryItemsList(deliveryItemsList);
 		}
-		return R.data(delivery);
+		return R.data(deliveryNew);
 	}
 
 	@Override
@@ -208,8 +279,8 @@ public class DeliveryClient implements IDeliveryClient {
 		return deliveryService.count(new LambdaQueryWrapper<Delivery>()
 			.eq(Delivery::getIsDeleted, 0)
 			.eq(Delivery::getTenantId, AuthUtil.getTenantId())
-			.eq(Delivery::getCreateUser,userId)
-			.eq(Delivery::getTradeType,"CK")
-			.eq(Delivery::getBillType,"FH"));
+			.eq(Delivery::getCreateUser, userId)
+			.eq(Delivery::getTradeType, "CK")
+			.eq(Delivery::getBillType, "FH"));
 	}
 }

+ 143 - 25
blade-service/blade-pay/src/main/java/org/springblade/pay/tonglianPayment/controller/TongLianPaymentController.java

@@ -16,19 +16,26 @@
  */
 package org.springblade.pay.tonglianPayment.controller;
 
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
+import org.springblade.client.entity.CorpsDesc;
+import org.springblade.client.entity.FeesDesc;
+import org.springblade.client.feign.ICorpsDescClient;
+import org.springblade.client.feign.IFeesDescClient;
 import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.tool.api.R;
+import org.springblade.finance.dto.ApplyDTO;
+import org.springblade.finance.feign.IFinanceClient;
+import org.springblade.finance.vojo.Settlement;
+import org.springblade.pay.tonglianPayment.method.NotifyServlet;
+import org.springblade.pay.tonglianPayment.service.IPaymentService;
 import org.springblade.pay.tonglianPayment.utils.AnalysisMapUtils;
 import org.springblade.pay.tonglianPayment.utils.SybConstants;
 import org.springblade.pay.tonglianPayment.utils.SybUtil;
-import org.springblade.pay.tonglianPayment.method.NotifyServlet;
-import org.springblade.pay.tonglianPayment.service.IPaymentService;
 import org.springblade.purchase.sales.entity.Order;
 import org.springblade.purchase.sales.feign.IOrderDescClient;
-import org.springblade.system.cache.ParamCache;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
@@ -37,10 +44,12 @@ import springfox.documentation.annotations.ApiIgnore;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
 import java.util.TreeMap;
 
-import static org.springblade.common.constant.TenantConstant.PAYMENT_PARAMETER;
-
 /**
  * 通联支付 控制器
  *
@@ -57,14 +66,21 @@ public class TongLianPaymentController extends BladeController {
 
 	private final IPaymentService paymentService;
 
+	private ICorpsDescClient corpsDescClient;
+
+	private final IFeesDescClient feesDescClient;//费用
+
+	private final IFinanceClient financeClient;//财务
+
 
 	/**
 	 * 获取支付的请求参数
 	 */
 	@ApiOperation(value = "获取支付的请求参数")
-	@PostMapping("prepay")
+	@PostMapping("/prepay")
 	public R payPrepay(Long orderId) {
-		return R.data(paymentService.getWeChatPayment(orderDescClient.getById(orderId)));
+		Order order = orderDescClient.getById(orderId);
+		return R.data(paymentService.getWeChatPayment(order));
 	}
 
 	/**
@@ -80,31 +96,133 @@ public class TongLianPaymentController extends BladeController {
 			response.setCharacterEncoding("UTF-8");
 			TreeMap<String, String> params = NotifyServlet.getParams(request);
 			String appkey = "";
-			if (ParamCache.getValue(PAYMENT_PARAMETER).equals("0")) {
-				if ("RSA".equals(params.get("signtype")))
-					appkey = SybConstants.SYB_RSATLPUBKEY_TEST;
-				else if ("SM2".equals(params.get("signtype")))
-					appkey = SybConstants.SYB_SM2TLPUBKEY_TEST;
-				else
-					appkey = SybConstants.SYB_MD5_APPKEY_TEST;
-			} else {
-				if ("RSA".equals(params.get("signtype")))
-					appkey = SybConstants.SYB_RSATLPUBKEY;
-				else if ("SM2".equals(params.get("signtype")))
-					appkey = SybConstants.SYB_SM2TLPUBKEY;
-				else
-					appkey = SybConstants.SYB_MD5_APPKEY;
-			}
+			if ("RSA".equals(params.get("signtype")))
+				appkey = SybConstants.SYB_RSATLPUBKEY;
+			else if ("SM2".equals(params.get("signtype")))
+				appkey = SybConstants.SYB_SM2TLPUBKEY;
+			else
+				appkey = SybConstants.SYB_MD5_APPKEY;
+//			}
 			boolean isSign = SybUtil.validSign(params, appkey, params.get("signtype"));// 接受到推送通知,首先验签
 			System.out.println("验签结果:" + isSign);
 			if (isSign) {
 				String trxstatus = AnalysisMapUtils.getString("trxstatus", params);
 				if (trxstatus.equals("0000")) {
-
-					System.out.println("订单" + AnalysisMapUtils.getString("cusorderid", params) + "支付成功");
+					//支付成功业务处理
 					Order order = new Order();
 					order.setSysNo(AnalysisMapUtils.getString("cusorderid", params));
-					orderDescClient.shippingOrder(order);
+					Order selectOrder = orderDescClient.getByOrder(order);
+					if (ObjectUtils.isNotNull(selectOrder)) {
+						selectOrder.setStatus(2);
+						selectOrder.setConfirmStatus(2);
+						if (ObjectUtils.isNotNull(selectOrder) && ObjectUtils.isNotNull(selectOrder.getDebitAmount())) {
+							List<Settlement> settlementList = new ArrayList<>();
+							Settlement settlement = new Settlement();
+							if ("XS".equals(selectOrder.getBillType())) {
+								settlement.setDc("d");
+								settlement.setBillType("收费");
+							} else {
+								settlement.setDc("c");
+								settlement.setBillType("付费");
+							}
+							settlement.setSettlementDate(new Date());
+							settlement.setAccount("微信支付");
+							settlement.setAmount(selectOrder.getRmbAmount());
+							settlement.setOverPayment(new BigDecimal("0.00"));
+							settlementList.add(settlement);
+							selectOrder.setCurrentAmount(selectOrder.getRmbAmount());
+
+							//账单支付处理
+							//获取所属公司中文名
+							if (selectOrder.getBelongToCorpId() != null) {
+								R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(selectOrder.getBelongToCorpId());
+								if (corpMessage.isSuccess() && corpMessage.getData() != null) {
+									selectOrder.setBelongToCorpName(corpMessage.getData().getCname());
+								}
+							}
+							//获取客户中文名
+							if (selectOrder.getCorpId() != null) {
+								R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(selectOrder.getCorpId());
+								if (corpMessage.isSuccess() && corpMessage.getData() != null) {
+									selectOrder.setCorpsName(corpMessage.getData().getCname());
+								}
+							}
+							BigDecimal amount = BigDecimal.ZERO;//对账金额   销售订单生成的金额  销售金额-本次使用返利金额+费用明细
+							BigDecimal quantity = BigDecimal.ZERO;//对账数量 数量为 就是轮胎条数的和
+							BigDecimal price = BigDecimal.ZERO;//对账单价
+							ApplyDTO applyDTO = new ApplyDTO();
+							applyDTO.setCompanyid(selectOrder.getBelongToCorpId());
+							applyDTO.setTradeType(selectOrder.getTradeType());
+							applyDTO.setBelongCompany(selectOrder.getBelongToCorpName());
+							applyDTO.setAccDate(selectOrder.getBusinesDate());
+							if ("CG".equals(selectOrder.getBillType())) {
+								applyDTO.setDc("C");
+								applyDTO.setBillType("付费");
+							} else if ("XS".equals(selectOrder.getBillType())) {
+								applyDTO.setDc("D");
+								applyDTO.setBillType("收费");
+							}
+							applyDTO.setSettlementList(settlementList);
+
+							amount = amount.add(selectOrder.getOrderAmount());
+							quantity = quantity.add(new BigDecimal(1));
+							price = price.add(amount);
+
+							applyDTO.setSrcParentId(selectOrder.getId());
+							applyDTO.setSrcSysno(selectOrder.getSysNo());
+							applyDTO.setItemType(selectOrder.getTradeType());
+							applyDTO.setCorpId(selectOrder.getCorpId());
+							applyDTO.setSrcId(selectOrder.getId());
+							applyDTO.setSrcFeesId(selectOrder.getId());
+							applyDTO.setCurrency("CNY");
+							applyDTO.setExchangeRate(selectOrder.getExchangeRate());
+							applyDTO.setTaxRate(BigDecimal.ZERO);
+							applyDTO.setSrcType(4);
+							applyDTO.setTradeType(selectOrder.getTradeType());
+							applyDTO.setChargeMember(selectOrder.getChargeMember());
+							applyDTO.setUnit("条");
+							applyDTO.setRemarks(selectOrder.getOrderRemark());
+							//获取费用id
+							R<FeesDesc> fees = feesDescClient.getFeesByName("货款");
+							if (fees.isSuccess() && fees.getData() != null) {
+								applyDTO.setCostType(fees.getData().getId().toString());
+							}
+							applyDTO.setQuantity(new BigDecimal(1));
+							applyDTO.setPrice(selectOrder.getDebitAmount());
+							applyDTO.setAmount(selectOrder.getDebitAmount());
+							applyDTO.setSrcDate(selectOrder.getBusinesDate());
+							applyDTO.setSrcBillNo(selectOrder.getOrderNo());
+							applyDTO.setAccSysNo(selectOrder.getSysNo());
+							applyDTO.setSrcRefno(selectOrder.getSysNo());
+							applyDTO.setRetrieval(selectOrder.getAdvanceCollectionDate());
+							applyDTO.setCorpName(selectOrder.getCorpsName());
+
+							applyDTO.setAmount(amount);
+							applyDTO.setPrice(price);
+							applyDTO.setQuantity(quantity);
+							applyDTO.setReceivedAmount(selectOrder.getCurrentAmount());
+							if (ObjectUtils.isNotNull(selectOrder.getCurrentAmount())) {
+								applyDTO.setSettlementAmount(selectOrder.getSettlmentAmount().add(selectOrder.getCurrentAmount()));
+							}
+							if (ObjectUtils.isNotNull(selectOrder.getSettlementList()) && selectOrder.getSettlementList().size() > 0) {
+								applyDTO.setId(selectOrder.getSrcAccId());
+								BigDecimal receivedAmount = selectOrder.getCurrentAmount();
+								receivedAmount = receivedAmount.add(selectOrder.getSettlmentAmount());
+								amount = amount.subtract(receivedAmount);
+								selectOrder.setSettlmentAmount(receivedAmount);
+								selectOrder.setBalanceAmount(amount);
+								orderDescClient.updateOrder(selectOrder);
+							}
+							//生成账单
+							R paymentApply = financeClient.paymentApplyParts(applyDTO);
+							if (!paymentApply.isSuccess()) {
+								throw new RuntimeException(paymentApply.getMsg());
+							}
+						} else {
+
+						}
+					}
+					System.out.println("订单" + AnalysisMapUtils.getString("cusorderid", params) + "支付成功");
 					response.getWriter().write(AnalysisMapUtils.setXML("SUCCESS", "OK"));
 				} else {
 					//订单编号

+ 26 - 2
blade-service/blade-pay/src/main/java/org/springblade/pay/tonglianPayment/feign/PaymentClient.java

@@ -62,16 +62,17 @@ public class PaymentClient implements IPaymentClient {
 				throw new RuntimeException("支付失败," + return_msg);
 			} else if (return_code.equalsIgnoreCase("SUCCESS")) {
 				// 返回数据
-				String prepay_id = AnalysisMapUtils.getString("prepay_id", mapType);
 				// 先生成paySign 参考https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_7&index=5
 				resultObj.put("appId", AnalysisMapUtils.getString("appId", mapType));
 				resultObj.put("timeStamp", AnalysisMapUtils.getString("timeStamp", mapType));
 				resultObj.put("nonceStr", AnalysisMapUtils.getString("nonceStr", mapType));
 				resultObj.put("package", AnalysisMapUtils.getString("package", mapType));
 				resultObj.put("signType", AnalysisMapUtils.getString("signType", mapType));
+				resultObj.put("partnerid", AnalysisMapUtils.getString("cusid", map));
+				resultObj.put("prepayId", AnalysisMapUtils.getString("reqsn", map));
 				String paySign = AnalysisMapUtils.getString("paySign", mapType);
 				resultObj.put("paySign", paySign);
-				resultObj.put("prepay_id", prepay_id);
+				resultObj.put("trxid", AnalysisMapUtils.getString("trxid", map));
 				return R.data(resultObj);
 			}
 		} catch (Exception e) {
@@ -81,6 +82,29 @@ public class PaymentClient implements IPaymentClient {
 		return R.fail("下单失败");
 	}
 
+	@Override
+	public R<Map<String, String>> refund(PaymentDTO paymentDTO) {
+		SybPayService service = new SybPayService();
+		try {
+			Map<String, String> map = service.refund(paymentDTO.getTrxamt(), paymentDTO.getReqsn(),paymentDTO.getOldtrxid(),paymentDTO.getOldreqsn());
+			print(map);
+			if (map == null) {
+				throw new Exception("返回数据错误");
+			}
+			String return_code = AnalysisMapUtils.getString("retcode", map);
+			String return_msg = AnalysisMapUtils.getString("retmsg", map);
+			if (return_code.equalsIgnoreCase("FAIL")) {
+				throw new RuntimeException("退款失败," + return_msg);
+			} else if (return_code.equalsIgnoreCase("SUCCESS")) {
+				return R.data(map);
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+			throw new RuntimeException("退款失败,error=" + e.getMessage());
+		}
+		return R.fail("退款失败");
+	}
+
 	public static void print(Map<String, String> map) {
 		System.out.println("返回数据如下:");
 		if (map != null) {

+ 2 - 2
blade-service/blade-pay/src/main/java/org/springblade/pay/tonglianPayment/method/ApiTestV2.java

@@ -13,8 +13,8 @@ public class ApiTestV2 {
 		testCancel();//撤销
 		testRefund();//退款
 		testQuery();//查询
-	}*/
-
+	}
+*/
 
 	public static void testScanPay() throws Exception {
 		// TODO Auto-generated method stub

+ 6 - 1
blade-service/blade-pay/src/main/java/org/springblade/pay/tonglianPayment/service/impl/PaymentServiceImpl.java

@@ -103,7 +103,7 @@ public class PaymentServiceImpl implements IPaymentService {
 				"",
 				r.getData().getOpenId(),
 				parameters.getValidtime(),
-				parameters.getNotifyUrl() + "/api/blade-purchase-sales/tongLianPayment/notify",
+				parameters.getNotifyUrl() + "/api/blade-pay/tongLianPayment/notify",
 				"",
 				"",
 				"",
@@ -143,12 +143,17 @@ public class PaymentServiceImpl implements IPaymentService {
 				resultObj.put("nonceStr", AnalysisMapUtils.getString("nonceStr", mapType));
 				resultObj.put("package", AnalysisMapUtils.getString("package", mapType));
 				resultObj.put("signType", AnalysisMapUtils.getString("signType", mapType));
+				resultObj.put("partnerid", AnalysisMapUtils.getString("cusid", map));
+				resultObj.put("prepayId", AnalysisMapUtils.getString("reqsn", map));
 				String paySign = AnalysisMapUtils.getString("paySign", mapType);
 				resultObj.put("paySign", paySign);
+				resultObj.put("trxid", AnalysisMapUtils.getString("trxid", map));
+				resultObj.put("id", order.getId());
 				// 业务处理
 				order.setPrepayId(prepay_id);
 				// 付款中
 				order.setActualPaymentStatus(1);
+				order.setOldTrxId(AnalysisMapUtils.getString("trxid", map));
 				//更新订单表
 				orderDescClient.updateOrder(order);
 				return R.data(resultObj);

+ 17 - 42
blade-service/blade-pay/src/main/java/org/springblade/pay/tonglianPayment/utils/SybPayService.java

@@ -42,9 +42,9 @@ public class SybPayService {
 			params.put("appid", SybConstants.SYB_APPID_TEST);
 			url = SybConstants.SYB_APIURL_TEST;
 		} else {*/
-			params.put("cusid", SybConstants.SYB_CUSID);
-			params.put("appid", SybConstants.SYB_APPID);
-			url = SybConstants.SYB_APIURL;
+		params.put("cusid", SybConstants.SYB_CUSID);
+		params.put("appid", SybConstants.SYB_APPID);
+		url = SybConstants.SYB_APIURL;
 		/*}*/
 		HttpConnectionUtil http = new HttpConnectionUtil(url + "/pay");
 		http.init();
@@ -84,15 +84,15 @@ public class SybPayService {
 				appkey = SybConstants.SYB_MD5_APPKEY_TEST;
 			params.put("sign", SybUtil.unionSign(params, appkey, SybConstants.SIGN_TYPE_TEST));
 		} else {*/
-			params.put("signtype", SybConstants.SIGN_TYPE);
-			String appkey = "";
-			if (SybConstants.SIGN_TYPE.equals("RSA"))
-				appkey = SybConstants.SYB_RSACUSPRIKEY;
-			else if (SybConstants.SIGN_TYPE.equals("SM2"))
-				appkey = SybConstants.SYB_SM2PPRIVATEKEY;
-			else
-				appkey = SybConstants.SYB_MD5_APPKEY;
-			params.put("sign", SybUtil.unionSign(params, appkey, SybConstants.SIGN_TYPE));
+		params.put("signtype", SybConstants.SIGN_TYPE);
+		String appkey = "";
+		if (SybConstants.SIGN_TYPE.equals("RSA"))
+			appkey = SybConstants.SYB_RSACUSPRIKEY;
+		else if (SybConstants.SIGN_TYPE.equals("SM2"))
+			appkey = SybConstants.SYB_SM2PPRIVATEKEY;
+		else
+			appkey = SybConstants.SYB_MD5_APPKEY;
+		params.put("sign", SybUtil.unionSign(params, appkey, SybConstants.SIGN_TYPE));
 //		}
 		System.out.println("请求数据===" + params);
 		byte[] bys = http.postParams(params, true);
@@ -159,15 +159,9 @@ public class SybPayService {
 		if (!SybUtil.isEmpty(SybConstants.SYB_ORGID))
 			params.put("orgid", SybConstants.SYB_ORGID);
 		String url = "";
-		if (ParamCache.getValue(PAYMENT_PARAMETER).equals("0")) {
-			params.put("cusid", SybConstants.SYB_CUSID_TEST);
-			params.put("appid", SybConstants.SYB_APPID_TEST);
-			url = SybConstants.SYB_APIURL_TEST;
-		} else {
-			params.put("cusid", SybConstants.SYB_CUSID);
-			params.put("appid", SybConstants.SYB_APPID);
-			url = SybConstants.SYB_APIURL;
-		}
+		params.put("cusid", SybConstants.SYB_CUSID);
+		params.put("appid", SybConstants.SYB_APPID);
+		url = SybConstants.SYB_APIURL;
 		HttpConnectionUtil http = new HttpConnectionUtil(url + "/refund");
 		http.init();
 		params.put("version", "11");
@@ -176,27 +170,8 @@ public class SybPayService {
 		params.put("oldreqsn", oldreqsn);
 		params.put("oldtrxid", oldtrxid);
 		params.put("randomstr", SybUtil.getValidatecode(8));
-		if (ParamCache.getValue(PAYMENT_PARAMETER).equals("0")) {
-			params.put("signtype", SybConstants.SIGN_TYPE_TEST);
-			String appkey = "";
-			if (SybConstants.SIGN_TYPE_TEST.equals("RSA"))
-				appkey = SybConstants.SYB_RSACUSPRIKEY_TEST;
-			else if (SybConstants.SIGN_TYPE_TEST.equals("SM2"))
-				appkey = SybConstants.SYB_SM2PPRIVATEKEY_TEST;
-			else
-				appkey = SybConstants.SYB_MD5_APPKEY_TEST;
-			params.put("sign", SybUtil.unionSign(params, appkey, SybConstants.SIGN_TYPE_TEST));
-		} else {
-			params.put("signtype", SybConstants.SIGN_TYPE);
-			String appkey = "";
-			if (SybConstants.SIGN_TYPE.equals("RSA"))
-				appkey = SybConstants.SYB_RSACUSPRIKEY;
-			else if (SybConstants.SIGN_TYPE.equals("SM2"))
-				appkey = SybConstants.SYB_SM2PPRIVATEKEY;
-			else
-				appkey = SybConstants.SYB_MD5_APPKEY;
-			params.put("sign", SybUtil.unionSign(params, appkey, SybConstants.SIGN_TYPE));
-		}
+		params.put("signtype", SybConstants.SIGN_TYPE);
+		params.put("sign", SybUtil.unionSign(params, SybConstants.SYB_MD5_APPKEY, SybConstants.SIGN_TYPE));
 		byte[] bys = http.postParams(params, true);
 		String result = new String(bys, "UTF-8");
 		Map<String, String> map = handleResult(result);

+ 17 - 24
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/feign/OrderDescClient.java

@@ -10,9 +10,7 @@ import com.trade.purchase.order.enums.OrderTypeEnum;
 import lombok.AllArgsConstructor;
 import org.apache.commons.lang.time.DateUtils;
 import org.springblade.client.entity.FeesDesc;
-import org.springblade.client.feign.ICorpsDescClient;
 import org.springblade.client.feign.IFeesDescClient;
-import org.springblade.client.feign.ISerialClient;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tenant.annotation.NonDS;
 import org.springblade.core.tool.api.R;
@@ -20,6 +18,8 @@ import org.springblade.core.tool.utils.ObjectUtil;
 import org.springblade.finance.dto.ApplyDTO;
 import org.springblade.finance.feign.IFinanceClient;
 import org.springblade.finance.vojo.Acc;
+import org.springblade.pay.tonglianPayment.dto.PaymentDTO;
+import org.springblade.pay.tonglianPayment.fegin.IPaymentClient;
 import org.springblade.purchase.sales.entity.Order;
 import org.springblade.purchase.sales.entity.OrderFiles;
 import org.springblade.purchase.sales.entity.OrderItems;
@@ -29,7 +29,6 @@ import org.springblade.purchase.sales.service.IOrderService;
 import org.springblade.purchase.sales.vo.OrderStatisticsVo;
 import org.springblade.stock.feign.IStockGoodsClient;
 import org.springblade.stock.vo.StockGoodsVO;
-import org.springblade.system.cache.ParamCache;
 import org.springblade.system.feign.IDictBizClient;
 import org.springframework.web.bind.annotation.*;
 import springfox.documentation.annotations.ApiIgnore;
@@ -39,9 +38,6 @@ import java.math.MathContext;
 import java.math.RoundingMode;
 import java.util.*;
 
-import static org.springblade.common.constant.TenantConstant.APPROVAL_PROCESS;
-import static org.springblade.common.constant.TenantConstant.PAYMENT_PARAMETER;
-
 @NonDS
 @ApiIgnore()
 @RestController
@@ -60,18 +56,10 @@ public class OrderDescClient implements IOrderDescClient {
 
 	private final IFeesDescClient feesDescClient;//费用
 
-	/**
-	 * 获取客户信息
-	 */
-	private ICorpsDescClient corpsDescClient;
-
-	/**
-	 * 生成系统编号
-	 */
-	private ISerialClient serialClient;
-
 	private final IDictBizClient dictBizClient;
 
+	private final IPaymentClient paymentClient;//通联支付
+
 	@Override
 	@PostMapping(UPDATE_ORDER)
 	public R updateOrder(Order order) {
@@ -125,8 +113,8 @@ public class OrderDescClient implements IOrderDescClient {
 
 	@Override
 	@GetMapping(GET_BY_ID)
-	public Order getById(Long id) {
-		return iOrderService.getById(id);
+	public Order getById(@RequestParam("orderId") Long orderId) {
+		return iOrderService.getById(orderId);
 	}
 
 	//销售专用查询
@@ -257,13 +245,13 @@ public class OrderDescClient implements IOrderDescClient {
 
 	@Override
 	@GetMapping(PASS_CHECK_TH)
-	public R passCheckTH(Long id) {
+	public R<Map<String, String>> passCheckTH(Long id) {
 		Order selectOrder = iOrderService.getById(id);
 		if (ObjectUtils.isNull(selectOrder)) {
 			throw new SecurityException("未查到单据信息");
 		}
 		LambdaQueryWrapper<Order> lambdaQueryWrapper = new LambdaQueryWrapper<>();
-		lambdaQueryWrapper.eq(Order::getTenantId, AuthUtil.getTenantId()).eq(Order::getIsDeleted, 0).eq(Order::getId, selectOrder.getSrcId()).eq(Order::getSysNo, selectOrder.getSrcSysNo());
+		lambdaQueryWrapper.eq(Order::getTenantId, AuthUtil.getTenantId()).eq(Order::getIsDeleted, 0).eq(Order::getId, selectOrder.getSrcId()).eq(Order::getSysNo, selectOrder.getSrcOrderNo());
 		Order order = iOrderService.getOne(lambdaQueryWrapper);
 		if (ObjectUtils.isNull(order)) {
 			throw new SecurityException("未查到订单信息");
@@ -388,15 +376,20 @@ public class OrderDescClient implements IOrderDescClient {
 					if (!paymentApply.isSuccess()) {
 						throw new RuntimeException(paymentApply.getMsg());
 					}
-					if (ParamCache.getValue(PAYMENT_PARAMETER).equals("1")) {
-						//微信退款
-					}
 				} else {
 					financeClient.remove(acc_.getId() + "");
 				}
 			}
+
 		}
-		return null;
+		//微信退款
+		PaymentDTO paymentDTO = new PaymentDTO();
+		paymentDTO.setTrxamt(order.getDebitAmount().multiply(new BigDecimal(100)).intValue());
+		paymentDTO.setReqsn(selectOrder.getSysNo());
+		paymentDTO.setOldreqsn(order.getSysNo());
+		paymentDTO.setOldtrxid(order.getOldTrxId());
+		return paymentClient.refund(paymentDTO);
+
 	}
 
 	@Override

+ 11 - 11
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/partsapp/AppPartsController.java

@@ -586,17 +586,6 @@ public class AppPartsController extends BladeController {
 	}
 
 	/**
-	 * 销售或采购订单表(app 退货退款)
-	 */
-	@PostMapping("/returnGoodsRefund")
-	@ApiOperationSupport(order = 6)
-	@ApiOperation(value = "新增或修改", notes = "传入order")
-	public R returnGoodsRefund(@Valid @RequestBody Order order) {
-		order.setTradeType(OrderTypeEnum.PARTS.getType());
-		return orderService.returnGoodsRefund(order);
-	}
-
-	/**
 	 * 销售或采购订单表(发货)
 	 */
 	@PostMapping("/shippingOrder")
@@ -674,4 +663,15 @@ public class AppPartsController extends BladeController {
 		return orderService.collectPayment(order);
 	}
 
+	/**
+	 * 销售或采购订单表(app 退货退款)
+	 */
+	@PostMapping("/returnGoodsRefund")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "新增或修改", notes = "传入order")
+	public R returnGoodsRefund(@Valid @RequestBody Order order) {
+		order.setTradeType(OrderTypeEnum.PARTS.getType());
+		return orderService.returnGoodsRefund(order);
+	}
+
 }

+ 68 - 43
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java

@@ -4301,7 +4301,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		newOrder.setUpdateUserName(null);
 		// 订单时间
 		Date date = new Date();
-		newOrder.setStatus(7);
 		// 保存订单主表信息
 		// 获取系统编号
 		R billNo = serialClient.getBillNo(newOrder.getBillType(), newOrder.getTradeType(), newOrder.getBillType());
@@ -4338,6 +4337,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		lambdaQueryWrapper.eq(OrderItems::getTenantId, AuthUtil.getTenantId()).eq(OrderItems::getIsDeleted, 0).eq(OrderItems::getPid, selectOrder.getId());
 		List<OrderItems> orderItemsList1 = orderItemsMapper.selectList(lambdaQueryWrapper);
 		orderItemsService.saveOrderItemsMessage(orderItemsList1, date, newOrder.getId());
+		newOrder.setStatus(7);
 		newOrder.setConfirmStatus(1);
 		newOrder.setReturnGoods(newOrder.getStorageQuantity());
 		newOrder.setRefundSettlmentAmount(newOrder.getRefundSettlmentAmount());
@@ -4345,6 +4345,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 
 		selectOrder.setReturnGoods(newOrder.getStorageQuantity());
 		selectOrder.setRefundSettlmentAmount(newOrder.getRefundSettlmentAmount());
+		selectOrder.setStatus(7);
 		baseMapper.updateById(selectOrder);
 
 		//审批数据
@@ -4357,11 +4358,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		if ("XSTH".equals(newOrder.getBillType())) {
 			//是否开启流程
 
-			pathsActs = iCheckClient.getActsByActId(Integer.parseInt(ParamCache.getValue(RETURN_APPROVAL_ID_XS)), ParamCache.getValue(RETURN_APPROVAL_FIELD));
+			pathsActs = iCheckClient.getActsByActId(1105, "status");
 			//获取审批信息
-			auditPathsLevels = iCheckClient.listLevelsByActId(Integer.parseInt(ParamCache.getValue(RETURN_APPROVAL_ID_XS)), ParamCache.getValue(RETURN_APPROVAL_FIELD));
+			auditPathsLevels = iCheckClient.listLevelsByActId(1105,"status");
 
-			auditProecessDTO.setProcessType(ParamCache.getValue(RETURN_APPROVAL_NAME_XS));
+			auditProecessDTO.setProcessType("财务退款审批");
 			/* 洗箱审批流程  */
 		} else if ("CGTH".equals(newOrder.getBillType())) {
 			//是否开启流程
@@ -4383,7 +4384,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				throw new SecurityException("开启审批失败:未查询到审批信息");
 			}
 			// 绑定审核类型
-			if ("XSTH".equals(order.getBillType())) {
+			if ("XSTH".equals(newOrder.getBillType())) {
 				auditProecessDTO.setCheckType("YPJ-XSTH");
 				auditProecessDTO.setUrl("/salesOrder/index");
 				auditProecessDTO.setPageLabel("销售单");
@@ -4717,26 +4718,41 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				if (ObjectUtils.isNull(billOrder)) {
 					throw new RuntimeException("未找到订单单据信息");
 				}
-				LambdaQueryWrapper<Order> orderLambdaQueryWrapper = new LambdaQueryWrapper<>();
-				orderLambdaQueryWrapper.eq(Order::getSrcId, billOrder.getId())
-					.eq(Order::getIsDeleted, 0)
-					.eq(Order::getTenantId, AuthUtil.getTenantId());
-				selectOrder = baseMapper.selectOne(orderLambdaQueryWrapper);
-				if (ObjectUtils.isNull(selectOrder)) {
-					throw new RuntimeException("未找到发货单据信息");
+				if ("234557".equals(AuthUtil.getTenantId())){
+					LambdaQueryWrapper<Order> orderLambdaQueryWrapper = new LambdaQueryWrapper<>();
+					orderLambdaQueryWrapper.eq(Order::getSrcId, billOrder.getId())
+						.eq(Order::getIsDeleted, 0)
+						.eq(Order::getTenantId, AuthUtil.getTenantId());
+					selectOrder = baseMapper.selectOne(orderLambdaQueryWrapper);
+					if (ObjectUtils.isNull(selectOrder)) {
+						throw new RuntimeException("未找到发货单据信息");
+					}
+					selectOrder.setStatus(4);
 				}
-				selectOrder.setStatus(4);
 				billOrder.setStatus(4);
 				text = "已确认收货!";
 			} else {
-				selectOrder = baseMapper.selectById(order.getId());
-				if (ObjectUtils.isNull(selectOrder)) {
-					throw new RuntimeException("未找到发货单据信息");
-				}
-				billOrder = baseMapper.selectById(selectOrder.getSrcId());
-				if (ObjectUtils.isNull(billOrder)) {
-					throw new RuntimeException("未找到订单单据信息");
+				if ("234557".equals(AuthUtil.getTenantId())){
+					selectOrder = baseMapper.selectById(order.getId());
+					if (ObjectUtils.isNull(selectOrder)) {
+						throw new RuntimeException("未找到发货单据信息");
+					}
+					billOrder = baseMapper.selectById(selectOrder.getSrcId());
+					if (ObjectUtils.isNull(billOrder)) {
+						throw new RuntimeException("未找到订单单据信息");
+					}
+					selectOrder.setStatus(3);
+					billOrder.setStatus(3);
+					text = "已发货,请注意接收!";
+				}else{
+					billOrder = baseMapper.selectById(order.getId());
+					if (ObjectUtils.isNull(billOrder)) {
+						throw new RuntimeException("未找到订单单据信息");
+					}
+					billOrder.setStatus(3);
+					text = "已发货,请注意接收!";
 				}
+
 				LambdaQueryWrapper<OrderItems> lambdaQueryWrapper = new LambdaQueryWrapper<>();
 				lambdaQueryWrapper.eq(OrderItems::getPid, billOrder.getId())
 					.eq(OrderItems::getIsDeleted, 0)
@@ -4818,14 +4834,13 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 						}
 					}
 				}
-				selectOrder.setStatus(3);
-				billOrder.setStatus(3);
-				text = "已发货,请注意接收!";
 			}
-			selectOrder.setUpdateTime(new Date());
-			selectOrder.setUpdateUserName(AuthUtil.getUserName());
-			selectOrder.setUpdateUser(AuthUtil.getUserId());
-			baseMapper.updateById(selectOrder);
+			if ("234557".equals(AuthUtil.getTenantId())){
+				selectOrder.setUpdateTime(new Date());
+				selectOrder.setUpdateUserName(AuthUtil.getUserName());
+				selectOrder.setUpdateUser(AuthUtil.getUserId());
+				baseMapper.updateById(selectOrder);
+			}
 			billOrder.setUpdateTime(new Date());
 			billOrder.setUpdateUserName(AuthUtil.getUserName());
 			billOrder.setUpdateUser(AuthUtil.getUserId());
@@ -4834,6 +4849,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			if (ObjectUtils.isNull(corpsDesc)) {
 				throw new RuntimeException("未找到客户信息");
 			}
+			// 保存订单文件信息
+			if (CollectionUtils.isNotEmpty(order.getOrderFilesList())) {
+				List<OrderFiles> orderFilesList = orderFilesService.saveOrderFileMessage(order.getOrderFilesList(), new Date(), order.getId());
+				order.setOrderFilesList(orderFilesList);
+			}
 			if (ObjectUtils.isNotNull(corpsDesc.getAdminProfiles())) {
 				String[] arrs = corpsDesc.getAdminProfiles().split(",");
 				for (String arr : arrs) {
@@ -4858,7 +4878,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				}
 			}
 		}
-		return R.data("操作成功");
+		return R.data(order);
 	}
 
 	@Override
@@ -4896,20 +4916,24 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		if (3 == billOrder.getStatus()) {
 			throw new RuntimeException("订单取消失败!该订单已发货,请申请退货");
 		}
-		LambdaQueryWrapper<Order> orderLambdaQueryWrapper = new LambdaQueryWrapper<>();
-		orderLambdaQueryWrapper.eq(Order::getSrcId, billOrder.getId())
-			.eq(Order::getIsDeleted, 0)
-			.eq(Order::getTenantId, AuthUtil.getTenantId());
-		Order selectOrder = baseMapper.selectOne(orderLambdaQueryWrapper);
-		if (ObjectUtils.isNull(selectOrder)) {
-			throw new RuntimeException("未找到发货单据信息");
-		}
-		billOrder.setStatus(10);
-		baseMapper.deleteById(selectOrder.getId());
-		billOrder.setUpdateTime(new Date());
-		billOrder.setUpdateUserName(AuthUtil.getUserName());
-		billOrder.setUpdateUser(AuthUtil.getUserId());
-		baseMapper.updateById(billOrder);
+		if ("234557".equals(AuthUtil.getTenantId())){
+			LambdaQueryWrapper<Order> orderLambdaQueryWrapper = new LambdaQueryWrapper<>();
+			orderLambdaQueryWrapper.eq(Order::getSrcId, billOrder.getId())
+				.eq(Order::getIsDeleted, 0)
+				.eq(Order::getTenantId, AuthUtil.getTenantId());
+			Order selectOrder = baseMapper.selectOne(orderLambdaQueryWrapper);
+			if (ObjectUtils.isNull(selectOrder)) {
+				throw new RuntimeException("未找到发货单据信息");
+			}
+			baseMapper.deleteById(selectOrder.getId());
+			billOrder.setStatus(10);
+			billOrder.setUpdateTime(new Date());
+			billOrder.setUpdateUserName(AuthUtil.getUserName());
+			billOrder.setUpdateUser(AuthUtil.getUserId());
+			baseMapper.updateById(billOrder);
+		}else{
+			baseMapper.deleteById(billOrder.getId());
+		}
 		return R.data("操作成功");
 	}
 
@@ -4963,7 +4987,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			paymentDTO.setRemark("");
 			paymentDTO.setAcct(r.getData().getOpenId());
 			paymentDTO.setValidtime(parameters.getValidtime());
-			paymentDTO.setNotify_url(parameters.getNotifyUrl() + "/api/blade-purchase-sales/tongLianPayment/notify");
+			paymentDTO.setNotify_url(parameters.getNotifyUrl() + "/api/blade-pay/tongLianPayment/notify");
 			paymentDTO.setLimit_pay("");
 			paymentDTO.setIdno("");
 			paymentDTO.setTruename("");
@@ -4983,6 +5007,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				// 付款
 				orderInfo.setActualPaymentStatus(1);
 				orderInfo.setRmbAmount(orderInfo.getDebitAmount().multiply(new BigDecimal(100)));
+				orderInfo.setOldTrxId(res.getData().get("trxid").toString());
 				//更新订单表
 				baseMapper.updateById(orderInfo);
 				res.getData().put("id", orderInfo.getId());

+ 1 - 1
blade-service/blade-user/src/main/java/org/springblade/system/user/controller/UserController.java

@@ -254,7 +254,7 @@ public class UserController {
 	})
 	@ApiOperationSupport(order = 3)
 	@ApiOperation(value = "列表", notes = "传入account和realName")
-	@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
+//	@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
 	public R<IPage<UserVO>> page(@ApiIgnore User user, Query query, Long deptId, BladeUser bladeUser) {
 		IPage<User> pages = userService.selectUserPage(Condition.getPage(query), user, deptId, (bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID) ? StringPool.EMPTY : bladeUser.getTenantId()));
 		return R.data(UserWrapper.build().pageVO(pages));