Commit fa6eee9f hc

工单保存,出库bug修复

1 个父辈 2009c248
...@@ -32,7 +32,7 @@ public class GlobalExceptionHandler { ...@@ -32,7 +32,7 @@ public class GlobalExceptionHandler {
/** /**
* 处理所有不可知的异常 * 处理所有不可知的异常
*/ */
@ExceptionHandler(Throwable.class) // @ExceptionHandler(Throwable.class)
public ResponseEntity<ApiError> handleException(Throwable e){ public ResponseEntity<ApiError> handleException(Throwable e){
// 打印堆栈信息 // 打印堆栈信息
log.error(e.getMessage()); log.error(e.getMessage());
......
...@@ -281,16 +281,11 @@ public class LiteOrderCache { ...@@ -281,16 +281,11 @@ public class LiteOrderCache {
//更新工单状态 //更新工单状态
String orderNo = task.getSourceName(); String orderNo = task.getSourceName();
if (!Strings.isNullOrEmpty(orderNo)) { if (!Strings.isNullOrEmpty(orderNo)) {
LiteOrder order = liteOrderMap.get(orderNo); LiteOrder order = liteOrderManager.findByOrderNo(orderNo);
//LiteOrder order = null;
if (order == null) {
log.info("缓存中未找到[" + orderNo + "],从数据库中重新加载");
order = liteOrderManager.findByOrderNo(orderNo);
if(order != null){ if(order != null){
List<LiteOrderItem> items = liteOrderItemManager.findOrderItems(order.getId()); List<LiteOrderItem> items = liteOrderItemManager.findOrderItems(order.getOrderNo());
order.setOrderItems(items); order.setOrderItems(items);
} }
}
if (order != null) { if (order != null) {
//任务是取消的,需要将总待出库数量-1 //任务是取消的,需要将总待出库数量-1
if (task.isCancel()) { if (task.isCancel()) {
...@@ -876,7 +871,8 @@ public class LiteOrderCache { ...@@ -876,7 +871,8 @@ public class LiteOrderCache {
* @return * @return
*/ */
public synchronized Collection<LiteOrder> getAllLiteOrder() { public synchronized Collection<LiteOrder> getAllLiteOrder() {
return liteOrderMap.values(); return liteOrderManager.findAll();
// return liteOrderMap.values();
} }
...@@ -1361,10 +1357,7 @@ public class LiteOrderCache { ...@@ -1361,10 +1357,7 @@ public class LiteOrderCache {
public synchronized String checkOutUnclaimed(LiteOrder liteOrder) throws Exception { public synchronized String checkOutUnclaimed(LiteOrder liteOrder) throws Exception {
String orderNo = liteOrder.getOrderNo(); String orderNo = liteOrder.getOrderNo();
LiteOrder cacheOrder = liteOrderMap.get(orderNo); LiteOrder cacheOrder = liteOrderManager.findByOrderNo(orderNo);
if (cacheOrder == null) {
cacheOrder = liteOrderManager.findByOrderNo(orderNo);
}
if (cacheOrder == null) { if (cacheOrder == null) {
log.info("未找到工单:" + orderNo + "的信息"); log.info("未找到工单:" + orderNo + "的信息");
return "预约单不存在"; return "预约单不存在";
...@@ -1386,7 +1379,7 @@ public class LiteOrderCache { ...@@ -1386,7 +1379,7 @@ public class LiteOrderCache {
int boxCheckOutNum = 0; int boxCheckOutNum = 0;
for (LiteOrderItem item : liteOrder.getOrderItems()) { for (LiteOrderItem item : cacheOrder.getOrderItems()) {
String pn = item.getPn(); String pn = item.getPn();
int needNum = item.getNeedNum(); int needNum = item.getNeedNum();
int totalOutNum = item.getTotalOutNum(); int totalOutNum = item.getTotalOutNum();
...@@ -1404,11 +1397,12 @@ public class LiteOrderCache { ...@@ -1404,11 +1397,12 @@ public class LiteOrderCache {
CHECKOUT_TYPE checkOutType = dataCache.getCheckOutType(); CHECKOUT_TYPE checkOutType = dataCache.getCheckOutType();
//获取可用库位 //获取可用库位
StoragePos pos = storagePosManager.findPartNumberInStorages(storageIdList, pn, excludePosIds, checkOutType, ""); StoragePos pos = storagePosManager.findPartNumberInStorages(storageIdList, pn, new ArrayList<>(), checkOutType, "");
if (pos == null) { if (pos == null) {
log.info(item.getPn() + "未找到可用库位,跳过"); log.info(item.getPn() + "未找到可用库位,跳过");
break; break;
} }
cacheOrder.setTaskReelCount(item.getNeedNum());
//进行标记 //进行标记
boolean hasSmpPn = false; boolean hasSmpPn = false;
......
...@@ -8,7 +8,7 @@ import java.util.Collection; ...@@ -8,7 +8,7 @@ import java.util.Collection;
import java.util.List; import java.util.List;
public interface ILiteOrderItemManager extends IBaseManager<LiteOrderItem> { public interface ILiteOrderItemManager extends IBaseManager<LiteOrderItem> {
List<LiteOrderItem> findOrderItems(String orderId); List<LiteOrderItem> findOrderItems(String orderNo);
LiteOrderItem getOrderItemByBarcode(String barcode); LiteOrderItem getOrderItemByBarcode(String barcode);
......
...@@ -12,6 +12,7 @@ import java.util.Set; ...@@ -12,6 +12,7 @@ import java.util.Set;
public interface ILiteOrderManager extends IBaseManager<LiteOrder> { public interface ILiteOrderManager extends IBaseManager<LiteOrder> {
LiteOrder findByOrderNo(String orderNo); LiteOrder findByOrderNo(String orderNo);
LiteOrder findByIdWithItems(String orderId);
LiteOrder createWithItems(LiteOrder liteOrder) throws ValidateException; LiteOrder createWithItems(LiteOrder liteOrder) throws ValidateException;
List<LiteOrder> findUnEndOrdersList(); List<LiteOrder> findUnEndOrdersList();
......
package com.neotel.smfcore.core.order.service.manager.impl; package com.neotel.smfcore.core.order.service.manager.impl;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.neotel.smfcore.common.base.BasePo;
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.barcode.service.dao.IBarcodeDao; import com.neotel.smfcore.core.barcode.service.dao.IBarcodeDao;
...@@ -34,6 +35,12 @@ public class LiteOrderManagerImpl implements ILiteOrderManager { ...@@ -34,6 +35,12 @@ public class LiteOrderManagerImpl implements ILiteOrderManager {
private ILiteOrderItemManager liteOrderItemManager; private ILiteOrderItemManager liteOrderItemManager;
@Override @Override
@Deprecated
public LiteOrder findByIdWithItems(String orderId) {
return null;
}
@Override
public LiteOrder findByOrderNo(String orderNo) { public LiteOrder findByOrderNo(String orderNo) {
LiteOrder order= liteOrderDao.findOneByCondition(new String[] {"orderNo"}, new String[] {orderNo}); LiteOrder order= liteOrderDao.findOneByCondition(new String[] {"orderNo"}, new String[] {orderNo});
if(order!=null&& order.getOrderItems()==null){ if(order!=null&& order.getOrderItems()==null){
...@@ -52,7 +59,7 @@ public class LiteOrderManagerImpl implements ILiteOrderManager { ...@@ -52,7 +59,7 @@ public class LiteOrderManagerImpl implements ILiteOrderManager {
public LiteOrder get(String id) { public LiteOrder get(String id) {
LiteOrder order= liteOrderDao.findOneById(id); LiteOrder order= liteOrderDao.findOneById(id);
if(order!=null&& order.getOrderItems()==null){ if(order!=null&& order.getOrderItems()==null){
List<LiteOrderItem> items=liteOrderItemManager.findOrderItems(order.getId()); List<LiteOrderItem> items=liteOrderItemManager.findOrderItems(order.getOrderNo());
order.setOrderItems(items); order.setOrderItems(items);
} }
return order; return order;
...@@ -69,6 +76,8 @@ public class LiteOrderManagerImpl implements ILiteOrderManager { ...@@ -69,6 +76,8 @@ public class LiteOrderManagerImpl implements ILiteOrderManager {
} }
@Override @Override
public LiteOrder createWithItems(LiteOrder liteOrder) throws ValidateException { public LiteOrder createWithItems(LiteOrder liteOrder) throws ValidateException {
liteOrder.setId(liteOrderDao.findOne(Query.query(Criteria.where("orderNo")
.is(liteOrder.getOrderNo()))).getId());
liteOrder = save(liteOrder); liteOrder = save(liteOrder);
List<LiteOrderItem> items = Lists.newArrayList(); List<LiteOrderItem> items = Lists.newArrayList();
for (LiteOrderItem liteOrderItem : liteOrder.getOrderItems()) { for (LiteOrderItem liteOrderItem : liteOrder.getOrderItems()) {
......
...@@ -5,6 +5,7 @@ import com.neotel.smfcore.common.utils.StorageConstants; ...@@ -5,6 +5,7 @@ import com.neotel.smfcore.common.utils.StorageConstants;
import com.neotel.smfcore.common.utils.StringUtils; import com.neotel.smfcore.common.utils.StringUtils;
import com.neotel.smfcore.core.order.enums.LITEORDER_STATUS; import com.neotel.smfcore.core.order.enums.LITEORDER_STATUS;
import lombok.Data; import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.annotation.Transient; import org.springframework.data.annotation.Transient;
import org.springframework.data.mongodb.core.mapping.Document; import org.springframework.data.mongodb.core.mapping.Document;
......
...@@ -125,13 +125,10 @@ public class SpBoxCheckOutController { ...@@ -125,13 +125,10 @@ public class SpBoxCheckOutController {
} }
// 判断是不是工单出库 // 判断是不是工单出库
boolean isOrderCheckout = ObjectUtil.isNotEmpty(gekouBarcode.getOrderId()); boolean isOrderCheckout = StringUtils.isNotBlank(liteOrderCache.hasExecutingOrder());
LiteOrder liteOrder = null; LiteOrder liteOrder = null;
if (isOrderCheckout) { if (isOrderCheckout) {
liteOrder = liteOrderCache.getLiteOrder(liteOrder.getOrderNo());
if (liteOrder == null) {
liteOrder = liteOrderManager.get(gekouBarcode.getOrderId()); liteOrder = liteOrderManager.get(gekouBarcode.getOrderId());
}
if (liteOrder == null || liteOrder.isClosed()) { if (liteOrder == null || liteOrder.isClosed()) {
......
...@@ -50,20 +50,22 @@ public class SpReturnInventoryController { ...@@ -50,20 +50,22 @@ public class SpReturnInventoryController {
@AnonymousAccess @AnonymousAccess
public ResultBean getAllReturnNo(String no) { public ResultBean getAllReturnNo(String no) {
List<GetReturnInventoryResult> resultList = LuxsanSpApi.getReturnInventory(new GetReturnInventoryRequest(SpareNostatus.FUNCTION_DEPT, SpareNostatus.FORMAL_DEPT_ID)); List<GetReturnInventoryResult> resultList = LuxsanSpApi.getReturnInventory(new GetReturnInventoryRequest(SpareNostatus.FUNCTION_DEPT, SpareNostatus.FORMAL_DEPT_ID));
List<ReturnInventoryNo> returnInventoryNos = new ArrayList<>(); List<ReturnInventoryNo> result = returnNoManager.findAll();
for (GetReturnInventoryResult result : resultList) { List<String> returnInventoryNos = result.stream().map(ReturnInventoryNo::getOrderNo).collect(Collectors.toList());
ReturnInventoryNo returnInventoryNo = returnNoCache.getByOrderNo(result.getOrderNo()); for (GetReturnInventoryResult returnInventoryResult : resultList) {
if (returnInventoryNo == null) { if (returnInventoryNos.contains(returnInventoryResult.getOrderNo())) {
returnInventoryNo = returnNoCache.getOrderNoResultToReturnInventoryNo(result); continue;
}
ReturnInventoryNo returnInventoryNo = returnNoCache
.getOrderNoResultToReturnInventoryNo(returnInventoryResult);
result.add(returnInventoryNo);
returnNoCache.addToMap(returnInventoryNo); returnNoCache.addToMap(returnInventoryNo);
returnNoManager.save(returnInventoryNo); returnNoManager.save(returnInventoryNo);
} }
returnInventoryNos.add(returnInventoryNo);
}
if (StringUtils.isNotBlank(no)) { if (StringUtils.isNotBlank(no)) {
returnInventoryNos = returnInventoryNos.stream().filter(spareNo -> spareNo.getOrderNo().equals(no)).collect(Collectors.toList()); result = result.stream().filter(spareNo -> spareNo.getOrderNo().equals(no)).collect(Collectors.toList());
} }
return ResultBean.newOkResult(returnInventoryNos); return ResultBean.newOkResult(result);
} }
......
...@@ -6,8 +6,6 @@ import com.neotel.smfcore.common.utils.StringUtils; ...@@ -6,8 +6,6 @@ import com.neotel.smfcore.common.utils.StringUtils;
import com.neotel.smfcore.core.barcode.service.manager.IBarcodeManager; import com.neotel.smfcore.core.barcode.service.manager.IBarcodeManager;
import com.neotel.smfcore.core.storage.service.manager.IStoragePosManager; import com.neotel.smfcore.core.storage.service.manager.IStoragePosManager;
import com.neotel.smfcore.core.system.util.TaskService; import com.neotel.smfcore.core.system.util.TaskService;
import com.neotel.smfcore.custom.luxsan_sp.api.LuxsanSpApi;
import com.neotel.smfcore.custom.luxsan_sp.api.bean.request.GetSpareNoRequest;
import com.neotel.smfcore.custom.luxsan_sp.api.bean.result.GetSpareNoResult; import com.neotel.smfcore.custom.luxsan_sp.api.bean.result.GetSpareNoResult;
import com.neotel.smfcore.custom.luxsan_sp.bean.SpareNo; import com.neotel.smfcore.custom.luxsan_sp.bean.SpareNo;
import com.neotel.smfcore.custom.luxsan_sp.enums.SpareNostatus; import com.neotel.smfcore.custom.luxsan_sp.enums.SpareNostatus;
...@@ -62,23 +60,26 @@ public class SpSpareNoController { ...@@ -62,23 +60,26 @@ public class SpSpareNoController {
@RequestMapping("/getAllSpareNo") @RequestMapping("/getAllSpareNo")
@AnonymousAccess @AnonymousAccess
public ResultBean getAllSpareNo(String no) { public ResultBean getAllSpareNo(String no) {
List<GetSpareNoResult> resultList = LuxsanSpApi.getSpareNo(new GetSpareNoRequest(SpareNostatus.FORMAL_DEPT_ID, SpareNostatus.FUNCTION_DEPT)); // 从远程获取入库单(已经保存的不要)+还要展示本地的入库单
// List<GetSpareNoResult> resultList = LuxsanSpApi.getSpareNo(new GetSpareNoRequest(SpareNostatus.FORMAL_DEPT_ID, SpareNostatus.FUNCTION_DEPT));
List<GetSpareNoResult> resultList = new ArrayList<>();
List<SpareNo> allSpareFromDB = spareNoManager.findAll(); List<SpareNo> allSpareFromDB = spareNoManager.findAll();
List<SpareNo> resultSpare = new ArrayList<>(allSpareFromDB);
List<SpareNo> spareNoList = new ArrayList<>(); List<String> spareNoDBCollection = allSpareFromDB.stream().map(SpareNo::getSpareNo).collect(Collectors.toList());
for (GetSpareNoResult result : resultList) { for (GetSpareNoResult spareNoResult : resultList) {
SpareNo spareNo = spareNoCache.getBySpareNo(result.getSpareNo()); if (spareNoDBCollection.contains(spareNoResult.getSpareNo())) {
if (spareNo == null) { continue;
spareNo = spareNoCache.getSpareNoResultToSpareNo(result);
spareNoCache.addToMap(spareNo);
spareNoManager.save(spareNo);
} }
spareNoList.add(spareNo); SpareNo newSpareNo = spareNoCache.getSpareNoResultToSpareNo(spareNoResult);
resultSpare.add(newSpareNo);
spareNoCache.addToMap(newSpareNo);
spareNoManager.save(newSpareNo);
} }
if (StringUtils.isNotBlank(no)) { if (StringUtils.isNotBlank(no)) {
spareNoList = spareNoList.stream().filter(spareNo -> spareNo.getSpareNo().equals(no)).collect(Collectors.toList()); resultSpare = resultSpare.stream().filter(spareNo -> spareNo.getSpareNo().equals(no)).collect(Collectors.toList());
} }
return ResultBean.newOkResult(spareNoList); return ResultBean.newOkResult(resultSpare);
} }
......
package com.neotel.smfcore.custom.luxsan_sp.controller; package com.neotel.smfcore.custom.luxsan_sp.controller;
import com.neotel.smfcore.common.base.BasePo;
import com.neotel.smfcore.common.bean.ResultBean; import com.neotel.smfcore.common.bean.ResultBean;
import com.neotel.smfcore.common.utils.StringUtils; import com.neotel.smfcore.common.utils.StringUtils;
import com.neotel.smfcore.core.barcode.service.manager.IBarcodeManager; import com.neotel.smfcore.core.barcode.service.manager.IBarcodeManager;
import com.neotel.smfcore.core.barcode.utils.CodeResolve; import com.neotel.smfcore.core.barcode.utils.CodeResolve;
import com.neotel.smfcore.core.order.LiteOrderCache; import com.neotel.smfcore.core.order.LiteOrderCache;
import com.neotel.smfcore.core.order.enums.LITEORDER_STATUS; import com.neotel.smfcore.core.order.enums.LITEORDER_STATUS;
import com.neotel.smfcore.core.order.rest.bean.mapstruct.OrderMapperImpl;
import com.neotel.smfcore.core.order.service.manager.ILiteOrderManager; 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.LiteOrder;
import com.neotel.smfcore.core.order.service.po.LiteOrderItem; import com.neotel.smfcore.core.order.service.po.LiteOrderItem;
...@@ -27,7 +29,9 @@ import org.springframework.web.bind.annotation.RequestMapping; ...@@ -27,7 +29,9 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Comparator;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.function.Consumer; import java.util.function.Consumer;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -58,6 +62,8 @@ public class SpUnclaimedController { ...@@ -58,6 +62,8 @@ public class SpUnclaimedController {
@Autowired @Autowired
private LiteOrderCache liteOrderCache; private LiteOrderCache liteOrderCache;
@Autowired
private OrderMapperImpl orderMapperImpl;
@ApiOperation("获取正在执行出库单") @ApiOperation("获取正在执行出库单")
@RequestMapping("/getActiveOrderNo") @RequestMapping("/getActiveOrderNo")
...@@ -72,67 +78,68 @@ public class SpUnclaimedController { ...@@ -72,67 +78,68 @@ public class SpUnclaimedController {
@RequestMapping("/getAllUnclaimed") @RequestMapping("/getAllUnclaimed")
@AnonymousAccess @AnonymousAccess
public ResultBean getAllUnclaimed(String no) { public ResultBean getAllUnclaimed(String no) {
List<GetUnclaimedResult> resultList = LuxsanSpApi.getUnclaimedDetails(new GetUnclaimedRequest(SpareNostatus.FORMAL_DEPT_ID, SpareNostatus.FUNCTION_DEPT)); // List<GetUnclaimedResult> resultList = LuxsanSpApi.getUnclaimedDetails(new GetUnclaimedRequest(SpareNostatus.FORMAL_DEPT_ID, SpareNostatus.FUNCTION_DEPT));
List<GetUnclaimedResult> resultList = new ArrayList<>();
List<LiteOrder> allLiteOrderFromDB = liteOrderManager.findAll(); List<LiteOrder> allLiteOrderFromDB = liteOrderManager.findAll();
for (LiteOrder liteOrder : allLiteOrderFromDB) { List<LiteOrder> onlyOneAllLiteOrderFromDB = new ArrayList<>();
if (resultList.stream().map(GetUnclaimedResult::getOrderNo). Map<String, List<LiteOrder>> collect = allLiteOrderFromDB.stream().collect(Collectors.groupingBy(LiteOrder::getOrderNo));
collect(Collectors.toList()).contains(liteOrder.getOrderNo())) { for (List<LiteOrder> liteOrders : collect.values()) {
continue; List<LiteOrder> collect1 = liteOrders.stream()
} .sorted(Comparator.comparing(BasePo::getCreateDate))
GetUnclaimedResult item = new GetUnclaimedResult(); .limit(1)
item.setCreateTime(liteOrder.getCreateDate()); .collect(Collectors.toList());
item.setOrderNo(liteOrder.getOrderNo()); if (!collect1.isEmpty()) {
onlyOneAllLiteOrderFromDB.add(collect1.get(0));
}
}
List<String> allLiteOrderDBCollect = onlyOneAllLiteOrderFromDB.stream().map(LiteOrder::getOrderNo).collect(Collectors.toList());
List<Unclaimed> resultLiteOrder = new ArrayList<>();
for (LiteOrder liteOrder : onlyOneAllLiteOrderFromDB) {
Unclaimed unclaimed = new Unclaimed();
unclaimed.setCreateDate(liteOrder.getCreateDate());
unclaimed.setOrderNo(liteOrder.getOrderNo());
List<UnclaimedDetail> unclaimedDetails = new ArrayList<>(); List<UnclaimedDetail> unclaimedDetails = new ArrayList<>();
item.setSpareApplyDetail(unclaimedDetails);
for (LiteOrderItem orderItem : liteOrder.getOrderItems()) { for (LiteOrderItem orderItem : liteOrder.getOrderItems()) {
UnclaimedDetail unclaimedDetail = new UnclaimedDetail(); UnclaimedDetail unclaimedDetail = new UnclaimedDetail();
unclaimedDetail.setPartno(orderItem.getPn()); unclaimedDetail.setPartno(orderItem.getPn());
unclaimedDetail.setOrderNo(orderItem.getOrderNo());
unclaimedDetail.setApplyQty(orderItem.getNeedNum()); unclaimedDetail.setApplyQty(orderItem.getNeedNum());
unclaimedDetail.setAlrInQty(orderItem.getOutNum()); unclaimedDetail.setAlrInQty(orderItem.getTotalOutNum());
unclaimedDetails.add(unclaimedDetail);
}
resultList.add(item);
}
List<Unclaimed> unclaimedList = new ArrayList<>();
for (GetUnclaimedResult result : resultList) {
String orderNo = result.getOrderNo();
LiteOrder liteOrder = liteOrderCache.getLiteOrder(orderNo);
if (liteOrder == null) {
// 缓存没找到,从数据库找
liteOrder = liteOrderManager.findByOrderNo(orderNo);
}
if (liteOrder == null) {
// 数据库也没有 说明是新的出库单
liteOrder = new LiteOrder();
liteOrder.setOrderNo(orderNo);
List<LiteOrderItem> itemList = new ArrayList<>();
for (UnclaimedDetail detail : result.getSpareApplyDetail()) {
LiteOrderItem item = new LiteOrderItem();
item.setPn(detail.getPartno());
item.setNeedNum(detail.getApplyQty());
itemList.add(item);
}
liteOrder.setOrderItems(itemList);
liteOrder = liteOrderManager.createWithItems(liteOrder);
liteOrderCache.addOrderToMap(liteOrder);
}
Unclaimed unclaimed = orderNoCache.getOrderNoResultToUnclaimed(result);
if (liteOrder.isOutTails()){ if (liteOrder.isOutTails()){
unclaimed.setUnclaimedStatus(SpareNostatus.EXECUTING_STATUS); unclaimed.setUnclaimedStatus(SpareNostatus.EXECUTING_STATUS);
} else if (liteOrder.isClosed()){ } else if (liteOrder.isClosed()){
unclaimed.setUnclaimedStatus(SpareNostatus.CLOSE_STATUS); unclaimed.setUnclaimedStatus(SpareNostatus.CLOSE_STATUS);
} }
unclaimedList.add(unclaimed); unclaimedDetails.add(unclaimedDetail);
}
unclaimed.setDetailList(unclaimedDetails);
resultLiteOrder.add(unclaimed);
}
for (GetUnclaimedResult unclaimedResult : resultList) {
if (allLiteOrderDBCollect.contains(unclaimedResult.getOrderNo())) {
continue;
}
Unclaimed unclaimed = orderNoCache.getOrderNoResultToUnclaimed(unclaimedResult);
orderNoCache.addToMap(unclaimed);
LiteOrder liteOrder = new LiteOrder();
liteOrder.setOrderNo(unclaimed.getOrderNo());
liteOrder.setCreateDate(unclaimed.getCreateDate());
List<LiteOrderItem> liteOrderItems = new ArrayList<>();
for (UnclaimedDetail unclaimedDetail : unclaimed.getDetailList()) {
LiteOrderItem liteOrderItem = new LiteOrderItem();
liteOrderItem.setLine("s1");
liteOrderItem.setPn(unclaimedDetail.getPartno());
liteOrderItem.setNeedNum(unclaimedDetail.getApplyQty());
liteOrderItems.add(liteOrderItem);
}
liteOrder.setOrderItems(liteOrderItems);
liteOrderManager.createWithItems(liteOrder);
resultLiteOrder.add(unclaimed);
} }
if (StringUtils.isNotEmpty(no)) { if (StringUtils.isNotEmpty(no)) {
unclaimedList = unclaimedList.stream().filter(spareNo -> spareNo.getOrderNo().equals(no)).collect(Collectors.toList()); resultLiteOrder = resultLiteOrder.stream().filter(spareNo -> spareNo.getOrderNo().equals(no)).collect(Collectors.toList());
} }
return ResultBean.newOkResult(unclaimedList); return ResultBean.newOkResult(resultLiteOrder);
} }
...@@ -147,10 +154,7 @@ public class SpUnclaimedController { ...@@ -147,10 +154,7 @@ public class SpUnclaimedController {
} }
//判断工单有没有关闭 //判断工单有没有关闭
LiteOrder liteOrder = liteOrderCache.getLiteOrder(orderNoStr); LiteOrder liteOrder = liteOrderManager.findByOrderNo(orderNoStr);
if (liteOrder == null){
liteOrder = liteOrderManager.findByOrderNo(orderNoStr);
}
if (liteOrder == null){ if (liteOrder == null){
return ResultBean.newErrorResult(-1,"",orderNoStr+"预约单不存在"); return ResultBean.newErrorResult(-1,"",orderNoStr+"预约单不存在");
} }
......
package com.neotel.smfcore.custom.luxsan_sp.service.dao; package com.neotel.smfcore.custom.luxsan_sp.service.dao;
import com.neotel.smfcore.common.base.IBaseDao; import com.neotel.smfcore.common.base.IBaseDao;
import com.neotel.smfcore.custom.luxsan_sp.bean.SpareNo;
import java.util.List;
public interface SpareNoDao extends IBaseDao { public interface SpareNoDao extends IBaseDao {
} }
...@@ -5,10 +5,14 @@ import com.neotel.smfcore.custom.luxsan_sp.bean.SpareNo; ...@@ -5,10 +5,14 @@ import com.neotel.smfcore.custom.luxsan_sp.bean.SpareNo;
import com.neotel.smfcore.custom.luxsan_sp.service.dao.SpareNoDao; import com.neotel.smfcore.custom.luxsan_sp.service.dao.SpareNoDao;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List;
@Service @Service
public class SpareNoDaoImpl extends AbstractBaseDao implements SpareNoDao { public class SpareNoDaoImpl extends AbstractBaseDao implements SpareNoDao {
@Override @Override
public Class getEntityClass() { public Class getEntityClass() {
return SpareNo.class; return SpareNo.class;
} }
} }
...@@ -10,4 +10,6 @@ public interface ISpareNoManager extends IBaseManager<SpareNo> { ...@@ -10,4 +10,6 @@ public interface ISpareNoManager extends IBaseManager<SpareNo> {
SpareNo getBySpareNo(String spareNo); SpareNo getBySpareNo(String spareNo);
List<SpareNo> findAll(); List<SpareNo> findAll();
List<SpareNo> findAllExcludeSpares(List<String> spareNos);
} }
...@@ -131,8 +131,11 @@ public class SpBoxPutInManagerImpl implements ISpBoxPutInManager { ...@@ -131,8 +131,11 @@ public class SpBoxPutInManagerImpl implements ISpBoxPutInManager {
//判断此料箱有没有待执行的出入库任务 //判断此料箱有没有待执行的出入库任务
List<String> needInPn = new ArrayList<>(); List<String> needInPn = new ArrayList<>();
for (Barcode barcode : List<Barcode> subCodeList = boxBarcode.getSubCodeList();
boxBarcode.getSubCodeList()) { if (ObjectUtil.isEmpty(subCodeList)) {
}else {
for (Barcode barcode : subCodeList) {
String inNum = barcode.getExtraData("needInNum"); String inNum = barcode.getExtraData("needInNum");
if (ObjectUtil.isEmpty(inNum) || inNum.equals("0")) { if (ObjectUtil.isEmpty(inNum) || inNum.equals("0")) {
continue; continue;
...@@ -141,6 +144,7 @@ public class SpBoxPutInManagerImpl implements ISpBoxPutInManager { ...@@ -141,6 +144,7 @@ public class SpBoxPutInManagerImpl implements ISpBoxPutInManager {
isOrderPutIn = true; isOrderPutIn = true;
} }
} }
}
if (needInPn.size() > 0 && (!needInPn.contains(codeBarcode.getPartNumber()))) { if (needInPn.size() > 0 && (!needInPn.contains(codeBarcode.getPartNumber()))) {
throw new Exception("有未完成的入库单任务,请先入入库单物料"); throw new Exception("有未完成的入库单任务,请先入入库单物料");
} }
...@@ -320,4 +324,5 @@ public class SpBoxPutInManagerImpl implements ISpBoxPutInManager { ...@@ -320,4 +324,5 @@ public class SpBoxPutInManagerImpl implements ISpBoxPutInManager {
} }
} }
} }
...@@ -53,6 +53,12 @@ public class SpareNoManagerImpl implements ISpareNoManager { ...@@ -53,6 +53,12 @@ public class SpareNoManagerImpl implements ISpareNoManager {
} }
@Override @Override
public List<SpareNo> findAllExcludeSpares(List<String> spareNos) {
Query query = new Query(Criteria.where("spareNo").nin(spareNos));
return spareNoDao.findByQuery(query);
}
@Override
public SpareNo getBySpareNo(String spareNo) { public SpareNo getBySpareNo(String spareNo) {
return spareNoDao.findOne(new Query(Criteria.where("spareNo").is(spareNo))); return spareNoDao.findOne(new Query(Criteria.where("spareNo").is(spareNo)));
} }
......
...@@ -74,6 +74,7 @@ public class OrderNoCache { ...@@ -74,6 +74,7 @@ public class OrderNoCache {
Unclaimed unclaimed = new Unclaimed(); Unclaimed unclaimed = new Unclaimed();
BeanUtils.copyProperties(result, unclaimed); BeanUtils.copyProperties(result, unclaimed);
unclaimed.setOrderNo(result.getOrderNo());
unclaimed.setUnclaimedStatus(SpareNostatus.NEW_STATUS); unclaimed.setUnclaimedStatus(SpareNostatus.NEW_STATUS);
List<UnclaimedDetail> detailList = new ArrayList<>(); List<UnclaimedDetail> detailList = new ArrayList<>();
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!