Browse Source

提交保存

ioioio 3 years ago
parent
commit
5f92058005

+ 9 - 6
blade-service/blade-client/src/main/java/org/springblade/client/lock/controller/LockController.java

@@ -152,7 +152,7 @@ public class LockController extends BladeController {
 		{
 			return R.success("目前订单可以编辑");
 		}
-
+		SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd");
 		//如果存在配置,则查看是否需要已经上锁,如果上锁,且上锁人不是自己,直接返回false。如果是自己直接返回true
 		LambdaQueryWrapper<Lock> lockLambdaQueryWrapper=new LambdaQueryWrapper<>();
 		lockLambdaQueryWrapper
@@ -170,19 +170,22 @@ public class LockController extends BladeController {
 		//有锁 不是自己
         else if( lock.getUserId().longValue()!=userId.longValue())
         {
-			SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd");
-
 			return R.fail("账号:"+lock.getRealName()+"于"+simpleDateFormat.format(lock.getLockTime())+"正在编辑请稍后再试!");
 		}
-        //有锁 是自己
+        //有锁 是自己 是自己的机器
 		else if( lock.getUserId().longValue()==userId.longValue() && lock.getLockNo().equals(no+AuthUtil.getUserName()))
 		{
 			return R.success("目前订单可以编辑");
 		}
-		//其他潜在情况,一律false
+		//有锁 是自己 不是当前机器
+		else if(lock.getUserId().longValue()==userId.longValue() && !lock.getLockNo().equals(no+AuthUtil.getUserName()))
+		{
+			return R.fail("账号:"+lock.getRealName()+"于"+simpleDateFormat.format(lock.getLockTime())+"正在编辑请稍后再试!");
+		}
+		//其他情况 视为 不可编辑
 		else
 		{
-			return R.fail("目前订单暂时无法编辑");
+			return R.fail("账号:"+lock.getRealName()+"于"+simpleDateFormat.format(lock.getLockTime())+"正在编辑请稍后再试!");
 		}
 	}
 

+ 26 - 6
blade-service/trade-finance/src/main/java/org/springblade/finance/controller/SettlementController.java

@@ -401,13 +401,33 @@ public class SettlementController extends BladeController {
 		return R.data(accountList);
 	}
 
-	//获取当前租户对应的供应商列表
-/*	@GetMapping("getSupplierList") throws Exception
-	public R<List<?>>  getSupplierList() throws Exception
+	//获取当前租户账套对应的供应商列表
+	@GetMapping("getSupplierList")
+	public R<List<JdyTool.Supplier>>  getSupplierList(@RequestParam(value = "accountName",required = true)String accountName,
+													  @RequestParam(value = "search",required = false)String search) throws Exception
 	{
-		List<JdyTool.AccountGroup> accountList = settlementService.getSupplierList();
-		return R.data(accountList);
-	}*/
+		List<JdyTool.Supplier> supplierList = settlementService.getSupplierList(accountName, search);
+		return R.data(supplierList);
+	}
+
+	//获取当前租户账套对应的客户列表
+	@GetMapping("getCustomerList")
+	public R<List<JdyTool.Customer>> getCustomerList (@RequestParam(value = "accountName",required = true)String accountName,
+									   @RequestParam(value = "search",required = false)String search) throws Exception
+	{
+		List<JdyTool.Customer> customersList = settlementService.getCustomerList(accountName, search);
+		return R.data(customersList);
+	}
+
+	//获取当前租户账套对应的职员列表
+	@GetMapping("getEmployeeList")
+	public R<List<JdyTool.Employee>> getEmployeeList(@RequestParam(value = "accountName",required = true)String accountName,
+	                                              @RequestParam(value = "search",required = false)String search) throws Exception
+	{
+		List<JdyTool.Employee> employeeList = settlementService.getEmployeeList(accountName, search);
+		return R.data(employeeList);
+	}
+
 
 
 

+ 5 - 1
blade-service/trade-finance/src/main/java/org/springblade/finance/service/ISettlementService.java

