|
|
@@ -0,0 +1,163 @@
|
|
|
+package com.uas.platform.b2b.service.impl;
|
|
|
+
|
|
|
+import com.uas.platform.b2b.dao.PurchaseNoticeDao;
|
|
|
+import com.uas.platform.b2b.dao.SaleSendDao;
|
|
|
+import com.uas.platform.b2b.dao.SaleSendItemDao;
|
|
|
+import com.uas.platform.b2b.model.PurchaseNotice;
|
|
|
+import com.uas.platform.b2b.model.PurchaseOrder;
|
|
|
+import com.uas.platform.b2b.model.SaleSend;
|
|
|
+import com.uas.platform.b2b.model.SaleSendItem;
|
|
|
+import com.uas.platform.b2b.service.SaleSendAgentService;
|
|
|
+import com.uas.platform.b2b.support.SystemSession;
|
|
|
+import com.uas.platform.b2b.support.TokenService;
|
|
|
+import com.uas.platform.core.exception.IllegalOperatorException;
|
|
|
+import com.uas.platform.core.model.Constant;
|
|
|
+import com.uas.platform.core.model.Status;
|
|
|
+import org.apache.commons.collections.CollectionUtils;
|
|
|
+import org.apache.log4j.Logger;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.ui.ModelMap;
|
|
|
+import org.springframework.util.StringUtils;
|
|
|
+
|
|
|
+import java.util.Date;
|
|
|
+import java.util.Iterator;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @Author: huj
|
|
|
+ * @Date: Created in 09:16 2018/12/11.
|
|
|
+ */
|
|
|
+@Service
|
|
|
+public class SaleSendAgentServiceImpl implements SaleSendAgentService {
|
|
|
+
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private PurchaseNoticeDao purchaseNoticeDao;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private SaleSendItemDao saleSendItemDao;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private TokenService tokenService;
|
|
|
+
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private SaleSendDao saleSendDao;
|
|
|
+
|
|
|
+ private final static Logger LOGGER = Logger.getLogger(SaleSendAgentServiceImpl.class);
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 代采订单发货
|
|
|
+ * @param purchaseNotice 发货提醒
|
|
|
+ * @param saleSend 发货单
|
|
|
+ * @return 送货单
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public SaleSend send(PurchaseNotice purchaseNotice, SaleSend saleSend) {
|
|
|
+ PurchaseNotice notice = purchaseNoticeDao.findOne(purchaseNotice.getSaleNoticeId());
|
|
|
+ SaleSend send = saleSend;
|
|
|
+ ModelMap map = tokenService.getToken("salenotice", notice.getEnUU());
|
|
|
+ String token = (String) map.get("token");
|
|
|
+ send.setUuid(token);
|
|
|
+ if (!StringUtils.isEmpty(notice)) {
|
|
|
+ PurchaseOrder order = notice.getOrderItem().getOrder();
|
|
|
+ send.setCurrency(order.getCurrency());
|
|
|
+ send.setBackStatus((short) Status.NOT_UPLOAD.value());
|
|
|
+ send.setSendStatus((short) Status.NOT_UPLOAD.value());
|
|
|
+ // 未收料
|
|
|
+ send.setVerifystatus(Constant.NO);
|
|
|
+ send.setCustUU(notice.getEnUU());
|
|
|
+ send.setCustUserUU(order.getUserUU());
|
|
|
+ send.setDate(new Date());
|
|
|
+ send.setEnUU(order.getVendUU());
|
|
|
+ send.setPayments(order.getPayments());
|
|
|
+ send.setRate(order.getRate());
|
|
|
+ send.setRecorder(saleSend.getRecorder());
|
|
|
+ send.setId(null);
|
|
|
+ short number = 0;
|
|
|
+ for (SaleSendItem item : send.getSendItems()) {
|
|
|
+ item.setId(null);
|
|
|
+ item.setNoticeId(notice.getId());
|
|
|
+ item.setNotice(notice);
|
|
|
+ item.setNumber(++number);
|
|
|
+ item.setOrderItem(notice.getOrderItem());
|
|
|
+ item.setOrderItemId(notice.getOrderItem().getId());
|
|
|
+ item.setPrice(notice.getOrderItem().getPrice());
|
|
|
+ item.setSend(send);
|
|
|
+ }
|
|
|
+ List<SaleSendItem> sendItems = saleSendItemDao.save(send.getSendItems());
|
|
|
+ notice.setEndQty(purchaseNotice.getEndQty());
|
|
|
+ notice.setStatus(purchaseNotice.getStatus());
|
|
|
+ purchaseNoticeDao.save(notice);
|
|
|
+ LOGGER.info(String.format("代采订单发货成功,客户送货提醒id:%s,送货提醒id:%s", notice.getId(), purchaseNotice.getId()));
|
|
|
+ return sendItems.get(0).getSend();
|
|
|
+ } else {
|
|
|
+ LOGGER.error(String.format("代采订单发货失败,客户送货提醒id:%s,送货提醒id:%s", purchaseNotice.getSaleNoticeId(),
|
|
|
+ purchaseNotice.getId()));
|
|
|
+ throw new IllegalOperatorException("请对有效的送货提醒发货!");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 代采订单发货批量
|
|
|
+ * @param saleSend 发货单
|
|
|
+ * @return 送货单
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public SaleSend sendBatch(SaleSend saleSend) {
|
|
|
+ SaleSend send = saleSend;
|
|
|
+ short number = 0;
|
|
|
+ boolean setSend = false;
|
|
|
+ Iterator<SaleSendItem> iterator = send.getSendItems().iterator();
|
|
|
+ while (iterator.hasNext()) {
|
|
|
+ SaleSendItem next = iterator.next();
|
|
|
+ if (StringUtils.isEmpty(next.getNotice().getSaleNoticeId())) {
|
|
|
+ iterator.remove();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for (SaleSendItem item : send.getSendItems()) {
|
|
|
+ if (!StringUtils.isEmpty(item.getNotice().getSaleNoticeId())) {
|
|
|
+ PurchaseNotice purchaseNotice = purchaseNoticeDao.findOne(item.getNoticeId());
|
|
|
+ PurchaseNotice notice = purchaseNoticeDao.findOne(item.getNotice().getSaleNoticeId());
|
|
|
+ item.setId(null);
|
|
|
+ item.setNoticeId(notice.getId());
|
|
|
+ item.setNotice(notice);
|
|
|
+ item.setNumber(++number);
|
|
|
+ item.setOrderItem(notice.getOrderItem());
|
|
|
+ item.setOrderItemId(notice.getOrderItem().getId());
|
|
|
+ item.setPrice(notice.getOrderItem().getPrice());
|
|
|
+ item.setSend(send);
|
|
|
+ if (!setSend) {
|
|
|
+ PurchaseOrder order = notice.getOrderItem().getOrder();
|
|
|
+ send.setCurrency(order.getCurrency());
|
|
|
+ send.setBackStatus((short) Status.NOT_UPLOAD.value());
|
|
|
+ send.setSendStatus((short) Status.NOT_UPLOAD.value());
|
|
|
+ // 未收料
|
|
|
+ send.setVerifystatus(Constant.NO);
|
|
|
+ send.setCustUU(notice.getEnUU());
|
|
|
+ send.setCustUserUU(order.getUserUU());
|
|
|
+ send.setDate(new Date());
|
|
|
+ send.setEnUU(order.getVendUU());
|
|
|
+ send.setPayments(order.getPayments());
|
|
|
+ send.setRate(order.getRate());
|
|
|
+ send.setRecorder(saleSend.getRecorder());
|
|
|
+ send.setId(null);
|
|
|
+ ModelMap map = tokenService.getToken("salenotice", notice.getEnUU());
|
|
|
+ String token = (String) map.get("token");
|
|
|
+ send.setUuid(token);
|
|
|
+ setSend = true;
|
|
|
+ }
|
|
|
+ notice.setEndQty(purchaseNotice.getEndQty());
|
|
|
+ notice.setStatus(purchaseNotice.getStatus());
|
|
|
+ purchaseNoticeDao.save(notice);
|
|
|
+ } else {
|
|
|
+ LOGGER.error(String.format("代采订单发货失败,客户送货提醒id:%s,送货提醒id:%s", "空",
|
|
|
+ item.getNoticeId()));
|
|
|
+ throw new IllegalOperatorException("请对有效的送货提醒发货!");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ List<SaleSendItem> sendItems = saleSendItemDao.save(send.getSendItems());
|
|
|
+ return sendItems.get(0).getSend();
|
|
|
+ }
|
|
|
+}
|