测试修改
This commit is contained in:
@@ -27,9 +27,9 @@ public class ToWmsApiController {
|
||||
/**
|
||||
* 入库任务请求
|
||||
*/
|
||||
@PostMapping("/inJob")
|
||||
public AjaxResult inJob(@RequestBody MydoJob mydoJob) {
|
||||
AjaxResult ajaxResult = toWmsService.inJob(mydoJob);
|
||||
@PostMapping("/requestEnter")
|
||||
public AjaxResult requestEnter(@RequestBody MydoJob mydoJob) {
|
||||
AjaxResult ajaxResult = toWmsService.requestEnter(mydoJob);
|
||||
RequestLog requestLog = requestLogService.getRequestLog(JSONUtil.toJsonStr(mydoJob), "InJob");
|
||||
requestLog.setResponseBody(Convert.toStr(ajaxResult.get("msg")));
|
||||
requestLogService.insertRequestLog(requestLog);
|
||||
|
||||
@@ -11,7 +11,7 @@ import java.util.Map;
|
||||
*/
|
||||
public interface IToWmsService {
|
||||
|
||||
AjaxResult inJob(MydoJob mydoJob);
|
||||
AjaxResult requestEnter(MydoJob mydoJob);
|
||||
|
||||
AjaxResult jobFinish(WmsJobRequest wmsJobRequest);
|
||||
|
||||
|
||||
@@ -71,12 +71,21 @@ public class ToWmsServiceImpl implements IToWmsService {
|
||||
|
||||
|
||||
@Override
|
||||
public AjaxResult inJob(MydoJob mydoJob) {
|
||||
List<MydoJob> mydoJobs = mydoJobService.selectMydoJobList(mydoJob);
|
||||
public AjaxResult requestEnter(MydoJob param) {
|
||||
MydoJob mydoJobParam = new MydoJob();
|
||||
mydoJobParam.setTrayCode(param.getTrayCode());
|
||||
List<MydoJob> mydoJobs = mydoJobService.selectMydoJobListApi(mydoJobParam);
|
||||
if(mydoJobs.isEmpty()){
|
||||
return AjaxResult.error("此托盘没有作业");
|
||||
}
|
||||
return AjaxResult.success(mydoJobs.get(0));
|
||||
MydoJob mydoJob = mydoJobs.get(0);
|
||||
if ("1".equals(mydoJob.getExecutionPhase())){
|
||||
mydoJob.setExecutionPhase("2");
|
||||
mydoJob.setEntranceId(param.getEntranceId());
|
||||
mydoJob.setStatus("3");
|
||||
mydoJobService.updateMydoJob(mydoJob);
|
||||
}
|
||||
return AjaxResult.success(mydoJob);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -93,7 +102,7 @@ public class ToWmsServiceImpl implements IToWmsService {
|
||||
//入库
|
||||
mydoJobParam.setTaskNo(wmsJobRequest.getTaskNo());
|
||||
mydoJobParam.setTrayCode(wmsJobRequest.getTrayCode());
|
||||
List<MydoJob> inMydoJobs = mydoJobService.selectMydoJobList(mydoJobParam);
|
||||
List<MydoJob> inMydoJobs = mydoJobService.selectMydoJobListApi(mydoJobParam);
|
||||
if (inMydoJobs.isEmpty()){
|
||||
return AjaxResult.error("没有该作业 taskNo: {}", wmsJobRequest.getTaskNo());
|
||||
}
|
||||
@@ -113,7 +122,7 @@ public class ToWmsServiceImpl implements IToWmsService {
|
||||
//出库
|
||||
mydoJobParam.setTaskNo(wmsJobRequest.getTaskNo());
|
||||
mydoJobParam.setTrayCode(wmsJobRequest.getTrayCode());
|
||||
List<MydoJob> outMydoJobs = mydoJobService.selectMydoJobList(mydoJobParam);
|
||||
List<MydoJob> outMydoJobs = mydoJobService.selectMydoJobListApi(mydoJobParam);
|
||||
if (outMydoJobs.isEmpty()){
|
||||
return AjaxResult.error("没有该作业 taskNo: {}", wmsJobRequest.getTaskNo());
|
||||
}
|
||||
|
||||
@@ -28,6 +28,7 @@ public interface IMydoJobService
|
||||
* @return 任务表集合
|
||||
*/
|
||||
public List<MydoJob> selectMydoJobList(MydoJob mydoJob);
|
||||
public List<MydoJob> selectMydoJobListApi(MydoJob mydoJob);
|
||||
|
||||
/**
|
||||
* 新增任务表
|
||||
|
||||
@@ -90,6 +90,17 @@ public class MydoJobServiceImpl implements IMydoJobService {
|
||||
return mydoJobMapper.selectMydoJobList(mydoJob);
|
||||
}
|
||||
|
||||
/**
|
||||
* 对外接口查询任务表列表
|
||||
*
|
||||
* @param mydoJob
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<MydoJob> selectMydoJobListApi(MydoJob mydoJob) {
|
||||
return mydoJobMapper.selectMydoJobList(mydoJob);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增任务表
|
||||
*
|
||||
@@ -148,27 +159,37 @@ public class MydoJobServiceImpl implements IMydoJobService {
|
||||
if (job == null) {
|
||||
return AjaxResult.warn("任务不存在");
|
||||
}
|
||||
if(!"1".equals(job.getStatus())) {
|
||||
if (!"1".equals(job.getStatus())) {
|
||||
return AjaxResult.warn("任务已开始");
|
||||
}
|
||||
MydoJobDetail param = new MydoJobDetail();
|
||||
param.setJobId(jobId);
|
||||
List<MydoJobDetail> mydoJobDetails = mydoJobDetailService.selectMydoJobDetailList(param);
|
||||
if ("1".equals(job.getInOrOut()) || "4".equals(job.getInOrOut())) {
|
||||
mydoJob.setStatus("5");
|
||||
updateMydoJob(mydoJob);
|
||||
//插入历史表
|
||||
insertHistory(mydoJob.getJobId());
|
||||
|
||||
for (MydoJobDetail mydoJobDetail : mydoJobDetails) {
|
||||
String inOrOutDId = mydoJobDetail.getInOrOutDId();
|
||||
InStockinDetail inStockinDetail = inStockinDetailService.selectInStockinDetailByStockinDetailId(inOrOutDId);
|
||||
BigDecimal stockInNum = Convert.toBigDecimal(inStockinDetail.getScanNum());
|
||||
BigDecimal jobInNum = Convert.toBigDecimal(mydoJobDetail.getInQuantity());
|
||||
BigDecimal subtract = stockInNum.subtract(jobInNum);
|
||||
inStockinDetail.setScanNum(Convert.toStr(subtract));
|
||||
inStockinDetailService.updateInStockinDetail(inStockinDetail);
|
||||
return AjaxResult.success();
|
||||
} else {
|
||||
MydoJobDetail param = new MydoJobDetail();
|
||||
param.setJobId(jobId);
|
||||
List<MydoJobDetail> mydoJobDetails = mydoJobDetailService.selectMydoJobDetailList(param);
|
||||
|
||||
for (MydoJobDetail mydoJobDetail : mydoJobDetails) {
|
||||
String inOrOutDId = mydoJobDetail.getInOrOutDId();
|
||||
InStockinDetail inStockinDetail = inStockinDetailService.selectInStockinDetailByStockinDetailId(inOrOutDId);
|
||||
BigDecimal stockInNum = Convert.toBigDecimal(inStockinDetail.getScanNum());
|
||||
BigDecimal jobInNum = Convert.toBigDecimal(mydoJobDetail.getInQuantity());
|
||||
BigDecimal subtract = stockInNum.subtract(jobInNum);
|
||||
inStockinDetail.setScanNum(Convert.toStr(subtract));
|
||||
inStockinDetailService.updateInStockinDetail(inStockinDetail);
|
||||
}
|
||||
mydoJob.setStatus("5");
|
||||
updateMydoJob(mydoJob);
|
||||
//插入历史表
|
||||
insertHistory(mydoJob.getJobId());
|
||||
return AjaxResult.success();
|
||||
}
|
||||
mydoJob.setStatus("5");
|
||||
updateMydoJob(mydoJob);
|
||||
//插入历史表
|
||||
insertHistory(mydoJob.getJobId());
|
||||
return AjaxResult.success();
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -194,21 +215,122 @@ public class MydoJobServiceImpl implements IMydoJobService {
|
||||
if (job == null) {
|
||||
return AjaxResult.warn("任务不存在");
|
||||
}
|
||||
//入库作业
|
||||
MydoJobDetail param = new MydoJobDetail();
|
||||
param.setJobId(jobId);
|
||||
List<MydoJobDetail> mydoJobDetails = mydoJobDetailService.selectMydoJobDetailList(param);
|
||||
BasCargoSpace basCargoSpace = basCargoSpaceService.selectBasCargoSpaceByCargoSpaceId(job.getCargoSpaceId());
|
||||
if (CollUtil.isNotEmpty(mydoJobDetails)) {
|
||||
List<BasStock> list = new ArrayList<>();
|
||||
if ("1".equals(job.getStatus()) || "2".equals(job.getStatus())) {
|
||||
return AjaxResult.warn("任务未开始");
|
||||
}
|
||||
if ("1".equals(job.getInOrOut()) || "4".equals(job.getInOrOut())) {
|
||||
//空料箱入库 托盘垛入库
|
||||
//入库作业
|
||||
MydoJobDetail param = new MydoJobDetail();
|
||||
param.setJobId(jobId);
|
||||
List<MydoJobDetail> mydoJobDetails = mydoJobDetailService.selectMydoJobDetailList(param);
|
||||
BasCargoSpace basCargoSpace = basCargoSpaceService.selectBasCargoSpaceByCargoSpaceId(job.getCargoSpaceId());
|
||||
if (CollUtil.isNotEmpty(mydoJobDetails)) {
|
||||
List<BasStock> list = new ArrayList<>();
|
||||
for (MydoJobDetail mydoJobDetail : mydoJobDetails) {
|
||||
//正常库存
|
||||
list.add(getStockByInStockinDetail(mydoJobDetail, job, "1"));
|
||||
}
|
||||
//修改货位状态
|
||||
basCargoSpace.setStatus("2");
|
||||
basCargoSpace.setTrayCode(job.getTrayCode());
|
||||
basCargoSpace.setCargoSpaceId(job.getCargoSpaceId());
|
||||
basCargoSpaceService.updateBasCargoSpace(basCargoSpace);
|
||||
//插入库存信息
|
||||
basStockService.insertBasStockList(list);
|
||||
//结束任务
|
||||
mydoJob.setStatus("4");
|
||||
updateMydoJob(mydoJob);
|
||||
// 插入任务历史表 删除任务
|
||||
insertHistory(mydoJob.getJobId());
|
||||
return AjaxResult.success();
|
||||
} else {
|
||||
return AjaxResult.warn("子任务不存在");
|
||||
}
|
||||
} else if ("2".equals(job.getInOrOut()) || "3".equals(job.getInOrOut())) {
|
||||
//ctu物料入库 高架库入库
|
||||
//入库作业
|
||||
MydoJobDetail param = new MydoJobDetail();
|
||||
param.setJobId(jobId);
|
||||
List<MydoJobDetail> mydoJobDetails = mydoJobDetailService.selectMydoJobDetailList(param);
|
||||
BasCargoSpace basCargoSpace = basCargoSpaceService.selectBasCargoSpaceByCargoSpaceId(job.getCargoSpaceId());
|
||||
if (CollUtil.isNotEmpty(mydoJobDetails)) {
|
||||
List<BasStock> list = new ArrayList<>();
|
||||
//查找是否存在异常信息
|
||||
OutExceptionRecord outExceptionRecordParam = new OutExceptionRecord();
|
||||
outExceptionRecordParam.setTrayCode(job.getTrayCode());
|
||||
outExceptionRecordParam.setWarehouseId(job.getWarehouseId());
|
||||
List<OutExceptionRecord> outExceptionRecords = outExceptionRecordService.selectOutExceptionRecordList(outExceptionRecordParam);
|
||||
for (MydoJobDetail mydoJobDetail : mydoJobDetails) {
|
||||
|
||||
//修改单据实际数量 物料入库 高架库入库
|
||||
String inOrOutDId = mydoJobDetail.getInOrOutDId();
|
||||
InStockinDetail inStockinDetail = inStockinDetailService.selectInStockinDetailByStockinDetailId(inOrOutDId);
|
||||
inStockinDetail.setAssignNum(Convert.toStr(Convert.toBigDecimal(inStockinDetail.getAssignNum()).add(Convert.toBigDecimal(mydoJobDetail.getInQuantity()))));
|
||||
inStockinDetailService.updateInStockinDetail(inStockinDetail);
|
||||
|
||||
Optional<OutExceptionRecord> first = outExceptionRecords.stream().filter(x -> x.getTrayCode().equals(job.getTrayCode()) && x.getProductId().equals(mydoJobDetail.getProductId())).findFirst();
|
||||
if (first.isPresent()) {
|
||||
//生成异常库存
|
||||
BasStock stockByInStockinDetail = getStockByInStockinDetail(mydoJobDetail, job, "3");
|
||||
list.add(stockByInStockinDetail);
|
||||
//修改异常记录中的库存id
|
||||
OutExceptionRecord outExceptionRecord = first.get();
|
||||
outExceptionRecord.setStockId(stockByInStockinDetail.getStockId());
|
||||
outExceptionRecordService.updateOutExceptionRecord(outExceptionRecord);
|
||||
} else {
|
||||
//正常库存
|
||||
list.add(getStockByInStockinDetail(mydoJobDetail, job, "1"));
|
||||
}
|
||||
}
|
||||
//删除异常库存记录
|
||||
List<Long> collect = outExceptionRecords.stream().map(OutExceptionRecord::getOutGuid).collect(Collectors.toList());
|
||||
if (CollUtil.isNotEmpty(collect)) {
|
||||
for (Long id : collect) {
|
||||
outExceptionRecordService.deleteOutExceptionRecordByOutGuid(id);
|
||||
}
|
||||
|
||||
}
|
||||
//修改货位状态
|
||||
basCargoSpace.setStatus("2");
|
||||
basCargoSpace.setTrayCode(job.getTrayCode());
|
||||
basCargoSpace.setCargoSpaceId(job.getCargoSpaceId());
|
||||
basCargoSpaceService.updateBasCargoSpace(basCargoSpace);
|
||||
|
||||
//插入库存信息
|
||||
basStockService.insertBasStockList(list);
|
||||
|
||||
//结束任务
|
||||
mydoJob.setStatus("4");
|
||||
updateMydoJob(mydoJob);
|
||||
// 插入任务历史表 删除任务
|
||||
insertHistory(mydoJob.getJobId());
|
||||
return AjaxResult.success();
|
||||
} else {
|
||||
return AjaxResult.warn("子任务不存在");
|
||||
}
|
||||
} else if ("5".equals(job.getInOrOut()) || "6".equals(job.getInOrOut())) {
|
||||
//盘点 ctu入库 高架库入库
|
||||
//入库作业
|
||||
MydoJobDetail param = new MydoJobDetail();
|
||||
param.setJobId(jobId);
|
||||
List<MydoJobDetail> mydoJobDetails = mydoJobDetailService.selectMydoJobDetailList(param);
|
||||
BasCargoSpace basCargoSpace = basCargoSpaceService.selectBasCargoSpaceByCargoSpaceId(job.getCargoSpaceId());
|
||||
if (CollUtil.isNotEmpty(mydoJobDetails)) {
|
||||
List<BasStock> list = new ArrayList<>();
|
||||
|
||||
|
||||
if ("5".equals(job.getInOrOut()) || "6".equals(job.getInOrOut())) {
|
||||
//查询盘点信息中的异常信息
|
||||
CheckDifferenceRecord checkDifferenceRecordParam = new CheckDifferenceRecord();
|
||||
checkDifferenceRecordParam.setTrayCode(job.getTrayCode());
|
||||
checkDifferenceRecordParam.setWarehouseId(job.getWarehouseId());
|
||||
List<CheckDifferenceRecord> checkDifferenceRecords = checkDifferenceRecordService.selectCheckDifferenceRecordList(checkDifferenceRecordParam);
|
||||
for (MydoJobDetail mydoJobDetail : mydoJobDetails) {
|
||||
//修改单据实际数量
|
||||
String inOrOutDId = mydoJobDetail.getInOrOutDId();
|
||||
InStockinDetail inStockinDetail = inStockinDetailService.selectInStockinDetailByStockinDetailId(inOrOutDId);
|
||||
inStockinDetail.setAssignNum(Convert.toStr(Convert.toBigDecimal(inStockinDetail.getAssignNum()).add(Convert.toBigDecimal(mydoJobDetail.getInQuantity()))));
|
||||
inStockinDetailService.updateInStockinDetail(inStockinDetail);
|
||||
//如果存在盘点异常信息 根据托盘条码和物料id 筛选异常信息
|
||||
Optional<CheckDifferenceRecord> first = checkDifferenceRecords.stream().filter(x -> x.getTrayCode().equals(job.getTrayCode()) && x.getProductId().equals(mydoJobDetail.getProductId())).findFirst();
|
||||
if (first.isPresent()) {
|
||||
@@ -226,61 +348,32 @@ public class MydoJobServiceImpl implements IMydoJobService {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//修改货位状态
|
||||
basCargoSpace.setStatus("2");
|
||||
basCargoSpace.setTrayCode(job.getTrayCode());
|
||||
basCargoSpace.setCargoSpaceId(job.getCargoSpaceId());
|
||||
basCargoSpaceService.updateBasCargoSpace(basCargoSpace);
|
||||
|
||||
//插入库存信息
|
||||
basStockService.insertBasStockList(list);
|
||||
|
||||
//结束任务
|
||||
mydoJob.setStatus("4");
|
||||
updateMydoJob(mydoJob);
|
||||
// 插入任务历史表 删除任务
|
||||
insertHistory(mydoJob.getJobId());
|
||||
return AjaxResult.success();
|
||||
} else {
|
||||
//查找是否存在异常信息
|
||||
OutExceptionRecord outExceptionRecordParam = new OutExceptionRecord();
|
||||
outExceptionRecordParam.setTrayCode(job.getTrayCode());
|
||||
outExceptionRecordParam.setWarehouseId(job.getWarehouseId());
|
||||
List<OutExceptionRecord> outExceptionRecords = outExceptionRecordService.selectOutExceptionRecordList(outExceptionRecordParam);
|
||||
for (MydoJobDetail mydoJobDetail : mydoJobDetails) {
|
||||
Optional<OutExceptionRecord> first = outExceptionRecords.stream().filter(x -> x.getTrayCode().equals(job.getTrayCode()) && x.getProductId().equals(mydoJobDetail.getProductId())).findFirst();
|
||||
if (first.isPresent()){
|
||||
//生成异常库存
|
||||
BasStock stockByInStockinDetail = getStockByInStockinDetail(mydoJobDetail, job, "3");
|
||||
list.add(stockByInStockinDetail);
|
||||
//修改异常记录中的库存id
|
||||
OutExceptionRecord outExceptionRecord = first.get();
|
||||
outExceptionRecord.setStockId(stockByInStockinDetail.getStockId());
|
||||
outExceptionRecordService.updateOutExceptionRecord(outExceptionRecord);
|
||||
}else {
|
||||
//正常库存
|
||||
list.add(getStockByInStockinDetail(mydoJobDetail, job, "1"));
|
||||
}
|
||||
}
|
||||
//删除异常库存记录
|
||||
List<Long> collect = outExceptionRecords.stream().map(OutExceptionRecord::getOutGuid).collect(Collectors.toList());
|
||||
if (CollUtil.isNotEmpty( collect)){
|
||||
for (Long id : collect) {
|
||||
outExceptionRecordService.deleteOutExceptionRecordByOutGuid(id);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return AjaxResult.warn("子任务不存在");
|
||||
}
|
||||
|
||||
|
||||
//修改货位状态
|
||||
basCargoSpace.setStatus("2");
|
||||
basCargoSpace.setTrayCode(job.getTrayCode());
|
||||
basCargoSpace.setCargoSpaceId(job.getCargoSpaceId());
|
||||
basCargoSpaceService.updateBasCargoSpace(basCargoSpace);
|
||||
|
||||
//插入库存信息
|
||||
basStockService.insertBasStockList(list);
|
||||
|
||||
//结束任务
|
||||
mydoJob.setStatus("4");
|
||||
updateMydoJob(mydoJob);
|
||||
// 插入任务历史表 删除任务
|
||||
insertHistory(mydoJob.getJobId());
|
||||
return AjaxResult.success();
|
||||
} else {
|
||||
return AjaxResult.warn("子任务不存在");
|
||||
return AjaxResult.warn("暂不支持的任务类型");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private BasStock getStockByInStockinDetail(MydoJobDetail mydoJobDetail, MydoJob mydoJob,String productStatus) {
|
||||
private BasStock getStockByInStockinDetail(MydoJobDetail mydoJobDetail, MydoJob mydoJob, String productStatus) {
|
||||
BasStock stock = new BasStock();
|
||||
stock.setStockId(basJobIdService.getJobId("KC"));
|
||||
stock.setCargoSpaceId(mydoJob.getCargoSpaceId());
|
||||
@@ -360,16 +453,16 @@ public class MydoJobServiceImpl implements IMydoJobService {
|
||||
HashMap<String, Object> map = new HashMap<>();
|
||||
String msg = "";
|
||||
String Stringbuilder = "";
|
||||
for(String stockId:stockIds){
|
||||
map.put("stockId",stockId);
|
||||
for (String stockId : stockIds) {
|
||||
map.put("stockId", stockId);
|
||||
mydoJobMapper.pointOut(map);
|
||||
String result = map.get("result").toString();
|
||||
if("10".equals(result)){
|
||||
msg="操作成功!";
|
||||
}else{
|
||||
msg=map.get("v_resultmsg").toString();
|
||||
if ("10".equals(result)) {
|
||||
msg = "操作成功!";
|
||||
} else {
|
||||
msg = map.get("v_resultmsg").toString();
|
||||
}
|
||||
Stringbuilder+=stockId+msg+"<br/>";
|
||||
Stringbuilder += stockId + msg + "<br/>";
|
||||
}
|
||||
|
||||
return AjaxResult.success(Stringbuilder.toString());
|
||||
|
||||
@@ -6,15 +6,15 @@ import com.ruoyi.out.outStockout.domain.OutStockout;
|
||||
|
||||
/**
|
||||
* 出库主单Mapper接口
|
||||
*
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-05-20
|
||||
*/
|
||||
public interface OutStockoutMapper
|
||||
public interface OutStockoutMapper
|
||||
{
|
||||
/**
|
||||
* 查询出库主单
|
||||
*
|
||||
*
|
||||
* @param stockoutGuid 出库主单主键
|
||||
* @return 出库主单
|
||||
*/
|
||||
@@ -22,7 +22,7 @@ public interface OutStockoutMapper
|
||||
|
||||
/**
|
||||
* 查询出库主单列表
|
||||
*
|
||||
*
|
||||
* @param outStockout 出库主单
|
||||
* @return 出库主单集合
|
||||
*/
|
||||
@@ -30,7 +30,7 @@ public interface OutStockoutMapper
|
||||
|
||||
/**
|
||||
* 新增出库主单
|
||||
*
|
||||
*
|
||||
* @param outStockout 出库主单
|
||||
* @return 结果
|
||||
*/
|
||||
@@ -38,7 +38,7 @@ public interface OutStockoutMapper
|
||||
|
||||
/**
|
||||
* 修改出库主单
|
||||
*
|
||||
*
|
||||
* @param outStockout 出库主单
|
||||
* @return 结果
|
||||
*/
|
||||
@@ -46,7 +46,7 @@ public interface OutStockoutMapper
|
||||
|
||||
/**
|
||||
* 删除出库主单
|
||||
*
|
||||
*
|
||||
* @param stockoutGuid 出库主单主键
|
||||
* @return 结果
|
||||
*/
|
||||
@@ -54,7 +54,7 @@ public interface OutStockoutMapper
|
||||
|
||||
/**
|
||||
* 批量删除出库主单
|
||||
*
|
||||
*
|
||||
* @param stockoutGuids 需要删除的数据主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
@@ -63,4 +63,6 @@ public interface OutStockoutMapper
|
||||
public void updateOutStockoutStatus(HashMap<String,String> map);
|
||||
|
||||
void autoAllot(HashMap<String, String> map);
|
||||
|
||||
OutStockout selectOutStockoutByStockoutId(String stockoutId);
|
||||
}
|
||||
|
||||
@@ -158,6 +158,15 @@ public class OutStockoutServiceImpl implements IOutStockoutService
|
||||
|
||||
@Override
|
||||
public AjaxResult autoAllot(String stockoutId) {
|
||||
|
||||
OutStockout outStockout = outStockoutMapper.selectOutStockoutByStockoutId(stockoutId);
|
||||
if (outStockout == null){
|
||||
return AjaxResult.warn("未找到出库单");
|
||||
}
|
||||
if ("1".equals(outStockout.getStatus())){
|
||||
return AjaxResult.warn("出库单状态未审核");
|
||||
}
|
||||
|
||||
HashMap<String, String> map = new HashMap<>();
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
OutStockoutDetail outStockoutDetail = new OutStockoutDetail();
|
||||
|
||||
@@ -216,10 +216,10 @@ public class PdaServiceImp implements PdaService {
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public AjaxResult outMakeSure(TrayCodeMakeSure trayCodeMakeSure) {
|
||||
|
||||
List<MydoJobDetail> mydoJobDetailList = trayCodeMakeSure.getMydoJobDetailList();
|
||||
/*List<MydoJobDetail> mydoJobDetailList = trayCodeMakeSure.getMydoJobDetailList();
|
||||
if(CollUtil.isEmpty(mydoJobDetailList)){
|
||||
return AjaxResult.warn("拣选的物料不能为空");
|
||||
}
|
||||
}*/
|
||||
//判断任务是否存在
|
||||
MydoJob mydoJobParam = new MydoJob();
|
||||
mydoJobParam.setTrayCode(trayCodeMakeSure.getTrayCode());
|
||||
@@ -247,10 +247,10 @@ public class PdaServiceImp implements PdaService {
|
||||
switch (billType) {
|
||||
case "1":
|
||||
//拣选单据
|
||||
return handleOutType1(trayCodeMakeSure,mydoJobDetailList,mydoJobList.get(0));
|
||||
return handleOutType1(trayCodeMakeSure, mydoJobDetails, mydoJobList.get(0));
|
||||
case "2":
|
||||
//退货单据 不绑定容器
|
||||
return handleOutType2(trayCodeMakeSure,mydoJobDetailList,mydoJobList.get(0));
|
||||
return handleOutType2(trayCodeMakeSure, mydoJobDetails, mydoJobList.get(0));
|
||||
default:
|
||||
return AjaxResult.warn("单据类型错误");
|
||||
}
|
||||
@@ -258,20 +258,22 @@ public class PdaServiceImp implements PdaService {
|
||||
|
||||
/**
|
||||
* 处理退货出库
|
||||
*
|
||||
* @param trayCodeMakeSure
|
||||
* @param mydoJobDetailList
|
||||
* @param mydoJob
|
||||
* @return
|
||||
*/
|
||||
|
||||
private AjaxResult handleOutType2(TrayCodeMakeSure trayCodeMakeSure,List<MydoJobDetail> mydoJobDetailList,MydoJob mydoJob) {
|
||||
private AjaxResult handleOutType2(TrayCodeMakeSure trayCodeMakeSure, List<MydoJobDetail> mydoJobDetailList, MydoJob mydoJob) {
|
||||
//修改拣选数量
|
||||
for (MydoJobDetail mydoJobDetail : mydoJobDetailList) {
|
||||
MydoJobDetail mydoJobDetailOld = mydoJobDetailService.selectMydoJobDetailByJobDetailId(mydoJobDetail.getJobDetailId());
|
||||
BigDecimal oldPickQuantity = Convert.toBigDecimal(mydoJobDetailOld.getPickQuantity());
|
||||
BigDecimal newPickQuantity = Convert.toBigDecimal(mydoJobDetail.getPickQuantity());
|
||||
mydoJobDetailOld.setPickQuantity(oldPickQuantity.add(newPickQuantity).toString());
|
||||
mydoJobDetailService.updateMydoJobDetail(mydoJobDetailOld);
|
||||
//修改拣选数量
|
||||
//MydoJobDetail mydoJobDetailOld = mydoJobDetailService.selectMydoJobDetailByJobDetailId(mydoJobDetail.getJobDetailId());
|
||||
/*BigDecimal oldPickQuantity = Convert.toBigDecimal(mydoJobDetailOld.getPickQuantity());
|
||||
BigDecimal newPickQuantity = Convert.toBigDecimal(mydoJobDetail.getOutQuantity());*/
|
||||
mydoJobDetail.setPickQuantity(mydoJobDetail.getOutQuantity());
|
||||
mydoJobDetailService.updateMydoJobDetail(mydoJobDetail);
|
||||
//修改电子标签
|
||||
TagTask param = new TagTask();
|
||||
param.setJobDetailId(mydoJobDetail.getJobDetailId());
|
||||
@@ -279,13 +281,13 @@ public class PdaServiceImp implements PdaService {
|
||||
if (CollUtil.isNotEmpty(tagTasks)) {
|
||||
TagTask tagTask = tagTasks.get(0);
|
||||
BigDecimal num = Convert.toBigDecimal(tagTask.getNum());
|
||||
if (num.compareTo(newPickQuantity) == 0){
|
||||
tagTask.setStatus("2");
|
||||
tagTaskService.updateTagTask(tagTask);
|
||||
}else {
|
||||
/*if (num.compareTo(newPickQuantity) == 0){*/
|
||||
tagTask.setStatus("2");
|
||||
tagTaskService.updateTagTask(tagTask);
|
||||
/*}else {
|
||||
tagTask.setNum(num.subtract(newPickQuantity).toString());
|
||||
tagTaskService.updateTagTask(tagTask);
|
||||
}
|
||||
}*/
|
||||
|
||||
}
|
||||
}
|
||||
@@ -312,44 +314,45 @@ public class PdaServiceImp implements PdaService {
|
||||
|
||||
/**
|
||||
* 处理正常出库
|
||||
*
|
||||
* @param trayCodeMakeSure
|
||||
* @param mydoJobDetailList
|
||||
* @param mydoJob
|
||||
* @return
|
||||
*/
|
||||
private AjaxResult handleOutType1(TrayCodeMakeSure trayCodeMakeSure,List<MydoJobDetail> mydoJobDetailList,MydoJob mydoJob) {
|
||||
private AjaxResult handleOutType1(TrayCodeMakeSure trayCodeMakeSure, List<MydoJobDetail> mydoJobDetailList, MydoJob mydoJob) {
|
||||
|
||||
|
||||
for (MydoJobDetail mydoJobDetail : mydoJobDetailList) {
|
||||
|
||||
//修改拣选数量
|
||||
MydoJobDetail mydoJobDetailOld = mydoJobDetailService.selectMydoJobDetailByJobDetailId(mydoJobDetail.getJobDetailId());
|
||||
BigDecimal oldPickQuantity = Convert.toBigDecimal(mydoJobDetailOld.getPickQuantity());
|
||||
BigDecimal newPickQuantity = Convert.toBigDecimal(mydoJobDetail.getPickQuantity());
|
||||
mydoJobDetailOld.setPickQuantity(oldPickQuantity.add(newPickQuantity).toString());
|
||||
mydoJobDetailService.updateMydoJobDetail(mydoJobDetailOld);
|
||||
//MydoJobDetail mydoJobDetailOld = mydoJobDetailService.selectMydoJobDetailByJobDetailId(mydoJobDetail.getJobDetailId());
|
||||
/*BigDecimal oldPickQuantity = Convert.toBigDecimal(mydoJobDetailOld.getPickQuantity());
|
||||
BigDecimal newPickQuantity = Convert.toBigDecimal(mydoJobDetail.getOutQuantity());*/
|
||||
mydoJobDetail.setPickQuantity(mydoJobDetail.getOutQuantity());
|
||||
mydoJobDetailService.updateMydoJobDetail(mydoJobDetail);
|
||||
|
||||
OutPickSubmit outPickSubmitParam = new OutPickSubmit();
|
||||
//outPickSubmitParam.setJobId(mydoJob.getJobId());
|
||||
//outPickSubmitParam.setJobDetailId(mydoJobDetail.getJobDetailId());
|
||||
outPickSubmitParam.setTrayCode(trayCodeMakeSure.getTrayCode());
|
||||
List<OutPickSubmit> outPickSubmits = outPickSubmitService.selectOutPickSubmitList(outPickSubmitParam);
|
||||
if (outPickSubmits.isEmpty()){
|
||||
if (outPickSubmits.isEmpty()) {
|
||||
//存入中间表
|
||||
OutPickSubmit outPickSubmit = new OutPickSubmit();
|
||||
outPickSubmit.setJobId(mydoJob.getJobId());
|
||||
outPickSubmit.setJobDetailId(mydoJobDetail.getJobDetailId());
|
||||
outPickSubmit.setProductId(mydoJobDetail.getProductId());
|
||||
outPickSubmit.setQuantit(mydoJobDetail.getPickQuantity());
|
||||
outPickSubmit.setQuantit(mydoJobDetail.getOutQuantity());
|
||||
outPickSubmit.setTrayCode(trayCodeMakeSure.getTrayCode());
|
||||
outPickSubmitService.insertOutPickSubmit(outPickSubmit);
|
||||
}else {
|
||||
} else {
|
||||
OutPickSubmit oldOutPickSubmit = outPickSubmits.get(0);
|
||||
oldOutPickSubmit.setQuantit(Convert.toBigDecimal(oldOutPickSubmit.getQuantit()).add(Convert.toBigDecimal(mydoJobDetail.getPickQuantity())).toString());
|
||||
outPickSubmitService.updateOutPickSubmit(oldOutPickSubmit);
|
||||
}
|
||||
//修改单据实际数量
|
||||
String inOrOutDId = mydoJobDetailOld.getInOrOutDId();
|
||||
String inOrOutDId = mydoJobDetail.getInOrOutDId();
|
||||
OutStockoutDetail outStockoutDetail = outStockoutDetailService.selectOutStockoutDetailByStockoutDetailId(inOrOutDId);
|
||||
outStockoutDetail.setAssignNum(outStockoutDetail.getAssignNum().add(Convert.toBigDecimal(mydoJobDetail.getPickQuantity())));
|
||||
outStockoutDetailService.updateOutStockoutDetail(outStockoutDetail);
|
||||
@@ -386,14 +389,13 @@ public class PdaServiceImp implements PdaService {
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public AjaxResult checkMakeSure(TrayCodeMakeSure trayCodeMakeSure) {
|
||||
List<MydoJobDetail> mydoJobDetailList = trayCodeMakeSure.getMydoJobDetailList();
|
||||
if(CollUtil.isNotEmpty(mydoJobDetailList)){
|
||||
if (CollUtil.isNotEmpty(mydoJobDetailList)) {
|
||||
boolean flag = mydoJobDetailList.stream().anyMatch(x -> StrUtil.isEmpty(x.getStockId()) && "0".equals(x.getInQuantity()));
|
||||
if (flag){
|
||||
if (flag) {
|
||||
return AjaxResult.warn("新增库存,存在为0的数量");
|
||||
}
|
||||
for (MydoJobDetail mydoJobDetail : mydoJobDetailList) {
|
||||
@@ -420,9 +422,9 @@ public class PdaServiceImp implements PdaService {
|
||||
map.put("v_tray_code", trayCodeMakeSure.getTrayCode());
|
||||
pdaMapper.checkMakeSure(map);
|
||||
String result = map.get("v_result").toString();
|
||||
if("10".equals(result)){
|
||||
if ("10".equals(result)) {
|
||||
return AjaxResult.success(map.get("v_resultmsg").toString());
|
||||
}else{
|
||||
} else {
|
||||
return AjaxResult.warn(map.get("v_resultmsg").toString());
|
||||
}
|
||||
}
|
||||
@@ -470,7 +472,7 @@ public class PdaServiceImp implements PdaService {
|
||||
//自动分配
|
||||
return outStockoutService.autoAllot(stockOutId);
|
||||
} else {
|
||||
throw new RuntimeException(map.get("v_resultmsg").toString());
|
||||
throw new RuntimeException(map.get("v_resultmsg").toString());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -512,17 +514,17 @@ public class PdaServiceImp implements PdaService {
|
||||
//判断details中的数量是否都为0
|
||||
if (CollUtil.isNotEmpty(basContainer.getDetails())) {
|
||||
for (BasContainerDetails detail : basContainer.getDetails()) {
|
||||
//如果存在数量不为0的
|
||||
//如果存在数量不为0的
|
||||
if (detail.getQuantity() != 0) {
|
||||
|
||||
if(StrUtil.isEmpty(basContainer.getSpare1())){
|
||||
if (StrUtil.isEmpty(basContainer.getSpare1())) {
|
||||
return AjaxResult.warn("请选择退料仓库");
|
||||
}
|
||||
//去ctu库站点
|
||||
BasProductPort basProductPort = new BasProductPort();
|
||||
basProductPort.setWarehouseId(basContainer.getSpare1());
|
||||
List<BasProductPort> basProductPorts = basProductPortMapper.selectBasProductPortList(basProductPort);
|
||||
endPoint=basProductPorts.get(0).getId();
|
||||
endPoint = basProductPorts.get(0).getId();
|
||||
|
||||
}
|
||||
|
||||
@@ -555,13 +557,26 @@ public class PdaServiceImp implements PdaService {
|
||||
if (space.getStatus() != null) {
|
||||
String statusName;
|
||||
switch (Integer.parseInt(space.getStatus())) {
|
||||
case 1: statusName = "空货位"; break;
|
||||
case 2: statusName = "满货位"; break;
|
||||
case 3: statusName = "入库分配"; break;
|
||||
case 4: statusName = "出库分配"; break;
|
||||
case 5: statusName = "入库需盘点"; break;
|
||||
case 6: statusName = "出库需盘点"; break;
|
||||
default: continue;
|
||||
case 1:
|
||||
statusName = "空货位";
|
||||
break;
|
||||
case 2:
|
||||
statusName = "满货位";
|
||||
break;
|
||||
case 3:
|
||||
statusName = "入库分配";
|
||||
break;
|
||||
case 4:
|
||||
statusName = "出库分配";
|
||||
break;
|
||||
case 5:
|
||||
statusName = "入库需盘点";
|
||||
break;
|
||||
case 6:
|
||||
statusName = "出库需盘点";
|
||||
break;
|
||||
default:
|
||||
continue;
|
||||
}
|
||||
statusCount.put(statusName, statusCount.getOrDefault(statusName, 0) + 1);
|
||||
}
|
||||
@@ -594,17 +609,17 @@ public class PdaServiceImp implements PdaService {
|
||||
mydoJob1.setInOut("2");
|
||||
List<MydoJob> mydoJobs1 = mydoJobFinishMapper.selectMydoJobFinishListByMydoJob(mydoJob1);
|
||||
|
||||
map.put("in",mydoJobs.size());
|
||||
map.put("out",mydoJobs1.size());
|
||||
map.put("in", mydoJobs.size());
|
||||
map.put("out", mydoJobs1.size());
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
public AjaxResult bindContainer(TrayCodeMakeSure trayCodeMakeSure) {
|
||||
if (CollUtil.isEmpty(trayCodeMakeSure.getMydoJobDetailList())){
|
||||
if (CollUtil.isEmpty(trayCodeMakeSure.getMydoJobDetailList())) {
|
||||
return AjaxResult.warn("请选择提供绑定数量");
|
||||
}
|
||||
if (StrUtil.isEmpty(trayCodeMakeSure.getContainerCode())){
|
||||
if (StrUtil.isEmpty(trayCodeMakeSure.getContainerCode())) {
|
||||
return AjaxResult.warn("请选择绑定容器");
|
||||
}
|
||||
for (MydoJobDetail mydoJobDetail : trayCodeMakeSure.getMydoJobDetailList()) {
|
||||
@@ -613,11 +628,11 @@ public class PdaServiceImp implements PdaService {
|
||||
basContainerDetailsParam.setContainerId(trayCodeMakeSure.getContainerCode());
|
||||
basContainerDetailsParam.setProductId(mydoJobDetail.getProductId());
|
||||
List<BasContainerDetails> basContainerDetails = basContainerDetailsService.selectBasContainerDetailsList(basContainerDetailsParam);
|
||||
if (CollUtil.isNotEmpty(basContainerDetails)){
|
||||
if (CollUtil.isNotEmpty(basContainerDetails)) {
|
||||
BasContainerDetails oldBasContainerDetails = basContainerDetails.get(0);
|
||||
oldBasContainerDetails.setQuantity(oldBasContainerDetails.getQuantity()+Convert.toLong(mydoJobDetail.getPickBindQuantity()));
|
||||
oldBasContainerDetails.setQuantity(oldBasContainerDetails.getQuantity() + Convert.toLong(mydoJobDetail.getPickBindQuantity()));
|
||||
basContainerDetailsService.updateBasContainerDetails(oldBasContainerDetails);
|
||||
}else {
|
||||
} else {
|
||||
BasContainerDetails newBasContainerDetails = new BasContainerDetails();
|
||||
newBasContainerDetails.setContainerId(trayCodeMakeSure.getContainerCode());
|
||||
newBasContainerDetails.setProductId(mydoJobDetail.getProductId());
|
||||
@@ -632,12 +647,12 @@ public class PdaServiceImp implements PdaService {
|
||||
List<OutPickSubmit> outPickSubmits = outPickSubmitService.selectOutPickSubmitList(outPickSubmitParam);
|
||||
for (OutPickSubmit outPickSubmit : outPickSubmits) {
|
||||
BigDecimal subtract = Convert.toBigDecimal(outPickSubmit.getQuantit()).subtract(Convert.toBigDecimal(mydoJobDetail.getPickBindQuantity()));
|
||||
if (subtract.compareTo(BigDecimal.ZERO) == 0){
|
||||
if (subtract.compareTo(BigDecimal.ZERO) == 0) {
|
||||
//删除缓存信息
|
||||
outPickSubmitService.deleteOutPickSubmitById(outPickSubmit.getId());
|
||||
}else if (subtract.compareTo(BigDecimal.ZERO) < 0){
|
||||
} else if (subtract.compareTo(BigDecimal.ZERO) < 0) {
|
||||
return AjaxResult.warn("绑定数量不能大于实际数量");
|
||||
}else {
|
||||
} else {
|
||||
outPickSubmit.setQuantit(subtract.toString());
|
||||
outPickSubmitService.updateOutPickSubmit(outPickSubmit);
|
||||
}
|
||||
|
||||
@@ -284,6 +284,7 @@ public class ReceiveStockinServiceImpl implements IReceiveStockinService
|
||||
// 设置状态等默认值
|
||||
inStockin.setStatus("1");
|
||||
inStockin.setSpare1(receiveStockin.getStockinId());
|
||||
inStockin.setDepartmentNo(Convert.toStr(SecurityUtils.getDeptId()));
|
||||
return inStockin;
|
||||
}
|
||||
|
||||
|
||||
@@ -92,6 +92,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
${params.warehouseDataScope}
|
||||
</if>
|
||||
</where>
|
||||
order by mj.create_time desc
|
||||
</select>
|
||||
|
||||
<select id="selectMydoJobByJobId" parameterType="String" resultMap="MydoJobResult">
|
||||
|
||||
@@ -167,4 +167,31 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
)
|
||||
}
|
||||
</select>
|
||||
<select id="selectOutStockoutByStockoutId" resultMap="OutStockoutResult">
|
||||
select distinct o.stockout_guid,
|
||||
o.stockout_id,
|
||||
o.out_type,
|
||||
o.create_date,
|
||||
o.department_no,
|
||||
o.customer_no,
|
||||
o.create_man_id,
|
||||
o.status,
|
||||
o.stockout_source,
|
||||
o.warehouse_id,
|
||||
o.class_now_id,
|
||||
o.exit_id,
|
||||
o.car_number,
|
||||
o.FID,
|
||||
o.erp_stockout_id,
|
||||
o.start_date,
|
||||
o.finish_date,
|
||||
bw.warehouse_name,
|
||||
bc.customer_name
|
||||
from out_stockout o
|
||||
left join bas_warehouse bw on bw.warehouse_id = o.warehouse_id
|
||||
left join bas_customer bc on bc.customer_no = o.customer_no
|
||||
left join out_stockout_detail d on d.stockout_id = o.stockout_id
|
||||
left join bas_product bp on bp.product_id = d.product_id
|
||||
where o.stockout_id = #{stockoutId}
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
Reference in New Issue
Block a user