@@ -73,6 +73,10 @@ public interface ISettlementService extends IService<Settlement> {
 
 	List<JdyTool.AccountGroup> getAccountList() throws Exception;
 
-	List<JdyTool.supplier> getSupplierList() throws Exception;
+	List<JdyTool.Supplier> getSupplierList(String accountName, String search) throws Exception;
+
+	List<JdyTool.Customer> getCustomerList(String accountName, String search) throws Exception;
+
+	List<JdyTool.Employee> getEmployeeList(String accountName, String search) throws Exception;
 
 }

+ 148 - 14
blade-service/trade-finance/src/main/java/org/springblade/finance/service/impl/SettlementServiceImpl.java

@@ -17,21 +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.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.github.kevinsawicki.http.HttpRequest;
+import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
 
-import com.jdy.v7sdk.models.AccountGroupRequest;
 import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.ibatis.logging.Log;
+import org.apache.ibatis.logging.LogFactory;
 import org.springblade.check.dto.AuditProecessDTO;
 import org.springblade.check.entity.AuditPathsActs;
 import org.springblade.check.entity.AuditPathsLevels;
@@ -39,11 +35,8 @@ import org.springblade.check.feign.ICheckClient;
 import org.springblade.client.entity.CorpsDesc;
 import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
-import org.springblade.deliver.goods.entity.Delivery;
 import org.springblade.deliver.goods.entity.DeliveryFees;
-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.InvoiceItem;
 import org.springblade.finance.entity.JdCorps;
@@ -63,11 +56,9 @@ import org.springblade.client.feign.ISerialClient;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.mocha.entity.BusinessOverpaymentItem;
 import org.springblade.mocha.entity.Overpayment;
-import org.springblade.mocha.enums.OverpaymentEnum;
 import org.springblade.mocha.feign.IBusinessOverpaymentClient;
 import org.springblade.purchase.sales.entity.Order;
 import org.springblade.purchase.sales.entity.OrderFees;
-import org.springblade.purchase.sales.entity.OrderItems;
 import org.springblade.purchase.sales.feign.IOrderDescClient;
 import org.springblade.purchase.sales.feign.IOrderFeesClient;
 import org.springblade.system.user.entity.User;
@@ -136,6 +127,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 	private static final String METHOD_POST = "POST";
 
 
+
 	@Override
 	public IPage<SettlementVO> selectSettlementPage(IPage<SettlementVO> page, SettlementVO settlement) {
 		return page.setRecords(baseMapper.selectSettlementPage(page, settlement));
@@ -1310,13 +1302,155 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 	}
 
 	@Override
