rev:出入库修改

This commit is contained in:
2025-06-12 18:07:05 +08:00
parent 303de4e95c
commit 68b6c66761
9 changed files with 45 additions and 10 deletions

View File

@@ -3,6 +3,8 @@ package org.nl.wms.pda.ios_manage.service.impl;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import org.nl.common.exception.BadRequestException;
import org.nl.wms.basedata_manage.service.IStructattrService;
import org.nl.wms.basedata_manage.service.dao.Structattr;
@@ -160,6 +162,13 @@ public class PdaIosOutServiceImpl implements PdaIosOutService {
attrDao.setLock_type(IOSEnum.LOCK_TYPE.code("入库锁"));
attrDao.setTaskdtl_id(task_id);
iStructattrService.updateById(attrDao);
// 更新起点绑定id
iSchBasePointService.update(
new UpdateWrapper<SchBasePoint>().lambda()
.set(SchBasePoint::getIos_id, null)
.eq(SchBasePoint::getPoint_code, pointDao.getPoint_code())
);
}
return PdaResponse.requestOk();
}

View File

@@ -5,6 +5,7 @@ import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.CodeUtil;
import org.nl.common.utils.SecurityUtils;
import org.nl.config.IdUtil;
import org.nl.wms.basedata_manage.service.IStructattrService;
@@ -53,7 +54,7 @@ public class BackInTask extends AbstractTask {
public String create(JSONObject json) {
SchBaseTask task = new SchBaseTask();
task.setTask_id(IdUtil.getStringId());
task.setTask_code(IdUtil.getStringId());
task.setTask_code(CodeUtil.getNewCode("TASK_CODE"));
task.setTask_status(TaskStatus.CREATE.getCode());
task.setConfig_code(json.getString("config_code"));
task.setPoint_code1(json.getString("point_code1"));

View File

@@ -5,6 +5,7 @@ import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.CodeUtil;
import org.nl.common.utils.SecurityUtils;
import org.nl.config.IdUtil;
import org.nl.wms.sch_manage.enums.TaskStatus;
@@ -51,7 +52,7 @@ public class MoveTask extends AbstractTask {
public String create(JSONObject json) {
SchBaseTask task = new SchBaseTask();
task.setTask_id(IdUtil.getStringId());
task.setTask_code(IdUtil.getStringId());
task.setTask_code(CodeUtil.getNewCode("TASK_CODE"));
task.setTask_status(TaskStatus.CREATE.getCode());
task.setConfig_code(json.getString("config_code"));
task.setPoint_code1(json.getString("point_code1"));

View File

@@ -5,6 +5,7 @@ import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.CodeUtil;
import org.nl.common.utils.SecurityUtils;
import org.nl.config.IdUtil;
import org.nl.wms.basedata_manage.service.IStructattrService;
@@ -53,7 +54,7 @@ public class PdaPointTask extends AbstractTask {
public String create(JSONObject json) {
SchBaseTask task = new SchBaseTask();
task.setTask_id(IdUtil.getStringId());
task.setTask_code(IdUtil.getStringId());
task.setTask_code(CodeUtil.getNewCode("TASK_CODE"));
task.setTask_status(TaskStatus.CREATE.getCode());
task.setConfig_code(json.getString("config_code"));
task.setPoint_code1(json.getString("point_code1"));

View File

@@ -114,7 +114,7 @@ public class StInTask extends AbstractTask {
}
rawAssistIStorService.taskFinish(taskObj);
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
taskObj.setRemark("完成");
taskObj.setRemark("完成");
taskService.updateById(taskObj);
}
@@ -138,10 +138,10 @@ public class StInTask extends AbstractTask {
@Transactional(rollbackFor = Exception.class)
public void finishTask(SchBaseTask taskObj) {
// 任务完成
rawAssistIStorService.taskFinish(taskObj);
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
taskObj.setRemark("完成");
taskObj.setRemark("完成");
taskService.updateById(taskObj);
rawAssistIStorService.taskFinish(taskObj);
}
@Transactional(rollbackFor = Exception.class)

View File

@@ -132,10 +132,10 @@ public class StOutTask extends AbstractTask {
@Transactional(rollbackFor = Exception.class)
public void finishTask(SchBaseTask taskObj) {
// 任务完成
outBillService.taskFinish(taskObj);
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
taskObj.setRemark("完成");
taskObj.setRemark("完成");
taskService.updateById(taskObj);
outBillService.taskFinish(taskObj);
}
@Transactional(rollbackFor = Exception.class)

View File

@@ -8,6 +8,7 @@ import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -27,6 +28,8 @@ import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleext;
import org.nl.wms.basedata_manage.service.dao.Structattr;
import org.nl.wms.basedata_manage.service.dao.mapper.MdPbStoragevehicleextMapper;
import org.nl.wms.basedata_manage.service.dto.MdPbStoragevehicleextDto;
import org.nl.wms.sch_manage.enums.TaskStatus;
import org.nl.wms.sch_manage.service.ISchBaseTaskService;
import org.nl.wms.sch_manage.service.dao.SchBasePoint;
import org.nl.wms.sch_manage.service.dao.SchBaseTask;
import org.nl.wms.sch_manage.service.dao.mapper.SchBasePointMapper;
@@ -52,6 +55,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
/**
* @author dsh
@@ -78,6 +82,12 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
@Resource
private MdPbStoragevehicleextMapper mdPbStoragevehicleextMapper;
/**
* 任务服务
*/
@Resource
private ISchBaseTaskService iSchBaseTaskService;
@Resource
private IBsrealStorattrService iBsrealStorattrService;
@@ -1058,6 +1068,19 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
.eq(IOStorInvDis::getIostorinv_id,whereJson.get("iostorinv_id"))
);
// 判断此单据下的所有任务有没有完成的
boolean is_finish = iSchBaseTaskService.list(
new QueryWrapper<SchBaseTask>().lambda()
.in(SchBaseTask::getTask_id, storInvDisList.stream()
.map(IOStorInvDis::getTask_id)
.collect(Collectors.toList())
)
).stream()
.allMatch(row -> row.getTask_status().equals(TaskStatus.FINISHED.getCode()));
if (!is_finish) {
throw new BadRequestException("当前有未完成的任务不能强制确认!");
}
//需要更新的出入库单明细
Set<String> dtlSet = new HashSet<>();
@@ -1162,7 +1185,6 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
// 完成当前分配明细
ioStorInvDisMapper.update(ioStorInvDis,new LambdaUpdateWrapper<>(IOStorInvDis.class)
.set(IOStorInvDis::getWork_status,IOSEnum.INBILL_DIS_STATUS.code("完成"))
.set(IOStorInvDis::getReal_qty,ioStorInvDis.getPlan_qty())
.eq(IOStorInvDis::getIostorinvdis_id,ioStorInvDis.getIostorinvdis_id())
);
@@ -1217,7 +1239,6 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
// 如果分配明细全部完成则更新明细表状态
if (countDis == 0){
// 更新明细表状态
ioStorInvDtl.setReal_qty(ioStorInvDis.getPlan_qty());
ioStorInvDtl.setBill_status(IOSEnum.BILL_STATUS.code("完成"));
ioStorInvDtlMapper.updateById(ioStorInvDtl);

View File

@@ -209,6 +209,7 @@
</el-table-column>
<el-table-column prop="material_code" label="物料编码" width="150px" :min-width="flexWidth('material_code',crud.data,'物料编码')" />
<el-table-column prop="material_name" label="物料名称" width="170px" :min-width="flexWidth('material_name',crud.data,'物料名称')" />
<el-table-column prop="storagevehicle_code" label="载具号" width="150px" :min-width="flexWidth('storagevehicle_code',crud.data,'载具号')" />
<el-table-column prop="pcsn" label="批次号" width="150px" :min-width="flexWidth('pcsn',crud.data,'批次号')" />
<el-table-column show-overflow-tooltip prop="plan_qty" label="出库重量" :formatter="crud.formatNum3" align="center" width="120px" :min-width="flexWidth('plan_qty',crud.data,'出库重量')">
<template scope="scope">

View File

@@ -155,6 +155,7 @@
>
<el-table-column min-width="120" show-overflow-tooltip prop="material_code" label="物料编码" align="center" />
<el-table-column min-width="120" show-overflow-tooltip prop="material_name" label="物料名称" align="center" />
<el-table-column prop="storagevehicle_code" label="载具号" width="150px" :min-width="flexWidth('storagevehicle_code',crud.data,'载具号')" />
<el-table-column prop="pcsn" label="批次号" align="center" show-overflow-tooltip />
<el-table-column prop="plan_qty" :formatter="crud.formatNum3" label="重量" align="center" />
<el-table-column prop="struct_code" label="仓位" align="center" show-overflow-tooltip />