Browse Source

Merge remote-tracking branch 'origin/dev-mysql' into dev-mysql

yangc 8 years ago
parent
commit
dd12ae7c6b

+ 19 - 11
src/main/java/com/uas/platform/b2c/external/erp/order/service/impl/OrderServiceImpl.java

@@ -13,7 +13,6 @@ import com.uas.platform.b2c.core.support.log.ErpB2cBufferedLogger;
 import com.uas.platform.b2c.external.erp.order.util.ModelConverter;
 import com.uas.platform.b2c.prod.commodity.dao.GoodsHistoryDao;
 import com.uas.platform.b2c.prod.commodity.dao.ProductDao;
-import com.uas.platform.b2c.prod.commodity.model.GoodsHistory;
 import com.uas.platform.b2c.prod.commodity.model.Product;
 import com.uas.platform.b2c.trade.order.dao.OrderDao;
 import com.uas.platform.b2c.trade.order.dao.PurchaseDao;
@@ -25,6 +24,7 @@ import com.uas.platform.core.model.Status;
 import com.uas.platform.core.persistence.criteria.LogicalExpression;
 import com.uas.platform.core.persistence.criteria.PredicateUtils;
 import com.uas.platform.core.persistence.criteria.SimpleExpression;
+import org.apache.log4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.jpa.domain.Specification;
 import org.springframework.util.CollectionUtils;
@@ -33,7 +33,9 @@ import javax.persistence.criteria.CriteriaBuilder;
 import javax.persistence.criteria.CriteriaQuery;
 import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Root;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 public class OrderServiceImpl implements OrderService {
@@ -59,6 +61,8 @@ public class OrderServiceImpl implements OrderService {
 	@Autowired
 	private EnterpriseDao enterpriseDao;
 
+	private final Logger loggerInfo = Logger.getLogger(getClass());
+
 	private static final ErpB2cBufferedLogger logger = BufferedLoggerManager.getLogger(ErpB2cBufferedLogger.class);
 
 	@Override
@@ -96,8 +100,13 @@ public class OrderServiceImpl implements OrderService {
 				return null;
 			}
 		});
+
 		List<Order> orders = new ArrayList<Order>();
