Просмотр исходного кода

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@226 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d

administrator 11 лет назад
Родитель
Сommit
ac26e65275

+ 11 - 10
src/main/java/com/uas/platform/b2b/erp/controller/PurchaseController.java

@@ -1,18 +1,20 @@
 package com.uas.platform.b2b.erp.controller;
 
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
 import java.util.List;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
 
 import com.uas.platform.b2b.erp.model.Purchase;
+import com.uas.platform.b2b.erp.model.PurchaseReply;
 import com.uas.platform.b2b.erp.service.PurchaseService;
 import com.uas.platform.b2b.service.PurchaseOrderService;
-import com.uas.platform.core.model.Constant;
 import com.uas.platform.core.util.serializer.FlexJsonUtils;
 
 /**
@@ -35,16 +37,16 @@ public class PurchaseController {
 	/**
 	 * 将ERP的采购订单写到平台
 	 * 
-	 * @param json
+	 * @param data
 	 * @return
+	 * @throws UnsupportedEncodingException
 	 */
 	@RequestMapping(method = RequestMethod.POST)
 	@ResponseBody
-	public String savePurchases(@RequestBody String json) {
-		System.out.println(json);
-		List<Purchase> purchases = FlexJsonUtils.fromJsonArray(json, Purchase.class);
+	public void savePurchases(@RequestParam("data") String data) throws UnsupportedEncodingException {
+		String jsonStr = URLDecoder.decode(data, "UTF-8");
+		List<Purchase> purchases = FlexJsonUtils.fromJsonArray(jsonStr, Purchase.class);
 		purchaseOrderService.save(purchaseService.convertPurchase(purchases));
-		return Constant.SUCCESS;
 	}
 
 	/**
@@ -54,9 +56,8 @@ public class PurchaseController {
 	 */
 	@RequestMapping(value = "/reply", method = RequestMethod.GET)
 	@ResponseBody
-	public String getReply() {
-		purchaseService.convertPurchaseOrderReply(purchaseOrderService.findNotUploadReply());
-		return Constant.SUCCESS;
+	public List<PurchaseReply> getReply() {
+		return purchaseService.convertPurchaseOrderReply(purchaseOrderService.findNotUploadReply());
 	}
 
 }

+ 97 - 0
src/main/java/com/uas/platform/b2b/erp/model/Prod.java

@@ -0,0 +1,97 @@
+package com.uas.platform.b2b.erp.model;
+
+import com.uas.platform.b2b.model.Product;
+import com.uas.platform.b2b.support.SystemSession;
+
+/**
+ * ERP系统的产品
+ * 
+ * @author yingp
+ * 
+ */
+public class Prod {
+
+	private String pr_code;
+	private String pr_detail;
+	private String pr_spec;
+	private String pr_unit;
+	private Float pr_zxbzs;
+	private Float pr_zxdhl;
+	private Float pr_leadtime;
+
+	public String getPr_code() {
+		return pr_code;
+	}
+
+	public void setPr_code(String pr_code) {
+		this.pr_code = pr_code;
+	}
+
+	public String getPr_detail() {
+		return pr_detail;
+	}
+
+	public void setPr_detail(String pr_detail) {
+		this.pr_detail = pr_detail;
+	}
+
+	public String getPr_spec() {
+		return pr_spec;
+	}
+
+	public void setPr_spec(String pr_spec) {
+		this.pr_spec = pr_spec;
+	}
+
+	public String getPr_unit() {
+		return pr_unit;
+	}
+
+	public void setPr_unit(String pr_unit) {
+		this.pr_unit = pr_unit;
+	}
+
+	public Float getPr_zxbzs() {
+		return pr_zxbzs;
+	}
+
+	public void setPr_zxbzs(Float pr_zxbzs) {
+		this.pr_zxbzs = pr_zxbzs;
+	}
+
+	public Float getPr_zxdhl() {
+		return pr_zxdhl;
+	}
+
+	public void setPr_zxdhl(Float pr_zxdhl) {
+		this.pr_zxdhl = pr_zxdhl;
+	}
+
+	public Float getPr_leadtime() {
+		return pr_leadtime;
+	}
+
+	public void setPr_leadtime(Float pr_leadtime) {
+		this.pr_leadtime = pr_leadtime;
+	}
+
+	/**
+	 * 转为平台的产品
+	 * 
+	 * @return
+	 */
+	public Product convert() {
+		Product product = new Product();
+		product.setCode(this.pr_code);
+		product.setEnUU(SystemSession.getUser().getEnterprise().getUu());
+		product.setUserUU(SystemSession.getUser().getUserUU());
+		product.setTitle(this.pr_detail);
+		product.setSpec(this.pr_spec);
+		product.setUnit(this.pr_unit);
+		product.setMinPack(this.pr_zxbzs);
+		product.setMinOrder(this.pr_zxdhl);
+		product.setLeadtime(this.pr_leadtime);
+		return product;
+	}
+
+}

+ 2 - 0
src/main/java/com/uas/platform/b2b/filter/SecurityInterceptor.java

@@ -145,6 +145,8 @@ public class SecurityInterceptor extends AbstractSecurityInterceptor implements
 				SecurityContextHolder.getContext().setAuthentication(authenticatedUser);
 				request.getSession().setAttribute(HttpSessionSecurityContextRepository.SPRING_SECURITY_CONTEXT_KEY,
 						SecurityContextHolder.getContext());
+				user.setCurrentEnterprise();
+				request.getSession().setAttribute("user", user);
 			} else
 				throw new UsernameNotFoundException(username + " 账号或密码错误");
 		}

