|
|
@@ -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();
|
|
|
- }
|
|
|
+ }*/
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
|
|
|
}
|