From d3e57f662fc00214c9d1b1caa9a4dd542a9d2e1e Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期五, 31 七月 2026 13:47:29 +0800
Subject: [PATCH] 采购订单入库批次关联
---
yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/enums/ErpPurchaseRequestStatusEnum.java | 20 +++
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/batch/MesWmBatchMapper.java | 12 +-
yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/vo/request/ErpPurchaseRequestRespVO.java | 31 ++++
yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/convert/ErpPurchaseOrderInStatusConvert.java | 48 ++++++++
yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/convert/ErpPurchaseRequestStatusConvert.java | 48 ++++++++
yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/enums/ErpPurchaseOrderInStatusEnum.java | 20 +++
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/batch/MesWmBatchServiceImpl.java | 159 ++++++++++++--------------
yudao-framework/yudao-spring-boot-starter-excel/src/main/java/cn/iocoder/yudao/framework/excel/core/util/ExcelUtils.java | 15 ++
8 files changed, 254 insertions(+), 99 deletions(-)
diff --git a/yudao-framework/yudao-spring-boot-starter-excel/src/main/java/cn/iocoder/yudao/framework/excel/core/util/ExcelUtils.java b/yudao-framework/yudao-spring-boot-starter-excel/src/main/java/cn/iocoder/yudao/framework/excel/core/util/ExcelUtils.java
index f4f17ec..b9ec1ed 100644
--- a/yudao-framework/yudao-spring-boot-starter-excel/src/main/java/cn/iocoder/yudao/framework/excel/core/util/ExcelUtils.java
+++ b/yudao-framework/yudao-spring-boot-starter-excel/src/main/java/cn/iocoder/yudao/framework/excel/core/util/ExcelUtils.java
@@ -1,5 +1,6 @@
package cn.iocoder.yudao.framework.excel.core.util;
+import cn.idev.excel.ExcelWriter;
import cn.idev.excel.FastExcelFactory;
import cn.idev.excel.converters.longconverter.LongStringConverter;
import cn.iocoder.yudao.framework.common.util.http.HttpUtils;
@@ -33,12 +34,22 @@
public static <T> void write(HttpServletResponse response, String filename, String sheetName,
Class<T> head, List<T> data) throws IOException {
// 杈撳嚭 Excel
- FastExcelFactory.write(response.getOutputStream(), head)
+ ExcelWriter excelWriter = FastExcelFactory.write(response.getOutputStream(), head)
.autoCloseStream(false) // 涓嶈鑷姩鍏抽棴锛屼氦缁� Servlet 鑷繁澶勭悊
.registerWriteHandler(new ColumnWidthMatchStyleStrategy()) // 鍩轰簬 column 闀垮害锛岃嚜鍔ㄩ�傞厤銆傛渶澶� 255 瀹藉害
.registerWriteHandler(new SelectSheetWriteHandler(head)) // 鍩轰簬鍥哄畾 sheet 瀹炵幇涓嬫媺妗�
.registerConverter(new LongStringConverter()) // 閬垮厤 Long 绫诲瀷涓㈠け绮惧害
- .sheet(sheetName).doWrite(data);
+ .build();
+ try {
+ excelWriter.write(data, FastExcelFactory.writerSheet(sheetName).build());
+ } finally {
+ // finish() 灏� workbook 鍐欏叆鍒� response 杈撳嚭娴�
+ excelWriter.finish();
+ // close() 瑙﹀彂 dispose() 娓呯悊涓存椂鏂囦欢锛�
+ // POI SXSSFWorkbook.dispose() 鍙兘杈撳嚭 WARN "Failed to dispose sheet"锛�
+ // 杩欐槸 POI 宸茬煡闂锛堜复鏃舵枃浠舵竻鐞嗘椂 BufferedWriter 宸插叧闂級锛屼笉褰卞搷瀵煎嚭缁撴灉
+ excelWriter.close();
+ }
// 璁剧疆 header 鍜� contentType銆傚啓鍦ㄦ渶鍚庣殑鍘熷洜鏄紝閬垮厤鎶ラ敊鏃讹紝鍝嶅簲 contentType 宸茬粡琚慨鏀逛簡
response.addHeader("Content-Disposition", "attachment;filename=" + HttpUtils.encodeUtf8(filename));
response.setContentType("application/vnd.ms-excel;charset=UTF-8");
diff --git a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/vo/request/ErpPurchaseRequestRespVO.java b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/vo/request/ErpPurchaseRequestRespVO.java
index 3debc10..0ebadb5 100644
--- a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/vo/request/ErpPurchaseRequestRespVO.java
+++ b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/vo/request/ErpPurchaseRequestRespVO.java
@@ -1,5 +1,8 @@
package cn.iocoder.yudao.module.erp.controller.admin.purchase.vo.request;
+import cn.idev.excel.annotation.ExcelIgnore;
+import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
+import cn.idev.excel.annotation.ExcelProperty;
import cn.iocoder.yudao.module.system.api.storage.dto.StorageBlobRespDTO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@@ -11,75 +14,95 @@
@Schema(description = "绠$悊鍚庡彴 - ERP 閲囪喘鐢宠 Response VO")
@Data
+@ExcelIgnoreUnannotated
public class ErpPurchaseRequestRespVO {
@Schema(description = "缂栧彿", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+ @ExcelIgnore
private Long id;
@Schema(description = "閲囪喘鐢宠鍗曞彿", requiredMode = Schema.RequiredMode.REQUIRED, example = "CGSQ001")
+ @ExcelProperty("閲囪喘鐢宠鍗曞彿")
private String no;
@Schema(description = "鐘舵��", requiredMode = Schema.RequiredMode.REQUIRED, example = "0")
+ @ExcelProperty(value = "鐘舵��", converter = cn.iocoder.yudao.module.erp.convert.ErpPurchaseRequestStatusConvert.class)
private Integer status;
- @Schema(description = "宸ヤ綔娴佺紪鍙�", example = "1043")
- private String processInstanceId;
-
@Schema(description = "鐢宠浜虹紪鍙�", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+ @ExcelProperty("鐢宠浜虹紪鍙�")
private Long requestUserId;
@Schema(description = "鐢宠浜哄鍚�", example = "寮犱笁")
+ @ExcelProperty("鐢宠浜哄鍚�")
private String requestUserName;
@Schema(description = "鐢宠閮ㄩ棬缂栧彿", example = "1")
+ @ExcelProperty("鐢宠閮ㄩ棬缂栧彿")
private Long requestDeptId;
@Schema(description = "鐢宠閮ㄩ棬鍚嶇О", example = "鐢熶骇閮�")
+ @ExcelProperty("鐢宠閮ㄩ棬鍚嶇О")
private String requestDeptName;
@Schema(description = "鐢宠鏃堕棿", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("鐢宠鏃堕棿")
private LocalDateTime requestTime;
@Schema(description = "鐢宠鐞嗙敱", example = "鐢熶骇闇�瑕�")
+ @ExcelProperty("鐢宠鐞嗙敱")
private String requestReason;
@Schema(description = "渚涘簲鍟嗙紪鍙�", example = "1")
+ @ExcelProperty("渚涘簲鍟嗙紪鍙�")
private Long supplierId;
@Schema(description = "渚涘簲鍟嗗悕绉�", example = "渚涘簲鍟咥")
+ @ExcelProperty("渚涘簲鍟嗗悕绉�")
private String supplierName;
@Schema(description = "瀹氶噾閲戦", example = "1000.00")
+ @ExcelProperty("瀹氶噾閲戦")
private BigDecimal depositPrice;
@Schema(description = "鍚堣鏁伴噺", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("鍚堣鏁伴噺")
private BigDecimal totalCount;
@Schema(description = "鍚堣浠锋牸", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("鍚堣浠锋牸")
private BigDecimal totalPrice;
@Schema(description = "浜у搧鍚嶇О鍒楄〃", example = "浜у搧A,浜у搧B")
+ @ExcelProperty("浜у搧鍚嶇О鍒楄〃")
private String productNames;
@Schema(description = "鐢熸垚鐨勯噰璐鍗曠紪鍙�", example = "1")
+ @ExcelIgnore
private Long orderId;
@Schema(description = "鐢熸垚鐨勯噰璐鍗曞彿", example = "CGDD001")
+ @ExcelProperty("閲囪喘璁㈠崟鍙�")
private String orderNo;
- @Schema(description = "鍏ュ簱鐘舵�侊紙0:鏈叆搴� 1:閮ㄥ垎鍏ュ簱 2:鍏ㄩ儴鍏ュ簱锛�", example = "0")
+ @Schema(description = "鍏ュ簱鐘舵��", example = "0")
+ @ExcelProperty(value = "鍏ュ簱鐘舵��", converter = cn.iocoder.yudao.module.erp.convert.ErpPurchaseOrderInStatusConvert.class)
private Integer inStatus;
@Schema(description = "澶囨敞", example = "澶囨敞")
+ @ExcelProperty("澶囨敞")
private String remark;
@Schema(description = "闄勪欢鍒楄〃")
+ @ExcelIgnore
private List<StorageBlobRespDTO> attachmentList;
@Schema(description = "鍒涘缓鏃堕棿")
+ @ExcelProperty("鍒涘缓鏃堕棿")
private LocalDateTime createTime;
@Schema(description = "鐢宠鏄庣粏鍒楄〃")
+ @ExcelIgnore
private java.util.List<Item> items;
@Schema(description = "鐢宠鏄庣粏椤�")
diff --git a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/convert/ErpPurchaseOrderInStatusConvert.java b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/convert/ErpPurchaseOrderInStatusConvert.java
new file mode 100644
index 0000000..d5cf42c
--- /dev/null
+++ b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/convert/ErpPurchaseOrderInStatusConvert.java
@@ -0,0 +1,48 @@
+package cn.iocoder.yudao.module.erp.convert;
+
+import cn.idev.excel.converters.Converter;
+import cn.idev.excel.enums.CellDataTypeEnum;
+import cn.idev.excel.metadata.GlobalConfiguration;
+import cn.idev.excel.metadata.data.ReadCellData;
+import cn.idev.excel.metadata.data.WriteCellData;
+import cn.idev.excel.metadata.property.ExcelContentProperty;
+import cn.iocoder.yudao.module.erp.enums.ErpPurchaseOrderInStatusEnum;
+
+/**
+ * ERP 閲囪喘鍏ュ簱鐘舵�� Excel 杞崲鍣�
+ * <p>
+ * 灏� Integer 鍏ュ簱鐘舵�佺爜杞崲涓轰腑鏂囧悕绉�
+ *
+ * @author 鑺嬮亾婧愮爜
+ */
+public class ErpPurchaseOrderInStatusConvert implements Converter<Integer> {
+
+ @Override
+ public Class<?> supportJavaTypeKey() {
+ return Integer.class;
+ }
+
+ @Override
+ public CellDataTypeEnum supportExcelTypeKey() {
+ return CellDataTypeEnum.STRING;
+ }
+
+ @Override
+ public WriteCellData<?> convertToExcelData(Integer value, ExcelContentProperty contentProperty,
+ GlobalConfiguration globalConfiguration) {
+ if (value == null) {
+ return new WriteCellData<>("");
+ }
+ ErpPurchaseOrderInStatusEnum statusEnum = ErpPurchaseOrderInStatusEnum.fromStatus(value);
+ return new WriteCellData<>(statusEnum != null ? statusEnum.getName() : String.valueOf(value));
+ }
+
+ @Override
+ public Integer convertToJavaData(ReadCellData<?> cellData, ExcelContentProperty contentProperty,
+ GlobalConfiguration globalConfiguration) {
+ String label = cellData.getStringValue();
+ ErpPurchaseOrderInStatusEnum statusEnum = ErpPurchaseOrderInStatusEnum.fromName(label);
+ return statusEnum != null ? statusEnum.getStatus() : null;
+ }
+
+}
diff --git a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/convert/ErpPurchaseRequestStatusConvert.java b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/convert/ErpPurchaseRequestStatusConvert.java
new file mode 100644
index 0000000..eb1a32e
--- /dev/null
+++ b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/convert/ErpPurchaseRequestStatusConvert.java
@@ -0,0 +1,48 @@
+package cn.iocoder.yudao.module.erp.convert;
+
+import cn.idev.excel.converters.Converter;
+import cn.idev.excel.enums.CellDataTypeEnum;
+import cn.idev.excel.metadata.GlobalConfiguration;
+import cn.idev.excel.metadata.data.ReadCellData;
+import cn.idev.excel.metadata.data.WriteCellData;
+import cn.idev.excel.metadata.property.ExcelContentProperty;
+import cn.iocoder.yudao.module.erp.enums.ErpPurchaseRequestStatusEnum;
+
+/**
+ * ERP 閲囪喘鐢宠鐘舵�� Excel 杞崲鍣�
+ * <p>
+ * 灏� Integer 鐘舵�佺爜杞崲涓轰腑鏂囧悕绉帮紝鐢ㄤ簬 Excel 瀵煎嚭
+ *
+ * @author 鑺嬮亾婧愮爜
+ */
+public class ErpPurchaseRequestStatusConvert implements Converter<Integer> {
+
+ @Override
+ public Class<?> supportJavaTypeKey() {
+ return Integer.class;
+ }
+
+ @Override
+ public CellDataTypeEnum supportExcelTypeKey() {
+ return CellDataTypeEnum.STRING;
+ }
+
+ @Override
+ public WriteCellData<?> convertToExcelData(Integer value, ExcelContentProperty contentProperty,
+ GlobalConfiguration globalConfiguration) {
+ if (value == null) {
+ return new WriteCellData<>("");
+ }
+ ErpPurchaseRequestStatusEnum statusEnum = ErpPurchaseRequestStatusEnum.fromStatus(value);
+ return new WriteCellData<>(statusEnum != null ? statusEnum.getName() : String.valueOf(value));
+ }
+
+ @Override
+ public Integer convertToJavaData(ReadCellData<?> cellData, ExcelContentProperty contentProperty,
+ GlobalConfiguration globalConfiguration) {
+ String label = cellData.getStringValue();
+ ErpPurchaseRequestStatusEnum statusEnum = ErpPurchaseRequestStatusEnum.fromName(label);
+ return statusEnum != null ? statusEnum.getStatus() : null;
+ }
+
+}
diff --git a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/enums/ErpPurchaseOrderInStatusEnum.java b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/enums/ErpPurchaseOrderInStatusEnum.java
index c1e5a9a..f56a937 100644
--- a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/enums/ErpPurchaseOrderInStatusEnum.java
+++ b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/enums/ErpPurchaseOrderInStatusEnum.java
@@ -30,4 +30,24 @@
return ARRAYS;
}
+ /**
+ * 鏍规嵁鐘舵�佺爜鑾峰彇鏋氫妇
+ */
+ public static ErpPurchaseOrderInStatusEnum fromStatus(Integer status) {
+ return Arrays.stream(values())
+ .filter(e -> e.getStatus().equals(status))
+ .findFirst()
+ .orElse(null);
+ }
+
+ /**
+ * 鏍规嵁鍚嶇О鑾峰彇鏋氫妇
+ */
+ public static ErpPurchaseOrderInStatusEnum fromName(String name) {
+ return Arrays.stream(values())
+ .filter(e -> e.getName().equals(name))
+ .findFirst()
+ .orElse(null);
+ }
+
}
\ No newline at end of file
diff --git a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/enums/ErpPurchaseRequestStatusEnum.java b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/enums/ErpPurchaseRequestStatusEnum.java
index 6eb1ad3..ad9493f 100644
--- a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/enums/ErpPurchaseRequestStatusEnum.java
+++ b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/enums/ErpPurchaseRequestStatusEnum.java
@@ -35,4 +35,24 @@
return ARRAYS;
}
+ /**
+ * 鏍规嵁鐘舵�佺爜鑾峰彇鏋氫妇
+ */
+ public static ErpPurchaseRequestStatusEnum fromStatus(Integer status) {
+ return Arrays.stream(values())
+ .filter(e -> e.getStatus().equals(status))
+ .findFirst()
+ .orElse(null);
+ }
+
+ /**
+ * 鏍规嵁鍚嶇О鑾峰彇鏋氫妇
+ */
+ public static ErpPurchaseRequestStatusEnum fromName(String name) {
+ return Arrays.stream(values())
+ .filter(e -> e.getName().equals(name))
+ .findFirst()
+ .orElse(null);
+ }
+
}
\ No newline at end of file
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/batch/MesWmBatchMapper.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/batch/MesWmBatchMapper.java
index fd04fdd..a8b26d5 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/batch/MesWmBatchMapper.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/batch/MesWmBatchMapper.java
@@ -72,12 +72,12 @@
.betweenIfPresent(MesWmBatchDO::getExpireDate, reqVO.getExpireDate())
.betweenIfPresent(MesWmBatchDO::getReceiptDate, reqVO.getReceiptDate())
.orderByDesc(MesWmBatchDO::getId);
- if (permittedClientIds != null) {
- if (CollUtil.isEmpty(permittedClientIds)) {
- return PageResult.empty();
- }
- wrapper.in(MesWmBatchDO::getClientId, permittedClientIds);
- }
+// if (permittedClientIds != null) {
+// if (CollUtil.isEmpty(permittedClientIds)) {
+// return PageResult.empty();
+// }
+// wrapper.in(MesWmBatchDO::getClientId, permittedClientIds);
+// }
return selectPage(reqVO, wrapper);
}
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/batch/MesWmBatchServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/batch/MesWmBatchServiceImpl.java
index bed3c88..a84dda6 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/batch/MesWmBatchServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/batch/MesWmBatchServiceImpl.java
@@ -97,122 +97,107 @@
// 2. 鏍规嵁閰嶇疆鏍¢獙蹇呭~鍙傛暟骞舵竻绌轰笉闇�瑕佺殑鍙傛暟
MesWmBatchDO batch = MesWmBatchDO.builder().itemId(reqVO.getItemId()).build();
if (config != null) {
+ // ========== 蹇呭~鏍¢獙锛坒lag=true 琛ㄧず璇ュ瓧娈典负蹇呭~锛� ==========
// 鐢熶骇鏃ユ湡
- if (Boolean.TRUE.equals(config.getProduceDateFlag())) {
- if (ObjUtil.isNull(reqVO.getProduceDate())) {
- throw exception(WM_BATCH_PRODUCE_DATE_REQUIRED);
- }
- batch.setProduceDate(reqVO.getProduceDate());
+ if (Boolean.TRUE.equals(config.getProduceDateFlag()) && ObjUtil.isNull(reqVO.getProduceDate())) {
+ throw exception(WM_BATCH_PRODUCE_DATE_REQUIRED);
}
// 鍏ュ簱鏃ユ湡
- if (Boolean.TRUE.equals(config.getReceiptDateFlag())) {
- if (ObjUtil.isNull(reqVO.getReceiptDate())) {
- throw exception(WM_BATCH_RECEIPT_DATE_REQUIRED);
- }
- batch.setReceiptDate(reqVO.getReceiptDate());
+ if (Boolean.TRUE.equals(config.getReceiptDateFlag()) && ObjUtil.isNull(reqVO.getReceiptDate())) {
+ throw exception(WM_BATCH_RECEIPT_DATE_REQUIRED);
}
// 鏈夋晥鏈�
- if (Boolean.TRUE.equals(config.getExpireDateFlag())) {
- if (ObjUtil.isNull(reqVO.getExpireDate())) {
- throw exception(WM_BATCH_EXPIRE_DATE_REQUIRED);
- }
- batch.setExpireDate(reqVO.getExpireDate());
+ if (Boolean.TRUE.equals(config.getExpireDateFlag()) && ObjUtil.isNull(reqVO.getExpireDate())) {
+ throw exception(WM_BATCH_EXPIRE_DATE_REQUIRED);
}
// 渚涘簲鍟�
- if (Boolean.TRUE.equals(config.getVendorFlag())) {
- if (ObjUtil.isNull(reqVO.getVendorId())) {
- throw exception(WM_BATCH_VENDOR_REQUIRED);
- }
- batch.setVendorId(reqVO.getVendorId());
+ if (Boolean.TRUE.equals(config.getVendorFlag()) && ObjUtil.isNull(reqVO.getVendorId())) {
+ throw exception(WM_BATCH_VENDOR_REQUIRED);
}
// 瀹㈡埛
- if (Boolean.TRUE.equals(config.getClientFlag())) {
- if (ObjUtil.isNull(reqVO.getClientId())) {
- throw exception(WM_BATCH_CLIENT_REQUIRED);
- }
- batch.setClientId(reqVO.getClientId());
+ if (Boolean.TRUE.equals(config.getClientFlag()) && ObjUtil.isNull(reqVO.getClientId())) {
+ throw exception(WM_BATCH_CLIENT_REQUIRED);
}
// 閲囪喘璁㈠崟缂栧彿
- if (Boolean.TRUE.equals(config.getPurchaseOrderCodeFlag())) {
- if (ObjUtil.isNull(reqVO.getPurchaseOrderCode())) {
- throw exception(WM_BATCH_PURCHASE_ORDER_CODE_REQUIRED);
- }
- batch.setPurchaseOrderCode(reqVO.getPurchaseOrderCode());
+ if (Boolean.TRUE.equals(config.getPurchaseOrderCodeFlag()) && ObjUtil.isNull(reqVO.getPurchaseOrderCode())) {
+ throw exception(WM_BATCH_PURCHASE_ORDER_CODE_REQUIRED);
}
// 閿�鍞鍗曠紪鍙�
- if (Boolean.TRUE.equals(config.getSalesOrderCodeFlag())) {
- if (ObjUtil.isNull(reqVO.getSalesOrderCode())) {
- throw exception(WM_BATCH_CUSTOMER_ORDER_CODE_REQUIRED);
- }
- batch.setSalesOrderCode(reqVO.getSalesOrderCode());
+ if (Boolean.TRUE.equals(config.getSalesOrderCodeFlag()) && ObjUtil.isNull(reqVO.getSalesOrderCode())) {
+ throw exception(WM_BATCH_CUSTOMER_ORDER_CODE_REQUIRED);
}
// 鐢熶骇宸ュ崟
- if (Boolean.TRUE.equals(config.getWorkOrderFlag())) {
- if (ObjUtil.isNull(reqVO.getWorkOrderId())) {
- throw exception(WM_BATCH_WORK_ORDER_REQUIRED);
- }
- batch.setWorkOrderId(reqVO.getWorkOrderId());
+ if (Boolean.TRUE.equals(config.getWorkOrderFlag()) && ObjUtil.isNull(reqVO.getWorkOrderId())) {
+ throw exception(WM_BATCH_WORK_ORDER_REQUIRED);
}
// 鐢熶骇浠诲姟
- if (Boolean.TRUE.equals(config.getTaskFlag())) {
- if (ObjUtil.isNull(reqVO.getTaskId())) {
- throw exception(WM_BATCH_TASK_REQUIRED);
- }
- batch.setTaskId(reqVO.getTaskId());
+ if (Boolean.TRUE.equals(config.getTaskFlag()) && ObjUtil.isNull(reqVO.getTaskId())) {
+ throw exception(WM_BATCH_TASK_REQUIRED);
}
// 宸ヤ綔绔�
- if (Boolean.TRUE.equals(config.getWorkstationFlag())) {
- if (ObjUtil.isNull(reqVO.getWorkstationId())) {
- throw exception(WM_BATCH_WORKSTATION_REQUIRED);
- }
- batch.setWorkstationId(reqVO.getWorkstationId());
+ if (Boolean.TRUE.equals(config.getWorkstationFlag()) && ObjUtil.isNull(reqVO.getWorkstationId())) {
+ throw exception(WM_BATCH_WORKSTATION_REQUIRED);
}
// 宸ュ叿
- if (Boolean.TRUE.equals(config.getToolFlag())) {
- if (ObjUtil.isNull(reqVO.getToolId())) {
- throw exception(WM_BATCH_TOOL_REQUIRED);
- }
- batch.setToolId(reqVO.getToolId());
+ if (Boolean.TRUE.equals(config.getToolFlag()) && ObjUtil.isNull(reqVO.getToolId())) {
+ throw exception(WM_BATCH_TOOL_REQUIRED);
}
// 妯″叿
- if (Boolean.TRUE.equals(config.getMoldFlag())) {
- if (ObjUtil.isNull(reqVO.getMoldId())) {
- throw exception(WM_BATCH_MOLD_REQUIRED);
- }
- batch.setMoldId(reqVO.getMoldId());
+ if (Boolean.TRUE.equals(config.getMoldFlag()) && ObjUtil.isNull(reqVO.getMoldId())) {
+ throw exception(WM_BATCH_MOLD_REQUIRED);
}
// 鐢熶骇鎵瑰彿
- if (Boolean.TRUE.equals(config.getLotNumberFlag())) {
- if (ObjUtil.isNull(reqVO.getLotNumber())) {
- throw exception(WM_BATCH_LOT_NUMBER_REQUIRED);
- }
- batch.setLotNumber(reqVO.getLotNumber());
+ if (Boolean.TRUE.equals(config.getLotNumberFlag()) && ObjUtil.isNull(reqVO.getLotNumber())) {
+ throw exception(WM_BATCH_LOT_NUMBER_REQUIRED);
}
// 璐ㄩ噺鐘舵��
- if (Boolean.TRUE.equals(config.getQualityStatusFlag())) {
- if (ObjUtil.isNull(reqVO.getQualityStatus())) {
- throw exception(WM_BATCH_QUALITY_STATUS_REQUIRED);
- }
- batch.setQualityStatus(reqVO.getQualityStatus());
+ if (Boolean.TRUE.equals(config.getQualityStatusFlag()) && ObjUtil.isNull(reqVO.getQualityStatus())) {
+ throw exception(WM_BATCH_QUALITY_STATUS_REQUIRED);
}
}
- // 鏃犳壒娆¢厤缃椂锛屼娇鐢ㄤ紶鍏ョ殑鍙傛暟锛堝鏉炬ā寮忥紝閫傜敤浜庤嚜瀹氫箟鍏ュ簱绛夊満鏅級
- else {
- if (reqVO.getProduceDate() != null) {
- batch.setProduceDate(reqVO.getProduceDate());
- }
- if (reqVO.getReceiptDate() != null) {
- batch.setReceiptDate(reqVO.getReceiptDate());
- }
- if (reqVO.getExpireDate() != null) {
- batch.setExpireDate(reqVO.getExpireDate());
- }
- if (reqVO.getVendorId() != null) {
- batch.setVendorId(reqVO.getVendorId());
- }
- if (reqVO.getClientId() != null) {
- batch.setClientId(reqVO.getClientId());
- }
+
+ // ========== 淇濆瓨瀛楁锛堟棤璁烘湁鏃犻厤缃紝鍙璋冪敤鏂逛紶浜嗗氨淇濆瓨锛� ==========
+ if (reqVO.getProduceDate() != null) {
+ batch.setProduceDate(reqVO.getProduceDate());
+ }
+ if (reqVO.getReceiptDate() != null) {
+ batch.setReceiptDate(reqVO.getReceiptDate());
+ }
+ if (reqVO.getExpireDate() != null) {
+ batch.setExpireDate(reqVO.getExpireDate());
+ }
+ if (reqVO.getVendorId() != null) {
+ batch.setVendorId(reqVO.getVendorId());
+ }
+ if (reqVO.getClientId() != null) {
+ batch.setClientId(reqVO.getClientId());
+ }
+ if (reqVO.getPurchaseOrderCode() != null) {
+ batch.setPurchaseOrderCode(reqVO.getPurchaseOrderCode());
+ }
+ if (reqVO.getSalesOrderCode() != null) {
+ batch.setSalesOrderCode(reqVO.getSalesOrderCode());
+ }
+ if (reqVO.getWorkOrderId() != null) {
+ batch.setWorkOrderId(reqVO.getWorkOrderId());
+ }
+ if (reqVO.getTaskId() != null) {
+ batch.setTaskId(reqVO.getTaskId());
+ }
+ if (reqVO.getWorkstationId() != null) {
+ batch.setWorkstationId(reqVO.getWorkstationId());
+ }
+ if (reqVO.getToolId() != null) {
+ batch.setToolId(reqVO.getToolId());
+ }
+ if (reqVO.getMoldId() != null) {
+ batch.setMoldId(reqVO.getMoldId());
+ }
+ if (reqVO.getLotNumber() != null) {
+ batch.setLotNumber(reqVO.getLotNumber());
+ }
+ if (reqVO.getQualityStatus() != null) {
+ batch.setQualityStatus(reqVO.getQualityStatus());
}
// 3.1 鎯呭喌涓�锛氫紶鍏ヤ簡 batchCode锛屾煡璇㈡槸鍚﹀瓨鍦ㄨ鎵规鍙�
--
Gitblit v1.9.3