You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

239 lines
7.5 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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");
}
}