rev:成品出库取消分配校验

This commit is contained in:
zhangzhiqiang
2023-08-21 18:06:00 +08:00
parent 626f7b7aad
commit 4ce0359d16
3 changed files with 27 additions and 11 deletions

View File

@@ -17,6 +17,7 @@ import org.jetbrains.annotations.NotNull;
import org.nl.common.TableDataInfo;
import org.nl.common.domain.query.PageQuery;
import org.nl.common.enums.AcsTaskEnum;
import org.nl.common.enums.StatusEnum;
import org.nl.common.publish.BussEventMulticaster;
import org.nl.common.publish.event.PointEvent;
import org.nl.common.utils.IdUtil;
@@ -342,10 +343,16 @@ public class StIvtIostorinvCpOutServiceImpl extends ServiceImpl<StIvtIostorinvCp
// 判断是否有已经有正在执行中的任务
boolean is_create_task = disDaoList.stream()
.anyMatch(row -> Integer.parseInt(row.getWork_status()) > Integer.parseInt(IOSEnum.WORK_STATUS.code("生成")));
if (is_create_task) throw new BadRequestException("任务已执行或已完成,不可取消!");
.anyMatch(row -> Integer.parseInt(row.getWork_status()) > Integer.parseInt(IOSEnum.WORK_STATUS.code("执行中")));
if (is_create_task) throw new BadRequestException("单据已完成,不可取消!");
List<String> collect = disDaoList.stream().map(StIvtIostorinvdisCp::getTask_id).collect(Collectors.toList());
List<SchBaseTask> tasks = iSchBaseTaskService.list(new QueryWrapper<SchBaseTask>()
.lt("task_status", StatusEnum.TASK_CANNEL.getCode())
.in("task_id", collect));
if (!CollectionUtils.isEmpty(tasks)){
throw new BadRequestException("搬运:"+tasks.stream().map(SchBaseTask::getTask_code).collect(Collectors.joining(","))+"任务以生成,不可取消!请先取消任务再操作");
}
// 2.更新库存,删除任务
for (StIvtIostorinvdisCp disDao : disDaoList) {
// 更新库存、更新仓位
@@ -370,6 +377,7 @@ public class StIvtIostorinvCpOutServiceImpl extends ServiceImpl<StIvtIostorinvCp
dtlDao.setBill_status(IOSEnum.BILL_STATUS.code("生成"));
dtlDao.setAssign_qty(BigDecimal.valueOf(0));
dtlDao.setUnassign_qty(dtlDao.getReal_qty());
dtlDao.setRemark_ext("");
iostorinvdtlCpService.updateById(dtlDao);
@@ -385,7 +393,7 @@ public class StIvtIostorinvCpOutServiceImpl extends ServiceImpl<StIvtIostorinvCp
dtlDao.setBill_status(IOSEnum.BILL_STATUS.code("生成"));
dtlDao.setAssign_qty(BigDecimal.valueOf(0));
dtlDao.setUnassign_qty(dtlDao.getReal_qty());
dtlDao.setRemark_ext("");
iostorinvdtlCpService.updateById(dtlDao);
}
@@ -865,9 +873,17 @@ public class StIvtIostorinvCpOutServiceImpl extends ServiceImpl<StIvtIostorinvCp
);
} if (status.equals(AcsTaskEnum.STATUS_CANNEL.getCode())) {
// 取消任务
JSONObject param = new JSONObject();
param.put("iostorinvdis_id",disDao.getIostorinvdis_id());
delTask(param);
// 1.删除任务
iSchBaseTaskService.update(
new UpdateWrapper<SchBaseTask>().lambda()
.set(SchBaseTask::getTask_status,TaskStatusEnum.CANCEL.getCode())
.eq(SchBaseTask::getTask_id, task_id)
);
if (disDao!=null){
JSONObject param = new JSONObject();
param.put("iostorinvdis_id",disDao.getIostorinvdis_id());
delTask(param);
}
// 更新发货点位
iSchBasePointService.update(

View File

@@ -22,7 +22,7 @@ spring:
druid:
db-type: com.alibaba.druid.pool.DruidDataSource
driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
url: jdbc:log4jdbc:mysql://${DB_HOST:192.168.46.5}:${DB_PORT:3306}/${DB_NAME:hl_one_mes}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true&useSSL=false
url: jdbc:log4jdbc:mysql://${DB_HOST:192.168.46.5}:${DB_PORT:3306}/${DB_NAME:hl_one_lms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true&useSSL=false
# url: jdbc:log4jdbc:mysql://${DB_HOST:localhost}:${DB_PORT:3306}/${DB_NAME:hl_one_mes}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true&useSSL=false
username: ${DB_USER:root}
# password: ${DB_PWD:123456}

View File

@@ -11,7 +11,7 @@
<span slot="title" class="dialog-footer">
<div class="crud-opts2">
<span class="el-dialog__title2">库单任务操作</span>
<span class="el-dialog__title2">库单任务操作</span>
<span class="crud-opts-right2">
<!--左侧插槽-->
<slot name="left" />
@@ -20,7 +20,7 @@
</div>
</span>
<div class="crud-opts2">
<span class="role-span">库单据明细项</span>
<span class="role-span">库单据明细项</span>
</div>
<el-card class="box-card" shadow="never" :body-style="{padding:'0'}">
<!--表格渲染-->
@@ -54,7 +54,7 @@
</el-form>
</el-card>-->
<div class="crud-opts2">
<span class="role-span">库单据任务项</span>
<span class="role-span">库单据任务项</span>
<span class="crud-opts-right2">
<!--左侧插槽-->
<slot name="left" />