ezhizao_zx 1 rok pred
rodič
commit
e167f2aa32

+ 18 - 0
src/main/java/cn/ezhizao/common/utils/poi/ExcelUtil.java

@@ -1716,4 +1716,22 @@ public class ExcelUtil<T>
         }
         return method;
     }
+
+    //读取表头
+    public List<String> readExcelHeaders(InputStream inputStream) throws IOException {
+        List<String> headers = new ArrayList<>();
+
+        Workbook workbook = WorkbookFactory.create(inputStream);
+        Sheet sheet = workbook.getSheetAt(0); // Assuming the header is in the first row
+
+        Row headerRow = sheet.getRow(0);
+
+        Iterator<Cell> cellIterator = headerRow.cellIterator();
+        while (cellIterator.hasNext()) {
+            Cell cell = cellIterator.next();
+            headers.add(cell.getStringCellValue());
+        }
+
+        return headers;
+    }
 }

+ 28 - 0
src/main/java/cn/ezhizao/project/business/company/controller/BizCompanyController.java

@@ -1,12 +1,17 @@
 package cn.ezhizao.project.business.company.controller;
 
 import java.io.IOException;
+import java.lang.reflect.Field;
 import java.nio.charset.Charset;
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
+import java.util.stream.Collectors;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 
 import cn.ezhizao.common.utils.StringUtils;
+import cn.ezhizao.framework.aspectj.lang.annotation.Excel;
 import cn.ezhizao.project.business.channel.domain.BizChannel;
 import cn.ezhizao.project.business.channel.service.IBizChannelService;
 import cn.ezhizao.project.business.company.domain.DictRegion;
@@ -17,6 +22,8 @@ import cn.ezhizao.project.business.companyContactor.domain.BizCompanyContactor;
 import cn.ezhizao.project.business.companyContactor.service.IBizCompanyContactorService;
 import cn.ezhizao.project.business.companyFollow.domain.BizCompanyFollowDetail;
 import cn.ezhizao.project.business.companyFollow.service.IBizCompanyFollowDetailService;
+import cn.ezhizao.project.business.housingFund.domain.BizHousingFundConfirmDetailEmployee;
+import cn.ezhizao.project.business.socialSecurity.domain.BizSocialSecurityConfirmDetailEmployee;
 import cn.ezhizao.project.system.domain.SysUser;
 import cn.ezhizao.project.system.service.ISysUserService;
 import com.alibaba.fastjson2.JSONArray;
@@ -103,10 +110,31 @@ public class BizCompanyController extends BaseController
         ExcelUtil<BizCompany> util = new ExcelUtil<>(BizCompany.class);
         List<BizCompany> companyList = util.importExcel(file.getInputStream());
         String operName = getUsername();
+        // 获取 入Excel 表头字段
+        List<String> excelHeaders = util.readExcelHeaders(file.getInputStream());
+        //获取实体类字段
+        List<String> names=getExcelAnnotatedFields(BizCompany.class);
+        //如果不存在模板中的字段,返回错误
+        if (!excelHeaders.containsAll(names)) {
+            return error("导入数据与模板不匹配!");
+        }
         String message = bizCompanyService.importCompany(companyList, operName, getTenantId() == null ? 0 : getTenantId());
         return success(message);
     }
 
+    public  List<String> getExcelAnnotatedFields(Class<?> clazz) {
+        Field[] fields = clazz.getDeclaredFields();
+        List<String> result = new ArrayList<>();
+        for (Field field : fields) {
+            if (field.isAnnotationPresent(Excel.class)) {
+                Excel excelAnnotation = field.getAnnotation(Excel.class);
+                String fieldName = excelAnnotation.name();
+                result.add(fieldName);
+            }
+        }
+        return result;
+    }
+
     /**
      * 获取company详细信息
      */

+ 8 - 8
src/main/java/cn/ezhizao/project/business/order/domain/BizArchiveInput.java

