Browse Source

Merge remote-tracking branch 'origin/dev' into dev

lazhaoqian 3 years ago
parent
commit
2da8f3adcb

+ 5 - 1
blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/Message.java

@@ -16,11 +16,13 @@
  */
 package org.springblade.client.entity;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import java.time.LocalDateTime;
 import java.io.Serializable;
 import java.util.Date;
+import java.util.List;
 
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -112,7 +114,9 @@ public class Message implements Serializable {
 		private String pageStatus;
 
 		private String pageLabel;
-	;
+
+		@TableField(exist = false)
+	    private List<Long> userList;
 
 
 }

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

@@ -707,4 +707,15 @@ public class Order implements Serializable {
 	private BigDecimal thisUsedProfit;
 
 	private BigDecimal createProfit;
+
+
+	//请核标识  1采购 2销售
+	@TableField(exist = false)
+	private Integer checkFlag;
+	@TableField(exist = false)
+	private String url;
+	@TableField(exist = false)
+	private String pageStatus;
+	@TableField(exist = false)
+	private String pageLabel;
 }

+ 3 - 1
blade-service/blade-check/src/main/java/org/springblade/check/controller/AuditProecessController.java

@@ -227,11 +227,13 @@ public class AuditProecessController extends BladeController {
 		{
 			throw new SecurityException("审核失败,未填写审批类型");
 		}
+		//付费申请请核
         if(proecess.getCheckType().equals("ffsq"))
         {
 			auditProecessService.operationFinanceProcess(auditProecess);
 		}
-        else if(proecess.getCheckType().equals("xsqh"))
+        //采购 或者 销售 订单请核
+        else if(proecess.getCheckType().equals("xsqh")||proecess.getCheckType().equals("cgqh"))
         {
 			auditProecessService.orderCheckProcess(auditProecess);
 		}

+ 14 - 0
blade-service/blade-client/src/main/java/org/springblade/client/message/controller/MessageController.java

@@ -131,6 +131,20 @@ public class MessageController extends BladeController {
 	}
 
 	/**
+	 * 新增
+	 */
+	@PostMapping("/batchSave")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "批量发送消息", notes = "传入message")
+	public R batchSave(@Valid @RequestBody Message message)
+	{
+		messageService.batchSave(message);
+		return R.success("操作成功");
+	}
+
+
+
+	/**
 	 * 修改
 	 */
 	@PostMapping("/update")

+ 1 - 0
blade-service/blade-client/src/main/java/org/springblade/client/message/service/IMessageService.java

@@ -51,4 +51,5 @@ public interface IMessageService extends IService<Message> {
 
 	UnReadDTO getUserMessage(Long userId);
 
+	void batchSave(Message message);
 }

+ 30 - 2
blade-service/blade-client/src/main/java/org/springblade/client/message/service/impl/MessageServiceImpl.java

@@ -15,6 +15,7 @@
  *  Author: Chill 庄骞 (smallchill@163.com)
  */
 package org.springblade.client.message.service.impl;
+import com.alibaba.nacos.api.utils.StringUtils;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -149,8 +150,35 @@ public class MessageServiceImpl extends ServiceImpl<MessageMapper, Message> impl
      return dto;
 	}
 
-
-
+	@Override
+	@Transactional
+	public void batchSave(Message message)
+	{
+		List<Long> userList = message.getUserList();
+		if(CollectionUtils.isEmpty(userList))
+		{
+			throw new SecurityException("批量发送消息失败:获取到接收人信息");
+		}
+		userList.forEach(e->{
+
+			Message model=new Message();
+			if(model.getUserId()==null)
+			{
+				model.setUserId(AuthUtil.getUserId());
+			}
+			if(StringUtils.isBlank(model.getUserName()))
+			{
+				model.setUserName(AuthUtil.getUserName());
+			}
+			model.setTenantId(AuthUtil.getTenantId());
+			model.setCreateTime(new Date());
+			model.setToUserId(e);
+			model.setMessageType(1);
+			model.setMessageBody(message.getMessageBody());
+			model.setCreateUser(AuthUtil.getUserId());
+			baseMapper.insert(model);
+		});
+	}
 
 
 }

+ 50 - 2
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java

