|
|
@@ -13,6 +13,7 @@ import org.springframework.data.domain.Page;
|
|
|
import org.springframework.data.jpa.domain.Specification;
|
|
|
import org.springframework.security.core.userdetails.UsernameNotFoundException;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import com.uas.platform.b2b.dao.PurchaseOrderAllDao;
|
|
|
import com.uas.platform.b2b.dao.PurchaseOrderDao;
|
|
|
@@ -23,7 +24,9 @@ import com.uas.platform.b2b.model.PurchaseOrderAll;
|
|
|
import com.uas.platform.b2b.model.PurchaseOrderItem;
|
|
|
import com.uas.platform.b2b.model.PurchaseReply;
|
|
|
import com.uas.platform.b2b.service.PurchaseOrderService;
|
|
|
+import com.uas.platform.core.exception.IllegalOperatorException;
|
|
|
import com.uas.platform.core.model.PageInfo;
|
|
|
+import com.uas.platform.core.model.Status;
|
|
|
|
|
|
@Service
|
|
|
public class PurchaseOrderServiceImpl implements PurchaseOrderService {
|
|
|
@@ -36,7 +39,7 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
|
|
|
|
|
|
@Autowired
|
|
|
private PurchaseReplyDao purchaseReplyDao;
|
|
|
-
|
|
|
+
|
|
|
@Autowired
|
|
|
private PurchaseOrderItemDao purchaseOrderItemDao;
|
|
|
|
|
|
@@ -62,34 +65,41 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ @Transactional
|
|
|
public void reply(PurchaseReply reply) {
|
|
|
reply.setDate(new Date());
|
|
|
- purchaseReplyDao.save(reply);
|
|
|
+ // 作为B2B->ERP数据是否已传输的标志
|
|
|
+ reply.setStatus((short) Status.NOT_UPLOAD.value());
|
|
|
PurchaseOrderItem item = purchaseOrderItemDao.findOne(reply.getOrderItem().getId());
|
|
|
- item.setReply("待回复");
|
|
|
- item.setDeliveryreply(reply.getDelivery());
|
|
|
- PurchaseOrder order = purchaseOrderDao.findOne(item.getOrder().getId());
|
|
|
- order.setReply("待回复");
|
|
|
Double replyQty = item.getReplyQty();
|
|
|
replyQty = replyQty == null ? 0 : replyQty;
|
|
|
item.setReplyQty(replyQty + reply.getQty());
|
|
|
+ if (item.getReplyQty() > item.getQty())
|
|
|
+ throw new IllegalOperatorException("回复的数量合计超过了订单数量");
|
|
|
+ // 该行回复状态
|
|
|
+ item.setStatus((short) (Double.compare(item.getReplyQty(), item.getQty()) == 0 ? Status.REPLIED.value() : Status.NOT_REPLY.value()));
|
|
|
+ purchaseReplyDao.save(reply);
|
|
|
purchaseOrderItemDao.save(item);
|
|
|
- purchaseOrderDao.save(order);
|
|
|
+ // 订单主记录状态
|
|
|
+ List<PurchaseOrderItem> notReply = purchaseOrderItemDao.findByOrderIdAndStatus(item.getOrder().getId(), (short)Status.NOT_REPLY.value());
|
|
|
+// PurchaseOrder order = purchaseOrderDao.findOne(item.getOrder().getId());
|
|
|
+// order.setStatus((short) (notReply.size() > 0 ? Status.NOT_REPLY.value() : Status.REPLIED.value()));
|
|
|
+// purchaseOrderAllDao.save(order);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public PurchaseOrderAll findByCode(String code) {
|
|
|
List<PurchaseOrderAll> purchaseOrderAlls = purchaseOrderAllDao.findPurchaseOrderAllByCode(code);
|
|
|
- if(purchaseOrderAlls.size() == 0) {
|
|
|
+ if (purchaseOrderAlls.size() == 0) {
|
|
|
throw new UsernameNotFoundException("没有找到对应单据号的PO-" + code);
|
|
|
}
|
|
|
return purchaseOrderAlls.get(0);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
@Override
|
|
|
public PurchaseOrderAll findById(Long id) {
|
|
|
List<PurchaseOrderAll> purchaseOrderAlls = purchaseOrderAllDao.findPurchaseOrderAllById(id);
|
|
|
- if(purchaseOrderAlls.size() == 0) {
|
|
|
+ if (purchaseOrderAlls.size() == 0) {
|
|
|
throw new UsernameNotFoundException("没有找到对应单据Id的PO-" + id);
|
|
|
}
|
|
|
return purchaseOrderAlls.get(0);
|
|
|
@@ -97,20 +107,21 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
|
|
|
|
|
|
@Override
|
|
|
public void replyByBatch(String[] str) {
|
|
|
- PurchaseOrderItem orderItem ;
|
|
|
- for(String s : str) {
|
|
|
+ PurchaseOrderItem orderItem;
|
|
|
+ for (String s : str) {
|
|
|
System.out.println(s);
|
|
|
orderItem = purchaseOrderItemDao.findOne(Long.parseLong(s));
|
|
|
PurchaseReply purchaseReply = new PurchaseReply();
|
|
|
purchaseReply.setOrderItem(orderItem);
|
|
|
purchaseReply.setDelivery(orderItem.getDelivery());
|
|
|
purchaseReply.setRemark("批量回复");
|
|
|
- if(orderItem.getReplyQty() == null ) orderItem.setReplyQty((double) 0);
|
|
|
+ if (orderItem.getReplyQty() == null)
|
|
|
+ orderItem.setReplyQty((double) 0);
|
|
|
System.out.println("orderItem.getReplyQty():" + orderItem.getReplyQty());
|
|
|
purchaseReply.setQty(orderItem.getQty() - orderItem.getReplyQty());
|
|
|
reply(purchaseReply);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
|
|
|
}
|