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

View File

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

View File

@ -52,4 +52,9 @@ public class OrderConfirmEntity {
*/ */
@JsonProperty("realPickQty") @JsonProperty("realPickQty")
private Integer 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") @TableField(value = "put_area")
private String putArea; private String putArea;
/**
* 备注
* 主要用于标识ECN
*/
@TableField(value = "kitting_remark")
private String kittingRemark;
} }

View File

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

View File

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

View File

@ -50,4 +50,10 @@ public class KateWorkOptionsVo {
*/ */
@JsonProperty("goodsId") @JsonProperty("goodsId")
private List<String> goodsId = Collections.emptyList(); 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.getGoodsId(),
thisWork.getBoxNo(), thisWork.getBoxNo(),
planPickQty, planPickQty,
planPickQty planPickQty,
thisWork.getKittingRemark()
); );
StockConfirmEntity stockConfirmVo = new StockConfirmEntity( StockConfirmEntity stockConfirmVo = new StockConfirmEntity(
pickPlan.getPlanId(), pickPlan.getPlanId(),

View File

@ -1,5 +1,6 @@
package com.wms_main.service.controller; 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.request.wms.WmsTaskRequest;
import com.wms_main.model.dto.response.wms.BaseWmsApiResponse; import com.wms_main.model.dto.response.wms.BaseWmsApiResponse;
@ -20,4 +21,11 @@ public interface ITaskOperationControllerService {
* @return 更新结果 * @return 更新结果
*/ */
BaseWmsApiResponse updateWmsTask(WmsTaskRequest wmsTaskRequest); 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.setProductIdOrigin(dbs.getProductIdOrigin());
// 设置过滤成品号 // 设置过滤成品号
result.setProductId(dbs.getProductId()); result.setProductId(dbs.getProductId());
// 设置备注
result.setKittingRemark(dbs.getKittingRemark());
if (!getWorkOptionsOfServicePieces(kateWorksQuery, dbs.getProductIdOrigin(), result)) { if (!getWorkOptionsOfServicePieces(kateWorksQuery, dbs.getProductIdOrigin(), result)) {
if (getWorkOptionsOfNonServicePieces(kateWorksQuery, dbs.getProductId(), result)) { if (getWorkOptionsOfNonServicePieces(kateWorksQuery, dbs.getProductId(), result)) {
result.setProductType(1);// 普通成品 result.setProductType(1);// 普通成品
@ -298,7 +300,8 @@ public class KateWorkControllerServiceImpl implements IKateWorkControllerService
thisStandWork.getGoodsId(), thisStandWork.getGoodsId(),
thisStandWork.getBoxNo(), thisStandWork.getBoxNo(),
thisStandWork.getPlanPickQty(), thisStandWork.getPlanPickQty(),
thisStandWork.getRealPickQty()), thisStandWork.getRealPickQty(),
thisStandWork.getKittingRemark()),
new StockConfirmEntity( new StockConfirmEntity(
thisStandWork.getStockId(), thisStandWork.getStockId(),
thisStandWork.getVehicleId(), thisStandWork.getVehicleId(),
@ -1438,7 +1441,8 @@ public class KateWorkControllerServiceImpl implements IKateWorkControllerService
work.getGoodsId(), work.getGoodsId(),
work.getBoxNo(), work.getBoxNo(),
thisNeedNum, thisNeedNum,
thisNeedNum thisNeedNum,
work.getKittingRemark()
); );
// 查找到这个库外料 // 查找到这个库外料
TAppGoods outGoods = new TAppGoods(); TAppGoods outGoods = new TAppGoods();
@ -1702,6 +1706,7 @@ public class KateWorkControllerServiceImpl implements IKateWorkControllerService
tempServiceProductWork.setIsOut(0); tempServiceProductWork.setIsOut(0);
} }
tempServiceProductWork.setLackStatus(0); tempServiceProductWork.setLackStatus(0);
tempServiceProductWork.setKittingRemark(dbs.getKittingRemark());// ECN备注
workList.add(tempServiceProductWork); workList.add(tempServiceProductWork);
} }
// 查询服务件是否包含单片 // 查询服务件是否包含单片
@ -1736,6 +1741,7 @@ public class KateWorkControllerServiceImpl implements IKateWorkControllerService
tempSingleServiceProductWork.setIsOut(0); tempSingleServiceProductWork.setIsOut(0);
} }
tempSingleServiceProductWork.setLackStatus(0); tempSingleServiceProductWork.setLackStatus(0);
tempSingleServiceProductWork.setKittingRemark(dbs.getKittingRemark());// ECN备注
workList.add(tempSingleServiceProductWork); workList.add(tempSingleServiceProductWork);
} }
} }
@ -1772,6 +1778,7 @@ public class KateWorkControllerServiceImpl implements IKateWorkControllerService
tempNonServiceProductWork.setIsOut(0); tempNonServiceProductWork.setIsOut(0);
} }
tempNonServiceProductWork.setLackStatus(0); tempNonServiceProductWork.setLackStatus(0);
tempNonServiceProductWork.setKittingRemark(dbs.getKittingRemark());// ECN备注
workList.add(tempNonServiceProductWork); workList.add(tempNonServiceProductWork);
} }
// 查询服务件是否包含单片 // 查询服务件是否包含单片
@ -1806,6 +1813,7 @@ public class KateWorkControllerServiceImpl implements IKateWorkControllerService
tempSingleNonServiceProductWork.setIsOut(0); tempSingleNonServiceProductWork.setIsOut(0);
} }
tempSingleNonServiceProductWork.setLackStatus(0); tempSingleNonServiceProductWork.setLackStatus(0);
tempSingleNonServiceProductWork.setKittingRemark(dbs.getKittingRemark());// ECN备注
workList.add(tempSingleNonServiceProductWork); 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.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.wms_main.constant.enums.wcs.WcsStackerTaskStatusEnums; import com.wms_main.constant.enums.wcs.WcsStackerTaskStatusEnums;
import com.wms_main.constant.enums.wms.WmsStackerTaskStatusEnums; import com.wms_main.constant.enums.wms.WmsStackerTaskStatusEnums;
import com.wms_main.dao.ITAppTaskBakService; import com.wms_main.dao.*;
import com.wms_main.dao.ITAppTaskService; import com.wms_main.model.dto.request.wms.OutsUpdateRequest;
import com.wms_main.dao.ITAppWcsTaskBakService;
import com.wms_main.dao.ITAppWcsTaskService;
import com.wms_main.model.dto.request.wms.WmsTaskRequest; import com.wms_main.model.dto.request.wms.WmsTaskRequest;
import com.wms_main.model.dto.response.wms.BaseWmsApiResponse; import com.wms_main.model.dto.response.wms.BaseWmsApiResponse;
import com.wms_main.model.po.TAppTask; import com.wms_main.model.po.*;
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.repository.utils.ConvertUtils; import com.wms_main.repository.utils.ConvertUtils;
import com.wms_main.repository.utils.StringUtils; import com.wms_main.repository.utils.StringUtils;
import com.wms_main.service.controller.ITaskOperationControllerService; import com.wms_main.service.controller.ITaskOperationControllerService;
@ -34,9 +29,14 @@ public class TaskOperationControllerServiceImpl implements ITaskOperationControl
private final ITAppTaskBakService appTaskBakService;// wms任务记录服务 private final ITAppTaskBakService appTaskBakService;// wms任务记录服务
private final ITAppWcsTaskService appWcsTaskService;// wcs任务服务 private final ITAppWcsTaskService appWcsTaskService;// wcs任务服务
private final ITAppWcsTaskBakService appWcsTaskBakService;// wcs任务记录服务 private final ITAppWcsTaskBakService appWcsTaskBakService;// wcs任务记录服务
private final ITAppOutsService appOutsService;// 出库单服务
private final ITAppOutsRecordService appOutsRecordService;// 出库单记录服务
private final ITAppPickPlanService appPickPlanService;// 拣选计划服务
private final ITAppPickTaskService appPickTaskService;// 拣选任务服务
/** /**
* 删除wms任务 * 删除wms任务
*
* @param wmsTaskRequest 请求参数 * @param wmsTaskRequest 请求参数
* @return 删除结果 * @return 删除结果
*/ */
@ -60,6 +60,7 @@ public class TaskOperationControllerServiceImpl implements ITaskOperationControl
/** /**
* 更新wms任务 * 更新wms任务
*
* @param wmsTaskRequest 请求参数 * @param wmsTaskRequest 请求参数
* @return 更新结果 * @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 请求信息 * @param wmsTaskRequest 请求信息
*/ */
private void updateDetailInfoExceptStatus(TAppTask targetTask, WmsTaskRequest wmsTaskRequest) { private void updateDetailInfoExceptStatus(TAppTask targetTask, WmsTaskRequest wmsTaskRequest) {

View File

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