Przeglądaj źródła

代采订单获取ERP或SAAS审批流

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@10782 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d
hejq 8 lat temu
rodzic
commit
4d41b1dc28

+ 57 - 0
src/main/java/com/uas/platform/b2b/controller/DeputyOrderController.java

@@ -2,6 +2,7 @@ package com.uas.platform.b2b.controller;
 
 import java.io.IOException;
 import java.io.InputStream;
+import java.net.URLDecoder;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -24,6 +25,8 @@ import org.springframework.web.servlet.ModelAndView;
 import com.alibaba.dubbo.common.utils.CollectionUtils;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.uas.platform.b2b.manage.service.MasterService;
+import com.uas.platform.b2b.model.AccessToken;
 import com.uas.platform.b2b.model.DeputyEnterprise;
 import com.uas.platform.b2b.model.DeputyHisVendors;
 import com.uas.platform.b2b.model.DeputyLastOrderKeywords;
@@ -35,12 +38,16 @@ import com.uas.platform.b2b.model.FileUpload;
 import com.uas.platform.b2b.model.SearchFilter;
 import com.uas.platform.b2b.model.Vendor;
 import com.uas.platform.b2b.search.SearchService;
+import com.uas.platform.b2b.service.AccessTokenService;
 import com.uas.platform.b2b.service.DeputyOrderService;
 import com.uas.platform.b2b.service.UserService;
 import com.uas.platform.b2b.support.JxlsExcelView;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.b2b.support.UsageBufferedLogger;
+import com.uas.platform.b2b.temporary.model.UasNodes;
+import com.uas.platform.b2b.temporary.model.UasProcess;
 import com.uas.platform.core.exception.IllegalOperatorException;
+import com.uas.platform.core.exception.NotFoundException;
 import com.uas.platform.core.logging.BufferedLoggerManager;
 import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.model.PageParams;
@@ -51,6 +58,7 @@ import com.uas.search.b2b.model.SPage;
 import com.uas.search.b2b.model.Sort;
 import com.uas.search.b2b.model.Sort.Type;
 import com.uas.search.b2b.util.SearchConstants;
+import com.uas.sso.common.util.HttpUtil.ResponseWrap;
 
 /**
  * 代采订单
@@ -74,6 +82,12 @@ public class DeputyOrderController {
 	@Autowired
 	private UserService userService;
 
+	@Autowired
+	private MasterService masterService;
+
+	@Autowired
+	private AccessTokenService accessTokenService;
+
 	/**
 	 * 获取批量上传物料的模板
 	 * 
@@ -626,4 +640,47 @@ public class DeputyOrderController {
 	public ModelMap odersAmount() {
 		return deputyOrderService.odersAmount();
 	}
+	
+	/**
+	 * 获取审批流信息
+	 * 
+	 * @throws Exception
+	 */
+	@RequestMapping(value = "/approve/{uu}", method = RequestMethod.GET)
+	public ModelMap getApprove(@PathVariable("uu") Long uu, String code) throws Exception {
+		List<String> websites = masterService.findWebsiteByUU(uu);
+		ModelMap map = new ModelMap();
+		if (CollectionUtils.isEmpty(websites)) {
+			throw new NotFoundException("网址");
+		} else {
+			// 绑定供应商uu号、个人信息,生成token
+			AccessToken token = accessTokenService.createNew(uu);
+			String website = websites.get(0);
+			StringBuffer redirectUrl = new StringBuffer(website);
+			if (!website.endsWith("/"))
+				redirectUrl.append("/");
+			redirectUrl.append("opensys/getCurrentJnodes.action?caller=Sale&condition=sa_code='").append(code)
+					.append("'&client_type=b2b&access_token=").append(token.getId());
+			ResponseWrap res = com.uas.sso.common.util.HttpUtil.doGet(redirectUrl.toString());
+			if (!res.isSuccess())
+				map.put("error", "暂未获取到相关数据");
+			JSONObject jsonObject = JSONObject.parseObject(res.getContent());
+			String nodeStr = URLDecoder.decode(jsonObject.getString("nodes"), "UTF-8");
+			String proStr = URLDecoder.decode(jsonObject.getString("processs"), "UTF-8");
+			List<UasNodes> nodes = JSONObject.parseArray(nodeStr, UasNodes.class);
+			List<UasProcess> process = JSONObject.parseArray(proStr, UasProcess.class);
+			List<UasProcess> pros = new ArrayList<UasProcess>();
+			if (!CollectionUtils.isEmpty(process)) {
+				for (UasProcess pro : pros) {
+					if (pro.getJp_status().equals("待审批")) {
+						pros.add(pro);
+					}
+				}
+			}
+			map.put("nodes", nodes);
+			map.put("process", pros);
+
+		}
+		return map;
+	}
 }

