huZhiHao 5 rokov pred
rodič
commit
5555834484
22 zmenil súbory, kde vykonal 1085 pridanie a 216 odobranie
  1. 0 1
      sql/20200319.sql
  2. 2 0
      sql/20200320.sql
  3. 15 6
      src/main/java/platform/common/security/xss/XssFilter.java
  4. 170 0
      src/main/java/platform/common/util/word/ExportWord.java
  5. 31 0
      src/main/java/platform/common/util/word/ParagraphStyle.java
  6. 38 0
      src/main/java/platform/common/util/word/TextStyle.java
  7. 282 0
      src/main/java/platform/common/util/word/XWPFHelperTable.java
  8. 3 0
      src/main/java/platform/modules/government/entity/IndustrialLandSupplyDetail.java
  9. 128 19
      src/main/java/platform/modules/government/service/IndustrialLandSupplyDetailService.java
  10. 59 1
      src/main/java/platform/modules/government/web/IndustrialLandSupplyController.java
  11. 15 13
      src/main/resources/templates/admin/government/industrial_land_supply/add.html
  12. 8 5
      src/main/resources/templates/admin/government/industrial_land_supply/commerce_approve.html
  13. 29 4
      src/main/resources/templates/admin/government/industrial_land_supply/detail.html
  14. 44 20
      src/main/resources/templates/admin/government/industrial_land_supply/distribute_summary.html
  15. 11 6
      src/main/resources/templates/admin/government/industrial_land_supply/edit.html
  16. 2 1
      src/main/resources/templates/admin/government/industrial_land_supply/feedback_append.html
  17. 2 1
      src/main/resources/templates/admin/government/industrial_land_supply/feedback_withdraw.html
  18. 29 4
      src/main/resources/templates/admin/government/industrial_land_supply/land_approve.html
  19. 98 21
      src/main/resources/templates/admin/government/industrial_land_supply/pre_approve.html
  20. 2 1
      src/main/resources/templates/admin/government/industrial_land_supply/summary.html
  21. 4 2
      src/main/resources/templates/admin/government/industrial_land_supply/xingzheng_feedback.html
  22. 113 111
      src/main/resources/templates/admin/government/industrial_land_supply/xingzheng_feedback_view.html

+ 0 - 1
sql/20200319.sql

@@ -1 +0,0 @@
-ALTER TABLE industrial_land_supply ADD countersign_comment text COLLATE utf8_bin COMMENT '会签说明'

+ 2 - 0
sql/20200320.sql

@@ -0,0 +1,2 @@
+ALTER TABLE industrial_land_supply ADD countersign_comment text COLLATE utf8_bin COMMENT '会签说明'
+ALTER TABLE industrial_land_supply ADD  content_text text COLLATE utf8_bin COMMENT '介绍 纯文本格式' AFTER content

+ 15 - 6
src/main/java/platform/common/security/xss/XssFilter.java

@@ -63,12 +63,21 @@ public class XssFilter implements Filter {
         }
 
         HttpServletRequest request = WebUtils.toHttp(servletRequest);
