Преглед на файлове

Merge remote-tracking branch 'origin/dev' into dev

dzx преди 1 година
родител
ревизия
9bec193d1d

+ 56 - 6
src/main/java/com/xjrsoft/module/ledger/controller/LedgerExportController.java

@@ -29,9 +29,12 @@ import org.ssssssss.magicapi.modules.db.model.PageResult;
 import javax.validation.Valid;
 import java.io.ByteArrayOutputStream;
 import java.net.URLEncoder;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.time.format.DateTimeFormatter;
+import java.util.*;
 
 /**
  * @title: 台账导出
@@ -79,7 +82,10 @@ public class LedgerExportController {
         //构建excel头
         List<List<String>> headlist = buildExcelHeader(columnConfigs);
 
-        List<List<Object>> dataList = buildExcelDataList(apiInfo, headlist, dto.getQueryParam());
+        //构建头对应的key
+        List<List<String>> keylist = buildEntityKey(columnConfigs);
+
+        List<List<Object>> dataList = buildExcelDataList(apiInfo, keylist, dto.getQueryParam());
 
         ByteArrayOutputStream bot = new ByteArrayOutputStream();
         EasyExcel.write(bot).head(headlist).automaticMergeHead(false).excelType(ExcelTypeEnum.XLSX).sheet().doWrite(dataList);
@@ -101,6 +107,17 @@ public class LedgerExportController {
      * @return
      */
     private List<List<String>> buildExcelHeader(JsonArray columnConfigs) {
+        List<List<String>> list = ListUtils.newArrayList();
+        for (JsonElement element : columnConfigs) {
+            String key = element.getAsJsonObject().get("label").getAsString();
+            List<String> head = ListUtils.newArrayList();
+            head.add(key);
+            list.add(head);
+        }
+        return list;
+    }
+
+    private List<List<String>> buildEntityKey(JsonArray columnConfigs) {
         List<List<String>> list = ListUtils.newArrayList();
         for (JsonElement element : columnConfigs) {
             String key = element.getAsJsonObject().get("field").getAsString();
@@ -145,13 +162,46 @@ public class LedgerExportController {
 
         List<List<Object>> list = ListUtils.newArrayList();
 
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+
+        SimpleDateFormat sdfWithTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
+        SimpleDateFormat sdfTime = new SimpleDateFormat("HH:mm:ss");
+
+
         for (Object obj : res.getList()) {
             List<Object> data = ListUtils.newArrayList();
-
+            //Map<String, Object> map = (LinkedHashMap)obj;
             Entity rowValue = Convert.convert(Entity.class, obj);
 
             for (List<String> head : headlist){
-                data.add(rowValue.get(head.get(0)));
+                Object value = rowValue.get(head.get(0));
+
+                if (value instanceof Date) {
+                    String timeStr = sdfTime.format(value);
+                    String dateStr = "";
+
+                    if (timeStr.equals("00:00:00")) {
+                        dateStr = sdf.format(value);
+                    } else {
+                        dateStr = sdfWithTime.format(value);
+                    }
+                    data.add(dateStr);
+                }else if(value instanceof LocalDateTime){
+                    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+                    String formattedDateTime = ((LocalDateTime) value).format(formatter);
+                    data.add(formattedDateTime);
+                }else if(value instanceof LocalDate){
+                    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+                    String formattedDate = ((LocalDate) value).format(formatter);
+                    data.add(formattedDate);
+                }else if(value instanceof LocalTime){
+                    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");
+                    String formattedTime = ((LocalTime) value).format(formatter);
+                    data.add(formattedTime);
+                }else{
+                    data.add(rowValue.get(head.get(0)));
+                }
             }
 
             list.add(data);

+ 3 - 1
src/main/resources/mapper/oa/OfficialDocumentReceivedMapper.xml

@@ -4,7 +4,9 @@
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.xjrsoft.module.oa.mapper.OfficialDocumentReceivedMapper">
     <select id="getMaxReceivedNumber" resultType="java.lang.Integer">
-        SELECT IFNULL(MAX(SUBSTR(received_number,6,3)), 0) + 1 FROM official_document_received WHERE YEAR(received_number) = YEAR(NOW())
+        SELECT IFNULL(MAX(SUBSTR(received_number, 6, 3)), 0) + 1
+        FROM official_document_received
+        WHERE YEAR(received_date) = YEAR(NOW())
     </select>
 
 </mapper>