{
// 设定查询参数
request.vehicleId = searchQueryFormEntity.vehicleId.trim()
request.goodsId = searchQueryFormEntity.goodsId.trim()
- request.out = searchQueryFormEntity.outType === -99 ? null : searchQueryFormEntity.outType
+ request.outType = searchQueryFormEntity.outType === -99 ? null : searchQueryFormEntity.outType
+ request.queryType = searchQueryFormEntity.queryType// 查询类型
queryOutsByPage(request).then((res) => {
const response = res.data
if (response.code === 0) {
diff --git a/dev_wms_client/src/layout/goodsOut.vue b/dev_wms_client/src/layout/goodsOut.vue
index 5d464b5..9a81e2f 100644
--- a/dev_wms_client/src/layout/goodsOut.vue
+++ b/dev_wms_client/src/layout/goodsOut.vue
@@ -12,19 +12,22 @@
:options="outTypeOptions">
-
+
-
-
+
+
-
-
+
+
+
+
logList);
+
+ /**
+ * 保存接口发送日志
+ * @param fileSuffix 文件后缀
+ * @param apiLogList 数据列表
+ */
void saveApiSendLogs(String fileSuffix, List apiLogList);
+
+ /**
+ * 保存Wms任务记录
+ * @param fileSuffix 文件后缀
+ * @param wmsTaskBakList 数据列表
+ */
void saveWmsTaskBak(String fileSuffix, List wmsTaskBakList);
+
+ /**
+ * 保存Wcs任务记录
+ * @param fileSuffix 文件后缀
+ * @param wcsTaskBakList 数据列表
+ */
void saveWcsTaskBak(String fileSuffix, List wcsTaskBakList);
+
+ /**
+ * 保存拣选任务记录
+ * @param fileSuffix 文件后缀
+ * @param pickTaskBakList 数据列表
+ */
void savePickTaskBak(String fileSuffix, List pickTaskBakList);
+
+ /**
+ * 保存Dbs记录
+ * @param fileSuffix 文件后缀
+ * @param dbsRecordList 数据列表
+ */
+ void saveDbsRecord(String fileSuffix, List dbsRecordList);
+
+ /**
+ * 保存出库单记录
+ * @param fileSuffix 文件后缀
+ * @param outsRecordList 数据列表
+ */
+ void saveOutsRecord(String fileSuffix, List outsRecordList);
+
+ /**
+ * 保存库存流水记录
+ * @param fileSuffix 文件后缀
+ * @param stockUpdateList 数据列表
+ */
+ void saveStockUpdateRecord(String fileSuffix, List stockUpdateList);
+
+ /**
+ * 保存盘点记录
+ * @param fileSuffix 文件后缀
+ * @param inventoryList 数据列表
+ */
+ void saveInventoryRecord(String fileSuffix, List inventoryList);
+
+ /**
+ * 保存工作记录
+ * @param fileSuffix 文件后缀
+ * @param workRecordList 数据列表
+ */
+ void saveWorkRecord(String fileSuffix, List workRecordList);
}
diff --git a/dev_wms_serve/src/main/java/com/wms_main/excel/easypoi/service/serviceImpl/SaveExcelEasyPoi.java b/dev_wms_serve/src/main/java/com/wms_main/excel/easypoi/service/serviceImpl/SaveExcelEasyPoi.java
index baf26d7..81f1edc 100644
--- a/dev_wms_serve/src/main/java/com/wms_main/excel/easypoi/service/serviceImpl/SaveExcelEasyPoi.java
+++ b/dev_wms_serve/src/main/java/com/wms_main/excel/easypoi/service/serviceImpl/SaveExcelEasyPoi.java
@@ -29,12 +29,13 @@ public class SaveExcelEasyPoi implements ISaveExcelEasyPoi {
/**
* 写入excel
- * @param fileDesc 文件描述,不需要文件类型的后缀
- * @param filePath 文件路径,最后一位不需要添加文件分割符
+ *
+ * @param fileDesc 文件描述,不需要文件类型的后缀
+ * @param filePath 文件路径,最后一位不需要添加文件分割符
* @param sheetName 页名
- * @param list 数据列表
- * @param clazz 泛型类
- * @param 泛型
+ * @param list 数据列表
+ * @param clazz 泛型类
+ * @param 泛型
* @throws IOException 异常
*/
public void doWriteExcel(String fileDesc, String filePath, String sheetName, List list, Class clazz) throws IOException {
@@ -53,6 +54,7 @@ public class SaveExcelEasyPoi implements ISaveExcelEasyPoi {
/**
* 创建文件
+ *
* @param file 目标文件
*/
public void createFile(File file) {
@@ -80,8 +82,9 @@ public class SaveExcelEasyPoi implements ISaveExcelEasyPoi {
/**
* 保存api接收日志
+ *
* @param fileSuffix 文件后缀
- * @param logList 数据列表
+ * @param logList 数据列表
*/
@Override
public void saveApiReceiveLogs(String fileSuffix, List logList) {
@@ -111,6 +114,7 @@ public class SaveExcelEasyPoi implements ISaveExcelEasyPoi {
/**
* 保存api发送日志
+ *
* @param fileSuffix 文件后缀
* @param apiLogList 数据列表
*/
@@ -150,7 +154,8 @@ public class SaveExcelEasyPoi implements ISaveExcelEasyPoi {
/**
* 保存Wms任务记录
- * @param fileSuffix 文件后缀
+ *
+ * @param fileSuffix 文件后缀
* @param wmsTaskBakList 数据列表
*/
@Override
@@ -189,7 +194,8 @@ public class SaveExcelEasyPoi implements ISaveExcelEasyPoi {
/**
* 保存wcs任务记录
- * @param fileSuffix 文件后缀
+ *
+ * @param fileSuffix 文件后缀
* @param wcsTaskBakList 数据记录
*/
@Override
@@ -222,7 +228,8 @@ public class SaveExcelEasyPoi implements ISaveExcelEasyPoi {
/**
* 保存拣选任务记录
- * @param fileSuffix 文件后缀
+ *
+ * @param fileSuffix 文件后缀
* @param pickTaskBakList 数据记录
*/
@Override
@@ -249,4 +256,186 @@ public class SaveExcelEasyPoi implements ISaveExcelEasyPoi {
log.error("缓存过期拣选任务记录异常。");
}
}
+
+ /**
+ * 保存DBS记录
+ *
+ * @param fileSuffix 文件后缀
+ * @param dbsRecordList 数据列表
+ */
+ @Override
+ public void saveDbsRecord(String fileSuffix, List dbsRecordList) {
+ if (dbsRecordList == null || dbsRecordList.isEmpty()) {
+ // 空数据体,不做处理
+ return;
+ }
+ // 将数据转化为excel Template
+ List dbsRecordExcelTemplateList = new ArrayList<>(dbsRecordList.stream().map(dbsRecord -> new DbsRecordExcelTemplateForSave(
+ dbsRecord.getDbsId(),
+ dbsRecord.getWorkOrder(),
+ dbsRecord.getProductIdOrigin(),
+ dbsRecord.getProductId(),
+ dbsRecord.getTestPlanStartDate(),
+ dbsRecord.getTestPlanFinishDate(),
+ dbsRecord.getPntPlanStartDate(),
+ dbsRecord.getPntPlanFinishDate(),
+ dbsRecord.getPlanProduction(),
+ dbsRecord.getEquipmentName(),
+ dbsRecord.getWorkShift(),
+ dbsRecord.getFamily(),
+ dbsRecord.getTestNo(),
+ dbsRecord.getDbsStatus(),
+ dbsRecord.getWorkStand(),
+ dbsRecord.getRealWorkDate(),
+ dbsRecord.getFinishTime(),
+ dbsRecord.getKittingRemark(),
+ dbsRecord.getRemark()
+ )).toList());
+ try {
+ // 写入excel
+ doWriteExcel("t_app_dbs_" + fileSuffix, ROOT_PATH + "/t_app_dbs", "t_app_dbs", dbsRecordExcelTemplateList, DbsRecordExcelTemplateForSave.class);
+ } catch (IOException e) {
+ log.error("缓存Dbs记录异常。");
+ }
+ }
+
+ /**
+ * 保存出库单记录
+ * @param fileSuffix 文件后缀
+ * @param outsRecordList 数据列表
+ */
+ @Override
+ public void saveOutsRecord(String fileSuffix, List outsRecordList) {
+ if (outsRecordList == null || outsRecordList.isEmpty()) {
+ // 空数据体,不做处理
+ return;
+ }
+ // 将数据转化为excel Template
+ List outsRecordExcelTemplateList = new ArrayList<>(outsRecordList.stream().map(outsRecord -> new OutsRecordExcelTemplateForSave(
+ outsRecord.getTaskId(),
+ outsRecord.getGoodsId(),
+ outsRecord.getVehicleId(),
+ outsRecord.getNeedNum(),
+ outsRecord.getDistributeNum(),
+ outsRecord.getPickNum(),
+ outsRecord.getOutType(),
+ outsRecord.getDestination(),
+ outsRecord.getUserName(),
+ outsRecord.getReason(),
+ outsRecord.getRequestTime()
+ )).toList());
+ try {
+ // 写入excel
+ doWriteExcel("t_app_outs_record_" + fileSuffix, ROOT_PATH + "/t_app_outs_record", "t_app_outs_record", outsRecordExcelTemplateList, OutsRecordExcelTemplateForSave.class);
+ } catch (IOException e) {
+ log.error("缓存出库单记录异常。");
+ }
+ }
+
+ /**
+ * 缓存库存流水记录
+ * @param fileSuffix 文件后缀
+ * @param stockUpdateList 数据列表
+ */
+ @Override
+ public void saveStockUpdateRecord(String fileSuffix, List stockUpdateList) {
+ if (stockUpdateList == null || stockUpdateList.isEmpty()) {
+ // 空数据体,不做处理
+ return;
+ }
+ // 将数据转化为excel Template
+ List stockUpdateExcelTemplateList = new ArrayList<>(stockUpdateList.stream().map(stockUpdate -> new StockUpdateRecordExcelTemplateForSave(
+ stockUpdate.getUpdateId(),
+ stockUpdate.getVehicleId(),
+ stockUpdate.getGoodsId(),
+ stockUpdate.getFirstInTime(),
+ stockUpdate.getBeforeNum(),
+ stockUpdate.getAfterNum(),
+ stockUpdate.getReason(),
+ stockUpdate.getUpdateTime(),
+ stockUpdate.getUpdateUser()
+ )).toList());
+ try {
+ // 写入excel
+ doWriteExcel("t_app_stock_update_" + fileSuffix, ROOT_PATH + "/t_app_stock_update", "t_app_stock_update", stockUpdateExcelTemplateList, StockUpdateRecordExcelTemplateForSave.class);
+ } catch (IOException e) {
+ log.error("缓存库存流水记录异常。");
+ }
+ }
+
+ /**
+ * 保存盘点记录
+ * @param fileSuffix 文件后缀
+ * @param inventoryList 数据列表
+ */
+ @Override
+ public void saveInventoryRecord(String fileSuffix, List inventoryList) {
+ if (inventoryList == null || inventoryList.isEmpty()) {
+ // 空数据体,不做处理
+ return;
+ }
+ // 将数据转化为excel Template
+ List inventoryRecordExcelTemplateList = new ArrayList<>(inventoryList.stream().map(inventoryRecord -> new InventoryRecordExcelTemplateForSave(
+ inventoryRecord.getInventoryId(),
+ inventoryRecord.getGoodsId(),
+ inventoryRecord.getVehicleId(),
+ inventoryRecord.getStockNum(),
+ inventoryRecord.getConfirmNum(),
+ inventoryRecord.getInvStand(),
+ inventoryRecord.getInvUser(),
+ inventoryRecord.getInvType(),
+ inventoryRecord.getInvStatus(),
+ inventoryRecord.getInvResult(),
+ inventoryRecord.getInvCreateTime(),
+ inventoryRecord.getInvConfirmTime(),
+ inventoryRecord.getInvOrderId()
+ )).toList());
+ try {
+ // 写入excel
+ doWriteExcel("t_app_inventory_" + fileSuffix, ROOT_PATH + "/t_app_inventory", "t_app_inventory", inventoryRecordExcelTemplateList, InventoryRecordExcelTemplateForSave.class);
+ } catch (IOException e) {
+ log.error("缓存盘点记录异常。");
+ }
+ }
+
+ /**
+ * 保存工作记录
+ *
+ * @param fileSuffix 文件后缀
+ * @param workRecordList 数据列表
+ */
+ @Override
+ public void saveWorkRecord(String fileSuffix, List workRecordList) {
+ if (workRecordList == null || workRecordList.isEmpty()) {
+ // 空数据体,不做处理
+ return;
+ }
+ // 将数据转化为excel Template
+ List workRecordExcelTemplateList = new ArrayList<>(workRecordList.stream().map(workRecord -> new WorkRecordExcelTemplateForSave(
+ workRecord.getWorkIndex(),
+ workRecord.getWorkOrder(),
+ workRecord.getPlanStartDate(),
+ workRecord.getProductId(),
+ workRecord.getSingleProductId(),
+ workRecord.getBoxNo(),
+ workRecord.getGoodsId(),
+ workRecord.getNeedNum(),
+ workRecord.getFinishNum(),
+ workRecord.getWorkStand(),
+ workRecord.getWorkStatus(),
+ workRecord.getWorkUser(),
+ workRecord.getCreateTime(),
+ workRecord.getFinishTime(),
+ workRecord.getLackStatus(),
+ workRecord.getIsOut(),
+ workRecord.getProductType(),
+ workRecord.getKittingRemark()
+ )).toList());
+ try {
+ // 写入excel
+ doWriteExcel("t_app_work_record_" + fileSuffix, ROOT_PATH + "/t_app_work_record", "t_app_work_record", workRecordExcelTemplateList, WorkRecordExcelTemplateForSave.class);
+ } catch (IOException e) {
+ log.error("缓存工作记录异常。");
+ }
+ }
}
diff --git a/dev_wms_serve/src/main/java/com/wms_main/model/dto/query/OutsQuery.java b/dev_wms_serve/src/main/java/com/wms_main/model/dto/query/OutsQuery.java
index 02e0337..fa5b8b1 100644
--- a/dev_wms_serve/src/main/java/com/wms_main/model/dto/query/OutsQuery.java
+++ b/dev_wms_serve/src/main/java/com/wms_main/model/dto/query/OutsQuery.java
@@ -18,6 +18,13 @@ import java.time.LocalDateTime;
@AllArgsConstructor
@NoArgsConstructor
public class OutsQuery extends PageQuery {
+ /**
+ * 查询类型
+ * 1. 未关闭
+ * 2. 已关闭
+ */
+ @JsonProperty("queryType")
+ private Integer queryType;
/**
* 任务号
*/
diff --git a/dev_wms_serve/src/main/java/com/wms_main/model/vo/wms/OutsVo.java b/dev_wms_serve/src/main/java/com/wms_main/model/vo/wms/OutsVo.java
index c023940..37b5d50 100644
--- a/dev_wms_serve/src/main/java/com/wms_main/model/vo/wms/OutsVo.java
+++ b/dev_wms_serve/src/main/java/com/wms_main/model/vo/wms/OutsVo.java
@@ -3,6 +3,7 @@ package com.wms_main.model.vo.wms;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.wms_main.model.po.TAppOuts;
+import com.wms_main.model.po.TAppOutsRecord;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@@ -99,4 +100,28 @@ public class OutsVo {
po.getRequestTime()
);
}
+
+ /**
+ * 将记录po转换为vo
+ * @param po 数据库实体
+ * @return 转化结果
+ */
+ public static OutsVo ofRecord(TAppOutsRecord po) {
+ if (po == null) {
+ return new OutsVo();
+ }
+ return new OutsVo(
+ po.getTaskId(),
+ po.getGoodsId(),
+ po.getVehicleId(),
+ po.getNeedNum(),
+ po.getDistributeNum(),
+ po.getPickNum(),
+ po.getOutType(),
+ po.getDestination(),
+ po.getUserName(),
+ po.getReason(),
+ po.getRequestTime()
+ );
+ }
}
diff --git a/dev_wms_serve/src/main/java/com/wms_main/service/controller/serviceImpl/KateWorkControllerServiceImpl.java b/dev_wms_serve/src/main/java/com/wms_main/service/controller/serviceImpl/KateWorkControllerServiceImpl.java
index 585ef9d..cb9a5d2 100644
--- a/dev_wms_serve/src/main/java/com/wms_main/service/controller/serviceImpl/KateWorkControllerServiceImpl.java
+++ b/dev_wms_serve/src/main/java/com/wms_main/service/controller/serviceImpl/KateWorkControllerServiceImpl.java
@@ -163,7 +163,13 @@ public class KateWorkControllerServiceImpl implements IKateWorkControllerService
// 根据查询条件筛选出对应的暂存数据
List filterWorks = currentWorkOrderWorkList.stream()
.filter(work -> {
- boolean result = work.getWorkStatus() == -1;
+ boolean result;
+ if (work.getWorkStatus() == -1) {
+ result = true;
+ } else {
+ // 缺料,可以下发
+ result = work.getWorkStatus() == 2 && work.getLackStatus() == 1;
+ }
// 料盒号
if (StringUtils.isNotEmpty(initKateWorkRequest.getBoxNo())) {
result = result && Objects.equals(work.getBoxNo(), initKateWorkRequest.getBoxNo());
@@ -182,10 +188,12 @@ public class KateWorkControllerServiceImpl implements IKateWorkControllerService
appWorkService.update(
new LambdaUpdateWrapper()
.set(TAppWork::getWorkStatus, 0)
+ .set(TAppWork::getLackStatus, 0)
.set(TAppWork::getWorkStand, initKateWorkRequest.getStandId())
- .in(TAppWork::getWorkIndex, filterWorks.stream().map(TAppWork::getWorkIndex).toList())
+ .setSql("distribute_num = finish_num")
+ .in(TAppWork::getWorkIndex, filterWorks.stream().map(TAppWork::getWorkIndex).distinct().toList())
);
- return BaseWmsApiResponse.success("创建工作成功。");
+ return BaseWmsApiResponse.success("重新下发工作成功。");
} catch (Exception e) {
// 回滚事务
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
diff --git a/dev_wms_serve/src/main/java/com/wms_main/service/controller/serviceImpl/TaskQueryControllerServiceImpl.java b/dev_wms_serve/src/main/java/com/wms_main/service/controller/serviceImpl/TaskQueryControllerServiceImpl.java
index 63ab0c5..431de25 100644
--- a/dev_wms_serve/src/main/java/com/wms_main/service/controller/serviceImpl/TaskQueryControllerServiceImpl.java
+++ b/dev_wms_serve/src/main/java/com/wms_main/service/controller/serviceImpl/TaskQueryControllerServiceImpl.java
@@ -26,6 +26,7 @@ public class TaskQueryControllerServiceImpl implements ITaskQueryControllerServi
private final ITAppTaskBakService appTaskBakService;// 任务记录服务
private final ITAppPickTaskService appPickTaskService;// 拣选任务服务
private final ITAppOutsService appOutsService;// 出库单服务
+ private final ITAppOutsRecordService appOutsRecordService;// 出库单记录服务
private final ITAppInventoryService appInventoryService;// 盘点请求服务
private final ITAppInventoryRecordService appInventoryRecordService;// 盘点记录服务
@@ -150,16 +151,32 @@ public class TaskQueryControllerServiceImpl implements ITaskQueryControllerServi
if (outsQuery == null) {
return WmsApiResponse.error("查询参数不能为NULL", null);
}
- Page page = outsQuery.toMpPage();
- LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper()
- .like(StringUtils.isNotEmpty(outsQuery.getTaskId()), TAppOuts::getTaskId, outsQuery.getTaskId())
- .like(StringUtils.isNotEmpty(outsQuery.getGoodsId()), TAppOuts::getGoodsId, outsQuery.getGoodsId())
- .like(StringUtils.isNotEmpty(outsQuery.getVehicleId()), TAppOuts::getVehicleId, outsQuery.getVehicleId())
- .eq(outsQuery.getOutType() != null, TAppOuts::getOutType, outsQuery.getOutType());
- Page outsPage = appOutsService.page(page, lambdaQueryWrapper);
+ if (outsQuery.getQueryType() == 1) {
+ // 查询未关闭
+ Page page = outsQuery.toMpPage();
+ LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper()
+ .like(StringUtils.isNotEmpty(outsQuery.getTaskId()), TAppOuts::getTaskId, outsQuery.getTaskId())
+ .like(StringUtils.isNotEmpty(outsQuery.getGoodsId()), TAppOuts::getGoodsId, outsQuery.getGoodsId())
+ .like(StringUtils.isNotEmpty(outsQuery.getVehicleId()), TAppOuts::getVehicleId, outsQuery.getVehicleId())
+ .eq(outsQuery.getOutType() != null, TAppOuts::getOutType, outsQuery.getOutType());
+ Page outsPage = appOutsService.page(page, lambdaQueryWrapper);
+
+ PageVo pageVo = PageVo.of(outsPage, OutsVo::of);
+ return WmsApiResponse.success("查询出库单成功。", pageVo);
+ } else {
+ // 查询已关闭的记录
+ Page page = outsQuery.toMpPage();
+ LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper()
+ .like(StringUtils.isNotEmpty(outsQuery.getTaskId()), TAppOutsRecord::getTaskId, outsQuery.getTaskId())
+ .like(StringUtils.isNotEmpty(outsQuery.getGoodsId()), TAppOutsRecord::getGoodsId, outsQuery.getGoodsId())
+ .like(StringUtils.isNotEmpty(outsQuery.getVehicleId()), TAppOutsRecord::getVehicleId, outsQuery.getVehicleId())
+ .eq(outsQuery.getOutType() != null, TAppOutsRecord::getOutType, outsQuery.getOutType());
+ Page outsPage = appOutsRecordService.page(page, lambdaQueryWrapper);
+
+ PageVo pageVo = PageVo.of(outsPage, OutsVo::ofRecord);
+ return WmsApiResponse.success("查询出库单记录成功。", pageVo);
+ }
- PageVo pageVo = PageVo.of(outsPage, OutsVo::of);
- return WmsApiResponse.success("查询出库单成功。", pageVo);
}
/**
diff --git a/dev_wms_serve/src/main/java/com/wms_main/service/quartz_job/serviceImpl/DataSolverServiceImpl.java b/dev_wms_serve/src/main/java/com/wms_main/service/quartz_job/serviceImpl/DataSolverServiceImpl.java
index 1b561b4..8314dcd 100644
--- a/dev_wms_serve/src/main/java/com/wms_main/service/quartz_job/serviceImpl/DataSolverServiceImpl.java
+++ b/dev_wms_serve/src/main/java/com/wms_main/service/quartz_job/serviceImpl/DataSolverServiceImpl.java
@@ -2,6 +2,7 @@ package com.wms_main.service.quartz_job.serviceImpl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.wms_main.app.AppCommon;
+import com.wms_main.constant.enums.others.DbsStatusEnums;
import com.wms_main.constant.enums.wms.AppConfigKeyEnums;
import com.wms_main.dao.*;
import com.wms_main.excel.easypoi.service.ISaveExcelEasyPoi;
@@ -30,6 +31,11 @@ public class DataSolverServiceImpl implements IDataSolverService {
private final ITAppWcsTaskBakService appWcsTaskBakService;// Wcs任务记录服务
private final ITAppPickTaskBakService appPickTaskBakService;// 拣选任务记录服务
private final ISaveExcelEasyPoi saveExcelEasyPoi;// 记录保存excel服务
+ private final ITAppStockUpdateService appStockUpdateService;// 库存流水服务
+ private final ITAppInventoryRecordService appInventoryRecordService;// 盘点记录服务
+ private final ITAppOutsRecordService appOutsRecordService;// 出库单记录服务
+ private final ITAppWorkRecordService appWorkRecordService;// 工作记录服务
+ private final ITAppDbsService appDbsService;// Dbs服务
/**
* 清理日志文件 实现
@@ -135,6 +141,46 @@ public class DataSolverServiceImpl implements IDataSolverService {
// 获取删除时间
LocalDateTime deleteTime = LocalDateTime.now().minusDays(importantRecordClearInterval);
+ // 查询过期库存流水记录
+ List stockUpdateList = appStockUpdateService.list(new LambdaQueryWrapper().lt(TAppStockUpdate::getUpdateTime, deleteTime));
+ if (stockUpdateList != null && !stockUpdateList.isEmpty()) {
+ // 备份过期数据
+ saveExcelEasyPoi.saveStockUpdateRecord(getSuffixFromDate(deleteTime, importantRecordClearInterval), stockUpdateList);
+ // 清理过期数据
+ appStockUpdateService.removeBatchByIds(stockUpdateList);
+ }
+ // 查询过期盘点记录
+ List inventoryRecordList = appInventoryRecordService.list(new LambdaQueryWrapper().lt(TAppInventoryRecord::getInvConfirmTime, deleteTime));
+ if (inventoryRecordList != null && !inventoryRecordList.isEmpty()) {
+ // 缓存过期数据
+ saveExcelEasyPoi.saveInventoryRecord(getSuffixFromDate(deleteTime, importantRecordClearInterval), inventoryRecordList);
+ // 删除过期数据
+ appInventoryRecordService.removeBatchByIds(inventoryRecordList);
+ }
+ // 查询过期出库单请求记录
+ List outsRecordList = appOutsRecordService.list(new LambdaQueryWrapper().lt(TAppOutsRecord::getRequestTime, deleteTime));
+ if (outsRecordList != null && !outsRecordList.isEmpty()) {
+ // 缓存过期数据
+ saveExcelEasyPoi.saveOutsRecord(getSuffixFromDate(deleteTime, importantRecordClearInterval), outsRecordList);
+ // 删除过期数据
+ appOutsRecordService.removeBatchByIds(outsRecordList);
+ }
+ // 查询过期工作记录
+ List workRecordList = appWorkRecordService.list(new LambdaQueryWrapper().lt(TAppWorkRecord::getFinishTime, deleteTime));
+ if (workRecordList != null && !workRecordList.isEmpty()) {
+ // 缓存过期数据
+ saveExcelEasyPoi.saveWorkRecord(getSuffixFromDate(deleteTime, importantRecordClearInterval), workRecordList);
+ // 删除过期数据
+ appWorkRecordService.removeBatchByIds(workRecordList);
+ }
+ // 查询过期dbs数据
+ List dbsRecordList = appDbsService.list(new LambdaQueryWrapper().lt(TAppDbs::getFinishTime, deleteTime).eq(TAppDbs::getDbsStatus, DbsStatusEnums.FINISH.getValue()));
+ if (dbsRecordList != null && !dbsRecordList.isEmpty()) {
+ // 缓存过期数据
+ saveExcelEasyPoi.saveDbsRecord(getSuffixFromDate(deleteTime, importantRecordClearInterval), dbsRecordList);
+ // 删除过期数据
+ appDbsService.removeBatchByIds(dbsRecordList);
+ }
}
/**
From 1cef5ede55e26888cd0ad7aee9e463be671e663c Mon Sep 17 00:00:00 2001
From: liang <594755172@qq.com>
Date: Tue, 3 Jun 2025 17:00:09 +0800
Subject: [PATCH 6/6] =?UTF-8?q?1.=20=E4=BF=AE=E5=A4=8D=E8=AF=B7=E6=B1=82?=
=?UTF-8?q?=E6=97=A5=E5=BF=97=E5=8A=9F=E8=83=BD=E4=B8=AD=E7=9A=84bug=202.?=
=?UTF-8?q?=20=E5=A2=9E=E5=8A=A0=E7=B4=A7=E6=80=A5=E5=87=BA=E5=BA=93?=
=?UTF-8?q?=E7=BC=BA=E6=96=99=E8=BE=93=E5=85=A5=E6=96=99=E5=8F=B7=E5=B7=A5?=
=?UTF-8?q?=E5=8D=95=E5=90=8E=E8=87=AA=E5=8A=A8=E8=A1=A5=E5=85=A8=E9=9C=80?=
=?UTF-8?q?=E6=B1=82=E6=95=B0=E9=87=8F=E7=9A=84=E5=8A=9F=E8=83=BD=203.=20?=
=?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=BC=BA=E6=96=99=E8=87=AA=E5=8A=A8=E5=85=B3?=
=?UTF-8?q?=E9=97=AD=E7=9A=84=E5=8A=9F=E8=83=BD=E3=80=82?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
dev_wms_client/src/api/task.js | 11 +++
dev_wms_client/src/layout/goodsOut.vue | 42 +++++++-
.../enums/others/EmergencyOutReasonEnums.java | 14 +++
.../controller/wms/TaskController.java | 15 ++-
.../wms_main/dao/impl/TSysApiServiceImpl.java | 8 +-
.../dto/request/wms/StockOutRequest.java | 5 +
.../java/com/wms_main/model/po/TAppOuts.java | 5 +
.../com/wms_main/model/po/TAppOutsRecord.java | 5 +
.../wms_main/repository/http/HttpClient.java | 2 -
.../controller/ITaskControllerService.java | 9 ++
.../TaskControllerServiceImpl.java | 97 ++++++++++++++++++-
.../TaskOperationControllerServiceImpl.java | 3 +-
.../serviceImpl/OutsExecutorServiceImpl.java | 3 +-
13 files changed, 201 insertions(+), 18 deletions(-)
create mode 100644 dev_wms_serve/src/main/java/com/wms_main/constant/enums/others/EmergencyOutReasonEnums.java
diff --git a/dev_wms_client/src/api/task.js b/dev_wms_client/src/api/task.js
index e519c09..40d6ddc 100644
--- a/dev_wms_client/src/api/task.js
+++ b/dev_wms_client/src/api/task.js
@@ -62,4 +62,15 @@ export const confirmInventory = (params) => {
method: 'post',
data: params
})
+}
+// 获取缺料数量
+export const getGoodsLackQty = (params) => {
+ return request({
+ url: '/task/getGoodsLackQty',
+ method: 'get',
+ params: {
+ goodsId: params.goodsId,
+ workOrder: params.workOrder
+ }
+ })
}
\ No newline at end of file
diff --git a/dev_wms_client/src/layout/goodsOut.vue b/dev_wms_client/src/layout/goodsOut.vue
index 9a81e2f..1a2c964 100644
--- a/dev_wms_client/src/layout/goodsOut.vue
+++ b/dev_wms_client/src/layout/goodsOut.vue
@@ -12,7 +12,7 @@
:options="outTypeOptions">
-
+
@@ -25,9 +25,9 @@
-
-
-
+
+
+
import store from '@/store'
-import {requireStockOut, getCurrentTask, confirmCurrentTask} from '@/api/task.js'
+import {requireStockOut, getCurrentTask, confirmCurrentTask, getGoodsLackQty} from '@/api/task.js'
import {errorBox, warningBox} from '@/utils/myMessageBox.js'
import {ElMessage} from 'element-plus'
import {nextTick, onBeforeUnmount, onMounted, reactive, ref, watch} from 'vue'
@@ -116,6 +116,7 @@ let outTaskEntity = reactive({
goodsId: '',
vehicleId: '',
reason: '',
+ workOrder: '',
needNum: null
})
const requestRules = reactive({
@@ -269,6 +270,10 @@ const confirmOut = () => {
errorBox('紧急出库请选择原因。')
return
}
+ if (outTaskEntity.reason === '缺料' && outTaskEntity.workOrder === '') {
+ errorBox('缺料时必须输入工单号。')
+ return
+ }
}
const request = {
outType: outTaskEntity.outType,
@@ -276,6 +281,7 @@ const confirmOut = () => {
vehicleId: outTaskEntity.vehicleId.toUpperCase().trim(),
needNum: outTaskEntity.needNum,
reason: outTaskEntity.reason,
+ workOrder: outTaskEntity.workOrder.trim(),
destination: STAND_ID,
userName: USER_NAME,
standId: STAND_ID
@@ -365,6 +371,32 @@ const clearConfirmEntity = () => {
confirmEntity.putArea = ''
confirmEntity.warningQty = null
}
+// 获取对应工单对应物料号的缺料数量
+const getLackQty = () => {
+ if (outTaskEntity.outType !== 9 || outTaskEntity.reason !== '缺料') {
+ // 非紧急出库且非缺料,则不处理
+ return;
+ }
+ if (outTaskEntity.workOrder === '' || outTaskEntity.goodsId === '') {
+ // 缺少工单号或者料号
+ return
+ }
+ // 设置请求参数
+ const request = {
+ workOrder: outTaskEntity.workOrder.trim(),
+ goodsId: outTaskEntity.goodsId.toUpperCase().trim()
+ }
+ loading.open('查询缺料缺料数量中...')
+ getGoodsLackQty(request).then(res => {
+ outTaskEntity.needNum = res.data
+ }).catch(err => {
+ // 异常,清空数量
+ outTaskEntity.needNum = null
+ console.log('获取缺料数量异常:' + err)
+ }).finally(() => {
+ loading.close()
+ })
+}