Browse Source

Merge branch 'master' of http://47.100.37.243:10191/wutt/manHourHousekeeper into master

seyason 9 tháng trước cách đây
mục cha
commit
75780b91e7

+ 8 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/ContractCustom.java

@@ -11,11 +11,11 @@ import lombok.experimental.Accessors;
 
 /**
  * <p>
- * 
+ *
  * </p>
  *
  * @author Seyason
- * @since 2024-09-23
+ * @since 2024-09-30
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -102,6 +102,12 @@ public class ContractCustom extends Model<ContractCustom> {
     @TableField("currency")
     private String currency;
 
+    /**
+     * 是否固定金额 0否,1是
+     */
+    @TableField("is_amount_fixed")
+    private Boolean isAmountFixed;
+
     /**
      * 合同状态(是否结清):1-履约中,2-履约结束
      */

+ 11 - 7
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ContractServiceImpl.java

@@ -837,14 +837,18 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract> i
                 if (StringUtils.isNotBlank(taxAmountStr)){
                     customItem.setAmountsNoTax(new BigDecimal(taxAmountStr));
                 }
+                if (row.getCell(19)!=null&&row.getCell(19).getStringCellValue().equals("是")){
+                    customItem.setIsAmountFixed(true);
+                }else {
+                    customItem.setIsAmountFixed(false);
+                }
+                customItem.setCurrency(row.getCell(20)==null?null:row.getCell(20).getStringCellValue());
 
-                customItem.setCurrency(row.getCell(19)==null?null:row.getCell(19).getStringCellValue());
-
-                String s = row.getCell(20) == null ? null : row.getCell(20).getStringCellValue();
+//                String s = row.getCell(21) == null ? null : row.getCell(21).getStringCellValue();
                 /*if (StringUtils.isNotBlank(s)){
                     customItem.setPayedAmount(new BigDecimal(s));
                 }*/
-                String s1 = (row.getCell(21) == null) ? null : row.getCell(21).getStringCellValue();
+//                String s1 = (row.getCell(22) == null) ? null : row.getCell(22).getStringCellValue();
                 /*if (StringUtils.isNotBlank(s1)){
                     if ("预付".equals(s1)) {
                         customItem.setPayWay(1);
@@ -866,7 +870,7 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract> i
                 if (StringUtils.isNotBlank(s4)){
                     customItem.setPendingAmounts(new BigDecimal(s4));
                 }*/
-                String status = row.getCell(20)==null?null:row.getCell(20).getStringCellValue();
+                String status = row.getCell(21)==null?null:row.getCell(21).getStringCellValue();
                 if (StringUtils.isNotBlank(status)){
                     if ("履约中".equals(status)) {
                         customItem.setFinishStatus(1);
@@ -874,8 +878,8 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract> i
                         customItem.setFinishStatus(2);
                     }
                 }
-                String remarks = row.getCell(21)==null?null:row.getCell(21).getStringCellValue();
-                customItem.setStampDutyItems(row.getCell(22)==null?null:row.getCell(22).getStringCellValue());
+                String remarks = row.getCell(22)==null?null:row.getCell(22).getStringCellValue();
+                customItem.setStampDutyItems(row.getCell(23)==null?null:row.getCell(23).getStringCellValue());
                 Contract item = new Contract();
                 //检查合同编号是否存在
                 if (StringUtils.isNotBlank(No)){

+ 112 - 105
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -502,10 +502,10 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                         int finalI = i;
                         double sumDay=0;
                         sumDay = dataDetailList.stream().filter(
-                                d -> d.get("id").toString().equals(objectMap.get("id").toString())
-                                        &&d.get("dayOnly")!=null
-                                        && d.get("dayOnly").toString().equals("" + finalI)
-                                        && d.get("userId").toString().equals(objectMap.get("userId").toString())
+                                        d -> d.get("id").toString().equals(objectMap.get("id").toString())
+                                                &&d.get("dayOnly")!=null
+                                                && d.get("dayOnly").toString().equals("" + finalI)
+                                                && d.get("userId").toString().equals(objectMap.get("userId").toString())
                                 )
                                 .mapToDouble(d -> Double.parseDouble(d.get("cost").toString())) // 映射到 cost
                                 .sum();
@@ -587,8 +587,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             for (int i = 2; i <= daysInMonth; i++) {
                 headsecondList.add("");
             }
+            headsecondList.add("项目工时分配");
             if (!allProjectNew.isEmpty()){
-                headsecondList.add("项目工时分配");
                 for (int i = 1; i <= allProjectNew.size()-1; i++) {
                     headsecondList.add("");
                 }
@@ -607,6 +607,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                 for (Map<String, Object> map : allProjectNew) {
                     headsecondList_new.add(map.get("projectName")==null?"":map.get("projectName").toString());
                 }
+            }else {
+                headsecondList_new.add("");
             }
             secondList.add(headsecondList_new);
 
@@ -630,18 +632,23 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                             row.add(sum+"");
                         }
                     }
