|
|
@@ -3,6 +3,9 @@ package com.uas.platform.b2c.prod.commodity.service.impl;
|
|
|
import com.uas.platform.b2c.core.support.SystemSession;
|
|
|
import com.uas.platform.b2c.core.utils.NumberUtil;
|
|
|
import com.uas.platform.b2c.core.utils.StringUtilB2C;
|
|
|
+import com.uas.platform.b2c.logistics.model.InvoiceFPurchase;
|
|
|
+import com.uas.platform.b2c.logistics.model.InvoiceFPurchaseDetail;
|
|
|
+import com.uas.platform.b2c.logistics.service.InvoiceFPurchaseService;
|
|
|
import com.uas.platform.b2c.prod.commodity.constant.DoubleConstant;
|
|
|
import com.uas.platform.b2c.prod.commodity.dao.CommodityInOutboundDao;
|
|
|
import com.uas.platform.b2c.prod.commodity.model.CommodityInOutbound;
|
|
|
@@ -53,6 +56,9 @@ public class CommodityInOutboundServiceImpl implements CommodityInOutboundServic
|
|
|
|
|
|
private final InOutboundDetailService inOutboundDetailService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private InvoiceFPurchaseService invoiceFPurchaseService;
|
|
|
+
|
|
|
@Autowired
|
|
|
public CommodityInOutboundServiceImpl(CommodityInOutboundDao commodityInOutboundDao, CreateNumberService createNumberService, ProductService productService, InOutboundDetailService inOutboundDetailService) {
|
|
|
this.commodityInOutboundDao = commodityInOutboundDao;
|
|
|
@@ -135,6 +141,7 @@ public class CommodityInOutboundServiceImpl implements CommodityInOutboundServic
|
|
|
inOutbound.setAffiliatedEnterprise(order.getBuyername());
|
|
|
}
|
|
|
inOutbound.setAssociateOrderid(order.getOrderid());
|
|
|
+ inOutbound.setAssociateOrderId(order.getId());
|
|
|
CommodityInOutbound commodityInOutbound = save(inOutbound);
|
|
|
return commodityInOutbound;
|
|
|
}
|
|
|
@@ -268,4 +275,65 @@ public class CommodityInOutboundServiceImpl implements CommodityInOutboundServic
|
|
|
}
|
|
|
}, info);
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据出入库id,获取出入库信息
|
|
|
+ *
|
|
|
+ * @param id id信息
|
|
|
+ * @return ResultMap
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public ResultMap findCommodityInOutboundById(Long id) {
|
|
|
+ if (id == null) {
|
|
|
+ return new ResultMap(CodeType.NO_INFO, "请传入主键信息");
|
|
|
+ } else {
|
|
|
+ CommodityInOutbound commodityInOutbound = commodityInOutboundDao.findOne(id);
|
|
|
+ if (InOutBoundType.SELL_OUTBOUND.equals(commodityInOutbound.getOpertatorType())) {
|
|
|
+ if (commodityInOutbound.getAssociateInvoiceId() != null) {
|
|
|
+ InvoiceFPurchase invoiceFPurchase = invoiceFPurchaseService.findById(commodityInOutbound.getAssociateInvoiceId());
|
|
|
+ if (invoiceFPurchase != null) {
|
|
|
+ commodityInOutbound.setLogistics(invoiceFPurchase.getLogistics());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return ResultMap.success(commodityInOutbound);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据发货单,保存出货信息
|
|
|
+ *
|
|
|
+ * @param invoiceFPurchase 发货单
|
|
|
+ * @param orderid 出货的采购单号
|
|
|
+ * @param orderId 出货的采购id
|
|
|
+ * @param purchaseid 出货的销售单单号
|
|
|
+ * @param purchaseId 出货的销售单id
|
|
|
+ * @return CommodityInOutbound
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public CommodityInOutbound sellOutBound(InvoiceFPurchase invoiceFPurchase, String orderid, Long orderId, String purchaseid, Long purchaseId) {
|
|
|
+ if (invoiceFPurchase == null) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ InOutboundDetail inOutboundDetail = null;
|
|
|
+ Set<InOutboundDetail> inOutSet = new HashSet<>();
|
|
|
+ Set<InvoiceFPurchaseDetail> fPurchaseDetails = invoiceFPurchase.getInvoiceFPurchaseDetails();
|
|
|
+ for (InvoiceFPurchaseDetail fPurchaseDetail : fPurchaseDetails) {
|
|
|
+ inOutboundDetail = new InOutboundDetail(fPurchaseDetail);
|
|
|
+ inOutSet.add(inOutboundDetail);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (CollectionUtils.isNotEmpty(inOutSet)){
|
|
|
+ CommodityInOutbound commodityInOutbound = produceCommodityInOutbound(inOutSet, InOutBoundType.SELL_OUTBOUND);
|
|
|
+ commodityInOutbound.setAssociateOrderid(orderid);
|
|
|
+ commodityInOutbound.setAssociateOrderId(orderId);
|
|
|
+ commodityInOutbound.setAssociatePurchaseid(purchaseid);
|
|
|
+ commodityInOutbound.setAssociatePurchaseId(purchaseId);
|
|
|
+ commodityInOutbound.setAssociateInvoiceId(invoiceFPurchase.getId());
|
|
|
+ commodityInOutbound.setAssociateInvoiceid(invoiceFPurchase.getInvoiceid());
|
|
|
+ return commodityInOutbound;
|
|
|
+ } else {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|