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

Merge remote-tracking branch 'origin/release-201827-wangcz' into release-201827-wangcz

yujia 7 лет назад
Родитель
Сommit
e2aafb2753
23 измененных файлов с 112 добавлено и 131 удалено
  1. 0 30
      src/main/java/com/uas/platform/b2c/core/support/log/TradeBufferedLogger.java
  2. 0 1
      src/main/java/com/uas/platform/b2c/external/erp/order/api/PurchaseController.java
  3. 13 12
      src/main/java/com/uas/platform/b2c/external/erp/order/service/impl/InvoiceNotifyServiceImpl.java
  4. 0 2
      src/main/java/com/uas/platform/b2c/logistics/controller/InvoiceController.java
  5. 10 0
      src/main/java/com/uas/platform/b2c/logistics/dao/InvoiceDao.java
  6. 1 1
      src/main/java/com/uas/platform/b2c/logistics/dao/InvoiceDetailDao.java
  7. 0 1
      src/main/java/com/uas/platform/b2c/logistics/service/InvoiceFPurchaseDetailService.java
  8. 0 4
      src/main/java/com/uas/platform/b2c/logistics/service/InvoiceService.java
  9. 0 3
      src/main/java/com/uas/platform/b2c/logistics/service/impl/InvoiceFOrderDetailServiceImpl.java
  10. 0 7
      src/main/java/com/uas/platform/b2c/logistics/service/impl/InvoiceFPurchaseDetailServiceImpl.java
  11. 9 2
      src/main/java/com/uas/platform/b2c/prod/commodity/model/Goods.java
  12. 1 1
      src/main/java/com/uas/platform/b2c/prod/commodity/model/ReleaseProductByBatch.java
  13. 4 2
      src/main/java/com/uas/platform/b2c/prod/commodity/service/InOutboundDetailService.java
  14. 1 2
      src/main/java/com/uas/platform/b2c/prod/commodity/service/ProductService.java
  15. 27 6
      src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/InOutboundDetailServiceImpl.java
  16. 0 18
      src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/ProductServiceImpl.java
  17. 33 19
      src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/ReleaseProductByBatchServiceImpl.java
  18. 2 4
      src/main/java/com/uas/platform/b2c/trade/order/controller/PurchaseController.java
  19. 5 5
      src/main/java/com/uas/platform/b2c/trade/order/model/OrderIndex.java
  20. 5 5
      src/main/java/com/uas/platform/b2c/trade/order/model/OrderIndexDetail.java
  21. 0 1
      src/main/java/com/uas/platform/b2c/trade/order/service/PurchaseService.java
  22. 0 4
      src/main/java/com/uas/platform/b2c/trade/order/service/impl/OrderServiceImpl.java
  23. 1 1
      src/main/java/com/uas/platform/b2c/trade/order/service/impl/PurchaseServiceImpl.java

+ 0 - 30
src/main/java/com/uas/platform/b2c/core/support/log/TradeBufferedLogger.java

@@ -4,8 +4,6 @@ import com.uas.platform.b2c.common.account.model.TradeLog;
 import com.uas.platform.b2c.common.account.service.TradeLogService;
 import com.uas.platform.b2c.core.utils.ContextUtils;
 import com.uas.platform.b2c.core.utils.PathUtils;
-import com.uas.platform.b2c.logistics.model.InvoiceFOrder;
-import com.uas.platform.b2c.logistics.model.InvoiceFPurchase;
 import com.uas.platform.b2c.trade.order.model.Order;
 import com.uas.platform.b2c.trade.order.model.Purchase;
 import com.uas.platform.core.exception.IllegalOperatorException;
@@ -63,32 +61,4 @@ public class TradeBufferedLogger extends BufferedLogger<TradeLog> {
 		log(purchase.getClass().getSimpleName(), purchase.getPurchaseid(), voucherOperation, changeLog);
 	}
 
-	/**
-	 * 记录交易流程卖家出货单操作日志
-	 *
-	 * @param invoice				状态变更的卖家出货单的实例
-	 * @param voucherOperation		单据操作
-	 * @param changeLog				操作具体日志记录
-	 */
-	public void log(InvoiceFPurchase invoice, TradeLog.VoucherOperation voucherOperation, String changeLog) {
-		if (invoice == null) {
-			throw new IllegalOperatorException("卖家出货单数据已失效");
-		}
-		log(invoice.getClass().getSimpleName(), invoice.getInvoiceid(), voucherOperation, changeLog);
-	}
-
-	/**
-	 * 记录交易流程平台出货单操作日志
-	 *
-	 * @param invoice				状态变更的平台出货单的实例
-	 * @param voucherOperation		单据操作
-	 * @param changeLog				操作具体日志记录
-	 */
-	public void log(InvoiceFOrder invoice, TradeLog.VoucherOperation voucherOperation, String changeLog) {
-		if (invoice == null) {
-			throw new IllegalOperatorException("平台出货单数据已失效");
-		}
-		log(invoice.getClass().getSimpleName(), invoice.getInvoiceid(), voucherOperation, changeLog);
-	}
-
 }

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