+ 0 - 5
src/main/java/com/uas/platform/b2b/model/PurchaseOrder.java

@@ -4,10 +4,7 @@ import java.io.Serializable;
 import java.util.Date;
 import javax.persistence.Column;
 import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
 import javax.persistence.Id;
-import javax.persistence.SequenceGenerator;
 import javax.persistence.Table;
 
 @Table(name = "purc$orders")
@@ -20,8 +17,6 @@ public class PurchaseOrder implements Serializable {
 	private static final long serialVersionUID = 1L;
 
 	@Id
-	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "purc$orders_gen")
-	@SequenceGenerator(name = "purc$orders_gen", sequenceName = "purc$orders_seq", allocationSize = 1)
 	@Column(name = "pu_id")
 	private Long id;
 

+ 6 - 1
src/main/java/com/uas/platform/b2b/model/PurchaseOrderAll.java

@@ -7,11 +7,14 @@ import javax.persistence.CascadeType;
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
 import javax.persistence.Id;
 import javax.persistence.JoinColumn;
 import javax.persistence.OneToMany;
 import javax.persistence.OneToOne;
 import javax.persistence.OrderBy;
+import javax.persistence.SequenceGenerator;
 import javax.persistence.Table;
 
 import org.hibernate.annotations.Where;
@@ -28,13 +31,15 @@ import org.hibernate.annotations.Where;
 public class PurchaseOrderAll {
 
 	@Id
+	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "purc$orders_gen")
+	@SequenceGenerator(name = "purc$orders_gen", sequenceName = "purc$orders_seq", allocationSize = 1)
 	@Column(name = "pu_id")
 	private Long id;
 
 	/**
 	 * 采购企业
 	 */
-	@OneToOne(cascade = { CascadeType.ALL })
+	@OneToOne(cascade = { CascadeType.MERGE })
 	@JoinColumn(name = "pu_enuu", insertable = false, updatable = false)
 	private Enterprise enterprise;
 

+ 7 - 2
src/main/java/com/uas/platform/b2b/model/PurchaseOrderAllItem.java

@@ -6,10 +6,13 @@ import javax.persistence.CascadeType;
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
 import javax.persistence.Id;
 import javax.persistence.JoinColumn;
 import javax.persistence.ManyToOne;
 import javax.persistence.OneToOne;
+import javax.persistence.SequenceGenerator;
 import javax.persistence.Table;
 
 @Table(name = "purc$orderitems")
@@ -17,6 +20,8 @@ import javax.persistence.Table;
 public class PurchaseOrderAllItem {
 
 	@Id
+	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "purc$orderitems_gen")
+	@SequenceGenerator(name = "purc$orderitems_gen", sequenceName = "purc$orderitems_seq", allocationSize = 1)
 	@Column(name = "pd_id")
 	private Long id;
 
