wangming 1 ano atrás
pai
commit
7a46370eef

+ 0 - 20
business-common/pom.xml

@@ -89,26 +89,6 @@
         </dependency>
         <!-- 解决maven打包 错误: 程序包com.sun.istack.internal不存在 - BBSMAX -->
 
-        <dependency>
-            <groupId>com.google.code.gson</groupId>
-            <artifactId>gson</artifactId>
-            <version>2.2.4</version>
-        </dependency>
-
-        <!-- websocket start -->
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-websocket</artifactId>
-            <version>1.3.5.RELEASE</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.springframework</groupId>
-            <artifactId>spring-websocket</artifactId>
-            <version>4.3.6.RELEASE</version>
-        </dependency>
-        <!-- websocket end -->
-
         <dependency>
             <groupId>com.alibaba</groupId>
             <artifactId>fastjson</artifactId>

+ 0 - 98
business-common/src/main/java/com/rongwei/bscommon/sys/service/impl/LuckysheetServiceImpl.java

@@ -1,23 +1,17 @@
 package com.rongwei.bscommon.sys.service.impl;
 
-import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
-import com.alibaba.fastjson.serializer.SerializerFeature;
 import com.rongwei.bscommon.sys.feign.LuckySheetService;
 import com.rongwei.bscommon.sys.service.ZhcxProjectManageService;
-import com.rongwei.bscommon.sys.utils.LuckySheet4SummaryHelp;
 import com.rongwei.bsentity.domain.LuckysheetDo;
 import com.rongwei.bscommon.sys.dao.LuckysheetDao;
 import com.rongwei.bscommon.sys.service.LuckysheetService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.rongwei.bsentity.domain.ZhcxProjectManageDo;
-import com.rongwei.bsentity.dto.luckysheet.SheetConfigResultDto;
 import com.rongwei.bsentity.dto.project.ProjectSummaryParamExcelDto;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import static com.rongwei.bscommon.sys.utils.LuckySheet4SummaryHelp.*;
-
 /**
  * <p>
  *  服务实现类
@@ -62,96 +56,4 @@ public class LuckysheetServiceImpl extends ServiceImpl<LuckysheetDao, Luckysheet
         projectManageService.updateById(projectEntity);
         return listId;
     }
-
-    /**
-     * 组装汇总文件参数
-     *
-     * @param paramExcelDto
-     * @return
-     */
-    private SheetConfigResultDto assembleProjectSummaryTitle(ProjectSummaryParamExcelDto paramExcelDto) {
-        //合并配置
-        JSONObject mergeConfig = LuckySheet4SummaryHelp.getMergeConfig(paramExcelDto.getDeviceNumberList());
-        //边框信息
-        JSONArray borderInfo = LuckySheet4SummaryHelp.getBorderInfo(paramExcelDto.getDeviceNumberList());
-        //下拉框
-        JSONObject dataVerification = LuckySheet4SummaryHelp.getDataVerification(paramExcelDto);
-        //数据
-        JSONArray cellData = getCellData(paramExcelDto);
-        //行高
-        JSONObject rowLenObj = new JSONObject();
-        rowLenObj.put("0", 24);
-
-        return SheetConfigResultDto.builder()
-                .borderInfoConfig(borderInfo)
-                .dataVerification(dataVerification)
-                .celldata(cellData)
-                .mergeConfig(mergeConfig)
-                .rowlenConfig(rowLenObj)
-                .build();
-    }
-
-    /**
-     * 获取数据
-     *
-     * @param paramExcelDto
-     * @return
-     */
-    public JSONArray getCellData(ProjectSummaryParamExcelDto paramExcelDto) {
-
-        String[] titleFirst = MAIN_TITLE_FIRST;
-        String[] titleSecond = MAIN_TITLE_SECOND;
-        String[] machineTitleCols = MACHINE_TITLE_COLS;
-
-        int colsSize = titleFirst.length + paramExcelDto.getDeviceNumberList().size() * machineTitleCols.length + titleSecond.length;
-        //数据
-        JSONArray celldata = LuckySheet4SummaryHelp.assembleFirstTitle(paramExcelDto.getFileName(), colsSize);
-        //二级标题1
-        JSONArray celldata1 = LuckySheet4SummaryHelp.assembleCommonCol1();
-
-        JSONArray celldata2 = new JSONArray();
-        celldata2.addAll(LuckySheet4SummaryHelp.assembleCommonRow2Col1());
-
-        //遍历机号
-        for(int m = 0, n = paramExcelDto.getDeviceNumberList().size(); m < n; m++) {
-            //机号
-            celldata1.addAll(LuckySheet4SummaryHelp.genDeviceNumberFirstTitle(paramExcelDto.getDeviceNumberList().get(m), titleFirst.length + m * machineTitleCols.length));
-            //机号标题
-            celldata2.addAll(LuckySheet4SummaryHelp.assembleDeviceNumberSecondTitle(titleFirst.length + m * machineTitleCols.length));
-        }
-
-        celldata1.addAll(LuckySheet4SummaryHelp.assembleCommonRow1Col2(titleFirst.length + paramExcelDto.getDeviceNumberList().size() * machineTitleCols.length));
-
-        //最后6列数据
-        celldata2.addAll(LuckySheet4SummaryHelp.assembleCommonCol2(titleFirst.length + paramExcelDto.getDeviceNumberList().size() * machineTitleCols.length));
-        celldata.addAll(celldata1);
-        celldata.addAll(celldata2);
-
-        return celldata;
-    }
-
-//    public static void main(String[] args) {
-//        List<String> deviceNumList = new ArrayList<>();
-//        deviceNumList.add("1#");
-//        deviceNumList.add("2#");
-//        deviceNumList.add("3#");
-//        deviceNumList.add("4#");
-//        deviceNumList.add("5#");
-//        deviceNumList.add("6#");
-//        deviceNumList.add("7#");
-//        deviceNumList.add("8#");
-//        deviceNumList.add("9#");
-//        deviceNumList.add("10#");
-//        deviceNumList.add("11#");
-//        deviceNumList.add("12#");
-//
-//        ProjectSummaryParamExcelDto excelDto = ProjectSummaryParamExcelDto.builder()
-//                .deviceNumberList(deviceNumList)
-//                .fileName("1002000938马士基埃及桥吊项目整改文字版")
-//                .build();
-//
-//        JSONArray cellData = getCellData(excelDto);
-//
-//        System.out.println(cellData.toString(SerializerFeature.WriteMapNullValue));
-//    }
 }