-        if (request.getServletPath().contains("/government/notify/") || request.getServletPath().contains("/government/content/")
-                || request.getServletPath().contains("/government/activity/") || request.getServletPath().contains("/project")
-                || request.getServletPath().contains("/projectDeclaration") || request.getServletPath().contains("/admin/user/list")
-                || request.getServletPath().contains("/admin/user/findCompanyList") || request.getServletPath().contains("/userList")
-                || request.getServletPath().contains("/list") || request.getServletPath().contains("/projectFilling")
-                || request.getServletPath().contains("/company/projectFilling") || request.getServletPath().contains("/government/projectProvinces")) {
+        if (
+                request.getServletPath().contains("/government/notify/")
+                        || request.getServletPath().contains("/government/content/")
+                        || request.getServletPath().contains("/government/activity/")
+                        || request.getServletPath().contains("/project")
+                        || request.getServletPath().contains("/projectDeclaration")
+                        || request.getServletPath().contains("/admin/user/list")
+                        || request.getServletPath().contains("/admin/user/findCompanyList")
+                        || request.getServletPath().contains("/userList")
+                        || request.getServletPath().contains("/list")
+                        || request.getServletPath().contains("/projectFilling")
+                        || request.getServletPath().contains("/company/projectFilling")
+                        || request.getServletPath().contains("/government/projectProvinces")
+                        || request.getServletPath().contains("/land_supply")
+        ) {
 
             chain.doFilter(request, response);
             return;

+ 170 - 0
src/main/java/platform/common/util/word/ExportWord.java

@@ -0,0 +1,170 @@
+package platform.common.util.word;
+
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.poi.xwpf.usermodel.*;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.STJc;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.STVerticalJc;
+
+import javax.servlet.http.HttpServletResponse;
+
+
+/**
+ * @Author: huZhiHao
+ * @Description: 导出word文档
+ * @Date: 2020/3/18
+ **/
+public class ExportWord {
+
+    private XWPFHelperTable xwpfHelperTable = null;
+    private XWPFHelper xwpfHelper = null;
+
+    public ExportWord() {
+        xwpfHelperTable = new XWPFHelperTable();
+        xwpfHelper = new XWPFHelper();
+    }
+
+    /**
+     * @Author: huZhiHao
+     * @Description: 创建好文档的基本 标题,表格  段落等部分
+     * @Date: 2020/3/18
+     **/
+    public XWPFDocument createXWPFDocument(int row, int cols) {
+        XWPFDocument doc = new XWPFDocument();
+        createTitleParagraph(doc);
+        createTableParagraph(doc, row, cols);
+        return doc;
+    }
+
+    /**
+     * @Author: huZhiHao
+     * @Description: 创建表格的标题样式
+     * @Date: 2020/3/18
+     **/
+    public void createTitleParagraph(XWPFDocument document) {
+        XWPFParagraph titleParagraph = document.createParagraph();    //新建一个标题段落对象(就是一段文字)
+        titleParagraph.setAlignment(ParagraphAlignment.CENTER);//样式居中
+        XWPFRun titleFun = titleParagraph.createRun();    //创建文本对象
+//        titleFun.setText(titleName); //设置标题的名字
+//        titleFun.setBold(true); //加粗
+//        titleFun.setColor("000000");//设置颜色
+        titleFun.setFontSize(14);    //字体大小
+        titleFun.setFontFamily("宋体");//设置字体
+        //...
+//        titleFun.addBreak();    //换行
+    }
+
+    /**
+     * @Author: huZhiHao
+     * @Description: 设置表格
+     * @Date: 2020/3/18
+     **/
+    public void createTableParagraph(XWPFDocument document, int rows, int cols) {
+//        xwpfHelperTable.createTable(xdoc, rowSize, cellSize, isSetColWidth, colWidths)
+        XWPFTable infoTable = document.createTable(rows, cols);
+        xwpfHelperTable.setTableWidthAndHAlign(infoTable, "8500", STJc.CENTER);
+        //合并表格
+//        xwpfHelperTable.mergeCellsHorizontal(infoTable, 1, 1, 5);
+//        xwpfHelperTable.mergeCellsVertically(infoTable, 0, 4, 9);
+//        for (int col = 3; col < 7; col++) {
+//            xwpfHelperTable.mergeCellsHorizontal(infoTable, col, 1, 5);
+//        }
+        //设置表格样式
+        List<XWPFTableRow> rowList = infoTable.getRows();
+        for (int i = 0; i < rowList.size(); i++) {
+            XWPFTableRow infoTableRow = rowList.get(i);
+            List<XWPFTableCell> cellList = infoTableRow.getTableCells();
+            for (int j = 0; j < cellList.size(); j++) {
+                XWPFParagraph cellParagraph = cellList.get(j).getParagraphArray(0);
+                cellParagraph.setAlignment(ParagraphAlignment.LEFT);
+                cellParagraph.setIndentationLeft(50);
+                XWPFRun cellParagraphRun = cellParagraph.createRun();
+                cellParagraphRun.setFontSize(11);
+                cellParagraphRun.setFontFamily("宋体");
+//                if (i % 2 != 0) {
+//                    cellParagraphRun.setBold(true);
+//                }
+            }
+            //倒数第二格加五个回车
+            if (i == rowList.size() - 2) {
+                for (int j = 0; j < cellList.size(); j++) {
+                    XWPFParagraph cellParagraph = cellList.get(j).getParagraphArray(0);
+                    cellParagraph.setAlignment(ParagraphAlignment.LEFT);
+                    cellParagraph.setIndentationLeft(50);
+                    XWPFRun cellParagraphRun = cellParagraph.createRun();
+                    cellParagraphRun.setFontSize(11);
+                    cellParagraphRun.setFontFamily("宋体");
+                    cellParagraphRun.addBreak();
+                    cellParagraphRun.addBreak();
+                    cellParagraphRun.addBreak();
+                    cellParagraphRun.addBreak();
+                    cellParagraphRun.addBreak();
+                }
+            }
+            //倒数第一格右对齐
+            if (i == rowList.size() - 1) {
+                for (int j = 0; j < cellList.size(); j++) {
+                    XWPFParagraph cellParagraph = cellList.get(j).getParagraphArray(0);
+                    cellParagraph.setAlignment(ParagraphAlignment.RIGHT);
+                    cellParagraph.setIndentationRight(100);
+                    XWPFRun cellParagraphRun = cellParagraph.createRun();
+                    cellParagraphRun.setFontSize(11);
+                    cellParagraphRun.setFontFamily("宋体");
+                }
+            }
+        }
+//        xwpfHelperTable.mergeCellsBordersVertically(infoTable, 0, 4, 9);
+        xwpfHelperTable.setTableHeight(infoTable, 560, STVerticalJc.CENTER);
+    }
+
+    /**
+     * @Author: huZhiHao
+     * @Description: 往表格中填充数据
+     * @Date: 2020/3/18
+     **/
+    public void exportCheckWord(Map<String, Object> dataList, XWPFDocument document, String savePath) throws IOException {
+        XWPFParagraph paragraph = document.getParagraphArray(0);
+        XWPFRun titleFun = paragraph.getRuns().get(0);
+        titleFun.setText(String.valueOf(dataList.get("TITLE")));
+        List<List<Object>> tableData = (List<List<Object>>) dataList.get("TABLEDATA");
+        XWPFTable table = document.getTableArray(0);
+        fillTableData(table, tableData);
+        xwpfHelper.saveDocument(document, savePath);
+    }
+
+    /**
+     * @Author: huZhiHao
+     * @Description: 创建好文档的基本 标题,表格  段落等部分
+     * @Date: 2020/3/18
+     **/
+    public void exportCheckWord(Map<String, Object> dataList, XWPFDocument document, HttpServletResponse response) throws IOException {
+        XWPFParagraph paragraph = document.getParagraphArray(0);
+        XWPFRun titleFun = paragraph.getRuns().get(0);
+        titleFun.setText(String.valueOf(dataList.get("TITLE")));
+        titleFun.addBreak();
+        List<List<Object>> tableData = (List<List<Object>>) dataList.get("TABLEDATA");
+        XWPFTable table = document.getTableArray(0);
+        fillTableData(table, tableData);
+        xwpfHelper.saveDocument(document, response);
+    }
+
+    /**
+     * @Author: huZhiHao
+     * @Description: 往表格中填充数据
+     * @Date: 2020/3/18
+     **/
+    public void fillTableData(XWPFTable table, List<List<Object>> tableData) {
+        List<XWPFTableRow> rowList = table.getRows();
+        for (int i = 0; i < tableData.size(); i++) {
+            List<Object> list = tableData.get(i);
+            List<XWPFTableCell> cellList = rowList.get(i).getTableCells();
+            for (int j = 0; j < list.size(); j++) {
+                XWPFParagraph cellParagraph = cellList.get(j).getParagraphArray(0);
+                XWPFRun cellParagraphRun = cellParagraph.getRuns().get(0);
+                cellParagraphRun.setText(String.valueOf(list.get(j)));
+            }
+        }
+    }
+}

+ 31 - 0
src/main/java/platform/common/util/word/ParagraphStyle.java

@@ -0,0 +1,31 @@
+package platform.common.util.word;
+
+import lombok.Data;
+
+/**
+ * @Description 段落样式
+ * 2018年12月1日  下午4:20:05
+ * @Author Huangxiaocong
+ */
+@Data
+public class ParagraphStyle {
+
+    private boolean isSpace;  //是否缩进
+    private String before;      //段前磅数
+    private String after;  //段后磅数
+    private String beforeLines;        //段前行数
+    private String afterLines;        //段后行数
+    private boolean isLine;        //是否间距
+    private String line;    //间距距离
+    //段落缩进信息
+    private String firstLine;
+    private String firstLineChar;
+    private String hanging;
+    private String hangingChar;
+    private String right;
+    private String rightChar;
+    private String left;
+    private String leftChar;
+
+    //此处省略get/set方法...
+}

+ 38 - 0
src/main/java/platform/common/util/word/TextStyle.java

@@ -0,0 +1,38 @@
+package platform.common.util.word;
+
+import lombok.Data;
+
+/**
+ * @Description 文本样式
+ * 2018年12月1日  下午4:09:30
+ * @Author Huangxiaocong
+ */
+@Data
+public class TextStyle {
+
+    private String url;    // 超链接
+    private String text;    //文本内容
+    private String fontFamily;    //字体
+    private String fontSize;    //字体大小
+    private String colorVal;    //字体颜色
+    private String shdColor;    //底纹颜色
+    private int position;    //文本位置
+    private int spacingValue;    //间距
+    private int indent;    //缩进
+    private boolean isBlod;    //加粗
+    private boolean isUnderLine;    //下划线
+    private boolean underLineColor;    //
+    private boolean isItalic;    //倾斜
+    private boolean isStrike;    //删除线
+    private boolean isDStrike;    //双删除线
+    private boolean isShadow;    //阴影
+    private boolean isVanish;    //隐藏
+    private boolean isEmboss;    //阳文
+    private boolean isImprint;    //阴文
+    private boolean isOutline;    //空心
+    private boolean isHightLight;    //突出显示文本
+    private boolean isShd;    //底纹
+
+    //此处省略get/set方法...
+
+}

+ 282 - 0
src/main/java/platform/common/util/word/XWPFHelperTable.java

@@ -0,0 +1,282 @@
+package platform.common.util.word;
+
+import java.math.BigInteger;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.apache.poi.xwpf.usermodel.BodyElementType;
+import org.apache.poi.xwpf.usermodel.IBodyElement;
+import org.apache.poi.xwpf.usermodel.XWPFDocument;
+import org.apache.poi.xwpf.usermodel.XWPFParagraph;
+import org.apache.poi.xwpf.usermodel.XWPFRun;
+import org.apache.poi.xwpf.usermodel.XWPFTable;
+import org.apache.poi.xwpf.usermodel.XWPFTableCell;
+import org.apache.poi.xwpf.usermodel.XWPFTableRow;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.*;
+
+/**
+ * @Description 操作word的基本工具类
+ * 2018年12月3日  上午11:12:18
+ * @Author Huangxiaocong
+ */
+public class XWPFHelperTable {
+
+    /**
+     * 删除指定位置的表格,被删除表格后的索引位置
+     *
+     * @param document
+     * @param pos
+     * @Author Huangxiaocong 2018年12月1日 下午10:32:43
+     */
+    public void deleteTableByIndex(XWPFDocument document, int pos) {
+        Iterator<IBodyElement> bodyElement = document.getBodyElementsIterator();
+        int eIndex = 0, tableIndex = -1;
+        while (bodyElement.hasNext()) {
+            IBodyElement element = bodyElement.next();
+            BodyElementType elementType = element.getElementType();
+            if (elementType == BodyElementType.TABLE) {
+                tableIndex++;
+                if (tableIndex == pos) {
+                    break;
+                }
+            }
+            eIndex++;
+        }
+        document.removeBodyElement(eIndex);
+    }
+
+    /**
+     * 获得指定位置的表格
+     *
+     * @param document
+     * @param index
+     * @return
+     * @Author Huangxiaocong 2018年12月1日 下午10:34:14
+     */
+    public XWPFTable getTableByIndex(XWPFDocument document, int index) {
+        List<XWPFTable> tableList = document.getTables();
+        if (tableList == null || index < 0 || index > tableList.size()) {
+            return null;
+        }
+        return tableList.get(index);
+    }
+
+    /**
+     * 得到表格的内容(第一次跨行单元格视为一个,第二次跳过跨行合并的单元格)
+     *
+     * @param table
+     * @return
+     * @Author Huangxiaocong 2018年12月1日 下午10:46:41
+     */
+    public List<List<String>> getTableRConten(XWPFTable table) {
+        List<List<String>> tableContextList = new ArrayList<List<String>>();
+        for (int rowIndex = 0, rowLen = table.getNumberOfRows(); rowIndex < rowLen; rowIndex++) {
+            XWPFTableRow row = table.getRow(rowIndex);
+            List<String> cellContentList = new ArrayList<String>();
+            for (int colIndex = 0, colLen = row.getTableCells().size(); colIndex < colLen; colIndex++) {
+                XWPFTableCell cell = row.getCell(colIndex);
+                CTTc ctTc = cell.getCTTc();
+                if (ctTc.isSetTcPr()) {
+                    CTTcPr tcPr = ctTc.getTcPr();
+                    if (tcPr.isSetHMerge()) {
+                        CTHMerge hMerge = tcPr.getHMerge();
+                        if (STMerge.RESTART.equals(hMerge.getVal())) {
+                            cellContentList.add(getTableCellContent(cell));
+                        }
+                    } else if (tcPr.isSetVMerge()) {
+                        CTVMerge vMerge = tcPr.getVMerge();
+                        if (STMerge.RESTART.equals(vMerge.getVal())) {
+                            cellContentList.add(getTableCellContent(cell));
+                        }
+                    } else {
+                        cellContentList.add(getTableCellContent(cell));
+                    }
+                }
+            }
+            tableContextList.add(cellContentList);
+        }
+        return tableContextList;
+    }
+
+    /**
+     * 获得一个表格的单元格的内容
+     *
+     * @param cell
+     * @return
+     * @Author Huangxiaocong 2018年12月2日 下午7:39:23
+     */
+    public String getTableCellContent(XWPFTableCell cell) {
+        StringBuffer sb = new StringBuffer();
+        List<XWPFParagraph> cellParagList = cell.getParagraphs();
+        if (cellParagList != null && cellParagList.size() > 0) {
+            for (XWPFParagraph xwpfPr : cellParagList) {
+                List<XWPFRun> runs = xwpfPr.getRuns();
+                if (runs != null && runs.size() > 0) {
+                    for (XWPFRun xwpfRun : runs) {
+                        sb.append(xwpfRun.getText(0));
+                    }
+                }
+            }
+        }
+        return sb.toString();
+    }
+
+    /**
+     * 得到表格内容,合并后的单元格视为一个单元格
+     *
+     * @param table
+     * @return
+     * @Author Huangxiaocong 2018年12月2日 下午7:47:19
+     */
+    public List<List<String>> getTableContent(XWPFTable table) {
+        List<List<String>> tableContentList = new ArrayList<List<String>>();
+        for (int rowIndex = 0, rowLen = table.getNumberOfRows(); rowIndex < rowLen; rowIndex++) {
+            XWPFTableRow row = table.getRow(rowIndex);
+            List<String> cellContentList = new ArrayList<String>();
+            for (int colIndex = 0, colLen = row.getTableCells().size(); colIndex < colLen; colIndex++) {
+                XWPFTableCell cell = row.getCell(colIndex);
+                cellContentList.add(getTableCellContent(cell));
+            }
+            tableContentList.add(cellContentList);
+        }
+        return tableContentList;
+    }
+
+    /**
+     * 跨列合并
+     *
+     * @param table
+     * @param row      所合并的行
+     * @param fromCell 起始列
+     * @param toCell   终止列
+     * @Description
+     * @Author Huangxiaocong 2018年11月26日 下午9:23:22
+     */
+    public void mergeCellsHorizontal(XWPFTable table, int row, int fromCell, int toCell) {
+        for (int cellIndex = fromCell; cellIndex <= toCell; cellIndex++) {
+            XWPFTableCell cell = table.getRow(row).getCell(cellIndex);
+            if (cellIndex == fromCell) {
+                cell.getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.RESTART);
+            } else {
+                cell.getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.CONTINUE);
+            }
+        }
+    }
+
+    /**
+     * 跨行合并
+     *
+     * @param table
+     * @param col     合并的列
+     * @param fromRow 起始行
+     * @param toRow   终止行
+     * @Description
+     * @Author Huangxiaocong 2018年11月26日 下午9:09:19
+     */
+    public void mergeCellsVertically(XWPFTable table, int col, int fromRow, int toRow) {
+        for (int rowIndex = fromRow; rowIndex <= toRow; rowIndex++) {
+            XWPFTableCell cell = table.getRow(rowIndex).getCell(col);
+            //第一个合并单元格用重启合并值设置
+            if (rowIndex == fromRow) {
+                cell.getCTTc().addNewTcPr().addNewVMerge().setVal(STMerge.RESTART);
+            } else {
+                //合并第一个单元格的单元被设置为“继续”
+                cell.getCTTc().addNewTcPr().addNewVMerge().setVal(STMerge.CONTINUE);
+            }
+        }
+    }
+
+    /**
+     * @Author: huZhiHao
+     * @Description: 将制定各自上下表格线隐藏 非合并
+     * @Date: 2020/3/18
+     * @Params: [table, col, fromRow, toRow]
+     * @Return: void
+     **/
+    public void mergeCellsBordersVertically(XWPFTable table, int col, int fromRow, int toRow) {
+        for (int rowIndex = fromRow; rowIndex <= toRow; rowIndex++) {
+            List<XWPFTableCell> tableCellList = table.getRow(rowIndex).getTableCells();
+            for (XWPFTableCell tableCell : tableCellList) {
+                CTTcBorders tblBorders = tableCell.getCTTc().addNewTcPr().addNewTcBorders();
+                if (rowIndex == fromRow) {
+                    tblBorders.addNewBottom().setVal(STBorder.NIL);
+                    table.getRow(rowIndex).getCell(col).getCTTc().addNewTcPr().setTcBorders(tblBorders);
+                } else if (rowIndex == toRow) {
+                    tblBorders.addNewTop().setVal(STBorder.NIL);
+                    table.getRow(rowIndex).getCell(col).getCTTc().addNewTcPr().setTcBorders(tblBorders);
+                } else {
+                    tblBorders.addNewTop().setVal(STBorder.NIL);
+                    tblBorders.addNewBottom().setVal(STBorder.NIL);
+                    table.getRow(rowIndex).getCell(col).getCTTc().addNewTcPr().setTcBorders(tblBorders);
+                }
+            }
+        }
+    }
+
+    /**
+     * @Description: 创建表格, 创建后表格至少有1行1列, 设置列宽
+     */
+    public XWPFTable createTable(XWPFDocument xdoc, int rowSize, int cellSize,
+                                 boolean isSetColWidth, int[] colWidths) {
+        XWPFTable table = xdoc.createTable(rowSize, cellSize);
+        if (isSetColWidth) {
+            CTTbl ttbl = table.getCTTbl();
+            CTTblGrid tblGrid = ttbl.addNewTblGrid();
+            for (int j = 0, len = Math.min(cellSize, colWidths.length); j < len; j++) {
+                CTTblGridCol gridCol = tblGrid.addNewGridCol();
+                gridCol.setW(new BigInteger(String.valueOf(colWidths[j])));
+            }
+        }
+        return table;
+    }
+
+    /**
+     * @Description: 设置表格总宽度与水平对齐方式
+     */
+    public void setTableWidthAndHAlign(XWPFTable table, String width,
+                                       STJc.Enum enumValue) {
+        CTTblPr tblPr = getTableCTTblPr(table);
+        // 表格宽度
+        CTTblWidth tblWidth = tblPr.isSetTblW() ? tblPr.getTblW() : tblPr.addNewTblW();
+        if (enumValue != null) {
+            CTJc cTJc = tblPr.addNewJc();
+            cTJc.setVal(enumValue);
+        }
+        // 设置宽度
+        tblWidth.setW(new BigInteger(width));
+        tblWidth.setType(STTblWidth.DXA);
+    }
+
+    /**
+     * @Description: 得到Table的CTTblPr, 不存在则新建
+     */
+    public CTTblPr getTableCTTblPr(XWPFTable table) {
+        CTTbl ttbl = table.getCTTbl();
+        // 表格属性
+        CTTblPr tblPr = ttbl.getTblPr() == null ? ttbl.addNewTblPr() : ttbl.getTblPr();
+        return tblPr;
+    }
+
+    /**
+     * 设置表格行高
+     *
+     * @param infoTable
+     * @param heigth    高度
+     * @param vertical  表格内容的显示方式:居中、靠右...
+     * @Author Huangxiaocong 2018年12月16日
+     */
+    public void setTableHeight(XWPFTable infoTable, int heigth, STVerticalJc.Enum vertical) {
+        List<XWPFTableRow> rows = infoTable.getRows();
+        for (XWPFTableRow row : rows) {
+            CTTrPr trPr = row.getCtRow().addNewTrPr();
+            CTHeight ht = trPr.addNewTrHeight();
+            ht.setVal(BigInteger.valueOf(heigth));
+            List<XWPFTableCell> cells = row.getTableCells();
+            for (XWPFTableCell tableCell : cells) {
+                CTTcPr cttcpr = tableCell.getCTTc().addNewTcPr();
+                cttcpr.addNewVAlign().setVal(vertical);
+            }
+        }
+    }
+}