-                    for (Map<String, Object> objectMap : allProjectNew) {
-                        double sum=0;
-                        sum = costTimeByUserForDay.stream().filter(c -> c.get("projectId").toString().equals(objectMap.get("projectId").toString())
-                                        && c.get("userId").toString().equals(map.get("userId").toString()))
-                                .mapToDouble(d -> Double.parseDouble(d.get("cost").toString()))
-                                .sum();
-                        if (sum==0){
-                            row.add("");
-                        }else {
-                            row.add(sum+"");
+                    if (!allProjectNew.isEmpty()){
+                        for (Map<String, Object> objectMap : allProjectNew) {
+                            double sum=0;
+                            sum = costTimeByUserForDay.stream().filter(c -> c.get("projectId").toString().equals(objectMap.get("projectId").toString())
+                                            && c.get("userId").toString().equals(map.get("userId").toString()))
+                                    .mapToDouble(d -> Double.parseDouble(d.get("cost").toString()))
+                                    .sum();
+                            if (sum==0){
+                                row.add("");
+                            }else {
+                                row.add(sum+"");
+                            }
                         }
+                    }else {
+                        row.add("");
                     }
+
                     secondList.add(row);
                 }
             }
@@ -1039,10 +1046,10 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     projectVO.setProviderInfoList(mapList);
                 }
                 if(companyId==936){
-                        Optional<ProjectSeparate> first1 = projectSeparateList.stream().filter(ps -> ps.getId().equals(project.getId())).findFirst();
-                        if(first1.isPresent()){
-                            projectVO.setProjectSeparate(first1.get());
-                        }
+                    Optional<ProjectSeparate> first1 = projectSeparateList.stream().filter(ps -> ps.getId().equals(project.getId())).findFirst();
+                    if(first1.isPresent()){
+                        projectVO.setProjectSeparate(first1.get());
+                    }
                 }
                 //工程专业版:计算当前项目的总进度
                 if (company.getPackageEngineering() == 1) {
@@ -2132,7 +2139,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     //导出查询者所在公司每个项目的工时成本,包括项目人员明细统计
     @Override
     public HttpRespMsg exportTimeCost(Integer withMainProject, String exportContent,String startDate, String endDate,Integer projectId, String userIds,
-                                        Boolean projectSum,Integer type,Integer deptId, Integer stateKey, Integer withPercent,Integer projectCategoryId, HttpServletRequest request) {
+                                      Boolean projectSum,Integer type,Integer deptId, Integer stateKey, Integer withPercent,Integer projectCategoryId, HttpServletRequest request) {
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         try {
             User targetUser = userMapper.selectById(request.getHeader("Token"));
@@ -2792,7 +2799,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             ProjectSeparate projectSeparate = projectSeparateMapper.selectById(id);
             project.setProjectSeparate(projectSeparate);
         }
-		//判断当前用户是否是这个项目所属BU的直接或者上级部门负责人(主要或其他负责人)
+        //判断当前用户是否是这个项目所属BU的直接或者上级部门负责人(主要或其他负责人)
         String deptCascade = project.getDeptCascade();
         if (!StringUtils.isEmpty(deptCascade)) {
             if (user.getManageDeptId() > 0) {
@@ -2817,7 +2824,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                 }
             }
         }
-		List<ProjectCustom> proCustomList = projectCustomMapper.selectList(new QueryWrapper<ProjectCustom>().eq("company_id", companyId));
+        List<ProjectCustom> proCustomList = projectCustomMapper.selectList(new QueryWrapper<ProjectCustom>().eq("company_id", companyId));
         //按顺序存储项目自定义字段 对应plate
         HashMap map=new HashMap();
         for(int i=0;i<proCustomList.size();i++){
@@ -2876,7 +2883,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             }
         }
         project.setPlateMap(map);
