Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 2009c248
由
hc
编写于
2024-07-31 08:57:09 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
fix:出库单保存
1 个父辈
dae3e29e
隐藏空白字符变更
内嵌
并排
正在显示
10 个修改的文件
包含
76 行增加
和
301 行删除
src/main/java/com/neotel/smfcore/core/order/service/manager/ILiteOrderManager.java
src/main/java/com/neotel/smfcore/core/order/service/manager/impl/LiteOrderItemManagerImpl.java
src/main/java/com/neotel/smfcore/core/order/service/manager/impl/LiteOrderManagerImpl.java
src/main/java/com/neotel/smfcore/custom/luxsan_sp/api/LuxsanSpApi.java
src/main/java/com/neotel/smfcore/custom/luxsan_sp/bean/SpareNo.java
src/main/java/com/neotel/smfcore/custom/luxsan_sp/controller/SpBoxPutInController.java
src/main/java/com/neotel/smfcore/custom/luxsan_sp/controller/SpSpareNoController.java
src/main/java/com/neotel/smfcore/custom/luxsan_sp/controller/SpUnclaimedController.java
src/main/java/com/neotel/smfcore/custom/luxsan_sp/service/manager/SpBoxPutInManager.java → src/main/java/com/neotel/smfcore/custom/luxsan_sp/service/manager/ISpBoxPutInManager.java
src/main/java/com/neotel/smfcore/custom/luxsan_sp/service/manager/impl/SpBoxPutInManagerImpl.java
src/main/java/com/neotel/smfcore/core/order/service/manager/ILiteOrderManager.java
查看文件 @
2009c24
...
@@ -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
();
}
}
src/main/java/com/neotel/smfcore/core/order/service/manager/impl/LiteOrderItemManagerImpl.java
查看文件 @
2009c24
...
@@ -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
order
Id
)
{
public
List
<
LiteOrderItem
>
findOrderItems
(
String
order
No
)
{
return
liteOrderItemDao
.
findListByCondition
(
new
String
[]{
"order
Id"
},
new
String
[]{
orderId
});
return
liteOrderItemDao
.
findListByCondition
(
new
String
[]{
"order
No"
},
new
String
[]{
orderNo
});
}
}
@Override
@Override
...
...
src/main/java/com/neotel/smfcore/core/order/service/manager/impl/LiteOrderManagerImpl.java
查看文件 @
2009c24
...
@@ -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
);
...
...
src/main/java/com/neotel/smfcore/custom/luxsan_sp/api/LuxsanSpApi.java
查看文件 @
2009c24
...
@@ -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
[]{
"未找到入库单信息"
});
}
}
...
...
src/main/java/com/neotel/smfcore/custom/luxsan_sp/bean/SpareNo.java
查看文件 @
2009c24
...
@@ -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
;
}
}
src/main/java/com/neotel/smfcore/custom/luxsan_sp/controller/SpBoxPutInController.java
查看文件 @
2009c24
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.
I
SpBoxPutInManager
;
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
s
pBoxPutInManager
;
private
ISpBoxPutInManager
IS
pBoxPutInManager
;
@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
(
s
pBoxPutInManager
.
reelToBox
(
paramMap
));
return
ResultBean
.
newOkResult
(
IS
pBoxPutInManager
.
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("");
// }
}
}
src/main/java/com/neotel/smfcore/custom/luxsan_sp/controller/SpSpareNoController.java
查看文件 @
2009c24
...
@@ -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
());
...
...
src/main/java/com/neotel/smfcore/custom/luxsan_sp/controller/SpUnclaimedController.java
查看文件 @
2009c24
...
@@ -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
);
...
...
src/main/java/com/neotel/smfcore/custom/luxsan_sp/service/manager/SpBoxPutInManager.java
→
src/main/java/com/neotel/smfcore/custom/luxsan_sp/service/manager/
I
SpBoxPutInManager.java
查看文件 @
2009c24
...
@@ -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
I
SpBoxPutInManager
{
Map
<
String
,
String
>
reelToBox
(
Map
<
String
,
String
>
paramMap
)
throws
Exception
;
Map
<
String
,
String
>
reelToBox
(
Map
<
String
,
String
>
paramMap
)
throws
Exception
;
}
}
src/main/java/com/neotel/smfcore/custom/luxsan_sp/service/manager/impl/SpBoxPutInManagerImpl.java
查看文件 @
2009c24
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.
I
SpBoxPutInManager
;
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
I
SpBoxPutInManager
{
@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!
Cancel
请
注册
或
登录
后发表评论