From 20956b0f05f81ca47cf6c3e8f9b3b426e9cfd035 Mon Sep 17 00:00:00 2001
From: XiaoRuby <3114200645@qq.com>
Date: 星期日, 24 九月 2023 21:54:01 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
system-run/src/test/java/com/yuanchu/mom/SystemRunApplicationTest.java | 24 +
inspect-server/src/main/resources/mapper/InspectUnacceptedMapper.xml | 112 ++--
inspect-server/src/main/resources/mapper/RawInspectMapper.xml | 10
framework/src/main/java/com/yuanchu/mom/exception/ExcelException.java | 25 +
framework/src/main/java/com/yuanchu/mom/utils/easyexcel/EasyExcelUtils.java | 405 +++++++++++++++++++
framework/src/main/java/com/yuanchu/mom/utils/easyexcel/ResponseResultEnum.java | 28 +
inspect-server/src/main/java/com/yuanchu/mom/service/impl/FinishedInspectServiceImpl.java | 3
inspect-server/src/main/java/com/yuanchu/mom/controller/ProcessInspectController.java | 7
inspect-server/src/main/java/com/yuanchu/mom/controller/RawInspectController.java | 15
pom.xml | 20
framework/src/main/java/com/yuanchu/mom/utils/easyexcel/template/ExportSaleTemplate.java | 68 +++
inspect-server/src/main/java/com/yuanchu/mom/pojo/RawInspect.java | 5
framework/src/main/java/com/yuanchu/mom/utils/easyexcel/converter/SaleTypeConverter.java | 48 ++
inventory-server/src/main/java/com/yuanchu/mom/service/SaleService.java | 11
inspect-server/src/main/java/com/yuanchu/mom/pojo/vo/RawInspectVo.java | 7
inspect-server/src/main/java/com/yuanchu/mom/service/impl/ProcessInspectServiceImpl.java | 3
framework/pom.xml | 14
framework/src/main/java/com/yuanchu/mom/utils/easyexcel/CustemHandler.java | 81 +++
inventory-server/src/main/java/com/yuanchu/mom/controller/SaleController.java | 29 +
inspect-server/src/main/java/com/yuanchu/mom/service/FinishedInspectService.java | 2
inventory-server/src/main/java/com/yuanchu/mom/pojo/dto/ExportSaleDto.java | 30 +
inspect-server/src/main/java/com/yuanchu/mom/service/ProcessInspectService.java | 2
inspect-server/src/main/java/com/yuanchu/mom/controller/FinishedInspectController.java | 7
inspect-server/src/main/java/com/yuanchu/mom/pojo/InspectUnaccepted.java | 5
inspect-server/src/main/java/com/yuanchu/mom/service/impl/RawInspectServiceImpl.java | 49 ++
inventory-server/src/main/java/com/yuanchu/mom/service/impl/SaleServiceImpl.java | 51 ++
inspect-server/src/main/java/com/yuanchu/mom/mapper/RawInspectMapper.java | 3
framework/src/main/java/com/yuanchu/mom/utils/easyexcel/ExcelListener.java | 79 +++
inventory-server/src/main/resources/mapper/SaleMapper.xml | 26 +
framework/src/main/java/com/yuanchu/mom/utils/easyexcel/LocalDateConverter.java | 43 ++
inventory-server/src/main/java/com/yuanchu/mom/mapper/SaleMapper.java | 4
inspect-server/src/main/java/com/yuanchu/mom/service/RawInspectService.java | 10
inventory-server/src/main/java/com/yuanchu/mom/Task/SyncOrder.java | 14
33 files changed, 1,155 insertions(+), 85 deletions(-)
diff --git a/framework/pom.xml b/framework/pom.xml
index 4fcce66..6ca70ae 100644
--- a/framework/pom.xml
+++ b/framework/pom.xml
@@ -38,5 +38,19 @@
<groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId>
</dependency>
+ <dependency>
+ <groupId>com.alibaba</groupId>
+ <artifactId>easyexcel</artifactId>
+ </dependency>
+ <!--poi-->
+ <dependency>
+ <groupId>org.apache.poi</groupId>
+ <artifactId>poi</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.github.whvcse</groupId>
+ <artifactId>easy-captcha</artifactId>
+ <version>1.6.2</version>
+ </dependency>
</dependencies>
</project>
diff --git a/framework/src/main/java/com/yuanchu/mom/exception/ExcelException.java b/framework/src/main/java/com/yuanchu/mom/exception/ExcelException.java
new file mode 100644
index 0000000..c5d18ab
--- /dev/null
+++ b/framework/src/main/java/com/yuanchu/mom/exception/ExcelException.java
@@ -0,0 +1,25 @@
+package com.yuanchu.mom.exception;
+
+import com.yuanchu.mom.utils.easyexcel.ResponseResultEnum;
+import lombok.Getter;
+
+/**
+ * excel鍏ㄥ眬寮傚父
+ * @auther Zou, Yu
+ * @create 2023-9-24
+ */
+@Getter
+public class ExcelException extends RuntimeException {
+
+ private Integer status;
+
+ public ExcelException(ResponseResultEnum resultEnum) {
+ super(resultEnum.getMessage());
+ this.status = resultEnum.getStatus();
+ }
+
+ public ExcelException(Integer status, String message) {
+ super(message);
+ this.status = status;
+ }
+}
diff --git a/framework/src/main/java/com/yuanchu/mom/utils/easyexcel/CustemHandler.java b/framework/src/main/java/com/yuanchu/mom/utils/easyexcel/CustemHandler.java
new file mode 100644
index 0000000..e6fc804
--- /dev/null
+++ b/framework/src/main/java/com/yuanchu/mom/utils/easyexcel/CustemHandler.java
@@ -0,0 +1,81 @@
+package com.yuanchu.mom.utils.easyexcel;
+
+import com.alibaba.excel.enums.CellDataTypeEnum;
+import com.alibaba.excel.metadata.CellData;
+import com.alibaba.excel.metadata.Head;
+import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
+import com.alibaba.excel.write.style.column.AbstractColumnWidthStyleStrategy;
+import org.apache.poi.ss.usermodel.Cell;
+import org.springframework.util.CollectionUtils;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+*@author: Zou, Yu
+*@description:
+*@date: 2023/9/24 0024 12:56
+**/
+public class CustemHandler extends AbstractColumnWidthStyleStrategy {
+
+ private static final int MAX_COLUMN_WIDTH = 255;
+ //鍥犱负鍦ㄨ嚜鍔ㄥ垪瀹界殑杩囩▼涓紝鏈変簺璁剧疆鍦版柟璁╁垪瀹芥樉寰楃揣鍑戯紝鎵�浠ュ仛鍑轰簡涓垽鏂�
+ private static final int COLUMN_WIDTH = 20;
+ private Map<Integer, Map<Integer, Integer>> CACHE = new HashMap(8);
+
+ public CustemHandler() {
+ }
+
+ @Override
+ protected void setColumnWidth(WriteSheetHolder writeSheetHolder, List<CellData> cellDataList, Cell cell, Head head, Integer relativeRowIndex, Boolean isHead) {
+ boolean needSetWidth = isHead || !CollectionUtils.isEmpty(cellDataList);
+ if (needSetWidth) {
+ Map<Integer, Integer> maxColumnWidthMap = (Map) CACHE.get(writeSheetHolder.getSheetNo());
+ if (maxColumnWidthMap == null) {
+ maxColumnWidthMap = new HashMap(16);
+ CACHE.put(writeSheetHolder.getSheetNo(), maxColumnWidthMap);
+ }
+
+ Integer columnWidth = this.dataLength(cellDataList, cell, isHead);
+ if (columnWidth >= 0) {
+ if (columnWidth > MAX_COLUMN_WIDTH) {
+ columnWidth = MAX_COLUMN_WIDTH;
+ } else {
+ if (columnWidth < COLUMN_WIDTH) {
+ columnWidth = columnWidth * 2;
+ }
+ }
+
+ Integer maxColumnWidth = (Integer) ((Map) maxColumnWidthMap).get(cell.getColumnIndex());
+ if (maxColumnWidth == null || columnWidth > maxColumnWidth) {
+ ((Map) maxColumnWidthMap).put(cell.getColumnIndex(), columnWidth);
+ writeSheetHolder.getSheet().setColumnWidth(cell.getColumnIndex(), columnWidth * 256);
+ }
+ }
+ }
+ }
+
+ private Integer dataLength(List<CellData> cellDataList, Cell cell, Boolean isHead) {
+ if (isHead) {
+ return cell.getStringCellValue().getBytes().length;
+ } else {
+ CellData cellData = (CellData) cellDataList.get(0);
+ CellDataTypeEnum type = cellData.getType();
+ if (type == null) {
+ return -1;
+ } else {
+ switch (type) {
+ case STRING:
+ return cellData.getStringValue().getBytes().length;
+ case BOOLEAN:
+ return cellData.getBooleanValue().toString().getBytes().length;
+ case NUMBER:
+ return cellData.getNumberValue().toString().getBytes().length;
+ default:
+ return -1;
+ }
+ }
+ }
+ }
+}
diff --git a/framework/src/main/java/com/yuanchu/mom/utils/easyexcel/EasyExcelUtils.java b/framework/src/main/java/com/yuanchu/mom/utils/easyexcel/EasyExcelUtils.java
new file mode 100644
index 0000000..578666c
--- /dev/null
+++ b/framework/src/main/java/com/yuanchu/mom/utils/easyexcel/EasyExcelUtils.java
@@ -0,0 +1,405 @@
+package com.yuanchu.mom.utils.easyexcel;
+
+
+import com.alibaba.excel.EasyExcelFactory;
+import com.alibaba.excel.ExcelReader;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.metadata.Font;
+import com.alibaba.excel.metadata.Sheet;
+import com.alibaba.excel.metadata.Table;
+import com.alibaba.excel.metadata.TableStyle;
+import com.alibaba.excel.metadata.*;
+import com.alibaba.excel.support.ExcelTypeEnum;
+import com.alibaba.excel.write.metadata.style.WriteCellStyle;
+import com.alibaba.excel.write.metadata.style.WriteFont;
+import com.alibaba.excel.write.style.HorizontalCellStyleStrategy;
+import com.yuanchu.mom.exception.ExcelException;
+import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.*;
+import org.apache.poi.xssf.usermodel.XSSFSheet;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.*;
+import java.util.Calendar;
+import java.util.List;
+import java.util.Map;
+
+/**
+*@author: Zou, Yu
+*@description:
+*@date: 2023/9/24 0024 13:18
+**/
+public class EasyExcelUtils {
+
+
+ public static HorizontalCellStyleStrategy getStyleStrategy() {
+ // 澶寸殑绛栫暐
+ WriteCellStyle headWriteCellStyle = new WriteCellStyle();
+ // 鑳屾櫙璁剧疆涓虹伆鑹�
+ headWriteCellStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
+ WriteFont headWriteFont = new WriteFont();
+ headWriteFont.setFontHeightInPoints((short) 12);
+ // 瀛椾綋鏍峰紡
+ headWriteFont.setFontName("Frozen");
+ headWriteCellStyle.setWriteFont(headWriteFont);
+ // 鑷姩鎹㈣
+ headWriteCellStyle.setWrapped(false);
+ // 姘村钩瀵归綈鏂瑰紡
+ headWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
+ // 鍨傜洿瀵归綈鏂瑰紡
+ headWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
+
+ // 鍐呭鐨勭瓥鐣�
+ WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
+ // 杩欓噷闇�瑕佹寚瀹� FillPatternType 涓篎illPatternType.SOLID_FOREGROUND 涓嶇劧鏃犳硶鏄剧ず鑳屾櫙棰滆壊.澶撮粯璁や簡 FillPatternType鎵�浠ュ彲浠ヤ笉鎸囧畾
+// contentWriteCellStyle.setFillPatternType(FillPatternType.SQUARES);
+ // 鑳屾櫙鐧借壊
+ contentWriteCellStyle.setFillForegroundColor(IndexedColors.WHITE.getIndex());
+ WriteFont contentWriteFont = new WriteFont();
+ // 瀛椾綋澶у皬
+ contentWriteFont.setFontHeightInPoints((short) 12);
+ // 瀛椾綋鏍峰紡
+ contentWriteFont.setFontName("Calibri");
+ contentWriteCellStyle.setWriteFont(contentWriteFont);
+ // 鍐呭宸﹀榻�
+ contentWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.LEFT);
+ // 杩欎釜绛栫暐鏄� 澶存槸澶寸殑鏍峰紡 鍐呭鏄唴瀹圭殑鏍峰紡 鍏朵粬鐨勭瓥鐣ュ彲浠ヨ嚜宸卞疄鐜�
+ return new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle);
+ }
+
+ public static HorizontalCellStyleStrategy getStyleFixedStrategy() {
+ // 澶寸殑绛栫暐
+ WriteCellStyle headWriteCellStyle = new WriteCellStyle();
+ // 鑳屾櫙璁剧疆涓虹伆鑹�
+ headWriteCellStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
+ WriteFont headWriteFont = new WriteFont();
+ headWriteFont.setFontHeightInPoints((short) 12);
+ // 瀛椾綋鏍峰紡
+ headWriteFont.setFontName("Calibri");
+ headWriteCellStyle.setWriteFont(headWriteFont);
+ // 鑷姩鎹㈣
+ headWriteCellStyle.setWrapped(false);
+ // 姘村钩瀵归綈鏂瑰紡
+ headWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.LEFT);
+ // 鍨傜洿瀵归綈鏂瑰紡
+ headWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
+ // 鍐呭鐨勭瓥鐣�
+ WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
+ // 杩欓噷闇�瑕佹寚瀹� FillPatternType 涓篎illPatternType.SOLID_FOREGROUND 涓嶇劧鏃犳硶鏄剧ず鑳屾櫙棰滆壊.澶撮粯璁や簡 FillPatternType鎵�浠ュ彲浠ヤ笉鎸囧畾
+// contentWriteCellStyle.setFillPatternType(FillPatternType.SQUARES);
+ // 鑳屾櫙鐧借壊
+ contentWriteCellStyle.setFillForegroundColor(IndexedColors.WHITE.getIndex());
+ WriteFont contentWriteFont = new WriteFont();
+ // 瀛椾綋澶у皬
+ contentWriteFont.setFontHeightInPoints((short) 10);
+ // 瀛椾綋鏍峰紡
+ contentWriteFont.setFontName("Calibri");
+ contentWriteCellStyle.setWriteFont(contentWriteFont);
+ // 鍐呭宸﹀榻�
+ contentWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.LEFT);
+ // 杩欎釜绛栫暐鏄� 澶存槸澶寸殑鏍峰紡 鍐呭鏄唴瀹圭殑鏍峰紡 鍏朵粬鐨勭瓥鐣ュ彲浠ヨ嚜宸卞疄鐜�
+ return new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle);
+ }
+
+ public static HorizontalCellStyleStrategy getArveStyleStrategy() {
+ // 澶寸殑绛栫暐
+ WriteCellStyle headWriteCellStyle = new WriteCellStyle();
+ // 鑳屾櫙璁剧疆涓�
+ headWriteCellStyle.setFillForegroundColor(IndexedColors.BLACK.getIndex());
+ WriteFont headWriteFont = new WriteFont();
+ headWriteFont.setFontHeightInPoints((short) 12);
+ // 瀛椾綋鏍峰紡
+ headWriteFont.setFontName("Calibri");
+ headWriteFont.setColor(IndexedColors.WHITE.getIndex());
+ headWriteCellStyle.setWriteFont(headWriteFont);
+
+ headWriteCellStyle.setBorderBottom(BorderStyle.MEDIUM);
+ headWriteCellStyle.setLeftBorderColor(IndexedColors.WHITE.getIndex());
+ headWriteCellStyle.setRightBorderColor(IndexedColors.WHITE.getIndex());
+ // 鑷姩鎹㈣
+ headWriteCellStyle.setWrapped(true);
+ // 姘村钩瀵归綈鏂瑰紡
+ headWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.LEFT);
+ // 鍨傜洿瀵归綈鏂瑰紡
+ headWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
+ // 鍐呭鐨勭瓥鐣�
+ WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
+ // 杩欓噷闇�瑕佹寚瀹� FillPatternType 涓篎illPatternType.SOLID_FOREGROUND 涓嶇劧鏃犳硶鏄剧ず鑳屾櫙棰滆壊.澶撮粯璁や簡 FillPatternType鎵�浠ュ彲浠ヤ笉鎸囧畾
+// contentWriteCellStyle.setFillPatternType(FillPatternType.SQUARES);
+ // 鑳屾櫙鐧借壊
+ contentWriteCellStyle.setFillForegroundColor(IndexedColors.WHITE.getIndex());
+ WriteFont contentWriteFont = new WriteFont();
+ // 瀛椾綋澶у皬
+ contentWriteFont.setFontHeightInPoints((short) 10);
+ // 瀛椾綋鏍峰紡
+ contentWriteFont.setFontName("Calibri");
+ contentWriteCellStyle.setWriteFont(contentWriteFont);
+ // 杩欎釜绛栫暐鏄� 澶存槸澶寸殑鏍峰紡 鍐呭鏄唴瀹圭殑鏍峰紡 鍏朵粬鐨勭瓥鐣ュ彲浠ヨ嚜宸卞疄鐜�
+ return new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle);
+ }
+
+ /**
+ * excel鏂囦欢璇诲彇
+ *
+ * @param clazz model绫诲瀷Class瀵硅薄
+ * @param excel excel鏂囦欢瀵硅薄
+ * @param <T> model绫诲瀷娉涘瀷
+ * @return model绫诲瀷鏁版嵁闆嗗悎
+ * @throws IOException IO寮傚父
+ */
+ public static <T extends BaseRowModel> List<T> readModelExcel(Class<T> clazz, MultipartFile excel) throws IOException {
+ ExcelListener<T> excelListener = new ExcelListener<>();
+ ExcelReader reader = getReader(excel, excelListener);
+ try {
+ reader.getSheets().forEach(sheet -> {
+ sheet.setClazz(clazz);
+ reader.read(sheet);
+ });
+ } catch (Exception e) {
+ throw new IOException("璇锋鏌ュ鍏ユā鏉匡紒");
+ }
+ return excelListener.getDataList();
+ }
+
+ /**
+ *
+ * @param clazz model绫诲瀷Class瀵硅薄
+ * @param excel excel鏂囦欢瀵硅薄
+ * @param sheetNumber 鎸囧畾sheet椤�
+ * @param <T> model绫诲瀷娉涘瀷
+ * @return model绫诲瀷鏁版嵁闆嗗悎
+ * @throws IOException
+ */
+ public static <T extends BaseRowModel> List<T> readModelSheetExcel(Class<T> clazz, MultipartFile excel, int sheetNumber) throws IOException {
+ ExcelListener<T> excelListener = new ExcelListener<>();
+ ExcelReader reader = getReader(excel, excelListener);
+ try {
+ Sheet sheet = reader.getSheets().get(sheetNumber);
+ sheet.setClazz(clazz);
+ reader.read(sheet);
+ } catch (Exception e) {
+ throw new IOException("璇锋鏌ュ鍏ユā鏉匡紒");
+ }
+ return excelListener.getDataList();
+ }
+
+ /**
+ * 鑾峰彇excel鏂囦欢璇诲彇瀵硅薄
+ *
+ * @param excel excel鏂囦欢瀵硅薄
+ * @param excelListener excel浜嬩欢澶勭悊
+ * @return excel 璇诲彇瀵硅薄
+ * @throws IOException IO寮傚父
+ */
+ private static ExcelReader getReader(MultipartFile excel, ExcelListener excelListener) throws IOException {
+ String filename = excel.getOriginalFilename();
+ if (filename == null || (!filename.toLowerCase().endsWith(".xls") && !filename.toLowerCase().endsWith(".xlsx") && !filename.toLowerCase().endsWith(".xltm") && !filename.toLowerCase().endsWith(".xlsm"))) {
+ throw new ExcelException(ResponseResultEnum.EXCEL_FILE_EXT_ERROR);
+ }
+ InputStream inputStream = new BufferedInputStream(excel.getInputStream());
+ return new ExcelReader(inputStream, null, excelListener, false);
+ }
+
+ /**
+ * 鍐欏叆鏁版嵁鍒板鍑烘枃浠�
+ *
+ * @param clazz model绫诲瀷Class瀵硅薄
+ * @param sheetNo sheet搴忓彿
+ * @param headLineMun head琛屾暟
+ * @param startRow 寮�濮嬪啓鍏ヨ鏁�
+ * @param tableNo table搴忓彿
+ * @param modelList model鏁版嵁闆嗗悎
+ * @param temp 涓存椂鏂囦欢瀵硅薄
+ * @param export 瀵煎嚭鏂囦欢瀵硅薄
+ * @param <T> model娉涘瀷
+ */
+ public static <T extends BaseRowModel> void writeModelExport(Class<T> clazz, Integer sheetNo, Integer headLineMun, Integer startRow, Integer tableNo, List<T> modelList, File temp, File export) {
+ try {
+ InputStream inputStream = new FileInputStream(temp);
+ FileOutputStream OutputStream = new FileOutputStream(export);
+ ExcelWriter writer = EasyExcelFactory.getWriterWithTemp(inputStream, OutputStream, ExcelTypeEnum.XLSX, false);
+ writer.write(modelList, initSheet(sheetNo, headLineMun, startRow), initTable(tableNo, clazz));
+ writer.finish();
+ OutputStream.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * Sheet鍒濆鍖�
+ *
+ * @param sheetNo sheet搴忓彿
+ * @param headLineMun head琛屾暟
+ * @param startRow 寮�濮嬪啓鍏ヨ鏁�
+ * @return Sheet瀵硅薄
+ */
+ public static Sheet initSheet(Integer sheetNo, Integer headLineMun, Integer startRow) {
+ Sheet sheet = new Sheet(sheetNo, headLineMun);
+ sheet.setStartRow(startRow);
+ return sheet;
+ }
+
+ /**
+ * Table鍒濆鍖�
+ *
+ * @param tableNo table搴忓彿
+ * @param clazz model绫诲瀷Class瀵硅薄
+ * @param <T> model娉涘瀷
+ * @return Table瀵硅薄
+ */
+ public static <T extends BaseRowModel> Table initTable(Integer tableNo, Class<T> clazz) {
+ Table table = new Table(tableNo);
+ table.setClazz(clazz);
+ TableStyle tableStyle = new TableStyle();
+ tableStyle.setTableContentBackGroundColor(IndexedColors.WHITE);
+ tableStyle.setTableHeadBackGroundColor(IndexedColors.WHITE);
+ Font font = new Font();
+ font.setBold(false);
+ font.setFontName("瀹嬩綋");
+ font.setFontHeightInPoints((short) 11);
+ tableStyle.setTableContentFont(font);
+ table.setTableStyle(tableStyle);
+ return table;
+ }
+
+ /**
+ * 鏇挎崲妯℃澘鏍囪
+ *
+ * @param export 瀵煎嚭鏂囦欢瀵硅薄
+ * @param index sheet搴忓彿
+ * @param rows 鍗曞厓鏍艰搴�
+ * @param columns 鍗曞厓鏍煎垪搴�
+ * @param replaceMap 澶氫釜鏍囪闆嗗悎
+ */
+ public static void editModelWorkBook(File export, Integer index, Integer rows, Integer columns, Map<String, String> replaceMap) {
+ try {
+ XSSFWorkbook workBook = new XSSFWorkbook(export);
+// editModelWorkBook(workBook,index,0,0,replaceMap);
+ editModelWorkBook(workBook, index, rows, columns, replaceMap);
+ workBook.close();
+ } catch (IOException | InvalidFormatException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * 鏇挎崲妯℃澘鏍囪
+ *
+ * @param workBook excel宸ヤ綔鍐屽璞�
+ * @param index sheet搴忓彿
+ * @param rows 鍗曞厓鏍艰搴�
+ * @param columns 鍗曞厓鏍煎垪搴�
+ * @param replaceMap 澶氫釜鏍囪闆嗗悎
+ */
+ public static void editModelWorkBook(XSSFWorkbook workBook, Integer index, Integer rows, Integer columns, Map<String, String> replaceMap) {
+ XSSFSheet sheet = workBook.getSheetAt(index);
+ Row row = sheet.getRow(rows);
+ Cell cell = row.getCell(columns);
+ String replaceString = cell.toString();
+ for (Map.Entry<String, String> entry : replaceMap.entrySet()) {
+ replaceString = replaceString.replace(entry.getKey(), entry.getValue());
+ }
+ cell.setCellValue(replaceString);
+ workBook.setSheetName(index, replaceString.replace(":", ""));
+ }
+
+ /**
+ * 妯℃澘sheet鍏嬮殕鍙婂懡鍚�
+ *
+ * @param temp 涓存椂鏂囦欢瀵硅薄
+ * @param export 瀵煎嚭鏂囦欢瀵硅薄
+ * @param cloneSheetNo 鍏嬮殕sheet搴忓垪
+ * @param rows 鍗曞厓鏍艰搴�
+ * @param columns 鍗曞厓鏍煎垪搴�
+ * @param replaceMapList 澶氫釜鏍囪闆嗗悎
+ */
+ public static void writeModelCloneSheet(File temp, File export, Integer cloneSheetNo, Integer rows, Integer columns, List<Map<String, String>> replaceMapList) {
+ try {
+ XSSFWorkbook workBook = new XSSFWorkbook(temp);
+ OutputStream outputStream = new FileOutputStream(export);
+ /** 濡傛灉浣犻渶瑕�6浠界浉鍚屾ā鏉跨殑sheet 閭d箞浣犲彧闇�瑕佸厠闅�5浠藉嵆鍙�*/
+ for (int index = 0; index < replaceMapList.size() - 1; index++) {
+ /** 鍏嬮殕妯℃澘鏂囦欢 */
+ XSSFSheet sheet = workBook.cloneSheet(cloneSheetNo);
+ }
+ for (int index = 0; index < replaceMapList.size(); index++) {
+ editModelWorkBook(workBook, index, rows, columns, replaceMapList.get(index));
+ }
+ workBook.write(outputStream);
+ outputStream.flush();
+ outputStream.close();
+ workBook.close();
+ } catch (IOException | InvalidFormatException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * 涓存椂鏂囦欢鍐欏叆瀵煎嚭鏂囦欢
+ *
+ * @param temp 涓存椂鏂囦欢瀵硅薄
+ * @param export 瀵煎嚭鏂囦欢瀵硅薄
+ * @param index sheet搴忓彿
+ * @param rows 鍗曞厓鏍艰搴�
+ * @param columns 鍗曞厓鏍煎垪搴�
+ * @param isTime 鏄惁鏈夋椂闂存爣璁�
+ */
+ public static void writeModelWorkBook(File temp, File export, Integer index, Integer rows, Integer columns, Boolean isTime) {
+ try {
+ XSSFWorkbook workBook = new XSSFWorkbook(temp);
+ OutputStream outputStream = new FileOutputStream(export);
+ if (isTime) {
+ writeModelWorkBook(workBook, index, rows, columns);
+ }
+ workBook.write(outputStream);
+ outputStream.flush();
+ outputStream.close();
+ workBook.close();
+ } catch (IOException | InvalidFormatException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * 鏇挎崲鏃堕棿鏍囪锛坹ear,month,day锛�
+ *
+ * @param workBook excel宸ヤ綔鍐屽璞�
+ * @param index sheet搴忓彿
+ * @param rows 鍗曞厓鏍艰搴�
+ * @param columns 鍗曞厓鏍煎垪搴�
+ */
+ public static void writeModelWorkBook(XSSFWorkbook workBook, Integer index, Integer rows, Integer columns) {
+ XSSFSheet xssfSheet = workBook.getSheetAt(index);
+ Row row = xssfSheet.getRow(rows);
+ Cell cell = row.getCell(columns);
+ String cellString = cell.toString();
+ Calendar calendar = Calendar.getInstance();
+ int year = calendar.get(Calendar.YEAR);
+ int month = calendar.get(Calendar.MONTH) + 1;
+ int day = calendar.get(Calendar.DAY_OF_MONTH);
+ String yearString = cellString.replace("year", String.valueOf(year));
+ String monthString = yearString.replace("month", String.valueOf(month));
+ String dayString = monthString.replace("day", String.valueOf(day));
+ cell.setCellValue(dayString);
+ }
+
+ /**
+ * 閽堝UserModel瀵煎嚭鏂规硶
+ *
+ * @param temp
+ * @param export
+ * @param isTime
+ */
+ public static void writeModelWorkBook(File temp, File export, Boolean isTime) {
+ writeModelWorkBook(temp, export, 0, 1, 9, isTime);
+ }
+
+
+ public static void writeModelCloneSheet(File temp, File export, List<Map<String, String>> replaceMapList) {
+ writeModelCloneSheet(temp, export, 0, 0, 0, replaceMapList);
+ }
+
+}
diff --git a/framework/src/main/java/com/yuanchu/mom/utils/easyexcel/ExcelListener.java b/framework/src/main/java/com/yuanchu/mom/utils/easyexcel/ExcelListener.java
new file mode 100644
index 0000000..0b9f4e8
--- /dev/null
+++ b/framework/src/main/java/com/yuanchu/mom/utils/easyexcel/ExcelListener.java
@@ -0,0 +1,79 @@
+package com.yuanchu.mom.utils.easyexcel;
+
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.event.AnalysisEventListener;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.extern.slf4j.Slf4j;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * excel鏁版嵁瀵煎叆鏁版嵁澶勭悊
+ *
+ * @param <T>
+ * @author Zou, Yu
+ */
+@Slf4j
+@Getter
+@Setter
+public class ExcelListener<T> extends AnalysisEventListener<T> {
+
+ private List<T> dataList = new ArrayList<>();
+
+ @Override
+ public void invoke(T classType, AnalysisContext analysisContext) {
+ dataList.add(classType);
+ }
+
+ @Override
+ public void doAfterAllAnalysed(AnalysisContext context) {
+ }
+
+ @Override
+ public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
+ String templateHead = "";
+
+ List<String> headList = new ArrayList<>();
+ for (Integer i : headMap.keySet()) {
+ headList.add(headMap.get(i));
+ }
+ String importHead = headMap.values().toString();
+ log.info("importHead:{}", importHead);
+ String templateName = context.getCurrentSheet().getClazz().getSimpleName();
+ log.info("templateName:", templateName);
+// if ("CostModel".equals(templateName)) {
+// templateHead = templateHeadCost;
+// } else if ("StaffInfoTemplate".equals(templateName)) {
+// templateHead = templateHeadStaff;
+// } else if ("OrganizationTemplate".equals(templateName)) {
+// templateHead = templateHeadOrganization;
+// }else if ("StaffDictionaryTemplate".equals(templateName)) {
+// templateHead = templateHeadDictionary;
+// }else if ("StaffCtfTemplate".equals(templateName)){
+// templateHead = templateHeadCtf;
+// }else if ("IndustryLineTemplate".equals(templateName)){
+// templateHead = templateHeadIndustryLine;
+// }else if ("SubServiceLineTemplate".equals(templateName)){
+// templateHead = templateHeadSubServiceLine;
+// }else if ("StaffHealthTemplate".equals(templateName)){
+// templateHead = templateHeadHealth;
+// }else if ("AccountDataTemplate".equals(templateName)){
+// templateHead = templateAccountData;
+// }else if ("PlInfoTemplate".equals(templateName)){
+// templateHead = templatePlInfo;
+// }else if ("CodeDataTemplate".equals(templateName)){
+// templateHead = templateCodeData;
+// }else if ("CodeTbdDataTemplate".equals(templateName)){
+// templateHead = templateCodeTbdData;
+// }
+
+ if (!templateHead.equals(importHead)) {
+ throw new RuntimeException(ResponseResultEnum.EXCEL_MODEL_ERROR.getMessage());
+ }
+
+ }
+
+}
\ No newline at end of file
diff --git a/framework/src/main/java/com/yuanchu/mom/utils/easyexcel/LocalDateConverter.java b/framework/src/main/java/com/yuanchu/mom/utils/easyexcel/LocalDateConverter.java
new file mode 100644
index 0000000..91e2eb5
--- /dev/null
+++ b/framework/src/main/java/com/yuanchu/mom/utils/easyexcel/LocalDateConverter.java
@@ -0,0 +1,43 @@
+package com.yuanchu.mom.utils.easyexcel;
+
+import com.alibaba.excel.converters.Converter;
+import com.alibaba.excel.enums.CellDataTypeEnum;
+import com.alibaba.excel.metadata.CellData;
+import com.alibaba.excel.metadata.GlobalConfiguration;
+import com.alibaba.excel.metadata.property.ExcelContentProperty;
+import org.springframework.stereotype.Component;
+
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+
+/**
+*@author: Zou, Yu
+*@description:
+*@date: 2023/9/24 0024 13:18
+**/
+@Component
+public class LocalDateConverter implements Converter<LocalDate> {
+
+ @Override
+ public Class<LocalDate> supportJavaTypeKey() {
+ return LocalDate.class;
+ }
+
+ @Override
+ public CellDataTypeEnum supportExcelTypeKey() {
+ return CellDataTypeEnum.STRING;
+ }
+
+ @Override
+ public LocalDate convertToJavaData(CellData cellData, ExcelContentProperty contentProperty,
+ GlobalConfiguration globalConfiguration) {
+ return LocalDate.parse(cellData.getStringValue(), DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+ }
+
+ @Override
+ public CellData<String> convertToExcelData(LocalDate value, ExcelContentProperty contentProperty,
+ GlobalConfiguration globalConfiguration) {
+ return new CellData<>(value.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
+ }
+
+}
\ No newline at end of file
diff --git a/framework/src/main/java/com/yuanchu/mom/utils/easyexcel/ResponseResultEnum.java b/framework/src/main/java/com/yuanchu/mom/utils/easyexcel/ResponseResultEnum.java
new file mode 100644
index 0000000..34dcead
--- /dev/null
+++ b/framework/src/main/java/com/yuanchu/mom/utils/easyexcel/ResponseResultEnum.java
@@ -0,0 +1,28 @@
+package com.yuanchu.mom.utils.easyexcel;
+
+import lombok.Getter;
+
+/**
+ * 寮傚父淇℃伅鏋氫妇
+ * @auther Zou, Yu
+ * @create 2023-09-24
+ */
+@Getter
+public enum ResponseResultEnum {
+ EXCEL_FILE_EXT_ERROR(1000,"鏂囦欢鏍煎紡閿欒"),
+ EXCEL_FILE_READ_FAIL(1001,"excel鏂囦欢璇诲彇澶辫触,璇锋鏌ユā鏉�!"),
+ EXCEL_FILE_IS_EMPTY(1002,"excel鏂囦欢涓虹┖"),
+ MODEL_FILE_NOT_EXIT(1003,"妯$増鏂囦欢涓嶅瓨鍦�"),
+ EXCEL_ACTIVE_DATE_ERROR(1004,"鐢熸晥鏃堕棿閿欒"),
+ EXCEL_MODEL_ERROR(1005,"瀵煎叆妯℃澘鏈夎锛岃妫�鏌ワ紒"),
+ EXCEL_FILE_EXCESS(1006,"鎵归噺瀵煎叆鏁版嵁閲忎笉鍙秴杩�500鏉�");
+
+ private Integer status;
+ private String message;
+
+ ResponseResultEnum(Integer status, String message) {
+ this.status = status;
+ this.message = message;
+ }
+
+}
diff --git a/framework/src/main/java/com/yuanchu/mom/utils/easyexcel/converter/SaleTypeConverter.java b/framework/src/main/java/com/yuanchu/mom/utils/easyexcel/converter/SaleTypeConverter.java
new file mode 100644
index 0000000..52bfb0d
--- /dev/null
+++ b/framework/src/main/java/com/yuanchu/mom/utils/easyexcel/converter/SaleTypeConverter.java
@@ -0,0 +1,48 @@
+package com.yuanchu.mom.utils.easyexcel.converter;
+
+import com.alibaba.excel.converters.Converter;
+import com.alibaba.excel.enums.CellDataTypeEnum;
+import com.alibaba.excel.metadata.CellData;
+import com.alibaba.excel.metadata.GlobalConfiguration;
+import com.alibaba.excel.metadata.property.ExcelContentProperty;
+import org.springframework.stereotype.Component;
+
+/** 璁㈠崟鐘舵�佽浆鎹�
+ * @Author: Zou, Yu
+ * @DATE: 2023/9/24 0024 14:21
+ */
+@Component
+public class SaleTypeConverter implements Converter<String> {
+
+ @Override
+ public Class<String> supportJavaTypeKey() {
+ return String.class;
+ }
+
+ @Override
+ public CellDataTypeEnum supportExcelTypeKey() {
+ return CellDataTypeEnum.STRING;
+ }
+
+ @Override
+ public String convertToJavaData(CellData cellData, ExcelContentProperty excelContentProperty, GlobalConfiguration globalConfiguration) throws Exception {
+ if("閫氳繃".equals(cellData.getStringValue())){
+ return "1";
+ }else if("涓嶉�氳繃".equals(cellData.getStringValue())){
+ return "0";
+ }else{
+ return "2";
+ }
+ }
+
+ @Override
+ public CellData convertToExcelData(String str, ExcelContentProperty excelContentProperty, GlobalConfiguration globalConfiguration) throws Exception {
+ if("1".equals(str)){
+ return new CellData<>("閫氳繃");
+ }else if("0".equals(str)){
+ return new CellData<>("涓嶉�氳繃");
+ }else{
+ return new CellData<>("鏈鏍�");
+ }
+ }
+}
diff --git a/framework/src/main/java/com/yuanchu/mom/utils/easyexcel/template/ExportSaleTemplate.java b/framework/src/main/java/com/yuanchu/mom/utils/easyexcel/template/ExportSaleTemplate.java
new file mode 100644
index 0000000..eec62ea
--- /dev/null
+++ b/framework/src/main/java/com/yuanchu/mom/utils/easyexcel/template/ExportSaleTemplate.java
@@ -0,0 +1,68 @@
+package com.yuanchu.mom.utils.easyexcel.template;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.metadata.BaseRowModel;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.yuanchu.mom.utils.easyexcel.converter.SaleTypeConverter;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Author: Zou, Yu
+ * @DATE: 2023/9/24 0024 11:21
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class ExportSaleTemplate extends BaseRowModel implements Serializable {
+
+ @ColumnWidth(26)
+ @ExcelProperty(value="搴忓彿", index = 0)
+ private Integer id;
+
+ @ColumnWidth(26)
+ @ExcelProperty(value="璁㈠崟缂栧彿", index = 1)
+ @JsonSerialize
+ private String orderNumber;
+
+ @ColumnWidth(26)
+ @ExcelProperty(value="璁㈠崟绫诲瀷", index = 2)
+ @JsonSerialize
+ private String orderType;
+
+ @ColumnWidth(26)
+ @ExcelProperty(value="鍚堝悓缂栧彿", index = 3)
+ @JsonSerialize
+ private String code;
+
+ @ColumnWidth(26)
+ @ExcelProperty(value="宸ョ▼鍚嶇О", index = 4)
+ @JsonSerialize
+ private String name;
+
+ @ColumnWidth(26)
+ @ExcelProperty(value="瀹㈡埛鍚嶇О", index = 5)
+ @JsonSerialize
+ private String proname;
+
+ @ColumnWidth(26)
+ @ExcelProperty(value="浜よ揣鏃ユ湡", index = 6)
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date delTime;
+
+ @ColumnWidth(26)
+ @ExcelProperty(value="澶囨敞", index = 7)
+ @JsonSerialize
+ private String note;
+
+ @ColumnWidth(26)
+ @ExcelProperty(value="鐘舵��", index = 8 ,converter = SaleTypeConverter.class)
+ @JsonSerialize
+ private String type;
+
+}
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/controller/FinishedInspectController.java b/inspect-server/src/main/java/com/yuanchu/mom/controller/FinishedInspectController.java
index 3814183..4a6b30a 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/controller/FinishedInspectController.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/controller/FinishedInspectController.java
@@ -62,17 +62,18 @@
@ApiOperation(value = "涓婃姤(鏇存柊妫�楠岀姸鎬�)")
@ApiImplicitParams(value = {
- @ApiImplicitParam(name = "id", value = "妫�楠屽崟id", dataTypeClass = Integer.class, required = true)
+ @ApiImplicitParam(name = "id", value = "妫�楠屽崟id", dataTypeClass = Integer.class, required = true),
+ @ApiImplicitParam(name = "number", value = "涓嶅悎鏍兼暟閲�", dataTypeClass = Integer.class)
})
@PostMapping("/updateFinishInspectsById")
- public Result updateFinishInspectsById(@RequestHeader("token") String token, Integer id) throws Exception {
+ public Result updateFinishInspectsById(@RequestHeader("token") String token, Integer id,Integer number) throws Exception {
//濡傛灉宸茬粡涓婃姤浜嗕笉鑳藉啀涓�娆′笂鎶�
FinishedInspect finishedInspect = finishedInspectService.getById(id);
if (ObjectUtils.isNotEmpty(finishedInspect.getResult())) {
return Result.fail("宸茬粡涓婃姤杩囦簡,涓嶈兘鍐嶆涓婃姤!");
}
Map<String, String> data = JackSonUtil.unmarshal(jwt.readJWT(token).get("data"), Map.class);
- return Result.success(finishedInspectService.updateFinishInspectsById(data.get("name").replaceAll("\"", ""), id));
+ return Result.success(finishedInspectService.updateFinishInspectsById(data.get("name").replaceAll("\"", ""), id,number));
}
@ApiOperation(value = "鏍规嵁妫�楠屽崟id鏌ヨ鎴愬搧妫�楠屽崟璇︽儏")
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/controller/ProcessInspectController.java b/inspect-server/src/main/java/com/yuanchu/mom/controller/ProcessInspectController.java
index e3fac84..4299d1d 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/controller/ProcessInspectController.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/controller/ProcessInspectController.java
@@ -58,16 +58,17 @@
@ApiOperation(value = "涓婃姤(鏇存柊妫�楠岀姸鎬�)")
@ApiImplicitParams(value = {
- @ApiImplicitParam(name = "id", value = "妫�楠屽崟id", dataTypeClass = Integer.class, required = true)
+ @ApiImplicitParam(name = "id", value = "妫�楠屽崟id", dataTypeClass = Integer.class, required = true),
+ @ApiImplicitParam(name = "number", value = "涓嶅悎鏍兼暟閲�", dataTypeClass = Integer.class)
})
@PostMapping("/updateProcessInspectsById")
- public Result updateProcessInspectsById(Integer id) {
+ public Result updateProcessInspectsById(Integer id,Integer number) {
//濡傛灉宸茬粡涓婃姤浜嗕笉鑳藉啀涓�娆′笂鎶�
ProcessInspect processInspect = processInspectService.getById(id);
if (ObjectUtils.isNotEmpty(processInspect.getResult())) {
return Result.fail("宸茬粡涓婃姤杩囦簡,涓嶈兘鍐嶆涓婃姤!");
}
- return Result.success(processInspectService.updateProcessInspectsById(id));
+ return Result.success(processInspectService.updateProcessInspectsById(id,number));
}
@ApiOperation(value = "鏍规嵁妫�楠屽崟id鏌ヨ杩囩▼妫�楠屽崟璇︽儏")
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/controller/RawInspectController.java b/inspect-server/src/main/java/com/yuanchu/mom/controller/RawInspectController.java
index e5331a8..4dc32e3 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/controller/RawInspectController.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/controller/RawInspectController.java
@@ -34,6 +34,14 @@
@Resource
Jwt jwt;
+ @ApiOperation(value = "鏂板鍘熸潗鏂欐楠屽崟-->鏍规嵁鍘熸潗鏂欑紪鐮佸緱鍒癷fs涓殑鎶ユ鏁版嵁")
+ @ApiImplicitParams(value = {
+ @ApiImplicitParam(name = "code", value = "鍘熸潗鏂欑紪鐮�", dataTypeClass = String.class, required = true)
+ })
+ @PostMapping("/chooseIFS")
+ public Result chooseIFS(String code){
+ return Result.success(rawInspectService.chooseIFS(code));
+ }
@ApiOperation(value = "鏂板鍘熸潗鏂欐楠屽崟")
@PostMapping("/addRawInspects")
@@ -71,16 +79,17 @@
@ApiOperation(value = "涓婃姤(鏇存柊妫�楠岀姸鎬�)")
@ApiImplicitParams(value = {
- @ApiImplicitParam(name = "id", value = "妫�楠屽崟id", dataTypeClass = Integer.class, required = true)
+ @ApiImplicitParam(name = "id", value = "妫�楠屽崟id", dataTypeClass = Integer.class, required = true),
+ @ApiImplicitParam(name = "number", value = "涓嶅悎鏍兼暟閲�", dataTypeClass = Integer.class)
})
@PostMapping("/updateRawInspectsById/{id}")
- public Result updateRawInspectsById(@PathVariable Integer id) {
+ public Result updateRawInspectsById(@PathVariable Integer id,Integer number) {
//濡傛灉宸茬粡涓婃姤浜嗕笉鑳藉啀涓�娆′笂鎶�
RawInspect rawInspect = rawInspectService.getById(id);
if (rawInspect.getInsState() == 1) {
return Result.fail("宸茬粡涓婃姤杩囦簡,涓嶈兘鍐嶆涓婃姤!");
}
- return Result.success(rawInspectService.updateRawInspectsById(id));
+ return Result.success(rawInspectService.updateRawInspectsById(id,number));
}
}
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/mapper/RawInspectMapper.java b/inspect-server/src/main/java/com/yuanchu/mom/mapper/RawInspectMapper.java
index 6c0d49a..c52ac5e 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/mapper/RawInspectMapper.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/mapper/RawInspectMapper.java
@@ -28,6 +28,9 @@
//鏍规嵁鍘熸潗鏂欐楠屽崟id鏌ョ湅璇︽儏
Map<String, Object> selectRawInspectsListById(Integer id);
+
+ //鏍规嵁鍘熸潗鏂欑紪鐮佹煡璇㈡渶杩戜竴鏉℃暟鎹�
+ RawInspect selOneByCode(String code);
}
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/pojo/InspectUnaccepted.java b/inspect-server/src/main/java/com/yuanchu/mom/pojo/InspectUnaccepted.java
index e724eda..3dc9130 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/pojo/InspectUnaccepted.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/pojo/InspectUnaccepted.java
@@ -41,6 +41,11 @@
private String reason;
/**
+ * 鏁伴噺
+ **/
+ private Integer number;
+
+ /**
* 澶勭悊鐘舵�� 0锛氬緟澶勭悊锛�1锛氬凡澶勭悊
**/
private Integer dealState;
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/pojo/RawInspect.java b/inspect-server/src/main/java/com/yuanchu/mom/pojo/RawInspect.java
index 32511d9..641d16d 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/pojo/RawInspect.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/pojo/RawInspect.java
@@ -1,5 +1,6 @@
package com.yuanchu.mom.pojo;
+import cn.hutool.core.date.DateTime;
import com.baomidou.mybatisplus.annotation.*;
import java.io.Serializable;
@@ -101,8 +102,8 @@
/**
* 鏉ユ枡鏃ユ湡
*/
- @DateTimeFormat(pattern = "yyyy-MM-dd")
- @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date formTime;
@TableField(exist = false)
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/pojo/vo/RawInspectVo.java b/inspect-server/src/main/java/com/yuanchu/mom/pojo/vo/RawInspectVo.java
index bc6a811..d2183e0 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/pojo/vo/RawInspectVo.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/pojo/vo/RawInspectVo.java
@@ -1,5 +1,6 @@
package com.yuanchu.mom.pojo.vo;
+import cn.hutool.core.date.DateTime;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
@@ -23,9 +24,9 @@
* 鏉ユ枡鏃ユ湡
*/
@NotNull(message = "鏉ユ枡鏃ユ湡涓嶈兘涓虹┖!")
- @DateTimeFormat(pattern = "yyyy-MM-dd")
- @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
- private Date formTime;
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private DateTime formTime;
/**
* 鍨嬪彿瑙勬牸
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/FinishedInspectService.java b/inspect-server/src/main/java/com/yuanchu/mom/service/FinishedInspectService.java
index 38545ce..55cca2d 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/FinishedInspectService.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/FinishedInspectService.java
@@ -42,7 +42,7 @@
* @param id
* @return
*/
- String updateFinishInspectsById(String username,Integer id);
+ String updateFinishInspectsById(String username,Integer id,Integer number);
/**
* 鍒嗛〉鏌ヨ鎴愬搧妫�楠屽崟鍒楄〃
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/ProcessInspectService.java b/inspect-server/src/main/java/com/yuanchu/mom/service/ProcessInspectService.java
index 7f20d43..8f94a42 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/ProcessInspectService.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/ProcessInspectService.java
@@ -37,7 +37,7 @@
* @param id
* @return
*/
- String updateProcessInspectsById(Integer id);
+ String updateProcessInspectsById(Integer id,Integer number);
/**
* 鏍规嵁妫�楠屽崟id鏌ヨ杩囩▼妫�楠屽崟璇︽儏
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/RawInspectService.java b/inspect-server/src/main/java/com/yuanchu/mom/service/RawInspectService.java
index b82b3eb..e4132d4 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/RawInspectService.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/RawInspectService.java
@@ -18,6 +18,13 @@
public interface RawInspectService extends IService<RawInspect> {
/**
+ *鏂板鍘熸潗鏂欐楠屽崟-->鏍规嵁鍘熸潗鏂欑紪鐮佸緱鍒癷fs涓殑鎶ユ鏁版嵁
+ * @param code
+ * @return
+ */
+ RawInspectVo chooseIFS(String code);
+
+ /**
* 鏂板鍘熸潗鏂欐楠屽崟
* @param userName
* @param rawInspectVo
@@ -46,6 +53,7 @@
* 鏇存柊妫�楠岀姸鎬�
* @param id
*/
- String updateRawInspectsById(Integer id);
+ String updateRawInspectsById(Integer id,Integer number);
+
}
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/FinishedInspectServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/FinishedInspectServiceImpl.java
index 17e5402..d06c736 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/FinishedInspectServiceImpl.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/FinishedInspectServiceImpl.java
@@ -102,7 +102,7 @@
//涓婃姤(鏇存柊妫�楠岀姸鎬�)
@Override
@Transactional(rollbackFor = Exception.class)
- public String updateFinishInspectsById(String username, Integer id) {
+ public String updateFinishInspectsById(String username, Integer id,Integer number) {
/*鏇存柊妫�楠屽崟閲岄潰鐨勬楠岀粨璁�*/
//鍏堝垽鏂楠岀粨鏋�
List<Integer> results = inspectionItemMapper.getResult(id, 2);
@@ -126,6 +126,7 @@
if (finishedInspect.getResult() == 0) {
InspectUnaccepted finishUnaccepted = InspectUnaccepted.builder()
.reason(finishedInspect.getMaterial() + "涓嶅悎鏍�") //鏆備笖瀹氫箟涓轰骇鍝佸悕绉颁笉鍚堟牸
+ .number(number)
.rawInspectId(id)
.type(1) //绫诲瀷涓烘垚鍝佹楠�
.build();
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/ProcessInspectServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/ProcessInspectServiceImpl.java
index 540548e..7bb7f00 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/ProcessInspectServiceImpl.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/ProcessInspectServiceImpl.java
@@ -76,7 +76,7 @@
//涓婃姤(鏇存柊妫�楠岀姸鎬�)
@Override
@Transactional(rollbackFor = Exception.class)
- public String updateProcessInspectsById(Integer id) {
+ public String updateProcessInspectsById(Integer id,Integer number) {
/*鏇存柊妫�楠屽崟閲岄潰鐨勬楠岀粨璁�*/
//鍏堝垽鏂楠岀粨鏋�
List<Integer> results = inspectionItemMapper.getResult(id, 1);
@@ -100,6 +100,7 @@
if (processInspect.getResult() == 0) {
InspectUnaccepted processUnaccepted = InspectUnaccepted.builder()
.reason(processInspect.getMaterial() + processInspect.getTechname() + "涓嶅悎鏍�") //鏆備笖瀹氫箟涓轰骇鍝佸悕绉�+宸ヨ壓涓嶅悎鏍�
+ .number(number)
.rawInspectId(id)
.type(2) //绫诲瀷涓鸿繃绋嬫楠�
.build();
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/RawInspectServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/RawInspectServiceImpl.java
index 9c4252c..aeb59ef 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/RawInspectServiceImpl.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/RawInspectServiceImpl.java
@@ -1,9 +1,12 @@
package com.yuanchu.mom.service.impl;
+import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yuanchu.mom.Task.SyncOrder;
import com.yuanchu.mom.mapper.*;
import com.yuanchu.mom.pojo.*;
import com.yuanchu.mom.pojo.vo.RawInsProductVo;
@@ -12,6 +15,7 @@
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+
import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
@@ -38,6 +42,43 @@
@Resource
UserMapper userMapper;
+
+ //鏂板鍘熸潗鏂欐楠屽崟-->鏍规嵁鍘熸潗鏂欑紪鐮佸緱鍒癷fs涓殑鎶ユ鏁版嵁
+ @Override
+ public RawInspectVo chooseIFS(String code) {
+ RawInspectVo rawInspectVo = new RawInspectVo();
+ List<Map<String, Object>> mapList = SyncOrder.ifsInterfaces();
+ for (Map<String, Object> map : mapList) {
+ //todo: 鍚庣画闇�瑕佸皢鐘舵�佹敼鎴愬緟妫�楠�
+ if (map.get("STATE").equals("宸叉帴鏀�")) {
+ if (map.get("PART_NO").toString().equals(code)) {
+ rawInspectVo.setCode(map.get("PART_NO").toString()); //鍘熸潗鏂欑紪鐮�
+ String[] split = map.get("PART_DESC").toString().split("锛�");
+ rawInspectVo.setName(split[0]); //鍘熸潗鏂欏悕绉�
+ rawInspectVo.setSpecifications(split[1]); //鍨嬪彿瑙勬牸
+ rawInspectVo.setUnit(map.get("BUY_UNIT_MEAS").toString()); //鍗曚綅
+ rawInspectVo.setNumber(Integer.parseInt(String.valueOf(map.get("QTY_TO_INSPECT")))); //鏁伴噺
+ rawInspectVo.setFormTime(DateUtil.parse(map.get("APPROVED_DATE").toString())); //鏉ユ枡鏃ユ湡
+ rawInspectVo.setSupplier(map.get("SUPPLIER_NAME").toString()); //渚涘簲鍟�
+ }
+ }
+ }
+ //鏌ヨ璇ュ師鏉愭枡鏄惁鏈夋楠岄」鐩褰�
+ RawInspect rawInspect = rawInspectMapper.selOneByCode(code);
+ if (ObjectUtils.isNotEmpty(rawInspect)){
+ List<RawInsProduct> rawInsProductList = rawInsProductMapper.selectList(Wrappers.<RawInsProduct>query().eq("raw_inspect_id", rawInspect.getId()));
+ List<RawInsProductVo> rawInsProductVos = rawInsProductList.stream().map(rawInsProduct -> {
+ RawInsProductVo rawInsProductVo = new RawInsProductVo();
+ rawInsProductVo.setName(rawInsProduct.getName());
+ rawInsProductVo.setUnit(rawInsProduct.getUnit());
+ rawInsProductVo.setRequired(rawInsProduct.getRequired());
+ rawInsProductVo.setInternal(rawInsProduct.getInternal());
+ return rawInsProductVo;
+ }).collect(Collectors.toList());
+ rawInspectVo.setRawInsProducts(rawInsProductVos);
+ }
+ return rawInspectVo;
+ }
//鏂板鍘熸潗鏂欐楠屽崟
@Override
@@ -67,10 +108,10 @@
String testValue = rawInsProduct.getTestValue();//妫�娴嬪��
char req = required.charAt(0);
List<Integer> list = Arrays.stream(testValue.split(",")).map(s -> {
- int values=2;
+ int values = 2;
if (req == '>' || req == '<' || req == '=') {
values = checkValues(required, internal, s);
- }else {
+ } else {
values = conValues(required, internal, s);
}
return values;
@@ -108,7 +149,7 @@
//鏇存柊妫�楠岀姸鎬�(涓婃姤)
@Override
@Transactional(rollbackFor = Exception.class)
- public String updateRawInspectsById(Integer id) {
+ public String updateRawInspectsById(Integer id,Integer number) {
/*鏇存柊妫�楠屽崟閲岄潰鐨勬楠岀粨璁�*/
//鍏堝垽鏂楠岀粨鏋�
List<Integer> results = rawInsProductMapper.getresult(id);
@@ -135,6 +176,7 @@
if (rawInspect.getJudgeState() == 0) {
InspectUnaccepted rawUnaccepted = InspectUnaccepted.builder()
.reason(rawInspectMapper.selectById(id).getName() + "涓嶅悎鏍�") //鏆備笖瀹氫箟涓哄師鏉愭枡涓嶅悎鏍�
+ .number(number)
.rawInspectId(id)
.dealReasult(1)
.type(0) //绫诲瀷涓哄師鏉愭枡
@@ -158,6 +200,7 @@
}
return 0;
}
+
//濡傛灉鏄�> , < ,=鐨勬搷浣�
private int checkValues(String standardValueStr, String controlValueStr, String detectionValueStr) {
boolean isStandardValueSatisfied = isValueSatisfied(standardValueStr, detectionValueStr);
diff --git a/inspect-server/src/main/resources/mapper/InspectUnacceptedMapper.xml b/inspect-server/src/main/resources/mapper/InspectUnacceptedMapper.xml
index c6202b9..344c98d 100644
--- a/inspect-server/src/main/resources/mapper/InspectUnacceptedMapper.xml
+++ b/inspect-server/src/main/resources/mapper/InspectUnacceptedMapper.xml
@@ -1,8 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.yuanchu.mom.mapper.InspectUnacceptedMapper">
-
-
<!--涓嶅悎鏍肩鐞�-->
<select id="selectInsList" resultType="java.util.Map">
SELECT ru.id,
@@ -15,7 +13,7 @@
fi.project_name,
fi.specifications_model,
fi.unit,
- fi.quantity,
+ number quantity,
DATE_FORMAT(fi.inspectionDate, '%Y-%m-%d') inspectionDate,
DATE_FORMAT(fi.processingDate, '%Y-%m-%d') processingDate
FROM mom_ocean.inspect_unaccepted ru, mom_ocean.`user` u, (
@@ -53,23 +51,23 @@
<!--鍘熸潗鏂欎笉鍚堟牸鍝�-->
<select id="selectUnqualifiedRawMaterials" resultType="map">
SELECT i.id,
- DATE_FORMAT(r.form_time, '%Y-%m-%d') dateArrival,
- i.`reason`,
- r.`code`,
- r.`name`,
- r.`specifications`,
- r.`unit`,
- r.`number`,
- DATE_FORMAT(r.`create_time`,'%Y-%m-%d') inspectionDate,
- r.`user_name`,
- DATE_FORMAT(r.`ins_time`,'%Y-%m-%d') processingDate,
- r.`supplier`,
- i.`deal_state`,
- i.`deal_reasult`
+ DATE_FORMAT(r.form_time, '%Y-%m-%d') dateArrival,
+ i.`reason`,
+ r.`code`,
+ r.`name`,
+ r.`specifications`,
+ r.`unit`,
+ i.number,
+ DATE_FORMAT(r.`create_time`,'%Y-%m-%d') inspectionDate,
+ r.`user_name`,
+ DATE_FORMAT(r.`ins_time`,'%Y-%m-%d') processingDate,
+ r.`supplier`,
+ i.`deal_state`,
+ i.`deal_reasult`
FROM mom_ocean.inspect_unaccepted i
- LEFT JOIN mom_ocean.raw_inspect r ON i.`raw_inspect_id` = r.`id`
+ LEFT JOIN mom_ocean.raw_inspect r ON i.`raw_inspect_id` = r.`id`
WHERE i.`state` = 1
- AND i.`type` = 0
+ AND i.`type` = 0
<if test="formTime != null and formTime != ''">
AND r.form_time = #{formTime}
</if>
@@ -87,48 +85,52 @@
<!--涓嶅悎鏍煎缃�-->
<select id="selectDisposal" resultType="map">
- SELECT i.`id`, s.`type`, s.name productName, s.`specifications`, s.number, i.`tell` description,
+ SELECT i.`id`, s.`type`, s.name productName, s.`specifications`, i.number, i.`tell` description,
i.`tell` opinions, s.user_name, DATE_FORMAT(i.`create_time`, '%Y-%m-%d') `date`, i.`deal_state`, i.way, i.faulty_materials, i.opinion_tell
FROM mom_ocean.inspect_unaccepted i
LEFT JOIN
(
- -- 鍘熸潗鏂�
- SELECT 0 AS `type`, r.`name`, r.`specifications`, r.`number`, r.`id`, r.`user_name`
- FROM mom_ocean.raw_inspect r
- WHERE r.state = 1
- <if test="specificationModel != null and specificationModel != ''">AND r.`specifications` LIKE CONCAT('%',
- #{specificationModel}, '%')
- </if>
- <if test="
- productName != null and productName != ''">AND r.`name` LIKE CONCAT('%', #{productName}, '%')
- </if>
- UNION ALL
- -- 鍗婃垚鍝�
- SELECT 1 AS `type`, f.`project_name` `name`, f.`specifications_model` specifications, f.`quantity` `number`, f.`id`, u.name user_name
- FROM mom_ocean.finished_inspect f, mom_ocean.`user` u
- WHERE f.`state` = 1
- AND u.id = f.user_id
- <if test="specificationModel != null and specificationModel != ''">
- AND f.`specifications_model` LIKE CONCAT('%', #{specificationModel}, '%')
- </if>
- <if test="productName != null and productName != ''">
- AND f.`project_name` LIKE CONCAT('%', #{productName}, '%')
- </if>
- UNION ALL
- -- 鍦ㄥ埗鍝�
- SELECT 2 AS `type`, p.`material` `name`, p.`specifications_model` specifications, p.`quantity` `number`, p.`id`, u.name user_name
- FROM mom_ocean.process_inspect p, mom_ocean.`user` u
- WHERE p.state = 1
- AND u.id = p.user_id
- <if test="specificationModel != null and specificationModel != ''">
- AND p.`specifications_model` LIKE CONCAT('%', #{specificationModel}, '%')
- </if>
- <if test="productName != null and productName != ''">
- AND p.`material` LIKE CONCAT('%', #{productName}, '%')
- </if>
- )AS s ON s.`id` = i.`raw_inspect_id` AND s.`type` = i.type
+ -- 鍘熸潗鏂�
+ SELECT 0 AS `type`, r.`name`, r.`specifications`, r.`number`, r.`id`, r.`user_name`
+ FROM mom_ocean.raw_inspect r
+ WHERE r.state = 1
+ <if test="specificationModel != null and specificationModel != ''">
+ AND r.`specifications` LIKE CONCAT('%',
+ #{specificationModel}, '%')
+ </if>
+ <if test="
+ productName != null and productName != ''">
+ AND r.`name` LIKE CONCAT('%', #{productName}, '%')
+ </if>
+ UNION ALL
+ -- 鎴愬搧
+ SELECT 1 AS `type`, f.`project_name` `name`, f.`specifications_model` specifications, f.`quantity` `number`,
+ f.`id`, u.name user_name
+ FROM mom_ocean.finished_inspect f, mom_ocean.`user` u
+ WHERE f.`state` = 1
+ AND u.id = f.user_id
+ <if test="specificationModel != null and specificationModel != ''">
+ AND f.`specifications_model` LIKE CONCAT('%', #{specificationModel}, '%')
+ </if>
+ <if test="productName != null and productName != ''">
+ AND f.`project_name` LIKE CONCAT('%', #{productName}, '%')
+ </if>
+ UNION ALL
+ -- 鍗婃垚鍝�
+ SELECT 2 AS `type`, p.`material` `name`, p.`specifications_model` specifications, p.`quantity` `number`, p.`id`,
+ u.name user_name
+ FROM mom_ocean.process_inspect p, mom_ocean.`user` u
+ WHERE p.state = 1
+ AND u.id = p.user_id
+ <if test="specificationModel != null and specificationModel != ''">
+ AND p.`specifications_model` LIKE CONCAT('%', #{specificationModel}, '%')
+ </if>
+ <if test="productName != null and productName != ''">
+ AND p.`material` LIKE CONCAT('%', #{productName}, '%')
+ </if>
+ )AS s ON s.`id` = i.`raw_inspect_id` AND s.`type` = i.type
WHERE i.`state` = 1
- AND i.`deal_reasult` = 0
+ AND i.`deal_reasult` = 0
<if test="state != null">
AND i.`deal_state` = #{state}
</if>
diff --git a/inspect-server/src/main/resources/mapper/RawInspectMapper.xml b/inspect-server/src/main/resources/mapper/RawInspectMapper.xml
index 985266e..62f7235 100644
--- a/inspect-server/src/main/resources/mapper/RawInspectMapper.xml
+++ b/inspect-server/src/main/resources/mapper/RawInspectMapper.xml
@@ -116,4 +116,14 @@
and rp.state = 1
and r.id = #{id}
</select>
+
+ <!--鏍规嵁鍘熸潗鏂欑紪鐮佹煡璇㈡渶杩戜竴鏉℃暟鎹�-->
+ <select id="selOneByCode" resultType="com.yuanchu.mom.pojo.RawInspect">
+ select *
+ from mom_ocean.raw_inspect
+ where state = 1
+ and code = #{code}
+ order by id desc
+ limit 1
+ </select>
</mapper>
diff --git a/inventory-server/src/main/java/com/yuanchu/mom/Task/SyncOrder.java b/inventory-server/src/main/java/com/yuanchu/mom/Task/SyncOrder.java
index 5ab2ee7..00cfc7d 100644
--- a/inventory-server/src/main/java/com/yuanchu/mom/Task/SyncOrder.java
+++ b/inventory-server/src/main/java/com/yuanchu/mom/Task/SyncOrder.java
@@ -27,6 +27,8 @@
private static final String DOWN_LOAD = "http://192.168.18.16:9999/order/otcService/download/";
+ private static final String IFS_URL="http://192.168.20.47:8008/PurchService.ashx?contract=ZTKJ&contractKey=4ttDeLKNsZuhstjtROMcRE1USNFXKdFYE7lQ2p1m5Bo=&procedureName=QUERY_POL_RECEIPT_STD&userId=mes_user&inAttr={\"ORDER_NO\":\"-2050314\"}";
+
private static final Map<String, String> GET_TOKEN_HEADER = new HashMap<>(2);
private static final Map<String, Object> USER_INFO = new HashMap<>(4);
@@ -88,4 +90,16 @@
.execute().body();
return result;
}
+
+ /**
+ * ifs
+ * @return
+ */
+ public static List<Map<String, Object>>ifsInterfaces(){
+ String result = HttpRequest.get(IFS_URL)
+ .header("Authorization", "Bearer " + getToken())
+ .execute().body();
+ Map<String, Object>map=JsonUtil.jsonToPojo(result,Map.class);
+ return JsonUtil.jsonToPojo(JsonUtil.jsonToString(map.get("LIST_INFO")),List.class);
+ }
}
diff --git a/inventory-server/src/main/java/com/yuanchu/mom/controller/SaleController.java b/inventory-server/src/main/java/com/yuanchu/mom/controller/SaleController.java
index dfc3a62..bd6a077 100644
--- a/inventory-server/src/main/java/com/yuanchu/mom/controller/SaleController.java
+++ b/inventory-server/src/main/java/com/yuanchu/mom/controller/SaleController.java
@@ -1,15 +1,22 @@
package com.yuanchu.mom.controller;
+import cn.hutool.core.date.DateUtil;
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.support.ExcelTypeEnum;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yuanchu.mom.pojo.dto.ExportSaleDto;
+import com.yuanchu.mom.utils.easyexcel.template.ExportSaleTemplate;
+import com.yuanchu.mom.pojo.dto.SaleDto;
import com.yuanchu.mom.pojo.dto.SaleMaterialDto;
import com.yuanchu.mom.pojo.vo.SaleVo;
-import com.yuanchu.mom.service.RepertoryService;
-import com.yuanchu.mom.utils.JackSonUtil;
-import com.yuanchu.mom.pojo.dto.SaleDto;
import com.yuanchu.mom.service.SaleService;
+import com.yuanchu.mom.utils.JackSonUtil;
import com.yuanchu.mom.utils.Jwt;
+import com.yuanchu.mom.utils.easyexcel.CustemHandler;
+import com.yuanchu.mom.utils.easyexcel.EasyExcelUtils;
+import com.yuanchu.mom.utils.easyexcel.LocalDateConverter;
import com.yuanchu.mom.vo.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@@ -20,6 +27,10 @@
import springfox.documentation.spring.web.json.Json;
import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
import java.util.*;
/**
@@ -148,4 +159,16 @@
return Result.success(saleService.download(id));
}
+ @ApiOperation(value = "閿�鍞鍗曞鍑�")
+ @ApiImplicitParams(value = {
+ @ApiImplicitParam(name = "orderNumber", value = "璁㈠崟缂栧彿", dataTypeClass = String.class),
+ @ApiImplicitParam(name = "name", value = "浜у搧鍚嶇О", dataTypeClass = String.class),
+ @ApiImplicitParam(name = "type", value = "鐘舵��(涓虹┖=鍏ㄩ儴)", dataTypeClass = Integer.class),
+ @ApiImplicitParam(name = "delTime", value = "浜よ揣鏃ユ湡", dataTypeClass = String.class)
+ })
+ @PostMapping("/exportSale")
+ public void exportSale(@RequestBody ExportSaleDto dto, HttpServletResponse response){
+ saleService.exportSale(dto,response);
+ }
+
}
diff --git a/inventory-server/src/main/java/com/yuanchu/mom/mapper/SaleMapper.java b/inventory-server/src/main/java/com/yuanchu/mom/mapper/SaleMapper.java
index 14de9eb..04bdcdd 100644
--- a/inventory-server/src/main/java/com/yuanchu/mom/mapper/SaleMapper.java
+++ b/inventory-server/src/main/java/com/yuanchu/mom/mapper/SaleMapper.java
@@ -4,7 +4,9 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.pojo.Sale;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yuanchu.mom.utils.easyexcel.template.ExportSaleTemplate;
+import java.util.List;
import java.util.Map;
/**
@@ -25,4 +27,6 @@
//鎵归噺鍒犻櫎
void delAllSale(String ids);
+
+ List<ExportSaleTemplate> selectSaleListByExport(String orderNumber, String name, Integer type, String delTime);
}
diff --git a/inventory-server/src/main/java/com/yuanchu/mom/pojo/dto/ExportSaleDto.java b/inventory-server/src/main/java/com/yuanchu/mom/pojo/dto/ExportSaleDto.java
new file mode 100644
index 0000000..5fb99c6
--- /dev/null
+++ b/inventory-server/src/main/java/com/yuanchu/mom/pojo/dto/ExportSaleDto.java
@@ -0,0 +1,30 @@
+package com.yuanchu.mom.pojo.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @Author: Zou, Yu
+ * @DATE: 2023/9/24 0024 15:45
+ */
+@Data
+@JsonSerialize
+public class ExportSaleDto {
+
+ @JsonSerialize
+ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+ private String delTime;
+
+ @JsonSerialize
+ private String name;
+
+ @JsonSerialize
+ private Integer type;
+
+ @JsonSerialize
+ private String orderNumber;
+
+}
diff --git a/inventory-server/src/main/java/com/yuanchu/mom/service/SaleService.java b/inventory-server/src/main/java/com/yuanchu/mom/service/SaleService.java
index c420b22..a2ce614 100644
--- a/inventory-server/src/main/java/com/yuanchu/mom/service/SaleService.java
+++ b/inventory-server/src/main/java/com/yuanchu/mom/service/SaleService.java
@@ -5,9 +5,12 @@
import com.yuanchu.mom.pojo.Sale;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.mom.pojo.dto.ConsignmentDto1;
+import com.yuanchu.mom.pojo.dto.ExportSaleDto;
import com.yuanchu.mom.pojo.dto.SaleDto;
import com.yuanchu.mom.pojo.vo.SaleVo;
+import com.yuanchu.mom.utils.easyexcel.template.ExportSaleTemplate;
+import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
@@ -90,4 +93,12 @@
* @return
*/
List<String> download(Integer id);
+
+ /**
+ * 瀵煎嚭閿�鍞鍗�
+ * @param dto
+ * @param response
+ */
+ void exportSale(ExportSaleDto dto, HttpServletResponse response);
+
}
diff --git a/inventory-server/src/main/java/com/yuanchu/mom/service/impl/SaleServiceImpl.java b/inventory-server/src/main/java/com/yuanchu/mom/service/impl/SaleServiceImpl.java
index 85abcc8..516d62d 100644
--- a/inventory-server/src/main/java/com/yuanchu/mom/service/impl/SaleServiceImpl.java
+++ b/inventory-server/src/main/java/com/yuanchu/mom/service/impl/SaleServiceImpl.java
@@ -1,6 +1,8 @@
package com.yuanchu.mom.service.impl;
import cn.hutool.core.date.DateUtil;
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.support.ExcelTypeEnum;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -10,20 +12,25 @@
import com.yuanchu.mom.pojo.Sale;
import com.yuanchu.mom.mapper.SaleMapper;
import com.yuanchu.mom.pojo.SaleMaterial;
-import com.yuanchu.mom.pojo.dto.ConsignmentDto1;
-import com.yuanchu.mom.pojo.dto.ConsignmentDto2;
-import com.yuanchu.mom.pojo.dto.SaleDto;
-import com.yuanchu.mom.pojo.dto.SaleMaterialDto;
+import com.yuanchu.mom.pojo.dto.*;
import com.yuanchu.mom.pojo.vo.SaleVo;
import com.yuanchu.mom.service.SaleMaterialService;
import com.yuanchu.mom.service.SaleService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yuanchu.mom.utils.easyexcel.CustemHandler;
+import com.yuanchu.mom.utils.easyexcel.EasyExcelUtils;
+import com.yuanchu.mom.utils.easyexcel.LocalDateConverter;
+import com.yuanchu.mom.utils.easyexcel.template.ExportSaleTemplate;
import com.yuanchu.mom.vo.Result;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
@@ -257,4 +264,40 @@
}
return list;
}
+
+ @Override
+ public void exportSale(ExportSaleDto dto, HttpServletResponse response) {
+ try{
+ List<ExportSaleTemplate> exportSaleTemplates = saleMapper.selectSaleListByExport(dto.getOrderNumber(), dto.getName(), dto.getType(), dto.getDelTime());
+ for (int i = 0; i < exportSaleTemplates.size(); i++) {
+ exportSaleTemplates.get(i).setId(i+1);
+ }
+ String fileName = String.valueOf(new StringBuilder()
+ .append("閿�鍞鍗昣")
+ .append(DateUtil.today())
+ .append(ExcelTypeEnum.XLS.getValue()));
+ fileName = URLEncoder.encode(fileName, StandardCharsets.UTF_8.toString());
+ response.setContentType("application/octet-stream");
+ response.setHeader("Cache-Control", "no-cache");
+ response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
+ response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
+ EasyExcel.write(response.getOutputStream())
+ .head(ExportSaleTemplate.class)
+ .registerConverter(new LocalDateConverter())
+ .autoCloseStream(true)
+ .excelType(ExcelTypeEnum.XLS)
+ .registerWriteHandler(new CustemHandler())
+ .registerWriteHandler(EasyExcelUtils.getStyleStrategy())
+ .sheet("Sheet1")
+ .doWrite(exportSaleTemplates);
+ }catch (IOException e) {
+ e.printStackTrace();
+ } finally {
+ try {
+ response.getOutputStream().close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
}
diff --git a/inventory-server/src/main/resources/mapper/SaleMapper.xml b/inventory-server/src/main/resources/mapper/SaleMapper.xml
index 5bcccc2..b2d9448 100644
--- a/inventory-server/src/main/resources/mapper/SaleMapper.xml
+++ b/inventory-server/src/main/resources/mapper/SaleMapper.xml
@@ -33,7 +33,31 @@
</if>
order by id desc
</select>
-
+ <select id="selectSaleListByExport" resultType="com.yuanchu.mom.utils.easyexcel.template.ExportSaleTemplate">
+ select order_number AS orderNumber,
+ code,
+ name,
+ proname,
+ type,
+ DATE_FORMAT(delTime, '%Y-%m-%d') AS delTime,
+ note,
+ order_type AS orderType
+ from mom_ocean.sale
+ where state=1
+ <if test="orderNumber!=null and orderNumber!=''">
+ and order_number like concat('%',#{orderNumber},'%')
+ </if>
+ <if test="name!=null and name!=''">
+ and name LIKE CONCAT('%',#{name},'%')
+ </if>
+ <if test="type!=null ">
+ and type=#{type}
+ </if>
+ <if test="delTime!=null and delTime!=''">
+ and DATE_FORMAT(delTime, '%Y-%m-%d')=#{delTime}
+ </if>
+ order by id desc
+ </select>
<!--鏌ヨ璁㈠崟BOM鍒楄〃-->
<select id="selectAllOrder" resultType="java.util.Map">
select sm.id,
diff --git a/pom.xml b/pom.xml
index d372146..797173f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -39,6 +39,8 @@
<feign-okhttp.version>11.0</feign-okhttp.version>
<shiro.version>1.5.3</shiro.version>
<hutool.version>5.8.16</hutool.version>
+ <easyexcel.version>2.2.10</easyexcel.version>
+ <poi.version>4.1.2</poi.version>
<!--鎻愪氦鍓�-->
<!-- 鎵撳寘鍚庡鍑虹殑璺緞 -->
<package.path>${project.build.directory}/BLOG</package.path>
@@ -98,6 +100,24 @@
<dependencyManagement>
<dependencies>
+ <!--easyexcel-->
+ <dependency>
+ <groupId>com.alibaba</groupId>
+ <artifactId>easyexcel</artifactId>
+ <version>${easyexcel.version}</version>
+ </dependency>
+ <!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
+ <dependency>
+ <groupId>org.apache.poi</groupId>
+ <artifactId>poi</artifactId>
+ <version>${poi.version}</version>
+ </dependency>
+ <!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
+ <dependency>
+ <groupId>org.apache.poi</groupId>
+ <artifactId>poi-ooxml</artifactId>
+ <version>${poi.version}</version>
+ </dependency>
<!--log4j-->
<dependency>
<groupId>log4j</groupId>
diff --git a/system-run/src/test/java/com/yuanchu/mom/SystemRunApplicationTest.java b/system-run/src/test/java/com/yuanchu/mom/SystemRunApplicationTest.java
index cd45d30..43087a4 100644
--- a/system-run/src/test/java/com/yuanchu/mom/SystemRunApplicationTest.java
+++ b/system-run/src/test/java/com/yuanchu/mom/SystemRunApplicationTest.java
@@ -1,7 +1,9 @@
package com.yuanchu.mom;
+import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.yuanchu.mom.Task.SyncOrder;
+import com.yuanchu.mom.pojo.RawInspect;
import com.yuanchu.mom.pojo.Sale;
import com.yuanchu.mom.pojo.SaleMaterial;
import org.junit.jupiter.api.Test;
@@ -60,4 +62,26 @@
}
System.out.println(list);
}
+
+ @Test
+ void bb() {
+ List<Map<String, Object>> mapList = SyncOrder.ifsInterfaces();
+ List<RawInspect> rawInspectList = mapList.stream().map(map -> {
+ RawInspect rawInspect = new RawInspect();
+ if (map.get("PART_NO").toString().equals("A0410008010700")) {
+ rawInspect.setCode(map.get("PART_NO").toString()); //鍘熸潗鏂欑紪鐮�
+ String[] split = map.get("PART_DESC").toString().split("锛�");
+ rawInspect.setName(split[0]); //鍘熸潗鏂欏悕绉�
+ rawInspect.setSpecifications(split[1]); //鍨嬪彿瑙勬牸
+ rawInspect.setUnit(map.get("BUY_UNIT_MEAS").toString()); //鍗曚綅
+ rawInspect.setNumber(Integer.parseInt(String.valueOf(map.get("QTY_TO_INSPECT")))); //鏁伴噺
+ rawInspect.setInsState(0); //鏈楠�
+ rawInspect.setFormTime(DateUtil.parse(map.get("APPROVED_DATE").toString())); //鏉ユ枡鏃ユ湡
+ rawInspect.setSupplier(map.get("SUPPLIER_NAME").toString()); //渚涘簲鍟�
+ }
+ return rawInspect;
+ }).collect(Collectors.toList());
+ System.out.println(rawInspectList);
+ }
+
}
--
Gitblit v1.9.3