-		HttpRespMsg msg = new HttpRespMsg();
+        HttpRespMsg msg = new HttpRespMsg();
         msg.data = project;
         return msg;
     }
@@ -2898,11 +2905,11 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             project.setEstimatedWorkTime(format);
             //todo:计算剩余工时
             List<Report> reportList;
-                if(project.getManDayStartDate()!=null){
-                    reportList  = reportMapper.selectList(new QueryWrapper<Report>().eq("project_id", project.getId()).gt("create_date",project.getManDayStartDate()).and(wrapper -> wrapper.eq("state", 0).or().eq("state", 1).or().eq("state", 3)));
-                }else {
-                    reportList  = reportMapper.selectList(new QueryWrapper<Report>().eq("project_id", project.getId()).and(wrapper -> wrapper.eq("state", 0).or().eq("state", 1).or().eq("state", 3)));
-                }
+            if(project.getManDayStartDate()!=null){
+                reportList  = reportMapper.selectList(new QueryWrapper<Report>().eq("project_id", project.getId()).gt("create_date",project.getManDayStartDate()).and(wrapper -> wrapper.eq("state", 0).or().eq("state", 1).or().eq("state", 3)));
+            }else {
+                reportList  = reportMapper.selectList(new QueryWrapper<Report>().eq("project_id", project.getId()).and(wrapper -> wrapper.eq("state", 0).or().eq("state", 1).or().eq("state", 3)));
+            }
             //已发送工时
             double sum = reportList.stream().mapToDouble(Report::getWorkingTime).sum();
             bigDecimal=bigDecimal.subtract(new BigDecimal(sum));
