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

修改询价单的物料信息保存冗余字段

suntg 7 лет назад
Родитель
Сommit
8b33d5c426

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

@@ -298,16 +298,14 @@ public class InquiryDetail {
 		inquiryItem.setUserUU(this.ve_buyeruu);
 		inquiryItem.setVendUU(this.ve_uu);
 		inquiryItem.setVendUserUU(this.ve_contactuu);
-		Product product = new Product();
-		product.setCode(this.id_prodcode);
-		product.setEnUU(SystemSession.getUser().getEnterprise().getUu());
-		inquiryItem.setProduct(product);
+		inquiryItem.setProductCode(this.id_prodcode);
 		inquiryItem.setSourceId(this.id_id);
 		inquiryItem.setStatus((short) Status.NOT_REPLY.value());
 		inquiryItem.setSendStatus((short) Status.NOT_UPLOAD.value());
 		inquiryItem.setFromDate(this.id_myfromdate);
 		inquiryItem.setToDate(this.id_mytodate);
-		if (!CollectionUtils.isEmpty(this.dets)) {// 都不会为空
+		// 都不会为空
+		if (!CollectionUtils.isEmpty(this.dets)) {
 			Set<PurchaseInquiryReply> replies = new HashSet<PurchaseInquiryReply>();
 			for (InquiryDetailDet det : this.dets) {
 				replies.add(det.convert());

+ 25 - 7
src/main/java/com/uas/platform/b2b/erp/service/impl/InquiryServiceImpl.java

@@ -77,6 +77,11 @@ public class InquiryServiceImpl implements InquiryService {
         // 应用来源
 		final String appId = "uas";
 		long enUU = SystemSession.getUser().getEnterprise().getUu();
+
+		// 获取物料编号集合
+		Set<String> productCodes = getProductCodes(inquiries);
+		// TODO 获取需要用到的物料
+		Map<String, ProductInfo> products = new HashMap<>();
 		for (Inquiry inquiry : inquiries) {
 			// 先查看是否已存在
 			List<PurchaseInquiry> existInquiries = purchaseInquiryDao.findByEnUUAndCode(enUU, inquiry.getIn_code());
@@ -117,17 +122,15 @@ public class InquiryServiceImpl implements InquiryService {
 							}
 						}
 						if (vendor != null) {
-							// 取平台的产品ID
-							Product product = item.getProduct();
-							List<Product> products = productDao.findByEnUUAndCode(product.getEnUU(), product.getCode());
-							if (products.size() > 0) {
-								item.setProduct(products.get(0));
-								item.setProductId(products.get(0).getId());
+							// 获取物料服务的物料信息
+							ProductInfo product = products.get(item.getProductCode());
+							if (product != null) {
+								item.setProduct(product);
 							} else {
 								if (StringUtils.isEmpty(sign)) {
 									sign = StringUtil.uuid();
 								}
-                                productList.add(new NotExistProduct(product.getCode(), enUU, OrderType.inquiry.name(), inquiry.getIn_code(), item.getNumber(), sign));
+                                productList.add(new NotExistProduct(item.getProductCode(), enUU, OrderType.inquiry.name(), inquiry.getIn_code(), item.getNumber(), sign));
 							}
 							item.setInquiry(purchaseInquiry);
 							PurchaseInquiryTemp temp = new PurchaseInquiryTemp();
@@ -311,4 +314,19 @@ public class InquiryServiceImpl implements InquiryService {
 		}
 		return inquiryList;
 	}
+
+	/**
+	 * 获取询价单关联的物料编号集合
+	 * @param inquiries
+	 * @return
+	 */
+	private Set<String> getProductCodes(List<Inquiry> inquiries) {
+		Set<String> productCodes = new HashSet<String>();
+		for (Inquiry inquiry : inquiries) {
+			for (InquiryDetail inquiryDetail : inquiry.getDetails()) {
+				productCodes.add(inquiryDetail.getId_prodcode());
+			}
+		}
+		return productCodes;
+	}
 }

+ 170 - 0
src/main/java/com/uas/platform/b2b/model/ProductInfo.java

@@ -0,0 +1,170 @@
+package com.uas.platform.b2b.model;
+
+/**
+ * 物料信息,不对应数据库
+ * 
+ * @author suntg
+ * @date 2018年7月11日15:39:50
+ */
+public class ProductInfo {
+
+	private Long id;
+
+	/**
+	 * 商品信息标题
+	 */
+	private String title;
+
+	/**
+	 * 产品编号
+	 */
+	private String code;
+
+	/**
+	 * 产品规格
+	 */
+	private String spec;
+
+	/**
+	 * 单位
+	 */
+	private String unit;
+
+	/**
+	 * 所属企业UU
+	 */
+	private Long enUU;
+
+	/**
+	 * 个人UU
+	 */
+	private Long userUU;
+
+	/**
+	 * 采购提前期
+	 */
+	private Double leadtime;
+
+	/**
+	 * 备货提前期(天数)
+	 */
+	private Double ltinstock;
+
+	/**
+	 * UUID 标准料号
+	 *
+	 * @return
+	 */
+	private String cmpUuId;
+
+	/**
+	 * 型号(平台)
+	 */
+	private String pcmpcode;
+
+	/**
+	 * 是否是标准物料<br>
+	 * 1.YES<br>
+	 * 0.NO
+	 */
+	private Short standard;
+
+	public ProductInfo() {
+	}
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public String getTitle() {
+		return title;
+	}
+
+	public void setTitle(String title) {
+		this.title = title;
+	}
+
+	public String getCode() {
+		return code;
+	}
+
+	public void setCode(String code) {
+		this.code = code;
+	}
+
+	public String getSpec() {
+		return spec;
+	}
+
+	public void setSpec(String spec) {
+		this.spec = spec;
+	}
+
+	public String getUnit() {
+		return unit;
+	}
+
+	public void setUnit(String unit) {
+		this.unit = unit;
+	}
+
+	public Long getEnUU() {
+		return enUU;
+	}
+
+	public void setEnUU(Long enUU) {
+		this.enUU = enUU;
+	}
+
+	public Long getUserUU() {
+		return userUU;
+	}
+
+	public void setUserUU(Long userUU) {
+		this.userUU = userUU;
+	}
+
+	public Double getLeadtime() {
+		return leadtime;
+	}
+
+	public void setLeadtime(Double leadtime) {
+		this.leadtime = leadtime;
+	}
+
+	public Double getLtinstock() {
+		return ltinstock;
+	}
+
+	public void setLtinstock(Double ltinstock) {
+		this.ltinstock = ltinstock;
+	}
+
+	public String getCmpUuId() {
+		return cmpUuId;
+	}
+
+	public void setCmpUuId(String cmpUuId) {
+		this.cmpUuId = cmpUuId;
+	}
+
+	public String getPcmpcode() {
+		return pcmpcode;
+	}
+
+	public void setPcmpcode(String pcmpcode) {
+		this.pcmpcode = pcmpcode;
+	}
+
+	public Short getStandard() {
+		return standard;
+	}
+
+	public void setStandard(Short standard) {
+		this.standard = standard;
+	}
+}

+ 79 - 6
src/main/java/com/uas/platform/b2b/model/PurchaseInquiryDetail.java

@@ -69,15 +69,41 @@ public class PurchaseInquiryDetail {
 	private String userCode;
 
 	/**
-	 * 产品
+	 * 物料
 	 */
-	@OneToOne(cascade = { CascadeType.REFRESH })
-	@JoinColumn(name = "id_prid", insertable = false, updatable = false)
-	private Product product;
+	@Transient
+	private ProductInfo product;
 
+	/**
+	 * 物料ID
+	 */
 	@Column(name = "id_prid")
 	private Long productId;
 
+	/**
+	 * 物料名称
+	 */
+	@Column(name = "id_prtitle")
+	private String productTitle;
+
+	/**
+	 * 物料编号
+	 */
+	@Column(name = "id_prcode")
+	private String productCode;
+
+	/**
+	 * 物料规格
+	 */
+	@Column(name = "id_prspec", length = 1000)
+	private String productSpec;
+
+	/**
+	 * 物料单位
+	 */
+	@Column(name = "id_prunit")
+	private String productUnit;
+
 	/**
 	 * 币种
 	 */
@@ -332,14 +358,61 @@ public class PurchaseInquiryDetail {
 		this.inquiry = inquiry;
 	}
 
-	public Product getProduct() {
+	public ProductInfo getProduct() {
+		if (product == null) {
+			product = new ProductInfo();
+			product.setId(productId);
+			product.setTitle(productTitle);
+			product.setCode(productCode);
+			product.setSpec(productSpec);
+			product.setUnit(productUnit);
+		}
 		return product;
 	}
 
-	public void setProduct(Product product) {
+	public void setProduct(ProductInfo product) {
+		if (product != null) {
+			this.productId = product.getId();
+			this.productTitle = product.getTitle();
+			this.productCode = product.getCode();
+			this.productSpec = product.getSpec();
+			this.productUnit = product.getUnit();
+		}
 		this.product = product;
 	}
 
+	public String getProductTitle() {
+		return productTitle;
+	}
+
+	public void setProductTitle(String productTitle) {
+		this.productTitle = productTitle;
+	}
+
+	public String getProductCode() {
+		return productCode;
+	}
+
+	public void setProductCode(String productCode) {
+		this.productCode = productCode;
+	}
+
+	public String getProductSpec() {
+		return productSpec;
+	}
+
+	public void setProductSpec(String productSpec) {
+		this.productSpec = productSpec;
+	}
+
+	public String getProductUnit() {
+		return productUnit;
+	}
+
+	public void setProductUnit(String productUnit) {
+		this.productUnit = productUnit;
+	}
+
 	public Long getProductId() {
 		return productId;
 	}

+ 71 - 6
src/main/java/com/uas/platform/b2b/model/PurchaseInquiryItem.java

@@ -69,15 +69,41 @@ public class PurchaseInquiryItem {
 	private String userCode;
 
 	/**
-	 * 产品
+	 * 物料
 	 */
-	@OneToOne(cascade = { CascadeType.REFRESH })
-	@JoinColumn(name = "id_prid", insertable = false, updatable = false)
-	private Product product;
+	@Transient
+	private ProductInfo product;
 
+	/**
+	 * 物料ID
+	 */
 	@Column(name = "id_prid")
 	private Long productId;
 
+	/**
+	 * 物料名称
+	 */
+	@Column(name = "id_prtitle")
+	private String productTitle;
+
+	/**
+	 * 物料编号
+	 */
+	@Column(name = "id_prcode")
+	private String productCode;
+
+	/**
+	 * 物料规格
+	 */
+	@Column(name = "id_prspec", length = 1000)
+	private String productSpec;
+
+	/**
+	 * 物料单位
+	 */
+	@Column(name = "id_prunit")
+	private String productUnit;
+
 	/**
 	 * 币种
 	 */
@@ -332,11 +358,26 @@ public class PurchaseInquiryItem {
 		this.inquiry = inquiry;
 	}
 
-	public Product getProduct() {
+	public ProductInfo getProduct() {
+		if (product == null) {
+			product = new ProductInfo();
+			product.setId(productId);
+			product.setTitle(productTitle);
+			product.setCode(productCode);
+			product.setSpec(productSpec);
+			product.setUnit(productUnit);
+		}
 		return product;
 	}
 
-	public void setProduct(Product product) {
+	public void setProduct(ProductInfo product) {
+		if (product != null) {
+			this.productId = product.getId();
+			this.productTitle = product.getTitle();
+			this.productCode = product.getCode();
+			this.productSpec = product.getSpec();
+			this.productUnit = product.getUnit();
+		}
 		this.product = product;
 	}
 
@@ -348,6 +389,30 @@ public class PurchaseInquiryItem {
 		this.productId = productId;
 	}
 
+	public String getProductTitle() {
+		return productTitle;
+	}
+
+	public void setProductTitle(String productTitle) {
+		this.productTitle = productTitle;
+	}
+
+	public String getProductCode() {
+		return productCode;
+	}
+
+	public void setProductCode(String productCode) {
+		this.productCode = productCode;
+	}
+
+	public String getProductSpec() {
+		return productSpec;
+	}
+
+	public void setProductSpec(String productSpec) {
+		this.productSpec = productSpec;
+	}
+
 	public String getCurrency() {
 		return currency;
 	}

+ 59 - 0
src/main/java/com/uas/platform/b2b/model/PurchaseInquiryItemTemp.java

@@ -70,9 +70,36 @@ public class PurchaseInquiryItemTemp {
 	@Column(name = "id_usercode")
 	private String userCode;
 
+	/**
+	 * 物料id
+	 */
 	@Column(name = "id_prid")
 	private Long productId;
 
+	/**
+	 * 物料名称
+	 */
+	@Column(name = "id_prtitle")
+	private String productTitle;
+
+	/**
+	 * 物料编号
+	 */
+	@Column(name = "id_prcode")
+	private String productCode;
+
+	/**
+	 * 物料规格
+	 */
+	@Column(name = "id_prspec", length = 1000)
+	private String productSpec;
+
+	/**
+	 * 物料单位
+	 */
+	@Column(name = "id_prunit")
+	private String productUnit;
+
 	/**
 	 * 币种
 	 */
@@ -608,4 +635,36 @@ public class PurchaseInquiryItemTemp {
 	public void setKind(String kind) {
 		this.kind = kind;
 	}
+
+	public String getProductTitle() {
+		return productTitle;
+	}
+
+	public void setProductTitle(String productTitle) {
+		this.productTitle = productTitle;
+	}
+
+	public String getProductCode() {
+		return productCode;
+	}
+
+	public void setProductCode(String productCode) {
+		this.productCode = productCode;
+	}
+
+	public String getProductSpec() {
+		return productSpec;
+	}
+
+	public void setProductSpec(String productSpec) {
+		this.productSpec = productSpec;
+	}
+
+	public String getProductUnit() {
+		return productUnit;
+	}
+
+	public void setProductUnit(String productUnit) {
+		this.productUnit = productUnit;
+	}
 }

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

@@ -151,7 +151,7 @@ public class PurchaseInquiryServiceImpl implements PurchaseInquiryService {
 				PurchaseInquiryItem item = new PurchaseInquiryItem();
 				BeanUtils.copyProperties(temp, item, PurchaseInquiryItem.class);
 				item.setInquiry(purchaseInquiryDao.findOne(temp.getInId()));
-				item.setProduct(productDao.findOne(temp.getProductId()));
+				// 无需设置product信息,因为后续不需要用到这个对象
 			}
 			saveUserOrders(inquiryItems);
 			Long userUU = SystemSession.getUser().getUserUU();