瀏覽代碼

提交保存

ioioio 3 年之前
父節點
當前提交
287df86b5b

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

@@ -20,6 +20,7 @@ public interface IOrderItemsClient {
 	String ACTUAL_QUANTITY = API_PREFIX + "actualQuantity";
 	String ACTUAL_WEIGHT = API_PREFIX + "actualWeight";
 	String RECEIVED = API_PREFIX + "/received";
+	String LIST_BY_ITEM_ID = API_PREFIX + "/listByItemId";
 
 
 	/**
@@ -39,7 +40,7 @@ public interface IOrderItemsClient {
 						   @RequestParam("actualWeight")BigDecimal actualWeight,
 						   @RequestParam("deliveryType")int deliveryType);
 
-    @GetMapping("/orderitems/listByItemId")
+    @GetMapping(LIST_BY_ITEM_ID)
 	R<List<OrderItems>> listByItemId(@RequestParam("itemId") Long itemId);
 
 }

+ 20 - 12
blade-service-api/trade-finance-api/src/main/java/org/springblade/finance/entity/JdTenant.java

@@ -35,23 +35,31 @@ public class JdTenant implements Serializable {
 	private static final long serialVersionUID = 1L;
 
 	private Long id;
-	/**
-	* 租户名称
-	*/
+
+		@ApiModelProperty(value = "租户id")
+		private String tenantId;
+		/**
+		* 租户名称
+		*/
 		@ApiModelProperty(value = "租户名称")
 		private String tenantName;
-	private String clientId;
-	private String clientSecret;
-	private String username;
-	private String password;
-	/**
-	* 0.未启动 1启动
-	*/
+		/**
+		* 0.未启动 1启动
+		*/
 		@ApiModelProperty(value = "0.未启动 1启动")
 		private Boolean isEnable;
 
-	@ApiModelProperty(value = "租户id")
-	private String tenantId;
+		private String accountId;
+		private String accountName;
+		private String groupName;
+
+		private String clientId;
+		private String clientSecret;
+		private String username;
+		private String password;
+
+
+
 
 
 }

+ 1 - 8
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/controller/OrderItemsController.java

@@ -174,13 +174,6 @@ public class OrderItemsController extends BladeController {
 	}
 
 
-	@GetMapping("listByItemId")
-	public R<List<OrderItems>> listByItemId(@ApiParam(value = "主键集合", required = true) @RequestParam Long itemId)
-	{
-		LambdaQueryWrapper<OrderItems> orderItemsLambdaQueryWrapper=new LambdaQueryWrapper<>();
-		orderItemsLambdaQueryWrapper.eq(OrderItems::getItemId,itemId).eq(OrderItems::getIsDeleted,0);
-		List<OrderItems> list = orderItemsService.list(orderItemsLambdaQueryWrapper);
-		return R.data(list);
-	}
+
 
 }

+ 6 - 1
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/feign/OrderItemsClient.java

@@ -1,5 +1,6 @@
 package org.springblade.purchase.sales.feign;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springblade.core.tenant.annotation.NonDS;
@@ -93,7 +94,11 @@ public class OrderItemsClient implements IOrderItemsClient{
 	}
 
 	@Override
+	@GetMapping(LIST_BY_ITEM_ID)
 	public R<List<OrderItems>> listByItemId(Long itemId) {
-		return null;
+		LambdaQueryWrapper<OrderItems> orderItemsLambdaQueryWrapper=new LambdaQueryWrapper<>();
+		orderItemsLambdaQueryWrapper.eq(OrderItems::getItemId,itemId).eq(OrderItems::getIsDeleted,0);
+		List<OrderItems> list = orderItemsService.list(orderItemsLambdaQueryWrapper);
+		return R.data(list);
 	}
 }

+ 83 - 22
blade-service/trade-finance/src/main/java/org/springblade/finance/service/impl/SettlementServiceImpl.java

@@ -17,13 +17,17 @@
 package org.springblade.finance.service.impl;
 
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.TypeReference;
 import com.aliyun.tea.TeaConverter;
 import com.aliyun.tea.TeaPair;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import com.jdy.v7sdk.models.AccountGroupRequest;
+import lombok.Data;
 import org.springblade.check.dto.AuditProecessDTO;
 import org.springblade.check.entity.AuditPathsActs;
 import org.springblade.check.entity.AuditPathsLevels;
@@ -37,13 +41,11 @@ import org.springblade.deliver.goods.entity.DeliveryItems;
 import org.springblade.deliver.goods.feign.IDeliveryClient;
 import org.springblade.finance.TokenRequestQuery;
 import org.springblade.finance.dto.SettlementDTO;
