Jelajahi Sumber

平台新增采购订单税率问题的处理,优化清理购物车数据的速度

hejq 8 tahun lalu
induk
melakukan
8645df0965

+ 16 - 23
src/main/java/com/uas/platform/b2b/controller/BaseInfoController.java

@@ -1,28 +1,5 @@
 package com.uas.platform.b2b.controller;
 
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
-import org.apache.poi.ss.usermodel.Workbook;
-import org.apache.poi.xssf.usermodel.XSSFWorkbook;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.domain.Sort.Direction;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-import org.springframework.ui.ModelMap;
-import org.springframework.web.bind.annotation.PathVariable;
-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.ResponseBody;
-import org.springframework.web.bind.annotation.ResponseStatus;
-import org.springframework.web.bind.annotation.RestController;
-import org.springframework.web.servlet.ModelAndView;
-
 import com.alibaba.fastjson.JSONObject;
 import com.uas.account.util.AccountUtils;
 import com.uas.platform.b2b.model.Enterprise;
@@ -51,6 +28,22 @@ 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 org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Sort.Direction;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.servlet.ModelAndView;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
 
 /**
  * 基础资料设置<br>

+ 6 - 11
src/main/java/com/uas/platform/b2b/controller/CartController.java

@@ -1,16 +1,5 @@
 package com.uas.platform.b2b.controller;
 
-import java.util.ArrayList;
-import java.util.List;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.ui.ModelMap;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.ResponseBody;
-import org.springframework.web.bind.annotation.RestController;
-
 import com.alibaba.dubbo.common.utils.CollectionUtils;
 import com.alibaba.fastjson.JSONObject;
 import com.uas.platform.b2b.model.PurchaseOrderAll;
@@ -30,6 +19,12 @@ 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 org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * 购物车

+ 19 - 12
src/main/java/com/uas/platform/b2b/controller/RoleController.java

@@ -1,22 +1,18 @@
 package com.uas.platform.b2b.controller;
 
-import java.util.List;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.PathVariable;
-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.ResponseBody;
-
 import com.uas.platform.b2b.model.Role;
 import com.uas.platform.b2b.service.RoleService;
 import com.uas.platform.b2b.support.UsageBufferedLogger;
 import com.uas.platform.core.logging.BufferedLoggerManager;
 import com.uas.platform.core.util.serializer.FlexJsonUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
 
 /**
  * 账户管理--角色
@@ -71,4 +67,15 @@ public class RoleController {
 		logger.log("角色", "删除角色", role.getDuty(), role.getDesc(), role.getId());
 		return new ResponseEntity<String>(HttpStatus.OK);
 	}
+
+	/**
+	 * 查询当前用户在当前企业的角色是否是管理员或者销售经理
+	 *
+	 * @return
+	 */
+	@RequestMapping(value = "/currentRole", method =  RequestMethod.GET)
+	@ResponseBody
+	public ModelMap getCurrentRoles(){
+		return roleService.getCurrentRoles();
+	}
 }

+ 7 - 7
src/main/java/com/uas/platform/b2b/controller/UserController.java