@@ -4069,8 +4076,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     parent.text=department.getDepartmentName();
                     parent.type="";
                     if(department.getSuperiorId()!=null){
-                       parent.parent=String.valueOf(department.getSuperiorId());
-                       parent.type="milestone";
+                        parent.parent=String.valueOf(department.getSuperiorId());
+                        parent.type="milestone";
                     }
                     Set set=new HashSet();
                     if(set.add(parent.id)){
@@ -4465,8 +4472,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         List<Integer> inchagerIds=null;
         if(functionAllList.size()==0){
             if(functionInchargeList.size()>0){
-                 record = projectMapper.selectWithStage(companyId, null, null, null,user.getId(),startDate,endDate);
-                 allStageCostList = projectMapper.selectStageSum(projectIds,projectId,user.getId(),startDate,endDate);
+                record = projectMapper.selectWithStage(companyId, null, null, null,user.getId(),startDate,endDate);
+                allStageCostList = projectMapper.selectStageSum(projectIds,projectId,user.getId(),startDate,endDate);
             }
         }
         //获取全部的列
@@ -6195,7 +6202,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                                 case "全部":
                                 case "whole":
                                     project.setStatus(0);
-                                break;
+                                    break;
                                 case "进行中":
                                 case "on going":
                                     project.setStatus(1);
@@ -6371,18 +6378,18 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                             //兼容中英文逗号
                             String mainName = mainNameCell.getStringCellValue();
                             if (mainName != null) {
-                                    if (!StringUtils.isEmpty(mainName)) {
-                                        Optional<ProjectMain> first = projectMainList.stream().filter(pm -> pm.getName().equals(mainName)).findFirst();
-                                        if(first.isPresent()){
-                                            project.setProjectMainId(first.get().getId());
-                                            project.setCategory(first.get().getCategoryId());
-                                            project.setCategoryName(first.get().getCategoryName());
-                                        }else {
-                                            //msg.setError("主项目["+mainName+"]不存在");
-                                            msg.setError(MessageUtils.message("project.masterProjectNull",mainName));
-                                            return msg;
-                                        }
+                                if (!StringUtils.isEmpty(mainName)) {
+                                    Optional<ProjectMain> first = projectMainList.stream().filter(pm -> pm.getName().equals(mainName)).findFirst();
+                                    if(first.isPresent()){
+                                        project.setProjectMainId(first.get().getId());
+                                        project.setCategory(first.get().getCategoryId());
+                                        project.setCategoryName(first.get().getCategoryName());
+                                    }else {
+                                        //msg.setError("主项目["+mainName+"]不存在");
+                                        msg.setError(MessageUtils.message("project.masterProjectNull",mainName));
+                                        return msg;
                                     }
+                                }
                             }
                         }
                     }
