Browse Source

erp已作废的模具询价单传到b2b,修改单据valid状态; 任意价格为0不能报价;采购回复记录中erpid类型修改为long,加入purchaseReply中的erpid和get、set方法。

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@6926 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d
dongbw 9 years ago
parent
commit
38a871abf6

+ 29 - 5
src/main/java/com/uas/platform/b2b/erp/controller/InquiryMouldController.java

@@ -12,12 +12,14 @@ import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
 
+import com.alibaba.fastjson.JSON;
 import com.uas.platform.b2b.erp.model.InquiryMould;
 import com.uas.platform.b2b.erp.model.InquiryMouldDecide;
 import com.uas.platform.b2b.erp.service.InquiryMouldService;
 import com.uas.platform.b2b.erp.support.ErpBufferedLogger;
 import com.uas.platform.b2b.model.Attach;
 import com.uas.platform.b2b.model.FileUpload;
+import com.uas.platform.b2b.model.PurchaseInquiryMould;
 import com.uas.platform.b2b.service.AttachService;
 import com.uas.platform.b2b.service.PurchaseInquiryMouldService;
 import com.uas.platform.core.logging.BufferedLoggerManager;
@@ -25,7 +27,7 @@ import com.uas.platform.core.util.ArrayUtils;
 import com.uas.platform.core.util.serializer.FlexJsonUtils;
 
 /**
- * 对家ERP数据接口<br>
+ * 对家ERP数据接口<br>
  * 
  * 模具询价单
  * 
@@ -48,7 +50,7 @@ public class InquiryMouldController {
 	private final static ErpBufferedLogger logger = BufferedLoggerManager.getLogger(ErpBufferedLogger.class);
 
 	/**
-	 * 将买家ERP的模具询价单写到平台(包括是否采纳之后传回平台的单据)
+	 * 将买家ERP的模具询价单写到平台
 	 *
 	 * @param data
 	 * @return
@@ -60,6 +62,7 @@ public class InquiryMouldController {
 		String jsonStr = URLDecoder.decode(data, "UTF-8");
 		List<InquiryMould> inquirieymoulds = FlexJsonUtils.fromJsonArray(jsonStr, InquiryMould.class);
 		purchaseInquiryMouldService.save(inquiryMouldService.convertInquiryMould(inquirieymoulds));
+		System.out.println("单据写回平台" + JSON.toJSONString(inquirieymoulds));
 		logger.log("询价单", "上传询价单", inquirieymoulds.size());
 	}
 
@@ -86,6 +89,7 @@ public class InquiryMouldController {
 	public List<InquiryMould> getReply() {
 		List<InquiryMould> moulds = inquiryMouldService
 				.convertPurchaseInquiryMouldReply(purchaseInquiryMouldService.findNotUploadReply());
+		System.out.println("待上传的报价单" + JSON.toJSONString(purchaseInquiryMouldService.findNotUploadReply()));
 		if (moulds != null) {
 			logger.log("询价单", "下载询价单报价结果", moulds.size());
 		}
@@ -93,7 +97,7 @@ public class InquiryMouldController {
 	}
 
 	/**
-	 * 平台的报价信息传到买家ERP之后,修改平台里面的询价单明细的上传状态
+	 * 平台的报价信息传到买家ERP之后,修改平台里面的询价单的上传状态
 	 *
 	 * @return
 	 * @throws UnsupportedEncodingException
@@ -105,7 +109,7 @@ public class InquiryMouldController {
 	}
 
 	/**
-	 * 买家ERP(不)采纳了价格之后,修改平台里面的报价信息的状态(暂未启用)
+	 * 买家ERP(不)采纳了价格之后,修改平台里面的报价信息的状态
 	 *
 	 * @return
 	 * @throws UnsupportedEncodingException
@@ -116,7 +120,27 @@ public class InquiryMouldController {
 		String jsonStr = URLDecoder.decode(data, "UTF-8");
 		List<InquiryMouldDecide> decides = FlexJsonUtils.fromJsonArray(jsonStr, InquiryMouldDecide.class);
 		purchaseInquiryMouldService.onReplyDecide(inquiryMouldService.convertInquiryMouldDecide(decides));
-		logger.log("询价单", "修改询价单报价信息状态", decides.size());
+		logger.log("模具询价单", "修改询价单报价信息状态", decides.size());
+	}
+
+	/**
+	 * 买家erp作废模具询价单,修改平台内单据有效状态
+	 * 
+	 * @param data
+	 * @throws UnsupportedOperationException
+	 */
+	@RequestMapping(value = "/invalidate", method = RequestMethod.POST)
+	@ResponseBody
+	public void onInvalid(@RequestParam("data") String data) throws UnsupportedEncodingException {
+		String jsonStr = URLDecoder.decode(data, "UTF-8");
+		List<InquiryMould> inquiryMoulds = FlexJsonUtils.fromJsonArray(jsonStr, InquiryMould.class);
+		System.out.println("作废的模具询价单传到平台" + JSON.toJSONString(inquiryMoulds));
+		for (InquiryMould inquiryMould : inquiryMoulds) {
+			PurchaseInquiryMould purchaseInquiryMould = purchaseInquiryMouldService
+					.findById(inquiryMould.getB2b_im_id());
+			purchaseInquiryMouldService.onInvalid(purchaseInquiryMould);
+		}
+		logger.log("模具询价单", "作废模具询价单", inquiryMoulds.size());
 	}
 
 	/**

+ 11 - 0
src/main/java/com/uas/platform/b2b/erp/model/PurchaseReply.java

@@ -18,6 +18,7 @@ public class PurchaseReply implements Serializable{
 	 * 
 	 */
 	private static final long serialVersionUID = 1L;