+ 3 - 0
src/main/java/platform/modules/government/entity/IndustrialLandSupplyDetail.java

@@ -33,6 +33,9 @@ public class IndustrialLandSupplyDetail extends BaseEntity {
     //项目介绍
     private String content;
 
+    //项目介绍 纯文本格式
+    private String content_text;
+
     //项目阶段
     private String process_stage;
 

+ 128 - 19
src/main/java/platform/modules/government/service/IndustrialLandSupplyDetailService.java

@@ -3,6 +3,7 @@ package platform.modules.government.service;
 import com.aliyuncs.exceptions.ClientException;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
+import org.apache.poi.xwpf.usermodel.XWPFDocument;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -12,6 +13,8 @@ import platform.common.base.service.BaseService;
 import platform.common.base.service.DictionaryItemService;
 import platform.common.exception.BaseException;
 import platform.common.util.*;
+import platform.common.util.word.ExportWord;
+import platform.modules.build.entity.BuildingInfo;
 import platform.modules.company.dto.LandSupplyApprovalDto;
 import platform.modules.government.dao.IndustrialLandSupplyDetailDao;
 import platform.modules.government.dto.IndustrialLandSupplyDto;
@@ -25,6 +28,9 @@ import platform.modules.sys.service.UserGroupService;
 import tk.mybatis.mapper.entity.Example;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.net.URLEncoder;
 import java.text.ParseException;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -271,6 +277,12 @@ public class IndustrialLandSupplyDetailService extends BaseService<IndustrialLan
             FileDown fileDown = new FileDown(attachments.get(0).getId(), attachments.get(0).getFile_name(), attachments.get(0).getFile_url(), attachments.get(0).getDownload_uri());
             entity.setGs_feedback_file(fileDown);
         }