@@ -29,7 +29,7 @@ public class BizArchiveInput extends BaseEntity {
     /**
      * 档案编码
      */
-    @Excel(name = "档案编码")
+//    @Excel(name = "档案编码")
     @ApiModelProperty(value = "档案编码")
     private String archiveCode;
 
@@ -43,12 +43,12 @@ public class BizArchiveInput extends BaseEntity {
     private Long fromId;
 
     @TableField(exist = false)
-    @Excel(name = "客户名称", sort = 1)
+    @Excel(name = "客户名称",width = 30, sort = 1)
     private String companyName;
 
     @TableField(exist = false)
     @ApiModelProperty("税号")
-    @Excel(name = "税号", sort = 2)
+    @Excel(name = "税号",width = 25, sort = 2)
     private String socialCreditCode;
 
     @ApiModelProperty("签单人")
@@ -69,7 +69,7 @@ public class BizArchiveInput extends BaseEntity {
      * 开始月
      */
     @JsonFormat(pattern = "yyyy-MM-dd")
-    @Excel(name = "开始月", width = 30, dateFormat = "yyyy-MM-dd")
+//    @Excel(name = "开始月", width = 20, dateFormat = "yyyy-MM-dd")
     @ApiModelProperty(value = "开始月")
     private Date startMonth;
 
@@ -77,7 +77,7 @@ public class BizArchiveInput extends BaseEntity {
      * 结束月
      */
     @JsonFormat(pattern = "yyyy-MM-dd")
-    @Excel(name = "结束月", width = 30, dateFormat = "yyyy-MM-dd")
+//    @Excel(name = "结束月", width = 20, dateFormat = "yyyy-MM-dd")
     @ApiModelProperty(value = "结束月")
     private Date endMonth;
 
@@ -96,7 +96,7 @@ public class BizArchiveInput extends BaseEntity {
     /**
      * 凭证图片路径
      */
-    @Excel(name = "凭证图片路径")
+//    @Excel(name = "凭证图片路径")
     @ApiModelProperty(value = "凭证图片路径")
     private String proofUrl;
 
@@ -167,7 +167,7 @@ public class BizArchiveInput extends BaseEntity {
      * 出库时间
      */
     @JsonFormat(pattern = "yyyy-MM-dd")
-    @Excel(name = "出库时间", width = 30, dateFormat = "yyyy-MM-dd")
+//    @Excel(name = "出库时间", width = 30, dateFormat = "yyyy-MM-dd")
     @ApiModelProperty(value = "出库时间")
     private Date outputDate;
 
@@ -180,7 +180,7 @@ public class BizArchiveInput extends BaseEntity {
     /**
      * 月数
      */
-    @Excel(name = "月数")
+//    @Excel(name = "月数")
     @ApiModelProperty(value = "月数")
     private Long monthNum;
 

+ 3 - 0
src/main/java/cn/ezhizao/project/business/order/service/impl/BizArchiveInputServiceImpl.java

@@ -523,6 +523,7 @@ public class BizArchiveInputServiceImpl extends ServiceImpl<BizArchiveInputMappe
             List<BizWorkOrder> bizWorkOrders = workOrderService.query().eq("contract_id", bizArchiveInput.getId()).list();
             bizWorkOrders.forEach(v -> {
                 v.setIsStop(1);
+                v.setIsContinue(0);
             });
             return bizWorkOrders.isEmpty() || workOrderService.updateBatchById(bizWorkOrders);
         } else if (bizArchiveInput.getServiceType().equals(1)) {
@@ -548,6 +549,7 @@ public class BizArchiveInputServiceImpl extends ServiceImpl<BizArchiveInputMappe
                         if (records.stream().anyMatch(v -> (v.getYear() + v.getMonth()).compareTo(endDate.toString("yyyyMM")) >= 0) || records.isEmpty()) {
                             // 停止工单
                             l.setIsStop(1);
+                            l.setIsContinue(0);
                         } else {
                             // 不停止工单 只修改工单完成时间
                             l.setMonthNum(monthNun);
@@ -557,6 +559,7 @@ public class BizArchiveInputServiceImpl extends ServiceImpl<BizArchiveInputMappe
                         }
                     } else {
                         l.setIsStop(1);
+                        l.setIsContinue(0);
                     }
                 });
             }