Commit e53453ce by 缪晖

Merge branch 'feature/2.0.1-collageOrder-刘鹏飞' into qa

# Conflicts:
#	order-application-service/src/main/java/cn/freemud/enums/ResponseResult.java
#	order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
parents bbc4a8a1 69c0e8a0
...@@ -166,6 +166,7 @@ public enum ResponseResult { ...@@ -166,6 +166,7 @@ public enum ResponseResult {
ORDER_CANCEL_ERROR_EXPECT_TIME("45067", "预约时间还剩15分钟,无法取消"), ORDER_CANCEL_ERROR_EXPECT_TIME("45067", "预约时间还剩15分钟,无法取消"),
ORDER_CANCEL_ERROR_ESTIMATE_TIME("45068", "预计送达还剩30分钟,无法取消"), ORDER_CANCEL_ERROR_ESTIMATE_TIME("45068", "预计送达还剩30分钟,无法取消"),
ORDER_GROUP_BUY_LIST_EMPTY("45069", "付款人列表为空,无法发起群收款"),
/** /**
......
...@@ -26,6 +26,8 @@ import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo ...@@ -26,6 +26,8 @@ import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo
import com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustomerInfoManager; import com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustomerInfoManager;
import com.freemud.application.sdk.api.ordercenter.enums.ResponseResultEnum; import com.freemud.application.sdk.api.ordercenter.enums.ResponseResultEnum;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderCostResp; import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderCostResp;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderSettlementResp;
import com.freemud.sdk.api.assortment.order.enums.OldOrderAccountType;
import com.freemud.sdk.api.assortment.order.request.order.BaseQueryOrderRequest; import com.freemud.sdk.api.assortment.order.request.order.BaseQueryOrderRequest;
import com.freemud.sdk.api.assortment.order.request.order.GroupBuyRequest; import com.freemud.sdk.api.assortment.order.request.order.GroupBuyRequest;
import com.freemud.sdk.api.assortment.order.response.order.GroupBuyResponse; import com.freemud.sdk.api.assortment.order.response.order.GroupBuyResponse;
...@@ -113,6 +115,12 @@ public class CollageOrderServiceImpl implements CollageOrderService { ...@@ -113,6 +115,12 @@ public class CollageOrderServiceImpl implements CollageOrderService {
List<GroupBuyDto> list = new ArrayList<>(); List<GroupBuyDto> list = new ArrayList<>();
GroupBuyDto groupBuyDto; GroupBuyDto groupBuyDto;
List<String> payerUserIdList = productList.stream().filter(product -> !order.getUserId().equals(product.getUserId())).map(QueryOrdersResponse.DataBean.OrderBean.ProductBean::getUserId).distinct().collect(Collectors.toList()); List<String> payerUserIdList = productList.stream().filter(product -> !order.getUserId().equals(product.getUserId())).map(QueryOrdersResponse.DataBean.OrderBean.ProductBean::getUserId).distinct().collect(Collectors.toList());
// 付款人列表为空时直接返回错误提示
if (null == payerUserIdList || payerUserIdList.isEmpty()) {
return ResponseUtil.error(ResponseResult.ORDER_GROUP_BUY_LIST_EMPTY);
}
for (String payerUserId : payerUserIdList) { for (String payerUserId : payerUserIdList) {
groupBuyDto = new GroupBuyDto(); groupBuyDto = new GroupBuyDto();
groupBuyDto.setUserId(payerUserId); groupBuyDto.setUserId(payerUserId);
...@@ -128,7 +136,17 @@ public class CollageOrderServiceImpl implements CollageOrderService { ...@@ -128,7 +136,17 @@ public class CollageOrderServiceImpl implements CollageOrderService {
// 运费均摊时算上拼单发起人 // 运费均摊时算上拼单发起人
deliveryAmount = Math.floorDiv(deliveryPrice.longValue(), payerUserIdList.size() + 1); deliveryAmount = Math.floorDiv(deliveryPrice.longValue(), payerUserIdList.size() + 1);
} }
groupBuyDto.setAmount(itemAmount + packAmount + deliveryAmount); // 微信拼单优惠分摊
Long wechatDiscountAmount = 0L;
if (order.getOrderSettlementDetailList() != null && !order.getOrderSettlementDetailList().isEmpty()) {
List<OrderSettlementResp> settlements = order.getOrderSettlementDetailList().stream().filter(settlement -> (OldOrderAccountType.WEIXIN.equals(settlement.getSettlementType()))).collect(Collectors.toList());
for (OrderSettlementResp settlement : settlements) {
wechatDiscountAmount += settlement.getShopDiscountAmount() + settlement.getPlatformDiscountAmount();
}
wechatDiscountAmount = Math.floorDiv(wechatDiscountAmount, payerUserIdList.size() + 1);
}
groupBuyDto.setAmount(itemAmount + packAmount + deliveryAmount - wechatDiscountAmount);
groupBuyDto.setNickName(productList.stream().filter(product -> payerUserId.equals(product.getUserId())).findFirst().get().getNickName()); groupBuyDto.setNickName(productList.stream().filter(product -> payerUserId.equals(product.getUserId())).findFirst().get().getNickName());
groupBuyDto.setPhotoUrl(productList.stream().filter(product -> payerUserId.equals(product.getUserId())).findFirst().get().getPhotoUrl()); groupBuyDto.setPhotoUrl(productList.stream().filter(product -> payerUserId.equals(product.getUserId())).findFirst().get().getPhotoUrl());
list.add(groupBuyDto); list.add(groupBuyDto);
...@@ -180,9 +198,16 @@ public class CollageOrderServiceImpl implements CollageOrderService { ...@@ -180,9 +198,16 @@ public class CollageOrderServiceImpl implements CollageOrderService {
List<GroupBuyRequest.UserInfo> userInfoList = new ArrayList<>(); List<GroupBuyRequest.UserInfo> userInfoList = new ArrayList<>();
List<QueryOrdersResponse.DataBean.OrderBean.ProductBean> productList = order.getProductList(); List<QueryOrdersResponse.DataBean.OrderBean.ProductBean> productList = order.getProductList();
List<OrderSettlementResp> settlementList = order.getOrderSettlementDetailList();
// 群收款支付用户列表 // 群收款支付用户列表
List<String> payerOpenIdList = productList.stream().filter(product -> !userInfo.getMemberId().equals(product.getUserId())).map(QueryOrdersResponse.DataBean.OrderBean.ProductBean::getOpenId).distinct().collect(Collectors.toList()); List<String> payerOpenIdList = productList.stream().filter(product -> !userInfo.getMemberId().equals(product.getUserId())).map(QueryOrdersResponse.DataBean.OrderBean.ProductBean::getOpenId).distinct().collect(Collectors.toList());
// 付款人列表为空时直接返回错误提示
if (null == payerOpenIdList || payerOpenIdList.isEmpty()) {
return ResponseUtil.error(ResponseResult.ORDER_GROUP_BUY_LIST_EMPTY);
}
// 组装群收款付款人列表 // 组装群收款付款人列表
GroupBuyRequest.UserInfo groupBuyUserInfo; GroupBuyRequest.UserInfo groupBuyUserInfo;
for (String payerOpenId : payerOpenIdList) { for (String payerOpenId : payerOpenIdList) {
...@@ -192,12 +217,22 @@ public class CollageOrderServiceImpl implements CollageOrderService { ...@@ -192,12 +217,22 @@ public class CollageOrderServiceImpl implements CollageOrderService {
Long packAmount = productList.stream().filter(product -> (payerOpenId.equals(product.getOpenId()) && null != product.getPackPrice())).map(QueryOrdersResponse.DataBean.OrderBean.ProductBean::getPackPrice).reduce(Long::sum).orElse(0L); Long packAmount = productList.stream().filter(product -> (payerOpenId.equals(product.getOpenId()) && null != product.getPackPrice())).map(QueryOrdersResponse.DataBean.OrderBean.ProductBean::getPackPrice).reduce(Long::sum).orElse(0L);
// 运费分摊 // 运费分摊
Long deliveryAmount = 0L; Long deliveryAmount = 0L;
if (order.getOrderCostDetailList() != null) { if (order.getOrderCostDetailList() != null && !order.getOrderCostDetailList().isEmpty()) {
OrderCostResp orderCostResp = order.getOrderCostDetailList().stream().filter(detail -> (detail.getCostType().equals(2) && detail.getBillType().equals(1))).findFirst().orElse(new OrderCostResp()); OrderCostResp orderCostResp = order.getOrderCostDetailList().stream().filter(detail -> (detail.getCostType().equals(2) && detail.getBillType().equals(1))).findFirst().orElse(new OrderCostResp());
BigDecimal deliveryPrice = orderCostResp.getActualCostAmount() == null ? new BigDecimal(0) : orderCostResp.getActualCostAmount(); BigDecimal deliveryPrice = orderCostResp.getActualCostAmount() == null ? new BigDecimal(0) : orderCostResp.getActualCostAmount();
deliveryAmount = Math.floorDiv(deliveryPrice.longValue(), payerOpenIdList.size() + 1); deliveryAmount = Math.floorDiv(deliveryPrice.longValue(), payerOpenIdList.size() + 1);
} }
Long amount = itemAmount + packAmount + deliveryAmount; // 微信拼单优惠分摊
Long wechatDiscountAmount = 0L;
if (order.getOrderSettlementDetailList() != null && !order.getOrderSettlementDetailList().isEmpty()) {
List<OrderSettlementResp> settlements = order.getOrderSettlementDetailList().stream().filter(settlement -> (OldOrderAccountType.WEIXIN.equals(settlement.getSettlementType()))).collect(Collectors.toList());
for (OrderSettlementResp settlement : settlements) {
wechatDiscountAmount += settlement.getShopDiscountAmount() + settlement.getPlatformDiscountAmount();
}
wechatDiscountAmount = Math.floorDiv(wechatDiscountAmount, payerOpenIdList.size() + 1);
}
Long amount = itemAmount + packAmount + deliveryAmount - wechatDiscountAmount;
groupBuyUserInfo = new GroupBuyRequest.UserInfo(); groupBuyUserInfo = new GroupBuyRequest.UserInfo();
groupBuyUserInfo.setOpenid(payerOpenId); groupBuyUserInfo.setOpenid(payerOpenId);
groupBuyUserInfo.setAmount(Integer.parseInt(String.valueOf(amount))); groupBuyUserInfo.setAmount(Integer.parseInt(String.valueOf(amount)));
......
...@@ -190,6 +190,8 @@ public class OrderServiceImpl implements Orderservice { ...@@ -190,6 +190,8 @@ public class OrderServiceImpl implements Orderservice {
private String cloud_print_exchange; private String cloud_print_exchange;
@Value("${mcCafe.fengniao.storeId}") @Value("${mcCafe.fengniao.storeId}")
private String fnStoreId; private String fnStoreId;
@Value("${collage.pre_order_pay.goods_tag}")
private String collageGoodsTag;
/** /**
* coco商户 * coco商户
...@@ -2713,6 +2715,14 @@ public class OrderServiceImpl implements Orderservice { ...@@ -2713,6 +2715,14 @@ public class OrderServiceImpl implements Orderservice {
if (orderExtInfoDto != null && StringUtils.isNotBlank(orderExtInfoDto.getStationId())) { if (orderExtInfoDto != null && StringUtils.isNotBlank(orderExtInfoDto.getStationId())) {
request.setStationId(orderExtInfoDto.getStationId()); request.setStationId(orderExtInfoDto.getStationId());
} }
// add by miaohui for 拼单群收款判断拼单人数大于1时参与微信平台补贴活动,创建预支付时上送goodsTag,后续抽成促销服务活动时删除此逻辑 start
if (null != orderBean.getMarketingType() && OrderMarketType.COLLAGE.getIndex() == orderBean.getMarketingType()) {
// 拼单人数大于1人时参加拼单补贴
if (null != orderBean.getProductList() && orderBean.getProductList().stream().map(QueryOrdersResponse.DataBean.OrderBean.ProductBean::getUserId).distinct().collect(Collectors.toList()).size() > 1) {
request.setGoodsTag(collageGoodsTag);
}
}
// add by miaohui for 拼单群收款判断拼单人数大于1时参与微信平台补贴活动,创建预支付时上送goodsTag,后续抽成促销服务活动时删除此逻辑 end
com.freemud.application.sdk.api.base.BaseResponse<UnifiedOrderResponse> responseBase = standardPaymentService.unifiedOrder(request, trackingNo); com.freemud.application.sdk.api.base.BaseResponse<UnifiedOrderResponse> responseBase = standardPaymentService.unifiedOrder(request, trackingNo);
if (!ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(responseBase.getCode())) { if (!ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(responseBase.getCode())) {
log.error("支付SDK返回信息错误,trackingNo:{} request:{} response:{}", trackingNo, JSONObject.toJSONString(request), JSONObject.toJSONString(responseBase)); log.error("支付SDK返回信息错误,trackingNo:{} request:{} response:{}", trackingNo, JSONObject.toJSONString(request), JSONObject.toJSONString(responseBase));
......
...@@ -237,19 +237,23 @@ public class BuySendPromotionService implements IPromotionService { ...@@ -237,19 +237,23 @@ public class BuySendPromotionService implements IPromotionService {
} }
if (manyOrSingle) { if (manyOrSingle) {
// 多规格 // 多规格
if (!Objects.equals(sendGoodsMap.get(cartGood.getSkuId()).getOriginalGoodsUid(), cartGood.getCartGoodsUid())) { if (!Objects.equals(sendGoodsMap.get(cartGood.getSkuId()).getGoodsId(), cartGood.getSkuId())) {
return; return;
} }
} else { } else {
// 单品 // 单品
if (!Objects.equals(sendGoodsMap.get(cartGood.getSpuId()).getOriginalGoodsUid(), cartGood.getCartGoodsUid())) { List<String> spuIds = newCartGoodsList.stream().map(CartGoods::getSpuId).collect(Collectors.toList());
if (spuIds.contains(cartGood.getSpuId())) {
return; return;
} }
} }
ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendActivity.SendGoods sendGoods = sendGoodsMap.get(cartGood.getGoodsId()); ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendActivity.SendGoods sendGoods = sendGoodsMap.get(cartGood.getGoodsId());
if (cartGood.getCartGoodsUid().equals(sendGoods.getOriginalGoodsUid())) {
return;
}
String s = currentSubName(cartGood); String s = currentSubName(cartGood);
CartGoods newCartGoods = shoppingCartConvertAdapter.convent2CartGoods(cartGood, sendGoods.getNowPrice()); CartGoods newCartGoods = shoppingCartConvertAdapter.convent2CartGoods(cartGood, sendGoods.getNowPrice());
newCartGoods.setOriginalGoodsUid(sendGoodsMap.get(cartGood.getSpuId()).getOriginalGoodsUid()); newCartGoods.setOriginalGoodsUid(sendGoods.getOriginalGoodsUid());
newCartGoods.setClassificationId(cartGood.getClassificationId()); newCartGoods.setClassificationId(cartGood.getClassificationId());
newCartGoods.setClassificationName(cartGood.getClassificationName()); newCartGoods.setClassificationName(cartGood.getClassificationName());
newCartGoods.setQty(sendGoods.getSendNumber() > 0 ? sendGoods.getSendNumber() : SEND_NUMBER); newCartGoods.setQty(sendGoods.getSendNumber() > 0 ? sendGoods.getSendNumber() : SEND_NUMBER);
......
...@@ -50,7 +50,7 @@ public class SetMealServiceImpl implements IPromotionService { ...@@ -50,7 +50,7 @@ public class SetMealServiceImpl implements IPromotionService {
Map<String, Integer> numberMap = new HashMap<>(); Map<String, Integer> numberMap = new HashMap<>();
// 当前商品行现价 // 当前商品行现价
Map<String, ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods> goodsMap = calculationDiscountResult.getGoods().parallelStream() Map<String, ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods> goodsMap = calculationDiscountResult.getGoods().parallelStream()
.collect(Collectors.toMap(ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods::getGoodsId, Function.identity(), (k1, k2) -> k1)); .collect(Collectors.toMap(ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods::getCartGoodsUid, Function.identity(), (k1, k2) -> k1));
// 设置商品原价与商品现价的初始值 // 设置商品原价与商品现价的初始值
for (CartGoods cartGoods : setMealProducts) { for (CartGoods cartGoods : setMealProducts) {
...@@ -139,19 +139,19 @@ public class SetMealServiceImpl implements IPromotionService { ...@@ -139,19 +139,19 @@ public class SetMealServiceImpl implements IPromotionService {
*/ */
private String getTotalAmount(CartGoods cartGoods, long productGroupAmount, Map<String, Integer> numberMap, Map<String, ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods> goodsMap) { private String getTotalAmount(CartGoods cartGoods, long productGroupAmount, Map<String, Integer> numberMap, Map<String, ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods> goodsMap) {
if (goodsMap.isEmpty()||goodsMap.get(cartGoods.getGoodsId()).getDiscountAmount() == 0) { if (goodsMap.isEmpty()||goodsMap.get(cartGoods.getCartGoodsUid()).getDiscountAmount() == 0) {
cartGoods.setAmount((cartGoods.getFinalPrice() + productGroupAmount) * cartGoods.getQty()); cartGoods.setAmount((cartGoods.getFinalPrice() + productGroupAmount) * cartGoods.getQty());
return ""; return "";
} }
if (numberMap.get(cartGoods.getGoodsId()) == null) { if (numberMap.get(cartGoods.getGoodsId()) == null) {
int actualGoodsNumber = goodsMap.get(cartGoods.getGoodsId()).getDiscounts().stream().mapToInt(ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount::getActualGoodsNumber) int actualGoodsNumber = goodsMap.get(cartGoods.getCartGoodsUid()).getDiscounts().stream().mapToInt(ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount::getActualGoodsNumber)
.min().orElse(goodsMap.get(cartGoods.getGoodsId()).getGoodsQuantity()); .min().orElse(goodsMap.get(cartGoods.getCartGoodsUid()).getGoodsQuantity());
numberMap.put(cartGoods.getGoodsId(), actualGoodsNumber); numberMap.put(cartGoods.getGoodsId(), actualGoodsNumber);
} }
// 可优惠数量 // 可优惠数量
Integer number = numberMap.get(cartGoods.getGoodsId()); Integer number = numberMap.get(cartGoods.getGoodsId());
if (number > 0) { if (number > 0) {
Long nowPrice = goodsMap.get(cartGoods.getGoodsId()).getNowPrice(); Long nowPrice = goodsMap.get(cartGoods.getCartGoodsUid()).getNowPrice();
//套餐固定商品价格 //套餐固定商品价格
long productComboxAmount = cartGoods.getQty() > number ? number * nowPrice + (cartGoods.getQty() - number) * cartGoods.getFinalPrice() : cartGoods.getQty() * nowPrice; long productComboxAmount = cartGoods.getQty() > number ? number * nowPrice + (cartGoods.getQty() - number) * cartGoods.getFinalPrice() : cartGoods.getQty() * nowPrice;
cartGoods.setAmount(productComboxAmount + productGroupAmount * cartGoods.getQty()); cartGoods.setAmount(productComboxAmount + productGroupAmount * cartGoods.getQty());
......
...@@ -44,14 +44,14 @@ public class TimeSalePromotionService implements IPromotionService { ...@@ -44,14 +44,14 @@ public class TimeSalePromotionService implements IPromotionService {
} }
String toastMsg = null; String toastMsg = null;
Map<String, ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods> goodsMap = goodsList.parallelStream() Map<String, ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods> goodsMap = goodsList.parallelStream()
.collect(Collectors.toMap(ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods::getGoodsId, Function.identity(), (k1, k2) -> k1)); .collect(Collectors.toMap(ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods::getCartGoodsUid, Function.identity(), (k1, k2) -> k1));
// 存储当前享受限时特价折扣的商品数量,key:goodsId; value:可享受数量 // 存储当前享受限时特价折扣的商品数量,key:goodsId; value:可享受数量
Map<String, Integer> numberMap = new HashMap<>(); Map<String, Integer> numberMap = new HashMap<>();
List<Integer> discounts = Arrays.asList(ActivityTypeEnum.TYPE_2.getCode(), ActivityTypeEnum.TYPE_21.getCode()); List<Integer> discounts = Arrays.asList(ActivityTypeEnum.TYPE_2.getCode(), ActivityTypeEnum.TYPE_21.getCode());
String uid = ""; String uid = "";
for (CartGoods cartGoods : cartGoodsList) { for (CartGoods cartGoods : cartGoodsList) {
ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods goods; ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods goods;
if ((goods = goodsMap.get(cartGoods.getGoodsId())) == null) { if ((goods = goodsMap.get(cartGoods.getCartGoodsUid())) == null) {
continue; continue;
} }
ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount goodsDiscount = getGoodsDiscount(goods.getDiscounts(), discounts); ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount goodsDiscount = getGoodsDiscount(goods.getDiscounts(), discounts);
......
...@@ -81,12 +81,12 @@ public class TwoNDiscountServiceImpl implements IPromotionService { ...@@ -81,12 +81,12 @@ public class TwoNDiscountServiceImpl implements IPromotionService {
return null; return null;
} }
List<ApportionGoodsDetail> list = Lists.newArrayList(); List<ApportionGoodsDetail> list = Lists.newArrayList();
for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.ApportionGoods apportionGood : calculationDiscountResult.getApportionGoods()) { for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods apportionGood : calculationDiscountResult.getGoods()) {
if (!CollectionUtils.isEmpty(apportionGood.getApportionDetails())) { if (!CollectionUtils.isEmpty(apportionGood.getDiscounts())) {
for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.ApportionGoods.ApportionDetails apportionDetail : apportionGood.getApportionDetails()) { for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount apportionDetail : apportionGood.getDiscounts()) {
if (apportionDetail.getActivityType().equals(ActivityTypeEnum.TYPE_53.getCode())) { if (apportionDetail.getType().equals(ActivityTypeEnum.TYPE_53.getCode())) {
ApportionGoodsDetail apportionGoodsDetail = new ApportionGoodsDetail(); ApportionGoodsDetail apportionGoodsDetail = new ApportionGoodsDetail();
apportionGoodsDetail.setActivityApportionAmount(apportionDetail.getActivityApportionAmount()); apportionGoodsDetail.setActivityApportionAmount(apportionDetail.getDiscount());
apportionGoodsDetail.setActivityCode(apportionDetail.getActivityCode()); apportionGoodsDetail.setActivityCode(apportionDetail.getActivityCode());
apportionGoodsDetail.setActivityName(apportionDetail.getActivityName()); apportionGoodsDetail.setActivityName(apportionDetail.getActivityName());
apportionGoodsDetail.setGoodsId(apportionGood.getGoodsId()); apportionGoodsDetail.setGoodsId(apportionGood.getGoodsId());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment