Commit 2009c248 hc

fix:出库单保存

1 个父辈 dae3e29e
......@@ -21,4 +21,6 @@ public interface ILiteOrderManager extends IBaseManager<LiteOrder> {
List<LiteOrder> findByQueryAndPartNumber(Query q, String partNumber);
LiteOrder batchCheckOut(Set<TacticsOutDto> outDtoSet);
List<LiteOrder> findAll();
}
......@@ -23,8 +23,8 @@ public class LiteOrderItemManagerImpl implements ILiteOrderItemManager {
private ILiteOrderItemDao liteOrderItemDao;
@Override
public List<LiteOrderItem> findOrderItems(String orderId) {
return liteOrderItemDao.findListByCondition(new String[]{"orderId"}, new String[]{orderId});
public List<LiteOrderItem> findOrderItems(String orderNo) {
return liteOrderItemDao.findListByCondition(new String[]{"orderNo"}, new String[]{orderNo});
}
@Override
......
......@@ -22,10 +22,7 @@ import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Set;
import java.util.*;
@Service
public class LiteOrderManagerImpl implements ILiteOrderManager {
......@@ -159,6 +156,16 @@ public class LiteOrderManagerImpl implements ILiteOrderManager {
}
@Override
public List<LiteOrder> findAll() {
List<LiteOrder> all = liteOrderDao.findAll();
for (LiteOrder liteOrder : all) {
List<LiteOrderItem> orderItems = liteOrderItemManager.findOrderItems(liteOrder.getOrderNo());
liteOrder.setOrderItems(orderItems);
}
return all;
}
@Override
public PageData<LiteOrder> findByPage(Query query, Pageable pageable) {
int totalCount = liteOrderDao.countByQuery(query);
List<LiteOrder> list = liteOrderDao.findByQuery(query, pageable);
......
......@@ -145,12 +145,13 @@ public class LuxsanSpApi extends DefaultSmfApiListener {
List<GetSpareNoResult> resultList = JSONObject.parseArray(lizhenApiResult.getData(), GetSpareNoResult.class);
if (resultList != null && !resultList.isEmpty()) {
return resultList;
}else {
return new ArrayList<>();
}
} catch (Exception e) {
log.info("getSpareNo请求失败:" + e.getMessage());
throw new ValidateException("smfcore.api.error", "接口[{0}]请求失败[{1}]", new String[]{url, e.getMessage()});
}
throw new ValidateException("smfcore.api.error", "接口请求失败[{0}]", new String[]{"未找到入库单信息"});
}
......
......@@ -19,10 +19,13 @@ public class SpareNo extends BaseNo {
//0表示待入库
private String status;
//仓库描述
private String whDesc;
// 入库单需要确定是否已经调用入库接口
private boolean isConfirmed;
}
......@@ -63,6 +63,8 @@ public class SpSpareNoController {
@AnonymousAccess
public ResultBean getAllSpareNo(String no) {
List<GetSpareNoResult> resultList = LuxsanSpApi.getSpareNo(new GetSpareNoRequest(SpareNostatus.FORMAL_DEPT_ID, SpareNostatus.FUNCTION_DEPT));
List<SpareNo> allSpareFromDB = spareNoManager.findAll();
List<SpareNo> spareNoList = new ArrayList<>();
for (GetSpareNoResult result : resultList) {
SpareNo spareNo = spareNoCache.getBySpareNo(result.getSpareNo());
......
......@@ -28,6 +28,7 @@ import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
import java.util.function.Consumer;
import java.util.stream.Collectors;
@Slf4j
......@@ -72,6 +73,26 @@ public class SpUnclaimedController {
@AnonymousAccess
public ResultBean getAllUnclaimed(String no) {
List<GetUnclaimedResult> resultList = LuxsanSpApi.getUnclaimedDetails(new GetUnclaimedRequest(SpareNostatus.FORMAL_DEPT_ID, SpareNostatus.FUNCTION_DEPT));
List<LiteOrder> allLiteOrderFromDB = liteOrderManager.findAll();
for (LiteOrder liteOrder : allLiteOrderFromDB) {
if (resultList.stream().map(GetUnclaimedResult::getOrderNo).
collect(Collectors.toList()).contains(liteOrder.getOrderNo())) {
continue;
}
GetUnclaimedResult item = new GetUnclaimedResult();
item.setCreateTime(liteOrder.getCreateDate());
item.setOrderNo(liteOrder.getOrderNo());
List<UnclaimedDetail> unclaimedDetails = new ArrayList<>();
item.setSpareApplyDetail(unclaimedDetails);
for (LiteOrderItem orderItem : liteOrder.getOrderItems()) {
UnclaimedDetail unclaimedDetail = new UnclaimedDetail();
unclaimedDetail.setPartno(orderItem.getPn());
unclaimedDetail.setApplyQty(orderItem.getNeedNum());
unclaimedDetail.setAlrInQty(orderItem.getOutNum());
unclaimedDetails.add(unclaimedDetail);
}
resultList.add(item);
}
List<Unclaimed> unclaimedList = new ArrayList<>();
......@@ -79,9 +100,11 @@ public class SpUnclaimedController {
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);
......
......@@ -2,7 +2,7 @@ package com.neotel.smfcore.custom.luxsan_sp.service.manager;
import java.util.Map;
public interface SpBoxPutInManager {
public interface ISpBoxPutInManager {
Map<String,String> reelToBox(Map<String, String> paramMap) throws Exception;
}
package com.neotel.smfcore.custom.luxsan_sp.service.manager.impl;
import cn.hutool.core.util.ObjectUtil;
import com.neotel.smfcore.common.bean.ResultBean;
import com.neotel.smfcore.common.utils.DeepCopyUtil;
import com.neotel.smfcore.common.utils.SecurityUtils;
import com.neotel.smfcore.core.barcode.enums.BARCODE_STATUS;
......@@ -20,7 +19,7 @@ import com.neotel.smfcore.custom.luxsan_sp.api.bean.result.SpareInHourseDetail;
import com.neotel.smfcore.custom.luxsan_sp.bean.*;
import com.neotel.smfcore.custom.luxsan_sp.service.manager.IReturnNoManager;
import com.neotel.smfcore.custom.luxsan_sp.service.manager.ISpareNoManager;
import com.neotel.smfcore.custom.luxsan_sp.service.manager.SpBoxPutInManager;
import com.neotel.smfcore.custom.luxsan_sp.service.manager.ISpBoxPutInManager;
import com.neotel.smfcore.custom.luxsan_sp.util.CodeUtil;
import com.neotel.smfcore.custom.luxsan_sp.util.ReturnNoCache;
import com.neotel.smfcore.custom.luxsan_sp.util.SpBoxUtil;
......@@ -34,7 +33,7 @@ import java.util.*;
@Slf4j
@Service
public class SpBoxPutInManagerImpl implements SpBoxPutInManager {
public class SpBoxPutInManagerImpl implements ISpBoxPutInManager {
@Autowired
private CodeResolve codeResolve;
......@@ -240,24 +239,34 @@ public class SpBoxPutInManagerImpl implements SpBoxPutInManager {
}
// 最后刷新不能回滚的
if (finish && isOrderPutIn) {
// 调用入库接口
if (baseNo.getClass().equals(SpareNo.class)) {
dataLog.setSourceId(baseNo.getId());
dataLog.setSourceName(((SpareNo) baseNo).getSpareNo());
List<SpareInHourseDetail> details = new ArrayList<>();
for (SpareNoDetail detail : baseNo.getDetailList()) {
SpareInHourseDetail spareInHourseDetail = new SpareInHourseDetail();
spareInHourseDetail.setInQty(detail.getInQty());
spareInHourseDetail.setPartno(detail.getPartno());
String location = boxStr;
// String location = SpareNostatus.LOCATION_CODE.get(baseNo.getWhCode());
spareInHourseDetail.setLocationCode(location);
try {
// 调用入库接口
if (baseNo.getClass().equals(SpareNo.class)) {
dataLog.setSourceId(baseNo.getId());
dataLog.setSourceName(spareNo.getSpareNo());
List<SpareInHourseDetail> details = new ArrayList<>();
for (SpareNoDetail detail : baseNo.getDetailList()) {
SpareInHourseDetail spareInHourseDetail = new SpareInHourseDetail();
spareInHourseDetail.setInQty(detail.getInQty());
spareInHourseDetail.setPartno(detail.getPartno());
String location = boxStr;
// String location = SpareNostatus.LOCATION_CODE.get(baseNo.getWhCode());
spareInHourseDetail.setLocationCode(location);
// spareInHourseDetail.setLocationCode(binBarcode.getBarcode());
details.add(spareInHourseDetail);
details.add(spareInHourseDetail);
}
LuxsanSpApi.spareInHourse(new SpareInHourseRequest(baseNo.getDeptId(), baseNo.getNo(), baseNo.getWhCode(), details));
spareNo.setConfirmed(true);
}
LuxsanSpApi.spareInHourse(new SpareInHourseRequest(baseNo.getDeptId(), baseNo.getNo(), baseNo.getWhCode(), details));
}catch (Exception e) {
log.info("调用入库接口失败,失败原因"+e.getMessage());
spareNo.setConfirmed(false);
throw new Exception(e.getMessage());
}finally {
spareNoManager.save(spareNo);
}
}
return res;
}
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!