Browse Source

提交保存

ioioio 3 years ago
parent
commit
2f245aebf0

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

@@ -367,4 +367,8 @@ public class Delivery implements Serializable {
 	private BigDecimal createProfit;
 
 	private String belongCompany;
+
+	private String voucherId;
+
+	private String voucherNo;
 }

+ 75 - 20
blade-service-api/blade-deliver-goods-api/src/main/java/org/springblade/deliver/goods/entity/JdModule.java

@@ -22,6 +22,7 @@ import lombok.Data;
 import org.apache.ibatis.type.Alias;
 
 import java.io.Serializable;
+import java.util.Date;
 
 /**
  * 租户jd模块表实体类
@@ -38,33 +39,87 @@ public class JdModule implements Serializable {
 
 	private Long id;
 	/**
-	* 模块名称
-	*/
-		@ApiModelProperty(value = "模块名称")
-		private String module;
+	 * 模块名称
+	 */
+	@ApiModelProperty(value = "模块名称")
+	private String module;
 	/**
-	* d 或 c
-	*/
-		@ApiModelProperty(value = "d 或 c")
-		private String dc;
+	 * d 或 c
+	 */
+	@ApiModelProperty(value = "d 或 c")
+	private String dc;
 	/**
-	* 科目编码
-	*/
-		@ApiModelProperty(value = "科目编码")
-		private String projectCode;
+	 * 科目编码
+	 */
+	@ApiModelProperty(value = "科目编码")
+	private String projectCode;
+
+	@ApiModelProperty(value = "科目编码")
+	private String projectName;
 	/**
-	* 所属账套id
-	*/
-		@ApiModelProperty(value = "所属账套id")
-		private String accountId;
+	 * 所属账套id
+	 */
+	@ApiModelProperty(value = "所属账套id")
+	private String accountId;
 	/**
-	* 所属账套
-	*/
-		@ApiModelProperty(value = "所属账套")
-		private String accountName;
+	 * 所属账套
+	 */
+	@ApiModelProperty(value = "所属账套")
+	private String accountName;
 
 	@ApiModelProperty(value = "租户id")
 	private String tenantId;
 
+	@ApiModelProperty(value = "版本")
+	private String version;
+	/**
+	 * 创建人
+	 */
+	@ApiModelProperty(value = "创建人")
+	private Long createUser;
+	/**
+	 * 创建部门
+	 */
+	@ApiModelProperty(value = "创建部门")
+	private Long createDept;
+	/**
+	 * 创建时间
+	 */
+	@ApiModelProperty(value = "创建时间")
+	private Date createTime;
+	/**
+	 * 修改人
+	 */
+	@ApiModelProperty(value = "修改人")
+	private Long updateUser;
+	/**
+	 * 修改时间
+	 */
+	@ApiModelProperty(value = "修改时间")
+	private Date updateTime;
+	/**
+	 * 状态(0 正常 1停用)
+	 */
+	@ApiModelProperty(value = "状态(0 正常 1停用)")
+	private Integer status;
+	/**
+	 * 是否已删除(0 否 1是)
+	 */
+	@ApiModelProperty(value = "是否已删除(0 否 1是)")
+	private Integer isDeleted;
+
+	private String currency;
+
+	private String currencyCode;
+
+	private String voucher;
+
+	private String voucherType;
+
+	private String projectType;
+
+	private String abstractStatic;
+
+	private String abstractFormula;
 
 }

+ 5 - 0
blade-service-api/trade-finance-api/src/main/java/org/springblade/finance/vojo/Settlement.java

@@ -269,5 +269,10 @@ public class Settlement  implements Serializable {
 
 	private Long salesCompany;
 
+	private String voucherId;
+
+	private String voucherNo;
+
+
 
 }

+ 11 - 3
blade-service/blade-client/src/main/java/org/springblade/client/lock/controller/LockController.java

