|
|
package com.dsideal.QingLong.Zjcq.Controller;
|
|
|
|
|
|
import com.aspose.words.*;
|
|
|
import com.aspose.words.Font;
|
|
|
import com.dsideal.QingLong.Interceptor.EmptyInterface;
|
|
|
import com.dsideal.QingLong.Interceptor.IsLoginInterface;
|
|
|
import com.dsideal.QingLong.Interceptor.IsNumericInterface;
|
|
|
import com.dsideal.QingLong.Util.CommonUtil;
|
|
|
import com.dsideal.QingLong.Zjcq.Model.ZjcqModel;
|
|
|
import com.jfinal.aop.Before;
|
|
|
import com.jfinal.core.Controller;
|
|
|
import com.jfinal.ext.interceptor.GET;
|
|
|
import com.jfinal.ext.interceptor.POST;
|
|
|
import com.jfinal.kit.Kv;
|
|
|
import com.jfinal.kit.PropKit;
|
|
|
import com.jfinal.plugin.activerecord.Page;
|
|
|
import com.jfinal.plugin.activerecord.Record;
|
|
|
|
|
|
import java.awt.*;
|
|
|
import java.io.File;
|
|
|
import java.net.URISyntaxException;
|
|
|
import java.sql.Date;
|
|
|
import java.util.List;
|
|
|
|
|
|
public class ZjcqController extends Controller {
|
|
|
|
|
|
private final ZjcqModel zm = new ZjcqModel();
|
|
|
|
|
|
/**
|
|
|
* 功能:获取类型列表
|
|
|
*/
|
|
|
@Before({GET.class})
|
|
|
@IsLoginInterface({})
|
|
|
public void getLxList() {
|
|
|
List<Record> list = zm.getLxList();
|
|
|
renderJson(list);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 功能:创建一次验收(创建抽取一次专家的任务)
|
|
|
*
|
|
|
* @param ys_name 验收名称
|
|
|
* @param ys_date 验收日期
|
|
|
*/
|
|
|
@Before({POST.class})
|
|
|
@IsLoginInterface({})
|
|
|
public void createYs(String ys_name, Date ys_date) {
|
|
|
zm.createYs(ys_name, ys_date);
|
|
|
Kv kv = Kv.create();
|
|
|
kv.set("success", true);
|
|
|
kv.set("message", "保存成功!");
|
|
|
renderJson(kv);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 功能:抽取专家
|
|
|
*
|
|
|
* @param lx_ids 分类
|
|
|
*/
|
|
|
@Before({GET.class})
|
|
|
@IsLoginInterface({})
|
|
|
@EmptyInterface({"lx_ids", "ly_ids"})
|
|
|
public void getZjcqList(String lx_ids, String ly_ids) {
|
|
|
List<Record> list = zm.getZjcqList(lx_ids, ly_ids);
|
|
|
renderJson(list);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 功能:保存抽取专家
|
|
|
*
|
|
|
* @param ys_id
|
|
|
* @param person_ids
|
|
|
*/
|
|
|
@IsLoginInterface({})
|
|
|
@IsNumericInterface({"ys_id"})
|
|
|
@EmptyInterface({"person_ids"})
|
|
|
public void saveZjcq(int ys_id, String person_ids) {
|
|
|
zm.saveZjcq(ys_id, person_ids);
|
|
|
Kv kv = Kv.create();
|
|
|
kv.set("success", true);
|
|
|
kv.set("message", "保存成功!");
|
|
|
renderJson(kv);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 功能:抽取任务列表
|
|
|
*
|
|
|
* @param page 第几页
|
|
|
* @param limit 每页多少个
|
|
|
*/
|
|
|
@Before({GET.class})
|
|
|
@IsLoginInterface({})
|
|
|
public void listZjcq(int page, int limit) {
|
|
|
Page<Record> list = zm.listZjcq(page, limit);
|
|
|
renderJson(CommonUtil.renderJsonForLayUI(list));
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 功能:删除验收
|
|
|
*
|
|
|
* @param ys_id
|
|
|
*/
|
|
|
@Before({POST.class})
|
|
|
@IsLoginInterface({})
|
|
|
public void delYs(int ys_id) {
|
|
|
zm.delYs(ys_id);
|
|
|
Kv kv = Kv.create();
|
|
|
kv.set("success", true);
|
|
|
kv.set("message", "保存成功!");
|
|
|
renderJson(kv);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 功能:获取某次验收的专家列表
|
|
|
*
|
|
|
* @param ys_id
|
|
|
*/
|
|
|
@Before({GET.class})
|
|
|
@IsLoginInterface({})
|
|
|
public void getYsZhuanJiaList(int ys_id) {
|
|
|
List<Record> list = zm.getYsZhuanJiaList(ys_id);
|
|
|
renderJson(CommonUtil.renderJsonForLayUI(list));
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 功能:导入Docx
|
|
|
*
|
|
|
* @param ys_id 验收ID
|
|
|
*/
|
|
|
@Before({GET.class})
|
|
|
@IsLoginInterface({})
|
|
|
public void exportDocx(int ys_id) throws Exception {
|
|
|
//验收基本信息
|
|
|
Record record = zm.getYs(ys_id);
|
|
|
String ys_name = record.getStr("ys_name");
|
|
|
String ys_date = record.getStr("ys_date");
|
|
|
int person_count = record.getInt("person_count");
|
|
|
//抽取专家信息
|
|
|
List<Record> list = zm.getYsZhuanJiaList(ys_id);
|
|
|
|
|
|
|
|
|
//创建新文档
|
|
|
Document doc = new Document();
|
|
|
DocumentBuilder builder = new DocumentBuilder(doc);
|
|
|
|
|
|
Font font = builder.getFont();
|
|
|
font.setSize(20);
|
|
|
//字体加粗
|
|
|
font.setBold(true);
|
|
|
//设置字体
|
|
|
font.setName("黑体");
|
|
|
//插入文本行信息
|
|
|
builder.moveToDocumentEnd();
|
|
|
// 设置段落格式为居中对齐
|
|
|
builder.getParagraphFormat().setAlignment(ParagraphAlignment.CENTER);
|
|
|
// 插入并居中文本
|
|
|
builder.write(ys_name + "评审专家抽取结果\n" + "\n抽取时间:" + ys_date + "\n抽取专家数量:" + person_count + "\n");
|
|
|
|
|
|
Table table = builder.startTable();
|
|
|
builder.insertCell();
|
|
|
table.setLeftIndent(3.0);//左边距
|
|
|
|
|
|
//行高
|
|
|
builder.getRowFormat().setHeight(20.0);
|
|
|
builder.getRowFormat().setHeightRule(HeightRule.AT_LEAST);
|
|
|
//表格表头颜色背景
|
|
|
builder.getCellFormat().getShading().setBackgroundPatternColor(new Color((198), (217), (241)));
|
|
|
builder.getParagraphFormat().setAlignment(ParagraphAlignment.CENTER);
|
|
|
builder.getFont().setSize(14.0);
|
|
|
builder.getFont().setName("微软雅黑");
|
|
|
builder.getFont().setBold(true);
|
|
|
|
|
|
builder.getCellFormat().setWidth(100.0);
|
|
|
builder.write("序号");
|
|
|
|
|
|
builder.insertCell();
|
|
|
builder.getCellFormat().setWidth(100.0);
|
|
|
builder.write("类型");
|
|
|
|
|
|
builder.insertCell();
|
|
|
builder.getCellFormat().setWidth(300.0);
|
|
|
builder.write("单位");
|
|
|
|
|
|
builder.insertCell();
|
|
|
builder.getCellFormat().setWidth(200.0);
|
|
|
builder.write("姓名");
|
|
|
builder.endRow();
|
|
|
|
|
|
builder.getCellFormat().getShading().setBackgroundPatternColor(Color.WHITE);
|
|
|
builder.getCellFormat().setWidth(100.0);
|
|
|
builder.getCellFormat().setVerticalAlignment(CellVerticalAlignment.CENTER);
|
|
|
|
|
|
builder.getRowFormat().setHeight(30.0);
|
|
|
builder.getRowFormat().setHeightRule(HeightRule.AUTO);
|
|
|
|
|
|
builder.getFont().setSize(11.0);
|
|
|
builder.getFont().setName("微软雅黑");
|
|
|
builder.getFont().setBold(false);
|
|
|
for (int i = 0; i < list.size(); i++) {
|
|
|
builder.getRowFormat().setHeight(30.0);
|
|
|
Record r = list.get(i);
|
|
|
builder.insertCell();
|
|
|
builder.getCellFormat().setWidth(100.0);
|
|
|
builder.write(String.valueOf(i + 1));
|
|
|
|
|
|
builder.insertCell();
|
|
|
builder.getCellFormat().setWidth(100.0);
|
|
|
builder.write(r.getStr("lx_name"));
|
|
|
|
|
|
builder.insertCell();
|
|
|
builder.getCellFormat().setWidth(300.0);
|
|
|
builder.write(r.getStr("dw"));
|
|
|
|
|
|
builder.insertCell();
|
|
|
builder.getCellFormat().setWidth(200.0);
|
|
|
builder.write(r.getStr("xm"));
|
|
|
|
|
|
builder.endRow();
|
|
|
}
|
|
|
builder.endTable();
|
|
|
|
|
|
// 遍历文档中的所有节(sections)设置页面边距
|
|
|
for (Section sect : doc.getSections()) {
|
|
|
// 获取页边距
|
|
|
PageSetup pageSetup = sect.getPageSetup();
|
|
|
|
|
|
// 设置页边距,这里设置为1英寸,你可以根据需要调整数值
|
|
|
pageSetup.setLeftMargin(50);
|
|
|
pageSetup.setRightMargin(50);
|
|
|
pageSetup.setTopMargin(50);
|
|
|
pageSetup.setBottomMargin(50);
|
|
|
}
|
|
|
//保存文档
|
|
|
File tempFile = File.createTempFile("temp", ".docx");
|
|
|
doc.save(tempFile.getAbsolutePath());
|
|
|
renderFile(tempFile, "【" + ys_date + "】" + ys_name + "专家抽取结果.docx");
|
|
|
}
|
|
|
}
|