1. 增加kitting备注的显示。

2. 增加outs的更新。
This commit is contained in:
梁州 2025-05-20 17:02:34 +08:00
parent d5cdf23197
commit 60ca631acb
13 changed files with 186 additions and 16 deletions

View File

@ -62,14 +62,14 @@
<el-table-column prop="requestTime" label="请求时间" :formatter="timeFormat" min-width="120px"
sortable="custom"
show-overflow-tooltip/>
<!-- <el-table-column fixed="right" label="操作" width="170px">
<el-table-column fixed="right" label="操作" width="170px">
<template v-slot="scope">
<div style="display: inline-block; align-content: center;">
<el-button type="primary"
@click="editCurrentRowFormEntity(scope.row)">编辑</el-button>
</div>
</template>
</el-table-column> -->
</el-table-column>
</el-table>
<br/>
<el-pagination v-model:current-page="baseTableQuery.currentPage"

View File

@ -22,6 +22,11 @@
:value="item"/>
</el-select>
</el-form-item>
<el-form-item label="K料备注" prop="kittingRemark"
v-if="workFormEntity.kittingRemark !== '' && workFormEntity.kittingRemark !== null && workFormEntity.kittingRemark !== undefined">
<el-input v-model="workFormEntity.kittingRemark" placeholder="K料备注"
:input-style="{'color':'red'}" readonly/>
</el-form-item>
<el-form-item label="原始成品号" prop="productIdOrigin">
<el-input v-model="workFormEntity.productIdOrigin" placeholder="原始成品号" disabled/>
</el-form-item>
@ -96,6 +101,10 @@
<el-form-item label="料盒号" prop="boxNo">
<el-input v-model="confirmEntity.boxNo" disabled/>
</el-form-item>
<el-form-item label="K料备注" prop="kittingRemark">
<el-input v-model="confirmEntity.kittingRemark"
:input-style="{'color': 'red'}" readonly/>
</el-form-item>
<el-form-item label="计划拣选数量" prop="planPickQty">
<el-input v-model="confirmEntity.planPickQty" disabled/>
</el-form-item>
@ -260,7 +269,8 @@ let workFormEntity = reactive({
singleProductId: '',
boxNo: '',
goodsId: '',
planStartDate: null
planStartDate: null,
kittingRemark: ''
})
let workFormQuery = reactive({
workOrder: '',
@ -337,6 +347,7 @@ watch(() => workFormEntity.workOrder, (newVal, oldVal) => {
workFormEntity.singleProductId = ''
workFormEntity.boxNo = ''
workFormEntity.goodsId = ''
workFormEntity.kittingRemark = ''
}
})
watch(() => workFormEntity.productId, (newVal, oldVal) => {
@ -389,6 +400,7 @@ const initWorkOptions = () => {
//
workFormEntity.productIdOrigin = response.data.productIdOrigin
workFormEntity.productId = response.data.productId
workFormEntity.kittingRemark = response.data.kittingRemark
workOptions.singleProductId = response.data.singleProductId
workOptions.boxNo = response.data.boxNo
workOptions.goodsId = response.data.goodsId
@ -397,6 +409,7 @@ const initWorkOptions = () => {
//
workFormEntity.productIdOrigin = ''
workFormEntity.productId = ''
workFormEntity.kittingRemark = ''
workOptions.singleProductId = []
workOptions.boxNo = []
workOptions.goodsId = []
@ -420,6 +433,7 @@ const resetWorkFormQuery = () => {
workFormEntity.singleProductId = ''
workFormEntity.boxNo = ''
workFormEntity.goodsId = ''
workFormEntity.kittingRemark = ''
}
//
const confirmStart = () => {
@ -506,6 +520,7 @@ const getWork = () => {
confirmEntity.goodsId = response.data.orderConfirm.goodsId
confirmEntity.planPickQty = response.data.orderConfirm.planPickQty
confirmEntity.realPickQty = response.data.orderConfirm.realPickQty
confirmEntity.kittingRemark = response.data.orderConfirm.kittingRemark
confirmEntity.stockId = response.data.stockConfirm.stockId
confirmEntity.vehicleId = response.data.stockConfirm.vehicleId
confirmEntity.planRemainQty = response.data.stockConfirm.planRemainQty
@ -528,11 +543,13 @@ const getWork = () => {
confirmEntity.boxNo = response.data.orderConfirm.boxNo
confirmEntity.productId = response.data.orderConfirm.productId
confirmEntity.singleProductId = response.data.orderConfirm.singleProductId
confirmEntity.kittingRemark = response.data.orderConfirm.kittingRemark
} else {
confirmEntity.workOrder = ''
confirmEntity.boxNo = ''
confirmEntity.productId = ''
confirmEntity.singleProductId = ''
confirmEntity.kittingRemark = ''
}
}
}).catch(err => {
@ -624,6 +641,7 @@ const resetConfirmEntity = () => {
confirmEntity.planPickQty = null
confirmEntity.realPickQty = null
confirmEntity.stockId = ''
confirmEntity.kittingRemark = ''
confirmEntity.vehicleId = ''
confirmEntity.planRemainQty = null
confirmEntity.realRemainQty = null

View File

@ -52,4 +52,9 @@ public class OrderConfirmEntity {
*/
@JsonProperty("realPickQty")
private Integer realPickQty;
/**
* 拣选备注
*/
@JsonProperty("kittingRemark")
private String kittingRemark;
}

View File

@ -0,0 +1,30 @@
package com.wms_main.model.dto.request.wms;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
/**
* 出库单更新请求
*/
@EqualsAndHashCode(callSuper = true)
@Data
@AllArgsConstructor
@NoArgsConstructor
public class OutsUpdateRequest extends BaseWmsRequest {
/**
* 任务号
*/
@JsonProperty("taskId")
private String taskId;
/**
* 更新类型
* 1: 取消
* 2: 完成
* 3: 重置
*/
@JsonProperty("updateType")
private Integer updateType;
}

View File

@ -92,4 +92,10 @@ public class TAppStandWork {
*/
@TableField(value = "put_area")
private String putArea;
/**
* 备注
* 主要用于标识ECN
*/
@TableField(value = "kitting_remark")
private String kittingRemark;
}

View File

@ -113,4 +113,10 @@ public class TAppWork {
*/
@TableField(value = "product_type")
private Integer productType;
/**
* 备注
* 用于ECN相关
*/
@TableField(value = "kitting_remark")
private String kittingRemark;
}

View File

@ -105,4 +105,10 @@ public class TAppWorkRecord {
*/
@TableField(value = "product_type")
private Integer productType;
/**
* 备注
* 用于ECN相关
*/
@TableField(value = "kitting_remark")
private String kittingRemark;
}

View File

@ -50,4 +50,10 @@ public class KateWorkOptionsVo {
*/
@JsonProperty("goodsId")
private List<String> goodsId = Collections.emptyList();
/**
* 备注
* 主要用于ECN
*/
@JsonProperty("kittingRemark")
private String kittingRemark = "";
}

View File

@ -347,7 +347,8 @@ public class ConveyTaskServiceImpl implements IConveyTaskService {
thisWork.getGoodsId(),
thisWork.getBoxNo(),
planPickQty,
planPickQty
planPickQty,
thisWork.getKittingRemark()
);
StockConfirmEntity stockConfirmVo = new StockConfirmEntity(
pickPlan.getPlanId(),

View File

@ -1,5 +1,6 @@
package com.wms_main.service.controller;
import com.wms_main.model.dto.request.wms.OutsUpdateRequest;
import com.wms_main.model.dto.request.wms.WmsTaskRequest;
import com.wms_main.model.dto.response.wms.BaseWmsApiResponse;
@ -20,4 +21,11 @@ public interface ITaskOperationControllerService {
* @return 更新结果
*/
BaseWmsApiResponse updateWmsTask(WmsTaskRequest wmsTaskRequest);
/**
* 更新出库表单---取消或者完成
* @param outsUpdateRequest 请求
* @return 结果
*/
BaseWmsApiResponse updateOutsTask(OutsUpdateRequest outsUpdateRequest);
}

View File

@ -103,6 +103,8 @@ public class KateWorkControllerServiceImpl implements IKateWorkControllerService
result.setProductIdOrigin(dbs.getProductIdOrigin());
// 设置过滤成品号
result.setProductId(dbs.getProductId());
// 设置备注
result.setKittingRemark(dbs.getKittingRemark());
if (!getWorkOptionsOfServicePieces(kateWorksQuery, dbs.getProductIdOrigin(), result)) {
if (getWorkOptionsOfNonServicePieces(kateWorksQuery, dbs.getProductId(), result)) {
result.setProductType(1);// 普通成品
@ -298,7 +300,8 @@ public class KateWorkControllerServiceImpl implements IKateWorkControllerService
thisStandWork.getGoodsId(),
thisStandWork.getBoxNo(),
thisStandWork.getPlanPickQty(),
thisStandWork.getRealPickQty()),
thisStandWork.getRealPickQty(),
thisStandWork.getKittingRemark()),
new StockConfirmEntity(
thisStandWork.getStockId(),
thisStandWork.getVehicleId(),
@ -1438,7 +1441,8 @@ public class KateWorkControllerServiceImpl implements IKateWorkControllerService
work.getGoodsId(),
work.getBoxNo(),
thisNeedNum,
thisNeedNum
thisNeedNum,
work.getKittingRemark()
);
// 查找到这个库外料
TAppGoods outGoods = new TAppGoods();
@ -1702,6 +1706,7 @@ public class KateWorkControllerServiceImpl implements IKateWorkControllerService
tempServiceProductWork.setIsOut(0);
}
tempServiceProductWork.setLackStatus(0);
tempServiceProductWork.setKittingRemark(dbs.getKittingRemark());// ECN备注
workList.add(tempServiceProductWork);
}
// 查询服务件是否包含单片
@ -1736,6 +1741,7 @@ public class KateWorkControllerServiceImpl implements IKateWorkControllerService
tempSingleServiceProductWork.setIsOut(0);
}
tempSingleServiceProductWork.setLackStatus(0);
tempSingleServiceProductWork.setKittingRemark(dbs.getKittingRemark());// ECN备注
workList.add(tempSingleServiceProductWork);
}
}
@ -1772,6 +1778,7 @@ public class KateWorkControllerServiceImpl implements IKateWorkControllerService
tempNonServiceProductWork.setIsOut(0);
}
tempNonServiceProductWork.setLackStatus(0);
tempNonServiceProductWork.setKittingRemark(dbs.getKittingRemark());// ECN备注
workList.add(tempNonServiceProductWork);
}
// 查询服务件是否包含单片
@ -1806,6 +1813,7 @@ public class KateWorkControllerServiceImpl implements IKateWorkControllerService
tempSingleNonServiceProductWork.setIsOut(0);
}
tempSingleNonServiceProductWork.setLackStatus(0);
tempSingleNonServiceProductWork.setKittingRemark(dbs.getKittingRemark());// ECN备注
workList.add(tempSingleNonServiceProductWork);
}
}