+ 0 - 659
business-common/src/main/java/com/rongwei/bscommon/sys/utils/LuckySheet4SummaryHelp.java

@@ -3,19 +3,9 @@ package com.rongwei.bscommon.sys.utils;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
-import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONException;
 import com.alibaba.fastjson.JSONObject;
-import com.rongwei.bsentity.dto.luckysheet.AssembleCellParam;
-import com.rongwei.bsentity.dto.project.ProjectSummaryParamExcelDto;
-import com.rongwei.bsentity.dto.project.SheetInfoParam;
-import com.rongwei.rwcommon.utils.StringUtils;
-
-import java.text.SimpleDateFormat;
-import java.util.Arrays;
 import java.util.Date;
-import java.util.List;
-import java.util.stream.Collectors;
 
 public class LuckySheet4SummaryHelp {
 
@@ -111,653 +101,4 @@ public class LuckySheet4SummaryHelp {
 
         return ymdSb.toString();
     }
-
-
-    /**
-     * {
-     * 		"c": 0,
-     * 		"r": 0,
-     * 		"v": {
-     * 			"m": "1002000938马士基埃及桥吊项目整改文字版",
-     * 			"v": "1002000938马士基埃及桥吊项目整改文字版",
-     * 			"bg": "rgb(51, 102, 255)",
-     * 			"bl": 1,
-     * 			"ct": {
-     * 				"t": "g",
-     * 				"fa": "General"
-     *                        },
-     * 			"fc": "rgb(0, 0, 0)",
-     * 			"ff": 5,
-     * 			"fs": 16,
-     * 			"ht": 0,
-     * 			"it": 0,
-     * 			"mc": {
-     * 				"c": 0,
-     * 				"r": 0,
-     * 				"cs": 58,
-     * 				"rs": 1
-     *            },
-     * 			"vt": 0* 		}
-     *    }
-     *
-     * @param fileName
-     * @param colSize
-     * @return
-     */
-    public static JSONArray assembleFirstTitle(String fileName, int colSize) {
-
-        AssembleCellParam cellParam = AssembleCellParam.builder()
-                .fontsize(16)
-                .startRowPos(0)
-                .startColPos(0)
-                .rowSize(1)
-                .colSize(colSize)
-                .value(fileName)
-                .build();
-        return assembleMergeTitle(cellParam);
-    }
-
-    /**
-     * {
-     * 		"c": 0,
-     * 		"r": 1,
-     * 		"v": {
-     * 			"m": "总序号",
-     * 			"v": "总序号",
-     * 			"bg": "rgb(204, 255, 204)",
-     * 			"bl": 0,
-     * 			"ct": {
-     * 				"t": "g",
-     * 				"fa": "General"
-     *           },
-     * 			"fc": "rgb(0, 0, 0)",
-     * 			"ff": 5,
-     * 			"fs": 11,
-     * 			"ht": 0,
-     * 			"it": 0,
-     * 			"mc": {
-     * 				"c": 0,
-     * 				"r": 1,
-     * 				"cs": 1,
-     * 				"rs": 2
-     *           },
-     * 			"vt": 0
-     * 		}
-     * }
-     *
-     * @return
-     */
-    public static JSONArray assembleCommonCol1() {
-
-        JSONArray result = new JSONArray();
-
-        for(int m = 0, n = MAIN_TITLE_FIRST.length; m < n; m++) {
-            //一级标题
-            JSONObject remark2 = new JSONObject();
-            remark2.put("c", m);
-            remark2.put("r", 1);
-            JSONObject remark2v = new JSONObject();
-            remark2v.put("m", MAIN_TITLE_FIRST[m]);
-            remark2v.put("v", MAIN_TITLE_FIRST[m]);
-            remark2v.put("bg", "rgb(204, 255, 204)");
-            remark2v.put("bl", 1);
-            remark2v.put("fc", "rgb(0, 0, 0)");
-            remark2v.put("ff", 5);
-            remark2v.put("fs", 11);
-            remark2v.put("ht", 0);
-            remark2v.put("it", 0);
-            remark2v.put("vt", 1);
-
-            JSONObject ct = new JSONObject();
-            ct.put("t", "g");
-            ct.put("fa", "General");
-            remark2v.put("ct", ct);
-
-            JSONObject mc = new JSONObject();
-            mc.put("c", m);
-            mc.put("r", 1);
-            mc.put("cs", 1);
-            mc.put("rs", 2);
-            remark2v.put("mc", mc);
-
-            remark2.put("v", remark2v);
-            result.add(remark2);
-        }
-
-        return result;
-    }
-
-    /**
-     * 第三行开头
-     *
-     * @return
-     */
-    public static JSONArray assembleCommonRow2Col1() {
-
-        JSONArray result = new JSONArray();
-
-        for(int m = 0; m < MAIN_TITLE_FIRST.length; m++) {
-            JSONObject temp = new JSONObject();
-
-            JSONObject mc2 = new JSONObject();
-            mc2.put("c", m);
-            mc2.put("r", 1);
-
-            JSONObject v = new JSONObject();
-            v.put("mc",  mc2);
-
-            temp.put("c", m);
-            temp.put("r", 2);
-            temp.put("v", v);
-            result.add(temp);
-        }
-
-        return result;
-    }
-
-    /**
-     * 状态	提出日期	整改期限	提出者	备注1	备注2
-     * {
-     * 		"c": 57,
-     * 		"r": 2,
-     * 		"v": {
-     * 			"m": "备注2",
-     * 			"v": "备注2",
-     * 			"bl": 1,
-     * 			"ct": {
-     * 				"t": "g",
-     * 				"fa": "General"
-     *                        },
-     * 			"fc": "rgb(0, 0, 0)",
-     * 			"ff": 5,
-     * 			"fs": 11,
-     * 			"ht": 0,
-     * 			"it": 0,
-     * 			"vt": 1
-     * 	    }
-     * }
-     *
-     * @param startColPosition 起始位置
-     * @return
-     */
-    public static JSONArray assembleCommonCol2(int startColPosition) {
-        return assembleSingleTitle(startColPosition, 2, MAIN_TITLE_SECOND);
-    }
-
-    /**
-     * 第二行最后六个
-     * {
-     * 		"c": 56,
-     * 		"r": 1,
-     * 		"v": {
-     * 			"m": "",
-     * 			"bg": "rgb(204, 255, 204)",
-     * 			"bl": 1,
-     * 			"fc": "rgb(0, 0, 0)",
-     * 			"ff": 5,
-     * 			"fs": 11,
-     * 			"ht": 0,
-     * 			"it": 0,
-     * 			"vt": 0
-     *       }
-     * }
-     *
-     * @param startColPosition
-     * @return
-     */
-    public static JSONArray assembleCommonRow1Col2(int startColPosition) {
-
-        JSONArray result = new JSONArray();
-
-        for(int m = 0, n = 6; m < n; m++) {
-            //备注2
-            JSONObject remark2 = new JSONObject();
-            remark2.put("c", startColPosition + m);
-            remark2.put("r", 1);
-
-            JSONObject remark2v = new JSONObject();
-            remark2v.put("m", "");
-            remark2v.put("bl", 1);
-            remark2v.put("fc", "rgb(0, 0, 0)");
-            remark2v.put("ff", 5);
-            remark2v.put("fs", 11);
-            remark2v.put("ht", 0);
-            remark2v.put("it", 0);
-            remark2v.put("vt", 0);
-
-            remark2.put("v", remark2v);
-            result.add(remark2);
-        }
-        return result;
-    }
-
-    /**
-     * 机号一级标题
-     *
-     * @param startColPosition
-     * @return
-     */
-    public static JSONArray genDeviceNumberFirstTitle(String cellName, int startColPosition) {
-        AssembleCellParam cellParam = AssembleCellParam.builder()
-                .fontsize(11)
-                .startRowPos(1)
-                .startColPos(startColPosition)
-                .rowSize(1)
-                .colSize(MACHINE_TITLE_COLS.length)
-                .value(cellName)
-                .build();
-        return assembleMergeTitle(cellParam);
-    }
-
-    /**
-     * 生成机号标题
-     *
-     * @param startColPosition
-     * @return
-     */
-    public static JSONArray assembleDeviceNumberSecondTitle(int startColPosition) {
-        return assembleSingleTitle(startColPosition, 2, MACHINE_TITLE_COLS);
-    }
-
-    /**
-     * 生成单个单元格
-     *
-     * @param startColPosition
-     * @param cols
-     * @return
-     */
-    public static JSONArray assembleSingleTitle(int startColPosition, int startRowPosition, String[] cols) {
-
-        JSONArray result = new JSONArray();
-
-        for(int m = 0, n = cols.length; m < n; m++) {
-            //备注2
-            JSONObject remark2 = new JSONObject();
-            remark2.put("c", startColPosition + m);
-            remark2.put("r", startRowPosition);
-            JSONObject remark2v = new JSONObject();
-            remark2v.put("m", cols[m]);
-            remark2v.put("v", cols[m]);
-            remark2v.put("bl", 1);
-            remark2v.put("fc", "rgb(0, 0, 0)");
-            remark2v.put("ff", 5);
-            remark2v.put("fs", 11);
-            remark2v.put("ht", 0);
-            remark2v.put("it", 0);
-            remark2v.put("vt", 1);
-            JSONObject ct = new JSONObject();
-            ct.put("t", "g");
-            ct.put("fa", "General");
-            remark2v.put("ct", ct);
-            remark2.put("v", remark2v);
-            result.add(remark2);
-        }
-        return result;
-    }
-
-    /**
-     * 组装合并单元格
-     *
-     * @param param
-     * @return
-     */
-    public static JSONArray assembleMergeTitle(AssembleCellParam param) {
-        JSONArray result = new JSONArray();
-        //一级标题
-        JSONObject remark2 = new JSONObject();
-        remark2.put("c", param.getStartColPos());
-        remark2.put("r", param.getStartRowPos());
-        JSONObject remark2v = new JSONObject();
-        remark2v.put("m", param.getValue());
-        remark2v.put("v", param.getValue());
-        remark2v.put("bl", 1);
-        remark2v.put("fc", "rgb(0, 0, 0)");
-        remark2v.put("ff", 5);
-        remark2v.put("fs", param.getFontsize());
-        remark2v.put("ht", 0);
-        remark2v.put("it", 0);
-        remark2v.put("vt", 1);
-        JSONObject ct = new JSONObject();
-        ct.put("t", "g");
-        ct.put("fa", "General");
-        remark2v.put("ct", ct);
-
-        JSONObject mc = new JSONObject();
-        mc.put("c", param.getStartColPos());
-        mc.put("r", param.getStartRowPos());
-        mc.put("cs", param.getColSize());
-        mc.put("rs", param.getRowSize());
-        remark2v.put("mc", mc);
-
-        remark2.put("v", remark2v);
-        result.add(remark2);
-
-        /**
-         * {
-         * 		"c": 1,
-         * 		"r": 0,
-         * 		"v": {
-         * 			"mc": {
-         * 				"c": 0,
-         * 				"r": 0
-         *          }
-         *       }
-         * 	}
-         */
-        for(int m = 1; m < param.getColSize(); m++) {
-            JSONObject temp = new JSONObject();
-
-            JSONObject mc2 = new JSONObject();
-            mc2.put("c", param.getStartColPos());
-            mc2.put("r", param.getStartRowPos());
-
-            JSONObject v = new JSONObject();
-            v.put("mc",  mc2);
-
-            temp.put("c", m + param.getStartColPos());
-            temp.put("r", param.getStartRowPos());
-            temp.put("v", v);
-            result.add(temp);
-        }
-
-        return result;
-    }
-
-    /**
-     * 获取空的sheet对象
-     *
-     * {
-     * 	"row": 84,
-     * 	"name": "Sheet2",
-     * 	"chart": [],
-     * 	"color": "",
-     * 	"index": "2",
-     * 	"order": 1,
-     * 	"column": 60,
-     * 	"config": {},
-     * 	"status": 0,
-     * 	"celldata": [],
-     * 	"ch_width": 4748,
-     * 	"rowsplit": [],
-     * 	"rh_height": 1790,
-     * 	"scrollTop": 0,
-     * 	"scrollLeft": 0,
-     * 	"visibledatarow": [],
-     * 	"visibledatacolumn": [],
-     * 	"jfgird_select_save": [{
-     * 		"row": [4, 4],
-     * 		"top": 85,
-     * 		"left": 0,
-     * 		"width": 73,
-     * 		"column": [0, 0],
-     * 		"height": 19,
-     * 		"top_move": 85,
-     * 		"left_move": 0,
-     * 		"row_focus": 4,
-     * 		"width_move": 73,
-     * 		"height_move": 19,
-     * 		"column_focus": 0
-     *        }],
-     * 	"jfgrid_selection_range": {}
-     * }
-     *
-     * @param param
-     * @return
-     */
-    public static JSONObject getEmptySheet(SheetInfoParam param) {
-        JSONObject obj = new JSONObject();
-        obj.put("row", 84);
-        obj.put("name", param.getSheetName());
-        obj.put("chart", new JSONArray());
-        obj.put("color", "");
-        obj.put("index", param.getIndex());
-        obj.put("order", param.getOrder());
-        obj.put("column", 60);
-        obj.put("config", new JSONObject());
-        obj.put("status", 0);
-        obj.put("celldata", new JSONArray());
-        obj.put("ch_width", 4748);
-        obj.put("rowsplit", new JSONArray());
-        obj.put("rh_height", 1790);
-        obj.put("scrollTop", 0);
-        obj.put("scrollLeft", 0);
-        obj.put("dataVerification", new JSONObject());
-        obj.put("visibledatarow", new JSONArray());
-        obj.put("visibledatacolumn", new JSONArray());
-
-        /**
-         * {
-     * 		"row": [4, 4],
-     * 		"top": 85,
-     * 		"left": 0,
-     * 		"width": 73,
-     * 		"column": [0, 0],
-     * 		"height": 19,
-     * 		"top_move": 85,
-     * 		"left_move": 0,
-     * 		"row_focus": 4,
-     * 		"width_move": 73,
-     * 		"height_move": 19,
-     * 		"column_focus": 0
-     *        }
-         */
-        JSONObject selectSave = new JSONObject();
-        selectSave.put("row", new String[]{"4", "4"});
-        selectSave.put("top", 85);
-        selectSave.put("left", 0);
-        selectSave.put("width", 73);
-        selectSave.put("column", new String[]{"0", "0"});
-        selectSave.put("height", 19);
-        selectSave.put("top_move", 85);
-        selectSave.put("left_move", 0);
-        selectSave.put("row_focus", 4);
-        selectSave.put("width_move", 73);
-        selectSave.put("height_move", 19);
-        selectSave.put("column_focus", 0);
-
-        JSONArray selectSaves = new JSONArray();
-        selectSaves.add(selectSave);
-
-        obj.put("jfgird_select_save", selectSaves);
-        obj.put("jfgrid_selection_range", new JSONObject());
-
-        return obj;
-    }
-
-    /**
-     * 获取合并配置
-     *           "0_0": {
-     * 				"c": 0,
-     * 				"r": 0,
-     * 				"cs": 58,
-     * 				"rs": 1
-     *           },
-     *
-     * @param deviceNumberList
-     * @return
-     */
-    public static JSONObject getMergeConfig(List<String> deviceNumberList) {
-        JSONObject result = new JSONObject();
-
-        int colSize = deviceNumberList.size() * MACHINE_TITLE_COLS.length
-                + MAIN_TITLE_FIRST.length
-                + MAIN_TITLE_SECOND.length;
-
-        //第一行 标题
-        JSONObject row0Title = new JSONObject();
-        row0Title.put("c", 0);
-        row0Title.put("r", 0);
-        row0Title.put("cs", colSize);
-        row0Title.put("rs", 1);
-        result.put("0_0", row0Title);
-
-        //第二行 前4列
-        for(int m = 0, n = MAIN_TITLE_FIRST.length; m < n; m++) {
-            JSONObject row1Col0Title = new JSONObject();
-            row1Col0Title.put("c", m);
-            row1Col0Title.put("r", 1);
-            row1Col0Title.put("cs", 1);
-            row1Col0Title.put("rs", 2);
-            result.put("1_".concat(String.valueOf(m)), row1Col0Title);
-        }
-
-        //第二行机号
-        for(int m = 0,  n = deviceNumberList.size(); m < n; m++) {
-            JSONObject deviceNumObj = new JSONObject();
-            int colPos = MAIN_TITLE_FIRST.length + m * MACHINE_TITLE_COLS.length;
-            deviceNumObj.put("c", colPos);
-            deviceNumObj.put("r", 1);
-            deviceNumObj.put("cs", MACHINE_TITLE_COLS.length);
-            deviceNumObj.put("rs", 1);
-            result.put("1_".concat(String.valueOf(colPos)), deviceNumObj);
-        }
-
-        return result;
-    }
-
-    /**
-     * {
-     * 			"value": {
-     * 				"b": {
-     * 					"color": "rgb(0, 0, 0)",
-     * 					"style": 1
-     *              },
-     * 				"l": {
-     * 					"color": "rgb(0, 0, 0)",
-     * 					"style": 1
-     *              },
-     * 				"t": {
-     * 					"color": "rgb(0, 0, 0)",
-     * 					"style": 1
-     *                },
-     * 				"col_index": 0,
-     * 				"row_index": 0
-     * 			},
-     * 			"rangeType": "cell"
-     * }
-     *
-     * @param deviceNumberList
-     * @return
-     */
-    public static JSONArray getBorderInfo(List<String> deviceNumberList) {
-        JSONArray result = new JSONArray();
-
-        //计算列行
-        int rowsSize = 3, colsSize = deviceNumberList.size() * MACHINE_TITLE_COLS.length
-                + MAIN_TITLE_FIRST.length
-                + MAIN_TITLE_SECOND.length;;
-
-        //行
-        for(int m = 0; m < rowsSize; m++) {
-            for(int n = 0; n < colsSize; n++) {
-                JSONObject value = new JSONObject();
-                JSONObject b = new JSONObject();
-                b.put("color", "rgb(0, 0, 0)");
-                b.put("style", 1);
-                value.put("b", b);
-
-                JSONObject l = new JSONObject();
-                l.put("color", "rgb(0, 0, 0)");
-                l.put("style", 1);
-                value.put("l", l);
-
-                JSONObject t = new JSONObject();
-                t.put("color", "rgb(0, 0, 0)");
-                t.put("style", 1);
-                value.put("t", t);
-
-                value.put("col_index", n);
-                value.put("row_index", m);
-
-                JSONObject obj = new JSONObject();
-                obj.put("rangeType", "cell");
-                obj.put("value", value);
-                result.add(obj);
-            }
-        }
-
-        return result;
-    }
-
-    /**
-     * 数据校验
-     *
-     * @param paramExcelDto
-     * @return
-     */
-    public static JSONObject getDataVerification(ProjectSummaryParamExcelDto paramExcelDto) {
-        JSONObject result = new JSONObject();
-
-        //部门
-        List<String> departList = paramExcelDto.getWorkshopList().stream()
-                .map(item -> item.getString("SHORTNAME"))
-                .collect(Collectors.toList());
-        String departChose = StringUtils.join(departList, ",");
-
-        for(int m = 0,  n = paramExcelDto.getDeviceNumberList().size() - 1; m <= n; m++) {
-            int colPos = MAIN_TITLE_FIRST.length + m * MACHINE_TITLE_COLS.length;
-//            int departColPos = 4 + 4 * m;
-            for(int startRows = 3, endRows = 200; startRows < endRows; startRows++) {
-
-                //状态
-                /**
-                 * "3_4": {
-                 * 			"type": "dropdown",
-                 * 			"remote": false,
-                 * 			"value1": "OK,X,√",
-                 * 			"value2": "",
-                 * 			"checked": false,
-                 * 			"hintShow": false,
-                 * 			"hintText": "",
-                 * 			"prohibitInput": false
-                 * }
-                 */
-                JSONObject statusObj = getNewDataVerification("OK,X,√");
-                result.put(String.valueOf(startRows).concat("_").concat(String.valueOf(colPos)), statusObj);
-
-                //部门
-                /**
-                 * "3_4": {
-                 * 			"type": "dropdown",
-                 * 			"remote": false,
-                 * 			"value1": "OK,X,√",
-                 * 			"value2": "",
-                 * 			"checked": false,
-                 * 			"hintShow": false,
-                 * 			"hintText": "",
-                 * 			"prohibitInput": false
-                 * }
-                 */
-                //施工部门
-                JSONObject departObj = getNewDataVerification(departChose);
-                result.put(String.valueOf(startRows).concat("_").concat(String.valueOf(colPos + 1)), departObj);
-
-                //责任部门
-                JSONObject depart2Obj = getNewDataVerification(departChose);
-                result.put(String.valueOf(startRows).concat("_").concat(String.valueOf(colPos + 3)), depart2Obj);
-            }
-        }
-
-        //总状态
-        int statusColIndex = MAIN_TITLE_FIRST.length + paramExcelDto.getDeviceNumberList().size() * MACHINE_TITLE_COLS.length;
-        for(int startRows = 3, endRows = 200; startRows < endRows; startRows++) {
-            JSONObject statusObj = getNewDataVerification("OK,X,√");
-            result.put(String.valueOf(startRows).concat("_").concat(String.valueOf(statusColIndex)), statusObj);
-        }
-
-        return result;
-    }
-
-    public static JSONObject getNewDataVerification(String options) {
-        JSONObject departObj = new JSONObject();
-        departObj.put("type", "dropdown");
-        departObj.put("remote", false);
-        departObj.put("value1", options);
-        departObj.put("value2", "");
-        departObj.put("checked", false);
-        departObj.put("hintShow", false);
-        departObj.put("hintText", "");
-        departObj.put("prohibitInput", false);
-        return departObj;
-    }
 }

