瀏覽代碼

bug修改

hongchuangyanfa 3 年之前
父節點
當前提交
cc933ca92d
共有 18 個文件被更改,包括 334 次插入68 次删除
  1. 1 1
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/TableFile.java
  2. 23 12
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/TextdictInfo.java
  3. 1 1
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/WbsTreeContract.java
  4. 1 1
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/TextdictDataInfoVO.java
  5. 73 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/TextdictInfo_vo.java
  6. 32 0
      blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/RoleTypeVO.java
  7. 67 26
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ExcelTabController.java
  8. 11 8
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ExpaileHtml.java
  9. 63 11
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/TextdictInfoController.java
  10. 8 5
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/TextdictInfoMapper.xml
  11. 1 1
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeContractServiceImpl.java
  12. 1 1
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeServiceImpl.java
  13. 0 1
      blade-service/blade-system/src/main/java/org/springblade/system/SystemApplication.java
  14. 17 0
      blade-service/blade-system/src/main/java/org/springblade/system/controller/RoleController.java
  15. 3 0
      blade-service/blade-system/src/main/java/org/springblade/system/mapper/RoleMapper.java
  16. 14 0
      blade-service/blade-system/src/main/java/org/springblade/system/mapper/RoleMapper.xml
  17. 7 0
      blade-service/blade-system/src/main/java/org/springblade/system/service/IRoleService.java
  18. 11 0
      blade-service/blade-system/src/main/java/org/springblade/system/service/impl/RoleServiceImpl.java

+ 1 - 1
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/TableFile.java

@@ -70,7 +70,7 @@ public class TableFile implements Serializable {
 	/**
 	* 附件pdf路径
 	*/
-		private String domainPdfUrl;
+	private String domainPdfUrl;
 
 	/**
 	 * 状态

+ 23 - 12
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/TextdictInfo.java

@@ -39,9 +39,7 @@ import lombok.EqualsAndHashCode;
 	@TableName("m_textdict_info")
 	@ApiModel(value = "Dict对象", description = "Dict对象")
 	public class TextdictInfo implements  Serializable {
-
 	private static final long serialVersionUID = 1L;
-
 	@ApiModelProperty("主键id")
 	@TableId(
 			value = "id",
@@ -52,25 +50,38 @@ import lombok.EqualsAndHashCode;
 			using = ToStringSerializer.class
 	)
 	/**
-	* 字典名称
+	* 名称
 	*/
-		private String dictValue;
+		private String name;
 	/**
-	* 排序
+	* 类型
 	*/
-		private Integer sort;
+		private Integer type;
 	/**
-	* 字段Id
+	* html 坐标
 	*/
-		private Long comId;
+		private String trTd;
 	/**
-	* 是否默认值
+	*  xy 坐标
 	*/
-		private Integer isDefult;
+		private String xy;
 
 	/**
-	 * 是否默认值
+	 * 表单Id
 	 */
-	private Integer isDeleted;
+	private String tabId;
 
+	/**
+	 * 元素key
+	 */
+	private String colKey;
+	/**
+	 * 签字人角色
+	 */
+	private String sigRoleId;
+
+	/**
+	 * 是否删除
+	 */
+	private Integer isDeleted;
 }

+ 1 - 1
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/WbsTreeContract.java

@@ -198,7 +198,7 @@ public class WbsTreeContract extends BaseEntity {
      * 用户端是否隐藏
      */
     @ApiModelProperty(value = "用户端是否隐藏")
-    private String isBussShow;
+    private Integer isBussShow;
 
 
     @ApiModelProperty(value = "原id,如果当前字段有数据则说明这条数据是复制节点")

+ 1 - 1
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/TextdictDataInfoVO.java

@@ -52,6 +52,6 @@ public class TextdictDataInfoVO implements Serializable  {
 
 
 	@ApiModelProperty(value = "字段Id")
-	private List<TextdictInfo> textInfo;
+	private List<TextdictInfo_vo> textInfo;
 
 }

+ 73 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/TextdictInfo_vo.java

@@ -0,0 +1,73 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.manager.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 参数信息表实体类
+ *
+ * @author BladeX
+ * @since 2022-06-17
+ */
+	@Data
+	@ApiModel(value = "Dict对象", description = "Dict对象")
+	public class TextdictInfo_vo implements  Serializable {
+
+	private static final long serialVersionUID = 1L;
+
+	@ApiModelProperty("主键id")
+	@TableId(
+			value = "id",
+			type = IdType.ASSIGN_ID
+	)
+	private Long id;
+	@JsonSerialize(
+			using = ToStringSerializer.class
+	)
+	/**
+	* 字典名称
+	*/
+		private String dictValue;
+	/**
+	* 排序
+	*/
+		private Integer sort;
+	/**
+	* 字段Id
+	*/
+		private Long comId;
+	/**
+	* 是否默认值
+	*/
+		private Integer isDefult;
+
+	/**
+	 * 是否默认值
+	 */
+	private Integer isDeleted;
+
+}

+ 32 - 0
blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/RoleTypeVO.java

@@ -0,0 +1,32 @@
+package org.springblade.system.vo;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class RoleTypeVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+    /**
+     * roleId
+     */
+    private String label;
+
+
+    /**
+     *
+     */
+    private String value;
+
+}
+

