Commit a4394658 sunke

工单出库时,调用接口后使用新的items, 删除旧的items

1 个父辈 60588576
package com.neotel.smfcore.common.base;
import com.mongodb.client.result.DeleteResult;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -175,13 +176,10 @@ public abstract class AbstractBaseDao implements IBaseDao {
// return getMongoTemplate().getCollection(collectionName).distinct(key, query);
// }
public<T extends BasePo> void removeByQuery(Query query) {
List<T> list = getMongoTemplate().find(query, getEntityClass());
if (list != null && list.size() > 0) {
for (T t : list) {
getMongoTemplate().remove(t);
}
}
@Override
public long removeByQuery(Query query) {
DeleteResult deleteResult = getMongoTemplate().remove(query, getEntityClass());
return deleteResult.getDeletedCount();
}
@Override
......
......@@ -47,7 +47,7 @@ public interface IBaseDao {
// List<String> distinct(String key, DBObject query);
public<T extends BasePo> void removeByQuery(Query query);
public long removeByQuery(Query query);
public long count();
......
......@@ -2,6 +2,7 @@ package com.neotel.smfcore.core.order;
import cn.hutool.core.util.ObjectUtil;
import com.google.common.base.Strings;
import com.google.common.collect.Lists;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.common.utils.Constants;
import com.neotel.smfcore.core.barcode.service.manager.IComponentManager;
......@@ -298,12 +299,18 @@ public class LiteOrderCache implements ITaskListener {
}
}
if (newItems != null) {
for (HikOrderInfo apiItems : newItems
) {
//删除旧的Items
long deleteCount = liteOrderItemManager.deleteByOrderNo(liteOrder.getOrderNo());
log.info("删除工单["+liteOrder.getOrderNo()+"]的旧item,原有"+liteOrder.getOrderItems().size()+"条, 删除"+ deleteCount+"条,新增 " + newItems.size()+"条");
List<LiteOrderItem> newOrderItems = Lists.newArrayList();
for (HikOrderInfo apiItems : newItems) {
LiteOrderItem newItem = apiItems.crateOrderItem(liteOrder.getOrderNo());
liteOrder = updateOrderItem(liteOrder, newItem);
// liteOrder = updateOrderItem(liteOrder, newItem);
newOrderItems.add(newItem);
}
liteOrderManager.save(liteOrder);
liteOrder.setOrderItems(newOrderItems);
liteOrderManager.createWithItems(liteOrder);
addOrderToMap(liteOrder);
}
......
......@@ -7,4 +7,6 @@ import java.util.List;
public interface ILiteOrderItemManager extends IBaseManager<LiteOrderItem> {
List<LiteOrderItem> findOrderItems(String orderNo);
long deleteByOrderNo(String orderNo);
}
......@@ -2,14 +2,12 @@ package com.neotel.smfcore.core.order.service.manager.impl;
import com.neotel.smfcore.common.bean.PageData;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.core.order.service.dao.ILiteOrderDao;
import com.neotel.smfcore.core.order.service.dao.ILiteOrderItemDao;
import com.neotel.smfcore.core.order.service.manager.ILiteOrderItemManager;
import com.neotel.smfcore.core.order.service.manager.ILiteOrderManager;
import com.neotel.smfcore.core.order.service.po.LiteOrder;
import com.neotel.smfcore.core.order.service.po.LiteOrderItem;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
......@@ -42,6 +40,12 @@ public class LiteOrderItemManagerImpl implements ILiteOrderItemManager {
}
@Override
public long deleteByOrderNo(String orderNo){
Criteria c = Criteria.where("orderNo").is(orderNo);
return liteOrderItemDao.removeByQuery(new Query(c));
}
@Override
public PageData<LiteOrderItem> findByPage(Query query, Pageable pageable) {
int totalCount = liteOrderItemDao.countByQuery(query);
List<LiteOrderItem> list = liteOrderItemDao.findByQuery(query, pageable);
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!