+ 28 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/utils/MSExcelUtil.java

@@ -0,0 +1,28 @@
+package com.rongwei.bscommon.sys.utils;
+
+public class MSExcelUtil {
+    public static final short EXCEL_COLUMN_WIDTH_FACTOR = 256;
+    public static final short EXCEL_ROW_HEIGHT_FACTOR = 20;
+    public static final int UNIT_OFFSET_LENGTH = 7;
+    public static final int[] UNIT_OFFSET_MAP = new int[] { 0, 36, 73, 109, 146, 182, 219 };
+
+    public static short pixel2WidthUnits(int pxs) {
+        short widthUnits = (short) (EXCEL_COLUMN_WIDTH_FACTOR * (pxs / UNIT_OFFSET_LENGTH));
+        widthUnits += UNIT_OFFSET_MAP[(pxs % UNIT_OFFSET_LENGTH)];
+        return widthUnits;
+    }
+
+    public static int widthUnits2Pixel(short widthUnits) {
+        int pixels = (widthUnits / EXCEL_COLUMN_WIDTH_FACTOR) * UNIT_OFFSET_LENGTH;
+        int offsetWidthUnits = widthUnits % EXCEL_COLUMN_WIDTH_FACTOR;
+        pixels += Math.floor((float) offsetWidthUnits / ((float) EXCEL_COLUMN_WIDTH_FACTOR / UNIT_OFFSET_LENGTH));
+        return pixels;
+    }
+
+    public static int heightUnits2Pixel(int heightUnits) {
+        int pixels = (heightUnits / EXCEL_ROW_HEIGHT_FACTOR);
+        int offsetWidthUnits = heightUnits % EXCEL_ROW_HEIGHT_FACTOR;
+        pixels += Math.floor((float) offsetWidthUnits / ((float) EXCEL_ROW_HEIGHT_FACTOR / UNIT_OFFSET_LENGTH));
+        return pixels;
+    }
+}