-	public List<JdyTool.supplier> getSupplierList() throws Exception
+	public List<JdyTool.Supplier> getSupplierList(String accountName, String search) throws Exception
 	{
+		//检测此租户的账套是否配置信息
+		LambdaQueryWrapper<JdTenant> jdTenantLambdaQueryWrapper=new LambdaQueryWrapper<>();
+		jdTenantLambdaQueryWrapper
+			.eq(JdTenant::getIsEnable,1)
+			.eq(JdTenant::getTenantId,AuthUtil.getTenantId())
+			.eq(JdTenant::getAccountName,accountName);
+		JdTenant tenant = this.getOne(jdTenantLambdaQueryWrapper, false);
+		if(tenant==null)
+		{
+			throw new SecurityException("未检测到此租户的账套配置信息");
+		}
 		//获取token
 		String token = this.getAccountGroupRequest();
-		return null;
+		//请求获取账套的groupName,注意:groupName不可以写死,groupName可能会变
+		String getAccountUrl="https://api.kingdee.com/jdy/sys/accountGroup?access_token="+token;
+		Map<String, String> urlParams=new HashMap<>();
+		/*urlParams.put("clientId",jdTenant.getClientId());
+		urlParams.put("client_secret",jdTenant.getClientSecret());
+		urlParams.put("username",jdTenant.getUsername());
+		urlParams.put("password",jdTenant.getPassword());*/
+		String result = this.doPost(getAccountUrl, urlParams);
+		JdyTool.getAccountGroup getAccountGroup = JSONObject.parseObject(result, JdyTool.getAccountGroup.class);
+
+		List<JdyTool.AccountGroup> list=new ArrayList<>();
+		if(!CollectionUtils.isNotEmpty(getAccountGroup.getData()))
+		{
+			throw new SecurityException("操作失败,暂无账套信息");
+		}
+		//获取此账号下,全部账套
+		getAccountGroup.getData().forEach(e->{
+			list.addAll(e.getAccountGroups());
+		});
+		//匹配账套
+		List<JdyTool.AccountGroup> groupList = list.stream().filter(e -> e.getAccountName().equals(accountName)).collect(Collectors.toList());
+		if(!CollectionUtils.isNotEmpty(groupList))
+		{
+			throw new SecurityException("未找到: "+accountName+" 的套账信息");
+		}
+		JdyTool.AccountGroup group = groupList.get(0);
+		String accountId = group.getAccountId();
+		String groupName = group.getGroupName();
+		List<JdyTool.Supplier> suppliers = JdyTool.testGetSupplierList(token, accountId, groupName, search);
+		return suppliers;
+	}
+
+	@Override
+	public List<JdyTool.Customer> getCustomerList(String accountName, String search) throws Exception
+	{
+		//检测此租户的账套是否配置信息
+		LambdaQueryWrapper<JdTenant> jdTenantLambdaQueryWrapper=new LambdaQueryWrapper<>();
+		jdTenantLambdaQueryWrapper
+			.eq(JdTenant::getIsEnable,1)
+			.eq(JdTenant::getTenantId,AuthUtil.getTenantId())
+			.eq(JdTenant::getAccountName,accountName);
+		JdTenant tenant = this.getOne(jdTenantLambdaQueryWrapper, false);
+		if(tenant==null)
+		{
+			throw new SecurityException("未检测到此租户的账套配置信息");
+		}
+		//获取token
+		String token = this.getAccountGroupRequest();
+		//请求获取账套的groupName,注意:groupName不可以写死,groupName可能会变
+		String getAccountUrl="https://api.kingdee.com/jdy/sys/accountGroup?access_token="+token;
+		Map<String, String> urlParams=new HashMap<>();
+		/*urlParams.put("clientId",jdTenant.getClientId());
+		urlParams.put("client_secret",jdTenant.getClientSecret());
+		urlParams.put("username",jdTenant.getUsername());
+		urlParams.put("password",jdTenant.getPassword());*/
+		String result = this.doPost(getAccountUrl, urlParams);
+		JdyTool.getAccountGroup getAccountGroup = JSONObject.parseObject(result, JdyTool.getAccountGroup.class);
+
+		List<JdyTool.AccountGroup> list=new ArrayList<>();
+		if(!CollectionUtils.isNotEmpty(getAccountGroup.getData()))
+		{
+			throw new SecurityException("操作失败,暂无账套信息");
+		}
+		//获取此账号下,全部账套
+		getAccountGroup.getData().forEach(e->{
+			list.addAll(e.getAccountGroups());
+		});
+		//匹配账套
+		List<JdyTool.AccountGroup> groupList = list.stream().filter(e -> e.getAccountName().equals(accountName)).collect(Collectors.toList());
+		if(!CollectionUtils.isNotEmpty(groupList))
+		{
+			throw new SecurityException("未找到: "+accountName+" 的套账信息");
+		}
+		JdyTool.AccountGroup group = groupList.get(0);
+		String accountId = group.getAccountId();
+		String groupName = group.getGroupName();
+		List<JdyTool.Customer> customers = JdyTool.testGetCustomerList(token, accountId, groupName, search);
+		return customers;
 	}
 