+	private Long pr_id;
 	private Double pr_qty;
 	private Date pr_delivery;
 	private String pr_remark;
@@ -106,6 +107,14 @@ public class PurchaseReply implements Serializable{
 		this.pr_type = pr_type;
 	}
 
+	public Long getPr_id() {
+		return pr_id;
+	}
+
+	public void setPr_id(Long pr_id) {
+		this.pr_id = pr_id;
+	}
+
 	/**
 	 * 从平台的回复记录转到买家ERP的回复记录
 	 * 
@@ -122,6 +131,7 @@ public class PurchaseReply implements Serializable{
 		setB2b_pr_id(orderReply.getId());
 		setPr_recorder(orderReply.getRecorder());//recorder录入人
 		setPr_type(orderReply.getType());
+		setPr_id(orderReply.getErpId());
 	}
 
 	/**
@@ -137,6 +147,7 @@ public class PurchaseReply implements Serializable{
 		reply.setStatus((short) Status.DOWNLOADED.value());
 		reply.setSendStatus((short) Status.NOT_UPLOAD.value());
 		reply.setType("采购主动回复");
+		reply.setErpId(this.pr_id);
 		return reply;
 	}
 

+ 3 - 3
src/main/java/com/uas/platform/b2b/erp/model/SaleReply.java

@@ -14,7 +14,7 @@ import com.uas.platform.core.model.Status;
  */
 public class SaleReply {
 
-	private int sr_id;
+	private Long sr_id;
 	private Double sr_qty;
 	private Date sr_delivery;
 	private String sr_remark;
@@ -27,11 +27,11 @@ public class SaleReply {
 	private Long b2b_pr_id;
 	private String sr_type;
 
-	public int getSr_id() {
+	public Long getSr_id() {
 		return sr_id;
 	}
 
-	public void setSr_id(int sr_id) {
+	public void setSr_id(Long sr_id) {
 		this.sr_id = sr_id;
 	}
 

+ 0 - 1
src/main/java/com/uas/platform/b2b/erp/service/impl/InquiryMouldServiceImpl.java

@@ -93,7 +93,6 @@ public class InquiryMouldServiceImpl implements InquiryMouldService {
 					purcMould.add(purchaseInquiryMould);
 				}
 			} else {
-				// 已存在,作为传回报价采纳结果
 				PurchaseInquiryMould mould = purchaseInquiryMouldDao.findOne(inquiry.getB2b_im_id());
 				if (mould != null) {
 					if (inquiry.getIn_adoptstatus().equals("已采纳")) {

+ 3 - 3
src/main/java/com/uas/platform/b2b/model/PurchaseOrderReply.java

@@ -104,7 +104,7 @@ public class PurchaseOrderReply implements Serializable {
 	 * @return
 	 */
 	@Column(name = "pr_erpid")
-	private int erpId;
+	private Long erpId;
 
 	/**
 	 * 保存数据的时间
@@ -196,11 +196,11 @@ public class PurchaseOrderReply implements Serializable {
 		this.type = type;
 	}
 
-	public int getErpId() {
+	public Long getErpId() {
 		return erpId;
 	}
 
-	public void setErpId(int erpId) {
+	public void setErpId(Long erpId) {
 		this.erpId = erpId;
 	}
 

+ 7 - 0
src/main/java/com/uas/platform/b2b/service/PurchaseInquiryMouldService.java

@@ -214,4 +214,11 @@ public interface PurchaseInquiryMouldService {
 	public PurchaseInquiryMouldDetail findDetailById(Long id);
 
 	public void save(List<PurchaseInquiryMould> convertInquiryMould);
+
+	/**
+	 * 已作废的单据状态修改
+	 * 
+	 * @param convertInquiryMould
+	 */
+	public void onInvalid(PurchaseInquiryMould purchaseInquiryMould);
 }

+ 8 - 0
src/main/java/com/uas/platform/b2b/service/impl/PurchaseInquiryMouldServiceImpl.java

@@ -393,4 +393,12 @@ public class PurchaseInquiryMouldServiceImpl implements PurchaseInquiryMouldServ
 		ContextUtils.publishEvent(new PurchaseInquiryMouldSaveEvent(convertInquiryMould));
 	}
 
+	@Override
+	public void onInvalid(PurchaseInquiryMould purchaseInquiryMould) {
+			// 已作废有效状态设置为0 表示无效
+			purchaseInquiryMould.setValid(Constant.NO);
+			purchaseInquiryMouldDao.save(purchaseInquiryMould);
+			System.out.println("修改了是否有效状态的单据" + JSON.toJSONString(purchaseInquiryMould));
+	}
+
 }

+ 31 - 2
src/main/webapp/resources/js/index/app.js

@@ -2116,6 +2116,20 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'service/Purc', 'ser
 			}
 		}
 		
+		//有价格为0,则不能报价
+		$scope.notZero = function (mould) {
+			angular.forEach(mould.inquiryMouldItems, function(item){
+				if (item.price == 0) {
+					$scope.canSave = false;
+				}
+				angular.forEach(item.inquiryMouldDetails, function(detail){
+					if (detail.price == 0) {
+						$scope.canSave = false;
+					}
+				})
+				
+			});
+		}
 		
 		$scope.uploadAttach = function(mould) {
 //			var file = mould.attachFile.$viewValue, file = file && file.length > 0 ? file[0] : null;
@@ -2156,8 +2170,8 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'service/Purc', 'ser
 				console.log(res);
 			}).error(function(res){
 				console.log("failure");
-				console.log(res);
 			});
+			
 			if(withSteps) {
 				PurcInquiryMould.reply({id: mould.id}, mould, function(){
 					$scope.loading = false;
@@ -2192,7 +2206,7 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'service/Purc', 'ser
 		
 	
 	// 模具询价单明细
-	app.controller('SaleInquiryMouldDetailCtrl', ['$scope', '$stateParams', 'PurcInquiryMould','$filter', 'toaster', function($scope, $stateParams, PurcInquiryMould, $filter, toaster){
+	app.controller('SaleInquiryMouldDetailCtrl', ['$scope', '$stateParams', 'PurcInquiryMould','$filter', 'toaster','$upload', function($scope, $stateParams, PurcInquiryMould, $filter, toaster, $upload){
 		
 		var inquiryMould_copy = {};
 		var loadData = function() {
@@ -2220,6 +2234,21 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'service/Purc', 'ser
 			$scope.canSave = false;
 		}
 		
+		//有价格为0,则不能报价
+		$scope.notZero = function (mould) {
+			angular.forEach(mould.inquiryMouldItems, function(item){
+				if (item.price == 0) {
+					$scope.canSave = false;
+				}
+				angular.forEach(item.inquiryMouldDetails, function(detail){
+					if (detail.price == 0) {
+						$scope.canSave = false;
+					}
+				})
+				
+			});
+		}
+		
 		$scope.canSave = false;
 		
 		// items价格验证

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

@@ -379,7 +379,7 @@ tbody td div.text-mould {
 							</div>
 						</div>
 						<!-- 已报价 -->
-						<div ng-if="inquiryMould.replyable && inquiryMould.status == 201 && inquiryMould.adoptstatus == null && inquiryMould.checked != 1">
+						<div ng-if="inquiryMould.replyable && inquiryMould.status == 201 && inquiryMould.adoptstatus == null && inquiryMould.checked != 1 && inquiryMould.valid != 0">
 							<span ng-show="!inquiryMould.$editing">
 								<a ng-click="inquiryMould.$editing=!inquiryMould.$editing">修改报价</a>
 							</span>
@@ -448,13 +448,13 @@ tbody td div.text-mould {
 						<span ng-if="inquiryMould.currency == 'RMB'">¥</span>
 						<span ng-if="inquiryMould.currency == 'USD'">$</span>
 						<input type="text" class="text-right input-price input-xs" ng-model="items.price" placeholder="单价(请填数字)"
-							ng-change="verifyItems(items.price,items.reply)" ng-disabled="!inquiryMould.$editing"/>
+							ng-change="verifyItems(items.price,items.reply);notZero(inquiryMould)" ng-disabled="!inquiryMould.$editing"/>
 						<!-- <span ng-show="canSave">{{inquiryMould_copy.inquiryMouldItems[$index].price}}</span> -->
 						<div ng-repeat="prod in items.inquiryMouldDetails">
 							<span ng-if="inquiryMould.currency == 'RMB'">¥</span>
 							<span ng-if="inquiryMould.currency == 'USD'">$</span>
 							<input type="text" class="text-right input-price input-xs" ng-model="prod.price" placeholder="单价(请填数字)"
-								ng-change="verifyProds(prod.price,prod.reply)" ng-disabled="!inquiryMould.$editing"/>
+								ng-change="verifyProds(prod.price,prod.reply);notZero(inquiryMould)" ng-disabled="!inquiryMould.$editing"/>
 							<!-- <span ng-show="canSave">{{inquiryMould_copy.inquiryMouldItems[$parent.$index].inquiryMouldDetails[$index].price}}</span> -->
 						</div>
 					</div>

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

@@ -122,13 +122,13 @@ div>div .btn-items {
 								<span ng-if="inquiryMould.currency == 'RMB'">¥</span>
 								<span ng-if="inquiryMould.currency == 'USD'">$</span>
 								<input type="text" class="text-right input-price input-xs" ng-model="items.price" placeholder="单价(请填数字)"
-									ng-change="verifyItems(items.price,$index)" ng-disabled="!inquiryMould.$editing"/>
+									ng-change="verifyItems(items.price,$index);notZero(inquiryMould)" ng-disabled="!inquiryMould.$editing"/>
 								<!-- <span ng-show="canSave">{{inquiryMould_copy.inquiryMouldItems[$index].price}}</span> -->
 								<div ng-repeat="prod in items.inquiryMouldDetails">
 									<span ng-if="inquiryMould.currency == 'RMB'">¥</span>
 									<span ng-if="inquiryMould.currency == 'USD'">$</span>
 									<input type="text" class="text-right input-price input-xs" ng-model="prod.price" placeholder="单价(请填数字)"
-										ng-change="verifyProds(prod.price,$index,$parent.$index)" ng-disabled="!inquiryMould.$editing"/>
+										ng-change="verifyProds(prod.price,$index,$parent.$index);notZero(inquiryMould)" ng-disabled="!inquiryMould.$editing"/>
 									<!-- <span ng-show="canSave">{{inquiryMould_copy.inquiryMouldItems[$parent.$index].inquiryMouldDetails[$index].price}}</span> -->
 								</div>
 							</div>
@@ -218,7 +218,7 @@ div>div .btn-items {
 			ng-click="inquiryMould.$editing=!inquiryMould.$editing;reload()">取消</button>
 	</div>
 </div>
-<div ng-if="inquiryMould.replyable && inquiryMould.status == 201 && inquiryMould.adoptstatus == null && inquiryMould.checked != 1" style="padding-top: 20px;">
+<div ng-if="inquiryMould.replyable && inquiryMould.status == 201 && inquiryMould.adoptstatus == null && inquiryMould.checked != 1  && inquiryMould.valid != 0" style="padding-top: 20px;">
 	<div class="text-center btn-items" ng-show="!inquiryMould.$editing">
 		<button class="btn btn-success" ng-click="inquiryMould.$editing=!inquiryMould.$editing">修改报价</button>
 	</div>