Browse Source

2023年1月5 17:53

wangzhuo 2 years ago
parent
commit
07cad0c82f

+ 17 - 11
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/BidingServiceImpl.java

@@ -10,12 +10,10 @@ import org.springblade.check.dto.AuditProecessDTO;
 import org.springblade.check.entity.AuditPathsActs;
 import org.springblade.check.entity.AuditPathsLevels;
 import org.springblade.check.feign.ICheckClient;
+import org.springblade.client.entity.BasicPortDesc;
 import org.springblade.client.entity.CorpsAttn;
 import org.springblade.client.entity.CorpsDesc;
-import org.springblade.client.feign.ICorpsAttnClient;
-import org.springblade.client.feign.ICorpsDescClient;
-import org.springblade.client.feign.ISerialClient;
-import org.springblade.client.feign.IWechatClient;
+import org.springblade.client.feign.*;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.secure.utils.AuthUtil;
@@ -62,6 +60,7 @@ public class BidingServiceImpl extends ServiceImpl<BidingMapper, Biding> impleme
 	private final IWechatClient wechatClient;//微信
 	private final IDictBizClient dictBizClient;//业务字典
 	private final ISysClient sysClient;//获得岗位信息
+	private final IPortClient portClient;//获得地点信息
 
 	/**
 	 * 获得标书详情
@@ -264,27 +263,30 @@ public class BidingServiceImpl extends ServiceImpl<BidingMapper, Biding> impleme
 		if (salesBiding == null){
 			throw new SecurityException("发布失败,未找到单据");
 		}
-		//获得是否开启审批
+		//获得是否开启审批流程
 		R<String> paramValue = sysClient.getParamValue("release.approval");
 		if (paramValue.isSuccess() && paramValue.getData() != null) {
 			if (salesBiding.getStatus() == 0 && "0".equals(paramValue.getData())){
 				throw new SecurityException("订单未请核");
 			}else if (salesBiding.getStatus() == 0 && "1".equals(paramValue.getData())){
-				if (ObjectUtil.isNotEmpty(salesBiding.getLine())){
+				//根据目的港查询航线
+				BasicPortDesc basicPortDesc = new BasicPortDesc();
+				basicPortDesc.setName(salesBiding.getObjectiveHarbor());
+				BasicPortDesc portDesc = portClient.getPortData(basicPortDesc);
+				if (ObjectUtil.isNotEmpty(portDesc.getLine())){
 					//根据航线编号获得航线名称
-					R<String> lineName = dictBizClient.getValue("dominant_route", salesBiding.getLine());
+					R<String> lineName = dictBizClient.getValue("dominant_route", portDesc.getLine());
 					if (lineName.isSuccess() && lineName.getData() != null){
 						//根据航线名称获得岗位
 						R<String> postIds = sysClient.getPostIds(AuthUtil.getTenantId(), lineName.getData());
 						if (postIds.isSuccess() && postIds.getData() != null){
-							//获得当前请核人的岗位
+							//获得当前发布人的岗位
 							R<User> user = userClient.userInfoById(AuthUtil.getUserId());
 							if (user.isSuccess() && user.getData() != null){
 								if (!user.getData().getPostId().contains(postIds.getData())){
 									throw new SecurityException("当前发布人岗位没有该航线,无法发布");
 								}
 							}else {
-
 								throw new SecurityException("用户信息异常,请联系管理员");
 							}
 						}else {
@@ -382,9 +384,13 @@ public class BidingServiceImpl extends ServiceImpl<BidingMapper, Biding> impleme
 				throw new SecurityException("开启审批失败:未查询到审批信息");
 			}
 
-			if (ObjectUtil.isNotEmpty(salesBiding.getLine())){
+			//根据目的港查询航线
+			BasicPortDesc basicPortDesc = new BasicPortDesc();
+			basicPortDesc.setName(salesBiding.getObjectiveHarbor());
+			BasicPortDesc portDesc = portClient.getPortData(basicPortDesc);
+			if (ObjectUtil.isNotEmpty(portDesc.getLine())){
 				//根据航线编号获得航线名称
-				R<String> lineName = dictBizClient.getValue("dominant_route", salesBiding.getLine());
+				R<String> lineName = dictBizClient.getValue("dominant_route", portDesc.getLine());
 				if (lineName.isSuccess() && lineName.getData() != null){
 					//根据航线名称获得岗位
 					R<String> postIds = sysClient.getPostIds(AuthUtil.getTenantId(), lineName.getData());