Commit a4394658 sunke

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

1 个父辈 60588576
package com.neotel.smfcore.common.base; package com.neotel.smfcore.common.base;
import com.mongodb.client.result.DeleteResult;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -175,13 +176,10 @@ public abstract class AbstractBaseDao implements IBaseDao { ...@@ -175,13 +176,10 @@ public abstract class AbstractBaseDao implements IBaseDao {
// return getMongoTemplate().getCollection(collectionName).distinct(key, query); // return getMongoTemplate().getCollection(collectionName).distinct(key, query);
// } // }
public<T extends BasePo> void removeByQuery(Query query) { @Override
List<T> list = getMongoTemplate().find(query, getEntityClass()); public long removeByQuery(Query query) {
if (list != null && list.size() > 0) { DeleteResult deleteResult = getMongoTemplate().remove(query, getEntityClass());
for (T t : list) { return deleteResult.getDeletedCount();
getMongoTemplate().remove(t);
}
}
} }
@Override @Override
......
...@@ -47,7 +47,7 @@ public interface IBaseDao { ...@@ -47,7 +47,7 @@ public interface IBaseDao {
// List<String> distinct(String key, DBObject query); // List<String> distinct(String key, DBObject query);
public<T extends BasePo> void removeByQuery(Query query); public long removeByQuery(Query query);
public long count(); public long count();
......
...@@ -2,6 +2,7 @@ package com.neotel.smfcore.core.order; ...@@ -2,6 +2,7 @@ package com.neotel.smfcore.core.order;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.google.common.base.Strings; import com.google.common.base.Strings;
import com.google.common.collect.Lists;
import com.neotel.smfcore.common.exception.ValidateException; import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.common.utils.Constants; import com.neotel.smfcore.common.utils.Constants;
import com.neotel.smfcore.core.barcode.service.manager.IComponentManager; import com.neotel.smfcore.core.barcode.service.manager.IComponentManager;
...@@ -298,12 +299,18 @@ public class LiteOrderCache implements ITaskListener { ...@@ -298,12 +299,18 @@ public class LiteOrderCache implements ITaskListener {
} }
} }
if (newItems != null) { 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()); 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); addOrderToMap(liteOrder);
} }
......
...@@ -7,4 +7,6 @@ import java.util.List; ...@@ -7,4 +7,6 @@ import java.util.List;
public interface ILiteOrderItemManager extends IBaseManager<LiteOrderItem> { public interface ILiteOrderItemManager extends IBaseManager<LiteOrderItem> {
List<LiteOrderItem> findOrderItems(String orderNo); List<LiteOrderItem> findOrderItems(String orderNo);
long deleteByOrderNo(String orderNo);
} }
...@@ -2,14 +2,12 @@ package com.neotel.smfcore.core.order.service.manager.impl; ...@@ -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.bean.PageData;
import com.neotel.smfcore.common.exception.ValidateException; 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.dao.ILiteOrderItemDao;
import com.neotel.smfcore.core.order.service.manager.ILiteOrderItemManager; 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 com.neotel.smfcore.core.order.service.po.LiteOrderItem;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable; 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.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -42,6 +40,12 @@ public class LiteOrderItemManagerImpl implements ILiteOrderItemManager { ...@@ -42,6 +40,12 @@ public class LiteOrderItemManagerImpl implements ILiteOrderItemManager {
} }
@Override @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) { public PageData<LiteOrderItem> findByPage(Query query, Pageable pageable) {
int totalCount = liteOrderItemDao.countByQuery(query); int totalCount = liteOrderItemDao.countByQuery(query);
List<LiteOrderItem> list = liteOrderItemDao.findByQuery(query, pageable); List<LiteOrderItem> list = liteOrderItemDao.findByQuery(query, pageable);
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!