+	@Override
+	public List<JdyTool.Employee> getEmployeeList(String accountName, String search) throws Exception
+	{
+		//检测此租户的账套是否配置信息
+		LambdaQueryWrapper<JdTenant> jdTenantLambdaQueryWrapper=new LambdaQueryWrapper<>();
+		jdTenantLambdaQueryWrapper
+			.eq(JdTenant::getIsEnable,1)
+			.eq(JdTenant::getTenantId,AuthUtil.getTenantId())
+			.eq(JdTenant::getAccountName,accountName);
+		JdTenant tenant = this.getOne(jdTenantLambdaQueryWrapper, false);
+		if(tenant==null)
+		{
+			throw new SecurityException("未检测到此租户的账套配置信息");
+		}
+		//获取token
+		String token = this.getAccountGroupRequest();
+		//请求获取账套的groupName,注意:groupName不可以写死,groupName可能会变
+		String getAccountUrl="https://api.kingdee.com/jdy/sys/accountGroup?access_token="+token;
+		Map<String, String> urlParams=new HashMap<>();
+		/*urlParams.put("clientId",jdTenant.getClientId());
+		urlParams.put("client_secret",jdTenant.getClientSecret());
+		urlParams.put("username",jdTenant.getUsername());
+		urlParams.put("password",jdTenant.getPassword());*/
+		String result = this.doPost(getAccountUrl, urlParams);
+		JdyTool.getAccountGroup getAccountGroup = JSONObject.parseObject(result, JdyTool.getAccountGroup.class);
+
+		List<JdyTool.AccountGroup> list=new ArrayList<>();
+		if(!CollectionUtils.isNotEmpty(getAccountGroup.getData()))
+		{
+			throw new SecurityException("操作失败,暂无账套信息");
+		}
+		//获取此账号下,全部账套
+		getAccountGroup.getData().forEach(e->{
+			list.addAll(e.getAccountGroups());
+		});
+		//匹配账套
+		List<JdyTool.AccountGroup> groupList = list.stream().filter(e -> e.getAccountName().equals(accountName)).collect(Collectors.toList());
+		if(!CollectionUtils.isNotEmpty(groupList))
+		{
+			throw new SecurityException("未找到: "+accountName+" 的套账信息");
+		}
+		JdyTool.AccountGroup group = groupList.get(0);
+		String accountId = group.getAccountId();
+		String groupName = group.getGroupName();
+		List<JdyTool.Employee> employees = JdyTool.testGetEmployeeList(token, accountId, groupName, search);
+		return employees;
+	}
+
+	public JdTenant getOne(LambdaQueryWrapper<JdTenant> queryWrapper, boolean throwEx)
+	{
+		return throwEx ? this.jdTenantMapper.selectOne(queryWrapper) : SqlHelper.getObject(null, this.jdTenantMapper.selectList(queryWrapper));
+	}
+
+
 	//金蝶保存凭证测试-采购付款生成凭证
 	public JdyTool.voucher toPurchaseJinDie(Date date,String Account,String createUser,String corpName,String accountId,String groupName,JdTenant jdTenant)
 	{

+ 141 - 2
blade-service/trade-finance/src/main/java/org/springblade/finance/tool/JdyTool.java

@@ -7,6 +7,8 @@ import com.aliyun.tea.NameInMap;
 import com.aliyun.tea.TeaConverter;
 import com.aliyun.tea.TeaPair;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.jdy.v7sdk.business.models.SaveResponse;
 import com.jdy.v7sdk.business.models.errorInfo;
 import com.jdy.v7sdk.models.AccountGroupRequest;
@@ -86,6 +88,76 @@ public class JdyTool
 		return result.toJSONString();
 	}
 