@@ -198,13 +198,13 @@ public class UserController {
 	 * 
 	 * @return
 	 */
-	@RequestMapping(method = RequestMethod.PUT)
-	public ResponseEntity<String> saveUser(@RequestBody String json, HttpServletRequest request) {
-		User user = FlexJsonUtils.fromJson(json, User.class);
-		user = userService.updateUserInfo(user);
-		if (user != null) {
-			logger.log("用户信息", "修改用户信息,UU:" + user.getUserUU());
-			if (SystemSession.getUser().getUserUU().equals(user.getUserUU()))
+			@RequestMapping(method = RequestMethod.PUT)
+			public ResponseEntity<String> saveUser(@RequestBody String json, HttpServletRequest request) {
+				User user = FlexJsonUtils.fromJson(json, User.class);
+				user = userService.updateUserInfo(user);
+				if (user != null) {
+					logger.log("用户信息", "修改用户信息,UU:" + user.getUserUU());
+					if (SystemSession.getUser().getUserUU().equals(user.getUserUU()))
 				request.getSession().setAttribute("user", user);
 		}
 		return new ResponseEntity<String>(HttpStatus.OK);

+ 4 - 1
src/main/java/com/uas/platform/b2b/model/Cart.java

@@ -1,5 +1,7 @@
 package com.uas.platform.b2b.model;
 
+import org.hibernate.annotations.Where;
+
 import java.io.Serializable;
 import java.util.Date;
 import java.util.Set;
@@ -167,7 +169,8 @@ public class Cart implements Serializable {
 	/**
 	 * 购物车明细
 	 */
-	@OneToMany(mappedBy = "cart", cascade = { CascadeType.REFRESH }, fetch = FetchType.EAGER)
+	@OneToMany(mappedBy = "cart",  cascade = { CascadeType.REFRESH, CascadeType.PERSIST, CascadeType.REMOVE,
+			CascadeType.MERGE }, fetch = FetchType.EAGER)
 	@OrderBy("number")
 	private Set<CartDetail> cartDetails;
 

+ 482 - 0
src/main/java/com/uas/platform/b2b/model/PurchaseOrderCart.java

@@ -0,0 +1,482 @@
+package com.uas.platform.b2b.model;
+
+import org.hibernate.annotations.Where;
+
+import javax.persistence.*;
+import java.util.Date;
+import java.util.Set;
+
+/**
+ * 平台里面,以供应商的角度来查看采购订单 <br>
+ * 级联采购明细<br>
+ * 已结案采购单
+ * 
+ * @author yingp
+ * 
+ */
+@Table(name = "purc$orders", indexes = { @Index(name = "purc$orders_date", columnList = "pu_date") })
+@Where(clause = "pu_status = 311")
+@Entity
+public class PurchaseOrderCart {
+
+	@Id
+	@Column(name = "pu_id")
+	private Long id;
+
+	/**
+	 * 采购企业UU
+	 */
+	@Column(name = "pu_enuu")
+	private Long enUU;
+
+	/**
+	 * 采购企业
+	 */
+	@OneToOne(cascade = { CascadeType.MERGE, CascadeType.REFRESH })
+	@JoinColumn(name = "pu_enuu", insertable = false, updatable = false)
+	private EnterpriseInfo enterprise;
+
+	/**
+	 * 采购单所属采购员
+	 */
+	@OneToOne(cascade = { CascadeType.REFRESH })
+	@JoinColumn(name = "pu_useruu", insertable = false, updatable = false)
+	private UserBaseInfo user;
+
+	/**
+	 * 采购单所属采购员UU
+	 */
+	@Column(name = "pu_useruu")
+	private Long userUU;
+
+	/**
+	 * 采购单号
+	 */
+	@Column(name = "pu_code")
+	private String code;
+
+	/**
+	 * 采购类型
+	 */
+	@Column(name = "pu_type")
+	private String type;
+
+	/**
+	 * 单据归属日期
+	 */
+	@Column(name = "pu_date")
+	private Date date;
+
+	/**
+	 * 录单人
+	 */
+	@Column(name = "pu_recorder")
+	private String recorder;
+
+	/**
+	 * 审核人
+	 */
+	@Column(name = "pu_auditor")
+	private String auditor;
+
+	/**
+	 * 供应商UU
+	 */
+	@Column(name = "pu_venduu")
+	private Long vendUU;
+
+	/**
+	 * 供应商联系人UU
+	 */
+	@Column(name = "pu_venduseruu")
+	private Long vendUserUU;
+
+	/**
+	 * 收货地址
+	 */
+	@Column(name = "pu_shipaddress")
+	private String shipAddress;
+
+	/**
+	 * 备注
+	 */
+	@Column(name = "pu_remark")
+	private String remark;
+
+	/**
+	 * 付款币种
+	 */
+	@Column(name = "pu_currency")
+	private String currency;
+
+	/**
+	 * 汇率
+	 */
+	@Column(name = "pu_rate")
+	private Float rate;
+
+	/**
+	 * 付款方式
+	 */
+	@Column(name = "pu_payments")
+	private String payments;
+
+	/**
+	 * 处理状态(已回复、未回复),全部回复后改为已回复
+	 */
+	@Column(name = "pu_status")
+	private Short status;
+
+	/**
+	 * 从平台传到供应商ERP的状态
+	 */
+	@Column(name = "pu_sendstatus")
+	private Short sendStatus;
+
+	/**
+	 * 采购单明细
+	 */
+	@OneToMany(mappedBy = "order", cascade = { CascadeType.REFRESH, CascadeType.PERSIST, CascadeType.REMOVE,
+			CascadeType.MERGE }, fetch = FetchType.EAGER)
+	@OrderBy("number")
+	private Set<PurchaseOrderCartItem> orderItems;
+
+	/**
+	 * 1表示该采购单的明细至少有一条结案的情况
+	 */
+	@Column(name = "pu_end")
+	private Short end;
+	
+	/**
+	 * 显示状态(0 已查看 , 1 未查看, 2 置顶)
+	 */
+	@Column(name = "pu_display")
+	private Short display;
+
+	public Short getCustPrint() {
+		return custPrint;
+	}
+
+	public void setCustPrint(Short custPrint) {
+		this.custPrint = custPrint;
+	}
+
+	/**
+	 * 打印次数(供应商)
+	 */
+	@Column(name = "pu_print")
+	private Short print;
+
+	/**
+	 * 打印次数(采购方)
+	 */
+	@Column(name = "pu_custprint")
+	private Short custPrint;
+
+	/**
+	 * 应付供应商名称
+	 */
+	@Column(name = "pu_receivename")
+	private String receiveName;
+
+	/**
+	 * 客户公司名称
+	 */
+	@Column(name = "pu_cop")
+	private String cop;
+
+	/**
+	 * 应付供应商编号
+	 */
+	@Column(name = "pu_receivecode")
+	private String receiveCode;
+	
+	/**
+	 * 供应商名称
+	 */
+	@Transient
+	private String enName;
+
+	@Column(name = "pu_purpose")
+	private String purpose; // 用途,
+
+	@Column(name = "pu_arcustcode")
+	private String arCustCode; // 买家应收客户,
+
+	@Column(name = "pu_shcustcode")
+	private String shCustCode; // 收货客户,
+
+	@Column(name = "pu_refcode")
+	private String refCode; // 销售单号
+
+	@Column(name = "pu_custcode")
+	private String custCode; // 客户编号,
+
+	@Column(name = "pu_custname")
+	private String custName; // 客户名称。
+
+	public String getPurpose() {
+		return purpose;
+	}
+
+	public void setPurpose(String purpose) {
+		this.purpose = purpose;
+	}
+
+	public String getArCustCode() {
+		return arCustCode;
+	}
+
+	public void setArCustCode(String arCustCode) {
+		this.arCustCode = arCustCode;
+	}
+
+	public String getShCustCode() {
+		return shCustCode;
+	}
+
+	public void setShCustCode(String shCustCode) {
+		this.shCustCode = shCustCode;
+	}
+
+	public String getRefCode() {
+		return refCode;
+	}
+
+	public void setRefCode(String refCode) {
+		this.refCode = refCode;
+	}
+
+	public String getCustCode() {
+		return custCode;
+	}
+
+	public void setCustCode(String custCode) {
+		this.custCode = custCode;
+	}
+
+	public String getCustName() {
+		return custName;
+	}
+
+	public void setCustName(String custName) {
+		this.custName = custName;
+	}
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public Long getEnUU() {
+		return enUU;
+	}
+
+	public void setEnUU(Long enUU) {
+		this.enUU = enUU;
+	}
+
+	public EnterpriseInfo getEnterprise() {
+		return enterprise;
+	}
+
+	public void setEnterprise(EnterpriseInfo enterprise) {
+		this.enterprise = enterprise;
+	}
+
+	public UserBaseInfo getUser() {
+		return user;
+	}
+
+	public void setUser(UserBaseInfo user) {
+		this.user = user;
+	}
+
+	public Long getUserUU() {
+		return userUU;
+	}
+
+	public void setUserUU(Long userUU) {
+		this.userUU = userUU;
+	}
+
+	public String getCode() {
+		return code;
+	}
+
+	public void setCode(String code) {
+		this.code = code;
+	}
+
+	public String getType() {
+		return type;
+	}
+
+	public void setType(String type) {
+		this.type = type;
+	}
+
+	public Date getDate() {
+		return date;
+	}
+
+	public void setDate(Date date) {
+		this.date = date;
+	}
+
+	public String getRecorder() {
+		return recorder;
+	}
+
+	public void setRecorder(String recorder) {
+		this.recorder = recorder;
+	}
+
+	public String getAuditor() {
+		return auditor;
+	}
+
+	public void setAuditor(String auditor) {
+		this.auditor = auditor;
+	}
+
+	public Long getVendUU() {
+		return vendUU;
+	}
+
+	public void setVendUU(Long vendUU) {
+		this.vendUU = vendUU;
+	}
+
+	public Long getVendUserUU() {
+		return vendUserUU;
+	}
+
+	public void setVendUserUU(Long vendUserUU) {
+		this.vendUserUU = vendUserUU;
+	}
+
+	public String getShipAddress() {
+		return shipAddress;
+	}
+
+	public void setShipAddress(String shipAddress) {
+		this.shipAddress = shipAddress;
+	}
+
+	public String getRemark() {
+		return remark;
+	}
+
+	public void setRemark(String remark) {
+		this.remark = remark;
+	}
+
+	public String getCurrency() {
+		return currency;
+	}
+
+	public void setCurrency(String currency) {
+		this.currency = currency;
+	}
+
+	public Float getRate() {
+		return rate;
+	}
+
+	public void setRate(Float rate) {
+		this.rate = rate;
+	}
+
+	public String getPayments() {
+		return payments;
+	}
+
+	public void setPayments(String payments) {
+		this.payments = payments;
+	}
+
+	public Short getStatus() {
+		return status;
+	}
+
+	public void setStatus(Short status) {
+		this.status = status;
+	}
+
+	public Short getSendStatus() {
+		return sendStatus;
+	}
+
+	public void setSendStatus(Short sendStatus) {
+		this.sendStatus = sendStatus;
+	}
+
+	public Set<PurchaseOrderCartItem> getOrderItems() {
+		return orderItems;
+	}
+
+	public void setOrderItems(Set<PurchaseOrderCartItem> orderItems) {
+		this.orderItems = orderItems;
+	}
+
+	public Short getEnd() {
+		return end;
+	}
+
+	public void setEnd(Short end) {
+		this.end = end;
+	}
+
+	public Short getDisplay() {
+		if(this.display == null) this.display = 0;
+		return display;
+	}
+
+	public void setDisplay(Short display) {
+		this.display = display;
+	}
+
+	public Short getPrint() {
+		return print;
+	}
+
+	public void setPrint(Short print) {
+		this.print = print;
+	}
+
+	public String getReceiveName() {
+		return receiveName;
+	}
+
+	public void setReceiveName(String receiveName) {
+		this.receiveName = receiveName;
+	}
+
+	public String getReceiveCode() {
+		return receiveCode;
+	}
+
+	public void setReceiveCode(String receiveCode) {
+		this.receiveCode = receiveCode;
+	}
+
+	public String getEnName() {
+		return enName;
+	}
+
+	public void setEnName(String enName) {
+		this.enName = enName;
+	}
+
+	public String getCop() {
+		return cop;
+	}
+
+	public void setCop(String cop) {
+		this.cop = cop;
+	}
+}

+ 331 - 0
src/main/java/com/uas/platform/b2b/model/PurchaseOrderCartItem.java

@@ -0,0 +1,331 @@
+package com.uas.platform.b2b.model;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import org.codehaus.jackson.annotate.JsonIgnore;
+import org.hibernate.annotations.Where;
+
+import javax.persistence.*;
+import java.util.Date;
+
+@Table(name = "purc$orderitems")
+@Entity
+public class PurchaseOrderCartItem {
+
+	@Id
+	@Column(name = "pd_id")
+	private Long id;
+
+	/**
+	 * 序号
+	 */
+	@Column(name = "pd_number")
+	private Short number;
+
+	/**
+	 * 采购订单
+	 */
+	@ManyToOne(cascade = CascadeType.ALL, optional = true)
+	@JoinColumn(name = "pd_puid", nullable = false)
+	private PurchaseOrderCart order;
+
+	/**
+	 * 产品ID
+	 */
+	@Column(name = "pd_prid")
+	private Long productId;
+
+	/**
+	 * 产品
+	 */
+	@OneToOne(cascade = { CascadeType.REFRESH })
+	@JoinColumn(name = "pd_prid", insertable = false, updatable = false)
+	private Product product;
+
+	/**
+	 * 数量
+	 */
+	@Column(name = "pd_qty")
+	private Double qty;
+
+	/**
+	 * 已回复的数量
+	 */
+	@Column(name = "pd_replyqty")
+	private Double replyQty;
+
+	/**
+	 * (最近一次)回复的交期
+	 */
+	@Column(name = "pd_replydelivery")
+	private Date replyDelivery;
+
+	/**
+	 * (最近一次)回复的备注
+	 */
+	@Column(name = "pd_replyremark")
+	private String replyRemark;
+
+	/**
+	 * 备注
+	 */
+	@Column(name = "pd_remark")
+	private String remark;
+
+	/**
+	 * 送货工厂
+	 */
+	@Column(name = "pd_factory")
+	private String factory;
+
+	/**
+	 * 供应商规格
+	 */
+	@Column(name = "pd_vendspec")
+	private String vendspec;
+
+	public String getVendspec() {
+		return vendspec;
+	}
+
+	public void setVendspec(String vendspec) {
+		this.vendspec = vendspec;
+	}
+
+	/**
+	 * 含税单价
+	 */
+	@Column(name = "pd_price")
+	private Double price;
+
+	/**
+	 * 税率
+	 */
+	@Column(name = "pd_taxrate")
+	private Float taxrate;
+
+	/**
+	 * 处理状态(已回复、未回复),全部回复后改为已回复
+	 */
+	@Column(name = "pd_status", insertable = false, updatable = false)
+	private Short status;
+
+	/**
+	 * 含税金额
+	 */
+	@Column(name = "pd_amount", insertable = false, updatable = false)
+	private Double amount;
+
+	/**
+	 * 不含税单价
+	 */
+	@Column(name = "pd_notaxprice", insertable = false, updatable = false)
+	private Double noTaxPrice;
+
+	/**
+	 * 不含税金额
+	 */
+	@Column(name = "pd_notaxamount", insertable = false, updatable = false)
+	private Double noTaxAmount;
+
+	/**
+	 * 交货日期
+	 */
+	@Column(name = "pd_delivery")
+	private Date delivery;
+
+	/**
+	 * 客户已验收数量
+	 */
+	@Column(name = "pd_acceptqty")
+	private Double acceptQty;
+
+	/**
+	 * 客户验退数量
+	 */
+	@Column(name = "pd_returnqty")
+	private Double returnQty;
+
+	/**
+	 * 关键词查询相关
+	 */
+	@Transient
+	private Boolean key;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public Short getNumber() {
+		return number;
+	}
+
+	public void setNumber(Short number) {
+		this.number = number;
+	}
+
+	public Long getProductId() {
+		return productId;
+	}
+
+	public void setProductId(Long productId) {
+		this.productId = productId;
+	}
+
+	public Product getProduct() {
+		return product;
+	}
+
+	public void setProduct(Product product) {
+		this.product = product;
+	}
+
+	public Double getQty() {
+		return qty;
+	}
+
+	public void setQty(Double qty) {
+		this.qty = qty;
+	}
+
+	public Double getReplyQty() {
+		return replyQty;
+	}
+
+	public void setReplyQty(Double replyQty) {
+		this.replyQty = replyQty;
+	}
+
+	public String getRemark() {
+		return remark;
+	}
+
+	public void setRemark(String remark) {
+		this.remark = remark;
+	}
+
+	public Double getPrice() {
+		return price;
+	}
+
+	public void setPrice(Double price) {
+		this.price = price;
+	}
+
+	public Float getTaxrate() {
+		return taxrate;
+	}
+
+	public void setTaxrate(Float taxrate) {
+		this.taxrate = taxrate;
+	}
+
+	public Double getAmount() {
+		return amount;
+	}
+
+	public void setAmount(Double amount) {
+		this.amount = amount;
+	}
+
+	public Double getNoTaxPrice() {
+		return noTaxPrice;
+	}
+
+	public void setNoTaxPrice(Double noTaxPrice) {
+		this.noTaxPrice = noTaxPrice;
+	}
+
+	public Double getNoTaxAmount() {
+		return noTaxAmount;
+	}
+
+	public void setNoTaxAmount(Double noTaxAmount) {
+		this.noTaxAmount = noTaxAmount;
+	}
+
+	public Date getDelivery() {
+		return delivery;
+	}
+
+	public void setDelivery(Date delivery) {
+		this.delivery = delivery;
+	}
+
+	public Date getReplyDelivery() {
+		return replyDelivery;
+	}
+
+	public void setReplyDelivery(Date replyDelivery) {
+		this.replyDelivery = replyDelivery;
+	}
+
+	public String getReplyRemark() {
+		return replyRemark;
+	}
+
+	public void setReplyRemark(String replyRemark) {
+		this.replyRemark = replyRemark;
+	}
+
+	public Short getStatus() {
+		return status;
+	}
+
+	public void setStatus(Short status) {
+		this.status = status;
+	}
+
+	@JsonIgnore
+	@JSONField(serialize = false)
+	public PurchaseOrderCart getOrder() {
+		return order;
+	}
+
+	public void setOrder(PurchaseOrderCart order) {
+		this.order = order;
+	}
+
+	public Double getAcceptQty() {
+		return acceptQty;
+	}
+
+	public void setAcceptQty(Double acceptQty) {
+		this.acceptQty = acceptQty;
+	}
+
+	public Double getReturnQty() {
+		return returnQty;
+	}
+
+	public void setReturnQty(Double returnQty) {
+		this.returnQty = returnQty;
+	}
+
+	public Boolean getKey() {
+		return key;
+	}
+
+	public void setKey(Boolean key) {
+		this.key = key;
+	}
+
+	public String getFactory() {
+		return factory;
+	}
+
+	public void setFactory(String factory) {
+		this.factory = factory;
+	}
+
+	public double getBalance() {
+		double qtyNum, returnQtyNum, acceptQtyNum;
+		qtyNum = qty == null ? 0 : qty;
+		returnQtyNum = returnQty == null ? 0 : returnQty;
+		acceptQtyNum = acceptQty == null ? 0 : acceptQty;
+		return qtyNum + returnQtyNum - acceptQtyNum;
+	}
+}

+ 6 - 1
src/main/java/com/uas/platform/b2b/service/impl/BaseInfoServiceImpl.java

@@ -608,7 +608,12 @@ public class BaseInfoServiceImpl implements BaseInfoService {
 					orderDetail.setNumber(i);
 					orderDetail.setPuid(order.getId());
 					orderDetail.setPrice(Double.valueOf(orderitem.getPrice()));
-					orderDetail.setTaxrate(orderitem.getTaxrate());
+					// 这里根据币别设置税率信息,非RMB全部设置0
+					if(!order.getCurrency().equals("RMB")) {
+						orderDetail.setTaxrate((float) 0);
+					} else {
+						orderDetail.setTaxrate(orderitem.getTaxrate());
+					}
 				} else {
 					orderDetail = purchaseOrderAllItemDao.findOne(orderitem.getId());
 					orderDetail.setRemark(orderitem.getRemark());

+ 16 - 20
src/main/java/com/uas/platform/b2b/service/impl/CartServiceImpl.java

@@ -2,9 +2,11 @@ package com.uas.platform.b2b.service.impl;
 
 import com.uas.platform.b2b.dao.PurchaseOrderAllDao;
 import com.uas.platform.b2b.dao.PurchaseOrderAllItemDao;
+import com.uas.platform.b2b.dao.PurchaseOrderCartDao;
 import com.uas.platform.b2b.dao.VendorDao;
 import com.uas.platform.b2b.model.PurchaseOrderAll;
 import com.uas.platform.b2b.model.PurchaseOrderAllItem;
+import com.uas.platform.b2b.model.PurchaseOrderCart;
 import com.uas.platform.b2b.model.Vendor;
 import com.uas.platform.b2b.service.CartService;
 import com.uas.platform.b2b.support.SystemSession;
@@ -44,6 +46,9 @@ public class CartServiceImpl implements CartService {
 	@Autowired
 	private PurchaseOrderAllDao purchaseOrderAllDao;
 
+	@Autowired
+	private PurchaseOrderCartDao cartDao;
+
 	@Override
 	public SPage<PurchaseOrderAll> getCartList(PageParams params, String keyword) {
 		SPage<PurchaseOrderAll> orders = new SPage<PurchaseOrderAll>();
@@ -85,16 +90,13 @@ public class CartServiceImpl implements CartService {
 	@Override
 	public ModelMap deleteCart(Long id) {
 		ModelMap map = new ModelMap();
-		PurchaseOrderAll purcOrder = purchaseOrderAllDao.findOne(id);
-		if (purcOrder != null && !CollectionUtils.isEmpty(purcOrder.getOrderItems())) {
-			purchaseOrderAllItemDao.delete(purcOrder.getOrderItems());
-			purchaseOrderAllDao.delete(id);
-		} else if (purcOrder != null && CollectionUtils.isEmpty(purcOrder.getOrderItems())) {
-			purchaseOrderAllDao.delete(id);
-		} else {
+		// 采用可以级联删除的dao方法,更加快速
+		try {
+			cartDao.delete(id);
+			map.put("success", "删除成功");
+		} catch (Exception e) {
 			map.put("error", "该单据不存在,可能已被删除");
 		}
-		map.put("success", "删除成功");
 		return map;
 	}
 
@@ -114,20 +116,14 @@ public class CartServiceImpl implements CartService {
 	@Override
 	public ModelMap deleteCarts() {
 		ModelMap map = new ModelMap();
-		List<PurchaseOrderAll> orders = purchaseOrderAllDao
-				.findByEnUUAndStatus(SystemSession.getUser().getEnterprise().getUu(), (short) Status.UNAUDIT.value());
+		List<PurchaseOrderCart> orders = cartDao.findByEnUUAndStatus(SystemSession.getUser().getEnterprise().getUu(), (short) Status.UNAUDIT.value());
 		if (!CollectionUtils.isEmpty(orders)) {
-			for (PurchaseOrderAll order : orders) {
-				if (!CollectionUtils.isEmpty(order.getOrderItems())) {
-					for (PurchaseOrderAllItem detail : order.getOrderItems()) {
-						purchaseOrderAllItemDao.delete(detail.getId());
-					}
-				}
+			try {
+				cartDao.delete(orders);
+				map.put("success", "购物车已清空");
+			} catch (Exception e) {
+				map.put("error", "购物车删除失败");
 			}
-			purchaseOrderAllDao.delete(orders);
-			map.put("success", "购物车已清空");
-		} else {
-			map.put("error", "购物车删除失败");
 		}
 		return map;
 	}

+ 1 - 1
src/main/webapp/resources/tpl/index/purc/addOrder.html

@@ -142,7 +142,7 @@
 								style="cursor: pointer; width: 568px;" /></span>
 						</div>
 					</li>
-					<li>
+					<li ng-show="false">
 						<div class="fl">
 							<em>税率:</em> <span class="fl" required="required"
 								ng-if="order.currency == 'RMB'"> <select

+ 2 - 2
src/main/webapp/resources/tpl/index/purc/cart_detail.html

@@ -138,7 +138,7 @@
 							</span>
 						</div>
 					</li>
-					<!--<li>
+					<li ng-show="false">
 						<div class="fl">
 							<em>税率:</em> 
 							<span class="fl" required="required" ng-if="order.currency == 'RMB'"> 
@@ -151,7 +151,7 @@
 								class="text select02 wid100" value="0" readonly>
 							</span>
 						</div>
-					</li>-->
+					</li>
 				</ul>
 				<div class="com_title01"
 					ng-if="order.orderItems.length == 0 && order.receiveCode">