|
|
@@ -42,36 +42,47 @@ public class PurchaseReturnServiceImpl implements PurchaseReturnService {
|
|
|
|
|
|
@Autowired
|
|
|
private PurchaseReturnIndexDao purchaseReturnIndexDao;
|
|
|
-
|
|
|
+
|
|
|
@Autowired
|
|
|
private PurchaseOrderItemDao purchaseOrderItemDao;
|
|
|
|
|
|
@Override
|
|
|
public void save(List<PurchaseReturnItem> returnItems) {
|
|
|
returnItems = purchaseReturnItemDao.save(returnItems);
|
|
|
- ContextUtils.publishEvent(new PurchaseReturnSaveEvent(PurchaseReturnItem.distinct(returnItems)));
|
|
|
- //关联订单的验退数量
|
|
|
- for(PurchaseReturnItem returnItem : returnItems) {
|
|
|
- List<PurchaseOrderItem> orderItems = purchaseOrderItemDao.findByEnUUAndOrderCodeAndNumber(returnItem.getOrderItem().getOrder().getEnUU(),
|
|
|
- returnItem.getOrderItem().getOrder().getCode(), returnItem.getOrderItem().getNumber());
|
|
|
- if(orderItems.size() > 0) {
|
|
|
- PurchaseOrderItem orderItem = orderItems.get(0);
|
|
|
- orderItem.setReturnQty((orderItem.getReturnQty() == null ? 0 : orderItems.get(0).getReturnQty()) + returnItem.getQty());
|
|
|
- purchaseOrderItemDao.save(orderItem);
|
|
|
+ ContextUtils.publishEvent(new PurchaseReturnSaveEvent(
|
|
|
+ PurchaseReturnItem.distinct(returnItems)));
|
|
|
+ // 关联订单的验退数量
|
|
|
+ for (PurchaseReturnItem returnItem : returnItems) {
|
|
|
+ if (returnItem.getOrderItem() != null) {
|
|
|
+ List<PurchaseOrderItem> orderItems = purchaseOrderItemDao
|
|
|
+ .findByEnUUAndOrderCodeAndNumber(returnItem
|
|
|
+ .getOrderItem().getOrder().getEnUU(),
|
|
|
+ returnItem.getOrderItem().getOrder().getCode(),
|
|
|
+ returnItem.getOrderItem().getNumber());
|
|
|
+ if (orderItems.size() > 0) {
|
|
|
+ PurchaseOrderItem orderItem = orderItems.get(0);
|
|
|
+ orderItem
|
|
|
+ .setReturnQty((orderItem.getReturnQty() == null ? 0
|
|
|
+ : orderItems.get(0).getReturnQty())
|
|
|
+ + returnItem.getQty());
|
|
|
+ purchaseOrderItemDao.save(orderItem);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public List<PurchaseReturn> findNotUpload() {
|
|
|
- return purchaseReturnDao.findByVendUUAndSendStatus(SystemSession.getUser().getEnterprise()
|
|
|
- .getUu(), (short) Status.NOT_UPLOAD.value());
|
|
|
+ return purchaseReturnDao.findByVendUUAndSendStatus(SystemSession
|
|
|
+ .getUser().getEnterprise().getUu(),
|
|
|
+ (short) Status.NOT_UPLOAD.value());
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void onUploadSuccess(String[] idArray) {
|
|
|
for (String id : idArray) {
|
|
|
- PurchaseReturn return1 = purchaseReturnDao.findOne(Long.parseLong(id));
|
|
|
+ PurchaseReturn return1 = purchaseReturnDao.findOne(Long
|
|
|
+ .parseLong(id));
|
|
|
if (return1 != null) {
|
|
|
return1.setSendStatus((short) Status.DOWNLOADED.value());
|
|
|
purchaseReturnDao.save(return1);
|
|
|
@@ -80,17 +91,23 @@ public class PurchaseReturnServiceImpl implements PurchaseReturnService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public Page<PurchaseReturn> findAllByPageInfo(final PageInfo pageInfo, final String keyword, final SearchFilter filter) {
|
|
|
+ public Page<PurchaseReturn> findAllByPageInfo(final PageInfo pageInfo,
|
|
|
+ final String keyword, final SearchFilter filter) {
|
|
|
return purchaseReturnDao.findAll(new Specification<PurchaseReturn>() {
|
|
|
|
|
|
- public Predicate toPredicate(Root<PurchaseReturn> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
|
|
|
+ public Predicate toPredicate(Root<PurchaseReturn> root,
|
|
|
+ CriteriaQuery<?> query, CriteriaBuilder builder) {
|
|
|
if (filter != null) {
|
|
|
if (!CollectionUtils.isEmpty(filter.getDistribute()))
|
|
|
- pageInfo.expression(PredicateUtils.in("enUU", filter.getDistribute(), false));
|
|
|
+ pageInfo.expression(PredicateUtils.in("enUU",
|
|
|
+ filter.getDistribute(), false));
|
|
|
}
|
|
|
if (StringUtils.hasText(keyword))
|
|
|
- pageInfo.expression(PredicateUtils.in("id", purchaseReturnIndexDao.findByKeyword(SystemSession
|
|
|
- .getUser().getEnterprise().getUu(), keyword), false));
|
|
|
+ pageInfo.expression(PredicateUtils.in("id",
|
|
|
+ purchaseReturnIndexDao
|
|
|
+ .findByKeyword(SystemSession.getUser()
|
|
|
+ .getEnterprise().getUu(), keyword),
|
|
|
+ false));
|
|
|
query.where(pageInfo.getPredicates(root, query, builder));
|
|
|
return null;
|
|
|
}
|
|
|
@@ -104,28 +121,36 @@ public class PurchaseReturnServiceImpl implements PurchaseReturnService {
|
|
|
|
|
|
@Override
|
|
|
public void nonPosting(List<PurchaseReturn> purchaseReturns) {
|
|
|
- if(!CollectionUtils.isEmpty(purchaseReturns)) {
|
|
|
- for(PurchaseReturn purchaseReturn : purchaseReturns) {
|
|
|
- if(purchaseReturn.getSendStatus() == Status.DOWNLOADED.value()) {
|
|
|
- //已传输到供应商ERP,修改单据反过账状态
|
|
|
+ if (!CollectionUtils.isEmpty(purchaseReturns)) {
|
|
|
+ for (PurchaseReturn purchaseReturn : purchaseReturns) {
|
|
|
+ if (purchaseReturn.getSendStatus() == Status.DOWNLOADED.value()) {
|
|
|
+ // 已传输到供应商ERP,修改单据反过账状态
|
|
|
purchaseReturn.setNonPosting(Constant.YES);
|
|
|
purchaseReturnDao.save(purchaseReturn);
|
|
|
} else {
|
|
|
- //未传输到供应商ERP,直接删除平台上的单据
|
|
|
+ // 未传输到供应商ERP,直接删除平台上的单据
|
|
|
purchaseReturnDao.delete(purchaseReturn);
|
|
|
}
|
|
|
- //关联订单的验退数量
|
|
|
- if(! CollectionUtils.isEmpty(purchaseReturn.getReturnItems())) {
|
|
|
- for(PurchaseReturnItem returnItem : purchaseReturn.getReturnItems()) {
|
|
|
- List<PurchaseOrderItem> orderItems = purchaseOrderItemDao.findByEnUUAndOrderCodeAndNumber(returnItem.getOrderItem().getOrder().getEnUU(),
|
|
|
- returnItem.getOrderItem().getOrder().getCode(), returnItem.getOrderItem().getNumber());
|
|
|
- if(orderItems.size() > 0) {
|
|
|
+ // 关联订单的验退数量
|
|
|
+ if (!CollectionUtils.isEmpty(purchaseReturn.getReturnItems())) {
|
|
|
+ for (PurchaseReturnItem returnItem : purchaseReturn
|
|
|
+ .getReturnItems()) {
|
|
|
+ List<PurchaseOrderItem> orderItems = purchaseOrderItemDao
|
|
|
+ .findByEnUUAndOrderCodeAndNumber(returnItem
|
|
|
+ .getOrderItem().getOrder().getEnUU(),
|
|
|
+ returnItem.getOrderItem().getOrder()
|
|
|
+ .getCode(), returnItem
|
|
|
+ .getOrderItem().getNumber());
|
|
|
+ if (orderItems.size() > 0) {
|
|
|
PurchaseOrderItem orderItem = orderItems.get(0);
|
|
|
- //已接受数未空或小于本次验收单数目,设为0
|
|
|
- if(orderItem.getReturnQty() == null || orderItem.getReturnQty() < returnItem.getQty()) {
|
|
|
+ // 已接受数未空或小于本次验收单数目,设为0
|
|
|
+ if (orderItem.getReturnQty() == null
|
|
|
+ || orderItem.getReturnQty() < returnItem
|
|
|
+ .getQty()) {
|
|
|
orderItem.setReturnQty((double) 0);
|
|
|
- } else {//否则减去本次的验收数量
|
|
|
- orderItem.setReturnQty(orderItem.getReturnQty() - returnItem.getQty());
|
|
|
+ } else {// 否则减去本次的验收数量
|
|
|
+ orderItem.setReturnQty(orderItem.getReturnQty()
|
|
|
+ - returnItem.getQty());
|
|
|
}
|
|
|
purchaseOrderItemDao.save(orderItem);
|
|
|
}
|
|
|
@@ -137,13 +162,15 @@ public class PurchaseReturnServiceImpl implements PurchaseReturnService {
|
|
|
|
|
|
@Override
|
|
|
public List<PurchaseReturn> getNonPosting() {
|
|
|
- return purchaseReturnDao.findByVendUUAndNonPosting(SystemSession.getUser().getEnterprise().getUu(), Constant.YES);
|
|
|
+ return purchaseReturnDao.findByVendUUAndNonPosting(SystemSession
|
|
|
+ .getUser().getEnterprise().getUu(), Constant.YES);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void onNonPostingUploadSuccess(String[] idArray) {
|
|
|
- for(String id : idArray) {
|
|
|
- PurchaseReturn purchaseReturn = purchaseReturnDao.findOne(Long.parseLong(id));
|
|
|
+ for (String id : idArray) {
|
|
|
+ PurchaseReturn purchaseReturn = purchaseReturnDao.findOne(Long
|
|
|
+ .parseLong(id));
|
|
|
if (purchaseReturn != null) {
|
|
|
purchaseReturnDao.delete(purchaseReturn);
|
|
|
}
|
|
|
@@ -152,7 +179,8 @@ public class PurchaseReturnServiceImpl implements PurchaseReturnService {
|
|
|
|
|
|
@Override
|
|
|
public Long getAllCount() {
|
|
|
- return purchaseReturnDao.countByVendUU(SystemSession.getUser().getEnterprise().getUu());
|
|
|
+ return purchaseReturnDao.countByVendUU(SystemSession.getUser()
|
|
|
+ .getEnterprise().getUu());
|
|
|
}
|
|
|
|
|
|
}
|