@@ -29,8 +34,8 @@ public class PurchaseOrderAllItem {
 	/**
 	 * 采购订单
 	 */
-	@ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
-	@JoinColumn(name = "pd_puid")
+	@ManyToOne(/*fetch = FetchType.EAGER, */cascade = CascadeType.REFRESH, optional = false)
+	@JoinColumn(name = "pd_puid", nullable = false)
 	private PurchaseOrderAll order;
 
 	/**

+ 38 - 21
src/main/webapp/resources/tpl/index/sale/order.html

@@ -87,7 +87,8 @@
 	padding-left: 20px;
 }
 
-.input-xs,.input-group-xs>.form-control, .input-group-xs>.input-group-addon, .input-group-xs>.input-group-btn>.btn {
+.input-xs,.input-group-xs>.form-control,.input-group-xs>.input-group-addon,.input-group-xs>.input-group-btn>.btn
+	{
 	height: 26px;
 	padding: 0 5px;
 	font-size: 12px;
@@ -95,7 +96,8 @@
 	border-radius: 3px;
 }
 
-.input-group-xs .form-control:last-child, .input-group-addon:last-child, .input-group-btn:first-child>.btn:not(:first-child), .input-group-btn:last-child>.btn {
+.input-group-xs .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn:not
+	(:first-child ),.input-group-btn:last-child>.btn {
 	border-top-left-radius: 0;
 	border-bottom-left-radius: 0;
 }
@@ -104,7 +106,6 @@
 	border-radius: 0;
 	border: none;
 }
-
 </style>
 <div ng-controller="SaleOrderCtrl" class="block">
 	<div class="loading in">
@@ -137,8 +138,9 @@
 			<tr class="toolbar toolbar-top">
 				<td colspan="6">
 					<div>
-						<label><input type="checkbox" class="selector select_all">全选</label>
-						<a href="javascript:void(0)" class="btn btn-default btn-xs">批量回复</a>
+						<label><input type="checkbox" class="selector select_all"
+							ng-model="selectAll">全选</label> <a href="javascript:void(0)"
+							class="btn btn-default btn-xs">批量回复</a>
 					</div> <!-- 分页 -->
 				</td>
 			</tr>
@@ -150,7 +152,8 @@
 			<tr class="order-hd">
 				<td class="first">
 					<div class="order-main">
-						<span> <input type="checkbox" class="selector">
+						<span> <input type="checkbox" class="selector"
+							ng-model="order.$selected">
 						</span> <span class="text-num text-bold" title="{{order.date}}"
 							ng-bind="order.date"></span> <span>订单号:<a class="text-num"
 							ng-bind="order.code" href="#"></a></span>
@@ -185,28 +188,38 @@
 					<div class="text-num" title="{{item.qty}}" ng-bind="item.qty"></div>
 					<div class="text-muted" ng-bind="item.product.unit"></div>
 					<div style="margin: 0 auto" ng-show="item.$editing">
-						<input type="text" ng-model="item.reply.qty" ng-init="item.reply.qty=item.qty-item.replyQty" class="form-control input-xs" placeholder="回复数量">
+						<input type="text" ng-model="item.reply.qty"
+							ng-init="item.reply.qty=item.qty-item.replyQty"
+							class="form-control input-xs" placeholder="回复数量">
 					</div>
 				</td>
 				<td class="text-center br-l">
-					<div class="text-num" ng-bind="item.delivery"></div>
-					<br>
-					<div style="margin: 0 auto" class="input-group input-group-xs input-trigger" ng-show="item.$editing">
-						<input type="text" ng-model="item.reply.delivery" ng-init="item.reply.delivery=parseDate(item.delivery)" class="form-control" 
-						placeholder="回复交期" datepicker-popup="yyyy-MM-dd" is-open="item.$opened" min-date="order.date" 
-						ng-required="true" current-text="今天" clear-text="清除" close-text="关闭"
-						datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"
-						ng-focus="openDatePicker($event, item)">
-						<span class="input-group-btn">
-                			<button type="button" class="btn btn-default" ng-click="openDatePicker($event, item)"><i class="fa fa-calendar"></i></button>
-              			</span>
+					<div class="text-num" ng-bind="item.delivery"></div> <br>
+					<div style="margin: 0 auto"
+						class="input-group input-group-xs input-trigger"
+						ng-show="item.$editing">
+						<input type="text" ng-model="item.reply.delivery"
+							ng-init="item.reply.delivery=parseDate(item.delivery)"
+							class="form-control" placeholder="回复交期"
+							datepicker-popup="yyyy-MM-dd" is-open="item.$opened"
+							min-date="order.date" ng-required="true" current-text="今天"
+							clear-text="清除" close-text="关闭"
+							datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"
+							ng-focus="openDatePicker($event, item)"> <span
+							class="input-group-btn">
+							<button type="button" class="btn btn-default"
+								ng-click="openDatePicker($event, item)">
+								<i class="fa fa-calendar"></i>
+							</button>
+						</span>
 					</div>
 				</td>
 				<td class="text-center br-l">
 					<div>数量完成48%</div>
 					<div>交期未达标</div>
 					<div style="margin: 0 auto" ng-show="item.$editing">
-						<input type="text" ng-model="item.reply.remark" class="form-control input-xs" placeholder="回复备注">
+						<input type="text" ng-model="item.reply.remark"
+							class="form-control input-xs" placeholder="回复备注">
 					</div>
 				</td>
 				<td class="text-center br-l">
@@ -214,9 +227,13 @@
 						<a ng-click="item.$editing=!item.$editing">回复</a>
 					</div>
 					<div ng-show="item.$editing">
-						<div><a ng-click="item.$editing=!item.$editing">取消</a></div>
+						<div>
+							<a ng-click="item.$editing=!item.$editing">取消</a>
+						</div>
 						<br>
-						<div><a ng-click="onReplyClick(item)" class="text-inverse">确认回复</a></div>
+						<div>
+							<a ng-click="onReplyClick(item)" class="text-inverse">确认回复</a>
+						</div>
 					</div>
 				</td>
 			</tr>