View File

@ -4,16 +4,11 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.wms_main.constant.enums.wcs.WcsStackerTaskStatusEnums;
import com.wms_main.constant.enums.wms.WmsStackerTaskStatusEnums;
import com.wms_main.dao.ITAppTaskBakService;
import com.wms_main.dao.ITAppTaskService;
import com.wms_main.dao.ITAppWcsTaskBakService;
import com.wms_main.dao.ITAppWcsTaskService;
import com.wms_main.dao.*;
import com.wms_main.model.dto.request.wms.OutsUpdateRequest;
import com.wms_main.model.dto.request.wms.WmsTaskRequest;
import com.wms_main.model.dto.response.wms.BaseWmsApiResponse;
import com.wms_main.model.po.TAppTask;
import com.wms_main.model.po.TAppTaskBak;
import com.wms_main.model.po.TAppWcsTask;
import com.wms_main.model.po.TAppWcsTaskBak;
import com.wms_main.model.po.*;
import com.wms_main.repository.utils.ConvertUtils;
import com.wms_main.repository.utils.StringUtils;
import com.wms_main.service.controller.ITaskOperationControllerService;
@ -34,9 +29,14 @@ public class TaskOperationControllerServiceImpl implements ITaskOperationControl
private final ITAppTaskBakService appTaskBakService;// wms任务记录服务
private final ITAppWcsTaskService appWcsTaskService;// wcs任务服务
private final ITAppWcsTaskBakService appWcsTaskBakService;// wcs任务记录服务
private final ITAppOutsService appOutsService;// 出库单服务
private final ITAppOutsRecordService appOutsRecordService;// 出库单记录服务
private final ITAppPickPlanService appPickPlanService;// 拣选计划服务
private final ITAppPickTaskService appPickTaskService;// 拣选任务服务
/**
* 删除wms任务
*
* @param wmsTaskRequest 请求参数
* @return 删除结果
*/
@ -60,6 +60,7 @@ public class TaskOperationControllerServiceImpl implements ITaskOperationControl
/**
* 更新wms任务
*
* @param wmsTaskRequest 请求参数
* @return 更新结果
*/
@ -176,9 +177,83 @@ public class TaskOperationControllerServiceImpl implements ITaskOperationControl
}
}
/**
* 更新当前的出库单任务---取消或者完成
*
* @param outsUpdateRequest 请求
* @return 处理结果
*/
@Override
@Transactional(rollbackFor = Exception.class)
public BaseWmsApiResponse updateOutsTask(OutsUpdateRequest outsUpdateRequest) {
// 校验参数
if (outsUpdateRequest == null) {
return BaseWmsApiResponse.error("请求参数不能为NULL。");
}
if (StringUtils.isEmpty(outsUpdateRequest.getTaskId())) {
return BaseWmsApiResponse.error("请求缺少任务号taskId。");
}
if (outsUpdateRequest.getUpdateType() == null) {
return BaseWmsApiResponse.error("请求缺少更新类型updateType。");
}
// 查询对应的出库单
TAppOuts targetOuts = appOutsService.getById(outsUpdateRequest.getTaskId());
if (targetOuts == null) {
return BaseWmsApiResponse.error("未查询到对应的出库单。");
}
// 查询对应的pickPlan
List<TAppPickPlan> pickPlansOfThisTask = appPickPlanService.list(new LambdaQueryWrapper<TAppPickPlan>()
.eq(TAppPickPlan::getWorkIndex, targetOuts.getTaskId()));
if (pickPlansOfThisTask != null && !pickPlansOfThisTask.isEmpty()) {
// 查询这些plan包含的拣选任务
List<TAppPickTask> pickTasksOfThisTask = appPickTaskService.list(new LambdaQueryWrapper<TAppPickTask>()
.eq(TAppPickTask::getPickStand, targetOuts.getDestination())
.in(TAppPickTask::getVehicleId, pickPlansOfThisTask.stream().map(TAppPickPlan::getVehicleId).distinct().toList()));
if (pickTasksOfThisTask != null && !pickTasksOfThisTask.isEmpty()) {
// 如果存在pickPlan且存在pickTask那么不允许后续操作
return BaseWmsApiResponse.error("当前任务已经下发且未完成,不可进行后续操作。");
}
}
// 根据不用的更新类型进行操作
if (outsUpdateRequest.getUpdateType() == 1) {// CANCEL
// 移除这个出库单并删除其对应的pickPlan
appOutsService.removeById(targetOuts.getTaskId());
appPickPlanService.remove(new LambdaQueryWrapper<TAppPickPlan>()
.eq(TAppPickPlan::getWorkIndex, targetOuts.getTaskId()));
} else if (outsUpdateRequest.getUpdateType() == 2) {// FINISH
// 移除这个出库单生成记录并删除对应的pickPlan
appOutsService.removeById(targetOuts.getTaskId());
appOutsRecordService.save(new TAppOutsRecord(
targetOuts.getTaskId(),
targetOuts.getGoodsId(),
targetOuts.getVehicleId(),
targetOuts.getNeedNum(),
targetOuts.getDistributeNum(),
targetOuts.getPickNum(),
targetOuts.getOutType(),
targetOuts.getDestination(),
targetOuts.getUserName(),
targetOuts.getReason(),
targetOuts.getRequestTime()
));
appPickPlanService.remove(new LambdaQueryWrapper<TAppPickPlan>()
.eq(TAppPickPlan::getWorkIndex, targetOuts.getTaskId()));
} else if (outsUpdateRequest.getUpdateType() == 3) {// REBOOT
// 将已分配数量更改掉并删除pickPlan
targetOuts.setDistributeNum(targetOuts.getNeedNum() - targetOuts.getPickNum());
appOutsService.updateById(targetOuts);
appPickPlanService.remove(new LambdaQueryWrapper<TAppPickPlan>()
.eq(TAppPickPlan::getWorkIndex, targetOuts.getTaskId()));
} else {
return BaseWmsApiResponse.error("更新类型错误。");
}
return BaseWmsApiResponse.success("更新信息成功。");
}
/**
* 更新详情
* @param targetTask 目标任务
*
* @param targetTask 目标任务
* @param wmsTaskRequest 请求信息
*/
private void updateDetailInfoExceptStatus(TAppTask targetTask, WmsTaskRequest wmsTaskRequest) {

View File

@ -1102,7 +1102,8 @@ public class OutsExecutorServiceImpl implements IOutsExecutorService {
appWork.getFinishTime(),
appWork.getLackStatus(),
appWork.getIsOut(),
appWork.getProductType()
appWork.getProductType(),
appWork.getKittingRemark()
);
}