+ 57 - 0
src/main/java/com/uas/platform/b2b/temporary/model/UasNodes.java

@@ -0,0 +1,57 @@
+package com.uas.platform.b2b.temporary.model;
+
+public class UasNodes {
+
+	/**
+	 * 处理节点
+	 */
+	private String jn_name;
+
+	/**
+	 * 处理时间
+	 */
+	private String jn_dealTime;
+
+	/**
+	 * 处理结果
+	 */
+	private String jn_dealResult;
+
+	/**
+	 * 描述
+	 */
+	private String jn_operatedDescription;
+
+	public String getJn_name() {
+		return jn_name;
+	}
+
+	public void setJn_name(String jn_name) {
+		this.jn_name = jn_name;
+	}
+
+	public String getJn_dealTime() {
+		return jn_dealTime;
+	}
+
+	public void setJn_dealTime(String jn_dealTime) {
+		this.jn_dealTime = jn_dealTime;
+	}
+
+	public String getJn_dealResult() {
+		return jn_dealResult;
+	}
+
+	public void setJn_dealResult(String jn_dealResult) {
+		this.jn_dealResult = jn_dealResult;
+	}
+
+	public String getJn_operatedDescription() {
+		return jn_operatedDescription;
+	}
+
+	public void setJn_operatedDescription(String jn_operatedDescription) {
+		this.jn_operatedDescription = jn_operatedDescription;
+	}
+
+}

+ 33 - 0
src/main/java/com/uas/platform/b2b/temporary/model/UasProcess.java

@@ -0,0 +1,33 @@
+package com.uas.platform.b2b.temporary.model;
+
+public class UasProcess {
+
+	private String jp_nodeName;
+	private String jp_status;
+	private Long jp_id;
+
+	public String getJp_nodeName() {
+		return jp_nodeName;
+	}
+
+	public void setJp_nodeName(String jp_nodeName) {
+		this.jp_nodeName = jp_nodeName;
+	}
+
+	public String getJp_status() {
+		return jp_status;
+	}
+
+	public void setJp_status(String jp_status) {
+		this.jp_status = jp_status;
+	}
+
+	public Long getJp_id() {
+		return jp_id;
+	}
+
+	public void setJp_id(Long jp_id) {
+		this.jp_id = jp_id;
+	}
+
+}

+ 36 - 1
src/main/webapp/resources/js/index/app.js

