Browse Source

模具批量导入附件

wangmh 8 years ago
parent
commit
5507a0e321

+ 10 - 12
src/main/java/com/uas/platform/b2b/controller/SaleInquiryMouldController.java

@@ -5,6 +5,8 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Set;
 
+import com.uas.platform.b2b.model.*;
+import com.uas.platform.b2b.service.AttachService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
@@ -12,14 +14,12 @@ import org.springframework.stereotype.Controller;
 import org.springframework.ui.ModelMap;
 import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.commons.CommonsMultipartFile;
 import org.springframework.web.servlet.ModelAndView;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
-import com.uas.platform.b2b.model.PurchaseInquiryMould;
-import com.uas.platform.b2b.model.PurchaseInquiryMouldDetail;
-import com.uas.platform.b2b.model.PurchaseInquiryMouldItem;
-import com.uas.platform.b2b.model.SearchFilter;
 import com.uas.platform.b2b.search.SearchService;
 import com.uas.platform.b2b.service.PurchaseInquiryMouldService;
 import com.uas.platform.b2b.service.UserService;
@@ -58,6 +58,9 @@ public class SaleInquiryMouldController {
 	@Autowired
 	private SearchService searchService;
 
+	@Autowired
+	private AttachService attachService;
+
 	private final static UsageBufferedLogger logger = BufferedLoggerManager.getLogger(UsageBufferedLogger.class);
 
 	/**
@@ -441,8 +444,7 @@ public class SaleInquiryMouldController {
 	 */
 	@RequestMapping(value = "/{id}/send", method = RequestMethod.POST)
 	@ResponseBody
-	public ResponseEntity<String> sendAttachs(String json,
-											  @PathVariable("id") Long id, FileUpload uploadItem) {
+	public Attach sendAttach(String json, @PathVariable("id") Long id, FileUpload uploadItem) {
 		PurchaseInquiryMould purchaseInquiryMould = FlexJsonUtils.fromJson(json,
 				PurchaseInquiryMould.class);
 		if (uploadItem != null && uploadItem.getFile() != null &&
@@ -451,13 +453,9 @@ public class SaleInquiryMouldController {
 					"purchaseInquiryMould", "模具询价附件");
 			attach.setRelativeTable("purc$inquirymould");
 			attach.setRelativeKey(purchaseInquiryMould.getId());
-			attachService.save(attach);
-			Set<Attach> attaches = new HashSet<>();
-			attaches.add(attach);
-			purchaseInquiryMould.setAttachs(attaches);
+			return attachService.save(attach);
 		}
-		purchaseInquiryMouldService.reply(purchaseInquiryMould);
-		return new ResponseEntity<String>(HttpStatus.OK);
+		return null;
 	}
 
 

+ 1 - 5
src/main/java/com/uas/platform/b2b/service/impl/PurchaseInquiryMouldServiceImpl.java

@@ -260,11 +260,7 @@ public class PurchaseInquiryMouldServiceImpl implements PurchaseInquiryMouldServ
 		mould.setBackStatus((short) Status.NOT_UPLOAD.value());
 		mould.setReplySendStatus((short) Status.NOT_UPLOAD.value());
 		mould.setReplyDate(new Date());
-		if (mould.getAttachs() == null) {
-			mould.setAttachs(mould.getAttachs());
-		} else if (inquiryMould.getAttachs() != null) {
-			mould.getAttachs().addAll(inquiryMould.getAttachs());
-		}
+		mould.setAttachs(inquiryMould.getAttachs());
 		Long userUU = mould.getVendUserUU();
 		if (userUU == null) {
 			userUU = mould.getRecorderuu();

+ 54 - 20
src/main/webapp/resources/js/index/app.js

@@ -5489,27 +5489,61 @@ define(['toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
             }
         }
 
-//		// 上传附件
-//		$scope.uploadAttach = function(mould) {
-////			var file = mould.attachFile.$viewValue, file = file && file.length > 0 ? file[0] : null;
-//			var file = mould.attachs[0];
-//			$scope.mould  = mould;
-//			$upload.upload({
-//				url: 'sale/mould/' + mould.id + '/send',
-//				method: 'POST',
-//				file: file,
-//				data: {
-//					json: $scope.mould
-//				}
-//			}).success(function(res){
-//				console.log("success");
-//				console.log(res);
-//			}).error(function(res){
-//				console.log("failure");
-//				console.log(res);
-//			});
-//		}
+		// 上传附件
+		var uploadAttach = function(file) {
+//			var file = mould.attachFile.$viewValue, file = file && file.length > 0 ? file[0] : null;
+			$scope.mould  = $scope.inquiryMould;
+			$upload.upload({
+				url: 'sale/mould/' + $scope.mould.id + '/send',
+				method: 'POST',
+				file: file,
+				data: {
+					json: $scope.mould
+				}
+			}).success(function(attach){
+                if (attach){
+                    $scope.inquiryMould.attachs.push(attach);
+                }
+			}).error(function(res){
+				console.log("failure");
+				console.log(res);
+			});
+		}
+
+        $scope.pushFile = function() {
+            var file = $scope.myFiles;
+            if (file.length > 0) {
+                for (var i = 0; i < file.length; i++) {
+                    console.log(file[i].name);
+                    var flag = true;
+
+                    if ($scope.inquiryMould.attachs.length > 0) {
+                        for (var j = 0; j < $scope.inquiryMould.attachs.length; j++) {
+                            if ($scope.inquiryMould.attachs[j].name == file[i].name
+                                && $scope.inquiryMould.attachs[j].size == file[i].size) {
+                                flag = false;
+                                break;
+                            }
+                        }
+                    }
+                    if (flag) {
+                        uploadAttach(file[i]);
+                    }
+                }
+            }
+        };
 
+        $scope.removeFile = function(file) {
+            if ($scope.files != null && $scope.files.length > 0) {
+                for (var i = 0; i < $scope.files.length; i++) {
+                    if ($scope.files[i].name == file.name
+                        && $scope.files[i].size == file.size) {
+                        $scope.files.splice(i, 1);
+                        document.getElementById("file").value = "";
+                    }
+                }
+            }
+        };
 
         $scope.onReplyClick = function (mould, withSteps) {
             $scope.loading = true;

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

@@ -36,6 +36,17 @@ tbody td .text-waiting {
 	color: #56a022;
 	border-color: #56a022;
 }
+.table td input.uploadFile{
+	position: absolute;
+	width: 100px;
+	left: 100px;
+	height: 30px;
+	top: 0;
+	opacity: 0;
+}
+a:hover{
+	cursor: pointer;
+}
 </style>
 <div class="pane base-info" id="order-detail-list">
 	<div class="pub-com_head">
@@ -105,109 +116,115 @@ tbody td .text-waiting {
 			<table class="block table table-default table-striped" style="margin-bottom: 0;">
 				<thead>
 				<tr class="header">
-					<th width="385">模具资料</th>
-					<th width="50">币别</th>
-					<th width="250">价格&nbsp;&nbsp;&nbsp;<span>税率:</span><input class="taxrate-input" ng-model="inquiryMould.taxrate" ng-pattern="/^[0-9][0-9]{0,1}$/" style="width: 30px;" ng-disabled="!inquiryMould.$editing">%</th>
+					<th width="380">模具资料</th>
+					<th width="300">币别:<span ng-bind="inquiryMould.currency"></span>&nbsp;&nbsp;&nbsp;价格&nbsp;&nbsp;&nbsp;<span>税率:</span><input class="taxrate-input" ng-model="inquiryMould.taxrate" ng-pattern="/^[0-9][0-9]{0,1}$/" style="width: 30px;" ng-disabled="!inquiryMould.$editing">%</th>
+					<th width="150">附件</th>
 					<th width="100"></th>
 				</tr>
 				</thead>
-			</table>
-			<table class="block table table-default table-striped">
 				<tbody>
-					<tr>
-						<td class="product" width="385">
-							<div class="text-mould" ng-repeat="items in inquiryMould.inquiryMouldItems">
-								<div class="text-num text-bold text-ps" >
-									{{items.psCode}}-{{items.psName}}
-								</div>
-								<div class="text-muted text-prod" ng-repeat="prod in items.inquiryMouldDetails">
-									<div>{{prod.prodCode}}-{{prod.prodTitle}}-{{prod.prodSpec}}</div>
-								</div>
+				<tr>
+					<td class="product" width="380">
+						<div class="text-mould" ng-repeat="items in inquiryMould.inquiryMouldItems">
+							<div class="text-num text-bold text-ps" >
+								{{items.psCode}}-{{items.psName}}
 							</div>
-							<!-- 附件上传先隐藏 -->
-							<!-- <div ng-if="inquiryMould.$editing  && !inquiryMould.attachs.length"
-								 class="input-group input-group-sm col-sm-12" style="padding-top: 5px;">
-								<span class="input-group-addon">上传附件:</span>
-								<input type="file" ng-model="inquiryMould.attachs" ng-file-select
-									ng-multiple="false" class="form-control input-sm" name="inquiryMould.attachs"
-									id="inquiryMould.attachs">
-								<span class="input-group-btn">
-									<button ng-click="uploadAttach(mould)"
-										ng-diabled="!inquiryMould.attachs.length"
-										class="btn btn-success" type="button">确认上传</button>
-								</span>
-							</div> -->
-						</td>
-						<td class="text-center" width="50">
-							<span ng-bind="inquiryMould.currency"></span>
-						</td>
-						<td class="text-center" width="250">
-							<div ng-repeat="items in inquiryMould.inquiryMouldItems">
-								<input type="text" class="text-right input-price input-xs" ng-model="items.price" placeholder="单价(请填数字)" ng-blur="blurPrice(items.price)"
-									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">
-									<input type="text" class="text-right input-price input-xs" ng-model="prod.price" placeholder="单价(请填数字)" ng-blur="blurPrice(prod.price)"
-										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 class="text-muted text-prod" ng-repeat="prod in items.inquiryMouldDetails">
+								<div>{{prod.prodCode}}-{{prod.prodTitle}}-{{prod.prodSpec}}</div>
+							</div>
+						</div>
+						<!-- 附件上传先隐藏 -->
+						<!--<div ng-if="inquiryMould.$editing  && !inquiryMould.attachs.length"
+                             class="input-group input-group-sm col-sm-12" style="padding-top: 5px;">
+                            <span class="input-group-addon">上传附件:</span>
+                            <input type="file" ng-model="inquiryMould.attachs" ng-file-select
+                                ng-multiple="false" class="form-control input-sm" name="inquiryMould.attachs"
+                                id="inquiryMould.attachs">
+                            <span class="input-group-btn">
+                                <button ng-click="uploadAttach(mould)"
+                                    ng-diabled="!inquiryMould.attachs.length"
+                                    class="btn btn-success" type="button">确认上传</button>
+                            </span>
+                        </div>-->
+					</td>
+					<td class="text-center" width="300">
+						<div ng-repeat="items in inquiryMould.inquiryMouldItems">
+							<input type="text" class="text-right input-price input-xs" ng-model="items.price" placeholder="单价(请填数字)" ng-blur="blurPrice(items.price)"
+								   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">
+								<input type="text" class="text-right input-price input-xs" ng-model="prod.price" placeholder="单价(请填数字)" ng-blur="blurPrice(prod.price)"
+									   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 class="dropdown">
-								<a href="javascript:void(0);"
-									class="dropdown-toggle text-default"
-									ng-mouseover="getHistory(inquiryMould)">历史报价<i
+						</div>
+						<div class="dropdown">
+							<a href="javascript:void(0);"
+							   class="dropdown-toggle text-default"
+							   ng-mouseover="getHistory(inquiryMould)">历史报价<i
 									class="fa fa-fw fa-angle-down"></i></a>
-								<div class="dropdown-menu pane" style="width: 270px;">
-									<div class="pane-body">
-										<ul ng-show="inquiryMould.replyDate" class="list-unstyled list-menu">
-											<li class="col-xs-12" ng-repeat="item in ::inquiryMould.history.inquiryMouldItems">
-												<div ng-repeat="itemReply in item.replies" ng-class="{'text-inverse': $index==0}">
-													<span class="col-xs-3">{{itemReply.reply | number:6}}</span>
-													<div ng-repeat="prodReply in itemReply.prodReplies">
-														<span class="col-xs-3">{{prodReply.reply | number:6}}</span>
-													</div>
-													<span class="col-xs-12">{{itemReply.replyDate | date:"yyyy-MM-dd HH:mm:ss"}}</span>
-													<div class="text-muted col-xs-12">
-														{{inquiryMould.enterprise.enName}}
-													</div>
+							<div class="dropdown-menu pane" style="width: 270px;">
+								<div class="pane-body">
+									<ul ng-show="inquiryMould.replyDate" class="list-unstyled list-menu">
+										<li class="col-xs-12" ng-repeat="item in ::inquiryMould.history.inquiryMouldItems">
+											<div ng-repeat="itemReply in item.replies" ng-class="{'text-inverse': $index==0}">
+												<span class="col-xs-3">{{itemReply.reply | number:6}}</span>
+												<div ng-repeat="prodReply in itemReply.prodReplies">
+													<span class="col-xs-3">{{prodReply.reply | number:6}}</span>
 												</div>
-											</li>
-											
-										</ul>
-										<div ng-show="!inquiryMould.replyDate"
-											class="text-center text-muted">暂无历史报价</div>
-									</div>
-								</div>
-							</div>
-						</td>
-						<td class="text-center" width="100">
-							<div ng-if="inquiryMould.status == 200 && inquiryMould.overdue == 0 && inquiryMould.valid != 0 && inquiryMould.adoptStatus == null" class="block">
-								<span class="text-waiting">待报价</span>
-							</div>
-							<!-- 已报价 -->
-							<div ng-if="inquiryMould.status == 201 && inquiryMould.adoptStatus == null && inquiryMould.valid != 0" class="block">
-								<span class="text-trans warning">已报价</span>
-								<div ng-if="inquiryMould.check == 1" class="text-muted"
-									style="padding-top: 50px;">
-									客户正在<br>审批...
+												<span class="col-xs-12">{{itemReply.replyDate | date:"yyyy-MM-dd HH:mm:ss"}}</span>
+												<div class="text-muted col-xs-12">
+													{{inquiryMould.enterprise.enName}}
+												</div>
+											</div>
+										</li>
+
+									</ul>
+									<div ng-show="!inquiryMould.replyDate"
+										 class="text-center text-muted">暂无历史报价</div>
 								</div>
 							</div>
-							<div ng-if="inquiryMould.status == 201 && inquiryMould.adoptStatus == 1 && inquiryMould.valid != 0"
-								class="block">
-								<span class="text-trans success">已采纳</span>
-							</div>
-							<div ng-if="inquiryMould.status == 201 && inquiryMould.adoptStatus == 0 && inquiryMould.valid != 0"
-								class="block">
-								<span class="text-trans error">未采纳</span>
+						</div>
+					</td>
+					<td width="150" style="vertical-align: top" class="text-center">
+						<div class="input-group form-group" style="width: 300px; position: relative;">
+							<a style="color: #327ebe">上传附件</a>
+							<input type="file" ng-model="myFiles" ng-file-select multiple="multiple"
+								   ng-multiple="false" class="form-control input-sm input-group uploadFile" name="file"
+								   ng-change="pushFile()">
+							<div ng-repeat="file in inquiryMould.attachs">
+								<p class="text-left"><a style="color: #0000cc">{{file.name}}</a></p>
 							</div>
-							<div ng-if="inquiryMould.overdue == 1 && inquiryMould.status == 200 && inquiryMould.valid != 0" class="block">
-								<span class="text-trans text-muted">已过期</span>
+						</div>
+					</th>
+					<td class="text-center" width="100">
+						<div ng-if="inquiryMould.status == 200 && inquiryMould.overdue == 0 && inquiryMould.valid != 0 && inquiryMould.adoptStatus == null" class="block">
+							<span class="text-waiting">待报价</span>
+						</div>
+						<!-- 已报价 -->
+						<div ng-if="inquiryMould.status == 201 && inquiryMould.adoptStatus == null && inquiryMould.valid != 0" class="block">
+							<span class="text-trans warning">已报价</span>
+							<div ng-if="inquiryMould.check == 1" class="text-muted"
+								 style="padding-top: 50px;">
+								客户正在<br>审批...
 							</div>
-							<div ng-if="inquiryMould.valid == 0" class="block">
-								<span class="text-trans text-light">已作废</span>
-							</div>
-						</td>
-					</tr>
+						</div>
+						<div ng-if="inquiryMould.status == 201 && inquiryMould.adoptStatus == 1 && inquiryMould.valid != 0"
+							 class="block">
+							<span class="text-trans success">已采纳</span>
+						</div>
+						<div ng-if="inquiryMould.status == 201 && inquiryMould.adoptStatus == 0 && inquiryMould.valid != 0"
+							 class="block">
+							<span class="text-trans error">未采纳</span>
+						</div>
+						<div ng-if="inquiryMould.overdue == 1 && inquiryMould.status == 200 && inquiryMould.valid != 0" class="block">
+							<span class="text-trans text-muted">已过期</span>
+						</div>
+						<div ng-if="inquiryMould.valid == 0" class="block">
+							<span class="text-trans text-light">已作废</span>
+						</div>
+					</td>
+				</tr>
 				</tbody>
 			</table>
 		</div>