yujia 7 лет назад
Родитель
Сommit
e10ef8845b

+ 17 - 7
src/main/java/com/uas/platform/b2c/logistics/controller/InvoiceFOrderController.java

@@ -7,6 +7,7 @@ import com.uas.platform.b2c.core.support.SystemSession;
 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.trade.support.ResultMap;
 import com.uas.platform.core.logging.BufferedLoggerManager;
 import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.model.PageParams;
@@ -153,7 +154,6 @@ public class InvoiceFOrderController {
 	/**
 	 * 平台收货后,订单转出货单
 	 * Updated by huxz
-	 *
 	 * @param postDate 所有转出货单的订单map集合
 	 * @return string 返回success
 	 */
@@ -171,20 +171,30 @@ public class InvoiceFOrderController {
 		return "success";
 	}
 
+
+	/**
+	 * 平台对买家订单发货
+	 * Updated by huxz
+	 * @param json 所有转出货单的订单map集合
+	 * @id 买家订单主键
+	 * @return string 返回success
+	 */
+	@RequestMapping(value = "/ship", method = RequestMethod.POST)
+	public ResultMap orderShip(@RequestBody String json, Long id) {
+		return inForService.orderShip(json, id);
+	}
+
 	/**
 	 * 2016年3月7日 下午1:41:02
 	 * 批量确认出货和单个确认出货共用的方法
 	 *
-	 * @param postDate 请求体的信息
+	 * @param json 请求体的信息
 	 * @return string 返回success
 	 */
 	@RequestMapping(value = "/batch/send", method = RequestMethod.PUT)
-	@ApiOperation(value = "批量确认出货和单个确认出货共用的方法", httpMethod = "PUT")
-	public String batchOrSingleFOrSend(@ApiParam(required = true, value = "请求体的信息") @RequestBody String postDate) {
-		JSONObject jsonObject = FastjsonUtils.parseObject(postDate);
-		logger.log("客户出货单信息管理", " 批量确认出货和单个确认出货", "批量确认出货和单个确认出货id是:" + jsonObject.getString("ids") + ",操作者:" + SystemSession.getUser().getUserUU() + "-" + SystemSession.getUser().getUserName());
+	public String batchOrSingleFOrSend(@RequestBody String json) {
 		try {
-			inForService.batchOrSingleFOrSend(postDate);
+			inForService.batchOrSingleFOrSend(json);
 		} catch (OperationsException e) {
 			e.printStackTrace();
 		}

+ 16 - 15
src/main/java/com/uas/platform/b2c/logistics/model/InvoiceFOrderDetail.java

@@ -1,21 +1,13 @@
 package com.uas.platform.b2c.logistics.model;
 
 import com.alibaba.fastjson.annotation.JSONField;
+import com.uas.platform.b2c.core.utils.NumberUtil;
 import com.uas.platform.b2c.trade.order.model.OrderDetail;
-import com.uas.platform.core.exception.IllegalStatusException;
 import com.uas.platform.core.model.Status;
 import com.uas.platform.core.persistence.StatusColumn;
 import org.codehaus.jackson.annotate.JsonIgnore;
-import org.springframework.util.StringUtils;
 
-import javax.persistence.CascadeType;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-import javax.persistence.Table;
+import javax.persistence.*;
 
 /**
  * 发货单(来源于订单的)明细
@@ -222,11 +214,6 @@ public class InvoiceFOrderDetail {
 	 */
 	public InvoiceFOrderDetail(OrderDetail detail, String detailId) {
 		this();
-		if (detail == null) {
-			throw new IllegalStatusException("订单明细不存在");
-		} else if (StringUtils.isEmpty(detailId)) {
-			throw new IllegalStatusException("平台出货单明细编号ID不存在");
-		}
 		this.detailid = detailId;
 		this.uuid = detail.getUuid();
 		this.batchCode = detail.getBatchCode();
@@ -256,6 +243,20 @@ public class InvoiceFOrderDetail {
 		this.remark = detail.getRemark();
 	}
 
+	/**
+	 * 根据订单明细和id生成发货单明细对象
+	 *
+	 * @param detail 订单明细
+	 * @param detailId 明细id
+	 */
+	public InvoiceFOrderDetail(OrderDetail detail, String detailId, Double qty) {
+		this(detail, detailId);
+		this.taxes = NumberUtil.mul(NumberUtil.sub(this.taxunitprice, this.unitprice), qty);
+		this.number = qty;
+		this.price = NumberUtil.mul(qty, this.taxunitprice);
+		this.ensurePrice = this.price;
+	}
+
 	public Long getId() {
 		return id;
 	}

+ 17 - 7
src/main/java/com/uas/platform/b2c/logistics/service/InvoiceFOrderService.java

@@ -1,14 +1,13 @@
 package com.uas.platform.b2c.logistics.service;
 
-import java.util.List;
-import java.util.Map;
-
-import javax.management.OperationsException;
-
-import org.springframework.data.domain.Page;
-
 import com.uas.platform.b2c.logistics.model.InvoiceFOrder;
+import com.uas.platform.b2c.trade.support.ResultMap;
 import com.uas.platform.core.model.PageInfo;
+import org.springframework.data.domain.Page;
+
+import javax.management.OperationsException;
+import java.util.List;
+import java.util.Map;
 
 /**
  * The interface InvoiceFOrder service.
@@ -112,6 +111,17 @@ public interface InvoiceFOrderService {
 	 */
 	String convertInvoiceFOrder(Map<String, Object> map) throws OperationsException;
 
+
+	/**
+	 * 2016年3月7日 下午2:05:34
+	 * 存放订单号,快递信息,发货地址信息 批量转出货单
+	 *
+	 * @param json 批量转出的map
+	 * @param id 订单id
+	 * @return string 返回结果描述
+	 */
+	ResultMap orderShip(String json, Long id);
+
 	/**
 	 * 根据出货单号查看出货单详情
 	 *

+ 2 - 2
src/main/java/com/uas/platform/b2c/logistics/service/InvoiceFPurchaseService.java

@@ -50,10 +50,10 @@ public interface InvoiceFPurchaseService {
 	 * 采购转出货
 	 *
 	 * @param purchase the puid 采购单号\
-	 * @param shipList 发货信息
+	 * @param map 发货信息
 	 * @return InvoiceFPurchase 返回InvoiceFPurchase对象
 	 */
-	InvoiceFPurchase createInvoiceFPurchase(Purchase purchase, List<Map<Long, Double>> shipList);
+	InvoiceFPurchase createInvoiceFPurchase(Purchase purchase, Map<Long, Double> map);
 
 	/**
 	 * 查找待出货

+ 180 - 12
src/main/java/com/uas/platform/b2c/logistics/service/impl/InvoiceFOrderServiceImpl.java

@@ -2,6 +2,11 @@ package com.uas.platform.b2c.logistics.service.impl;
 
 import com.alibaba.fastjson.JSONObject;
 import com.uas.platform.b2c.common.account.model.TradeLog;
+import com.uas.platform.b2c.core.support.SystemSession;
+import com.uas.platform.b2c.core.support.log.TradeBufferedLogger;
+import com.uas.platform.b2c.core.utils.DoubleArith;
+import com.uas.platform.b2c.core.utils.FastjsonUtils;
+import com.uas.platform.b2c.core.utils.NumberUtil;
 import com.uas.platform.b2c.logistics.dao.InvoiceFOrderDao;
 import com.uas.platform.b2c.logistics.model.InvoiceFOrder;
 import com.uas.platform.b2c.logistics.model.InvoiceFOrderDetail;
@@ -9,25 +14,24 @@ import com.uas.platform.b2c.logistics.model.Logistics;
 import com.uas.platform.b2c.logistics.service.InvoiceFOrderDetailService;
 import com.uas.platform.b2c.logistics.service.InvoiceFOrderService;
 import com.uas.platform.b2c.logistics.service.LogisticsPortService;
+import com.uas.platform.b2c.prod.commodity.constant.DoubleConstant;
+import com.uas.platform.b2c.prod.product.common.service.CreateNumberService;
 import com.uas.platform.b2c.trade.order.dao.OrderDao;
 import com.uas.platform.b2c.trade.order.model.Order;
 import com.uas.platform.b2c.trade.order.model.OrderDetail;
 import com.uas.platform.b2c.trade.order.service.OrderService;
-import com.uas.platform.b2c.prod.product.common.service.CreateNumberService;
-import com.uas.platform.b2c.core.support.SystemSession;
-import com.uas.platform.b2c.core.support.log.TradeBufferedLogger;
-import com.uas.platform.b2c.core.utils.DoubleArith;
-import com.uas.platform.b2c.core.utils.FastjsonUtils;
-import com.uas.platform.b2c.core.utils.NumberUtil;
+import com.uas.platform.b2c.trade.support.CodeType;
+import com.uas.platform.b2c.trade.support.ResultMap;
 import com.uas.platform.b2c.trade.util.TradeLogUtil;
 import com.uas.platform.core.exception.IllegalOperatorException;
 import com.uas.platform.core.logging.BufferedLoggerManager;
 import com.uas.platform.core.model.EncodingRulesConstant;
 import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.model.Status;
-import com.uas.platform.core.model.Type;
 import com.uas.platform.core.persistence.criteria.PredicateUtils;
 import com.uas.platform.core.persistence.criteria.SimpleExpression;
+import com.uas.platform.core.util.serializer.FlexJsonUtils;
+import org.apache.commons.collections.MapUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.data.jpa.domain.Specification;
@@ -41,11 +45,7 @@ import javax.persistence.criteria.CriteriaQuery;
 import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Root;
 import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 
 @Service
 public class InvoiceFOrderServiceImpl implements InvoiceFOrderService {
@@ -301,6 +301,174 @@ public class InvoiceFOrderServiceImpl implements InvoiceFOrderService {
 		return "success";
 	}
 
+
+	/**
+	 * 2016年3月7日 下午2:05:34
+	 * 存放订单号,快递信息,发货地址信息 批量转出货单
+	 *
+	 * @param json 批量转出的map
+	 * @param id   订单id
+	 * @return string 返回结果描述
+	 */
+	@Override
+	public ResultMap orderShip(String json, Long id) {
+		if (StringUtils.isEmpty(json)) {
+			return new ResultMap(CodeType.NO_INFO, "发货信息为空");
+		}
+		if (id == null) {
+			return new ResultMap(CodeType.NO_INFO, "订单信息为空");
+		}
+		Order order = orderDao.findOne(id);
+		if (order == null) {
+			return new ResultMap(CodeType.NO_INFO, "找不到对应订单信息");
+		}
+		JSONObject jsonObject = FastjsonUtils.parseObject(json);
+		String shipList = jsonObject.getString("map");
+		if (org.apache.commons.lang.StringUtils.isEmpty(shipList)) {
+			return new ResultMap(CodeType.NO_INFO, "发货明细缺失");
+		}
+		Map<Long, Double> map = FlexJsonUtils.fromJson(shipList, Map.class);
+		if (MapUtils.isEmpty(map)) {
+			return new ResultMap(CodeType.NO_INFO, "发货明细缺失");
+		}
+		InvoiceFOrder thisFor = null;
+		ResultMap resultMap = createInvoiceFromOrder(order, map);
+		if (resultMap.getCode() == CodeType.OK.code()) {
+			thisFor = (InvoiceFOrder) resultMap.getData();
+		} else {
+			return resultMap;
+		}
+		String addr = String.valueOf(jsonObject.get("jsonSdAddress"));
+		String logistic = String.valueOf(jsonObject.get("logistics"));
+		String logisticsCompany = String.valueOf(jsonObject.get("companyName"));
+		if (StringUtils.isEmpty(addr)) {
+			return new ResultMap(CodeType.NO_INFO, "操作不当,发货地址信息为空,请添加相应的信息");
+		}
+		if (StringUtils.isEmpty(logistic)) {
+			return new ResultMap(CodeType.NO_INFO, "操作不当,快递信息为空,请添加相应的信息");
+		}
+		Logistics loList = FastjsonUtils.fromJson(logistic, Logistics.class);
+		thisFor.setLogistics(loList);
+		Long uu = SystemSession.getUser().getUserUU();
+		thisFor.setStatusInBound(uu);
+		thisFor.setJsonSdAddress(addr);
+		Set<InvoiceFOrderDetail> invoiceFOrderDetails = thisFor.getInvoiceFOrderDetails();
+		for (InvoiceFOrderDetail invoiceFOrderDetail : invoiceFOrderDetails) {
+			if (invoiceFOrderDetail.getStatus().intValue() == Status.TOBESHIPPED.value()) {
+				invoiceFOrderDetail.setStatus(Status.INBOUND.value());
+			}
+		}
+		InvoiceFOrder inF = inForDao.save(thisFor);
+
+		// 提交订单到邮政物流接口
+		if ("邮政国内".equals(logisticsCompany)) {
+			String EMS = LogisticsPortservice.newOrderMailNo(json);
+			if (EMS != "success") {
+				throw new IllegalAccessError("邮政接口调用出错");
+			}
+		}
+		order.setLgtId(inF.getLogistics().getId());
+		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+		order.setDeliverTime(sdf.format(new Date()));
+		order.setJsonSdAddress(addr);
+		Set<OrderDetail> orderDetails = order.getOrderDetails();
+		if (NumberUtil.compare(order.getQty(), order.getShipQty()) < 1) {
+			for (OrderDetail orderDetail : orderDetails) {
+				if (orderDetail.getStatus().intValue() == Status.SENDING.value()) {
+					orderDetail.setStatusInBound(uu);
+				}
+			}
+			order.setStatusInBound(uu);
+		}
+		orderDao.save(order);
+		return ResultMap.success(inF);
+	}
+
+
+	/**
+	 * 根据Order生成平台出货单,并进行发货动作
+	 * @param order	订单
+	 * @param order 需要发货的订单
+	 */
+	private ResultMap createInvoiceFromOrder(Order order, Map<Long, Double> map) {
+		if (order == null) {
+			return new ResultMap(CodeType.NO_INFO, "找不到对应订单");
+		}
+		if (MapUtils.isEmpty(map)) {
+			return new ResultMap(CodeType.NO_INFO, "发货明细为空");
+		}
+		Long userUU = SystemSession.getUser().getUserUU();
+		String invoiceId = EncodingRulesConstant.INVOICE_FROMORDER.replace("_TIMESTAP_NUMBER",
+				createNumberService.getTimeNumber("trade$invoice_fmor", 8));
+		InvoiceFOrder invoice = new InvoiceFOrder(order, invoiceId);
+		Short detno = 1;
+		Double taxes = 0d;
+		Double prices = 0d;
+		Double number = 0d;
+		Double ensurePrice = 0.0d;
+		// 生成平台发货单明细
+		Set<InvoiceFOrderDetail> iDetails = new HashSet<>();
+		Set<String> iDetailIds = new HashSet<>();
+		Double qty = 0.0d;
+		for (OrderDetail orDetail : order.getOrderDetails()) {
+			qty = 0.0d;
+			qty = map.get(orDetail.getId());
+			if ((Status.SHIPPED.value() != orDetail.getStatus()) || (NumberUtil.compare(qty, DoubleConstant.zero) < 1)) {
+				continue;
+			}
+			Double[] arr = new Double[]{orDetail.getShipQty(), qty};
+			double remaider = NumberUtil.sub(orDetail.getNumber(), arr);
+			if (NumberUtil.compare(remaider, DoubleConstant.zero) < 1) {
+				throw new IllegalOperatorException("型号为" + orDetail.getCmpCode() + "的明细发货数大于待发货数");
+			}
+			String detailId = EncodingRulesConstant.INVOICE_DETAIL_FROMORDER.replace("_TIMESTAP_NUMBER",
+					createNumberService.getTimeNumber("trade$invoice_fmor_dt", 9));
+			InvoiceFOrderDetail invoiceDetail = new InvoiceFOrderDetail(orDetail, detailId, qty);
+			invoiceDetail.setDetno(detno++);
+			taxes = DoubleArith.add(taxes, invoiceDetail.getTaxes());
+			prices = DoubleArith.add(prices, invoiceDetail.getPrice());
+			number = DoubleArith.add(number, invoiceDetail.getNumber());
+			ensurePrice = DoubleArith.add(ensurePrice, invoiceDetail.getEnsurePrice());
+			invoiceDetail.setInvoiceFOrder(invoice);
+			iDetails.add(invoiceDetail);
+			orDetail.setInfdetailid(detailId);
+			iDetailIds.add(detailId);
+
+			orDetail.setShipQty(NumberUtil.add(orDetail.getShipQty(), qty));
+			if (NumberUtil.compare(orDetail.getNumber(), orDetail.getShipQty()) < 1) {
+				orDetail.setStatusSending(userUU);
+			}
+			order.setShipQty(NumberUtil.add(order.getShipQty(), qty));
+		}
+		//设置配送规则和自提点信息
+		if (order.getJsonRule() != null){
+			invoice.setJsonRule(order.getJsonRule());
+		}
+		if (order.getJsonTakeSelf() != null){
+			invoice.setJsonTakeSelf(order.getJsonTakeSelf());
+		}
+		invoice.setTaxes(taxes);
+		invoice.setPrice(prices);
+		invoice.setNumber(number);
+		invoice.setEnsurePrice(ensurePrice);
+		invoice.setTobeshipped(userUU);
+		invoice.setInvoiceFOrderDetails(iDetails);
+		invoice.setInforRemark(order.getOrderRemark());
+		invoice.setDeliveryType(order.getDeliverytype());
+
+		if (invoice.getUasPurcid() != null) {
+			// 手动将平台状态改成202(要考虑一点,UAS和平台做的单据是否都可以这样做)
+			invoice.setSendstatus(Status.NOT_UPLOAD.value());
+		}
+
+		// 更新订单及明细的状态信息
+		if (NumberUtil.compare(order.getQty(), order.getShipQty()) < 1) {
+			order.setStatusSending(userUU);
+		}
+		order.setInid(invoice.getInvoiceid());
+		return ResultMap.success(invoice);
+	}
+
 	/**
 	 * 根据订单生成平台出货单及其明细信息,并保存出货单和修改订单状态信息
 	 * Created by huxz 2017-1-13 15:39:40

+ 24 - 20
src/main/java/com/uas/platform/b2c/logistics/service/impl/InvoiceFPurchaseServiceImpl.java

@@ -46,6 +46,7 @@ import com.uas.platform.core.persistence.criteria.SimpleExpression;
 import com.uas.platform.core.util.serializer.FlexJsonUtils;
 import com.uas.sso.util.FlexJsonUtil;
 import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.collections.MapUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.data.jpa.domain.Specification;
@@ -58,7 +59,6 @@ import javax.persistence.criteria.CriteriaBuilder;
 import javax.persistence.criteria.CriteriaQuery;
 import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Root;
-import java.beans.beancontext.BeanContextMembershipListener;
 import java.util.*;
 
 @Service
@@ -210,14 +210,17 @@ public class InvoiceFPurchaseServiceImpl implements InvoiceFPurchaseService {
 	 * 采购转出货
 	 *
 	 * @param purchase     the puid 采购单号\
-	 * @param shipList
+	 * @param map
 	 * @return InvoiceFPurchase 返回InvoiceFPurchase对象
 	 */
 	@Override
-	public InvoiceFPurchase createInvoiceFPurchase(Purchase purchase, List<Map<Long, Double>> shipList) {
+	public InvoiceFPurchase createInvoiceFPurchase(Purchase purchase, Map<Long, Double> map) {
 		if (purchase == null) {
 			throw new IllegalOperatorException("传入信息为空");
 		}
+		if (MapUtils.isEmpty(map)) {
+			throw new IllegalOperatorException("发货明细为空");
+		}
 		if (purchase.getStatus() != Status.TOBESHIPPED.value() && purchase.getStatus() != Status.CONFIRMED.value()) {
 			throw new IllegalAccessError(
 					"采购单" + purchase.getPurchaseid() + "的状态是" + Status.valueOf(purchase.getStatus()).getPhrase() + ",不能转出货");
@@ -255,9 +258,7 @@ public class InvoiceFPurchaseServiceImpl implements InvoiceFPurchaseService {
 		for (PurchaseDetail puDetail : purchase.getPurchaseDetails()) {
 			// 如果当前采购单明细的状态不是待出货状态,则处理下一条明细是否转出货
 			qty = 0.0d;
-			for (Map<Long, Double> map : shipList) {
-				qty = map.get(puDetail.getId());
-			}
+			qty = map.get(puDetail.getId());
 			if (Status.TOBESHIPPED.value() != puDetail.getStatus() || NumberUtil.compare(qty, DoubleConstant.zero) < 1) {
 				continue;
 			}
@@ -598,12 +599,12 @@ public class InvoiceFPurchaseServiceImpl implements InvoiceFPurchaseService {
 		JSONObject jObj = FlexJsonUtil.fromJson(shiInfo, JSONObject.class);
 
 		Long userUU = SystemSession.getUser().getUserUU();
-		String shipStr = jObj.getString("shipList");
+		String shipStr = jObj.getString("map");
 		if (org.apache.commons.lang.StringUtils.isEmpty(shipStr)) {
 			return new ResultMap(CodeType.NO_INFO, "发货明细缺失");
 		}
-		List<Map<Long, Double>> shipList = FlexJsonUtils.fromJsonArray(shipStr, Map.class);
-		InvoiceFPurchase invoiceFPurchase = createInvoiceFPurchase(purchase, shipList);
+		Map<Long, Double> map = FlexJsonUtils.fromJson(shipStr, Map.class);
+		InvoiceFPurchase invoiceFPurchase = createInvoiceFPurchase(purchase, map);
 		Integer sendType = Integer.parseInt(jObj.getString("sendType"));
 
 		if (sendType == null){
@@ -644,24 +645,27 @@ public class InvoiceFPurchaseServiceImpl implements InvoiceFPurchaseService {
 		purchase.setSenduu(SystemSession.getUser().getUserUU());
 		purchase.setSendTime(new Date());
 		purchase.addInid(inFpu.getInvoiceid());
+		//如果不是优软商城店铺,则代表店铺直售
+		Order order = null;
+		if(!purchase.getStoreid().equals(sysConf.getStoreid())) {
+			order = orderDao.findByOrderid(purchase.getOrderid());
+			if(order == null) {
+				return new ResultMap(CodeType.NOT_PERMIT, "您订单的信息有误,请重新提交");
+			}
+			if (inFpu.getLogistics() != null){
+				order.setLgtId(inFpu.getLogistics().getId());
+			}
+			orderDao.save(order);
+		}
 
 		if(NumberUtil.compare(purchase.getQty(), purchase.getShipQty()) < 1) {
 			//如果不是优软商城店铺,则代表店铺直售
 			if(!purchase.getStoreid().equals(sysConf.getStoreid())) {
-				Order order = orderDao.findByOrderid(purchase.getOrderid());
-				if(order == null) {
-					return new ResultMap(CodeType.NOT_PERMIT, "您订单的信息有误,请重新提交");
-				}
-				if (inFpu.getLogistics() != null){
-					order.setLgtId(inFpu.getLogistics().getId());
-				}
-				order.setJsonSdAddress(inFpu.getJsonSdAddress());
 				order.setStatusInBound(userUU);
 				order.setSendstatus(Status.NOT_UPLOAD.value());// 将订单设置为未下载状态,以便erp下载
 				for (OrderDetail detail : order.getOrderDetails()) {
 					detail.setStatusInBound(userUU);
 				}
-				orderDao.save(order);
 			}
 			Set<PurchaseDetail> purchaseDetails = purchase.getPurchaseDetails();
 			for (PurchaseDetail purchaseDetail : purchaseDetails) {
@@ -671,9 +675,9 @@ public class InvoiceFPurchaseServiceImpl implements InvoiceFPurchaseService {
 			}
 			purchase.setStatusInBound(userUU);
 		}
-
+		orderDao.save(order);
 		purchaseDao.save(purchase);
-		return null;
+		return ResultMap.success("ok");
 	}
 
 

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

@@ -44,7 +44,7 @@ public interface ProductDao extends JpaSpecificationExecutor<Product>, JpaReposi
      * @param prodNum  物料编号list
      * @return 返回物料信息。
      */
-    @Query(value = "select p from Product p where p.prodNum = prodNum")
+    @Query(value = "select p from Product p where p.prodNum = :prodNum")
     List<Product> findByProdNum(@Param("prodNum") String prodNum);
 
     /**