@@ -199,7 +199,6 @@ public class LockController extends BladeController {
 		//校验防止上锁多次
 		LambdaQueryWrapper<Lock> lockLambdaQueryWrapper=new LambdaQueryWrapper<>();
 		lockLambdaQueryWrapper
-			.eq(Lock::getLockNo,no+AuthUtil.getUserName())
 			.eq(Lock::getBillId,billId)
 			.eq(Lock::getMoudleName,moduleName)
 			.eq(Lock::getTableName,tableName)
@@ -210,9 +209,18 @@ public class LockController extends BladeController {
 		{
 			Lock lock = lockService.getOne(lockLambdaQueryWrapper, false);
 			//存在自己的锁
-			if(lock.getUserId().longValue()==AuthUtil.getUserId().longValue())
+			if(lock.getUserId().longValue()==AuthUtil.getUserId().longValue() )
 			{
-				 return R.success("OK");
+				//并且是自己的上锁序列号
+				if((no+AuthUtil.getUserName()).equals(lock.getLockNo()))
+				{
+					return R.success("OK");
+				}
+				else
+				{
+					return R.fail("上锁失败:当前用户在其他设备上已上锁");
+				}
+
 			}
 			//存在别人的锁, 直接报错
 			else if(lock.getUserId().longValue()!=AuthUtil.getUserId().longValue())

+ 38 - 35
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/service/impl/DeliveryServiceImpl.java

@@ -296,7 +296,8 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 				{
 					String accountName=select.getBelongCompany();
 					//测试账套-收货生成凭证
-					this.testDeliverGoodsSaveVoucher(accountName,corpName,wareHouse,purchaseTotalAmount,deliveryAmount,saleOrderNo,purchaseOrderNo);
+					this.testDeliverGoodsSaveVoucher(select,accountName,corpName,wareHouse,purchaseTotalAmount,deliveryAmount,saleOrderNo,purchaseOrderNo);
+				    baseMapper.updateById(select);
 				}
 				catch (Exception exception)
 				{
@@ -485,7 +486,9 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 			{
 				String accountName=select.getBelongCompany();
 				//测试账套-收货生成凭证
-				this.testTakeGoodsSaveVoucher(accountName,corpName,wareHouse,acoount,orderNo);
+				this.testTakeGoodsSaveVoucher(select,accountName,corpName,wareHouse,acoount,orderNo);
+				baseMapper.updateById(select);
+
 			}
 			catch (Exception exception)
 			{
@@ -812,7 +815,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 	}
 
 	//发货生成凭证
-	public void testDeliverGoodsSaveVoucher(String accountName,String copsName,String warehouse ,String purchaseTotalAmount,String deliveryAmount,String saleOrderNo,String purchaseOrder) throws Exception
+	public void testDeliverGoodsSaveVoucher(Delivery delivery,String accountName,String copsName,String warehouse ,String purchaseTotalAmount,String deliveryAmount,String saleOrderNo,String purchaseOrder) throws Exception
 	{
 		//非达沃特用户直接返回
 		if(!AuthUtil.getTenantId().equals("681169"))
@@ -859,19 +862,19 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 		}
 
 		//2.收货,组装model,保存凭证
-		toDeliverJinDie(saleOrderNo,purchaseOrder,purchaseTotalAmount,deliveryAmount,copsName,warehouse,jdTenant.getAccountId(),group.getGroupName(),jdTenant);
-
+		JdyTool.voucher voucher = toDeliverJinDie(delivery.getBusinessDate(),saleOrderNo, purchaseOrder, purchaseTotalAmount, deliveryAmount, copsName, warehouse, jdTenant.getAccountId(), group.getGroupName(), jdTenant);
+		if(voucher==null)
+		{
+           throw new SecurityException("获取凭证信息失败");
+		}
+		delivery.setVoucherId(voucher.getId());
+		delivery.setVoucherId(voucher.getVoucherno());
 	}
 
 	//收货生成凭证
-	public void testTakeGoodsSaveVoucher(String accountName,String copsName,String warehouse ,String acoount,String orderNo) throws Exception
+	public void testTakeGoodsSaveVoucher(Delivery delivery,String accountName,String copsName,String warehouse ,String acoount,String orderNo) throws Exception
 	{
 
-		//非达沃特用户直接返回
-		if(!AuthUtil.getTenantId().equals("681169"))
-		{
-			return;
-		}
 		//获取token
 		String token = this.getAccountGroupRequest();
 		//获取套账url
@@ -910,22 +913,24 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 			return;
 		}
 		//2.收货,组装model,保存凭证
-		toTakeJinDie(orderNo,acoount,copsName,warehouse,jdTenant.getAccountId(),group.getGroupName(),jdTenant);
+		JdyTool.voucher voucher = toTakeJinDie(delivery.getBusinessDate(),orderNo, acoount, copsName, warehouse, jdTenant.getAccountId(), group.getGroupName(), jdTenant);
+		if(voucher==null)
+		{
+			throw new SecurityException("获取凭证信息失败");
+		}
+		delivery.setVoucherId(voucher.getId());
+		delivery.setVoucherId(voucher.getVoucherno());
 	}
 
-   	public void toDeliverJinDie(String saleOrderNo,String purchaseOrder,String purchaseTotalAmount,String deliveryAmount,String copsName,String warehouse,String accountId,String groupName,JdTenant jdTenant)
+   	public JdyTool.voucher toDeliverJinDie(Date date,String saleOrderNo,String purchaseOrder,String purchaseTotalAmount,String deliveryAmount,String copsName,String warehouse,String accountId,String groupName,JdTenant jdTenant)
     {
-		//不是某一家 直接返回
-		if (!AuthUtil.getTenantId().equals("681169"))
-		{
-			return;
-		}
+
 		List<JDYitems> jdYitems= new ArrayList<>();
         //凭证1
 		JDYitems item1 = new JDYitems();
 		JDYitems item2 = new JDYitems();
-		item1.setDate(new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
-		item2.setDate(new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
+		item1.setDate(new SimpleDateFormat("yyyy-MM-dd").format(date));
+		item2.setDate(new SimpleDateFormat("yyyy-MM-dd").format(date));
 		List<JDYentries> entriesList1 = new ArrayList<>();
 		List<JDYentries> entriesList2 = new ArrayList<>();
 		List<JDYentries> entriesList3 = new ArrayList<>();
@@ -949,7 +954,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 		{
 			throw new SecurityException("获取销售订单科目号失败");
 		}
-		d.setExplanation(saleOrderNo + "-收入");
+		d.setExplanation(saleOrderNo + "-"+dModule.getAbstractStatic());
 		d.setAccount_number(dModule.getProjectCode());
 		d.setDebitamount(deliveryAmount);
 
@@ -996,7 +1001,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 			throw new SecurityException("获取销售订单科目号失败");
 		}
 
-		c.setExplanation(saleOrderNo + "-收入");
+		c.setExplanation(saleOrderNo + "-"+cModule.getAbstractStatic());
 		c.setAccount_number(cModule.getProjectCode());
 		c.setCreditamount(deliveryAmount);
 		entriesList1.add(c);
@@ -1023,7 +1028,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 		{
 			throw new SecurityException("获取销售订单科目号失败");
 		}
-		d2.setExplanation(purchaseOrder + "-结转成本");
+		d2.setExplanation(purchaseOrder + "-"+dModule2.getAbstractStatic());
 		d2.setAccount_number(dModule2.getProjectCode());
 		d2.setDebitamount(purchaseTotalAmount);
 		entriesList2.add(d2);
@@ -1044,7 +1049,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 		{
 			throw new SecurityException("获取销售订单科目号失败");
 		}
-		c2.setExplanation(purchaseOrder + "-结转成本");
+		c2.setExplanation(purchaseOrder + "-"+cModule2.getAbstractStatic());
 		c2.setAccount_number(cModule2.getProjectCode());
 		c2.setCreditamount(purchaseTotalAmount);
 
@@ -1083,7 +1088,8 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 		try {
 			String token = this.getAccountGroupRequest();
 			String saveUrl="http://api.kingdee.com/jdy/gl/voucher_save?access_token="+token;
-			JdyTool.testSaveVoucher(saveUrl,accountId,groupName,jdYitems);
+			JdyTool.voucher voucher = JdyTool.testSaveVoucher(token, saveUrl, accountId, groupName, jdYitems);
+			return voucher;
 		} catch (Exception exception) {
 			throw new SecurityException("操作失败,保存金蝶错误:"+exception.getMessage());
 		}
@@ -1092,15 +1098,11 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 
 
 	//金蝶保存凭证测试-销售生成凭证
-	public void toTakeJinDie(String orderNo,String acoount,String copsName,String warehouse,String accountId,String groupName,JdTenant jdTenant) {
-		//不是某一家 直接返回
-        if (!AuthUtil.getTenantId().equals("681169"))
-        {
-			return;
-		}
+	public JdyTool.voucher toTakeJinDie(Date date,String orderNo,String acoount,String copsName,String warehouse,String accountId,String groupName,JdTenant jdTenant) {
+
 
 		JDYitems item = new JDYitems();
-		item.setDate(new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
+		item.setDate(new SimpleDateFormat("yyyy-MM-dd").format(date));
 		List<JDYentries> entriesList = new ArrayList<>();
 		List<JDYitems> jdYitems = new ArrayList<>();
 
@@ -1121,7 +1123,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 			throw new SecurityException("获取销售订单科目号失败");
 		}
 
-	    d.setExplanation(orderNo + "采购入库");
+	    d.setExplanation(dModule.getAbstractStatic()+"-" + "采购入库");
 		d.setAccount_number(dModule.getProjectCode());
 		d.setDebitamount(acoount);
 
@@ -1170,7 +1172,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 			throw new SecurityException("获取销售订单科目号失败");
 		}
 
-		c.setExplanation(orderNo +"采购入库");
+		c.setExplanation(cModule.getAbstractStatic()+"-" +"采购入库");
 		c.setAccount_number(cModule.getProjectCode());
 		c.setCreditamount(acoount);
 
@@ -1207,7 +1209,8 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 		try {
 			String token = this.getAccountGroupRequest();
 			String saveUrl="http://api.kingdee.com/jdy/gl/voucher_save?access_token="+token;
-			JdyTool.testSaveVoucher(saveUrl,accountId,groupName,jdYitems);
+			JdyTool.voucher voucher = JdyTool.testSaveVoucher(token, saveUrl, accountId, groupName, jdYitems);
+			return voucher;
 		} catch (Exception exception) {
 			throw new SecurityException("操作失败,保存金蝶错误:"+exception.getMessage());
 		}

+ 48 - 5
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/tool/JdyTool.java

@@ -20,7 +20,7 @@ public class JdyTool
 {
 
 	//测试-调用金蝶云官方账号的保存
-	public static String testSaveVoucher (String url, String accountId, String groupName, List<JDYitems> jdYitems) throws Exception
+	public static voucher testSaveVoucher (String token,String url, String accountId, String groupName, List<JDYitems> jdYitems) throws Exception
 	{
 		HttpRequest httpRequest = new HttpRequest(url,"POST");
 		httpRequest.header("accountId",accountId);
@@ -63,10 +63,21 @@ public class JdyTool
 
 		//获取主表id
 		List<String> successPkIds = saveResponse.getData().get(0).getSuccessPkIds();
-		/*System.out.println("请求body===="+httpRequest.body().toString());
-		JSONObject result = JSONObject.parseObject(httpRequest.body());
-		return result.toJSONString();*/
-		return successPkIds.toString().replace("[","").replace("]","");
+		String id = successPkIds.toString().replace("[", "").replace("]", "");
+		String getUrl= "http://api.kingdee.com/jdy/gl/voucher_detail?access_token="+token;
+		HttpRequest httpRequest2 = new HttpRequest(getUrl,"POST");
+		httpRequest2.header("accountId",accountId);
+		httpRequest2.header("charset","utf-8");
+		httpRequest2.header("groupName",groupName);
+		httpRequest2.header("Content-Type","application/json");
+
+		JSONObject data2=new JSONObject();
+		data2.put("id",id);
+		httpRequest2.send(data2.toJSONString());
+		String body2 = httpRequest2.body().toString();
+		log.info("请求结果:"+body2);
+		getVoucherResponse  getVoucherResponse = JSONObject.parseObject(body2, getVoucherResponse.class);
+		return getVoucherResponse.getData();
 	}
 
     @Data
@@ -122,7 +133,39 @@ public class JdyTool
 		private String groupName;
 	}
 
+	@Data
+	public static class supplier implements Serializable
+	{
+		private String id;
+		private String number;
+		private String name;
+		private String groupId;
+		private String groupName;
+		private String groupNumber;
+		private String rate;
+		private String bank;
+		private String bankaccount;
+		private String accountopenaddr;
 
+	}
+
+	@Data
+	public static class getVoucherResponse implements Serializable
+	{
+		private voucher data;
+		private String  success;
+	}
+
+	//部分凭证对象属性
+	@Data
+	public static class  voucher implements Serializable
+	{
+		private String date;
+		private String id;
+		private String period;
+		private String number;
+		private String voucherno;
+	}
 
 
 

+ 4 - 1
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java

@@ -670,6 +670,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	@GlobalTransactional
 	public void passCheck(Long id)
 	{
+
 		/**===========================start 审核通过修改销售订单信息==========================*/
 		LambdaQueryWrapper<Order> orderLambdaQueryWrapper=new LambdaQueryWrapper<>();
 		orderLambdaQueryWrapper
@@ -684,6 +685,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		baseMapper.updateById(order);
 		/**===========================end 审核通过修改销售订单信息==========================*/
 
+		if(AuthUtil.getTenantId().equals("681169"))
+		{
 		//销售的逻辑
         if(order.getBillType().equals("XS"))
         {
@@ -822,7 +825,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 
 		}
 
-
+		}
 
 
 	}

+ 10 - 0
blade-service/trade-finance/src/main/java/org/springblade/finance/controller/SettlementController.java

@@ -393,6 +393,7 @@ public class SettlementController extends BladeController {
 		return accService.list(accLambdaQueryWrapper);
 	}
 
+	//获取当前租户对应的账套信息
 	@GetMapping("getAccountList")
 	public R<List<?>>  getAccountList() throws Exception
 	{
@@ -400,6 +401,15 @@ public class SettlementController extends BladeController {
 		return R.data(accountList);
 	}
 
+	//获取当前租户对应的供应商列表
+/*	@GetMapping("getSupplierList") throws Exception
+	public R<List<?>>  getSupplierList() throws Exception
+	{
+		List<JdyTool.AccountGroup> accountList = settlementService.getSupplierList();
+		return R.data(accountList);
+	}*/
+
+
 
 
 }

+ 2 - 0
blade-service/trade-finance/src/main/java/org/springblade/finance/service/ISettlementService.java

@@ -73,4 +73,6 @@ public interface ISettlementService extends IService<Settlement> {
 
 	List<JdyTool.AccountGroup> getAccountList() throws Exception;
 
+	List<JdyTool.supplier> getSupplierList() throws Exception;
+
 }

+ 52 - 20
blade-service/trade-finance/src/main/java/org/springblade/finance/service/impl/SettlementServiceImpl.java

@@ -260,7 +260,9 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 							{
 								String accountName=settlement.getBelongCompany();
 								//测试账套-销售保存凭证
-								this.testSaleCollectionSaveVoucher(accountName,corpsName,settlement.getAmount().toString());
+								this.testSaleCollectionSaveVoucher(settlement,accountName,corpsName,settlement.getAmount().toString());
+							    //更新绑定
+								baseMapper.updateById(settlement);
 							}
 							catch (Exception exception)
 							{
@@ -278,7 +280,9 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 							{
 								String accountName=settlement.getBelongCompany();
 								//测试账套-销售保存凭证
-								this.testPurchaseSaveVoucher(accountName,createUser,corpsName,settlement.getAmount().toString());
+								this.testPurchaseSaveVoucher(settlement,accountName,createUser,corpsName,settlement.getAmount().toString());
+								//更新绑定
+								baseMapper.updateById(settlement);
 							}
 							catch (Exception exception)
 							{
@@ -367,7 +371,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 			model.setFinanceStatus("结算完成");
 			model.setUpdateTime(new Date());
 			model.setUpdateUser(AuthUtil.getUserId());
-			model.setSettlementDate(new Date());
+			/*model.setSettlementDate(new Date());*/
 			model.setUpdateUserName(AuthUtil.getUser().getRoleName());
 			baseMapper.updateById(model);
 
@@ -1305,11 +1309,19 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 		return list;
 	}
 
+	@Override
+	public List<JdyTool.supplier> getSupplierList() throws Exception
+	{
+		//获取token
+		String token = this.getAccountGroupRequest();
+		return null;
+	}
+
 	//金蝶保存凭证测试-采购付款生成凭证
-	public void toPurchaseJinDie(String Account,String createUser,String corpName,String accountId,String groupName,JdTenant jdTenant)
+	public JdyTool.voucher toPurchaseJinDie(Date date,String Account,String createUser,String corpName,String accountId,String groupName,JdTenant jdTenant)
 	{
 		JDYitems item = new JDYitems();
-		item.setDate(new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
+		item.setDate(new SimpleDateFormat("yyyy-MM-dd").format(date));
 		List<JDYentries> entriesList = new ArrayList<>();
 		List<JDYitems> jdYitems = new ArrayList<>();
 
@@ -1328,7 +1340,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 		{
 			throw new SecurityException("获取采购订单科目号失败");
 		}
-		d.setExplanation("供应商付款-"+ corpName);
+		d.setExplanation(dModule.getAbstractStatic()+"-"+ corpName);
 		d.setAccount_number(dModule.getProjectCode());
 		d.setDebitamount(Account);
 
@@ -1349,7 +1361,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 		{
 			throw new SecurityException("获取采购订单科目号失败");
 		}
-		c.setExplanation("供应商付款-"+ corpName);
+		c.setExplanation(cModule.getAbstractStatic()+"-"+ corpName);
 		c.setAccount_number(cModule.getProjectCode());
 		c.setCreditamount(Account);
 
@@ -1406,7 +1418,8 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 		try {
 			String token = this.getAccountGroupRequest();
 			String saveUrl="http://api.kingdee.com/jdy/gl/voucher_save?access_token="+token;
-			JdyTool.testSaveVoucher(saveUrl,accountId,groupName,jdYitems);
+			JdyTool.voucher voucher = JdyTool.testSaveVoucher(token, saveUrl, accountId, groupName, jdYitems);
+			return voucher;
 		} catch (Exception exception) {
 			throw new SecurityException("操作失败,保存金蝶错误:"+exception.getMessage());
 		}
@@ -1415,10 +1428,10 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 
 
 	//金蝶保存凭证测试-销售收款生成凭证
-	public void toSaleCollectionJinDie(String Account,String corpName,String accountId,String groupName,JdTenant jdTenant)
+	public JdyTool.voucher toSaleCollectionJinDie(Date date,String Account,String corpName,String accountId,String groupName,JdTenant jdTenant)
 	{
 		JDYitems item = new JDYitems();
-		item.setDate(new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
+		item.setDate(new SimpleDateFormat("yyyy-MM-dd").format(date));
 		List<JDYentries> entriesList = new ArrayList<>();
 		List<JDYitems> jdYitems = new ArrayList<>();
 
@@ -1437,7 +1450,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 		{
 			throw new SecurityException("获取销售订单科目号失败");
 		}
-		d.setExplanation("收款-"+ corpName);
+		d.setExplanation(dModule.getAbstractStatic()+"-"+ corpName);
 		d.setAccount_number(dModule.getProjectCode());
 		d.setDebitamount(Account);
 		entriesList.add(d);
@@ -1460,7 +1473,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 		{
 			throw new SecurityException("获取销售订单科目号失败");
 		}
-		c.setExplanation("收款-"+ corpName);
+		c.setExplanation(cModule.getAbstractStatic()+"-"+ corpName);
 		c.setAccount_number(cModule.getProjectCode());
 		c.setCreditamount(Account);
 
@@ -1499,7 +1512,8 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 		try {
 			String token = this.getAccountGroupRequest();
 			String saveUrl="http://api.kingdee.com/jdy/gl/voucher_save?access_token="+token;
-			JdyTool.testSaveVoucher(saveUrl,accountId,groupName,jdYitems);
+			JdyTool.voucher voucher = JdyTool.testSaveVoucher(token, saveUrl, accountId, groupName, jdYitems);
+			return voucher;
 		} catch (Exception exception) {
 			throw new SecurityException("操作失败,保存金蝶错误:"+exception.getMessage());
 		}
@@ -1508,7 +1522,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 
 
 	//金蝶保存凭证测试-销售生成凭证
-	public void toSaleJinDie(Items items,String accountId,String groupName,JdTenant jdTenant) {
+	public JdyTool.voucher toSaleJinDie(Items items,String accountId,String groupName,JdTenant jdTenant) {
 		//不是某一家 直接返回
 		/*if (!AuthUtil.getTenantId().equals("681169")) {
 			return;
@@ -1575,7 +1589,8 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 		try {
 			String token = this.getAccountGroupRequest();
 			String saveUrl="http://api.kingdee.com/jdy/gl/voucher_save?access_token="+token;
-			JdyTool.testSaveVoucher(saveUrl,accountId,groupName,jdYitems);
+			JdyTool.voucher voucher = JdyTool.testSaveVoucher(token, saveUrl, accountId, groupName, jdYitems);
+			return voucher;
 		} catch (Exception exception) {
 			throw new SecurityException("操作失败,保存金蝶错误:"+exception.getMessage());
 		}
@@ -1608,7 +1623,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 	}
 
 	//采购付款生成凭证
-	public void testPurchaseSaveVoucher(String accountName,String createUser,String corpName,String account)throws Exception
+	public void testPurchaseSaveVoucher(Settlement settlement,String accountName,String createUser,String corpName,String account)throws Exception
 	{
 
 		//非达沃特用户直接返回
@@ -1663,13 +1678,21 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 			return;
 		}
 		//2.销售收款-保存凭证
-		toPurchaseJinDie(account,createUser,corpName,jdTenant.getAccountId(),group.getGroupName(),jdTenant);
+		JdyTool.voucher voucher = toPurchaseJinDie(settlement.getSettlementDate(),account, createUser, corpName, jdTenant.getAccountId(), group.getGroupName(), jdTenant);
+		if(voucher == null)
+		{
+			throw new SecurityException("获取凭证信息失败");
+		}
+		//绑定凭证id和凭证号
+		settlement.setVoucherId(voucher.getId());
+		settlement.setVoucherNo(voucher.getVoucherno());
+
 	}
 
 
 
     //销售收款生成账单
-	public void testSaleCollectionSaveVoucher(String accountName,String corpName,String account)throws Exception
+	public void testSaleCollectionSaveVoucher(Settlement settlement,String accountName,String corpName,String account)throws Exception
 	{
 		//非达沃特用户直接返回
 		if(!AuthUtil.getTenantId().equals("681169"))
@@ -1722,7 +1745,15 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 			return;
 		}
 		//2.销售收款-保存凭证
-        toSaleCollectionJinDie(account,corpName,jdTenant.getAccountId(),group.getGroupName(),jdTenant);
+		JdyTool.voucher voucher = toSaleCollectionJinDie(settlement.getSettlementDate(),account, corpName, jdTenant.getAccountId(), group.getGroupName(), jdTenant);
+        if(voucher == null)
+        {
+          throw new SecurityException("获取凭证信息失败");
+		}
+        //绑定凭证id和凭证号
+		settlement.setVoucherId(voucher.getId());
+		settlement.setVoucherNo(voucher.getVoucherno());
+
 	}
 
 
@@ -1775,7 +1806,8 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 			return;
 		}
 		//2.销售保存凭证
-		toSaleJinDie(items,jdTenant.getAccountId(),group.getGroupName(),jdTenant);
+		JdyTool.voucher voucher = toSaleJinDie(items, jdTenant.getAccountId(), group.getGroupName(), jdTenant);
+
 	}
 
 	//测试获取AccountGroupRequest

+ 57 - 3
blade-service/trade-finance/src/main/java/org/springblade/finance/tool/JdyTool.java

@@ -1,6 +1,7 @@
 package org.springblade.finance.tool;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.aliyun.tea.NameInMap;
 import com.aliyun.tea.TeaConverter;
@@ -19,6 +20,8 @@ import org.springblade.finance.vojo.JDYitems;
 import java.io.Serializable;
 import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
+
 /**
  * 金蝶测试demo, 如果需要正式的,则需要替换
  * */
@@ -61,7 +64,7 @@ public class JdyTool
 
 		//用官方测试账号, 请求业务列表保存接口 试试
 		String saveUrl="http://api.kingdee.com/jdy/gl/voucher_save?access_token="+accessToken;
-		testSaveVoucher(saveUrl, accountId, groupName,jdYitems);
+		testSaveVoucher(accessToken,saveUrl, accountId, groupName,jdYitems);
 
 	}
 
@@ -84,7 +87,7 @@ public class JdyTool
 	}
 
 	//测试-调用金蝶云官方账号的保存
-	public static String testSaveVoucher (String url, String accountId, String groupName, List<JDYitems> jdYitems) throws Exception
+	public static voucher testSaveVoucher (String token,String url, String accountId, String groupName, List<JDYitems> jdYitems) throws Exception
 	{
 		HttpRequest httpRequest = new HttpRequest(url,"POST");
 		httpRequest.header("accountId",accountId);
@@ -126,12 +129,31 @@ public class JdyTool
 		/*log.info("请求返回体:"+saveResponse.toString());*/
 		//获取主表id
 		List<String> successPkIds = saveResponse.getData().get(0).getSuccessPkIds();
+
 		/*System.out.println("请求body===="+httpRequest.body().toString());
 		JSONObject result = JSONObject.parseObject(httpRequest.body());
 		return result.toJSONString();*/
-		return successPkIds.toString().replace("[","").replace("]","");
+
+		//获取对象
+		String id = successPkIds.toString().replace("[", "").replace("]", "");
+        String getUrl= "http://api.kingdee.com/jdy/gl/voucher_detail?access_token="+token;
+        HttpRequest httpRequest2 = new HttpRequest(getUrl,"POST");
+		httpRequest2.header("accountId",accountId);
+		httpRequest2.header("charset","utf-8");
+		httpRequest2.header("groupName",groupName);
+		httpRequest2.header("Content-Type","application/json");
+
+		JSONObject data2=new JSONObject();
+		data2.put("id",id);
+		httpRequest2.send(data2.toJSONString());
+		String body2 = httpRequest2.body().toString();
+		log.info("请求结果:"+body2);
+		getVoucherResponse  getVoucherResponse = JSONObject.parseObject(body2, getVoucherResponse.class);
+        return getVoucherResponse.getData();
 	}
 
+
+
     @Data
 	public static class JDYSaveResponse implements Serializable
 	{
@@ -185,7 +207,39 @@ public class JdyTool
 		private String groupName;
 	}
 
+	@Data
+	public static class supplier implements Serializable
+	{
+		private String id;
+		private String number;
+		private String name;
+		private String groupId;
+		private String groupName;
+		private String groupNumber;
+		private String rate;
+		private String bank;
+		private String bankaccount;
+		private String accountopenaddr;
+
+	}
+
+	@Data
+	public static class getVoucherResponse implements Serializable
+	{
+		private voucher data;
+		private String  success;
+	}
 
+	//部分凭证对象属性
+	@Data
+	public static class  voucher implements Serializable
+	{
+		private String date;
+		private String id;
+		private String period;
+		private String number;
+		private String voucherno;
+	}