+ 67 - 26
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ExcelTabController.java

@@ -8,14 +8,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import com.itextpdf.html2pdf.ConverterProperties;
-import com.itextpdf.html2pdf.HtmlConverter;
 import com.itextpdf.html2pdf.resolver.font.DefaultFontProvider;
 import com.itextpdf.io.font.FontProgram;
 import com.itextpdf.io.font.FontProgramFactory;
-import com.itextpdf.kernel.geom.PageSize;
-import com.itextpdf.kernel.pdf.PdfDocument;
-import com.itextpdf.kernel.pdf.PdfPage;
-import com.itextpdf.kernel.pdf.PdfWriter;
 import com.itextpdf.layout.font.FontProvider;
 import com.spire.xls.Workbook;
 import com.spire.xls.Worksheet;
@@ -44,7 +39,6 @@ import org.springblade.manager.mapper.WbsTreePrivateMapper;
 import org.springblade.manager.service.*;
 import org.springblade.manager.unit.FileUtils;
 import org.springblade.manager.unit.HtmlToPdf;
-import org.springblade.manager.unit.PdfConvertA4Utils;
 import org.springblade.manager.vo.*;
 import org.springblade.manager.wrapper.ExcelTabWrapper;
 import org.springblade.resource.feign.CommonFileClient;
@@ -186,6 +180,9 @@ public class ExcelTabController extends BladeController {
     @ApiOperationSupport(order = 5)
     @ApiOperation(value = "修改", notes = "传入excelTab")
     public R update(@Valid @RequestBody ExcelTab excelTab) {
+        if(excelTab.getFileUrl().equals("")||excelTab.getFileUrl().equals("null")){
+            excelTab.setFileType(2);
+        }
         return R.status(excelTabService.updateById(excelTab));
     }
 
@@ -643,7 +640,7 @@ public class ExcelTabController extends BladeController {
                 dataMap2.put(k,lastStr);
             }else{
                 if(!(dataInfo2.getString(dataMap.get(k))).equals("")) {
-                    dataMap2.put(k, dataInfo2.getString(dataMap.get(k)));
+                    dataMap2.put(k, dataInfo2.getString(dataMap.get(k))+"__"+dataMap.get(k).split("__")[1]);
                 }
             }
         }
@@ -678,12 +675,6 @@ public class ExcelTabController extends BladeController {
             WbsTreeContract wbsTreeContractByP = wbsTreeContractService.getBaseMapper().selectOne(Wrappers.<WbsTreeContract>query().lambda()
                     .eq(WbsTreeContract::getId, wbsTreeContract.getParentId()).eq(WbsTreeContract::getContractId,contractId));
 
-
-            UpdateWrapper<WbsTreeContract> updateWrapper = new UpdateWrapper<>();
-            updateWrapper.in("p_key_id",pkeyId);
-            updateWrapper.set("is_tab_pdf",2);
-            wbsTreeContractService.update(updateWrapper);
-
             //huangjn 保存成功后调用生成资料查询列表数据
             this.informationQueryClient.saveOrUpdateInformationQueryData(wbsTreeContractByP.getPKeyId()+"", "文件名称(后面再完善)", Integer.parseInt(classify), 2);
         }else{ //更新
@@ -695,6 +686,11 @@ public class ExcelTabController extends BladeController {
             sqlInfo = sqlInfo + " where p_key_id="+pkeyId;
         }
 
+        UpdateWrapper<WbsTreeContract> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.in("p_key_id",pkeyId);
+        updateWrapper.set("is_tab_pdf",2);
+        wbsTreeContractService.update(updateWrapper);
+
         jdbcTemplate.execute(sqlInfo);
         this.getBussPdfInfo(Long.parseLong(pkeyId));
        }