+        //会签附件
+        attachments = attachmentService.selectByIdAndBusinessId(Constant.Attachment.INDUSTRIAL_LAND_SUPPLY_MANAGEMENT_COMMITTEE_LEADER_COUNTERSIGN, entity.getId(), null);
+        if (null != attachments && attachments.size() > 0) {
+            FileDown fileDown = new FileDown(attachments.get(0).getId(), attachments.get(0).getFile_name(), attachments.get(0).getFile_url(), attachments.get(0).getDownload_uri());
+            entity.setCountersign_file(fileDown);
+        }
         //状态详情
         if (null != entity.getApprove_status()) {
             String status_name = dictionaryItemService.findNameByTypeAndValue(Constant.DictionaryType.INDUSTRIAL_LAND_SUPPLY_APPROVE_STATUS, entity.getApprove_status());
@@ -283,9 +295,9 @@ public class IndustrialLandSupplyDetailService extends BaseService<IndustrialLan
 
         User user = userService.getUser(entity.getCreate_by());
         if (CommonUtils.isNotNull(user) && Constant.UserType.STREET.equals(user.getUser_type())) {
-            if(CommonUtils.isNotNull(user.getDepartment_name())){
+            if (CommonUtils.isNotNull(user.getDepartment_name())) {
                 entity.setRecource(user.getDepartment_name());
-            }else{
+            } else {
                 entity.setRecource(user.getStreet_name());
             }
         } else if (CommonUtils.isNotNull(user) && Constant.UserType.GOVERNMENT.equals(user.getUser_type())) {
@@ -315,10 +327,17 @@ public class IndustrialLandSupplyDetailService extends BaseService<IndustrialLan
         }
         entity.setConsultationList(industrialLandSupplyConsultationList);
         //分发列表
-        IndustrialLandSupplyDistribution industrialLandSupplyDistribution = new IndustrialLandSupplyDistribution();
-        industrialLandSupplyDistribution.setIndustrial_land_supply_id(id);
-        industrialLandSupplyDistribution.setDel_flag(false);
-        List<IndustrialLandSupplyDistribution> industrialLandSupplyDistributionList = industrialLandSupplyDistributionService.findListByWhere(industrialLandSupplyDistribution);
+//        IndustrialLandSupplyDistribution industrialLandSupplyDistribution = new IndustrialLandSupplyDistribution();
+//        industrialLandSupplyDistribution.setIndustrial_land_supply_id(id);
+//        industrialLandSupplyDistribution.setDel_flag(false);
+//        List<IndustrialLandSupplyDistribution> industrialLandSupplyDistributionList = industrialLandSupplyDistributionService.findListByWhere(industrialLandSupplyDistribution);
+        Example example = new Example(IndustrialLandSupplyDistribution.class);
+        Example.Criteria criteria = example.createCriteria();
+        criteria.andEqualTo("industrial_land_supply_id", id);
+        criteria.andEqualTo("del_flag", 0);
+        //倒序
+        example.orderBy("department_id").asc();
+        List<IndustrialLandSupplyDistribution> industrialLandSupplyDistributionList = industrialLandSupplyDistributionService.selectByExample(example);
         for (IndustrialLandSupplyDistribution landSupplyDistribution : industrialLandSupplyDistributionList) {
             List<Attachment> attachmentList = null;
             //分发文件
@@ -1795,7 +1814,7 @@ public class IndustrialLandSupplyDetailService extends BaseService<IndustrialLan
     public String userGroupType() {
 
         String str = "";
-        if(Constant.UserType.STREET.equals(ShiroUtils.getUserType())){
+        if (Constant.UserType.STREET.equals(ShiroUtils.getUserType())) {
             str += "0,";
         }
         if (Constant.UserType.GOVERNMENT.equals(ShiroUtils.getUserType())) {
@@ -2224,7 +2243,11 @@ public class IndustrialLandSupplyDetailService extends BaseService<IndustrialLan
             if (null != approval.getFileDown() && null != approval.getFileDown().getFile_id()) {
                 attachmentService.updateAttachment(Constant.Attachment.INDUSTRIAL_LAND_SUPPLY_MANAGEMENT_COMMITTEE_LEADER, approval.getApply_id(), approval.getFileDown().getFile_id());
             }
+            if (null != approval.getCountersign_file() && null != approval.getCountersign_file().getFile_id()) {
+                attachmentService.updateAttachment(Constant.Attachment.INDUSTRIAL_LAND_SUPPLY_MANAGEMENT_COMMITTEE_LEADER_COUNTERSIGN, approval.getApply_id(), approval.getCountersign_file().getFile_id());
+            }
             industrialLandSupplyDetail.setCommittee_leader_pre_approve_comment(approval.getApproval_comment());
+            industrialLandSupplyDetail.setCountersign_comment(approval.getCountersign_comment());
             if (approval.getStatus().equals(Constant.ApproveButtonStatus.APPROVED)) {
                 //通过
                 industrialLandSupplyDetail.setCommittee_leader_pre_approve_operate("通过");
@@ -2282,15 +2305,56 @@ public class IndustrialLandSupplyDetailService extends BaseService<IndustrialLan
         if (!CollectionUtils.isEmpty(industrialLandSupplyDistributionList)) {
 
             Iterator<IndustrialLandSupplyDistribution> it = industrialLandSupplyDistributionList.iterator();
+//            Map<String, String> map = new HashMap<>();
             while (it.hasNext()) {
                 if (CommonUtils.isNull(it.next().getDistribution_file().getFile_id())) {
                     it.remove();
                 }
             }
 
-            IndustrialLandSupplyDistribution query = new IndustrialLandSupplyDistribution();
-            query.setIndustrial_land_supply_id(id + "");
-            industrialLandSupplyDistributionService.deleteByWhere(query);
+//            IndustrialLandSupplyDistribution query = new IndustrialLandSupplyDistribution();
+//            query.setIndustrial_land_supply_id(id + "");
+//            industrialLandSupplyDistributionService.deleteByWhere(query);
+//
+//            for (IndustrialLandSupplyDistribution industrialLandSupplyDistribution : industrialLandSupplyDistributionList) {
+//                map.put(industrialLandSupplyDistribution.getDepartment_id(), null);
+//            }
+//
+//            List<IndustrialLandSupplyDistribution>  industrialLandSupplyDistributions = new ArrayList<>();
+//            Iterator<Map.Entry<String, String>> itm = map.entrySet().iterator();
+//            while (itm.hasNext()) {
+//                String key = itm.next().getKey();
+//                IndustrialLandSupplyDistribution entity = new IndustrialLandSupplyDistribution();
+//                entity.setIndustrial_land_supply_id(id + "");
+//                if (CommonUtils.isNull(entity.getDistribute_time())) {
+//                    entity.setDistribute_time(dateTime);
+//                }
+//                List<FileDown> fileDownList = new ArrayList<>();
+//                for (IndustrialLandSupplyDistribution industrialLandSupplyDistribution : industrialLandSupplyDistributionList) {
+//                    if (Objects.equals(key, industrialLandSupplyDistribution.getDepartment_id())) {
+//                        FileDown fileDown = new FileDown();
+//                        fileDown.setFile_id(industrialLandSupplyDistribution.getDistribution_file().getFile_id());
+//                        fileDownList.add(fileDown);
+//                    }
+//                }
+//                entity.setDistribution_file_list(fileDownList);
+//                industrialLandSupplyDistributions.add(entity);
+//            }
+//
+//            for (IndustrialLandSupplyDistribution industrialLandSupplyDistribution : industrialLandSupplyDistributions) {
+//
+//                industrialLandSupplyDistributionService.saveSelective(industrialLandSupplyDistribution);
+//                //保存材料
+//                List<FileDown> fileDownList = industrialLandSupplyDistribution.getDistribution_file_list();
+//                if (!CollectionUtils.isEmpty(fileDownList)) {
+//                    for (FileDown fileDown : fileDownList) {
+//                        if (null != fileDown && null != fileDown.getFile_id()) {
+//                            attachmentService.deleteByBusiness(Constant.Attachment.INDUSTRIAL_LAND_SUPPLY_DISTRIBUTE, industrialLandSupplyDistribution.getId());
+//                            attachmentService.updateAttachment(Constant.Attachment.INDUSTRIAL_LAND_SUPPLY_DISTRIBUTE, industrialLandSupplyDistribution.getId(), fileDown.getFile_id());
+//                        }
+//                    }
+//                }
+//            }
             for (IndustrialLandSupplyDistribution industrialLandSupplyDistribution : industrialLandSupplyDistributionList) {
 
                 industrialLandSupplyDistribution.setIndustrial_land_supply_id(id + "");
@@ -2310,29 +2374,31 @@ public class IndustrialLandSupplyDetailService extends BaseService<IndustrialLan
         return id;
     }
 
-    public FileDown getAllDepartmentFile(String id) {
+    public List<FileDown> getAllDepartmentFile(String id) {
 
+        List<FileDown> fileDownList = new ArrayList<>();
+        List<Attachment> attachments = new ArrayList<>();
         IndustrialLandSupplyDistribution industrialLandSupplyDistribution = new IndustrialLandSupplyDistribution();
         industrialLandSupplyDistribution.setIndustrial_land_supply_id(id);
         industrialLandSupplyDistribution.setDepartment_id("0");
         industrialLandSupplyDistribution.setDel_flag(false);
         List<IndustrialLandSupplyDistribution> industrialLandSupplyDistributionList = industrialLandSupplyDistributionService.findListByWhere(industrialLandSupplyDistribution);
         if (!CollectionUtils.isEmpty(industrialLandSupplyDistributionList)) {
-            Integer applyId = industrialLandSupplyDistributionList.get(0).getId();
-
-            List<Attachment> feedbackAttachments = attachmentService.selectByIdAndBusinessId(Constant.Attachment.INDUSTRIAL_LAND_SUPPLY_DISTRIBUTE, applyId, null);
-            if (null != feedbackAttachments && feedbackAttachments.size() > 0) {
-                FileDown fileDown = new FileDown(feedbackAttachments.get(0).getId(), feedbackAttachments.get(0).getFile_name(), feedbackAttachments.get(0).getFile_url(), feedbackAttachments.get(0).getDownload_uri());
-                return fileDown;
+            for (IndustrialLandSupplyDistribution landSupplyDistribution : industrialLandSupplyDistributionList) {
+                attachments = attachmentService.selectByIdAndBusinessId(Constant.Attachment.INDUSTRIAL_LAND_SUPPLY_DISTRIBUTE, landSupplyDistribution.getId(), null);
+                if (null != attachments && attachments.size() > 0) {
+                    FileDown fileDown = new FileDown(attachments.get(0).getId(), attachments.get(0).getFile_name(), attachments.get(0).getFile_url(), attachments.get(0).getDownload_uri());
+                    fileDownList.add(fileDown);
+                }
             }
+            return fileDownList;
         }
-        return new FileDown();
+        return fileDownList;
     }
 
     @Transactional
     public void distributeFeedback(List<IndustrialLandSupplyDistribution> industrialLandSupplyDistributionList) {
 
-        String dateTime = DateUtil.getTimeString(new Date());
         for (IndustrialLandSupplyDistribution industrialLandSupplyDistribution : industrialLandSupplyDistributionList) {
 
             industrialLandSupplyDistributionService.updateSelective(industrialLandSupplyDistribution);
@@ -2389,4 +2455,47 @@ public class IndustrialLandSupplyDetailService extends BaseService<IndustrialLan
         }
 //        this.pass(industrialLandSupplyDetail.getId(), null);
     }
+
+    public void exportCountersignWord(int id, HttpServletResponse response) throws IOException {
+
+        IndustrialLandSupplyDetail entity = this.findById(id);
+
+        ExportWord ew = new ExportWord();
+        XWPFDocument document = ew.createXWPFDocument(6, 1);
+        List<List<Object>> list = new ArrayList<List<Object>>();
+
+        String title = entity.getTitle();
+        String content = entity.getContent_text();
+        String location = entity.getLocation();
+        String consultationSummary = entity.getConsultation_summary();
+
+        List<Object> tempList = new ArrayList<Object>();
+        tempList.add("项目标题:" + (title == null ? "" : title));
+        list.add(tempList);
+        tempList = new ArrayList<Object>();
+        tempList.add("项目内容:" + (content == null ? "" : content));
+        list.add(tempList);
+        tempList = new ArrayList<Object>();
+        tempList.add("用地信息:" + (location == null ? "" : location));
+        list.add(tempList);
+        tempList = new ArrayList<Object>();
+        tempList.add("部门意见(商务汇总意见):" + (consultationSummary == null ? "" : consultationSummary));
+        list.add(tempList);
+        tempList = new ArrayList<Object>();
+        tempList.add("领导批示和会签意见:");
+        list.add(tempList);
+        tempList = new ArrayList<Object>();
+        tempList.add("日期:" + DateUtil.getCurrentDateString("yyyy-MM-yy"));
+        list.add(tempList);
+
+        Map<String, Object> dataList = new HashMap<String, Object>();
+        dataList.put("TITLE", "苏州国家高新区产业用地预审办文单");
+        dataList.put("TABLEDATA", list);
+
+        response.reset();
+        response.setContentType("application/octet-stream; charset=utf-8");
+        response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode("苏州国家高新区产业用地预审办文单.docx", "UTF-8"));
+
+        ew.exportCheckWord(dataList, document, response);
+    }
 }

+ 59 - 1
src/main/java/platform/modules/government/web/IndustrialLandSupplyController.java

@@ -2,6 +2,7 @@
 package platform.modules.government.web;
 
 import com.github.pagehelper.PageInfo;
+import org.apache.poi.xwpf.usermodel.XWPFDocument;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.ModelMap;
@@ -13,6 +14,7 @@ import platform.common.base.model.DictionaryItem;
 import platform.common.base.service.DictionaryItemService;
 import platform.common.exception.BaseException;
 import platform.common.util.CommonUtils;
+import platform.common.util.word.ExportWord;
 import platform.modules.company.dto.LandSupplyApprovalDto;
 import platform.modules.government.dto.IndustrialLandSupplyDto;
 import platform.modules.government.dto.IndustrialLandSupplyParam;
@@ -23,7 +25,13 @@ import platform.modules.government.service.IndustrialLandSupplyDetailService;
 import platform.modules.sys.service.ApprovalService;
 import platform.modules.sys.web.ResponseMessage;
 
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.net.URLEncoder;
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 产业供地
@@ -526,7 +534,6 @@ public class IndustrialLandSupplyController extends BaseController {
         return ResponseMessage.success("保存成功!");
     }
 
-    //查看反馈
     @OperationLog(value = "跳转行政反馈")
     @RequestMapping("/xingzheng_feedback_view/{id}")
     public String gsFeedbackViewPage(@PathVariable("id") String id, ModelMap modelMap) {
@@ -540,6 +547,57 @@ public class IndustrialLandSupplyController extends BaseController {
         return "/admin/government/industrial_land_supply/xingzheng_feedback_view";
     }
 
+    //导出会签单
+    @RequestMapping("/management_committee_leader_export/{id}")
+    public void managementCommitteeLeaderExport(@PathVariable("id") int id, HttpServletResponse response) throws IOException {
+
+        industrialLandSupplyDetailService.exportCountersignWord(id,response);
+    }
+
+//    @RequestMapping("/management_committee_leader_export/{id}")
+//    public void managementCommitteeLeaderExport(@PathVariable("id") String id, HttpServletResponse response) throws IOException {
+//
+//        ExportWord ew = new ExportWord();
+//        XWPFDocument document = ew.createXWPFDocument(10, 6);
+//        List<List<Object>> list = new ArrayList<List<Object>>();
+//
+//        List<Object> tempList = new ArrayList<Object>();
+//        tempList.add("姓名");
+//        tempList.add("黄xx");
+//        tempList.add("性别");
+//        tempList.add("男");
+//        tempList.add("出生日期");
+//        tempList.add("2018-10-10");
+//        list.add(tempList);
+//        tempList = new ArrayList<Object>();
+//        tempList.add("身份证号");
+//        tempList.add("36073xxxxxxxxxxx");
+//        list.add(tempList);
+//        tempList = new ArrayList<Object>();
+//        tempList.add("出生地");
+//        tempList.add("江西");
+//        tempList.add("名族");
+//        tempList.add("汉");
+//        tempList.add("婚否");
+//        tempList.add("否");
+//        list.add(tempList);
+//        tempList = new ArrayList<Object>();
+//        tempList.add("既往病史");
+//        tempList.add("无");
+//        list.add(tempList);
+//
+//        Map<String, Object> dataList = new HashMap<String, Object>();
+//        dataList.put("TITLE", "个人体检表");
+//        dataList.put("TABLEDATA", list);
+//
+//        response.reset();
+//        response.setContentType("application/octet-stream; charset=utf-8");
+//        response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode("word测试.docx", "UTF-8"));
+//
+//        ew.exportCheckWord(dataList, document, response);
+//        System.out.println("文档生成成功");
+//    }
+
     //撤回分发
     //详情页面补全
 }

+ 15 - 13
src/main/resources/templates/admin/government/industrial_land_supply/add.html

@@ -65,7 +65,8 @@
         <div th:if="*{canAsk}" th:each="item,itemStat: ${consulDepartmentList}">
             <div class="line">[[${item.name}]]</div>
             <div class="row cl" th:id=" 'department'+${item.id}">
-                <div class="col-xs-8 col-sm-9 col-xs-offset-4 col-sm-offset-2">
+                <label class="form-label col-xs-4 col-sm-2"></label>
+                <div class="formControls col-xs-8 col-sm-9">
                     <div><i class="Hui-iconfont" style="cursor: pointer;"
                             th:onclick="'javascript:addFileLine(\''+'department'+${item.id}+'\')'">&#xe600; 添加</i></div>
                     <table class="table table-border table-bordered table-bg table-hover ">
@@ -274,7 +275,8 @@
             url: pagePath + "/land_supply/save",
             dataType: "json",
             data: {
-                state: state
+                state: state,
+                content_text:editor.text()
             },
             success: function (data) {
                 if (data.success) {
@@ -319,17 +321,17 @@
         index++;
     }
 
-   /* function addFileLine(divId) {
-        // var length = $("#" + divId).find(".add_file_line  tr").length;
-        var length = index;
-        var html = "<i class='Hui-iconfont' onclick='removeLine(this)'>&#xe6a1;</i>";
-        $("#" + divId).find(".add_file_line  tr:eq(0)").clone().insertAfter($("#" + divId).find('.add_file_line>tr').eq(-1))
-            .find(".consultation").removeAttr("name").attr("name", "consultationList[" + length + "].consultation").val("").end()
-            .find(".department_id").removeAttr("name").attr("name", "consultationList[" + length + "].department_id").end()
-            .find(".icon_font").html(html).end();
-        $('#layui-layer2').height(48);
-        index++;
-    }*/
+    /* function addFileLine(divId) {
+         // var length = $("#" + divId).find(".add_file_line  tr").length;
+         var length = index;
+         var html = "<i class='Hui-iconfont' onclick='removeLine(this)'>&#xe6a1;</i>";
+         $("#" + divId).find(".add_file_line  tr:eq(0)").clone().insertAfter($("#" + divId).find('.add_file_line>tr').eq(-1))
+             .find(".consultation").removeAttr("name").attr("name", "consultationList[" + length + "].consultation").val("").end()
+             .find(".department_id").removeAttr("name").attr("name", "consultationList[" + length + "].department_id").end()
+             .find(".icon_font").html(html).end();
+         $('#layui-layer2').height(48);
+         index++;
+     }*/
 
     // function addFileLine(divId) {
     //     var length = $("#" + divId).find(".add_file_line  tr").length;

+ 8 - 5
src/main/resources/templates/admin/government/industrial_land_supply/commerce_approve.html

@@ -92,9 +92,10 @@
                         </th:block>
                     </div>
                     <div id="filePicker">上传</div>
-                    <th:block th:switch = "${data.fileDown==null || data.fileDown.file_url== null}" >
+                    <th:block th:switch="${data.fileDown==null || data.fileDown.file_url== null}">
                          <input th:case="true" type="hidden" name="fileDown.file_id" id="files">
-                        <input th:case="false" type="hidden" name="fileDown.file_id" id="files" th:value="${data.fileDown.file_id}">
+                        <input th:case="false" type="hidden" name="fileDown.file_id" id="files"
+                               th:value="${data.fileDown.file_id}">
                     </th:block>
                 </div>
             </div>
@@ -102,8 +103,9 @@
 
         <div th:if="*{canAsk}" th:each="item,itemStat: ${consulDepartmentList}">
             <div class="line">[[${item.name}]]</div>
-            <div class="row cl" th:id=" 'department'+${item.id}">
-                <div class="col-xs-8 col-sm-9 col-xs-offset-4 col-sm-offset-2">
+            <div class="row cl" th:id="'department'+${item.id}">
+                <label class="form-label col-xs-4 col-sm-2"></label>
+                <div class="formControls col-xs-8 col-sm-9">
                     <div><i class="Hui-iconfont" style="cursor: pointer;"
                             th:onclick="'javascript:addFileLine(\''+'department'+${item.id}+'\')'">&#xe600; 添加</i></div>
                     <table class="table table-border table-bordered table-bg table-hover ">
@@ -140,7 +142,8 @@
 
         <div th:if="*{data.approve_status=='2'}" class="line">流程信息</div>
         <div th:if="*{data.approve_status=='2'}" class="row cl">
-            <div class="col-xs-8 col-sm-9 col-xs-offset-2 col-sm-offset-1">
+            <label class="form-label col-xs-4 col-sm-2"></label>
+            <div class="formControls col-xs-8 col-sm-9">
                 <table class="table table-border table-bordered table-bg table-hover processTb">
                     <thead>
                     <tr class="text-c">

+ 29 - 4
src/main/resources/templates/admin/government/industrial_land_supply/detail.html

@@ -95,7 +95,8 @@
 
             <div class="line">咨询问题</div>
             <div class="row cl">
-                <div class="col-xs-8 col-sm-9 col-xs-offset-2 col-sm-offset-1">
+                <label class="form-label col-xs-4 col-sm-2"></label>
+                <div class="formControls col-xs-8 col-sm-9">
                     <table class="table table-border table-bordered table-bg table-hover processTb">
                         <thead>
                         <tr class="text-c">
@@ -149,9 +150,31 @@
                 </div>
             </div>
 
+            <div class="line">会签</div>
+            <div class="row cl">
+                <label class="form-label col-xs-4 col-sm-2"><span>会签说明:</span></label>
+                <div class="formControls col-xs-8 col-sm-9">
+                    <div th:utext="${data.countersign_comment}">
+                    </div>
+                </div>
+            </div>
+            <div class="row cl">
+                <label class="form-label col-xs-4 col-sm-2"><span>文件:</span></label>
+                <div class="formControls col-xs-8 col-sm-9">
+                    <div class="uploader-list">
+                        <th:block
+                                th:unless="${data.countersign_file==null || data.countersign_file.file_url== null}">
+                            <a style="color: #0c80fe;" th:href="${fileUrl} + ${data.countersign_file.file_url}"
+                               target="_blank">[[${data.countersign_file.file_name}]]</a>
+                        </th:block>
+                    </div>
+                </div>
+            </div>
+
             <div class="line">预审审批</div>
             <div class="row cl">
-                <div class="col-xs-8 col-sm-9 col-xs-offset-2 col-sm-offset-1">
+                <label class="form-label col-xs-4 col-sm-2"></label>
+                <div class="formControls col-xs-8 col-sm-9">
                     <table class="table table-border table-bordered table-bg table-hover processTb">
                         <thead>
                         <tr class="text-c">
@@ -220,7 +243,8 @@
 
             <div class="line">分发文件</div>
             <div class="row cl">
-                <div class="col-xs-8 col-sm-9 col-xs-offset-2 col-sm-offset-1">
+                <label class="form-label col-xs-4 col-sm-2"></label>
+                <div class="formControls col-xs-8 col-sm-9">
                     <table class="table table-border table-bordered table-bg table-hover processTb">
                         <thead>
                         <tr class="text-c">
@@ -387,7 +411,8 @@
 
             <div class="line">流程信息</div>
             <div class="row cl">
-                <div class="col-xs-8 col-sm-9 col-xs-offset-2 col-sm-offset-1">
+                <label class="form-label col-xs-4 col-sm-2"></label>
+                <div class="formControls col-xs-8 col-sm-9">
                     <table class="table table-border table-bordered table-bg table-hover processTb">
                         <thead>
                         <tr class="text-c">

+ 44 - 20
src/main/resources/templates/admin/government/industrial_land_supply/distribute_summary.html

@@ -92,7 +92,8 @@
 
         <div class="line">咨询问题</div>
         <div class="row cl">
-            <div class="col-xs-8 col-sm-9 col-xs-offset-2 col-sm-offset-1">
+            <label class="form-label col-xs-4 col-sm-2"></label>
+            <div class="formControls col-xs-8 col-sm-9">
                 <table class="table table-border table-bordered table-bg table-hover processTb">
                     <thead>
                     <tr class="text-c">
@@ -146,9 +147,31 @@
             </div>
         </div>
 
+        <div class="line">会签</div>
+        <div class="row cl">
+            <label class="form-label col-xs-4 col-sm-2"><span>会签说明:</span></label>
+            <div class="formControls col-xs-8 col-sm-9">
+                <div th:utext="${data.countersign_comment}">
+                </div>
+            </div>
+        </div>
+        <div class="row cl">
+            <label class="form-label col-xs-4 col-sm-2"><span>文件:</span></label>
+            <div class="formControls col-xs-8 col-sm-9">
+                <div class="uploader-list">
+                    <th:block
+                            th:unless="${data.countersign_file==null || data.countersign_file.file_url== null}">
+                        <a style="color: #0c80fe;" th:href="${fileUrl} + ${data.countersign_file.file_url}"
+                           target="_blank">[[${data.countersign_file.file_name}]]</a>
+                    </th:block>
+                </div>
+            </div>
+        </div>
+
         <div class="line">预审审批</div>
         <div class="row cl">
-            <div class="col-xs-8 col-sm-9 col-xs-offset-2 col-sm-offset-1">
+            <label class="form-label col-xs-4 col-sm-2"></label>
+            <div class="formControls col-xs-8 col-sm-9">
                 <table class="table table-border table-bordered table-bg table-hover processTb">
                     <thead>
                     <tr class="text-c">
@@ -159,21 +182,21 @@
                     </tr>
                     </thead>
                     <tbody>
-<!--                    <tr class="text-c">-->
-<!--                        <td>商务局分管领导</td>-->
-<!--                        <td th:text="${data.commerce_leader_pre_approve_operate}" class="viewComment"-->
-<!--                            th:data="*{data.commerce_leader_pre_approve_operate}"></td>-->
-<!--                        <td th:text="${data.commerce_leader_pre_approve_comment}" class="viewComment"-->
-<!--                            th:data="*{data.commerce_leader_pre_approve_comment}"></td>-->
-<!--                        <td>-->
-<!--                            <th:block-->
-<!--                                    th:unless="${data.commerce_leader_pre_approve_file==null || data.commerce_leader_pre_approve_file.file_url== null}">-->
-<!--                                <a style="color: #0c80fe;"-->
-<!--                                   th:href="${fileUrl} + ${data.commerce_leader_pre_approve_file.file_url}"-->
-<!--                                   target="_blank">[[${data.commerce_leader_pre_approve_file.file_name}]]</a>-->
-<!--                            </th:block>-->
-<!--                        </td>-->
-<!--                    </tr>-->
+                    <!--                    <tr class="text-c">-->
+                    <!--                        <td>商务局分管领导</td>-->
+                    <!--                        <td th:text="${data.commerce_leader_pre_approve_operate}" class="viewComment"-->
+                    <!--                            th:data="*{data.commerce_leader_pre_approve_operate}"></td>-->
+                    <!--                        <td th:text="${data.commerce_leader_pre_approve_comment}" class="viewComment"-->
+                    <!--                            th:data="*{data.commerce_leader_pre_approve_comment}"></td>-->
+                    <!--                        <td>-->
+                    <!--                            <th:block-->
+                    <!--                                    th:unless="${data.commerce_leader_pre_approve_file==null || data.commerce_leader_pre_approve_file.file_url== null}">-->
+                    <!--                                <a style="color: #0c80fe;"-->
+                    <!--                                   th:href="${fileUrl} + ${data.commerce_leader_pre_approve_file.file_url}"-->
+                    <!--                                   target="_blank">[[${data.commerce_leader_pre_approve_file.file_name}]]</a>-->
+                    <!--                            </th:block>-->
+                    <!--                        </td>-->
+                    <!--                    </tr>-->
                     <tr class="text-c">
                         <td>管委会分管领导</td>
                         <td th:text="${data.committee_leader_pre_approve_operate}" class="viewComment"
@@ -196,7 +219,8 @@
 
         <div class="line">分发文件</div>
         <div class="row cl">
-            <div class="col-xs-8 col-sm-9 col-xs-offset-2 col-sm-offset-1">
+            <label class="form-label col-xs-4 col-sm-2"></label>
+            <div class="formControls col-xs-8 col-sm-9">
                 <table class="table table-border table-bordered table-bg table-hover processTb">
                     <thead>
                     <tr class="text-c">
@@ -321,8 +345,8 @@
         console.log(joint_trial)
         if (joint_trial == 'false') {
             // $("#joint_trial").hide();
-             joint_trial_result_editor.readonly(true);
-             joint_trial_comment_editor.readonly(true);
+            joint_trial_result_editor.readonly(true);
+            joint_trial_comment_editor.readonly(true);
         } else {
             // $("#joint_trial").show();
             joint_trial_result_editor.readonly(false);

+ 11 - 6
src/main/resources/templates/admin/government/industrial_land_supply/edit.html

@@ -66,9 +66,10 @@
                         </th:block>
                     </div>
                     <div id="filePicker">上传</div>
-                    <th:block th:switch = "${data.fileDown==null || data.fileDown.file_url== null}" >
+                    <th:block th:switch="${data.fileDown==null || data.fileDown.file_url== null}">
                          <input th:case="true" type="hidden" name="fileDown.file_id" id="files">
-                        <input th:case="false" type="hidden" name="fileDown.file_id" id="files" th:value="${data.fileDown.file_id}">
+                        <input th:case="false" type="hidden" name="fileDown.file_id" id="files"
+                               th:value="${data.fileDown.file_id}">
                     </th:block>
                 </div>
             </div>
@@ -76,7 +77,8 @@
         <div th:if="*{canAsk}" th:each="item,itemStat: ${consulDepartmentList}">
             <div class="line">[[${item.name}]]</div>
             <div class="row cl" th:id=" 'department'+${item.id}">
-                <div class="col-xs-8 col-sm-9 col-xs-offset-4 col-sm-offset-2">
+                <label class="form-label col-xs-4 col-sm-2"></label>
+                <div class="formControls col-xs-8 col-sm-9">
                     <div><i class="Hui-iconfont" style="cursor: pointer;"
                             th:onclick="'javascript:addFileLine(\''+'department'+${item.id}+'\')'">&#xe600; 添加</i></div>
                     <table class="table table-border table-bordered table-bg table-hover ">
@@ -113,7 +115,8 @@
 
         <div th:if="*{data.approve_status=='2'}" class="line">流程信息</div>
         <div th:if="*{data.approve_status=='2'}" class="row cl">
-            <div class="col-xs-8 col-sm-9 col-xs-offset-2 col-sm-offset-1">
+            <label class="form-label col-xs-4 col-sm-2"></label>
+            <div class="formControls col-xs-8 col-sm-9">
                 <table class="table table-border table-bordered table-bg table-hover processTb">
                     <thead>
                     <tr class="text-c">
@@ -140,7 +143,8 @@
         </div>
         <div th:if="*{data.approve_status=='2'}" class="line">审核意见</div>
         <div th:if="*{data.approve_status=='2'}" class="row cl">
-            <div class="col-xs-8 col-sm-9 col-xs-offset-2 col-sm-offset-1">
+            <label class="form-label col-xs-4 col-sm-2">审核意见:</label>
+            <div class="formControls col-xs-8 col-sm-9">
                 <textarea class="textarea" id="approval_comment" th:name="approval_comment"
                           placeholder="请输入审核意见"></textarea>
             </div>
@@ -336,7 +340,8 @@
             url: pagePath + "/land_supply/update",
             dataType: "json",
             data: {
-                state: state
+                state: state,
+                content_text:editor.text()
             },
             success: function (data) {
                 if (data.success) {

+ 2 - 1
src/main/resources/templates/admin/government/industrial_land_supply/feedback_append.html

@@ -100,7 +100,8 @@
         <div th:if="*{canAsk}" th:each="item,itemStat: ${consulDepartmentList}">
             <div class="line">[[${item.name}]]</div>
             <div class="row cl" th:id=" 'department'+${item.id}">
-                <div class="col-xs-8 col-sm-9 col-xs-offset-4 col-sm-offset-2">
+                <label class="form-label col-xs-4 col-sm-2"></label>
+                <div class="formControls col-xs-8 col-sm-9">
                     <div><i class="Hui-iconfont" style="cursor: pointer;"
                             th:onclick="'javascript:addFileLine(\''+'department'+${item.id}+'\')'">&#xe600; 添加</i></div>
                     <table class="table table-border table-bordered table-bg table-hover ">

+ 2 - 1
src/main/resources/templates/admin/government/industrial_land_supply/feedback_withdraw.html

@@ -92,7 +92,8 @@
 
         <div class="line">咨询问题</div>
         <div class="row cl">
-            <div class="col-xs-8 col-sm-9 col-xs-offset-2 col-sm-offset-1">
+            <label class="form-label col-xs-4 col-sm-2"></label>
+            <div class="formControls col-xs-8 col-sm-9">
                 <table class="table table-border table-bordered table-bg table-hover processTb">
                     <thead>
                     <tr class="text-c">

+ 29 - 4
src/main/resources/templates/admin/government/industrial_land_supply/land_approve.html

@@ -92,7 +92,8 @@
 
         <div class="line">咨询问题</div>
         <div class="row cl">
-            <div class="col-xs-8 col-sm-9 col-xs-offset-2 col-sm-offset-1">
+            <label class="form-label col-xs-4 col-sm-2"></label>
+            <div class="formControls col-xs-8 col-sm-9">
                 <table class="table table-border table-bordered table-bg table-hover processTb">
                     <thead>
                     <tr class="text-c">
@@ -146,9 +147,31 @@
             </div>
         </div>
 
+        <div class="line">会签</div>
+        <div class="row cl">
+            <label class="form-label col-xs-4 col-sm-2"><span>会签说明:</span></label>
+            <div class="formControls col-xs-8 col-sm-9">
+                <div th:utext="${data.countersign_comment}">
+                </div>
+            </div>
+        </div>
+        <div class="row cl">
+            <label class="form-label col-xs-4 col-sm-2"><span>文件:</span></label>
+            <div class="formControls col-xs-8 col-sm-9">
+                <div class="uploader-list">
+                    <th:block
+                            th:unless="${data.countersign_file==null || data.countersign_file.file_url== null}">
+                        <a style="color: #0c80fe;" th:href="${fileUrl} + ${data.countersign_file.file_url}"
+                           target="_blank">[[${data.countersign_file.file_name}]]</a>
+                    </th:block>
+                </div>
+            </div>
+        </div>
+
         <div class="line">预审审批</div>
         <div class="row cl">
-            <div class="col-xs-8 col-sm-9 col-xs-offset-2 col-sm-offset-1">
+            <label class="form-label col-xs-4 col-sm-2"></label>
+            <div class="formControls col-xs-8 col-sm-9">
                 <table class="table table-border table-bordered table-bg table-hover processTb">
                     <thead>
                     <tr class="text-c">
@@ -196,7 +219,8 @@
 
         <div class="line">分发文件</div>
         <div class="row cl">
-            <div class="col-xs-8 col-sm-9 col-xs-offset-2 col-sm-offset-1">
+            <label class="form-label col-xs-4 col-sm-2"></label>
+            <div class="formControls col-xs-8 col-sm-9">
                 <table class="table table-border table-bordered table-bg table-hover processTb">
                     <thead>
                     <tr class="text-c">
@@ -361,7 +385,8 @@
         </div>-->
         <div class="line">审核意见</div>
         <div class="row cl">
-            <div class="col-xs-8 col-sm-9 col-xs-offset-2 col-sm-offset-1">
+            <label class="form-label col-xs-4 col-sm-2">审核意见:</label>
+            <div class="formControls col-xs-8 col-sm-9">
                 <textarea class="textarea" id="approval_comment" th:name="approval_comment"
                           placeholder="请输入审核意见"></textarea>
             </div>

+ 98 - 21
src/main/resources/templates/admin/government/industrial_land_supply/pre_approve.html

@@ -92,7 +92,8 @@
 
         <div class="line">咨询问题</div>
         <div class="row cl">
-            <div class="col-xs-8 col-sm-9 col-xs-offset-2 col-sm-offset-1">
+            <label class="form-label col-xs-4 col-sm-2"></label>
+            <div class="formControls col-xs-8 col-sm-9">
                 <table class="table table-border table-bordered table-bg table-hover processTb">
                     <thead>
                     <tr class="text-c">
@@ -150,7 +151,8 @@
 
             <div class="line">预审审批</div>
             <div class="row cl">
-                <div class="col-xs-8 col-sm-9 col-xs-offset-2 col-sm-offset-1">
+                <label class="form-label col-xs-4 col-sm-2"></label>
+                <div class="formControls col-xs-8 col-sm-9">
                     <table class="table table-border table-bordered table-bg table-hover processTb">
                         <thead>
                         <tr class="text-c">
@@ -161,21 +163,21 @@
                         </tr>
                         </thead>
                         <tbody>
-<!--                        <tr class="text-c">-->
-<!--                            <td>商务局分管领导</td>-->
-<!--                            <td th:text="${data.commerce_leader_pre_approve_operate}" class="viewComment"-->
-<!--                                th:data="*{data.commerce_leader_pre_approve_operate}"></td>-->
-<!--                            <td th:text="${data.commerce_leader_pre_approve_comment}" class="viewComment"-->
-<!--                                th:data="*{data.commerce_leader_pre_approve_comment}"></td>-->
-<!--                            <td>-->
-<!--                                <th:block-->
-<!--                                        th:unless="${data.commerce_leader_pre_approve_file==null || data.commerce_leader_pre_approve_file.file_url== null}">-->
-<!--                                    <a style="color: #0c80fe;"-->
-<!--                                       th:href="${fileUrl} + ${data.commerce_leader_pre_approve_file.file_url}"-->
-<!--                                       target="_blank">[[${data.commerce_leader_pre_approve_file.file_name}]]</a>-->
-<!--                                </th:block>-->
-<!--                            </td>-->
-<!--                        </tr>-->
+                        <!--                        <tr class="text-c">-->
+                        <!--                            <td>商务局分管领导</td>-->
+                        <!--                            <td th:text="${data.commerce_leader_pre_approve_operate}" class="viewComment"-->
+                        <!--                                th:data="*{data.commerce_leader_pre_approve_operate}"></td>-->
+                        <!--                            <td th:text="${data.commerce_leader_pre_approve_comment}" class="viewComment"-->
+                        <!--                                th:data="*{data.commerce_leader_pre_approve_comment}"></td>-->
+                        <!--                            <td>-->
+                        <!--                                <th:block-->
+                        <!--                                        th:unless="${data.commerce_leader_pre_approve_file==null || data.commerce_leader_pre_approve_file.file_url== null}">-->
+                        <!--                                    <a style="color: #0c80fe;"-->
+                        <!--                                       th:href="${fileUrl} + ${data.commerce_leader_pre_approve_file.file_url}"-->
+                        <!--                                       target="_blank">[[${data.commerce_leader_pre_approve_file.file_name}]]</a>-->
+                        <!--                                </th:block>-->
+                        <!--                            </td>-->
+                        <!--                        </tr>-->
                         </tbody>
                     </table>
                 </div>
@@ -190,6 +192,38 @@
         <input id="type" type="hidden" name="type"/>
         <input id="apply_id" type="hidden" name="apply_id" th:value="${data.id}"/>
 
+        <th:block th:if="*{data.approve_status=='11'}">
+
+            <div class="line">会签</div>
+            <div class="row cl">
+                <label class="form-label col-xs-4 col-sm-2"><span>会签说明:</span></label>
+                <div class="formControls col-xs-8 col-sm-9">
+                <textarea id="countersign_comment" name="countersign_comment"
+                >[[${data.countersign_comment}]]</textarea>
+                </div>
+            </div>
+            <div class="row cl">
+                <label class="form-label col-xs-4 col-sm-2"><span>会签单下载:</span></label>
+                <div class="formControls col-xs-8 col-sm-9">
+                    <a th:onclick="'javascript:exportWord(\''+${data.id}+'\');'"
+                       class="btn btn-secondary radius" type="button">下载</a>
+                </div>
+            </div>
+            <div class="row cl">
+                <label class="form-label col-xs-4 col-sm-2"><span>会签单上传:</span></label>
+                <div class="formControls col-xs-8 col-sm-9">
+                    <div class="uploader-thum-container">
+                        <input class="uploadFileName btn btn-upload radius" name="uploadFileName" readonly="readonly"
+                               type="text" value="上传文件"
+                               th:onclick="'javascript:addFileByName(\'/land_supply/addApplyFile'+'\',this);'"/>
+                        <input class="uploadFileId" type="hidden"
+                               th:name="'countersign_file.file_id'"/>
+                        <a style="color: #0c80fe;" th:onclick="'javascript:deleteFile(this)'">删除</a>
+                    </div>
+                </div>
+            </div>
+
+        </th:block>
         <!--<div th:if="*{data.approve_status=='8' || data.approve_status=='11'}" class="line">流程信息</div>
         <div th:if="*{data.approve_status=='8' || data.approve_status=='11'}" class="row cl">
             <div class="col-xs-8 col-sm-9 col-xs-offset-2 col-sm-offset-1">
@@ -219,7 +253,8 @@
         </div>-->
         <div th:if="*{data.approve_status=='8' || data.approve_status=='11'}" class="line">审核意见</div>
         <div th:if="*{data.approve_status=='8' || data.approve_status=='11'}" class="row cl">
-            <div class="col-xs-8 col-sm-9 col-xs-offset-2 col-sm-offset-1">
+            <label class="form-label col-xs-4 col-sm-2"><span>审核意见:</span></label>
+            <div class="formControls col-xs-8 col-sm-9">
                 <textarea class="textarea" id="approval_comment" th:name="approval_comment"
                           placeholder="请输入审核意见"></textarea>
             </div>
@@ -228,13 +263,20 @@
             <label class="form-label col-xs-4 col-sm-2">审核材料:</label>
             <div class="formControls col-xs-8 col-sm-9">
                 <div class="uploader-thum-container">
-                    <div id="fileListPre" class="uploader-list">
-                    </div>
-                    <div id="filePicker">选择文件</div>
+                    <!--                    <div id="fileListPre" class="uploader-list">-->
+                    <!--                    </div>-->
+                    <!--                    <div id="filePicker">选择文件</div>-->
+                    <input class="uploadFileName btn btn-upload radius" name="uploadFileName" readonly="readonly"
+                           type="text" value="上传文件"
+                           th:onclick="'javascript:addFileByName(\'/land_supply/addApplyFile'+'\',this);'"/>
+                    <input class="uploadFileId" type="hidden"
+                           th:name="'fileDown.file_id'"/>
+                    <a style="color: #0c80fe;" th:onclick="'javascript:deleteFile(this)'">删除</a>
                 </div>
             </div>
         </div>
 
+
         <div class="row cl text-c" style="background-color: white">
             <div class="col-xs-8 col-sm-9 col-xs-offset-4 col-sm-offset-2">
                 <a onclick="audit(2,1)" class="btn btn-primary radius"
@@ -258,6 +300,22 @@
 <script type="text/javascript" th:src="@{/h-ui/lib/webuploader/0.1.5/webuploader.min.js}"></script>
 <script th:inline="javascript">
 
+    function exportWord(id) {
+        window.open(pagePath + "/land_supply/management_committee_leader_export/" + id);
+    }
+
+    //添加相应name的文件
+    function addFileByName(url, obj) {
+        var name = $(obj).next().attr("name");
+        url += "?fileIdName=" + name;
+        layer_show('添加文件', pagePath + url, 800, 350);
+    }
+
+    function deleteFile(item) {
+        $(item).parent().find(".uploadFileName").val("上传文件")
+        $(item).parent().find(".uploadFileId").val(null)
+    }
+
     //status 1退回,2通过,3不通过
     function audit(status, type) {
         $("#status").val(status);
@@ -337,6 +395,25 @@
         });
     });
 
+    //富文本kindeditor初始化
+    var editor;
+    KindEditor.ready(function (K) {
+        editor = K.create('#countersign_comment', {
+            uploadJson: pagePath + '/upload/kindEditorUpload',
+            cssData: 'body {font-family: "微软雅黑"; font-size: 14px}',
+            allowFileManager: false,
+            allowUpload: true,
+            width: "100%",
+            height: "350px",
+            items: array,
+            syncType: "auto",
+            filterMode: false,
+            afterBlur: function () {
+                this.sync();
+            }
+        });
+    });
+
     /**
      * 取消
      */

+ 2 - 1
src/main/resources/templates/admin/government/industrial_land_supply/summary.html

@@ -92,7 +92,8 @@
 
         <div class="line">咨询问题</div>
         <div class="row cl">
-            <div class="col-xs-8 col-sm-9 col-xs-offset-2 col-sm-offset-1">
+            <label class="form-label col-xs-4 col-sm-2"></label>
+            <div class="formControls col-xs-8 col-sm-9">
                 <table class="table table-border table-bordered table-bg table-hover processTb">
                     <thead>
                     <tr class="text-c">

+ 4 - 2
src/main/resources/templates/admin/government/industrial_land_supply/xingzheng_feedback.html

@@ -92,7 +92,8 @@
 
         <div class="line">咨询问题</div>
         <div class="row cl">
-            <div class="col-xs-8 col-sm-9 col-xs-offset-2 col-sm-offset-1">
+            <label class="form-label col-xs-4 col-sm-2"></label>
+            <div class="formControls col-xs-8 col-sm-9">
                 <table class="table table-border table-bordered table-bg table-hover processTb">
                     <thead>
                     <tr class="text-c">
@@ -148,7 +149,8 @@
 
         <div class="line">预审审批</div>
         <div class="row cl">
-            <div class="col-xs-8 col-sm-9 col-xs-offset-2 col-sm-offset-1">
+            <label class="form-label col-xs-4 col-sm-2"></label>
+            <div class="formControls col-xs-8 col-sm-9">
                 <table class="table table-border table-bordered table-bg table-hover processTb">
                     <thead>
                     <tr class="text-c">

+ 113 - 111
src/main/resources/templates/admin/government/industrial_land_supply/xingzheng_feedback_view.html

@@ -91,130 +91,132 @@
         </div>
 
 
-            <div class="line">咨询问题</div>
-            <div class="row cl">
-                <div class="col-xs-8 col-sm-9 col-xs-offset-2 col-sm-offset-1">
-                    <table class="table table-border table-bordered table-bg table-hover processTb">
-                        <thead>
-                        <tr class="text-c">
-                            <th>咨询部门</th>
-                            <th>咨询问题</th>
-                            <th>反馈内容</th>
-                            <th>反馈文件</th>
-                            <th>剩余答复时间</th>
-                            <th>答复时间</th>
-                            <th>咨询时间</th>
-                        </tr>
-                        </thead>
-                        <tbody>
-                        <tr class="text-c" th:each="item : ${data.consultationList}">
-                            <td th:text="${item.department_name}"></td>
-                            <td th:text="${item.consultation}" class="viewComment" th:data="*{item.consultation}"></td>
-                            <td th:text="${item.feedback}" class="viewComment" th:data="*{item.feedback}"></td>
-                            <td>
-                                <th:block th:unless="${item.fileDown==null || item.fileDown.file_url== null}">
-                                    <a style="color: #0c80fe;" th:href="${fileUrl} + ${item.fileDown.file_url}"
-                                       target="_blank">[[${item.fileDown.file_name}]]</a>
-                                </th:block>
-                            </td>
-                            <td th:text="${item.remain_time}"></td>
-                            <td th:text="${item.feedback_time}"></td>
-                            <td th:text="${item.consultation_time}"></td>
-                        </tr>
-                        </tbody>
-                    </table>
-                </div>
+        <div class="line">咨询问题</div>
+        <div class="row cl">
+            <label class="form-label col-xs-4 col-sm-2"></label>
+            <div class="formControls col-xs-8 col-sm-9">
+                <table class="table table-border table-bordered table-bg table-hover processTb">
+                    <thead>
+                    <tr class="text-c">
+                        <th>咨询部门</th>
+                        <th>咨询问题</th>
+                        <th>反馈内容</th>
+                        <th>反馈文件</th>
+                        <th>剩余答复时间</th>
+                        <th>答复时间</th>
+                        <th>咨询时间</th>
+                    </tr>
+                    </thead>
+                    <tbody>
+                    <tr class="text-c" th:each="item : ${data.consultationList}">
+                        <td th:text="${item.department_name}"></td>
+                        <td th:text="${item.consultation}" class="viewComment" th:data="*{item.consultation}"></td>
+                        <td th:text="${item.feedback}" class="viewComment" th:data="*{item.feedback}"></td>
+                        <td>
+                            <th:block th:unless="${item.fileDown==null || item.fileDown.file_url== null}">
+                                <a style="color: #0c80fe;" th:href="${fileUrl} + ${item.fileDown.file_url}"
+                                   target="_blank">[[${item.fileDown.file_name}]]</a>
+                            </th:block>
+                        </td>
+                        <td th:text="${item.remain_time}"></td>
+                        <td th:text="${item.feedback_time}"></td>
+                        <td th:text="${item.consultation_time}"></td>
+                    </tr>
+                    </tbody>
+                </table>
             </div>
+        </div>
 
-            <div class="line">咨询汇总</div>
-            <div class="row cl">
-                <label class="form-label col-xs-4 col-sm-2"><span>汇总意见:</span></label>
-                <div class="formControls col-xs-8 col-sm-9">
-                    <div th:utext="${data.consultation_summary}">
-                    </div>
+        <div class="line">咨询汇总</div>
+        <div class="row cl">
+            <label class="form-label col-xs-4 col-sm-2"><span>汇总意见:</span></label>
+            <div class="formControls col-xs-8 col-sm-9">
+                <div th:utext="${data.consultation_summary}">
                 </div>
             </div>
-            <div class="row cl">
-                <label class="form-label col-xs-4 col-sm-2"><span>文件:</span></label>
-                <div class="formControls col-xs-8 col-sm-9">
-                    <div class="uploader-list">
-                        <th:block
-                                th:unless="${data.consultation_summary_file==null || data.consultation_summary_file.file_url== null}">
-                            <a style="color: #0c80fe;" th:href="${fileUrl} + ${data.consultation_summary_file.file_url}"
-                               target="_blank">[[${data.consultation_summary_file.file_name}]]</a>
-                        </th:block>
-                    </div>
+        </div>
+        <div class="row cl">
+            <label class="form-label col-xs-4 col-sm-2"><span>文件:</span></label>
+            <div class="formControls col-xs-8 col-sm-9">
+                <div class="uploader-list">
+                    <th:block
+                            th:unless="${data.consultation_summary_file==null || data.consultation_summary_file.file_url== null}">
+                        <a style="color: #0c80fe;" th:href="${fileUrl} + ${data.consultation_summary_file.file_url}"
+                           target="_blank">[[${data.consultation_summary_file.file_name}]]</a>
+                    </th:block>
                 </div>
             </div>
+        </div>
 
-            <div class="line">预审审批</div>
-            <div class="row cl">
-                <div class="col-xs-8 col-sm-9 col-xs-offset-2 col-sm-offset-1">
-                    <table class="table table-border table-bordered table-bg table-hover processTb">
-                        <thead>
-                        <tr class="text-c">
-                            <th>审批角色</th>
-                            <th>审批结果</th>
-                            <th>审批意见</th>
-                            <th>文件</th>
-                        </tr>
-                        </thead>
-                        <tbody>
-<!--                        <tr class="text-c">-->
-<!--                            <td>商务局分管领导</td>-->
-<!--                            <td th:text="${data.commerce_leader_pre_approve_operate}" class="viewComment"-->
-<!--                                th:data="*{data.commerce_leader_pre_approve_operate}"></td>-->
-<!--                            <td th:text="${data.commerce_leader_pre_approve_comment}" class="viewComment"-->
-<!--                                th:data="*{data.commerce_leader_pre_approve_comment}"></td>-->
-<!--                            <td>-->
-<!--                                <th:block-->
-<!--                                        th:unless="${data.commerce_leader_pre_approve_file==null || data.commerce_leader_pre_approve_file.file_url== null}">-->
-<!--                                    <a style="color: #0c80fe;"-->
-<!--                                       th:href="${fileUrl} + ${data.commerce_leader_pre_approve_file.file_url}"-->
-<!--                                       target="_blank">[[${data.commerce_leader_pre_approve_file.file_name}]]</a>-->
-<!--                                </th:block>-->
-<!--                            </td>-->
-<!--                        </tr>-->
-                        <tr class="text-c">
-                            <td>管委会分管领导</td>
-                            <td th:text="${data.committee_leader_pre_approve_operate}" class="viewComment"
-                                th:data="*{data.committee_leader_pre_approve_operate}"></td>
-                            <td th:text="${data.committee_leader_pre_approve_comment}" class="viewComment"
-                                th:data="*{data.committee_leader_pre_approve_comment}"></td>
-                            <td>
-                                <th:block
-                                        th:unless="${data.committee_leader_pre_approve_file==null || data.committee_leader_pre_approve_file.file_url== null}">
-                                    <a style="color: #0c80fe;"
-                                       th:href="${fileUrl} + ${data.committee_leader_pre_approve_file.file_url}"
-                                       target="_blank">[[${data.committee_leader_pre_approve_file.file_name}]]</a>
-                                </th:block>
-                            </td>
-                        </tr>
-                        </tbody>
-                    </table>
-                </div>
+        <div class="line">预审审批</div>
+        <div class="row cl">
+            <label class="form-label col-xs-4 col-sm-2"></label>
+            <div class="formControls col-xs-8 col-sm-9">
+                <table class="table table-border table-bordered table-bg table-hover processTb">
+                    <thead>
+                    <tr class="text-c">
+                        <th>审批角色</th>
+                        <th>审批结果</th>
+                        <th>审批意见</th>
+                        <th>文件</th>
+                    </tr>
+                    </thead>
+                    <tbody>
+                    <!--                        <tr class="text-c">-->
+                    <!--                            <td>商务局分管领导</td>-->
+                    <!--                            <td th:text="${data.commerce_leader_pre_approve_operate}" class="viewComment"-->
+                    <!--                                th:data="*{data.commerce_leader_pre_approve_operate}"></td>-->
+                    <!--                            <td th:text="${data.commerce_leader_pre_approve_comment}" class="viewComment"-->
+                    <!--                                th:data="*{data.commerce_leader_pre_approve_comment}"></td>-->
+                    <!--                            <td>-->
+                    <!--                                <th:block-->
+                    <!--                                        th:unless="${data.commerce_leader_pre_approve_file==null || data.commerce_leader_pre_approve_file.file_url== null}">-->
+                    <!--                                    <a style="color: #0c80fe;"-->
+                    <!--                                       th:href="${fileUrl} + ${data.commerce_leader_pre_approve_file.file_url}"-->
+                    <!--                                       target="_blank">[[${data.commerce_leader_pre_approve_file.file_name}]]</a>-->
+                    <!--                                </th:block>-->
+                    <!--                            </td>-->
+                    <!--                        </tr>-->
+                    <tr class="text-c">
+                        <td>管委会分管领导</td>
+                        <td th:text="${data.committee_leader_pre_approve_operate}" class="viewComment"
+                            th:data="*{data.committee_leader_pre_approve_operate}"></td>
+                        <td th:text="${data.committee_leader_pre_approve_comment}" class="viewComment"
+                            th:data="*{data.committee_leader_pre_approve_comment}"></td>
+                        <td>
+                            <th:block
+                                    th:unless="${data.committee_leader_pre_approve_file==null || data.committee_leader_pre_approve_file.file_url== null}">
+                                <a style="color: #0c80fe;"
+                                   th:href="${fileUrl} + ${data.committee_leader_pre_approve_file.file_url}"
+                                   target="_blank">[[${data.committee_leader_pre_approve_file.file_name}]]</a>
+                            </th:block>
+                        </td>
+                    </tr>
+                    </tbody>
+                </table>
             </div>
+        </div>
 
-            <div class="line">行政审批局反馈</div>
-            <div class="row cl">
-                <label class="form-label col-xs-4 col-sm-2"><span>反馈内容:</span></label>
-                <div class="formControls col-xs-8 col-sm-9">
-                    <div th:utext="${data.gs_feedback}">
-                    </div>
+        <div class="line">行政审批局反馈</div>
+        <div class="row cl">
+            <label class="form-label col-xs-4 col-sm-2"><span>反馈内容:</span></label>
+            <div class="formControls col-xs-8 col-sm-9">
+                <div th:utext="${data.gs_feedback}">
                 </div>
             </div>
-            <div class="row cl">
-                <label class="form-label col-xs-4 col-sm-2"><span>文件:</span></label>
-                <div class="formControls col-xs-8 col-sm-9">
-                    <div class="uploader-list">
-                        <th:block
-                                th:unless="${data.gs_feedback_file==null || data.gs_feedback_file.file_url== null}">
-                            <a style="color: #0c80fe;" th:href="${fileUrl} + ${data.gs_feedback_file.file_url}"
-                               target="_blank">[[${data.gs_feedback_file.file_name}]]</a>
-                        </th:block>
-                    </div>
+        </div>
+        <div class="row cl">
+            <label class="form-label col-xs-4 col-sm-2"><span>文件:</span></label>
+            <div class="formControls col-xs-8 col-sm-9">
+                <div class="uploader-list">
+                    <th:block
+                            th:unless="${data.gs_feedback_file==null || data.gs_feedback_file.file_url== null}">
+                        <a style="color: #0c80fe;" th:href="${fileUrl} + ${data.gs_feedback_file.file_url}"
+                           target="_blank">[[${data.gs_feedback_file.file_name}]]</a>
+                    </th:block>
                 </div>
             </div>
+        </div>
 
         <div class="row cl text-c" style="background-color: white">
             <div class="col-xs-8 col-sm-9 col-xs-offset-4 col-sm-offset-2">