@@ -438,6 +438,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				.eq("corp_id",item.getCorpId()));
 				if (CollectionUtils.isNotEmpty(orderList)){
 					orderList.stream().forEach(items ->{
+						items.setAmount(items.getPurchaseAmount().multiply(items.getOrderQuantity()));
 						items.setPid(selectById.getId());
 						items.setId(null);
 						items.setCreateTime(new Date());
@@ -446,6 +447,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 						items.setUpdateUser(null);
 						orderItemsService.save(items);
 					});
+					//计算主表总金额
+					BigDecimal itemTotalAmount = orderList.stream().filter(e -> e.getAmount() != null).map(OrderItems::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+					selectById.setOrderAmount(itemTotalAmount);
+					baseMapper.updateById(selectById);
 				}
 			});
 		}
@@ -565,7 +570,27 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			throw new SecurityException("审批失败,未查到单据");
 		}
 		//判断是否有审批流,如果审批流已开启就进入审批流,否则直接走申请通过
-		AuditPathsActs pathsActs = iCheckClient.getActsByActId(3, "status");
+		Integer checkFlag = order.getCheckFlag();
+		AuditPathsActs pathsActs=null;
+		if(checkFlag==null)
+		{
+		   throw new SecurityException("请核失败:未配置请核标识");
+		}
+		//判断是采购审批 还是 销售审批
+		if(checkFlag==2)
+		{
+			 pathsActs = iCheckClient.getActsByActId(3, "status");
+		}
+		else if(checkFlag==1)
+		{
+			pathsActs = iCheckClient.getActsByActId(4, "status");
+		}
+		else
+		{
+			throw new SecurityException("请核失败:请核标识设置不正确");
+		}
+
+
 		//没开启审批流直接走 通过流程
 		if(pathsActs==null || pathsActs.getIsEnable()==2)
 		{
@@ -577,13 +602,36 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			baseMapper.updateById(salesOrder);
 
 			//获取审批级次
-			List<AuditPathsLevels> auditPathsLevels = iCheckClient.listLevelsByActId(3, "status");
+			List<AuditPathsLevels> auditPathsLevels=null;
+			if(checkFlag==2)
+			{
+				auditPathsLevels = iCheckClient.listLevelsByActId(3, "status");
+			}
+			else if(checkFlag==1)
+			{
+				auditPathsLevels = iCheckClient.listLevelsByActId(4, "status");
+			}
+
+
 			AuditProecessDTO auditProecessDTO=new AuditProecessDTO();
 			//追加跳转路由url
 		/*	auditProecessDTO.setUrl(settlement.getUrl());
 			auditProecessDTO.setPageStatus(settlement.getPageStatus());
 			auditProecessDTO.setPageLabel(settlement.getPageLabel());*/
 			//增加审批类型
+
+
+			//绑定审核类型
+			auditProecessDTO.setCheckType(order.getCheckType());
+			//追加跳转路由url
+			auditProecessDTO.setUrl(order.getUrl());
+			auditProecessDTO.setPageStatus(order.getPageStatus());
+			auditProecessDTO.setPageLabel(order.getPageLabel());
+			//增加审批类型
+			auditProecessDTO.setProcessType("付费审批");
+
+
+
 			auditProecessDTO.setCheckType(order.getCheckType());
 			auditProecessDTO.setProcessType("付费审批");
 			auditProecessDTO.setPathsLevelsList(auditPathsLevels);

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

@@ -660,7 +660,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 		List<Items> items = itemsMapper.selectList(new LambdaQueryWrapper<Items>().eq(Items::getPid, settlement.getId()));
 
 		//判断是否有审批流,如果审批流已开启就进入审批流,否则直接走申请通过
-		AuditPathsActs pathsActs = iCheckClient.getActsByActId(1, "check_status");
+		AuditPathsActs pathsActs=iCheckClient.getActsByActId(1, "check_status");
 		//没开启审批流直接走 通过流程
 		if (pathsActs == null || pathsActs.getIsEnable() == 2) {
 			this.passCheck(selectOne.getId());
@@ -883,9 +883,9 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 	//金蝶保存凭证测试
 	public void toJinDie(Items items) {
 		//不是某一家 直接返回
-		if (!AuthUtil.getTenantId().equals("xxxx")) {
+		/*if (!AuthUtil.getTenantId().equals("681169")) {
 			return;
-		}
+		}*/
 		JDYitems item = new JDYitems();
 		item.setDate(new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
 		List<JDYentries> entriesList = new ArrayList<>();
@@ -911,7 +911,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 		try {
 			JdyTool.test(jdYitems);
 		} catch (Exception exception) {
-			throw new SecurityException("操作失败,保存金蝶错误");
+			throw new SecurityException("操作失败,保存金蝶错误:"+exception.getMessage());
 		}
 
 	}

+ 40 - 6
blade-service/trade-finance/src/main/java/org/springblade/finance/tool/JdyTool.java

@@ -1,8 +1,11 @@
 package org.springblade.finance.tool;
 
 import com.alibaba.fastjson.JSONObject;
+import com.aliyun.tea.NameInMap;
 import com.aliyun.tea.TeaConverter;
 import com.aliyun.tea.TeaPair;
+import com.jdy.v7sdk.business.models.SaveResponse;
+import com.jdy.v7sdk.business.models.errorInfo;
 import com.jdy.v7sdk.models.AccountGroupRequest;
 import com.github.kevinsawicki.http.HttpRequest;
 import lombok.Data;
@@ -10,8 +13,12 @@ import org.apache.poi.ss.formula.functions.T;
 import org.springblade.finance.TokenRequestQuery;
 import org.springblade.finance.vojo.JDYitems;
 
+import java.io.Serializable;
+import java.util.HashMap;
 import java.util.List;
-
+/**
+ * 金蝶测试demo, 如果需要正式的,则需要替换
+ * */
 public class JdyTool
 {
 
@@ -42,7 +49,7 @@ public class JdyTool
 		String groupName = "ns-v7g6";//group.get("groupName");
 		String accessToken = accessTokenObject.accessToken;
 
-        //金蝶云-星辰 官网API地址: https://open.jdy.com/#/files/api/detail?index=2&categrayId=1f51c576013945e2af68ef15d4245a48&id=525e704824d24b178ab466530456c037
+		//金蝶云-星辰 官网API地址: https://open.jdy.com/#/files/api/detail?index=2&categrayId=1f51c576013945e2af68ef15d4245a48&id=525e704824d24b178ab466530456c037
 
 		//用官方测试账号, 请求业务列表接口 试试
 		//String listUrl="http://api.kingdee.com/jdy/gl/voucher_list?access_token="+accessToken;
@@ -73,7 +80,7 @@ public class JdyTool
 	}
 
 	//测试-调用金蝶云官方账号的保存
-	public static String testSaveVoucher (String url, String accountId, String groupName, List<JDYitems> jdYitems)
+	public static String testSaveVoucher (String url, String accountId, String groupName, List<JDYitems> jdYitems) throws Exception
 	{
 		HttpRequest httpRequest = new HttpRequest(url,"POST");
 		httpRequest.header("accountId",accountId);
@@ -83,15 +90,42 @@ public class JdyTool
 		JSONObject data=new JSONObject();
 		data.put("items",jdYitems);
 		httpRequest.send(data.toJSONString());
-		System.out.println("请求结果===="+httpRequest.body().toString());
-		JSONObject jsonObject = JSONObject.parseObject(httpRequest.body());
+
+
+		String body = httpRequest.body().toString();
+		//获取返回对象
+		JDYSaveResponse  saveResponse = JSONObject.parseObject(body, JDYSaveResponse.class);
+		//获取主表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 null;
+		return successPkIds.toString().replace("[","").replace("]","");
+	}
+
+    @Data
+	public static class JDYSaveResponse implements Serializable
+	{
+		private Boolean success;
+		private Boolean reachPlugin;
+		private List<SaveResponseData> data;
+		private String errorCode;
 	}
 
+	@Data
+	public static class SaveResponseData implements Serializable
+	{
+
+		public List<String> successPkIds;
+
+		public Boolean success;
 
+		public List<com.jdy.v7sdk.business.models.errorInfo> errorInfo;
+
+		public String message;
+
+		public String errorLevel;
+	}