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;
} }
package com.neotel.smfcore.custom.luxsan_sp.controller; package com.neotel.smfcore.custom.luxsan_sp.controller;
import cn.hutool.core.util.ObjectUtil;
import com.neotel.smfcore.common.bean.ResultBean; import com.neotel.smfcore.common.bean.ResultBean;
import com.neotel.smfcore.common.utils.SecurityUtils;
import com.neotel.smfcore.common.utils.StringUtils; import com.neotel.smfcore.common.utils.StringUtils;
import com.neotel.smfcore.core.barcode.enums.BARCODE_STATUS;
import com.neotel.smfcore.core.barcode.service.manager.IBarcodeManager; import com.neotel.smfcore.core.barcode.service.manager.IBarcodeManager;
import com.neotel.smfcore.core.barcode.service.po.Barcode; import com.neotel.smfcore.core.barcode.service.po.Barcode;
import com.neotel.smfcore.core.barcode.utils.CodeResolve; import com.neotel.smfcore.core.barcode.utils.CodeResolve;
import com.neotel.smfcore.core.device.enums.OP;
import com.neotel.smfcore.core.device.enums.OP_STATUS;
import com.neotel.smfcore.core.device.util.DataCache; import com.neotel.smfcore.core.device.util.DataCache;
import com.neotel.smfcore.core.storage.service.manager.IStoragePosManager; import com.neotel.smfcore.core.storage.service.manager.IStoragePosManager;
import com.neotel.smfcore.core.storage.service.po.StoragePos;
import com.neotel.smfcore.core.system.service.dao.impl.DataLogDaoImpl; import com.neotel.smfcore.core.system.service.dao.impl.DataLogDaoImpl;
import com.neotel.smfcore.core.system.service.po.DataLog;
import com.neotel.smfcore.core.system.util.TaskService; import com.neotel.smfcore.core.system.util.TaskService;
import com.neotel.smfcore.custom.lizhen.agvBox.bean.Station; import com.neotel.smfcore.custom.lizhen.agvBox.bean.Station;
import com.neotel.smfcore.custom.lizhen.agvBox.util.StationCacheUtil; import com.neotel.smfcore.custom.lizhen.agvBox.util.StationCacheUtil;
import com.neotel.smfcore.custom.luxsan_sp.api.LuxsanSpApi;
import com.neotel.smfcore.custom.luxsan_sp.api.bean.request.SpareInHourseRequest;
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.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.*; import com.neotel.smfcore.custom.luxsan_sp.util.*;
import com.neotel.smfcore.security.annotation.AnonymousAccess; import com.neotel.smfcore.security.annotation.AnonymousAccess;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
...@@ -37,7 +26,6 @@ import org.springframework.web.bind.annotation.RequestMapping; ...@@ -37,7 +26,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
@Api(tags = "备件仓 料箱入库") @Api(tags = "备件仓 料箱入库")
@RestController @RestController
...@@ -48,32 +36,8 @@ public class SpBoxPutInController { ...@@ -48,32 +36,8 @@ public class SpBoxPutInController {
@Autowired @Autowired
private CodeResolve codeResolve; private CodeResolve codeResolve;
@Autowired @Autowired
private SpBoxPutInManager spBoxPutInManager; private ISpBoxPutInManager ISpBoxPutInManager;
@Autowired
private IStoragePosManager storagePosManager;
@Autowired
private IBarcodeManager barcodeManager;
@Autowired
private SpareNoCache spareNoCache;
@Autowired
private ReturnNoCache returnNoCache;
@Autowired
private ISpareNoManager spareNoManager;
@Autowired
private IReturnNoManager returnNoManager;
@Autowired
private TaskService taskService;
@Autowired
private DataCache dataCache;
@Autowired
private DataLogDaoImpl dataLogDaoImpl;
@ApiOperation("获取当前工位的料箱信息") @ApiOperation("获取当前工位的料箱信息")
@RequestMapping("/getStationInfo") @RequestMapping("/getStationInfo")
...@@ -116,243 +80,7 @@ public class SpBoxPutInController { ...@@ -116,243 +80,7 @@ public class SpBoxPutInController {
@RequestMapping("/reelToBox") @RequestMapping("/reelToBox")
@AnonymousAccess @AnonymousAccess
public ResultBean reelToBox(@RequestBody Map<String, String> paramMap) throws Exception { public ResultBean reelToBox(@RequestBody Map<String, String> paramMap) throws Exception {
return ResultBean.newOkResult(spBoxPutInManager.reelToBox(paramMap)); return ResultBean.newOkResult(ISpBoxPutInManager.reelToBox(paramMap));
} }
// //以料格为维度,一个料格
// @ApiOperation("物料放入料格")
// @RequestMapping("/reelToBox")
// @AnonymousAccess
// public synchronized ResultBean reelToBox(@RequestBody Map<String, String> paramMap) {
//// SpareNo spareNo1 = spareNoCache.getExecutIngSpareNo();
//// ReturnInventoryNo returnInventoryNo1 = returnNoCache.getExecutingOrderNo();
//// if (ObjectUtil.isAllEmpty(spareNo1, returnInventoryNo1)) {
//// return ResultBean.newErrorResult(-1,"","没有找到正在执行的入库单或者退库单");
//// }
// String boxStr = paramMap.get("boxStr");
// String codeStr = paramMap.get("codeStr");
// String binCodeStr = paramMap.get("binCodeStr");
// log.info("reelToBox : boxStr="+boxStr+",codeStr="+codeStr+",binCodeStr="+binCodeStr);
//// boxStr = "C0700377A";
//// codeStr = "1950090020044V&&2";
//// binCodeStr = "C0700377-01";
//
// //解析料箱信息
// Barcode boxBarcode = codeResolve.resolveOneValideBarcode("=2x2=" + boxStr);
// if (boxBarcode == null) {
// return ResultBean.newErrorResult(-1, "", boxStr + "不是有效的条码");
// }
//
// //解析料格信息
// Barcode binBarcode = codeResolve.resolveOneValideBarcode("=2x2=" + binCodeStr);
// if (binBarcode == null) {
// return ResultBean.newErrorResult(-1, "", binCodeStr + "不是有效的条码");
// }
//
// //2.解析条码信息
// CodeBarcode codeBarcode = CodeUtil.getCodeBarcode(codeStr);
// if (codeBarcode == null) {
// return ResultBean.newErrorResult(-1, "", codeStr + "不是有效的条码");
// }
//
//
// // 判断物料是否在其他格口
// boolean isAlreadyInThisOrNever = barcodeManager.partNumberIsAlreadyInThisOrNever(binCodeStr, codeBarcode.getPartNumber());
// if (!isAlreadyInThisOrNever) {
// return ResultBean.newErrorResult(-1, "", codeBarcode.getPartNumber() + "已经存在其他料格");
// }
//
//
// if (boxBarcode.getPartNumber().equals(binBarcode.getPartNumber())) {
// binBarcode.setPartNumber(null);
// }
// if (ObjectUtil.isEmpty(binBarcode.getPartNumber())) {
// binBarcode.setPartNumber(codeBarcode.getPartNumber());
// }
//
// //1.判断料格信息与料箱信息是否匹配
// if (!binBarcode.getBarcode().startsWith(boxBarcode.getBarcode())) {
// return ResultBean.newErrorResult(-1, "", binCodeStr + "不是当前料箱:" + boxStr + "的隔口");
// }
// // 匹配是否存在该料格
// List<Barcode> subCodeList = boxBarcode.getSubCodeList();
// if (ObjectUtil.isNull(subCodeList)) {
// boxBarcode.setSubCodeList(new ArrayList<>());
// subCodeList = boxBarcode.getSubCodeList();
// subCodeList.add(binBarcode);
// }else {
// if (! (subCodeList.stream()
// .map(Barcode::getBarcode)
// .collect(Collectors.toList())
// .contains(binCodeStr))
// ) {
// subCodeList.add(binBarcode);
// }
// }
//
//
//
// //判断有没有正在执行入库单
// SpareNo spareNo = spareNoCache.getExecutIngSpareNo();
// ReturnInventoryNo returnInventoryNo = returnNoCache.getExecutingOrderNo();
// BaseNo baseNo = null;
// boolean isOrderPutIn = false;
// if (ObjectUtil.isAllEmpty(spareNo, returnInventoryNo)) {
//// return ResultBean.newErrorResult(-1,"","没有找到正在执行的入库单或者退库单");
// }else {
// baseNo = ObjectUtil.isEmpty(spareNo) ? returnInventoryNo : spareNo;
// isOrderPutIn = true;
// }
//
//
// //3.判断与当前隔口的料号是否匹配
//// String binPartNumber = binBarcode.getPartNumber();
//// if (binPartNumber.equals("CS") || binPartNumber.equals("CB") || binPartNumber.equals("CM")) {
//// binPartNumber = "";
//// }
//
// boolean isMatch = false;
// int binCodeNum = Integer.parseInt(binCodeStr.split("-")[1]);
// //判断格口数量
// int count = SpBoxUtil.GetBoxSubCount(boxBarcode.getBarcode());
// if(binCodeNum>count){
// return ResultBean.newErrorResult(-1, "", boxBarcode.getBarcode() + "最多格口数"+count+",请扫描正确的格口码");
// }
// String codePartNumber = codeBarcode.getPartNumber();
// for (Barcode barcode : boxBarcode.getSubCodeList()) {
// String pn = barcode.getPartNumber();
// int binNum = Integer.parseInt(barcode.getBarcode().split("-")[1]);
// if ((binNum == binCodeNum)) {
// // 要入的料格找到了
// if (StringUtils.isNotBlank(barcode.getPartNumber())) {
// if (pn.equals(codePartNumber)) {
// isMatch = true;
// }
// }else {
// if (isOrderPutIn) {
//
// }else {
// isMatch = true;
// barcode.setPartNumber(codePartNumber);
// }
// }
// break;
// }
// }
//// if (StringUtils.isEmpty(binPartNumber)) {
//// binPartNumber = codePartNumber;
//// } else {
//// if (!binPartNumber.equals(codePartNumber)) {
//// return ResultBean.newErrorResult(-1, "", codeStr + "与隔口:" + binCodeStr + "的料号不匹配");
//// }
//// }
// if (!isMatch) {
// return ResultBean.newErrorResult(-1, "", codeStr + "的料号["+codePartNumber+"]与隔口:" + binCodeStr + "的料号["+binBarcode.getPartNumber()+"]不匹配");
// }
//
//
// //判断是否已经完成了
// boolean finish = true;
// //判断当前入库的是否和入库单一样
// if (isOrderPutIn) {
// List<SpareNoDetail> detailList = baseNo.getDetailList();
//
// SpareNoDetail spareNoDetail = null;
//
// for (SpareNoDetail detail : detailList) {
// //如果相同的话,判断数量是否大于需求数量
// if (detail.getPartno().equals(codePartNumber)) {
// if (detail.getAlrInQty() + codeBarcode.getQty() <= detail.getInQty()) {
// spareNoDetail = detail;
// break;
// }
// }
// }
//
// if (spareNoDetail == null) {
// return ResultBean.newErrorResult(-1,"",codePartNumber+"没有入退库需求,请检查是否存在或者不符合入退库数量");
// }
//
//
//
// //数量加
// spareNoDetail.setAlrInQty(spareNoDetail.getAlrInQty()+ codeBarcode.getQty());
// baseNo.updateDetailList(spareNoDetail);
//
// log.info("开始判断是否完成入库单");
// for (SpareNoDetail noDetail : baseNo.getDetailList()) {
// if (noDetail.getInQty() > noDetail.getAlrInQty()){
// log.info("入库未完成");
// finish = false;
// break;
// }
// log.info("入料noDetail.getInQty()"+noDetail.getInQty()+"noDetail.getAlrInQty()"+noDetail.getAlrInQty());
// }
//
//
// }
//
//
// //4.开始放入料箱
// binBarcode.setPartNumber(codePartNumber);
// binBarcode.setAmount(binBarcode.getAmount()+codeBarcode.getQty());
//
//
// boxBarcode.updateSubCodes(binBarcode);
//
//
//// if (!finish) {
//// return ResultBean.newOkResult("");
//// }
// //5.寻找空库位
// StoragePos pos = SpBoxUtil.locOnePos(boxBarcode);
// if (pos == null){
// return ResultBean.newErrorResult(-1,"",boxStr+"未找到可用的库位");
// }
//
// //6.生成入库任务
// DataLog dataLog = new DataLog();
// dataLog.setBarcode(codeStr);
// dataLog.setPartNumber(codeBarcode.getPartNumber());
// dataLog.setOperator(SecurityUtils.getLoginUsername());
// dataLog.setStatus(OP_STATUS.FINISHED.name());
// dataLog.setPosName(binBarcode.getBarcode());
// dataLog.setType(OP.PUT_IN);
//
// pos.setBarcode(boxBarcode);
// pos.setUsed(true);
// if (finish && isOrderPutIn){
// // 调用入库接口
// if (baseNo.getClass().equals(SpareNo.class)) {
// 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);
// }
// LuxsanSpApi.spareInHourse(new SpareInHourseRequest(baseNo.getDeptId(),baseNo.getNo(),baseNo.getWhCode(), details));
// }
// }
//
// if (isOrderPutIn) {
// if ( baseNo.getClass().equals(SpareNo.class)) {
// spareNoCache.addToMap(spareNo);
// spareNoManager.save(spareNo);
// }else {
// returnNoCache.addToMap(returnInventoryNo);
// returnNoManager.save(returnInventoryNo);
// }
// }
// storagePosManager.save(pos);
// barcodeManager.save(binBarcode);
// barcodeManager.save(boxBarcode);
// taskService.updateFinishedTask(dataLog);
//
// return ResultBean.newOkResult("");
// }
} }
...@@ -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!