+		String sourceapp = "ERP";
+		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+		loggerInfo.info(String.format(" erp总共下载订单数 %s", orders.size()));
 		for (Purchase purchase : purcs) {
+			Date startDate = new Date();
 			boolean codeExists = false;
 			Order order = ModelConverter.getOrder(purchase);
 			UserBaseInfo buyer = userBaseInfoDao.findUserByUserUU(purchase.getBuyeruu());
@@ -109,20 +118,19 @@ public class OrderServiceImpl implements OrderService {
 			if (enterprise != null) {// 设置买方企业信息
 				order.setBuyerEn(com.uas.platform.b2c.external.erp.common.util.ModelConverter.convert(enterprise));
 			}
-
 			for (OrderDetail orderDetail : order.getDetails()) {
-				List<GoodsHistory> goodsHistorys = goodsHistoryDao.findByBatchCode(orderDetail.getBatchCode());// 获取上架历史信息
-				if (!CollectionUtils.isEmpty(goodsHistorys)) {
-					orderDetail.setPublisheruu(goodsHistorys.get(0).getPublisherUU());// 添加发布人uu
-					List<Product> products = productDao.findByEnUUAndCmpUuId(SystemSession.getUser().getEnterprise().getUu(), goodsHistorys.get(0).getUuid());//获取物料信息
-					if (!CollectionUtils.isEmpty(products)) {
-						orderDetail.setCode(products.get(0).getProdNum());// 设置物料编号,有物料编号才回传到ERP
-						codeExists = true;
-					}
+				List<Product> products = productDao.findByEnUUAndCmpUuIdAndSourceApp(SystemSession.getUser().getEnterprise().getUu(), orderDetail.getUuid(), sourceapp);//获取物料信息
+				if (!CollectionUtils.isEmpty(products)) {
+					orderDetail.setCode(products.get(0).getProdNum());// 设置物料编号,有物料编号才回传到ERP
+					codeExists = true;
 				}
 			}
-			if (codeExists)
+			if (codeExists) {
 				orders.add(order);
+			}
+
+			Date endDate = new Date();
+			loggerInfo.info(String.format("处理历时" + (endDate.getTime() - startDate.getTime()) + "毫秒"));
 		}
 		return orders;
 	}

+ 1 - 0
src/main/java/com/uas/platform/b2c/external/erp/order/util/ModelConverter.java

@@ -72,6 +72,7 @@ public class ModelConverter {
 		orderDetail.setTax(detail.getTax());
 		orderDetail.setCurrency(detail.getCurrencyName());
 		orderDetail.setStatus(detail.getStatus());
+		orderDetail.setPublisheruu(detail.getSellPublishuu());
 		return orderDetail;
 	}
 

+ 9 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/dao/ProductDao.java

@@ -88,6 +88,15 @@ public interface ProductDao extends JpaSpecificationExecutor<Product>, JpaReposi
      */
     List<Product> findByEnUUAndCmpUuId(Long enuu, String uuid);
 
+    /**
+     * 通过企业uu,标准器件uuid,来源获取物料信息
+     * @param enuu 企业uu
+     * @param uuid 标准器件uuid
+     * @param sourceapp 来源
+     * @return
+     */
+    List<Product> findByEnUUAndCmpUuIdAndSourceApp(Long enuu, String uuid, String sourceapp);
+
     /**
      * 获取该企业的产品信息
      * @param enuu 企业的uu号

+ 0 - 12
src/main/java/com/uas/platform/b2c/trade/order/model/Purchase.java

@@ -10,18 +10,6 @@ import com.uas.platform.core.persistence.StatusColumn;
 import org.hibernate.annotations.Cache;
 import org.hibernate.annotations.CacheConcurrencyStrategy;
 
-import javax.persistence.CascadeType;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.EnumType;
-import javax.persistence.Enumerated;
-import javax.persistence.FetchType;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Id;
-import javax.persistence.OneToMany;
-import javax.persistence.OrderBy;
-import javax.persistence.Table;
-import javax.persistence.Transient;
 import javax.persistence.*;
 import java.io.Serializable;
 import java.util.Date;

+ 14 - 0
src/main/java/com/uas/platform/b2c/trade/order/model/PurchaseDetail.java

@@ -83,6 +83,12 @@ public class PurchaseDetail extends Document {
 	@Column(name = "cmp_uuid")
 	private String uuid;
 
+	/**
+	 * 卖方上架人uu
+	 */
+	@Column(name = "pud_sellpublishuu")
+	private Long sellPublishuu;
+
 	/*
 	 * 开票的状态 700 待开发票 701 待收发票 702 已收发票 703 不需开票
 	 */
@@ -521,6 +527,14 @@ public class PurchaseDetail extends Document {
 		this.uuid = uuid;
 	}
 
+	public Long getSellPublishuu() {
+		return sellPublishuu;
+	}
+
+	public void setSellPublishuu(Long sellPublishuu) {
+		this.sellPublishuu = sellPublishuu;
+	}
+
 	/**
 	 * Gets original.
 	 *

+ 9 - 0
src/main/java/com/uas/platform/b2c/trade/order/service/impl/PurchaseDetailServiceImpl.java

@@ -4,6 +4,8 @@ import com.uas.platform.b2c.common.account.model.User;
 import com.uas.platform.b2c.core.config.SysConf;
 import com.uas.platform.b2c.core.support.SystemSession;
 import com.uas.platform.b2c.core.utils.DoubleArith;
+import com.uas.platform.b2c.prod.commodity.dao.GoodsHistoryDao;
+import com.uas.platform.b2c.prod.commodity.model.GoodsHistory;
 import com.uas.platform.b2c.prod.commodity.service.GoodsService;
 import com.uas.platform.b2c.prod.product.common.service.CreateNumberService;
 import com.uas.platform.b2c.trade.order.dao.OrderDetailDao;
@@ -57,6 +59,9 @@ public class PurchaseDetailServiceImpl implements PurchaseDetailService {
 	
 	@Autowired
 	private CreateNumberService createNumberService;
+
+	@Autowired
+	private GoodsHistoryDao goodsHistoryDao;
 	
 	@Autowired
 	private SysConf sysConf;
@@ -194,6 +199,10 @@ public class PurchaseDetailServiceImpl implements PurchaseDetailService {
 			pDetail.setPurchase(purchase);
 			pDetail.setBillStatus(Status.TOBEMAKE_BILL.value());
 			pDetail.setStatusToBeConfirmed(sysConf.getAdminUU());
+			List<GoodsHistory> goodsHistories = goodsHistoryDao.findByBatchCode(pDetail.getBatchCode()); // 查询批次上架人
+			if (CollectionUtils.isNotEmpty(goodsHistories)) {
+				pDetail.setSellPublishuu(goodsHistories.get(0).getPublisherUU());
+			}
 			details.add(pDetail);
 		}
 		purchase.setCmpQty(uuids.size());