@@ -5,7 +5,6 @@ import com.alibaba.fastjson.JSONObject;
 import com.uas.platform.b2c.core.support.SystemSession;
 import com.uas.platform.b2c.core.utils.FastjsonUtils;
 import com.uas.platform.b2c.logistics.model.Invoice;
-import com.uas.platform.b2c.logistics.model.InvoiceFPurchase;
 import com.uas.platform.b2c.trade.order.model.Order;
 import com.uas.platform.b2c.trade.order.model.Purchase;
 import com.uas.platform.b2c.trade.order.service.PurchaseService;

+ 13 - 12
src/main/java/com/uas/platform/b2c/external/erp/order/service/impl/InvoiceNotifyServiceImpl.java

@@ -4,9 +4,10 @@ import com.uas.api.b2c_erp.buyer.model.AcceptNotify;
 import com.uas.api.b2c_erp.buyer.model.AcceptNotifyDetail;
 import com.uas.api.b2c_erp.buyer.service.InvoiceNotifyService;
 import com.uas.platform.b2c.core.support.SystemSession;
+import com.uas.platform.b2c.logistics.dao.InvoiceDao;
 import com.uas.platform.b2c.logistics.dao.InvoiceFOrderDao;
-import com.uas.platform.b2c.logistics.model.InvoiceFOrder;
-import com.uas.platform.b2c.logistics.model.InvoiceFOrderDetail;
+import com.uas.platform.b2c.logistics.model.Invoice;
+import com.uas.platform.b2c.logistics.model.InvoiceDetail;
 import com.uas.platform.core.model.Status;
 import org.apache.commons.collections.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -20,30 +21,30 @@ import java.util.List;
 public class InvoiceNotifyServiceImpl implements InvoiceNotifyService {
 
 	@Autowired
-	private InvoiceFOrderDao inForDao;
+	private InvoiceDao inForDao;
 
 	@Override
 	public List<AcceptNotify> getAllInvoiceNoitify() {
 		List<AcceptNotify> acceptNotifys = new ArrayList<AcceptNotify>();
 		// 获取平台发货单
-		List<InvoiceFOrder> fOrders = inForDao.findByBuyerenuuAndSendstatusAndUasPurcidNotNull(SystemSession.getUser().getEnterprise()
+		List<Invoice> fOrders = inForDao.findByBuyerenuuAndSendstatusAndUasPurcidNotNull(SystemSession.getUser().getEnterprise()
 				.getUu(), Status.NOT_UPLOAD.value());
 		if (!CollectionUtils.isEmpty(fOrders)) {
-			for (InvoiceFOrder fOrder : fOrders) {
+			for (Invoice fOrder : fOrders) {
 				AcceptNotify acceptNotify = new AcceptNotify();
 				acceptNotify.setCreateTime(new Date());
 				acceptNotify.setId(fOrder.getId());
 				// 这里记录的是平台的订单号
-				acceptNotify.setPurchaseId(fOrder.getOrid());
+				acceptNotify.setPurchaseId(fOrder.getOrderId());
 				double qtys = 0D;
 				List<AcceptNotifyDetail> notifyDetails = new ArrayList<AcceptNotifyDetail>();
-				for (InvoiceFOrderDetail detail : fOrder.getInvoiceFOrderDetails()) {
+				for (InvoiceDetail detail : fOrder.getInvoiceDetails()) {
 					AcceptNotifyDetail notifyDetail = new AcceptNotifyDetail();
 					notifyDetail.setBatchcode(detail.getBatchCode());
-					notifyDetail.setQty(detail.getNumber());
-					notifyDetail.setPrice(detail.getTaxunitprice());
+					notifyDetail.setQty(detail.getQty());
+					notifyDetail.setPrice(detail.getTaxUnitprice());
 					notifyDetails.add(notifyDetail);
-					qtys = qtys + detail.getNumber();
+					qtys = qtys + detail.getQty();
 				}
 				acceptNotify.setNotifyDetail(notifyDetails);
 				acceptNotify.setQty(qtys);
@@ -57,7 +58,7 @@ public class InvoiceNotifyServiceImpl implements InvoiceNotifyService {
 	@Override
 	public void backSuccess(long[] ids) {
 		for (long id : ids) {
-			InvoiceFOrder fOrder = inForDao.findOne(id);
+			Invoice fOrder = inForDao.findOne(id);
 			fOrder.setSendstatus(Status.DOWNLOADED.value());
 			inForDao.save(fOrder);
 		}
@@ -66,7 +67,7 @@ public class InvoiceNotifyServiceImpl implements InvoiceNotifyService {
 	@Override
 	public void agreeInvoice(long[] ids) {
 		for (long id : ids) {
-			InvoiceFOrder fOrder = inForDao.findOne(id);
+			Invoice fOrder = inForDao.findOne(id);
 			// 安全性验证一下
 			if (fOrder.getSendstatus() == Status.DOWNLOADED.value()) {
 				fOrder.setStatusReceived(SystemSession.getUser().getUserUU());

+ 0 - 2
src/main/java/com/uas/platform/b2c/logistics/controller/InvoiceController.java

@@ -7,8 +7,6 @@ import com.uas.platform.b2c.core.support.log.UsageBufferedLogger;
 import com.uas.platform.b2c.core.utils.FastjsonUtils;
 import com.uas.platform.b2c.core.utils.StringUtilB2C;
 import com.uas.platform.b2c.logistics.model.Invoice;
-import com.uas.platform.b2c.logistics.model.InvoiceFOrder;
-import com.uas.platform.b2c.logistics.model.InvoiceFPurchase;
 import com.uas.platform.b2c.logistics.service.InvoiceFOrderService;
 import com.uas.platform.b2c.logistics.service.InvoiceFPurchaseService;
 import com.uas.platform.b2c.logistics.service.InvoiceService;

+ 10 - 0
src/main/java/com/uas/platform/b2c/logistics/dao/InvoiceDao.java

@@ -49,4 +49,14 @@ public interface InvoiceDao extends JpaSpecificationExecutor<Invoice>, JpaReposi
 	 */
 	@Query(value = "select count(1) from Invoice ifo where ifo.invoiceid in (:invoiceids) and ifo.status = 404 and ifo.piclass = :piclass")
 	Integer countInBoundInvoice(@Param("invoiceids") List<String> invoiceids, @Param("piclass") Integer piclass);
+
+
+	/**
+	 * 根据买家UU和状态查询平台发货单
+	 *
+	 * @param buyerenuu  the buyerenuu 买家enuu
+	 * @param sendstatus the sendstatus 状态
+	 * @return list 返回InvoiceFOrder列表
+	 */
+	List<Invoice> findByBuyerenuuAndSendstatusAndUasPurcidNotNull(Long buyerenuu, Integer sendstatus);
 }

+ 1 - 1
src/main/java/com/uas/platform/b2c/logistics/dao/InvoiceDetailDao.java

@@ -15,5 +15,5 @@ public interface InvoiceDetailDao extends JpaSpecificationExecutor<InvoiceDetail
      * @param pudetailid the pudetailid 采购单明细id
      * @return InvoiceFPurchaseDetail 返回InvoiceFPurchaseDetail对象
      */
-    InvoiceDetail findInvoiceFPurchaseDetailByPudetailid(Long pudetailid);
+    InvoiceDetail findByPurchaseDetailId(Long pudetailid);
 }

+ 0 - 1
src/main/java/com/uas/platform/b2c/logistics/service/InvoiceFPurchaseDetailService.java

@@ -1,6 +1,5 @@
 package com.uas.platform.b2c.logistics.service;
 
-import com.uas.platform.b2c.logistics.model.InvoiceFPurchaseDetail;
 
 /**
  * The interface InvoiceFPurchaseDetail service.

+ 0 - 4
src/main/java/com/uas/platform/b2c/logistics/service/InvoiceService.java

@@ -2,16 +2,12 @@ package com.uas.platform.b2c.logistics.service;
 
 import com.alibaba.fastjson.JSONObject;
 import com.uas.platform.b2c.logistics.model.Invoice;
-import com.uas.platform.b2c.logistics.model.InvoiceFOrder;
-import com.uas.platform.b2c.logistics.model.InvoiceFPurchase;
 import com.uas.platform.b2c.trade.order.model.Order;
 import com.uas.platform.b2c.trade.order.model.Purchase;
 import com.uas.platform.b2c.trade.support.ResultMap;
 import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.model.PageParams;
 import org.springframework.data.domain.Page;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
 
 import javax.management.OperationsException;
 import java.util.List;

+ 0 - 3
src/main/java/com/uas/platform/b2c/logistics/service/impl/InvoiceFOrderDetailServiceImpl.java

@@ -1,10 +1,7 @@
 package com.uas.platform.b2c.logistics.service.impl;
 
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import com.uas.platform.b2c.logistics.dao.InvoiceFOrderDetailDao;
-import com.uas.platform.b2c.logistics.model.InvoiceFOrderDetail;
 import com.uas.platform.b2c.logistics.service.InvoiceFOrderDetailService;
 
 @Service

+ 0 - 7
src/main/java/com/uas/platform/b2c/logistics/service/impl/InvoiceFPurchaseDetailServiceImpl.java

@@ -1,13 +1,6 @@
 package com.uas.platform.b2c.logistics.service.impl;
 
-import com.uas.platform.b2c.core.support.SystemSession;
-import com.uas.platform.b2c.core.utils.NumberUtil;
-import com.uas.platform.b2c.logistics.dao.InvoiceFPurchaseDetailDao;
-import com.uas.platform.b2c.logistics.model.InvoiceFPurchase;
-import com.uas.platform.b2c.logistics.model.InvoiceFPurchaseDetail;
 import com.uas.platform.b2c.logistics.service.InvoiceFPurchaseDetailService;
-import com.uas.platform.core.model.Status;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 @Service

+ 9 - 2
src/main/java/com/uas/platform/b2c/prod/commodity/model/Goods.java

@@ -1740,8 +1740,11 @@ public class Goods implements Serializable {
 	 * 根据最小起订量 调整分段信息
 	 */
 	public void adjustFragmentPrice() {
-		if (!StringUtils.isEmpty(this.minBuyQty) && org.apache.commons.lang.StringUtils.isNotEmpty(this.qtyPrice)) {
-			List<GoodsQtyPrice> array = FastjsonUtils.fromJsonArray(this.qtyPrice, GoodsQtyPrice.class);
+		List<GoodsQtyPrice> array = new ArrayList<>();
+		if (org.apache.commons.lang.StringUtils.isNotEmpty(this.qtyPrice)) {
+			array = FastjsonUtils.fromJsonArray(this.qtyPrice, GoodsQtyPrice.class);
+		}
+		if (!StringUtils.isEmpty(this.minBuyQty) && CollectionUtils.isNotEmpty(array)) {
 			GoodsQtyPrice price = array.get(0);
 			if (NumberUtil.compare(price.getStart(), this.minBuyQty) > 0) {
 				price.setStart(this.minBuyQty);
@@ -1838,6 +1841,8 @@ public class Goods implements Serializable {
 		if (this.autoPublish == null) {
 			this.autoPublish = Boolean.TRUE;
 		}
+		setMinBuyQtyByMinPackQty(this.minBuyQty);
+		adjustFragmentPrice();
 		this.setStatus();
 		return this;
 	}
@@ -1930,6 +1935,8 @@ public class Goods implements Serializable {
 		if (this.autoPublish == null) {
 			this.autoPublish = Boolean.TRUE;
 		}
+		setMinBuyQtyByMinPackQty(this.minBuyQty);
+		adjustFragmentPrice();
 		this.setStatus();
 
 		return this;

+ 1 - 1
src/main/java/com/uas/platform/b2c/prod/commodity/model/ReleaseProductByBatch.java

@@ -701,7 +701,7 @@ public class ReleaseProductByBatch implements Serializable {
 	public void setReserveByExcel(Object value) {
 		setReserveStr(StringUtilB2C.getStr(value));
 		if (StringUtils.isEmpty(value) || !RegexConstant.isNumber(value.toString())) {
-			setReserve(DoubleConstant.zero);
+			addErrmsg(ErrorInfoConstant.RESERVE_NUMBER_INFO.getInfo());
 		} else {
 			Double reserve = Double.valueOf(value.toString());
 			if (reserve % 1 != 0) {

+ 4 - 2
src/main/java/com/uas/platform/b2c/prod/commodity/service/InOutboundDetailService.java

@@ -1,11 +1,10 @@
 package com.uas.platform.b2c.prod.commodity.service;
 
 import com.uas.platform.b2c.logistics.model.InvoiceDetail;
-import com.uas.platform.b2c.logistics.model.InvoiceFOrderDetail;
-import com.uas.platform.b2c.logistics.model.InvoiceFPurchaseDetail;
 import com.uas.platform.b2c.prod.commodity.model.InOutboundDetail;
 
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 
 /**
@@ -26,4 +25,7 @@ public interface InOutboundDetailService {
      * @return
      */
     Set<InOutboundDetail> produceInOutboundDetailByInvoiceDetail(Set<InvoiceDetail> details);
+
+
+    Map<String, Set<InOutboundDetail>> initInOutboundDetailByQty (Set<InOutboundDetail> newInOutboundDetail);
 }

+ 1 - 2
src/main/java/com/uas/platform/b2c/prod/commodity/service/ProductService.java

@@ -341,9 +341,8 @@ public interface ProductService {
      * @param reList 临时表的id
      * @param ignoreImport 1表示忽略导入,0代表覆盖导入
      * @param newInOutboundDetail 出入库明细
-     * @param inOutMap 出入库的map
      */
-    void updateProductsByReleaseProductByBatch(Set<Long> prIds, List<ReleaseProductByBatch> reList, Integer ignoreImport, Set<InOutboundDetail> newInOutboundDetail, Map<String, Set<InOutboundDetail>> inOutMap);
+    void updateProductsByReleaseProductByBatch(Set<Long> prIds, List<ReleaseProductByBatch> reList, Integer ignoreImport, Set<InOutboundDetail> newInOutboundDetail);
 
 
     /**

+ 27 - 6
src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/InOutboundDetailServiceImpl.java

@@ -1,19 +1,17 @@
 package com.uas.platform.b2c.prod.commodity.service.impl;
 
+import com.uas.platform.b2c.core.utils.NumberUtil;
 import com.uas.platform.b2c.logistics.model.InvoiceDetail;
-import com.uas.platform.b2c.logistics.model.InvoiceFOrderDetail;
-import com.uas.platform.b2c.logistics.model.InvoiceFPurchaseDetail;
+import com.uas.platform.b2c.prod.commodity.constant.DoubleConstant;
 import com.uas.platform.b2c.prod.commodity.model.InOutboundDetail;
 import com.uas.platform.b2c.prod.commodity.dao.InOutboundDetailDao;
 import com.uas.platform.b2c.prod.commodity.service.InOutboundDetailService;
+import com.uas.platform.b2c.prod.commodity.type.InOutBoundType;
 import org.apache.commons.collections.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
 
 /**
  * description
@@ -66,4 +64,27 @@ public class InOutboundDetailServiceImpl implements InOutboundDetailService {
         }
         return inOutBoundset;
     }
+
+    public Map<String, Set<InOutboundDetail>> initInOutboundDetailByQty (Set<InOutboundDetail> newInOutboundDetail) {
+        Map<String, Set<InOutboundDetail>> inOutMap = new HashMap<>();
+        if (CollectionUtils.isNotEmpty(newInOutboundDetail)) {
+            Set<InOutboundDetail> inBoundDetail = new HashSet<>();
+            Set<InOutboundDetail> outBoundDetail = new HashSet<>();
+            for (InOutboundDetail detail1 : newInOutboundDetail) {
+                if (NumberUtil.compare(detail1.getQty(), DoubleConstant.zero) < 0) {
+                    detail1.setQty(Math.abs(detail1.getQty()));
+                    outBoundDetail.add(detail1);
+                } else if (NumberUtil.compare(detail1.getQty(), DoubleConstant.zero) > 0) {
+                    inBoundDetail.add(detail1);
+                }
+            }
+            if (CollectionUtils.isNotEmpty(inBoundDetail)) {
+                inOutMap.put(InOutBoundType.OTHER_INBOUND, inBoundDetail);
+            }
+            if (CollectionUtils.isNotEmpty(outBoundDetail)) {
+                inOutMap.put(InOutBoundType.OTHER_OUTBOUND, outBoundDetail);
+            }
+        }
+        return inOutMap;
+    }
 }

+ 0 - 18
src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/ProductServiceImpl.java

@@ -2261,24 +2261,6 @@ public class ProductServiceImpl implements ProductService {
             }
         }
         productDao.save(freshProducts);
-        if (CollectionUtils.isNotEmpty(newInOutboundDetail)) {
-            Set<InOutboundDetail> inBoundDetail = new HashSet<>();
-            Set<InOutboundDetail> outBoundDetail = new HashSet<>();
-            for (InOutboundDetail detail1 : newInOutboundDetail) {
-                if (NumberUtil.compare(detail1.getQty(), DoubleConstant.zero) < 0) {
-                    detail1.setQty(Math.abs(detail1.getQty()));
-                    outBoundDetail.add(detail1);
-                } else if (NumberUtil.compare(detail1.getQty(), DoubleConstant.zero) > 0) {
-                    inBoundDetail.add(detail1);
-                }
-            }
-            if (CollectionUtils.isNotEmpty(inBoundDetail)) {
-                inOutMap.put(InOutBoundType.OTHER_INBOUND, inBoundDetail);
-            }
-            if (CollectionUtils.isNotEmpty(outBoundDetail)) {
-                inOutMap.put(InOutBoundType.OTHER_OUTBOUND, outBoundDetail);
-            }
-        }
     }
 
 

+ 33 - 19
src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/ReleaseProductByBatchServiceImpl.java

@@ -142,6 +142,10 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
 	@Autowired
 	private CommodityInOutboundService commodityInOutboundService;
 
+	@Autowired
+	private InOutboundDetailService inOutboundDetailService;
+
+
 	private final Logger logger = Logger.getLogger(getClass());
 
 	/**
@@ -257,8 +261,8 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
 						releaseProductByBatch.setReleaseCode(ReleaseStatus.lack_info.value());
 						releaseProductByBatch.setReleaseStatus(ReleaseStatus.lack_info.getPhrase());
 					}
-					// 简单验证数据,防止空行保存的情况(品牌、类目、型号)
-					if (blankNum != 3) {
+					// 简单验证数据,防止空行保存的情况(品牌、类目、型号、庫存信息)
+					if (blankNum != 4) {
 						total++;
 						releaseProductByBatchs.add(releaseProductByBatch);
 					}
@@ -1210,6 +1214,9 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
 			Object reserveValue = readWorkBookCell(row.getCell(UploadConstant.RESERVE_NUMBER), Cell.CELL_TYPE_STRING,
 					rowNum, UploadConstant.RESERVE_NUMBER);
 			aProduct.setReserveByExcel(reserveValue);
+			if (StringUtils.isEmpty(reserveValue)) {
+				result += 1;
+			}
 
 			Object costPrice = readWorkBookCell(row.getCell(UploadConstant.COST_PRICE), Cell.CELL_TYPE_STRING,
 					rowNum, UploadConstant.COST_PRICE);
@@ -1341,7 +1348,7 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
 		}
 		aProduct.setFragmentPrice(StringUtilB2C.getStr(firstValue), 0);
 		if (StringUtils.isEmpty(firstValue)) {
-			aProduct.addErrmsg(ErrorInfoConstant.PRICE_INFO.getInfo());
+			//aProduct.addErrmsg(ErrorInfoConstant.PRICE_INFO.getInfo());
 		} else {
 			if (RegexConstant.isNumber(firstValue.toString())) {
 				Double cellPrice = Double.valueOf(firstValue.toString());
@@ -1353,7 +1360,7 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
 					aProduct.addErrmsg(ErrorInfoConstant.PRICE_INFO.getInfo());
 				}
 			} else {
-				aProduct.addErrmsg(ErrorInfoConstant.PRICE_INFO.getInfo());
+				//aProduct.addErrmsg(ErrorInfoConstant.PRICE_INFO.getInfo());
 			}
 
 		}
@@ -1431,7 +1438,7 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
 				Double price = Double.valueOf(priceValue.toString());
 				Double start = Double.valueOf(startValue.toString());
 				if (validatePrice(price) && validateStartNumber(start, aProduct.getMinBuyQty())) {
-					GoodsQtyPrice qtyPrice = getOneQtyPrice(Double.valueOf(startValue.toString()), DoubleConstant.maxMinPackageQty,
+					GoodsQtyPrice qtyPrice = getOneQtyPrice(Double.valueOf(startValue.toString()), DoubleConstant.maxReserve,
 							price, aProduct.getRmbTaxRate(), aProduct.getCurrency());
 					qtyPriceList.add(qtyPrice);
 					qtyPriceList.get(0).setEnd(Double.valueOf(startValue.toString()) - 1);
@@ -1472,7 +1479,7 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
 				Double start = Double.valueOf(startValue.toString());
 				Double lastEnd = qtyPriceList.get(qtyPriceList.size() - 1).getStart();
 				if (validatePrice(price) && validateStartNumber(start, lastEnd)) {
-					GoodsQtyPrice qtyPrice = getOneQtyPrice(start, DoubleConstant.maxMinPackageQty,
+					GoodsQtyPrice qtyPrice = getOneQtyPrice(start, DoubleConstant.maxReserve,
 							price, aProduct.getRmbTaxRate(), aProduct.getCurrency());
 					qtyPriceList.get(qtyPriceList.size() - 1).setEnd(start - 1);
 					qtyPriceList.add(qtyPrice);
@@ -1809,8 +1816,7 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
         if (StringUtils.isEmpty(batch)) {
             return "0";
         }
-		List<ReleaseProductByBatch> releaseProductByBatchList =
-				releaseProductByBatchDao.findByRelbatchid(batch);
+		List<ReleaseProductByBatch> releaseProductByBatchList = releaseProductByBatchDao.findByRelbatchid(batch);
 		if (CollectionUtils.isEmpty(releaseProductByBatchList)) {
 			return String.valueOf(IntegerConstant.NO_SHORT);
 		}
@@ -1877,6 +1883,7 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
 			List<ReleaseProductByBatch> insertGoods = new ArrayList<>();
 			Set<Long> prids = new HashSet<>();
 			List<Goods> updateGoods = new ArrayList<>();
+			List<GoodsHistory> goodsHistoryList = new ArrayList<>();
 			for (ReleaseProductByBatch releaseProductByBatch : list) {
 				if (releaseProductByBatch.getReleaseCode().intValue() == ReleaseStatus.success.value() || releaseProductByBatch.getReleaseCode().intValue() == ReleaseStatus.failure.value()) {
                     Boolean isExist = false;
@@ -1888,6 +1895,7 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
                                 isExist = true;
 								prids.add(releaseProductByBatch.getProductid());
                                 goods1.updateGoodsByReleaseProductByBatch(releaseProductByBatch, delayTime, ignoreImport);
+								goodsHistoryList.add(goodsHistoryService.converTGoodsHist(goods1, GoodsHistory.OperateType.Update.getPhrase(), false));
 								updateGoods.add(goods1);
                                 break;
 							}
@@ -1902,6 +1910,7 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
 				for (ReleaseProductByBatch releaseProductByBatch : insertGoods) {
 					goods = new Goods();
 					goods.setGoodsByReleaseProductByBatch(releaseProductByBatch, delayTime);
+					goodsHistoryList.add(goodsHistoryService.converTGoodsHist(goods, GoodsHistory.OperateType.Publish.getPhrase(), false));
 					goodses.add(goods);
 				}
 			}
@@ -1911,6 +1920,9 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
 			if (CollectionUtils.isNotEmpty(updateGoods)) {
                 goodsDao.save(updateGoods);
             }
+            if (CollectionUtils.isNotEmpty(goodsHistoryList)) {
+				goodsHistoryService.save(goodsHistoryList);
+			}
 			return (goodses.size() + updateGoods.size());
 		} else {
 			return 0;
@@ -2046,8 +2058,10 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
 		}
 		//将本次临时表中的数据更新到物料表中
         if (CollectionUtils.isNotEmpty(updateProducts)) {
-			Map<String, Set<InOutboundDetail>> inOutMap = new HashedMap();
-            productService.updateProductsByReleaseProductByBatch(prIds, releaseProductByBatchList, ignoreImport, newInOutboundDetail, inOutMap);
+            productService.updateProductsByReleaseProductByBatch(prIds, releaseProductByBatchList, ignoreImport, newInOutboundDetail);
+		}
+		if (CollectionUtils.isNotEmpty(newInOutboundDetail)) {
+			Map<String, Set<InOutboundDetail>> inOutMap = inOutboundDetailService.initInOutboundDetailByQty(newInOutboundDetail);
 			Set<String> stringSet = inOutMap.keySet();
 			for (String type : stringSet) {
 				CommodityInOutbound commodityInOutbound = commodityInOutboundService.produceCommodityInOutbound(inOutMap.get(type), type);
@@ -2124,15 +2138,15 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
 			public void run() {
 
 				//创建历史库存
-				List<Goods> goodses1 = goodsService.findByBatchId(batchid);
-				List<GoodsHistory> list = new ArrayList<>();
-				for (Goods goods : goodses1) {
-					GoodsHistory goodsHistory = goodsHistoryService.converTGoodsHist(goods, GoodsHistory.OperateType.Publish.getPhrase(), false);
-					list.add(goodsHistory);
-				}
-				if (CollectionUtils.isNotEmpty(list)) {
-					goodsHistoryService.save(list);
-				}
+//				List<Goods> goodses1 = goodsService.findByBatchId(batchid);
+//				List<GoodsHistory> list = new ArrayList<>();
+//				for (Goods goods : goodses1) {
+//					GoodsHistory goodsHistory = goodsHistoryService.converTGoodsHist(goods, GoodsHistory.OperateType.Publish.getPhrase(), false);
+//					list.add(goodsHistory);
+//				}
+//				if (CollectionUtils.isNotEmpty(list)) {
+//					goodsHistoryService.save(list);
+//				}
 				//创建物料的私有信息
 				productPrivateService.newProductPrivateIfNotExist(productIds);
 

+ 2 - 4
src/main/java/com/uas/platform/b2c/trade/order/controller/PurchaseController.java

@@ -8,15 +8,13 @@ import com.uas.platform.b2c.core.support.log.UsageBufferedLogger;
 import com.uas.platform.b2c.core.support.view.JxlsExcelView;
 import com.uas.platform.b2c.core.utils.FastjsonUtils;
 import com.uas.platform.b2c.core.utils.StringUtilB2C;
-import com.uas.platform.b2c.logistics.model.InvoiceFPurchase;
-import com.uas.platform.b2c.logistics.model.Logistics;
+import com.uas.platform.b2c.logistics.model.Invoice;
 import com.uas.platform.b2c.prod.store.service.StoreInService;
 import com.uas.platform.b2c.trade.order.model.Order;
 import com.uas.platform.b2c.trade.order.model.Purchase;
 import com.uas.platform.b2c.trade.order.model.PurchaseModifyingHistory;
 import com.uas.platform.b2c.trade.order.service.PurchaseDetailService;
 import com.uas.platform.b2c.trade.order.service.PurchaseService;
-import com.uas.platform.b2c.trade.presale.model.ValidTime;
 import com.uas.platform.b2c.trade.support.ResultMap;
 import com.uas.platform.core.logging.BufferedLoggerManager;
 import com.uas.platform.core.model.PageInfo;
@@ -238,7 +236,7 @@ public class PurchaseController {
 	 * @return the invoice f purchase
 	 */
 	@RequestMapping(value = "/{invoiceid}/ensurereceipt", method = RequestMethod.PUT)
-	public InvoiceFPurchase ensureReceipt(@PathVariable String invoiceid) {
+	public Invoice ensureReceipt(@PathVariable String invoiceid) {
 		assert logger != null;
 		logger.log("采购单管理", "平台确认收货,出货单id: " + invoiceid);
 		return purchaseService.ensuerAcceptInvoise(invoiceid);

+ 5 - 5
src/main/java/com/uas/platform/b2c/trade/order/model/OrderIndex.java

@@ -2,7 +2,7 @@ package com.uas.platform.b2c.trade.order.model;
 
 import com.alibaba.fastjson.annotation.JSONField;
 import com.uas.platform.b2c.core.utils.StringUtilB2C;
-import com.uas.platform.b2c.logistics.model.InvoiceFOrder;
+import com.uas.platform.b2c.logistics.model.Invoice;
 import com.uas.platform.b2c.prod.product.common.service.CreateNumberService;
 import com.uas.platform.core.model.EncodingRulesConstant;
 import com.uas.platform.core.model.Status;
@@ -1130,21 +1130,21 @@ public class OrderIndex extends Document implements Serializable {
 	 * @param createNumberService the create number service
 	 * @return the invoice f order
 	 */
-	public InvoiceFOrder convertInvoiceFOrder(CreateNumberService createNumberService) {
+	public Invoice convertInvoiceFOrder(CreateNumberService createNumberService) {
 		String invoiceid = EncodingRulesConstant.INVOICE_FROMORDER.replace("_TIMESTAP_NUMBER",
 				createNumberService.getTimeNumber("trade$invoice_fmor", 8));
 		Date date = new Date();
-		InvoiceFOrder inFor = new InvoiceFOrder();
+		Invoice inFor = new Invoice();
 		inFor.setInvoiceid(invoiceid);
 		// 给属性赋值
-		inFor.setCreattime(date);
+		inFor.setCreatetime(date);
 		inFor.setBuyeruu(this.getBuyeruu());
 		inFor.setBuyerenuu(this.getBuyerenuu());
 		inFor.setPrice(this.getPrice());
 		// TODO 这里需要考虑确认总价的(默认和总价相等 打折等其他逻辑待考虑)
 		inFor.setEnsurePrice(this.ensurePrice);
 		inFor.setJsonSpAddress(this.getJsonAddress());
-		inFor.setOrid(this.getId());
+		inFor.setOrderId(this.getId());
 		inFor.setSourceid(this.orderid);
 		inFor.setProofingid(this.proofingid);
 		return inFor;

+ 5 - 5
src/main/java/com/uas/platform/b2c/trade/order/model/OrderIndexDetail.java

@@ -1,6 +1,6 @@
 package com.uas.platform.b2c.trade.order.model;
 
-import com.uas.platform.b2c.logistics.model.InvoiceFOrderDetail;
+import com.uas.platform.b2c.logistics.model.InvoiceDetail;
 import com.uas.platform.b2c.prod.product.common.service.CreateNumberService;
 import com.uas.platform.core.model.EncodingRulesConstant;
 import com.uas.platform.core.persistence.StatusColumn;
@@ -473,8 +473,8 @@ public class OrderIndexDetail {
 	 * @param createNumberService the create number service
 	 * @return the invoice f order detail
 	 */
-	public InvoiceFOrderDetail convertInvoiceFOrderDetail(CreateNumberService createNumberService) {
-		InvoiceFOrderDetail inForD = new InvoiceFOrderDetail();
+	public InvoiceDetail convertInvoiceFOrderDetail(CreateNumberService createNumberService) {
+		InvoiceDetail inForD = new InvoiceDetail();
 		String detailid = EncodingRulesConstant.INVOICE_DETAIL_FROMORDER.replace("_TIMESTAP_NUMBER",
 				createNumberService.getTimeNumber("trade$invoice_fmor_dt", 9));
 		inForD.setDetailid(detailid);
@@ -483,12 +483,12 @@ public class OrderIndexDetail {
 		inForD.setCmpCode(this.cmpCode);
 		inForD.setImg(this.img);
 		inForD.setUnitprice(this.getUnitprice());
-		inForD.setNumber(this.getNumber());
+		inForD.setQty(this.getNumber());
 		inForD.setPrice(this.getPrice());
 		// TODO 这里需要考虑确认总价的(默认和总价相等 打折等其他逻辑待考虑)
 		inForD.setEnsurePrice(this.ensurePrice);
 		inForD.setStatus(this.getStatus());
-		inForD.setOrdetailid(this.getId());
+		inForD.setOrderDetailId(this.getId());
 		return inForD;
 	}
 

+ 0 - 1
src/main/java/com/uas/platform/b2c/trade/order/service/PurchaseService.java

@@ -2,7 +2,6 @@ package com.uas.platform.b2c.trade.order.service;
 
 import com.alibaba.fastjson.JSONArray;
 import com.uas.platform.b2c.logistics.model.Invoice;
-import com.uas.platform.b2c.logistics.model.InvoiceFPurchase;
 import com.uas.platform.b2c.logistics.model.Logistics;
 import com.uas.platform.b2c.trade.order.model.Order;
 import com.uas.platform.b2c.trade.order.model.OrderDetail;

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

@@ -39,11 +39,8 @@ import com.uas.platform.b2c.fa.settlement.model.ExchangeRate;
 import com.uas.platform.b2c.fa.settlement.service.BillSubmitService;
 import com.uas.platform.b2c.fa.settlement.service.ExchangeRateService;
 import com.uas.platform.b2c.logistics.dao.AddressDao;
-import com.uas.platform.b2c.logistics.dao.InvoiceFOrderDao;
-import com.uas.platform.b2c.logistics.dao.InvoiceFPurchaseDao;
 import com.uas.platform.b2c.logistics.dao.PickUpAddressDao;
 import com.uas.platform.b2c.logistics.model.*;
-import com.uas.platform.b2c.logistics.service.InvoiceFPurchaseService;
 import com.uas.platform.b2c.prod.commodity.constant.DoubleConstant;
 import com.uas.platform.b2c.prod.commodity.constant.StringConstant;
 import com.uas.platform.b2c.logistics.service.InvoiceService;
@@ -55,7 +52,6 @@ import com.uas.platform.b2c.prod.commodity.model.GoodsQtyPrice;
 import com.uas.platform.b2c.prod.commodity.service.GoodsHistoryService;
 import com.uas.platform.b2c.prod.commodity.service.GoodsService;
 import com.uas.platform.b2c.prod.product.common.service.CreateNumberService;
-import com.uas.platform.b2c.prod.product.component.dao.ComponentDao;
 import com.uas.platform.b2c.prod.product.component.modal.Component;
 import com.uas.platform.b2c.prod.product.component.service.ComponentService;
 import com.uas.platform.b2c.prod.store.dao.StoreInDao;

+ 1 - 1
src/main/java/com/uas/platform/b2c/trade/order/service/impl/PurchaseServiceImpl.java

@@ -1018,7 +1018,7 @@ public class PurchaseServiceImpl implements PurchaseService {
 	 */
 // 传入已经修改为已收票状态的明细id
 	public void changeReceiptToReceivedBill(Long purchaseDetailId) {
-		InvoiceDetail invoiceFPurchaseDetail = invoiceDetailDao.findInvoiceFPurchaseDetailByPudetailid(purchaseDetailId);
+		InvoiceDetail invoiceFPurchaseDetail = invoiceDetailDao.findByPurchaseDetailId(purchaseDetailId);
 		List<ReceiptDetail> receiptDetails = receiptDetailDao.findReceiptDetailBySourceid(invoiceFPurchaseDetail.getDetailid());
 		if (receiptDetails == null || receiptDetails.size() == 0) {
 			System.out.println("出货单的明细对应不到入库单的明细行,出库单的明细行是:" + invoiceFPurchaseDetail.getDetailid());