前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >DOC文件中法规对标系统完成

DOC文件中法规对标系统完成

作者头像
hotqin888
发布2018-09-11 14:42:27
2900
发布2018-09-11 14:42:27
举报
文章被收录于专栏:hotqin888的专栏

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://cloud.tencent.com/developer/article/1334363

我们工程设计报告中,每个章节很多法律法规规程规范,如何快捷地核对这些文件的有效性,即法律的发布日期,执行日期,规范的编号和执行日期等。用这个系统就简单了。

考进去,输出的就是你想要的有效的编号了。

代码语言:javascript
复制
package controllers

import (
	"github.com/astaxie/beego"
	"github.com/astaxie/beego/logs"
	"github.com/tealeg/xlsx"
	"quick/models"
	"regexp"
	"strconv"
	"strings"
	"time"
)

type LegislationController struct {
	beego.Controller
}

type Legislationmore struct {
	Id            int64
	Number        string //`orm:"unique"`
	Title         string //原法规名称
	LibraryNumber string //规范有效版本库中的编号
	LibraryTitle  string
	Execute       string //执行时间
}

func (c *LegislationController) Index() { //
	c.Data["IsLegislation"] = true //
	c.TplName = "legislation.tpl"
	c.Data["IsLogin"] = checkAccount(c.Ctx)
	uname, _, _ := checkRoleread(c.Ctx) //login里的
	// rolename, _ = strconv.Atoi(role)
	c.Data["Uname"] = uname
	legislations, err := models.GetAllLegislations() //这里传入空字符串
	if err != nil {
		beego.Error(err.Error)
	} else {
		c.Data["Legislations"] = legislations
		c.Data["Length"] = len(legislations) //得到总记录数
	}

	logs := logs.NewLogger(1000)
	logs.SetLogger("file", `{"filename":"log/test.log"}`)
	logs.EnableFuncCallDepth(true)
	logs.Info(c.Ctx.Input.IP())
	logs.Close()
}

//搜索规范或者图集的名称或编号
func (c *LegislationController) Checklist() { //checklist用的是post方法
	name := c.Input().Get("name")
	beego.Info(name)
	array := strings.Split(name, "\n")
	aa := make([]Legislationmore, len(array))
	for i, v := range array {
		// beego.Info(v)
		//1、正则取到名称
		reg := regexp.MustCompile(`[《].*[》]`) //(`^\\<.*\\>`)
		text2 := reg.FindAllString(v, -1)
		text3 := SubString(text2[0], 1, len([]rune(text2[0]))-2)
		//2、根据名称搜索标准版本库,取得名称和版本号
		library, err := models.SearchLiabraryName(text3)
		if err != nil {
			beego.Error(err.Error)
		}
		text4 := strconv.Itoa(i + 1)
		Id1, _ := strconv.ParseInt(text4, 10, 64)
		aa[i].Id = Id1

		if library != nil {
			//3、构造struct
			aa[i].LibraryNumber = library.LiNumber //规范有效版本库中的完整编号
			aa[i].LibraryTitle = library.Title
			aa[i].Execute = library.Execute //执行日期
		} else {
			// aa[i].Number = library.Number //`orm:"unique"`
			// aa[i].Title = text3
			aa[i].LibraryNumber = "No LibraryNumber Match Find!"
			aa[i].LibraryTitle = text3
			aa[i].Execute = ""
		}
	}
	c.Data["IsLegislation"] = true
	c.TplName = "legislation.tpl"
	c.Data["IsLogin"] = checkAccount(c.Ctx)
	uname, _, _ := checkRoleread(c.Ctx) //login里的
	c.Data["Uname"] = uname
	
	c.Data["json"] = aa //这里必须要是c.Data["json"],其他c.Data["Data"]不行
	c.ServeJSON()

	logs := logs.NewLogger(1000)
	logs.SetLogger("file", `{"filename":"log/test.log"}`)
	logs.EnableFuncCallDepth(true)
	logs.Info(c.Ctx.Input.IP() + " " + "SearchLegislationsName:" + name)
	logs.Close()
}
代码语言:javascript
复制
//由法规名称精确搜索有效版本库
func SearchLiabraryName(Name string) (*Library, error) {
	o := orm.NewOrm()
	library := new(Library)
	qs := o.QueryTable("library")
	err := qs.Filter("title", Name).One(library)
	if err != nil {
		return nil, err
	}
	return library, err
}

没想到大半天完成了这个系统。beego开发效率还是有点高啊。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016年08月06日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档