liuyc 1 năm trước cách đây
mục cha
commit
f3b0054021

+ 19 - 8
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ExcelTabController.java

@@ -73,6 +73,7 @@ import java.awt.*;
 import java.awt.image.BufferedImage;
 import java.io.*;
 import java.net.URLEncoder;
+import java.text.SimpleDateFormat;
 import java.util.List;
 import java.util.*;
 import java.util.regex.Matcher;
@@ -2350,16 +2351,19 @@ public class ExcelTabController extends BladeController {
                                                 x1 = 1;
                                             }
                                             String myData = dataMap.get(val) + "";
-                                            if (myData.indexOf("T") >= 0 && myData.indexOf("-") >= 0) {
+                                            if ((myData.indexOf("T") >= 0 && myData.indexOf("-") >= 0) || (myData.indexOf(",") >= 0 && myData.indexOf("]") >= 0)) {
+                                                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
+                                                sdf.setTimeZone(TimeZone.getTimeZone("GTM+8"));
+                                                SimpleDateFormat formatStr = new SimpleDateFormat("yyyy年MM月dd日");
                                                 if (myData.indexOf(",") >= 0 && myData.indexOf("]") >= 0) {
-                                                    myData = myData.replace("[", "").replace("]", "");
-                                                    String[] dataVal = myData.split(",");
-                                                    String[] Start_dataStr = dataVal[0].split("T")[0].split("-");
-                                                    String StartDate = StringUtil.format("{}年{}月{}日", Start_dataStr[0], Start_dataStr[1], Integer.parseInt(Start_dataStr[2]) + 1);
 
-                                                    String[] end_dataStr = dataVal[1].split("T")[0].split("-");
-                                                    String endDate = StringUtil.format("{}年{}月{}日", end_dataStr[0], end_dataStr[1], Integer.parseInt(end_dataStr[2]) + 1);
+                                                    myData = myData.replace("[", "").replace("]", "").replaceAll("'", "");
+                                                    String[] dataVal = myData.split(",");
 
+                                                    Date Start_dataStr = sdf.parse(dataVal[0]);
+                                                    Date end_dataStr = sdf.parse(dataVal[1]);
+                                                    String StartDate = formatStr.format(Start_dataStr);
+                                                    String endDate = formatStr.format(end_dataStr);
                                                     if (StartDate.equals(endDate)) {
                                                         myData = StartDate;
                                                     } else {
@@ -2367,7 +2371,9 @@ public class ExcelTabController extends BladeController {
                                                     }
                                                 } else {
                                                     String[] dataStr = myData.split("T")[0].split("-");
-                                                    myData = StringUtil.format("{}年{}月{}日", dataStr[0], dataStr[1], Integer.parseInt(dataStr[2]));
+                                                    if (dataStr.length == 3) {
+                                                        myData = StringUtil.format("{}年{}月{}日", dataStr[0], dataStr[1], Integer.parseInt(dataStr[2]));
+                                                    }
                                                 }
                                             }
 
@@ -2386,6 +2392,11 @@ public class ExcelTabController extends BladeController {
                                                 pic.setHeight(Height);
                                                 sheet.getCellRange(y1, x1).getStyle().setShrinkToFit(true);
 
+                                            } else if (myData.equals("1") && data.html().indexOf("hc-form-checkbox-group") >= 0) {
+                                                CellRange cell = sheet.getCellRange(y1, x1);
+                                                String exceVal = cell.getText().replaceAll(" ", "");
+                                                cell.getCellStyle().getExcelFont().setFontName("EUDC");
+                                                cell.setText(exceVal.replace("□", "\u2611"));
                                             } else {
                                                 final CellRange cellRange = sheet.getCellRange(y1, x1);
                                                 cellRange.setText(myData);

+ 2 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ExcelTabServiceImpl.java

@@ -491,13 +491,13 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
             recordTime = DateUtil.format(new Date(), "yyyy-MM-dd");
         }
         // 为数据集
-        String businessIds = tableInfoList.stream().map(TableInfo::getBusinessId).filter(Objects::nonNull).collect(Collectors.joining(","));
+        String businessIds = tableInfoList.stream().map(TableInfo::getBusinessId).filter(ObjectUtils::isNotEmpty).collect(Collectors.joining(","));
         String ids = "";
         if (StringUtils.isEmpty(businessIds)) {
             //检查是否存在原本的数据
             List<ContractLog> contractLogs = this.contractLogClient.queryContractLogByPrimaryKeyIdAndRecordTimeList(parentNode.getPKeyId().toString(), recordTime, tableInfoList.get(0).getContractId());
             if (contractLogs.size() > 0) {
-                businessIds = contractLogs.stream().map(ContractLog::getDataId).map(String::valueOf).collect(Collectors.joining(","));
+                businessIds = contractLogs.stream().map(ContractLog::getDataId).filter(ObjectUtils::isNotEmpty).map(String::valueOf).collect(Collectors.joining(","));
                 ids = contractLogs.stream().map(ContractLog::getId).map(String::valueOf).collect(Collectors.joining(","));
             }
         } else {