+import org.springblade.finance.entity.JdModule;
 import org.springblade.finance.entity.JdTenant;
 import org.springblade.finance.enums.SettlementEnum;
-import org.springblade.finance.mapper.JdTenantMapper;
+import org.springblade.finance.mapper.*;
 import org.springblade.finance.vojo.*;
-import org.springblade.finance.mapper.AccMapper;
-import org.springblade.finance.mapper.ItemsMapper;
-import org.springblade.finance.mapper.SettlementMapper;
 import org.springblade.finance.service.ISettlementService;
 import org.springblade.finance.tool.JdyTool;
 import org.springblade.finance.vo.SettlementVO;
@@ -68,6 +70,7 @@ import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.io.Serializable;
 import java.math.BigDecimal;
 import java.math.BigInteger;
 import java.text.SimpleDateFormat;
@@ -105,6 +108,8 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 
 	private JdTenantMapper jdTenantMapper;
 
+	private JdModuleMapper moduleMapper;
+
 
 	@Override
 	public IPage<SettlementVO> selectSettlementPage(IPage<SettlementVO> page, SettlementVO settlement) {
@@ -673,9 +678,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 			if (corpMessage.isSuccess() && corpMessage.getData() != null) {
 				e.setCorpName(corpMessage.getData().getCname());
 			}
-			//todo 金蝶测试-凭证保存
 
-			//toJinDie(e);
 
 		});
 		List<CorpsBank> corpsBanks = corpsDescClient.listBankByCorpId(settlement.getCorpId());
