Commit 2009c248 hc

fix:出库单保存

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