@@ -15137,7 +15137,7 @@ define(['toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
     /***
      * 代采定单
      */
-    app.controller('DeputyOrderCtrl', ['$scope', 'toaster', 'getDeOrder', 'ngTableParams', 'BaseService', 'DeputyOrder', 'ReportService', 'getOrderInfo', function ($scope, toaster, getDeOrder, ngTableParams, BaseService, DeputyOrder, ReportService, getOrderInfo) {
+    app.controller('DeputyOrderCtrl', ['$scope', 'toaster', 'getDeOrder', 'ngTableParams', 'BaseService', 'DeputyOrder', 'ReportService', 'getOrderInfo', '$modal', function ($scope, toaster, getDeOrder, ngTableParams, BaseService, DeputyOrder, ReportService, getOrderInfo, $modal) {
         BaseService.scrollBackToTop();
         $scope.active = 'all';
         $scope.currency = Symbol.currency;//将币别转化为对应的符号
@@ -15292,8 +15292,43 @@ define(['toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
                 toaster.pop('error', '提示', response.data);
             });
         }
+        
+        $scope.viewApprove = function(salecode, uu) {
+        	var modalInstance = $modal.open({
+                templateUrl: 'static/tpl/index/purc/modal/approval_detail.html',
+                controller: 'ViewApprovalDetailCtrl',
+                resolve: {
+                	uu: function () {
+                        return uu
+                    },
+                    salecode: function () {
+                        return salecode
+                    }
+                }
+            });
+        }
     }]);
 
+     // 查询代采定单在信扬中的审批情况
+    app.controller('ViewApprovalDetailCtrl', ['$scope', 'toaster', '$modalInstance', 'DeputyOrder', 'BaseService', 'ngTableParams', 'uu', 'salecode', function ($scope, toaster, $modalInstance, DeputyOrder, BaseService, ngTableParams, uu, salecode) {
+        DeputyOrder.approve({uu: uu, code: salecode}, {}, function (data) {
+            $scope.nodes = data.nodes;
+            $scope.process = data.process;
+            if(data.error) {
+            	toaster.pop('error', '提示', data.error);
+            }
+        }, function (response) {
+            toaster.pop('error', '提示', response.data);
+        });
+
+        $scope.cancel = function () {
+            $modalInstance.dismiss();
+        };
+
+        $scope.select = function (company) { // 直接选择
+            $modalInstance.close(company);
+        }
+    }]);
     /**
      * 新增代采订单
      */

+ 4 - 0
src/main/webapp/resources/js/index/services/DeputyOrder.js

@@ -83,6 +83,10 @@ define(['ngResource'], function() {
             odersAmount: {
             	url: 'deputyOrder/odersAmount',
             	method: 'GET'
+            },
+            approve: {
+            	url: 'deputyOrder/approve/:uu',
+            	method: 'GET'
             }
 		})
 	}]).factory('getDeOrder', ['$resource', function($resource) {

+ 3 - 0
src/main/webapp/resources/tpl/index/purc/deputyOrder.html

@@ -351,6 +351,9 @@
                             <div ng-if="order.entrystatus == '保存'">
                                 <a ng-click="clear(order.id)" title="只有新增的在录入的单据可以删除">删除</a>
                             </div>
+                            <div ng-if="order.downloadstatus=='已下载'">
+                            	<a ng-click="viewApprove(order.salecode, order.deputyuu)">审批流程</a>
+                            </div>
                         </div>
                         <div class="col-md-12" ng-if="order.remark != null && order.statuscode == 222">订单反馈:<span class="text-inverse" ng-bind="order.remark"></span></div>
                     </td>

+ 3 - 4
src/main/webapp/resources/tpl/index/sale/inquiry.html

@@ -416,8 +416,8 @@
 						<div class="form-group input-group input-group-xs">
 							<input type="text" class="form-control input-xs" ng-change="verifylapQty(reply.lapQty,$index)"
 								   ng-model="reply.lapQty" min="{{reply.lapQty == 0 ? 0 : 1}}"
-								   ng-Readonly="$index == 0"
-								   placeholder="数量" /> <span class="input-group-btn" ng-show="$index != 0">
+								   ng-Readonly="$index == 0"  placeholder="数量" ng-change="qty"/> 
+								   <span class="input-group-btn" ng-show="$index != 0">
 									<button class="btn btn-default" type="button"
 											ng-click="removeStep(inquiryItem, $index)">
 										<i class="fa fa-trash-o"></i>
@@ -456,8 +456,7 @@
 										</div>
 									</li>
 								</ul>
-								<div
-										ng-show="!inquiryItem.history || inquiryItem.history.length == 0"
+								<div ng-show="!inquiryItem.history || inquiryItem.history.length == 0"
 										class="text-center text-muted">暂无历史报价</div>
 							</div>
 						</div>