@@ -1111,7 +1107,7 @@ public class ExcelTabController extends BladeController {
     })
     public R getBussDataInfo(Long pkeyId) throws FileNotFoundException {
 
-        Map<String, String> reData = new HashMap<>();
+        Map<String, Object> reData = new HashMap<>();
 
         WbsTreeContract wbsTreeContract = wbsTreeContractService.getBaseMapper().selectOne(Wrappers.<WbsTreeContract>query().lambda()
                 .eq(WbsTreeContract::getPKeyId, pkeyId));
@@ -1159,7 +1155,7 @@ public class ExcelTabController extends BladeController {
                     String myData = mysqlData.get(key[0])+"";
                     System.out.println(myData);
                     if(StringUtils.isNotEmpty(myData)&& !myData.equals("null")){
-                        if(myData.indexOf(",")>=0){
+                        if(myData.indexOf(",")>=0 && data.html().indexOf("el-date-picker")<0){
                             String [] dataVal = myData.split(",");
                             for(String val:dataVal){
                                 if(key[1].equals(val.split("__")[1])){
@@ -1167,7 +1163,15 @@ public class ExcelTabController extends BladeController {
                                 }
                             }
                         }else{
-                            reData.put(keyData,myData);
+                            if(key[1].equals(myData.split("__")[1])) {
+                                if(data.html().indexOf("el-date-picker")>=0 && reData.containsKey("pickerKey")){
+                                    String pickerKey = reData.get("pickerKey")+","+keyData;
+                                    reData.put("pickerKey",pickerKey);
+                                }else{
+                                    reData.put("pickerKey",keyData);
+                                }
+                                reData.put(keyData, myData.split("__")[0]);
+                            }
                         }
                     }
                 }
@@ -1228,7 +1232,7 @@ public class ExcelTabController extends BladeController {
                     String myData = mysqlData.get(key[0])+"";
                     System.out.println(myData);
                     if(StringUtils.isNotEmpty(myData)&& !myData.equals("null")){
-                        if(myData.indexOf(",")>=0){
+                        if(myData.indexOf(",")>=0&&data.html().indexOf("el-date-picker")<0){
                             String [] dataVal = myData.split(",");
                             for(String val:dataVal){
                                 if(key[1].equals(val.split("__")[1])){
@@ -1236,7 +1240,15 @@ public class ExcelTabController extends BladeController {
                                 }
                             }
                         }else{
-                            data.empty().append(myData);
+                            if(key[1].equals(myData.split("__")[1])) {
+                                if(myData.indexOf(".000Z")>=0&&myData.indexOf("T")>=0){
+                                    String dataStr[] = myData.split("T")[0].split("-");
+                                    String dataVal = StringUtil.format("{}年{}月{}日", new Object[]{dataStr[0], dataStr[1], Integer.parseInt(dataStr[2])+1});
+                                    data.empty().append(dataVal);
+                                }else{
+                                    data.empty().append(myData.split("__")[0]);
+                                }
+                            }
                         }
                     }
                 }
@@ -1282,7 +1294,7 @@ public class ExcelTabController extends BladeController {
             tableFileService.saveOrUpdate(tableFile);
         }
 
-        List<TableFile> tableFileList = tableFileService.getBaseMapper().selectList(Wrappers.<TableFile>query().lambda().eq(TableFile::getTabId, pkeyId));
+        List<TableFile> tableFileList = tableFileService.getBaseMapper().selectList(Wrappers.<TableFile>query().lambda().eq(TableFile::getTabId, pkeyId).eq(TableFile::getIsDeleted,0));
         tableFileList.sort(Comparator.comparing(TableFile::getType));
 
         //
@@ -1313,6 +1325,7 @@ public class ExcelTabController extends BladeController {
         WbsTreeContract wbsTreeContract = wbsTreeContractService.getBaseMapper().selectOne(Wrappers.<WbsTreeContract>query().lambda()
                 .eq(WbsTreeContract::getPKeyId, pkeyId));
         List<WbsTreeContract> wbsTreeContractList = wbsTreeContractService.getBaseMapper().selectList(Wrappers.<WbsTreeContract>query().lambda().eq(WbsTreeContract::getId,wbsTreeContract.getId()).eq(WbsTreeContract::getContractId,wbsTreeContract.getContractId()));
+
         long newPkId = SnowFlakeUtil.getId();
         Long  id = wbsTreeContract.getId();
         wbsTreeContract.setPKeyId(newPkId);
@@ -1326,13 +1339,41 @@ public class ExcelTabController extends BladeController {
         wbsTreeContract.setDeptName(deptName);
         wbsTreeContract.setIsCopeTab(2);
         wbsTreeContract.setIsTabPdf(1); // pdf 不能预览
-        wbsTreeContract.setIsBussShow("1"); // 是否隐藏表
+        wbsTreeContract.setIsBussShow(1); // 是否隐藏表
         wbsTreeContract.setTabFileType(1);//没有上传附件
-        wbsTreeContractService.save(wbsTreeContract);
+        wbsTreeContract.setPdfUrl("");
+
 
+        String tabName = wbsTreeContract.getInitTableName();
         // 复制表数据
+        String querySql = "select * from "+tabName+" where p_key_id="+pkeyId ;
+        Map<String, Object> dataMap2 = jdbcTemplate.queryForMap(querySql);
 
+        dataMap2.remove("p_key_id");
+        dataMap2.remove("id");
 
+        // sql 组装
+        String sqlInfo="";
+
+            sqlInfo = "INSERT INTO "+tabName+" ( ";
+
+            String keyStr = "id,p_key_id,";
+            String valStr = SnowFlakeUtil.getId() + ","+wbsTreeContract.getPKeyId() + ",";
+
+            for (String keys : dataMap2.keySet()){
+                if(!(dataMap2.get(keys)+"").equals("null")){
+                    keyStr += keys+",";
+                    valStr += "'"+dataMap2.get(keys)+"',";
+                }
+            }
+            keyStr=keyStr.substring(0,keyStr.lastIndexOf(","));
+            valStr=valStr.substring(0,valStr.lastIndexOf(","));
+
+            sqlInfo = sqlInfo + keyStr+") VALUES (" +valStr +")";
+
+            //huangjn 保存成功后调用生成资料查询列表数据
+            jdbcTemplate.execute(sqlInfo);
+        wbsTreeContractService.save(wbsTreeContract);
         return R.data("成功");
     }
 
@@ -1368,20 +1409,20 @@ public class ExcelTabController extends BladeController {
         NewBladeFile newBladeFile = new NewBladeFile();
         if(fileExtension.contains("xlsx")){
             newBladeFile = this.commonFileClient.excelToPdf(file);
-
+            tableFile.setDomainPdfUrl(newBladeFile.getPdfUrl());
         } else if(fileExtension.contains("xls")){
             newBladeFile = this.commonFileClient.excelToPdf(file);
-
+            tableFile.setDomainPdfUrl(newBladeFile.getPdfUrl());
         } else if(fileExtension.contains("docx")){
             newBladeFile = this.commonFileClient.wordToPdf(file);
-
+            tableFile.setDomainPdfUrl(newBladeFile.getPdfUrl());
         } else if(fileExtension.contains("png") || file.getOriginalFilename().contains("jpg")){
             newBladeFile = this.commonFileClient.pngOrJpgToPdf(file);
-
+            tableFile.setDomainPdfUrl(newBladeFile.getPdfUrl());
         } else if(fileExtension.contains("pdf")){
             tableFile.setDomainPdfUrl(bladeFile1.getLink());
         }
-        tableFile.setDomainPdfUrl(newBladeFile.getPdfUrl());
+
         tableFile.setStatus("finished");
         tableFileService.save(tableFile);
 

+ 11 - 8
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ExpaileHtml.java

@@ -4,15 +4,14 @@ import org.jsoup.Jsoup;
 import org.jsoup.nodes.Document;
 import org.jsoup.nodes.Element;
 import org.jsoup.select.Elements;
-import org.springblade.core.tool.utils.FileUtil;
-import org.springblade.core.tool.utils.IoUtil;
-import org.springblade.core.tool.utils.ResourceUtil;
+import org.springblade.core.tool.utils.*;
 import org.springblade.manager.service.IExctabCellService;
 
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
 import java.io.IOException;
+import java.time.LocalDateTime;
 import java.util.*;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -20,12 +19,16 @@ import java.util.regex.Pattern;
 public  class ExpaileHtml {
 
    // private final IExctabCellService exctabCellService;
+/*
+    public static void main(String[] args) throws IOException {
+        *//*String thmlUrl = "/Users/hongchuangyanfa/Desktop/1539066383856304128.html" ;
+        expailHtmlInfo(thmlUrl);*//*
+        String sql ="2022-08-15T16:00:00.000Z";
+        String dataStr[] = sql.split("T")[0].split("-");
+        System.out.println(StringUtil.format("{}年{}月{}日", new Object[]{dataStr[0], dataStr[1], Integer.parseInt(dataStr[2])+1}) );
+
+    }*/
 
- /*   public static void main(String[] args) throws IOException {
-        String thmlUrl = "/Users/hongchuangyanfa/Desktop/1539066383856304128.html" ;
-        expailHtmlInfo(thmlUrl);
-    }
-*/
     // 清表上传解析方案
     public  static void expailHtmlInfo(String thmlUrl) throws FileNotFoundException {
 

+ 63 - 11
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/TextdictInfoController.java

@@ -16,6 +16,8 @@
  */
 package org.springblade.manager.controller;
 
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
@@ -29,15 +31,14 @@ import org.jsoup.nodes.Element;
 import org.jsoup.select.Elements;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
+import org.springblade.core.secure.BladeUser;
 import org.springblade.core.tool.api.R;
-import org.springblade.core.tool.utils.FileUtil;
-import org.springblade.core.tool.utils.Func;
-import org.springblade.core.tool.utils.IoUtil;
-import org.springblade.core.tool.utils.ResourceUtil;
+import org.springblade.core.tool.utils.*;
 import org.springblade.manager.entity.WbsFormElement;
 import org.springblade.manager.entity.WbsTreePrivate;
 import org.springblade.manager.mapper.WbsTreePrivateMapper;
 import org.springblade.manager.vo.TextdictDataInfoVO;
+import org.springblade.manager.vo.TextdictInfo_vo;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.RequestParam;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -49,7 +50,10 @@ import org.springblade.core.boot.ctrl.BladeController;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 参数信息表 控制器
@@ -182,10 +186,11 @@ public class TextdictInfoController extends BladeController {
 		}else if(textdictInfo.getTextId().equals("textarea")){ // 文本域
 			int rowspan = element.attr("ROWSPAN").equals("") ? 0 : Integer.parseInt(element.attr("ROWSPAN"));
 			//@focus='getInformation("+oncklickText+")'
-			element.empty().append("<el-input :rows="+rowspan*2+"  type='textarea' v-model="+vmode+"  @focus='getInformation("+oncklickText+")'   keyname="+keyname+" weighing="+weighing+"  @contextmenu.prevent.native='RightClick("+parm+")' trIndex="+trindex+" tdIndex="+tdindex+"  x1="+x1+" x2="+x2+" y1="+y1+" y2="+y2+" style='width:100%;height:100%'  > </el-input>");
+			element.empty().append("<el-input :rows="+rowspan*2+"  type='textarea' placeholder="+placeholder+" v-model="+vmode+"    keyname="+keyname+" weighing="+weighing+"  @contextmenu.prevent.native='RightClick("+parm+")' trIndex="+trindex+" tdIndex="+tdindex+"  x1="+x1+" x2="+x2+" y1="+y1+" y2="+y2+" style='width:100%;height:100%'  > </el-input>");
+			element.children().get(0).attr("@focus","getInformation("+oncklickText+")");
 		}else if(textdictInfo.getTextId().equals("select")){ // 下拉框
 			String selectText = " <el-select v-model="+vmode+" placeholder='请选择'>"; //v-model="+keyname+"
-			List<TextdictInfo> optionList = textdictInfo.getTextInfo();
+			List<TextdictInfo_vo> optionList = textdictInfo.getTextInfo();
 			if(optionList!=null && optionList.size()>=1){
 				for (int i= 0 ; i<optionList.size();i++)
 				selectText +="<el-option  :key='"+i+"' :label='"+optionList.get(i).getDictValue()+"'   :value='"+i+"' > </el-option>";
@@ -195,7 +200,7 @@ public class TextdictInfoController extends BladeController {
 		}else if(textdictInfo.getTextId().equals("radio")){ // 单选按钮
 
 			String radioText = "<template>";
-			List<TextdictInfo> optionList = textdictInfo.getTextInfo();
+			List<TextdictInfo_vo> optionList = textdictInfo.getTextInfo();
 			if(optionList!=null && optionList.size()>=1){
 				for (int i= 0 ; i<optionList.size();i++)
 					radioText +=" <el-radio  label="+i+">"+optionList.get(i).getDictValue()+"</el-radio>";
@@ -204,23 +209,70 @@ public class TextdictInfoController extends BladeController {
 			element.empty().append(radioText);
 		}else if(textdictInfo.getTextId().equals("checkbox")){ // 多选框
 			String checkbox = "";
-			List<TextdictInfo> optionList = textdictInfo.getTextInfo();
+			List<TextdictInfo_vo> optionList = textdictInfo.getTextInfo();
 			if(optionList!=null && optionList.size()>=1){
 				for (int i= 0 ; i<optionList.size();i++)
 					checkbox +="<el-checkbox>"+optionList.get(i).getDictValue()+"</el-checkbox>";
 			}
 			element.empty().append(checkbox);
 		}else if(textdictInfo.getTextId().equals("date")){ // 日期
-			element.empty().append("<el-date-picker v-model="+vmode+" type='date' format='YYYY年MM月DD日' @focus='getInformation("+oncklickText+")' placeholder="+placeholder+" keyname="+keyname+" weighing="+weighing+"  @contextmenu.prevent.native='RightClick("+parm+")' trIndex="+trindex+" tdIndex="+tdindex+"  x1="+x1+" x2="+x2+" y1="+y1+" y2="+y2+" style='width:100%;height:100%'   placeholder='"+placeholder+"'> </el-date-picker>");
+			element.empty().append("<el-date-picker v-model="+vmode+" type='date' format='YYYY年MM月DD日' placeholder="+placeholder+" keyname="+keyname+" weighing="+weighing+"  @contextmenu.prevent.native='RightClick("+parm+")' trIndex="+trindex+" tdIndex="+tdindex+"  x1="+x1+" x2="+x2+" y1="+y1+" y2="+y2+" style='width:100%;height:100%'   placeholder='"+placeholder+"'> </el-date-picker>");
+			element.children().get(0).attr("@focus","getInformation("+oncklickText+")");
 		}else if(textdictInfo.getTextId().equals("daterange")){ // 时间段
-			element.empty().append("<el-date-picker  type='date' format='YYYY年MM月DD日'></el-date-picker> 至 <el-date-picker type='date' format='YYYY年MM月DD日' ></el-date-picker>");
+			element.empty().append("<el-date-picker  v-model="+vmode+" type='datetimerange'  start-placeholder='开始日期'  end-placeholder='结束日期' format='YYYY年MM月DD日' >");
+			element.children().get(0).attr("keyname",keyname);
 		}
 
 		File writefile = new File(wbsTreePrivate.getHtmlUrl());
 		FileUtil.writeToFile(writefile, doc.html(), Boolean.parseBoolean("UTF-8"));
 
 		return R.success("操作成功");
-
 	}
 
+	/**
+	 *保存电签
+	 */
+	@PostMapping("/save_sigInfo")
+	@ApiOperationSupport(order = 7)
+	@ApiOperation(value = "填报页面数据保存", notes = "填报页面数据保存")
+	public R<String> saveSigInfo(@Valid @RequestBody JSONObject dataInfo) throws IOException {
+
+		JSONArray jsonArray = dataInfo.getJSONArray("dataInfo");
+		Long tableId = jsonArray.getJSONObject(0).getLong("tabId");
+
+		WbsTreePrivate wbsTreePrivate = wbsTreePrivateMapper.getByPKeyId(tableId);
+		// 读取html页面信息
+		File file1 = ResourceUtil.getFile(wbsTreePrivate.getHtmlUrl());
+		String htmlString =  IoUtil.readToString(new FileInputStream(file1));
+		// 样式集合
+		Document doc = Jsoup.parse(htmlString);
+		//解析
+		Element table = doc.select("table").first();
+		Elements trs = table.select("tr");
+
+		List<TextdictInfo> textdictInfos = new ArrayList<>();
+
+		for (int i =0 ; i<jsonArray.size();i++){
+			JSONObject jsonObject = jsonArray.getJSONObject(i);
+			TextdictInfo textdictInfo = new TextdictInfo();
+			String[] trtd = jsonObject.getString("trTd").split("_");
+			Element element = trs.get(Integer.parseInt(trtd[0])).select("td").get(Integer.parseInt(trtd[1]));
+
+			String x1 = element.children().get(0).attr("x1");
+			String x2 = element.children().get(0).attr("x2");
+			String y1 = element.children().get(0).attr("y1");
+			String y2 = element.children().get(0).attr("y2");
+			String id = element.children().get(0).attr("keyname");
+			textdictInfo.setName("电签位置配置");
+			textdictInfo.setType(2);
+			textdictInfo.setColKey(id);
+			textdictInfo.setSigRoleId(jsonObject.getString("sigRoleId"));
+			textdictInfo.setTrTd(jsonObject.getString("trTd"));
+			textdictInfo.setTabId(jsonObject.getString("tabId"));
+			textdictInfo.setIsDeleted(1);
+			textdictInfos.add(textdictInfo);
+		}
+		textdictInfoService.saveOrUpdateBatch(textdictInfos);
+		return R.success("操作成功");
+	}
 }

+ 8 - 5
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/TextdictInfoMapper.xml

@@ -6,13 +6,16 @@
     <resultMap id="textdictInfoResultMap" type="org.springblade.manager.entity.TextdictInfo">
         <result column="id" property="id"/>
         <result column="is_deleted" property="isDeleted"/>
-        <result column="dict_value" property="dictValue"/>
-        <result column="sort" property="sort"/>
-        <result column="com_id" property="comId"/>
-        <result column="is_defult" property="isDefult"/>
+        <result column="name" property="name"/>
+        <result column="type" property="type"/>
+        <result column="tr_td" property="trTd"/>
+        <result column="x_y" property="xy"/>
+        <result column="tab_id" property="tabId"/>
+        <result column="col_key" property="colKey"/>
+        <result column="sig_role_id" property="sigRoleId"/>
+        <result column="is_deleted" property="isDeleted"/>
     </resultMap>
 
-
     <select id="selectTextdictInfoPage" resultMap="textdictInfoResultMap">
         select * from m_textdict_info where is_deleted = 0
     </select>

+ 1 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeContractServiceImpl.java

@@ -465,7 +465,7 @@ public class WbsTreeContractServiceImpl
         wbsTreeContract.setIsLinkTable(wbsTree.getIsLinkTable());
         wbsTreeContract.setExcelId(wbsTree.getExcelId());
         wbsTreeContract.setHtmlUrl(wbsTree.getHtmlUrl());
-        wbsTreeContract.setIsBussShow("1");
+        wbsTreeContract.setIsBussShow(1);
         return wbsTreeContract;
     }
 

+ 1 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeServiceImpl.java

@@ -1579,7 +1579,7 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
         wbsTreeContract.setIsLinkTable(wbsTree.getIsLinkTable());
         wbsTreeContract.setExcelId(wbsTree.getExcelId());
         wbsTreeContract.setHtmlUrl(wbsTree.getHtmlUrl());
-        wbsTreeContract.setIsBussShow("1");
+        wbsTreeContract.setIsBussShow(1);
         return wbsTreeContract;
     }
 

+ 0 - 1
blade-service/blade-system/src/main/java/org/springblade/system/SystemApplication.java

@@ -32,6 +32,5 @@ public class SystemApplication {
 	public static void main(String[] args) {
 		BladeApplication.run(AppConstant.APPLICATION_SYSTEM_NAME, SystemApplication.class, args);
 	}
-
 }
 

+ 17 - 0
blade-service/blade-system/src/main/java/org/springblade/system/controller/RoleController.java

@@ -43,6 +43,7 @@ import org.springblade.system.service.IRoleService;
 import org.springblade.system.user.cache.UserCache;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.vo.GrantVO;
+import org.springblade.system.vo.RoleTypeVO;
 import org.springblade.system.vo.RoleVO;
 import org.springblade.system.vo.RoleVO2;
 import org.springblade.system.wrapper.RoleWrapper;
@@ -206,5 +207,21 @@ public class RoleController extends BladeController {
         return R.data(list);
     }
 
+    //电签 -- 角色类型
+    @ApiOperationSupport(order = 9)
+    @GetMapping("/getRoleTypeInfo")
+    @ApiOperation(value = "列表", notes = "传入role")
+    public R<List<RoleTypeVO>> getRoleTypeInfo() {
+        List<RoleTypeVO> list = roleService.getRoleTypeInfo();
+        return R.data(list);
+    }
 
+    //电签 -- 角色类型
+    @ApiOperationSupport(order = 10)
+    @GetMapping("/getRoleInfoByParentId")
+    @ApiOperation(value = "列表", notes = "传入role")
+    public R<List<RoleTypeVO>> getRoleInfoByParentId(String ParentId) {
+        List<RoleTypeVO> list = roleService.getRoleInfoByParentId(ParentId);
+        return R.data(list);
+    }
 }

+ 3 - 0
blade-service/blade-system/src/main/java/org/springblade/system/mapper/RoleMapper.java

@@ -22,6 +22,7 @@ import org.apache.ibatis.annotations.Param;
 import org.springblade.manager.entity.WbsTableOwnerRole;
 import org.springblade.manager.vo.WbsTableOwnerRoleVO;
 import org.springblade.system.entity.Role;
+import org.springblade.system.vo.RoleTypeVO;
 import org.springblade.system.vo.RoleVO;
 
 import java.util.List;
@@ -77,5 +78,7 @@ public interface RoleMapper extends BaseMapper<Role> {
 
     List<WbsTableOwnerRole> selectRoleAndTableOwnerListByRoleId(Long roleId);
 
+    List<RoleTypeVO> getRoleTypeInfo();
 
+    List<RoleTypeVO> getRoleInfoByParentId(String ParentId);
 }

+ 14 - 0
blade-service/blade-system/src/main/java/org/springblade/system/mapper/RoleMapper.xml

@@ -19,6 +19,14 @@
         <result column="value" property="value"/>
         <result column="key" property="key"/>
     </resultMap>
+
+    <resultMap id="RoleTypeVOMap" type="org.springblade.system.vo.RoleTypeVO">
+        <id column="id" property="id"/>
+        <result column="label" property="label"/>
+        <result column="value" property="value"/>
+    </resultMap>
+
+
     <insert id="bindRoleAndPost">
         insert into m_role_post (r_id,p_id) values (#{rId},#{pId})
     </insert>
@@ -83,5 +91,11 @@
         from m_wbs_table_owner_role where role_id = #{roleId}
     </select>
 
+    <select id="getRoleTypeInfo" resultMap="RoleTypeVOMap">
+        select id as `value`,role_name as label from blade_role where is_deleted = 0 and parent_id=0 and role_name like '%方%'
+    </select>
 
+    <select id="getRoleInfoByParentId" resultMap="RoleTypeVOMap">
+        select id,id as `value`,role_name as label from blade_role where is_deleted = 0 and parent_id=#{ParentId}
+    </select>
 </mapper>

+ 7 - 0
blade-service/blade-system/src/main/java/org/springblade/system/service/IRoleService.java

@@ -22,6 +22,7 @@ import org.springblade.manager.entity.WbsTableOwnerRole;
 import org.springblade.manager.vo.WbsTableOwnerRoleVO;
 import org.springblade.system.dto.RoleDTO;
 import org.springblade.system.entity.Role;
+import org.springblade.system.vo.RoleTypeVO;
 import org.springblade.system.vo.RoleVO;
 
 import javax.validation.constraints.NotEmpty;
@@ -51,6 +52,7 @@ public interface IRoleService extends IService<Role> {
      */
     List<RoleVO> tree(String tenantId);
 
+
     /**
      * 权限配置
      *
@@ -118,4 +120,9 @@ public interface IRoleService extends IService<Role> {
 
     List<Role> selectParentRole();
 
+
+    // 电签 -- 获取角色类型
+    List<RoleTypeVO> getRoleTypeInfo();
+
+    List<RoleTypeVO> getRoleInfoByParentId(String ParentId);
 }

+ 11 - 0
blade-service/blade-system/src/main/java/org/springblade/system/service/impl/RoleServiceImpl.java

@@ -41,6 +41,7 @@ import org.springblade.system.mapper.RoleMapper;
 import org.springblade.system.service.IRoleMenuService;
 import org.springblade.system.service.IRoleScopeService;
 import org.springblade.system.service.IRoleService;
+import org.springblade.system.vo.RoleTypeVO;
 import org.springblade.system.vo.RoleVO;
 import org.springblade.system.wrapper.RoleWrapper;
 import org.springframework.stereotype.Service;
@@ -265,6 +266,16 @@ public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements IR
         return baseMapper.selectList(Wrappers.<Role>query().lambda().eq(Role::getParentId, 0));
     }
 
+    @Override
+    public List<RoleTypeVO> getRoleTypeInfo() {
+        return baseMapper.getRoleTypeInfo();
+    }
+
+    @Override
+    public List<RoleTypeVO> getRoleInfoByParentId(String ParentId) {
+        return baseMapper.getRoleInfoByParentId(ParentId);
+    }
+
     @Transactional(rollbackFor = Exception.class)
     public Boolean submitRoleAndTableOwner(List<Long> roleIds, List<Long> tableOwners) {
         for (Long role : roleIds) {