+	public static List<Employee> testGetEmployeeList(String token,String accountId,String groupName,String search)
+	{
+		String url="http://api.kingdee.com/jdy/basedata/emp_list?access_token="+token;
+		HttpRequest httpRequest = new HttpRequest(url,"POST");
+		httpRequest.header("accountId",accountId);
+		httpRequest.header("groupName",groupName);
+		httpRequest.header("Content-Type","application/json");
+		JSONObject data = new JSONObject();
+		if(StringUtils.isNotBlank(search))
+		{
+			data.put("search",search);
+		}
+		httpRequest.send(data.toJSONString());
+		String body = httpRequest.body().toString();
+		log.info("请求结果:"+body);
+		//获取返回对象
+		getEmployeeResponse  employeeResponse = JSONObject.parseObject(body, getEmployeeResponse.class);
+		log.info("请求结果结果:"+employeeResponse.getSuccess());
+		List<Employee> list = employeeResponse.getData().rows;
+		return list;
+	}
+
+
+	public static List<Customer> testGetCustomerList(String token,String accountId,String groupName,String search)
+	{
+		String url="http://api.kingdee.com/jdy/basedata/customer_list?access_token="+token;
+		HttpRequest httpRequest = new HttpRequest(url,"POST");
+		httpRequest.header("accountId",accountId);
+		httpRequest.header("groupName",groupName);
+		httpRequest.header("Content-Type","application/json");
+		JSONObject data = new JSONObject();
+		if(StringUtils.isNotBlank(search))
+		{
+			data.put("search",search);
+		}
+		httpRequest.send(data.toJSONString());
+		String body = httpRequest.body().toString();
+		log.info("请求结果:"+body);
+		//获取返回对象
+		getCustomerResponse  customerResponse = JSONObject.parseObject(body, getCustomerResponse.class);
+		log.info("请求结果结果:"+customerResponse.getSuccess());
+		List<Customer> list = customerResponse.getData().rows;
+		return list;
+	}
+
+
+
+	//测试-调用供应商列表
+	public static List<Supplier> testGetSupplierList(String token,String accountId,String groupName,String search)
+	{
+		String url="http://api.kingdee.com/jdy/basedata/supplier_list?access_token="+token;
+		HttpRequest httpRequest = new HttpRequest(url,"POST");
+		httpRequest.header("accountId",accountId);
+		httpRequest.header("groupName",groupName);
+		httpRequest.header("Content-Type","application/json");
+		JSONObject data = new JSONObject();
+		if(StringUtils.isNotBlank(search))
+		{
+			data.put("search",search);
+		}
+		httpRequest.send(data.toJSONString());
+		String body = httpRequest.body().toString();
+		log.info("请求结果:"+body);
+		//获取返回对象
+		getSupplierResponse  saveResponse = JSONObject.parseObject(body, getSupplierResponse.class);
+		log.info("请求结果结果:"+saveResponse.getSuccess());
+		List<Supplier> list = saveResponse.getData().rows;
+		return list;
+	}
+
 	//测试-调用金蝶云官方账号的保存
 	public static voucher testSaveVoucher (String token,String url, String accountId, String groupName, List<JDYitems> jdYitems) throws Exception
 	{
@@ -207,7 +279,7 @@ public class JdyTool
 		private String groupName;
 	}
 
-	@Data
+/*	@Data
 	public static class supplier implements Serializable
 	{
 		private String id;
@@ -221,7 +293,7 @@ public class JdyTool
 		private String bankaccount;
 		private String accountopenaddr;
 
-	}
+	}*/
 
 	@Data
 	public static class getVoucherResponse implements Serializable
@@ -242,6 +314,73 @@ public class JdyTool
 	}
 
 
+	//公共分页
+	@Data
+	public static class page<T> implements Serializable
+	{
+		private String totalpage;
+		private String curpagesize;
+		private String count;
+		private String pagesize;
+		private String page;
+		private List<T> rows;
+	}
+
+	@Data
+	public static class getSupplierResponse implements Serializable
+	{
+		private page<Supplier> data;
+		private String  success;
+	}
+
+	@Data
+	public static class getCustomerResponse implements Serializable
+	{
+		private page<Customer> data;
+		private String  success;
+	}
+
+	@Data
+	public static class getEmployeeResponse implements Serializable
+	{
+		private page<Employee> data;
+		private String  success;
+	}
+
+
+
+	@Data
+	public static class Supplier implements Serializable
+	{
+		 private String number;
+		 private String enable;
+		 private String name;
+		 private String remark;
+		 private String id;
+	}
+
+	@Data
+	public static class Customer implements Serializable
+	{
+		private String number;
+		private String enable;
+		private String name;
+		private String remark;
+		private String id;
+	}
+
+	@Data
+	public static class Employee implements Serializable
+	{
+		private String number;
+		private String enable;
+		private String name;
+		private String remark;
+		private String id;
+	}
+
+
+
 
 
 }