From e86cd6325395c784d1c116a035987a5cf19bbe69 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期四, 13 三月 2025 17:19:17 +0800
Subject: [PATCH] #优化 Excel表格,保存优化
---
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/AsnOrderController.java | 10 +
rsf-common/pom.xml | 10 +
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/AsnOrderItemController.java | 5
rsf-server/src/main/java/com/vincent/rsf/server/system/constant/SerialRuleCode.java | 5
rsf-server/src/main/java/com/vincent/rsf/server/common/handler/ExcelDictHandlerImpl.java | 49 +++++
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/AsnOrderService.java | 3
rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/ScheduleJobs.java | 6
rsf-server/src/main/java/com/vincent/rsf/server/common/handler/AggregationDataHandler.java | 69 +++++++
rsf-server/src/main/java/com/vincent/rsf/server/common/utils/ExcelUtil.java | 18 +
rsf-server/src/main/java/com/vincent/rsf/server/common/handler/global/GlobalDictService.java | 136 +++++++++++++++
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderItemServiceImpl.java | 4
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderServiceImpl.java | 22 ++
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/excel/AsnOrderTemplate.java | 6
rsf-common/src/main/java/com/vincent/rsf/common/domain/BeanValidators.java | 138 +++++++++++++++
14 files changed, 464 insertions(+), 17 deletions(-)
diff --git a/rsf-common/pom.xml b/rsf-common/pom.xml
index fb8d0ac..e3d17b7 100644
--- a/rsf-common/pom.xml
+++ b/rsf-common/pom.xml
@@ -44,6 +44,16 @@
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
</dependency>
+ <dependency>
+ <groupId>javax.validation</groupId>
+ <artifactId>validation-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.google.guava</groupId>
+ <artifactId>guava</artifactId>
+ <version>30.1.1-jre</version>
+ <scope>compile</scope>
+ </dependency>
</dependencies>
<build>
diff --git a/rsf-common/src/main/java/com/vincent/rsf/common/domain/BeanValidators.java b/rsf-common/src/main/java/com/vincent/rsf/common/domain/BeanValidators.java
new file mode 100644
index 0000000..7d69cc5
--- /dev/null
+++ b/rsf-common/src/main/java/com/vincent/rsf/common/domain/BeanValidators.java
@@ -0,0 +1,138 @@
+package com.vincent.rsf.common.domain;
+
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+import com.google.common.collect.Sets;
+
+import javax.validation.ConstraintViolation;
+import javax.validation.ConstraintViolationException;
+import javax.validation.Validator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * ${DESCRIPTION}
+ *
+ * @author Super-Admin
+ * @CreateUser Ryan
+ * @CreateTime 2018/6/14 16:12
+ * @ModifyUser YunTao.Zhou
+ * @ModifiedTime 2018/6/14 16:12
+ * @Version 1.0
+ */
+public class BeanValidators {
+
+ /**
+ *
+ * @param validator
+ * @param list
+ * @param groups
+ * @throws ConstraintViolationException
+ */
+ public static void validateListWithException(Validator validator, List<?> list, Class<?>... groups)
+ throws ConstraintViolationException {
+ if(list.isEmpty()){
+ return;
+ }
+ Set constraintViolations = Sets.newHashSet();
+ for (Object o : list) {
+ constraintViolations.addAll( validator.validate(o, groups));
+ if (!constraintViolations.isEmpty()) {
+ throw new ConstraintViolationException(constraintViolations);
+ }
+ }
+ }
+
+ public static void validateArrayWithException(Validator validator, Object[] array, Class<?>... groups){
+ BeanValidators.validateListWithException(validator, Lists.newArrayList(array),groups);
+ }
+
+
+ /**
+ * 璋冪敤JSR303鐨剉alidate鏂规硶, 楠岃瘉澶辫触鏃舵姏鍑篊onstraintViolationException.
+ */
+ @SuppressWarnings({ "unchecked", "rawtypes" })
+ public static void validateWithException(Validator validator, Object object, Class<?>... groups)
+ throws ConstraintViolationException {
+ Set constraintViolations = validator.validate(object, groups);
+ if (!constraintViolations.isEmpty()) {
+ throw new ConstraintViolationException(constraintViolations);
+ }
+ }
+
+ /**
+ * 杈呭姪鏂规硶, 杞崲ConstraintViolationException涓殑Set<ConstraintViolations>涓负List<message>.
+ */
+ public static List<String> extractMessage(ConstraintViolationException e) {
+ return extractMessage(e.getConstraintViolations());
+ }
+
+ /**
+ * 杈呭姪鏂规硶, 杞崲Set<ConstraintViolation>涓篖ist<message>
+ */
+ @SuppressWarnings("rawtypes")
+ public static List<String> extractMessage(Set<? extends ConstraintViolation> constraintViolations) {
+ List<String> errorMessages = Lists.newArrayList();
+ for (ConstraintViolation violation : constraintViolations) {
+ errorMessages.add(violation.getMessage());
+ }
+ return errorMessages;
+ }
+
+ /**
+ * 杈呭姪鏂规硶, 杞崲ConstraintViolationException涓殑Set<ConstraintViolations>涓篗ap<property, message>.
+ */
+ public static Map<String, String> extractPropertyAndMessage(ConstraintViolationException e) {
+ return extractPropertyAndMessage(e.getConstraintViolations());
+ }
+
+ /**
+ * 杈呭姪鏂规硶, 杞崲Set<ConstraintViolation>涓篗ap<property, message>.
+ */
+ @SuppressWarnings("rawtypes")
+ public static Map<String, String> extractPropertyAndMessage(Set<? extends ConstraintViolation> constraintViolations) {
+ Map<String, String> errorMessages = Maps.newHashMap();
+ for (ConstraintViolation violation : constraintViolations) {
+ errorMessages.put(violation.getPropertyPath().toString(), violation.getMessage());
+ }
+ return errorMessages;
+ }
+
+ /**
+ * 杈呭姪鏂规硶, 杞崲ConstraintViolationException涓殑Set<ConstraintViolations>涓篖ist<propertyPath message>.
+ */
+ public static List<String> extractPropertyAndMessageAsList(ConstraintViolationException e) {
+ return extractPropertyAndMessageAsList(e.getConstraintViolations(), " ");
+ }
+
+ /**
+ * 杈呭姪鏂规硶, 杞崲Set<ConstraintViolations>涓篖ist<propertyPath message>.
+ */
+ @SuppressWarnings("rawtypes")
+ public static List<String> extractPropertyAndMessageAsList(Set<? extends ConstraintViolation> constraintViolations) {
+ return extractPropertyAndMessageAsList(constraintViolations, " ");
+ }
+
+ /**
+ * 杈呭姪鏂规硶, 杞崲ConstraintViolationException涓殑Set<ConstraintViolations>涓篖ist<propertyPath +separator+ message>.
+ */
+ public static List<String> extractPropertyAndMessageAsList(ConstraintViolationException e, String separator) {
+ return extractPropertyAndMessageAsList(e.getConstraintViolations(), separator);
+ }
+
+ /**
+ * 杈呭姪鏂规硶, 杞崲Set<ConstraintViolation>涓篖ist<propertyPath +separator+ message>.
+ */
+ @SuppressWarnings("rawtypes")
+ public static List<String> extractPropertyAndMessageAsList(Set<? extends ConstraintViolation> constraintViolations,
+ String separator) {
+ List<String> errorMessages = Lists.newArrayList();
+ for (ConstraintViolation violation : constraintViolations) {
+ errorMessages.add(violation.getPropertyPath() + separator + violation.getMessage());
+ }
+ return errorMessages;
+ }
+
+}
+
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/common/handler/AggregationDataHandler.java b/rsf-server/src/main/java/com/vincent/rsf/server/common/handler/AggregationDataHandler.java
new file mode 100644
index 0000000..5030852
--- /dev/null
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/common/handler/AggregationDataHandler.java
@@ -0,0 +1,69 @@
+package com.vincent.rsf.server.common.handler;
+
+import cn.afterturn.easypoi.handler.impl.ExcelDataHandlerDefaultImpl;
+import cn.afterturn.easypoi.handler.inter.IExcelDataHandler;
+import com.google.common.collect.Lists;
+
+import java.util.List;
+
+/**
+ * @Description: 鐢ㄦ埛瀵煎叆鑱氬悎鏁版嵁澶勭悊鍣�
+ * @Author: Ryan
+ * @CreateDate: 2019/11/1 9:42
+ * @Version: 1.0
+ */
+public class AggregationDataHandler extends ExcelDataHandlerDefaultImpl {
+
+ private List<IExcelDataHandler> handlers = Lists.newArrayList();
+
+ public AggregationDataHandler(List<IExcelDataHandler> handlers) {
+
+ this.handlers = handlers;
+ }
+
+ public AggregationDataHandler(IExcelDataHandler... handlers) {
+ this(handlers == null ? Lists.newArrayList() : Lists.newArrayList(handlers));
+ }
+
+ @Override
+ public String[] getNeedHandlerFields() {
+ List<String> fields = Lists.newArrayList();
+ for (IExcelDataHandler handler : handlers) {
+ String[] needHandlerFields = handler.getNeedHandlerFields();
+ if (needHandlerFields == null) {
+ continue;
+ }
+ for (String needHandlerField : needHandlerFields) {
+ fields.add(needHandlerField);
+ }
+ }
+ return fields.toArray(new String[fields.size()]);
+ }
+
+ @Override
+ public Object importHandler(Object obj, String name, Object value) {
+ for (IExcelDataHandler handler : handlers) {
+ String[] needHandlerFields = handler.getNeedHandlerFields();
+ List<String> fieldList = Lists.newArrayList(needHandlerFields);
+ if (fieldList.contains(name)) {
+ handler.importHandler(obj, name, value);
+ break;
+ }
+ }
+ return super.importHandler(obj, name, value);
+ }
+
+ @Override
+ public Object exportHandler(Object obj, String name, Object value) {
+ for (IExcelDataHandler handler : handlers) {
+ String[] needHandlerFields = handler.getNeedHandlerFields();
+ List<String> fieldList = Lists.newArrayList(needHandlerFields);
+ if (fieldList.contains(name)) {
+ handler.exportHandler(obj, name, value);
+ break;
+ }
+ }
+ return super.exportHandler(obj, name, value);
+ }
+}
+
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/common/handler/ExcelDictHandlerImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/common/handler/ExcelDictHandlerImpl.java
new file mode 100644
index 0000000..4ecb420
--- /dev/null
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/common/handler/ExcelDictHandlerImpl.java
@@ -0,0 +1,49 @@
+package com.vincent.rsf.server.common.handler;
+
+import cn.afterturn.easypoi.handler.inter.IExcelDictHandler;
+import com.vincent.rsf.framework.common.SpringUtils;
+import com.vincent.rsf.server.common.handler.global.GlobalDictService;
+
+/**
+ * @Description: excel 瀛楀吀澶勭悊绫�
+ * @Author: Ryan
+ * @CreateDate: 2019/10/29 17:42
+ * @Version: 1.0
+ */
+public class ExcelDictHandlerImpl implements IExcelDictHandler {
+
+ private ExcelDictHandlerImpl() {
+ }
+
+ private volatile static ExcelDictHandlerImpl INSTANCE;
+
+ public static ExcelDictHandlerImpl getInstance() {
+ if (INSTANCE == null) {
+ synchronized (ExcelDictHandlerImpl.class) {
+ INSTANCE = new ExcelDictHandlerImpl();
+ }
+ }
+ return INSTANCE;
+ }
+
+ @Override
+ public String toName(String dict, Object obj, String name, Object value) {
+ return getGlobalDictService().getDictLabel(dict, (value != null ? value.toString() : null), (value != null ? value.toString() : null));
+ }
+
+ @Override
+ public String toValue(String dict, Object obj, String name, Object value) {
+ return getGlobalDictService().getDictValue(dict, (value != null ? value.toString() : null), (value != null ? value.toString() : null));
+ }
+
+ private GlobalDictService getGlobalDictService() {
+ try {
+ return SpringUtils.getBean(GlobalDictService.class);
+ } catch (Exception e) {
+ return null;
+ }
+ }
+
+
+}
+
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/common/handler/global/GlobalDictService.java b/rsf-server/src/main/java/com/vincent/rsf/server/common/handler/global/GlobalDictService.java
new file mode 100644
index 0000000..965ceb8
--- /dev/null
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/common/handler/global/GlobalDictService.java
@@ -0,0 +1,136 @@
+package com.vincent.rsf.server.common.handler.global;
+
+import com.google.common.collect.Lists;
+import com.vincent.rsf.framework.common.SpringUtils;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.InitializingBean;
+import org.springframework.stereotype.Service;
+
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+
+/**
+ * @Description: 瀛楀吀宸ュ叿绫伙紝鎻愪緵缁欏叏灞�浣跨敤
+ * @Author: Ryan
+ * @CreateDate: 2019/8/13 11:11
+ * @Version: 1.0
+ */
+@Slf4j
+@Service
+public class GlobalDictService implements InitializingBean {
+
+ private final ConcurrentHashMap<String, String> LOCAL_LABEL_CACHE = new ConcurrentHashMap();
+ private final ConcurrentHashMap<String, Set<Dict>> LOCAL_CACHE = new ConcurrentHashMap();
+
+ public void putDict(String type, String value, String label) {
+ LOCAL_LABEL_CACHE.put(type + "-" + value, label);
+ putToLocalCache(type, value, label);
+ }
+
+ private void putToLocalCache(String type, String value, String label) {
+ Dict dict = new Dict(value, label);
+ Set<Dict> dicts = LOCAL_CACHE.get(type);
+ if (dicts == null) {
+ dicts = new HashSet<>();
+ }
+ dicts.add(dict);
+ LOCAL_CACHE.put(type, dicts);
+ }
+
+ public String getDictLabel(String type, String value, String defaultLabel) {
+ String label = LOCAL_LABEL_CACHE.get(type + "-" + value);
+ if (label != null) {
+ return label;
+ }
+ if (StringUtils.isNotBlank(type) && StringUtils.isNotBlank(value)) {
+ synchronized (type.intern()) {
+ label = LOCAL_LABEL_CACHE.get(type + "-" + value);
+ if (label != null) {
+ return label;
+ }
+ }
+
+ }
+ return defaultLabel;
+ }
+
+ public String getDictLabel(String type, String value) {
+ return this.getDictLabel(type, value, null);
+ }
+
+ public String getDictLabels(String type, String values, String defaultValue) {
+ if (StringUtils.isNotBlank(type) && StringUtils.isNotBlank(values)) {
+ List<String> valueList = Lists.newArrayList();
+ for (String value : StringUtils.split(values, ",")) {
+ valueList.add(getDictLabel(value, type, defaultValue));
+ }
+ return StringUtils.join(valueList, ",");
+ }
+ return defaultValue;
+ }
+
+ public String getDictLabels(String type, String defaultValue) {
+ List<String> valueList = Lists.newArrayList();
+ Set<Dict> dicts = LOCAL_CACHE.get(type);
+ if (dicts == null) {
+ return defaultValue;
+ }
+ for (Dict dict : dicts) {
+ valueList.add(dict.getLabel());
+ }
+
+ return StringUtils.join(valueList, ",");
+ }
+
+
+ public String getDictValue(String type, String label, String defaultValue) {
+ if (StringUtils.isBlank(type) || StringUtils.isBlank(label)) {
+ return defaultValue;
+ }
+ Set<Dict> dicts = LOCAL_CACHE.get(type);
+ if (dicts != null) {
+ for (Dict dict : dicts) {
+ if (label.equalsIgnoreCase(dict.getLabel())) {
+ return dict.getValue();
+ }
+ }
+ }
+ return defaultValue;
+ }
+
+ public void clearAll() {
+ LOCAL_LABEL_CACHE.clear();
+ LOCAL_CACHE.clear();
+ }
+
+
+ @Override
+ public void afterPropertiesSet() throws Exception {
+
+
+ }
+
+ @Data
+ @AllArgsConstructor
+ @EqualsAndHashCode
+ private class Dict {
+ private String value;
+ private String label;
+ }
+
+ public static GlobalDictService getInstance() {
+ try {
+ GlobalDictService instance = SpringUtils.getBean(GlobalDictService.class);
+ return instance;
+ } catch (Exception e) {
+ return null;
+ }
+ }
+}
+
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/common/utils/ExcelUtil.java b/rsf-server/src/main/java/com/vincent/rsf/server/common/utils/ExcelUtil.java
index 922d42f..146149b 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/common/utils/ExcelUtil.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/common/utils/ExcelUtil.java
@@ -2,7 +2,13 @@
import cn.afterturn.easypoi.excel.annotation.Excel;
import cn.afterturn.easypoi.excel.entity.ImportParams;
+import cn.afterturn.easypoi.excel.entity.result.ExcelVerifyHandlerResult;
+import cn.afterturn.easypoi.handler.inter.IExcelDataHandler;
+import com.google.common.collect.Lists;
+import com.vincent.rsf.common.domain.BeanValidators;
import com.vincent.rsf.framework.common.Cools;
+import com.vincent.rsf.server.common.handler.AggregationDataHandler;
+import com.vincent.rsf.server.common.handler.ExcelDictHandlerImpl;
import com.vincent.rsf.server.manager.entity.excel.annotation.ExcelComment;
import io.swagger.annotations.ApiModelProperty;
import lombok.extern.slf4j.Slf4j;
@@ -14,6 +20,10 @@
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
+import javax.validation.ConstraintViolationException;
+import javax.validation.Validation;
+import javax.validation.Validator;
+import javax.validation.ValidatorFactory;
import java.io.IOException;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
@@ -26,7 +36,6 @@
*/
@Slf4j
public class ExcelUtil {
-
public static void build(Workbook workbook, HttpServletResponse response) {
response.reset();
Http.cors(response);
@@ -116,8 +125,11 @@
* @return
*/
public static ImportParams getDefaultImportParams() {
- ImportParams params = new ImportParams();
- return params;
+ ImportParams importParams = new ImportParams();
+ importParams.setTitleRows(0);
+ importParams.setHeadRows(1);
+ importParams.setSheetNum(1);
+ return importParams;
}
/**
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/AsnOrderController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/AsnOrderController.java
index 38b052e..51fb9d5 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/AsnOrderController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/AsnOrderController.java
@@ -139,4 +139,14 @@
return R.error("涓�閿笂鎶ュけ璐ワ紒锛�");
}
}
+
+ @PostMapping("/asnOrder/generate/barcode")
+ @ApiOperation("鐢熸垚ASN鏍囩")
+ @PreAuthorize("hasAuthority('manager:asnOrder:list')")
+ public R generateBarcode(@RequestBody List<AsnOrder> orders) {
+ if (orders.isEmpty()) {
+ return R.error("鍗曟嵁涓嶈兘涓虹┖!!");
+ }
+ return asnOrderService.generateBarcode(orders);
+ }
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/AsnOrderItemController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/AsnOrderItemController.java
index 0b65aca..dff2932 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/AsnOrderItemController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/AsnOrderItemController.java
@@ -76,15 +76,12 @@
throw new CoolException("淇℃伅涓嶈兘涓虹┖锛侊紒");
}
params.put("createBy", getLoginUserId());
- params.put("updateBy", getLoginUser());
+ params.put("updateBy", getLoginUserId());
if (!asnOrderItemService.fieldsSave(params)) {
return R.error("Save Fail");
}
return R.ok("Save Success");
-
-
-
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/excel/AsnOrderTemplate.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/excel/AsnOrderTemplate.java
index 54f5883..c3c09a5 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/excel/AsnOrderTemplate.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/excel/AsnOrderTemplate.java
@@ -5,8 +5,6 @@
import cn.afterturn.easypoi.handler.inter.IExcelModel;
import com.vincent.rsf.server.manager.entity.excel.annotation.ExcelAutoColumnSize;
import com.vincent.rsf.server.manager.entity.excel.annotation.ExcelComment;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
@@ -24,8 +22,8 @@
@Data
@ExcelAutoColumnSize
@Accessors(chain = true)
-@ToString(callSuper = true)
-@EqualsAndHashCode(callSuper = false)
+//@ToString(callSuper = true)
+//@EqualsAndHashCode(callSuper = false)
public class AsnOrderTemplate implements IExcelModel, IExcelDataModel, Serializable {
@Excel(name = "琛屽彿")
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/ScheduleJobs.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/ScheduleJobs.java
index 8616605..ec1e5de 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/ScheduleJobs.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/ScheduleJobs.java
@@ -98,8 +98,8 @@
if (Objects.isNull(matnr)) {
throw new CoolException("鏁版嵁閿欒锛氬綋鍓嶇墿鏂欎笉瀛樺湪!!");
}
- //TODO barcode鐢熸垚绛栫暐
- String barcode = code + matnr.getCode();
+// //TODO barcode鐢熸垚绛栫暐
+// String barcode = code + matnr.getCode();
orderItem.setAnfme(item.getAnfme())
.setAsnId(order.getId())
.setQty(item.getQty())
@@ -109,7 +109,7 @@
.setMatnk(item.getMatnrName())
.setPoDetlId(item.getId())
.setPlatItemId(item.getPlatItemId())
- .setBarcode(barcode)
+// .setBarcode(barcode)
.setPoCode(purchase.getCode())
.setPurQty(item.getAnfme())
.setPurUnit(item.getUnit())
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/AsnOrderService.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/AsnOrderService.java
index 3415d00..9e87f4a 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/AsnOrderService.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/AsnOrderService.java
@@ -1,6 +1,7 @@
package com.vincent.rsf.server.manager.service;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.vincent.rsf.framework.common.R;
import com.vincent.rsf.server.manager.entity.AsnOrder;
import java.util.List;
@@ -8,4 +9,6 @@
public interface AsnOrderService extends IService<AsnOrder> {
boolean notifyInspect(List<AsnOrder> orders);
+
+ R generateBarcode(List<AsnOrder> orders);
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderItemServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderItemServiceImpl.java
index b7775b2..60596bb 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderItemServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderItemServiceImpl.java
@@ -10,7 +10,6 @@
import com.vincent.rsf.server.common.utils.ExcelUtil;
import com.vincent.rsf.server.manager.entity.AsnOrder;
import com.vincent.rsf.server.manager.entity.excel.AsnOrderTemplate;
-import com.vincent.rsf.server.manager.entity.excel.MatnrsTemplate;
import com.vincent.rsf.server.manager.mapper.AsnOrderItemMapper;
import com.vincent.rsf.server.manager.entity.AsnOrderItem;
import com.vincent.rsf.server.manager.mapper.AsnOrderMapper;
@@ -27,7 +26,6 @@
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
-import java.io.IOException;
import java.util.*;
@Service("asnOrderItemService")
@@ -44,7 +42,7 @@
@Override
@Transactional(rollbackFor = Exception.class)
public R excelImport(MultipartFile file, HashMap<String, Object> hashMap) throws Exception {
- ExcelImportResult<AsnOrderTemplate> result = ExcelImportUtil.importExcelMore(file.getInputStream(), MatnrsTemplate.class, ExcelUtil.getDefaultImportParams());
+ ExcelImportResult result = ExcelImportUtil.importExcelMore(file.getInputStream(), AsnOrderTemplate.class, ExcelUtil.getDefaultImportParams());
if (result.getList().isEmpty()) {
throw new CoolException("鐗╂枡瀵煎叆澶辫触锛侊紒");
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderServiceImpl.java
index 3e6b57d..3bac15f 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderServiceImpl.java
@@ -1,14 +1,21 @@
package com.vincent.rsf.server.manager.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.vincent.rsf.framework.common.R;
import com.vincent.rsf.framework.exception.CoolException;
import com.vincent.rsf.server.api.entity.dto.PoItemsDto;
import com.vincent.rsf.server.api.service.ReceiveMsgService;
+import com.vincent.rsf.server.manager.entity.AsnOrderItem;
import com.vincent.rsf.server.manager.mapper.AsnOrderItemMapper;
import com.vincent.rsf.server.manager.mapper.AsnOrderMapper;
import com.vincent.rsf.server.manager.entity.AsnOrder;
import com.vincent.rsf.server.manager.mapper.PurchaseMapper;
import com.vincent.rsf.server.manager.service.AsnOrderService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.vincent.rsf.server.system.constant.SerialRuleCode;
+import com.vincent.rsf.server.system.entity.SerialRule;
+import com.vincent.rsf.server.system.mapper.SerialRuleMapper;
+import com.vincent.rsf.server.system.utils.SerialRuleUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -35,6 +42,9 @@
@Resource
private AsnOrderItemMapper asnOrderItemMapper;
+ @Resource
+ private SerialRuleMapper serialRuleMapper;
+
@Override
public boolean notifyInspect(List<AsnOrder> orders) {
if (orders.isEmpty()) {
@@ -51,4 +61,16 @@
return false;
}
}
+
+ @Override
+ public R generateBarcode(List<AsnOrder> orders) {
+ orders.forEach(order -> {
+ List<AsnOrderItem> items = asnOrderItemMapper.selectList(new LambdaQueryWrapper<AsnOrderItem>().eq(AsnOrderItem::getAsnId, order.getId()));
+ items.forEach(item -> {
+ String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_LABEL_CODE, item);
+ //TODO asnorderitem 娣诲姞鍗曠嫭鐨勫瓧娈碉紝淇濆瓨缂栫爜
+ });
+ });
+ return R.ok();
+ }
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/SerialRuleCode.java b/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/SerialRuleCode.java
index 49bc53d..0a7d73b 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/SerialRuleCode.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/SerialRuleCode.java
@@ -23,4 +23,9 @@
* 鏀惰揣鎵规瑙勫垯
*/
public final static String SYS_RECEIPT_BATCH = "sys_receipt_batch";
+
+ /**
+ * ASN鏍囩鐢熸垚瑙勫垯
+ */
+ public final static String SYS_LABEL_CODE = "sys_label_code";
}
--
Gitblit v1.9.1