@@ -772,6 +775,19 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 	@Transactional
 	public void paymentApply(List<Items> itemsList, String billType) {
 		itemsList.forEach(e -> {
+            //产生凭证: 销售订单-生成账单
+			if(e.getSrcType()==1 && e.getItemType().equals("销售"))
+			{
+				try
+				{
+					String accountName="开发者测试账套";
+					this.testSaveVoucher(accountName,e);
+				}
+				catch (Exception exception)
+				{
+					throw new SecurityException("产生凭证失败:"+exception.getMessage());
+				}
+			}
 			if (e.getSrcType() == 2) {
 				OrderFees orderFees = orderFeesClient.getById(e.getSrcFeesId());
 				if (orderFees == null) {
@@ -952,7 +968,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 	}
 
 	//金蝶保存凭证测试
-	public void toJinDie(Items items) {
+	public void toJinDie(Items items,String accountId,String groupName,JdTenant jdTenant) {
 		//不是某一家 直接返回
 		/*if (!AuthUtil.getTenantId().equals("681169")) {
 			return;
@@ -965,22 +981,49 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 		//财务借方
 		JDYentries d = new JDYentries();
 		d.setDc("1");
+
+		LambdaQueryWrapper<JdModule> dLambdaQueryWrapper=new LambdaQueryWrapper<>();
+		dLambdaQueryWrapper
+			.eq(JdModule::getAccountId,accountId)
+			.eq(JdModule::getModule,"销售订单")
+			.eq(JdModule::getDc,"1")
+			.eq(JdModule::getTenantId,AuthUtil.getTenantId());
+		JdModule dModule = moduleMapper.selectOne(dLambdaQueryWrapper);
+		if(dModule==null)
+		{
+			throw new SecurityException("获取销售订单科目号失败");
+		}
+
 		d.setExplanation("采购订单合同号:" + items.getSrcOrderno() + ",申请货款");
-		d.setAccount_number("400101");
+		d.setAccount_number(dModule.getProjectCode());
 		d.setDebitamount(items.getAmount().toString());
 		entriesList.add(d);
 		//财务贷方
 		JDYentries c = new JDYentries();
 		c.setDc("-1");
+
+		LambdaQueryWrapper<JdModule> cLambdaQueryWrapper=new LambdaQueryWrapper<>();
+		cLambdaQueryWrapper
+			.eq(JdModule::getAccountId,accountId)
+			.eq(JdModule::getModule,"销售订单")
+			.eq(JdModule::getDc,"1")
+			.eq(JdModule::getTenantId,AuthUtil.getTenantId());
+		JdModule cModule = moduleMapper.selectOne(cLambdaQueryWrapper);
+		if(cModule==null)
+		{
+			throw new SecurityException("获取销售订单科目号失败");
+		}
 		c.setExplanation("客户资料:" + items.getCorpName());
-		c.setAccount_number("220202");
+		c.setAccount_number(cModule.getProjectCode());
 		c.setCreditamount(items.getAmount().toString());
 		entriesList.add(c);
 		//组装数据
 		item.setEntries(entriesList);
 		jdYitems.add(item);
 		try {
-			JdyTool.test(jdYitems);
+			AccountGroupRequest accountGroupRequest = this.getAccountGroupRequest();
+			String saveUrl="http://api.kingdee.com/jdy/gl/voucher_save?access_token="+accountGroupRequest.getAccessToken();
+			JdyTool.testSaveVoucher(saveUrl,accountId,groupName,jdYitems);
 		} catch (Exception exception) {
 			throw new SecurityException("操作失败,保存金蝶错误:"+exception.getMessage());
 		}
@@ -1013,22 +1056,25 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 	}
 
 
-	public void testSaveVoucher() throws Exception {
+	public void testSaveVoucher(String accountName,Items items) throws Exception {
 
 		//非达沃特用户直接返回
 		if(!AuthUtil.getTenantId().equals("681169"))
 		{
 			return;
 		}
-		//1.获取AccountGroupRequest
-		AccountGroupRequest accountGroupRequest = this.getAccountGroupRequest();
-		if(accountGroupRequest==null)
+		//1.获取套账信息
+		LambdaQueryWrapper<JdTenant> jdTenantLambdaQueryWrapper=new LambdaQueryWrapper<>();
+		jdTenantLambdaQueryWrapper
+			.eq(JdTenant::getTenantId,AuthUtil.getTenantId())
+			.eq(JdTenant::getAccountName,accountName);
+		JdTenant jdTenant = jdTenantMapper.selectOne(jdTenantLambdaQueryWrapper);
+		if(jdTenant==null)
 		{
-			throw new SecurityException("获取账套配置信息失败");
+			throw new SecurityException("未查询到套账信息");
 		}
-		//2.获取账套
-		Map<String, String> group = this.getGroup(accountGroupRequest, "金蝶开发者测试账套");
-
+		//2.保存套账
+		toJinDie(items,jdTenant.getAccountId(),jdTenant.getGroupName(),jdTenant);
 
 
 	}
@@ -1058,15 +1104,30 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 		return accessTokenObject;
 	}
 
-	//测试获取套账
+/*	//测试获取套账
 	public Map<String, String> getGroup (AccountGroupRequest accountGroupRequest,String accountName) throws Exception {
 		com.jdy.v7sdk.auth auth = new com.jdy.v7sdk.auth();
 		java.util.List<?> accountGroups = auth.getAccount(accountGroupRequest);
+		//获取第一个账号信息(默认第一个)
 		java.util.Map<String, Object> accountService = com.aliyun.teautil.Common.assertAsMap(accountGroups.get(0));
-		java.util.List<Object> groups = com.aliyun.teautil.Common.assertAsArray(accountService.get("accountGroups"));
-		java.util.Map<String, String> group = com.aliyun.teautil.Common.stringifyMapValue(com.aliyun.teautil.Common.assertAsMap(groups.get(1)));
+		//获取账号下所有套账信息
+		List<AccountGroupsDTO> list = (List<AccountGroupsDTO>)accountService.get("accountGroups");
+		String listTxt = JSONArray.toJSONString(list);
+		List<AccountGroupsDTO> entityList = JSONArray.parseArray(listTxt, AccountGroupsDTO.class);
+	*//*	ObjectMapper mapper = new ObjectMapper();
+		List<AccountGroupsDTO> list = (List<AccountGroupsDTO>)accountService.get("accountGroups");
+		List<AccountGroupsDTO> pojos =mapper.convertValue(list,new TypeReference<List<AccountGroupsDTO>>() { });*//*
+
+
+		List<AccountGroupsDTO> collect = list.stream().filter(e -> e.getAccountName().equals(accountName)).collect(Collectors.toList());
+
+
+		//java.util.Map<String, String> group = com.aliyun.teautil.Common.stringifyMapValue(com.aliyun.teautil.Common.assassertAsMap(groups.get(1)));
 		return new HashMap();
-	}
+	}*/
+
+
+
 
 
 }

+ 0 - 1
blade-service/trade-finance/src/main/java/org/springblade/finance/tool/JdyTool.java

@@ -38,7 +38,6 @@ public class JdyTool
 		//获取账套
 		java.util.List<?> accountGroups = auth.getAccount(accessTokenObject);
 		//账套可能有多条,这里示例默认取第一条。
-
 		java.util.Map<String, Object> accountService = com.aliyun.teautil.Common.assertAsMap(accountGroups.get(0));
 		java.util.List<Object> groups = com.aliyun.teautil.Common.assertAsArray(accountService.get("accountGroups"));
 		java.util.Map<String, String> group = com.aliyun.teautil.Common.stringifyMapValue(com.aliyun.teautil.Common.assertAsMap(groups.get(1)));