浏览代码

Merge remote-tracking branch 'origin/master'

liuyc 1 年之前
父节点
当前提交
cbab94f0e2

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

@@ -40,5 +40,5 @@ public class DateFormat implements Serializable {
     /**
      * 值
      */
-    private String val;
+    private String value;
 }

+ 1 - 1
blade-service/blade-manager/src/main/java/com/mixsmart/utils/FormulaUtils.java

@@ -491,7 +491,7 @@ public class FormulaUtils {
         return data.stream().peek(e->{if(StringUtils.isDouble(e.getValue())){e.setValue(StringUtils.number2StringZero(e.getValue(),finalScale));}}).collect(Collectors.toList());
     }
 
-    public static void main(String[] args) {
+    public static void main1(String[] args) {
         Map<String,String> map=getElementCell("/www/wwwroot//Users/hongchuangyanfa/Desktop/privateUrl/1584783238218383360.html","key_16");
         System.out.println(map);
     }

+ 33 - 11
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ExcelTabController.java

@@ -63,6 +63,7 @@ import org.springblade.resource.vo.NewBladeFile;
 import org.springblade.system.cache.ParamCache;
 import org.springframework.jdbc.core.BeanPropertyRowMapper;
 import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -300,14 +301,10 @@ public class ExcelTabController extends BladeController {
         String filecode = SnowFlakeUtil.getId() + "";
         String thmlUrl = file_path + filecode + ".html";
         String exceUrl = file_path + filecode + "123.xlsx";
-        //ExcelInfoUtils.excelInfo(file.getInputStream(),exceUrl,thmlUrl,"1");
+        ExcelInfoUtils.excelInfo(file.getInputStream(),exceUrl,thmlUrl,"1");
         // 上传excel文件
-        // BladeFile bladeFile = newIOSSClient.uploadFile(file.getOriginalFilename(),exceUrl);
+         BladeFile bladeFile = newIOSSClient.uploadFile(file.getOriginalFilename(),exceUrl);
         // 解析原始excel
-        Workbook wb = new Workbook();
-        wb.loadFromMHtml(file.getInputStream());
-        Worksheet sheet = wb.getWorksheets().get(0);
-        sheet.saveToHtml(thmlUrl);
 
         BladeFile bladeFileR = newIOSSClient.uploadFileByInputStream(file);
         detail.setExtension(file.getOriginalFilename());
@@ -633,6 +630,7 @@ public class ExcelTabController extends BladeController {
 
         String fileUrl = wbsTreeContract.getHtmlUrl();
         InputStream fileInputStream = FileUtils.getInputStreamByUrl(fileUrl);
+
         String htmlString = IoUtil.readToString(fileInputStream);
         htmlString = htmlString.replaceAll("placeholder", "placeholderxx");
         htmlString = htmlString.replaceAll("title", "titlexx");
@@ -1965,13 +1963,17 @@ public class ExcelTabController extends BladeController {
             @ApiImplicitParam(name = "pkeyId", value = "主键id", required = true),
             @ApiImplicitParam(name = "status", value = "状态(1显示 2隐藏)", required = true)
     })
-    public R showBussTab(Long pkeyId, int status) throws FileNotFoundException {
+    @Transactional
+    public R showBussTab(Long pkeyId, int status,String nodeId,String classify) throws Exception {
         WbsTreeContract wbsTreeContract = wbsTreeContractService.getBaseMapper().selectOne(Wrappers.<WbsTreeContract>query().lambda()
                 .eq(WbsTreeContract::getPKeyId, pkeyId));
         UpdateWrapper<WbsTreeContract> updateWrapper = new UpdateWrapper<>();
         updateWrapper.in("p_key_id", pkeyId);
         updateWrapper.set("is_buss_show", status);
         wbsTreeContractService.update(updateWrapper);
+        excelTabService.getBussPdfInfo(pkeyId);
+        //重新生成PDF修改queryInfo
+        excelTabService.getBussPdfs(nodeId, classify, wbsTreeContract.getContractId(), wbsTreeContract.getProjectId());
         return R.data("成功");
     }
 
@@ -1984,7 +1986,25 @@ public class ExcelTabController extends BladeController {
             @ApiImplicitParam(name = "contractId", value = "合同段Id", required = true)
     })
     public R getPdfS(String nodeId, String classify, String contractId) throws FileNotFoundException {
-        String sql = "select pdf_url,e_visa_pdf_url,pdf_trial_url,pdf_trial_url_position from u_information_query where classify='" + classify + "' and wbs_id='" + nodeId + "' and contract_id='" + contractId + "'";
+        //获取节点下的所有表单,和附件,如果表单全是隐藏的,并且没有附件,则提示暂无数据
+//        WbsTreeContract node = wbsTreeContractService.getOne(new LambdaQueryWrapper<WbsTreeContract>().eq(WbsTreeContract::getPKeyId,nodeId));
+//        List<WbsTreeContract> list = wbsTreeContractService.list(new LambdaQueryWrapper<WbsTreeContract>().eq(WbsTreeContract::getParentId, node.getId()).eq(WbsTreeContract::getContractId, contractId));
+//        tableInfoService.list(new LambdaQueryWrapper<ta>())
+//        if (list != null && list.size() > 0){
+//            Boolean isShow = true;
+//            for (WbsTreeContract contract : list) {
+//                if (contract.getIsBussShow() == 1){
+//                    isShow = false;
+//                    break;
+//                }
+//            }
+//            if (isShow){
+//                return R.fail("无历史数据预览,请保存数据");
+//            }
+//        }else {
+//            return R.fail("无历史数据预览,请保存数据");
+//        }
+        String sql = "select pdf_url,e_visa_pdf_url,pdf_trial_url,pdf_trial_url_position,status from u_information_query where classify='" + classify + "' and wbs_id='" + nodeId + "' and contract_id='" + contractId + "'";
         List<Map<String, Object>> maps = jdbcTemplate.queryForList(sql);
         if (maps.size() >= 1) {
             Map<String, Object> stringObjectMap = maps.get(0);
@@ -2000,7 +2020,7 @@ public class ExcelTabController extends BladeController {
             }
 
             if (StringUtils.isEmpty(pdfUrl) || pdfUrl.equals("null")) {
-                return R.fail("获取PDF失败");
+                return R.fail("暂无PDF数据");
             } else {
                 return R.data(pdfUrl);
             }
@@ -2101,8 +2121,10 @@ public class ExcelTabController extends BladeController {
                         R bussDataInfo = this.excelTabService.getBussDataInfo(pk, 1);
                         @SuppressWarnings("unchecked")
                         Map<String, Object> jo = (Map<String, Object>) bussDataInfo.getData();
-                        jo.put("pkeyId", pk);
-                        extra.add(jo);
+                        if(jo!=null && ObjectUtils.isNotEmpty(jo)){
+                            jo.put("pkeyId", pk);
+                            extra.add(jo);
+                        }
                     }
                 }
                 List<TableInfo> tableInfoExtra = this.excelTabService.getTableInfoList(extra);

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

@@ -49,17 +49,15 @@ import org.springblade.manager.entity.*;
 import org.springblade.manager.mapper.WbsTreePrivateMapper;
 import org.springblade.manager.service.impl.WbsTreeContractServiceImpl;
 import org.springblade.manager.service.impl.WbsTreePrivateServiceImpl;
+import org.springblade.manager.utils.ExcelInfoUtils;
 import org.springblade.manager.utils.FileUtils;
-import org.springblade.manager.vo.TextdictBy345VO;
-import org.springblade.manager.vo.TextdictDataInfoVO;
-import org.springblade.manager.vo.TextdictInfo_vo;
+import org.springblade.manager.vo.*;
 import org.springblade.system.cache.ParamCache;
 import org.springframework.jdbc.core.BeanPropertyRowMapper;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.RequestParam;
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import org.springblade.manager.vo.TextdictInfoVO;
 import org.springblade.manager.service.ITextdictInfoService;
 import org.springblade.core.boot.ctrl.BladeController;
 
@@ -418,11 +416,9 @@ public class TextdictInfoController extends BladeController {
 
                 } else if (textdictInfo.getTextId().equals("textarea")) { // 文本域
                     int rowspan = element.attr("ROWSPAN").equals("") ? 0 : Integer.parseInt(element.attr("ROWSPAN"));
-
                     element.empty().append("<el-input  :rows=" + rowspan * 2 + "  id=" + keyname + "  @mouseup.left=" + leftCli + "  @keydown.shift.up='keyupShiftUp' @keydown.shift.down='keyupShiftDown' @keydown.shift.left='keyupShiftLeft' @keydown.shift.right='keyupShiftRight'  type='textarea' placeholder=" + placeholder + " v-model=" + vmode + "    keyname=" + keyname + " weighing=" + weighing + "  @contextmenu.prevent.native='contextmenuClick(" + parm + ")'  @mouseup.right='RightClick(" + parm + ")' trIndex=" + trindex + " tdIndex=" + tdindex + "  x1=" + x1 + " x2=" + x2 + " y1=" + y1 + " y2=" + y2 + " style='width:100%;height:100%'  > </el-input>");
-
                 } else if (textdictInfo.getTextId().equals("select")) { // 下拉框
-                    String selectText = " <el-select id=" + keyname + " v-model=" + vmode + " @keydown.shift.up='keyupShiftUp' @keydown.shift.down='keyupShiftDown' @keydown.shift.left='keyupShiftLeft' @keydown.shift.right='keyupShiftRight' keyname=" + keyname + " weighing=" + weighing + " placeholder=" + placeholder + " trIndex=" + trindex + " tdIndex=" + tdindex + "  x1=" + x1 + " x2=" + x2 + " y1=" + y1 + " y2=" + y2 + ">"; //v-model="+keyname+"
+                    String selectText = " <el-select id=" + keyname + " v-model=" + vmode + " @keydown.shift.up='keyupShiftUp' @keydown.shift.down='keyupShiftDown' @keydown.shift.left='keyupShiftLeft' @keydown.shift.right='keyupShiftRight'  @mouseup.right='RightClick(" + parm +")'  keyname=" + keyname + " weighing=" + weighing + " placeholder=" + placeholder + " trIndex=" + trindex + " tdIndex=" + tdindex + "  x1=" + x1 + " x2=" + x2 + " y1=" + y1 + " y2=" + y2 + ">"; //v-model="+keyname+"
                     List<TextdictInfo_vo> optionList = textdictInfo.getTextInfo();
                     if (optionList != null && optionList.size() >= 1) {
                         for (int i = 0; i < optionList.size(); i++)
@@ -433,7 +429,7 @@ public class TextdictInfoController extends BladeController {
 
                 } else if (textdictInfo.getTextId().equals("radio")) { // 单选按钮
 
-                    String radioText = "<el-radio-group id=" + keyname + " @keyDowns='dateKeydown()' v-model=" + vmode + " keyname=" + keyname + " weighing=" + weighing + " placeholder=" + placeholder + " trIndex=" + trindex + " tdIndex=" + tdindex + "  x1=" + x1 + " x2=" + x2 + " y1=" + y1 + " y2=" + y2 + ">";
+                    String radioText = "<el-radio-group id=" + keyname + " @keyDowns='dateKeydown()' v-model=" + vmode + " keyname=" + keyname + "  @mouseup.right='RightClick(" + parm + ")' weighing=" + weighing + " placeholder=" + placeholder + " trIndex=" + trindex + " tdIndex=" + tdindex + "  x1=" + x1 + " x2=" + x2 + " y1=" + y1 + " y2=" + y2 + ">";
                     List<TextdictInfo_vo> optionList = textdictInfo.getTextInfo();
                     if (optionList != null && optionList.size() >= 1) {
                         for (int i = 0; i < optionList.size(); i++)
@@ -451,40 +447,44 @@ public class TextdictInfoController extends BladeController {
                             jsonObject.put("name", optionList.get(i).getDictValue());
                             objs.add(jsonObject);
                         }
-                        String checkbox = "<hc-form-checkbox-group   @keyDowns='dateKeydown()' :objs='" + objs + "'  @change='checkboxGroupChange' :val=" + vmode + " v-model=" + vmode + " keyname=" + keyname + " weighing=" + weighing + " placeholder=" + placeholder + " trIndex=" + trindex + " tdIndex=" + tdindex + "  x1=" + x1 + " x2=" + x2 + " y1=" + y1 + " y2=" + y2 + "> </hc-form-checkbox-group>";
+                        String checkbox = "<hc-form-checkbox-group  @mouseup.right='RightClick(" + parm + ")'   @keyDowns='dateKeydown()' :objs='" + objs + "'  @change='checkboxGroupChange' :val=" + vmode + " v-model=" + vmode + " keyname=" + keyname + " weighing=" + weighing + " placeholder=" + placeholder + " trIndex=" + trindex + " tdIndex=" + tdindex + "  x1=" + x1 + " x2=" + x2 + " y1=" + y1 + " y2=" + y2 + "> </hc-form-checkbox-group>";
                         element.empty().append(checkbox);
                     }
                 } else if (textdictInfo.getTextId().equals("date")) { // 日期--年月日时分秒
-
-                    element.empty().append("<el-date-picker @keyDowns='dateKeydown()' v-model=" + vmode + " type='datetime' format='YYYY年MM月DD日 HH:mm:ss' value-format='YYYY年MM月DD日 HH:mm:ss' placeholder=" + placeholder + " keyname=" + keyname + " weighing=" + weighing + "  @contextmenu.prevent.native='contextmenuClick(" + parm + ")'  @mouseup.right='RightClick(" + parm + ")' trIndex=" + trindex + " tdIndex=" + tdindex + "  x1=" + x1 + " x2=" + x2 + " y1=" + y1 + " y2=" + y2 + " style='width:100%;height:100%'   placeholder='" + placeholder + "'> </el-date-picker>");
-                }
-
-        /*else if (textdictInfo.getTextId().equals("dateYMD")) { // 日期--年月日
-            element.empty().append("<el-date-picker @keyDowns='dateKeydown()' v-model=" + vmode + " type='date' format='YYYY年MM月DD日' value-format='YYYY年MM月DD日' placeholder=" + placeholder + " keyname=" + keyname + " weighing=" + weighing + "  @contextmenu.prevent.native='contextmenuClick(" + parm + ")'  @mouseup.right='RightClick(" + parm + ")' trIndex=" + trindex + " tdIndex=" + tdindex + "  x1=" + x1 + " x2=" + x2 + " y1=" + y1 + " y2=" + y2 + " style='width:100%;height:100%'   placeholder='" + placeholder + "'> </el-date-picker>");
-        } else if (textdictInfo.getTextId().equals("dateHMS")) { // 日期--时分秒
-            element.empty().append("<el-time-picker @keyDowns='dateKeydown()' v-model=" + vmode + " type='date' format='HH:mm:ss' value-format='HH:mm:ss' placeholder=" + placeholder + " keyname=" + keyname + " weighing=" + weighing + "  @contextmenu.prevent.native='contextmenuClick(" + parm + ")'  @mouseup.right='RightClick(" + parm + ")' trIndex=" + trindex + " tdIndex=" + tdindex + "  x1=" + x1 + " x2=" + x2 + " y1=" + y1 + " y2=" + y2 + " style='width:100%;height:100%'   placeholder='" + placeholder + "'> </el-time-picker>");
-        } else if (textdictInfo.getTextId().equals("dateSM")) { // 日期--时分
-            element.empty().append("<el-time-picker @keyDowns='dateKeydown()' v-model=" + vmode + " type='date' format='HH:mm' value-format='HH:mm' placeholder=" + placeholder + " keyname=" + keyname + " weighing=" + weighing + "  @contextmenu.prevent.native='contextmenuClick(" + parm + ")'  @mouseup.right='RightClick(" + parm + ")' trIndex=" + trindex + " tdIndex=" + tdindex + "  x1=" + x1 + " x2=" + x2 + " y1=" + y1 + " y2=" + y2 + " style='width:100%;height:100%'   placeholder='" + placeholder + "'> </el-time-picker>");
-        } else if (textdictInfo.getTextId().equals("dateMDHM")) { // 日期--月日时分
-            element.empty().append("<el-date-picker @keyDowns='dateKeydown()' v-model=" + vmode + " type='datetime' format='MM月DD日 HH:mm' value-format='MM月DD日 HH:mm' placeholder=" + placeholder + " keyname=" + keyname + " weighing=" + weighing + "  @contextmenu.prevent.native='contextmenuClick(" + parm + ")'  @mouseup.right='RightClick(" + parm + ")' trIndex=" + trindex + " tdIndex=" + tdindex + "  x1=" + x1 + " x2=" + x2 + " y1=" + y1 + " y2=" + y2 + " style='width:100%;height:100%'   placeholder='" + placeholder + "'> </el-time-picker>");
-        } else if (textdictInfo.getTextId().equals("dateDHM")) { // 日期--日时分
-            element.empty().append("<el-date-picker @keyDowns='dateKeydown()' v-model=" + vmode + " type='datetime' format='DD日 HH:mm' value-format='DD日 HH:mm' placeholder=" + placeholder + " keyname=" + keyname + " weighing=" + weighing + "  @contextmenu.prevent.native='contextmenuClick(" + parm + ")'  @mouseup.right='RightClick(" + parm + ")' trIndex=" + trindex + " tdIndex=" + tdindex + "  x1=" + x1 + " x2=" + x2 + " y1=" + y1 + " y2=" + y2 + " style='width:100%;height:100%'   placeholder='" + placeholder + "'> </el-time-picker>");
-        }*/
-
-                else if (textdictInfo.getTextId().equals("daterange")) { // 时间段
-                    element.empty().append("<el-date-picker @keyDowns='dateKeydown()' v-model=" + vmode + " type='datetimerange' placeholder=" + placeholder + "  start-placeholder='开始日期'  end-placeholder='结束日期' format='YYYY年MM月DD日' trIndex=" + trindex + " keyname=" + keyname + " weighing=" + weighing + " tdIndex=" + tdindex + "  x1=" + x1 + " x2=" + x2 + " y1=" + y1 + " y2=" + y2 + ">");
-                    element.children().get(0).attr("@change", "datePickerChange($event,'" + keyname + "')");
-                } else if (textdictInfo.getTextId().equals("daterangeYMD")) { // 时间段 /
-                    element.empty().append("<el-date-picker @keyDowns='dateKeydown()' v-model=" + vmode + " type='datetimerange' range-separator='/' placeholder=" + placeholder + "  start-placeholder='开始日期'  end-placeholder='结束日期' format='YYYY年MM月DD日' trIndex=" + trindex + " keyname=" + keyname + " weighing=" + weighing + " tdIndex=" + tdindex + "  x1=" + x1 + " x2=" + x2 + " y1=" + y1 + " y2=" + y2 + ">");
+                    List<DateFormat> dateFormat = textdictInfo.getDateFormat();
+                    String dataf = "YYYY年MM月DD日";
+                    String dateType = "date";
+                    if(dateFormat!=null && dateFormat.size()>=1){
+                        Map<String, String> dateForm = ExcelInfoUtils.getDateFormat(dateFormat);
+                        dataf = dateForm.get("format");
+                        dateType = dateForm.get("type");
+                    }
+                    if(dateType.equals("datetime")){
+                        element.empty().append("<el-date-picker @keyDowns='dateKeydown()' v-model=" + vmode + " type='"+dateType+"' format='"+dataf+"' value-format='"+dataf+"' placeholder=" + placeholder + " keyname=" + keyname + " weighing=" + weighing + "  @contextmenu.prevent.native='contextmenuClick(" + parm + ")'  @mouseup.right='RightClick(" + parm + ")' trIndex=" + trindex + " tdIndex=" + tdindex + "  x1=" + x1 + " x2=" + x2 + " y1=" + y1 + " y2=" + y2 + " style='width:100%;height:100%'   placeholder='" + placeholder + "'> </el-date-picker>");
+                    }else if(dateType.equals("date")){
+                        element.empty().append("<el-date-picker @keyDowns='dateKeydown()' v-model=" + vmode + " type='"+dateType+"' format='"+dataf+"' value-format='"+dataf+"' placeholder=" + placeholder + " keyname=" + keyname + " weighing=" + weighing + "  @contextmenu.prevent.native='contextmenuClick(" + parm + ")'  @mouseup.right='RightClick(" + parm + ")' trIndex=" + trindex + " tdIndex=" + tdindex + "  x1=" + x1 + " x2=" + x2 + " y1=" + y1 + " y2=" + y2 + " style='width:100%;height:100%'   placeholder='" + placeholder + "'> </el-date-picker>");
+                    } else if (dateType.equals("time")) {
+                        element.empty().append("<el-time-picker @keyDowns='dateKeydown()' v-model=" + vmode + "  format='"+dataf+"' value-format='"+dataf+"' placeholder=" + placeholder + " keyname=" + keyname + " weighing=" + weighing + "  @contextmenu.prevent.native='contextmenuClick(" + parm + ")'  @mouseup.right='RightClick(" + parm + ")' trIndex=" + trindex + " tdIndex=" + tdindex + "  x1=" + x1 + " x2=" + x2 + " y1=" + y1 + " y2=" + y2 + " style='width:100%;height:100%'   placeholder='" + placeholder + "'> </el-time-picker>");
+                    }
+                }else if (textdictInfo.getTextId().equals("daterange")) { // 时间段
+                    List<DateFormat> dateFormat = textdictInfo.getDateFormat();
+                    String dataf = "YYYY年MM月DD日";
+                    String sp3 = "至";
+                    if(dateFormat!=null && dateFormat.size()>=1){
+                        Map<String, String> dateForm = ExcelInfoUtils.getDateFormat(dateFormat);
+                        dataf = dateForm.get("format");
+                        sp3 = dateForm.get("sp3");
+                    }
+                    element.empty().append("<el-date-picker @keyDowns='dateKeydown()' range-separator='"+sp3+"' v-model=" + vmode + " type='datetimerange' placeholder=" + placeholder + "  start-placeholder='开始日期'  end-placeholder='结束日期' format='"+dataf+"' trIndex=" + trindex + "  @mouseup.right='RightClick(" + parm + ")' keyname=" + keyname + " weighing=" + weighing + " tdIndex=" + tdindex + "  x1=" + x1 + " x2=" + x2 + " y1=" + y1 + " y2=" + y2 + ">");
                     element.children().get(0).attr("@change", "datePickerChange($event,'" + keyname + "')");
 
                 } else if (textdictInfo.getTextId().equals("img")) { //图片
-                    element.empty().append("<hc-table-form-upload @keydown.shift.up='keyupShiftUp' @keydown.shift.down='keyupShiftDown' @keydown.shift.left='keyupShiftLeft' @keydown.shift.right='keyupShiftRight'  :src='" + vmode + "' placeholder=" + placeholder + " v-model=" + vmode + "  keyName=" + keyname + " weighing=" + weighing + "  @success='formUploadSuccess' @del='delTableFormFile' trIndex=" + trindex + " tdIndex=" + tdindex + "  x1=" + x1 + " x2=" + x2 + " y1=" + y1 + " y2=" + y2 + "></hc-table-form-upload> ");
+                    element.empty().append("<hc-table-form-upload @keydown.shift.up='keyupShiftUp' @keydown.shift.down='keyupShiftDown' @keydown.shift.left='keyupShiftLeft' @keydown.shift.right='keyupShiftRight'  :src='" + vmode + "' placeholder=" + placeholder + "  @mouseup.right='RightClick(" + parm + ")' v-model=" + vmode + "  keyName=" + keyname + " weighing=" + weighing + "  @success='formUploadSuccess' @del='delTableFormFile' trIndex=" + trindex + " tdIndex=" + tdindex + "  x1=" + x1 + " x2=" + x2 + " y1=" + y1 + " y2=" + y2 + "></hc-table-form-upload> ");
                     element.removeAttr("style");
                 } else if (textdictInfo.getTextId().equals("searchSelect")) { //搜索框
-                    element.empty().append("<hc-form-select-search id=" + keyname + " @keydown.shift.up='keyupShiftUp' @keydown.shift.down='keyupShiftDown' @keydown.shift.left='keyupShiftLeft' @keydown.shift.right='keyupShiftRight' type='dap_site_data' :val=" + vmode + " contractId=''  pkeyId='' @change='formRemoteChange' v-model=" + vmode + " placeholder=" + placeholder + " keyname=" + keyname + " weighing=" + weighing + "  @contextmenu.prevent.native='contextmenuClick(" + parm + ")'  @mouseup.right='RightClick(" + parm + ")' trIndex=" + trindex + " tdIndex=" + tdindex + "  x1=" + x1 + " x2=" + x2 + " y1=" + y1 + " y2=" + y2 + " style='width:100%;height:100%' > </hc-form-select-search>");
+                    element.empty().append("<hc-form-select-search id=" + keyname + " @keydown.shift.up='keyupShiftUp' @keydown.shift.down='keyupShiftDown' @keydown.shift.left='keyupShiftLeft' @keydown.shift.right='keyupShiftRight'  @mouseup.right='RightClick(" + parm + ")' type='dap_site_data' :val=" + vmode + " contractId=''  pkeyId='' @change='formRemoteChange' v-model=" + vmode + " placeholder=" + placeholder + " keyname=" + keyname + " weighing=" + weighing + "  @contextmenu.prevent.native='contextmenuClick(" + parm + ")'  @mouseup.right='RightClick(" + parm + ")' trIndex=" + trindex + " tdIndex=" + tdindex + "  x1=" + x1 + " x2=" + x2 + " y1=" + y1 + " y2=" + y2 + " style='width:100%;height:100%' > </hc-form-select-search>");
                 } else if (textdictInfo.getTextId().equals("strengthSearch")) { //强度搜索框
-                    element.empty().append("<hc-form-select-search2 id=" + keyname + " @keydown.shift.up='keyupShiftUp' @keydown.shift.down='keyupShiftDown' @keydown.shift.left='keyupShiftLeft' @keydown.shift.right='keyupShiftRight' type='strength_search' :val=" + vmode + " contractId=''  pkeyId='' @change='formRemoteChange' v-model=" + vmode + " placeholder=" + placeholder + " keyname=" + keyname + " weighing=" + weighing + "  @contextmenu.prevent.native='contextmenuClick(" + parm + ")'  @mouseup.right='RightClick(" + parm + ")' trIndex=" + trindex + " tdIndex=" + tdindex + "  x1=" + x1 + " x2=" + x2 + " y1=" + y1 + " y2=" + y2 + " style='width:100%;height:100%' > </hc-form-select-search2>");
+                    element.empty().append("<hc-form-select-search2 id=" + keyname + " @keydown.shift.up='keyupShiftUp' @keydown.shift.down='keyupShiftDown' @keydown.shift.left='keyupShiftLeft' @keydown.shift.right='keyupShiftRight  @mouseup.right='RightClick(" + parm + ")'' type='strength_search' :val=" + vmode + " contractId=''  pkeyId='' @change='formRemoteChange' v-model=" + vmode + " placeholder=" + placeholder + " keyname=" + keyname + " weighing=" + weighing + "  @contextmenu.prevent.native='contextmenuClick(" + parm + ")'  @mouseup.right='RightClick(" + parm + ")' trIndex=" + trindex + " tdIndex=" + tdindex + "  x1=" + x1 + " x2=" + x2 + " y1=" + y1 + " y2=" + y2 + " style='width:100%;height:100%' > </hc-form-select-search2>");
                 }
                 element.attr("@click", "getInformation(" + oncklickText + ")");
 
@@ -536,8 +536,8 @@ public class TextdictInfoController extends BladeController {
         //获取当前项目下引用相同模板的元素表信息
         List<WbsTreePrivate> wbsTreePrivatesEqual = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>lambdaQuery()
                 .eq(WbsTreePrivate::getProjectId, wbsTreePrivate.getProjectId())
-                .eq(WbsTreePrivate::getExcelId, wbsTreePrivate.getExcelId())
-                .eq(WbsTreePrivate::getStatus, 1));
+                .eq(WbsTreePrivate::getExcelId, wbsTreePrivate.getExcelId()));
+//                .eq(WbsTreePrivate::getStatus, 1));
         List<Long> pKeyIds = wbsTreePrivatesEqual.stream().map(WbsTreePrivate::getPKeyId).collect(Collectors.toList());
         String ids = StringUtils.join(pKeyIds, ",");
         if (StringUtils.isNotEmpty(ids)) {
@@ -632,7 +632,7 @@ public class TextdictInfoController extends BladeController {
         List<Long> cPkeyIds = wbsTreeContractService.getBaseMapper().selectList(Wrappers.<WbsTreeContract>lambdaQuery()
                 .eq(WbsTreeContract::getProjectId, wbsTreePrivate.getProjectId())
                 .eq(WbsTreeContract::getExcelId, wbsTreePrivate.getExcelId())
-                .eq(WbsTreeContract::getStatus, 1)
+//                .eq(WbsTreeContract::getStatus, 1)
                 .in(WbsTreeContract::getId, cIdsList)).stream().map(WbsTreeContract::getPKeyId).collect(Collectors.toList());
         String cPkeyIdsStr = StringUtils.join(cPkeyIds, ",");
         if (StringUtils.isNotEmpty(cPkeyIdsStr)) {

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

@@ -1399,9 +1399,16 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
             isWater = 12;
         }
 
-        int all = sheet.getRow(0).getLastCellNum();
-        int mergedCellCnt = sheet.getNumMergedRegions();
-        for (int i = 0; i < mergedCellCnt - 1; i++) {
+        int all = 0;
+        for (int i = 0; i < 10; i++) {
+            CellRangeAddress mergedCell = sheet.getMergedRegion(i);
+            int xx = mergedCell.getNumberOfCells();
+            if(xx>=all){
+                all=xx;
+            }
+        }
+
+        for (int i = 0; i < 10; i++) {
             CellRangeAddress mergedCell = sheet.getMergedRegion(i);
             int xx = mergedCell.getNumberOfCells() + 2;
             if (xx >= all) {
@@ -1501,7 +1508,12 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
                                 Object obj = DataInfo.get(val);
                                 if (obj instanceof String[]) {
                                     String[] dataDate = (String[]) obj;
-                                    myData = dataDate[0] + "-" + dataDate[1].trim();
+                                    if((dataDate[0].trim()).equals((dataDate[1].trim()))){
+                                        myData = dataDate[0];
+                                    }else{
+                                        myData = dataDate[0] + "-" + dataDate[1].trim();
+                                    }
+
                                 }
                             }
 
@@ -1584,8 +1596,10 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
             QueryWrapper<TextdictInfo> queryWrapper = new QueryWrapper<>();
             queryWrapper.in("type", 2, 6);
             queryWrapper.eq("tab_id", wbsTreeContract.getIsTypePrivatePid());
-
             List<TextdictInfo> textdictInfos = textdictInfoService.getBaseMapper().selectList(queryWrapper);
+
+           // table.getElementsByAttribute("dq")
+
             if (textdictInfos != null && !textdictInfos.isEmpty()) {
                 for (TextdictInfo e : textdictInfos) {
                     String key = e.getColKey();
@@ -1611,19 +1625,19 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
                                 Row row = sheet.getRow(y1 - 1);
                                 if (row != null) {
 
-                                    Cell cell = sheet.getRow(y1 - 1).getCell(x1 - 1);
+                                    Cell cell = row.getCell(x1 - 1);
                                     if (cell != null || ObjectUtils.isNotEmpty(cell)) {
                                         short fontIndex = cell.getCellStyle().getFontIndex();
                                         Font oldfontAt = workbook.getFontAt(fontIndex);
-
                                         Font redFont = workbook.createFont();
                                         redFont.setColor(IndexedColors.WHITE.getIndex()); //设置字体颜色
-                                        redFont.setFontHeightInPoints(oldfontAt.getFontHeightInPoints());//设置字体大小
+                                        redFont.setFontHeightInPoints(Short.valueOf("1"));//设置字体大小
                                         redFont.setFontName(oldfontAt.getFontName());//设置字体
 
                                         CellStyle newStyle = workbook.createCellStyle(); //创建单元格样式
                                         newStyle.cloneStyleFrom(cell.getCellStyle());
                                         newStyle.setFont(redFont);
+                                        newStyle.setShrinkToFit(true);
                                         cell.setCellStyle(newStyle);
                                         cell.setCellValue(e.getId() + "");
                                     }
@@ -1668,7 +1682,13 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
         List<TableFile> tableFileList = tableFileService.getBaseMapper().selectList(Wrappers.<TableFile>query().lambda().eq(TableFile::getTabId, pkeyId + "").eq(TableFile::getIsDeleted, 0));
         tableFileList.sort(Comparator.comparing(TableFile::getType));
 
-        List<String> dataListPdf = tableFileList.stream().filter(tableFile -> tableFile.getDomainPdfUrl() != null && (tableFile.getType() == 1 || tableFile.getType() == 2)).map(TableFile::getDomainPdfUrl).collect(Collectors.toList());
+        List<String> dataListPdf = new ArrayList<>();
+        if(wbsTreeContract.getIsBussShow() == 1){
+            dataListPdf = tableFileList.stream().filter(tableFile -> tableFile.getDomainPdfUrl() != null && (tableFile.getType() == 1 || tableFile.getType() == 2)).map(TableFile::getDomainPdfUrl).collect(Collectors.toList());
+        }else{
+            dataListPdf = tableFileList.stream().filter(tableFile -> tableFile.getDomainPdfUrl() != null && tableFile.getType() == 2).map(TableFile::getDomainPdfUrl).collect(Collectors.toList());
+        }
+//        List<String> dataListPdf = tableFileList.stream().filter(tableFile -> tableFile.getDomainPdfUrl() != null && (tableFile.getType() == 1 || tableFile.getType() == 2)).map(TableFile::getDomainPdfUrl).collect(Collectors.toList());
 
         String pdfPath2 = file_path + "/pdf//" + pkeyId + "_2.pdf";
 
@@ -1705,7 +1725,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
         if (wbsTreeContractList != null && wbsTreeContractList.size() >= 1) {
             for (WbsTreeContract wbsInfo : wbsTreeContractList) {
                 // 隐藏的不生成pdf
-                if (wbsInfo.getIsBussShow() == null || wbsInfo.getIsBussShow() != 2) { //
+//                if (wbsInfo.getIsBussShow() == null || wbsInfo.getIsBussShow() != 2) { //
                     if (StringUtils.isNotEmpty(wbsInfo.getPdfUrl())) {
                         data.add(wbsInfo.getPdfUrl());
                     } else {
@@ -1714,7 +1734,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
                             data.add(bussPdfInfo.getData() + "");
                         }
                     }
-                }
+//                }
             }
         }
 

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

@@ -591,7 +591,13 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
                 wbsTreeContract.setCreateTime(new Date());
                 wbsTreeContract.setTabGroupId(tabGroupId);
                 wbsTreeContract.setSort(wbsInfo.getSort());
-                String nodeName = wbsTreeContractList2.get(wbsTreeContractList2.size() - 1).getNodeName();
+                String nodeName="";
+                if(wbsTreeContractList2.size()>=1){
+                    nodeName = wbsTreeContractList2.get(wbsTreeContractList2.size() - 1).getNodeName();
+                }else{
+                    nodeName = wbsTreeContract.getNodeName();
+                }
+
 
                 if (nodeName.indexOf("_PL_") >= 0) {
                     String[] oldName = nodeName.split("_PL_");

+ 130 - 23
blade-service/blade-manager/src/main/java/org/springblade/manager/utils/ExcelInfoUtils.java

@@ -4,18 +4,23 @@ import com.spire.xls.CellRange;
 import com.spire.xls.FileFormat;
 import com.spire.xls.Workbook;
 import com.spire.xls.Worksheet;
-import com.spire.xls.core.IXLSRange;
 import com.spire.xls.core.spreadsheet.HTMLOptions;
 import org.apache.commons.lang.StringUtils;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.WorkbookFactory;
 import org.jsoup.Jsoup;
 import org.jsoup.nodes.Document;
 import org.jsoup.nodes.Element;
 import org.jsoup.select.Elements;
+
+import org.springblade.common.utils.CommonUtil;
 import org.springblade.common.utils.SnowFlakeUtil;
 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.manager.vo.DateFormat;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -23,17 +28,44 @@ import java.io.FileNotFoundException;
 import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 public class ExcelInfoUtils {
 
+    public static void main1234(String[] args) throws Exception {
+        String fileUrl = "/Users/hongchuangyanfa/Downloads/29ed5438d62d301bf290b908acf3bdbb.xlsx";
+        InputStream exceInp = new FileInputStream(new File(fileUrl));
+
+        org.apache.poi.ss.usermodel.Workbook workbook = WorkbookFactory.create(exceInp);
+
+        //获取工作表
+        Sheet sheet = workbook.getSheetAt(0);
+        sheet.setForceFormulaRecalculation(true);
+
+        Row row = sheet.getRow(34);
+
+        Cell cell = sheet.getRow(34).getCell(1);
+
+        System.out.println(cell.getStringCellValue());
+        // 解析原始excel
+        Workbook wb = new Workbook();
+        wb.loadFromMHtml(fileUrl);
+        Worksheet sheet2 = wb.getWorksheets().get(0);
+
+        CellRange cellRange = sheet2.getCellRange(35, 2);
+        System.out.println(cellRange.getText());
+
+        //sheet.saveToHtml("/Users/hongchuangyanfa/Desktop/pdf/test.html");
+    }
+
     public static void main123(String[] args) throws FileNotFoundException {
         String excelUrl = "/Users/hongchuangyanfa/Downloads/C10.28隧道注浆施工记录表(1).xlsx";
         String old_html = "/Users/hongchuangyanfa/Desktop/pdf/old_html.html";
         String old_xlsx = "/Users/hongchuangyanfa/Desktop/pdf/old_html.xlsx";
         File file = new File(excelUrl);
         InputStream fileInputStream = new FileInputStream(file);
-        excelInfo(fileInputStream,old_xlsx,old_html,"1");
+      //  excelInfo(fileInputStream,old_xlsx,old_html,"1");
 
 
         // 解析原始excel
@@ -41,19 +73,28 @@ public class ExcelInfoUtils {
         wb.loadFromMHtml(excelUrl);
         Worksheet sheet = wb.getWorksheets().get(0);
 
-/*        CellRange[] mergedCells = sheet.getMergedCells();
+        CellRange[] mergedCells = sheet.getCells();
         for(int i=0;i<mergedCells.length;i++){
-            CellRange oldcell = mergedCells[i];
-            IXLSRange ixlsRange = sheet.get(oldcell.getRow(), oldcell.getColumn(), oldcell.getLastRow(), oldcell.getLastColumn());
-            System.out.println(ixlsRange.getDataValidation().getErrorMessage());
+            CellRange oldcell =mergedCells[i];
+           // sheet.get(oldcell.getRow(),oldcell.getColumn()).getDataValidation().setErrorMessage("");
+          //  sheet.get(oldcell.getRow(),oldcell.getColumn(),oldcell.getLastRow(),oldcell.getLastColumn()).getDataValidation().setErrorMessage("");
+            oldcell.getDataValidation().setErrorMessage("");
+        }
+
+
+        CellRange[] mergedCells1 = sheet.getMergedCells();
+        for(int i=0;i<mergedCells1.length;i++) {
+            CellRange oldcell = mergedCells1[i];
+            oldcell.getDataValidation().setErrorMessage(i+"");
         }
 
 
-        ArrayList<CellRange> cellList = sheet.getCellList();
-        for(int i=0;i<cellList.size();i++){
-            CellRange oldcell = cellList.get(i);
+
+        CellRange[] cells = sheet.getCells();
+        for(int i=0;i< cells.length;i++){
+            CellRange oldcell = cells[i];
             System.out.println(oldcell.getRow()+"---"+oldcell.getColumn()+"---="+oldcell.getText()+"---x="+oldcell.getDataValidation().getErrorMessage());
-        }*/
+        }
 
 
 
@@ -104,7 +145,8 @@ public class ExcelInfoUtils {
                 CellRange[] sheet2Cells = sheet.getCells();
                 for (int i = 0; i < sheet2Cells.length; i++) {
                     CellRange oldcell = sheet2Cells[i];
-                    sheet.getCellRange(oldcell.getRow(),oldcell.getColumn()).getDataValidation().setErrorMessage("");
+                    oldcell.getDataValidation().setErrorMessage("");
+                    sheet.get(oldcell.getRow(),oldcell.getColumn()).getDataValidation().setErrorMessage("");
                 }
             }
 
@@ -129,11 +171,10 @@ public class ExcelInfoUtils {
                 }else{
                     j = j + 1;
                 }
-
                 // 目标表添加备注信息
-             //   mergedCell.getDataValidation().setErrorMessage(j+"");
-               // oldcell.getDataValidation().setErrorMessage(j+"");
-               // sheet2.getMergedCells()[i].setText(j+"");
+                mergedCell.getDataValidation().setErrorMessage(j+"");
+                oldcell.getDataValidation().setErrorMessage(j+"");
+                sheet2.getMergedCells()[i].setText(j+"");
                 dataMap.put("y1", oldcell.getRow());
                 dataMap.put("y2", oldcell.getLastRow());
                 dataMap.put("x1", oldcell.getColumn());
@@ -163,10 +204,12 @@ public class ExcelInfoUtils {
                 } else {
                     j = Func.toInt(data);
                 }
-                if(StringUtils.isEmpty(data)){
+
+              /*  if(StringUtils.isEmpty(data)){
                     oldcell.getDataValidation().setErrorMessage(j+"");
                     sheet2.getCells()[i].setText(j+"");
-                }
+                }*/
+
                 if(!xyList.containsKey(j+"")){
                     Map<String, Integer> dataMap = new HashMap<>();
                     dataMap.put("y1", oldcell.getRow());
@@ -368,11 +411,6 @@ public class ExcelInfoUtils {
                 Elements td2 = trs2.get(i).select("td");
                 for (int x = 0; x < td1.size(); x++) {
                     Element cell1 = td1.get(x);
-                    /*if (cell1.children().size() >= 1) {
-                        String data = cell1.text();
-                        cell1.empty();
-                        cell1.text(data);
-                    }*/
                     Element cell2 = td2.get(x);
                     String html = cell2.text();
                     Map<String, Integer> xyMap = xyList.get(html);
@@ -398,4 +436,73 @@ public class ExcelInfoUtils {
         }
     }
 
+    public static Map<String,String> getDateFormat(List<DateFormat> dateFormat) {
+        List<DateFormat> dateFormaty = new ArrayList<>();
+        List<DateFormat> dateFormath = new ArrayList<>();
+        Map<String,String> redata = new HashMap<>();
+        String format = ""; //YYYY年MM月DD日 HH:mm:ss
+        String sp1="文本";
+        String sp2="文本";
+        String sp3="至";
+
+        if(dateFormat!=null && dateFormat.size()>=1){
+            for (DateFormat datef : dateFormat){
+                if(datef.getName().equals("divide_y")){
+                    sp1 =  datef.getValue();
+                }else if(datef.getName().equals("divide_h")){
+                    sp2 =  datef.getValue();
+                }else if(datef.getName().equals("divide_c")){
+                    sp3 =  datef.getValue();
+                }else if(datef.getValue().equals("YYYY")||datef.getValue().equals("MM")||datef.getValue().equals("DD")){
+                    dateFormaty.add(datef);
+                }else if(datef.getValue().equals("HH")||datef.getValue().equals("mm")||datef.getValue().equals("ss")){
+                    dateFormath.add(datef);
+                }
+            }
+        }
+        // 组合-日期
+        if(dateFormaty!=null && dateFormaty.size()>=1){
+            for (int i=0;i<dateFormaty.size();i++){
+                DateFormat datef = dateFormaty.get(i);
+                format =format+datef.getValue()+datef.getName();
+            }
+            if(!sp1.equals("文本")){
+                format  = format.replace("年",sp1).replace("月",sp1).replace("日"," ");
+                if(format.indexOf("DD")<0){
+                    format = format.substring(0,format.length()-1);
+                }
+            }
+        }
+        // 组合-时间
+        if(dateFormath!=null && dateFormath.size()>=1){
+            format = format+" ";
+            for (int i=0;i<dateFormath.size();i++){
+                DateFormat datef = dateFormath.get(i);
+                format =format+datef.getValue()+datef.getName();
+            }
+            if(!sp2.equals("文本")){
+                format  = format.replace("时",sp2).replace("分",sp2).replace("秒","");
+                if(format.indexOf("ss")<0){
+                    format = format.substring(0,format.length()-1);
+                }
+            }
+        }
+        if(StringUtils.isEmpty(format)){
+            format ="YYYY年MM月DD日";
+        }
+        if(dateFormaty.size()>=1&&dateFormath.size()>=1){
+            redata.put("type","datetime");
+        }else if(dateFormaty.size()>=1){
+            redata.put("type","date");
+        } else if (dateFormath.size()>=1) {
+            redata.put("type","time");
+        }
+        if(StringUtils.isNotEmpty(sp3)){
+            redata.put("sp3",sp3);
+        }
+        redata.put("format",format);
+       return  redata;
+    }
+
+
 }

+ 1 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/utils/FileUtils.java

@@ -393,6 +393,7 @@ public class FileUtils {
     public static InputStream getInputStreamByUrl(String fileUrl) throws Exception {
         String file_path = ParamCache.getValue(CommonConstant.SYS_LOCAL_URL);
         String sys_file_net_url = ParamCache.getValue(CommonConstant.SYS_FILE_NET_URL);
+
         File file1 = new File(fileUrl);
         InputStream fileInputStream = null;
         if (file1.exists()) {