+ 153 - 6
business-common/src/main/java/com/rongwei/bscommon/sys/utils/XlsSheetUtil.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.rongwei.rwcommon.utils.JSONUtils;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.poi.hssf.util.HSSFColor;
 import org.apache.poi.ss.usermodel.*;
 import org.apache.poi.ss.util.CellRangeAddress;
 
@@ -56,7 +57,7 @@ public class XlsSheetUtil {
             }
         }
 
-        setColumAndRow(dbObject,sheet);
+        setColumAndRow(dbObject,sheet, wb);
 
     }
 
@@ -212,19 +213,21 @@ public class XlsSheetUtil {
      * @param dbObject
      * @param sheet
      */
-    private static void setColumAndRow(JSONObject dbObject, Sheet sheet){
+    private static void setColumAndRow(JSONObject dbObject, Sheet sheet, Workbook wb){
         if(dbObject.containsKey("config")){
             JSONObject config = dbObject.getJSONObject("config");
 
-            if(config.containsKey("columlen")){
-                JSONObject columlen = config.getJSONObject("columlen");
+            if(config.containsKey("columnlen")){
+                JSONObject columlen = config.getJSONObject("columnlen");
                 if(columlen!=null){
                     for(String k:columlen.keySet()){
                         Integer _i=getStrToInt(k);
                         Integer _v=getStrToInt(columlen.get(k).toString());
                         if(_i!=null && _v!=null){
-                            //sheet.setColumnWidth(_i,MSExcelUtil.heightUnits2Pixel(_v.shortValue()))
-                            sheet.setColumnWidth(_i,_v.shortValue());
+
+//                            sheet.setColumnWidth(_i,MSExcelUtil.widthUnits2Pixel(_v.shortValue()));
+                            int i = MSExcelUtil.widthUnits2Pixel(_v.shortValue());
+                            sheet.setColumnWidth(_i,i * 5 * 256);
                         }
                     }
                 }
@@ -245,6 +248,150 @@ public class XlsSheetUtil {
                     }
                 }
             }
+
+            //边框
+            setColumAndRowBorderInfo(config, sheet, wb);
+
+        }
+    }
+
+    /**
+     * 设置边框
+     *
+     * @param config
+     * @param sheet
+     */
+    private static void setColumAndRowBorderInfo(JSONObject config, Sheet sheet, Workbook wb) {
+        if(config == null) {
+            return ;
+        }
+
+        //边框
+        if(!config.containsKey("borderInfo")) {
+            return ;
+        }
+
+        JSONArray borderInfo = config.getJSONArray("borderInfo");
+        if(borderInfo == null) {
+            return ;
+        }
+
+        for(int m = 0, n = borderInfo.size(); m < n; m++) {
+            JSONObject borderCell = borderInfo.getJSONObject(m);
+            String rangeType = borderCell.getString("rangeType");
+            JSONObject cellBorderValue = borderCell.getJSONObject("value");
+
+            if("range".equals(rangeType)) {
+                JSONArray ranges = borderCell.getJSONArray("range");
+                JSONObject range = ranges.getJSONObject(0);
+                JSONArray rows = range.getJSONArray("row");
+                JSONArray cols = range.getJSONArray("column");
+
+                String color = borderCell.getString("color");
+                Short style = borderCell.getShort("style");
+
+                if(color == null) {
+                    continue;
+                }
+
+                if(style == null) {
+                    continue;
+                }
+
+                Short colorByStr = ColorUtil.getColorByStr(color);
+                BorderStyle borderStyle = BorderStyle.valueOf(style);
+
+                for(int i = rows.getIntValue(0), j = rows.getIntValue(1); i <= j; i++) {
+                    Row row = sheet.getRow(i);
+                    for(int colStart = cols.getIntValue(0), colEnd = cols.getIntValue(1); colStart <= colEnd; colStart++) {
+
+                        Cell cell = row.getCell(colStart);
+
+                        CellStyle cellStyle;
+                        if(cell == null) {
+                            cell = row.createCell(colStart);
+                            cellStyle = wb.createCellStyle();
+                            cell.setCellStyle(cellStyle);
+                        } else {
+                            cellStyle = cell.getCellStyle();
+                        }
+
+
+
+
+                        cellStyle.setBottomBorderColor(colorByStr);
+                        cellStyle.setBorderBottom(borderStyle);
+
+                        cellStyle.setTopBorderColor(colorByStr);
+                        cellStyle.setBorderTop(borderStyle);
+
+                        cellStyle.setLeftBorderColor(colorByStr);
+                        cellStyle.setBorderLeft(borderStyle);
+
+                        cellStyle.setRightBorderColor(colorByStr);
+                        cellStyle.setBorderRight(borderStyle);
+
+                    }
+                }
+            }
+            //单个单元格
+            else if("cell".equals(rangeType)) {
+                int rowIndex = cellBorderValue.getIntValue("row_index");
+                int colIndex = cellBorderValue.getIntValue("col_index");
+
+                Row row = sheet.getRow(rowIndex);
+                if(row == null) {
+                    continue;
+                }
+
+                Cell cell = row.getCell(colIndex);
+
+                if(cell == null) {
+                    continue;
+                }
+
+                CellStyle cellStyle = cell.getCellStyle();
+
+                if(cellStyle == null) {
+                    continue;
+                }
+
+
+                JSONObject bObj = cellBorderValue.getJSONObject("b");
+                if(bObj != null) {
+                    String color = bObj.getString("color");
+                    Short style = bObj.getShort("style");
+                    cellStyle.setBottomBorderColor(ColorUtil.getColorByStr(color));
+                    cellStyle.setBorderBottom(BorderStyle.valueOf(style));
+                }
+
+                JSONObject tObj = cellBorderValue.getJSONObject("t");
+                if(tObj != null) {
+                    String color = tObj.getString("color");
+                    Short style = tObj.getShort("style");
+                    cellStyle.setTopBorderColor(ColorUtil.getColorByStr(color));
+                    cellStyle.setBorderTop(BorderStyle.valueOf(style));
+                }
+
+                JSONObject lObj = cellBorderValue.getJSONObject("l");
+                if(lObj != null) {
+                    String color = lObj.getString("color");
+                    Short style = lObj.getShort("style");
+                    cellStyle.setLeftBorderColor(ColorUtil.getColorByStr(color));
+                    cellStyle.setBorderLeft(BorderStyle.valueOf(style));
+                }
+
+                JSONObject rObj = cellBorderValue.getJSONObject("r");
+                if(rObj != null) {
+                    String color = rObj.getString("color");
+                    Short style = rObj.getShort("style");
+                    cellStyle.setRightBorderColor(ColorUtil.getColorByStr(color));
+                    cellStyle.setBorderRight(BorderStyle.valueOf(style));
+                }
+            }
+
+
+
         }
     }