@@ -6425,7 +6432,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                             projectSeparate.setProjectCategorySub(projectCategorySubCell.getStringCellValue());
                         }
                         if(exists&&check){
-                           projectSeparateMapper.updateById(projectSeparate);
+                            projectSeparateMapper.updateById(projectSeparate);
                             List<ProjectKeyNodes> nodes = projectKeyNodesMapper.selectList(new QueryWrapper<ProjectKeyNodes>().eq("project_id", id));
                             for (int x = 0; x < projectKeyNodesSettingList.size(); x++) {
                                 ProjectKeyNodesSetting projectKeyNodesSetting = projectKeyNodesSettingList.get(x);
@@ -6792,7 +6799,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                             for (String str : partSplit) {
                                 String s1;
                                 if(str.startsWith("/")){
-                                   s1=str.substring(1,str.length());
+                                    s1=str.substring(1,str.length());
                                 }else s1=str;
                                 String s2;
                                 if(s1.endsWith("/")){
@@ -7616,11 +7623,11 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                 if (inchargerId!=null&&!inchargerId.equals("")) {
                     Optional<User> incharger = userList.stream().filter(u -> u.getId().equals(inchargerId)).findFirst();
                     if(incharger.isPresent()){
-                       if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
-                           item.add("$userName="+incharger.get().getCorpwxUserid()+"$");
-                       }else if(dingding!=null&&dingding.getContactNeedTranslate()==1) {
-                           item.add("$userName="+incharger.get().getDingdingUserid()+"$");
-                       }
+                        if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                            item.add("$userName="+incharger.get().getCorpwxUserid()+"$");
+                        }else if(dingding!=null&&dingding.getContactNeedTranslate()==1) {
+                            item.add("$userName="+incharger.get().getDingdingUserid()+"$");
+                        }
                     }else {
                         item.add("");
                     }
@@ -8895,7 +8902,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         long total = list.size();
         List<Map<String, Object>> resultList = null;
         if (pageIndex!=null && pageSize!=null){
-             resultList = list.stream().skip((pageIndex - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
+            resultList = list.stream().skip((pageIndex - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
         }else {
             resultList = list;
         }
@@ -9223,10 +9230,10 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     //根据设置
                     switch (timeliness){
                         case 1:createDate=createDate.plusDays(1);
-                                while(!WorkDayCalculateUtils.isWorkDay(createDate)){
-                                    createDate=createDate.plusDays(1);
-                                }
-                        break;
+                            while(!WorkDayCalculateUtils.isWorkDay(createDate)){
+                                createDate=createDate.plusDays(1);
+                            }
+                            break;
                         case 2:
                             Integer a=0;
                             while(a!=2){
@@ -9235,7 +9242,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                                     a++;
                                 }
                             }
-                        break;
+                            break;
                     }
                     if(createTimeDate.isBefore(createDate)||createTimeDate.isEqual(createDate)){
                         num++;
@@ -9250,7 +9257,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                 BigDecimal divide;
                 BigDecimal divideWithLeave;
                 if(days!=0){
-                     divide = bigDecimal.divide(BigDecimal.valueOf(days), 2, BigDecimal.ROUND_HALF_UP);
+                    divide = bigDecimal.divide(BigDecimal.valueOf(days), 2, BigDecimal.ROUND_HALF_UP);
                 }else if(days==0){
                     divide=new BigDecimal(1);
                     //查看当天有请假直接算100%
@@ -9507,11 +9514,11 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             }
             OperationRecord operationRecord=new OperationRecord();
             operationRecord.setModuleName("项目管理")
-                           .setOperatorName(user.getName())
-                           .setProjectName(project.getProjectName())
-                           .setCompanyId(user.getCompanyId())
-                           .setOperationTime(LocalDateTime.now())
-                           .setContent("批量添加项目参与人");
+                    .setOperatorName(user.getName())
+                    .setProjectName(project.getProjectName())
+                    .setCompanyId(user.getCompanyId())
+                    .setOperationTime(LocalDateTime.now())
+                    .setContent("批量添加项目参与人");
             operationRecordService.save(operationRecord);
         }
         participationService.saveBatch(list);
@@ -9536,7 +9543,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         return new HttpRespMsg();
     }
 
-	@Override
+    @Override
     public HttpRespMsg getUserWorkingTimeStatic(String startDate, String endDate, Integer pageIndex, Integer pageSize, HttpServletRequest request,String userId,Integer departmentId) {
         HttpRespMsg httpRespMsg =new HttpRespMsg();
         DecimalFormat dft =  new DecimalFormat("0%");
@@ -9650,7 +9657,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
 
 
 
-	@Override
+    @Override
     public HttpRespMsg batchDeleteProject(String projectIdArray, HttpServletRequest request) {
         String token = request.getHeader("TOKEN");
         User user = userMapper.selectById(token);
@@ -10448,44 +10455,44 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             //msg.data = "成功导入" + importCount + "条数据。";
             msg.data = MessageUtils.message("data.importSucRow",importCount);
         }catch(IOException e){
-                e.printStackTrace();
-                //msg.setError("文件处理出错");
-                msg.setError(MessageUtils.message("file.error"));
-                return msg;
-            } catch(NullPointerException e){
-                e.printStackTrace();
-                //msg.setError("数据格式有误或存在空数据 导入失败");
-                msg.setError(MessageUtils.message("file.dataFormatError"));
-                return msg;
-            }catch(InvalidFormatException e){
-                e.printStackTrace();
-                //msg.setError("文件格式错误,如果安装了加密软件需要先解密再上传");
-                msg.setError(MessageUtils.message("file.FormatErrorAndDecrypt"));
-            }catch(EncryptedDocumentException e){
-                e.printStackTrace();
-                //msg.setError("文件加密状态,需要先解除加密状态再上传");
-                msg.setError(MessageUtils.message("file.encryption"));
-                return msg;
-            } catch(Exception e){
-                e.printStackTrace();
-                //msg.setError("上传失败:" + e.getMessage());
-                msg.setError(MessageUtils.message("file.uploadError",e.getMessage()));
-                return msg;
-            } finally{
-                //关闭流
-                try {
-                    if (outputStream != null && inputStream != null) {
-                        outputStream.close();
-                        inputStream.close();
-                        System.out.println("流已关闭");
-                    }
-                } catch (IOException e) {
-                    e.printStackTrace();
+            e.printStackTrace();
+            //msg.setError("文件处理出错");
+            msg.setError(MessageUtils.message("file.error"));
+            return msg;
+        } catch(NullPointerException e){
+            e.printStackTrace();
+            //msg.setError("数据格式有误或存在空数据 导入失败");
+            msg.setError(MessageUtils.message("file.dataFormatError"));
+            return msg;
+        }catch(InvalidFormatException e){
+            e.printStackTrace();
+            //msg.setError("文件格式错误,如果安装了加密软件需要先解密再上传");
+            msg.setError(MessageUtils.message("file.FormatErrorAndDecrypt"));
+        }catch(EncryptedDocumentException e){
+            e.printStackTrace();
+            //msg.setError("文件加密状态,需要先解除加密状态再上传");
+            msg.setError(MessageUtils.message("file.encryption"));
+            return msg;
+        } catch(Exception e){
+            e.printStackTrace();
+            //msg.setError("上传失败:" + e.getMessage());
+            msg.setError(MessageUtils.message("file.uploadError",e.getMessage()));
+            return msg;
+        } finally{
+            //关闭流
+            try {
+                if (outputStream != null && inputStream != null) {
+                    outputStream.close();
+                    inputStream.close();
+                    System.out.println("流已关闭");
                 }
-//            file.deleteOnExit();//程序退出时删除临时文件
-                System.out.println(file.delete());
+            } catch (IOException e) {
+                e.printStackTrace();
             }
-            return msg;
+//            file.deleteOnExit();//程序退出时删除临时文件
+            System.out.println(file.delete());
+        }
+        return msg;
     }
 
     @Override
@@ -12532,9 +12539,9 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             itemList=new ArrayList<>();
         }
         for (GanttDataItem ganttDataItem : itemList) {
-                if(ganttDataItem.getId().equals(userGantt.parent)){
-                    ganttDataItem.children.add(userGantt);
-                }
+            if(ganttDataItem.getId().equals(userGantt.parent)){
+                ganttDataItem.children.add(userGantt);
+            }
             getUserGanttDataItemList(userGantt,ganttDataItem.children);
         }
         return itemList;
@@ -14753,7 +14760,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         }
         String fileName = "项目耗用进度表_"+System.currentTimeMillis();
         try {
-           return   excelExportService.exportGeneralExcelByTitleAndList(wxCorpInfo,dingding,fileName , dataList, path);
+            return   excelExportService.exportGeneralExcelByTitleAndList(wxCorpInfo,dingding,fileName , dataList, path);
         } catch (Exception e) {
             e.printStackTrace();
         }

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/util/ExcelUtil.java

@@ -878,7 +878,7 @@ public class ExcelUtil {
                             sheetOne.addMergedRegion(new CellRangeAddress(0, 0, 4,index-1));
                         }
                         short lastCellNum = row0.getLastCellNum();
-                        if (index<lastCellNum-1){
+                        if (index!=-1&&index<lastCellNum-1){
                             sheetOne.addMergedRegion(new CellRangeAddress(0, 0, index,lastCellNum-1));
                         }
 

+ 2 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ContractCustomMapper.xml

@@ -17,13 +17,14 @@
         <result column="tax_rate" property="taxRate" />
         <result column="amounts_no_tax" property="amountsNoTax" />
         <result column="currency" property="currency" />
+        <result column="is_amount_fixed" property="isAmountFixed" />
         <result column="finish_status" property="finishStatus" />
         <result column="stamp_duty_items" property="stampDutyItems" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        contract_id, customer_org, customer_contact, customer_phone, use_department, funds_source, undertaker, agent, sign_date, filings_date, tax_rate, amounts_no_tax, currency, finish_status, stamp_duty_items
+        contract_id, customer_org, customer_contact, customer_phone, use_department, funds_source, undertaker, agent, sign_date, filings_date, tax_rate, amounts_no_tax, currency, is_amount_fixed, finish_status, stamp_duty_items
     </sql>
 
 </mapper>