作业爬虫
This commit is contained in:
parent
277fc87699
commit
780daadbfa
|
|
@ -53,20 +53,31 @@ def makeqr_area(data):
|
||||||
img.save(filepath)
|
img.save(filepath)
|
||||||
return filepath
|
return filepath
|
||||||
|
|
||||||
def drquestions(companyid,path):
|
def drquestions(companyid,path,userid):
|
||||||
wb = load_workbook(path)
|
wb = load_workbook(path)
|
||||||
sheet = wb.worksheets[0]
|
sheet = wb.worksheets[0]
|
||||||
i = 4
|
i = 4
|
||||||
|
user = User.objects.get(userid=userid)
|
||||||
|
qlist = ['A','B','C','D','E','F']
|
||||||
|
leveldict = {'低':1,'中':2,'高':3}
|
||||||
|
notinlist = []
|
||||||
while sheet['c'+str(i)].value!=None:
|
while sheet['c'+str(i)].value!=None:
|
||||||
type = sheet['a'+str(i)].value.replace(' ', '')
|
type = sheet['a'+str(i)].value.replace(' ', '')
|
||||||
cate = sheet['b'+str(i)].value.replace(' ', '')
|
cate = sheet['b'+str(i)].value.replace(' ', '')
|
||||||
title = sheet['c'+str(i)].value
|
title = sheet['c'+str(i)].value
|
||||||
answerA = sheet['d'+str(i)].value
|
answer = {}
|
||||||
answerB = sheet['e'+str(i)].value
|
if sheet['d'+str(i)].value:
|
||||||
answerC = sheet['f'+str(i)].value
|
answer['A'] = sheet['d'+str(i)].value
|
||||||
answerD = sheet['g'+str(i)].value
|
if sheet['e'+str(i)].value:
|
||||||
answerE = sheet['h'+str(i)].value
|
answer['B'] = sheet['e'+str(i)].value
|
||||||
answerF = sheet['i'+str(i)].value
|
if sheet['f'+str(i)].value:
|
||||||
|
answer['C'] = sheet['f'+str(i)].value
|
||||||
|
if sheet['g'+str(i)].value:
|
||||||
|
answer['D'] = sheet['g'+str(i)].value
|
||||||
|
if sheet['h'+str(i)].value:
|
||||||
|
answer['E'] = sheet['h'+str(i)].value
|
||||||
|
if sheet['i'+str(i)].value:
|
||||||
|
answer['F'] = sheet['i'+str(i)].value
|
||||||
right = sheet['j'+str(i)].value.replace(' ', '')
|
right = sheet['j'+str(i)].value.replace(' ', '')
|
||||||
resolution = sheet['k'+str(i)].value
|
resolution = sheet['k'+str(i)].value
|
||||||
level = sheet['l'+str(i)].value
|
level = sheet['l'+str(i)].value
|
||||||
|
|
@ -78,19 +89,74 @@ def drquestions(companyid,path):
|
||||||
if objs.exists():
|
if objs.exists():
|
||||||
cateobj = objs[0]
|
cateobj = objs[0]
|
||||||
else:
|
else:
|
||||||
cateobj = Questioncat.objects.create(usecomp__partid=companyid,name=cate)
|
cateobj = Questioncat.objects.create(usecomp=Partment.objects.get(partid=companyid),name=cate)
|
||||||
|
print(cateobj)
|
||||||
if type == '单选':
|
if type == '单选':
|
||||||
obj = Question()
|
if Question.objects.filter(type=1,title=title,right=right,deletemark=1).exists():
|
||||||
obj.type = 1
|
notinlist.append(i)
|
||||||
obj.cate = cateobj
|
else:
|
||||||
obj.title = title
|
if right in ['A','B','C','D','E','F']:
|
||||||
obj.answerA = answerA
|
obj = Question()
|
||||||
obj.answerB = answerB
|
obj.type = 1
|
||||||
obj.answerC = answerC
|
obj.questioncat = cateobj
|
||||||
obj.answerD = answerD
|
obj.title = title
|
||||||
obj.answerE = answerE
|
obj.answer=answer
|
||||||
obj.answerF = answerF
|
obj.right = right
|
||||||
pass
|
obj.resolution = resolution if resolution else ''
|
||||||
|
if level in leveldict:
|
||||||
|
obj.level = leveldict[level]
|
||||||
|
else:
|
||||||
|
obj.level = 1
|
||||||
|
obj.usecoms = ','+companyid+','
|
||||||
|
obj.createuser = user
|
||||||
|
obj.save()
|
||||||
|
elif type == '多选':
|
||||||
|
right = list(right)
|
||||||
|
if Question.objects.filter(type=2,title=title,right=right,deletemark=1).exists():
|
||||||
|
notinlist.append(i)
|
||||||
|
else:
|
||||||
|
if [False for c in right if c not in qlist]:
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
obj = Question()
|
||||||
|
obj.type = 2
|
||||||
|
obj.questioncat = cateobj
|
||||||
|
obj.title = title
|
||||||
|
obj.answer=answer
|
||||||
|
obj.right = right
|
||||||
|
obj.resolution = resolution if resolution else ''
|
||||||
|
if level in leveldict:
|
||||||
|
obj.level = leveldict[level]
|
||||||
|
else:
|
||||||
|
obj.level = 1
|
||||||
|
obj.usecoms = ','+companyid+','
|
||||||
|
obj.createuser = user
|
||||||
|
obj.save()
|
||||||
|
elif type == '判断':
|
||||||
|
if right == 'A' or right == '对':
|
||||||
|
right = 'A'
|
||||||
|
else:
|
||||||
|
right = 'B'
|
||||||
|
if Question.objects.filter(type=3,title=title,right=right,deletemark=1).exists():
|
||||||
|
notinlist.append(i)
|
||||||
|
else:
|
||||||
|
obj = Question()
|
||||||
|
obj.type = 3
|
||||||
|
obj.questioncat = cateobj
|
||||||
|
obj.title = title
|
||||||
|
obj.answer={'A':'对','B':'错'}
|
||||||
|
obj.right = right
|
||||||
|
obj.resolution = resolution if resolution else ''
|
||||||
|
if level in leveldict:
|
||||||
|
obj.level = leveldict[level]
|
||||||
|
else:
|
||||||
|
obj.level = 1
|
||||||
|
obj.usecoms = ','+companyid+','
|
||||||
|
obj.createuser = user
|
||||||
|
obj.save()
|
||||||
|
i = i +1
|
||||||
|
print(notinlist)
|
||||||
|
return notinlist
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,21 +1,24 @@
|
||||||
import requests
|
import requests
|
||||||
from urllib import parse
|
from urllib import parse
|
||||||
from lxml import etree
|
from lxml import etree
|
||||||
'''headers = {
|
headers = {
|
||||||
'Host': 'cx.saws.org.cn',
|
'Host': 'cx.saws.org.cn',
|
||||||
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0',
|
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0',
|
||||||
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
|
'Accept': 'text/plain, */*; q=0.01',
|
||||||
'Accept-Language': 'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
|
'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
|
||||||
'Accept-Encoding': 'gzip, deflate',
|
'Accept-Encoding': 'gzip, deflate',
|
||||||
|
'Content-Type':'application/x-www-form-urlencoded',
|
||||||
'Connection': 'keep-alive',
|
'Connection': 'keep-alive',
|
||||||
'Cache-Control': 'max-age=0, no-cache',}'''
|
'Referer':'http://cx.saws.org.cn/cms/html/certQuery/certQuery.do?method=getCertQueryIndex&ref=ch',
|
||||||
|
'X-Requested-With':'XMLHttpRequest'}
|
||||||
|
|
||||||
|
|
||||||
def getTzzs(certnum,stu_name):#特种证书(身份证号,姓名,均是字符)
|
def getTzzs(certnum,stu_name):#特种证书(身份证号,姓名,均是字符)
|
||||||
certtype_code='720'
|
certtype_code='720'
|
||||||
stu_name=parse.quote(parse.quote(stu_name))
|
stu_name=parse.quote(parse.quote(stu_name))
|
||||||
url = "http://cx.saws.org.cn/cms/html/certQuery/certQuery.do?method=getCertQueryResult&ref=ch&certtype_code="+certtype_code+"&certnum="+certnum+"&stu_name="+stu_name
|
sessionId = eval(requests.post('http://cx.saws.org.cn/cms/html/certQuery/certQuery.do?method=getServerTime',headers=headers).text)['time']
|
||||||
data = requests.get(url).text
|
url = "http://cx.saws.org.cn/cms/html/certQuery/certQuery.do?method=getCertQueryResult&ref=ch&certtype_code="+certtype_code+"&certnum="+certnum+"&stu_name="+stu_name+'&passcode=1234'+'&sessionId='+sessionId
|
||||||
|
data = requests.get(url,headers=headers).text
|
||||||
tree = etree.HTML(data)
|
tree = etree.HTML(data)
|
||||||
e1 = tree.xpath("//th[text()='姓名']/following-sibling::td[1]/text()")
|
e1 = tree.xpath("//th[text()='姓名']/following-sibling::td[1]/text()")
|
||||||
e2 = tree.xpath("//th[text()='性别']/following-sibling::td[1]/text()")
|
e2 = tree.xpath("//th[text()='性别']/following-sibling::td[1]/text()")
|
||||||
|
|
@ -35,19 +38,25 @@ def getTzzs(certnum,stu_name):#特种证书(身份证号,姓名,均是字符)
|
||||||
def getAqzs(certnum,stu_name):#安全证书(身份证号,姓名,均是字符)
|
def getAqzs(certnum,stu_name):#安全证书(身份证号,姓名,均是字符)
|
||||||
certtype_code='720'
|
certtype_code='720'
|
||||||
stu_name=parse.quote(parse.quote(stu_name))
|
stu_name=parse.quote(parse.quote(stu_name))
|
||||||
url = "http://cx.saws.org.cn/cms/html/certQuery/certQuery.do?method=getCertQueryResult2&ref=ch&certtype_code="+certtype_code+"&certnum="+certnum+"&stu_name="+stu_name
|
sessionId = eval(requests.post('http://cx.saws.org.cn/cms/html/certQuery/certQuery.do?method=getServerTime',headers=headers).text)['time']
|
||||||
data = requests.get(url).text
|
url = "http://cx.saws.org.cn/cms/html/certQuery/certQuery.do?method=getCertQueryResult2&ref=ch&certtype_code="+certtype_code+"&certnum="+certnum+"&stu_name="+stu_name+'&passcode=1234'+'&sessionId='+sessionId
|
||||||
|
data = requests.get(url,headers=headers).text
|
||||||
tree = etree.HTML(data)
|
tree = etree.HTML(data)
|
||||||
print(data)
|
|
||||||
e1 = tree.xpath("//th[text()='姓名']/following-sibling::td[1]/text()")
|
e1 = tree.xpath("//th[text()='姓名']/following-sibling::td[1]/text()")
|
||||||
e2 = tree.xpath("//th[text()='性别']/following-sibling::td[1]/text()")
|
e2 = tree.xpath("//th[text()='性别']/following-sibling::td[1]/text()")
|
||||||
e3 = tree.xpath("//th[text()='资格类型']/following-sibling::td[1]/text()")
|
e3 = tree.xpath("//th[text()='资格类型']/following-sibling::td[1]/text()")
|
||||||
e4 = tree.xpath("//th[text()='单位类型']/following-sibling::td[1]/text()")
|
e4 = tree.xpath("//th[text()='单位类型']/following-sibling::td[1]/text()")
|
||||||
e5 = tree.xpath("//th[text()='发证机关']/following-sibling::td[1]/text()")
|
e5 = tree.xpath("//th[text()='发证机关']/following-sibling::td[1]")
|
||||||
|
e6 = tree.xpath("//th[text()='初领日期']/following-sibling::td[1]/text()")
|
||||||
e7 = tree.xpath("//th[text()='应复审日期']/following-sibling::td[1]/text()")
|
e7 = tree.xpath("//th[text()='应复审日期']/following-sibling::td[1]/text()")
|
||||||
e8 = tree.xpath("//th[text()='有效期开始时间']/following-sibling::td[1]/text()")
|
e8 = tree.xpath("//th[text()='有效期开始时间']/following-sibling::td[1]/text()")
|
||||||
e9 = tree.xpath("//th[text()='有效期结束时间']/following-sibling::td[1]/text()")
|
e9 = tree.xpath("//th[text()='有效期结束时间']/following-sibling::td[1]/text()")
|
||||||
cdata = []
|
cdata = []
|
||||||
|
x5=[]
|
||||||
|
for i in e5:
|
||||||
|
x5.append(i.xpath("string(.)"))
|
||||||
|
print(e6)
|
||||||
for i in range(len(e1)):
|
for i in range(len(e1)):
|
||||||
cdata.append({'姓名':e1[i],'性别':e2[i],'资格类型':e3[i],'单位类型':e4[i],'发证机关':e5[i],'应复审日期':e7[i].strip(),'有效期开始时间':e8[i].strip(),'有效期结束时间':e9[i].strip(),'url':url})
|
cdata.append({'姓名':e1[i],'性别':e2[i],'资格类型':e3[i],'单位类型':e4[i],'发证机关':x5[i],'应复审日期':e7[i].strip(),'有效期开始时间':e8[i].strip(),'有效期结束时间':e9[i].strip(),'初领日期':e6[i].strip(),'url':url})
|
||||||
|
|
||||||
return cdata
|
return cdata
|
||||||
|
|
@ -237,4 +237,37 @@
|
||||||
$.messager.alert('提示', '请选择一道题目!');
|
$.messager.alert('提示', '请选择一道题目!');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
document.getElementById('drfile').onchange = function () {
|
||||||
|
var fileObj = this.files[0];
|
||||||
|
var url = 'drapi?a=question'
|
||||||
|
var form = new FormData();
|
||||||
|
form.append("upfile", fileObj); // 文件对象
|
||||||
|
xhr = new XMLHttpRequest(); // XMLHttpRequest 对象
|
||||||
|
xhr.open("post", url, true); //post方式,url为服务器请求地址,true 该参数规定请求是否异步处理。
|
||||||
|
xhr.send(form)
|
||||||
|
$('#drtmdg').dialog('close')
|
||||||
|
loading('导入中。。');
|
||||||
|
xhr.onload = function (evt) { //服务断接收完文件返回的结果
|
||||||
|
var data = JSON.parse(evt.target.responseText);
|
||||||
|
removeLoading();
|
||||||
|
if (data.code == 1) {
|
||||||
|
$.messager.alert('提示', '上传成功!', 'info', function () {
|
||||||
|
$("#main").panel({ href: 'html/question', title: '题库管理' });
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else if (data.code == 2) {
|
||||||
|
msg = ''
|
||||||
|
msg += '因重复部分未成功'
|
||||||
|
$.messager.alert('提示', msg, 'info', function () {
|
||||||
|
$("#main").panel({ href: 'html/question', title: '题库管理' });
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$.messager.alert('提示', '失败!文件内容有误');
|
||||||
|
}
|
||||||
|
document.getElementById('drfile').value = '';
|
||||||
|
|
||||||
|
}; //请求完成
|
||||||
|
xhr.onerror = function (evt) { $.messager.alert('提示', '失败!文件内容有误'); document.getElementById('drfile').value = ''; }; //请求失败
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
@ -213,12 +213,12 @@
|
||||||
xhr.onload = function (evt) { //服务断接收完文件返回的结果
|
xhr.onload = function (evt) { //服务断接收完文件返回的结果
|
||||||
var data = JSON.parse(evt.target.responseText);
|
var data = JSON.parse(evt.target.responseText);
|
||||||
removeLoading();
|
removeLoading();
|
||||||
if (data.code = 1) {
|
if (data.code == 1) {
|
||||||
$.messager.alert('提示', '上传成功!', 'info', function () {
|
$.messager.alert('提示', '上传成功!', 'info', function () {
|
||||||
$("#main").panel({ href: 'html/risk', title: '风险辨识' });
|
$("#main").panel({ href: 'html/risk', title: '风险辨识' });
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
else if (data.code = 2) {
|
else if (data.code == 2) {
|
||||||
msg = ''
|
msg = ''
|
||||||
msg += '因重复未成功,其余成功!'
|
msg += '因重复未成功,其余成功!'
|
||||||
$.messager.alert('提示', msg, 'info', function () {
|
$.messager.alert('提示', msg, 'info', function () {
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,186 @@
|
||||||
|
<div style="width:100%;height:5%;">
|
||||||
|
<div style="margin-left:10px;margin-top:5px">
|
||||||
|
<form id="yhbztf">
|
||||||
|
<label>起始时间</label><input id="sqssj" name="qssj" class="easyui-datebox" style="width:110px;height:22px" />
|
||||||
|
<label>结束时间</label><input id="sjssj" name="jssj" class="easyui-datebox" style="width:110px;height:22px" />
|
||||||
|
<label>发现部门</label><input id="sfxbm" name="fxbm" style="width:200px;height:22px" />
|
||||||
|
<a onclick="yhbztsearch()" class='easyui-linkbutton' iconCls='fa-search' plain=true>查询</a></form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div style="width:100%;height:500px;padding: 20px">
|
||||||
|
<div style="width:33%;height:80%;float: left;margin-top:20px;" align=center>
|
||||||
|
<div id="yhlbt" style="width:80%;height:100%;">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div style="width:33%;height:80%;float: left;margin-top:20px" align=center>
|
||||||
|
<div id="yhpgt" style="width:80%;height:100%;">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div style="width:33%;height:80%;float: left;margin-top:20px" align=center>
|
||||||
|
<div id="yhztt" style="width:80%;height:100%;">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="yhqst" style="width:100%;height:400px;padding: 20px">
|
||||||
|
</div>
|
||||||
|
<div style="width: 60%; margin: 0px auto; ">
|
||||||
|
<table name="" id="fxrpmtable" class='easyui-datagrid' title="隐患发现人排名" data-options="
|
||||||
|
rownumbers:true,
|
||||||
|
singleSelect:true,
|
||||||
|
striped: true,
|
||||||
|
method:'get',
|
||||||
|
url: 'fxhandle?a=yhfxpm',
|
||||||
|
toolbar:'#fxrpmbar'" style="height:400px">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th data-options="field:'fxr__userid',hidden:true">用户ID</th>
|
||||||
|
<th data-options="field:'fxr__name',align:'right'" width="30%">姓名</th>
|
||||||
|
<th data-options="field:'fxbm__partname',align:'right'" width="40%">所属部门</th>
|
||||||
|
<th data-options="field:'number',align:'right'" width="20%">填报隐患数</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
</table>
|
||||||
|
<div id='fxrpmbar'>
|
||||||
|
<form id="fxrpms">
|
||||||
|
<a onclick="fxrpmsearch()" class='easyui-linkbutton' iconCls='fa-search' plain=true>查询</a>
|
||||||
|
<a onclick="fxrpmexport()" class='easyui-linkbutton' iconCls='fa-upload' plain=true>导出</a>
|
||||||
|
<div>
|
||||||
|
<label>发现部门</label><input id="sfxbm2" name="fxbm" style="width:180px;height:22px" />
|
||||||
|
<label>起始时间</label><input id="sqssj" name="qssj" class="easyui-datebox" style="width:80px;height:22px" />
|
||||||
|
<label>结束时间</label><input id="sjssj" name="jssj" class="easyui-datebox" style="width:80px;height:22px" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<div style="height:20px"></div>
|
||||||
|
<table name="" id="zgrpmtable" class='easyui-datagrid' title="隐患整改人排名" data-options="
|
||||||
|
rownumbers:true,
|
||||||
|
singleSelect:true,
|
||||||
|
striped: true,
|
||||||
|
method:'get',
|
||||||
|
url: 'fxhandle?a=yhzgpm',
|
||||||
|
toolbar:'#zgrpmbar'" style="height:400px">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th data-options="field:'zgr__userid',hidden:true">用户ID</th>
|
||||||
|
<th data-options="field:'zgr__name',align:'right'" width="30%">姓名</th>
|
||||||
|
<th data-options="field:'zgbm__partname',align:'right'" width="40%">所属部门</th>
|
||||||
|
<th data-options="field:'number',align:'right'" width="20%">整改隐患数</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<div id='zgrpmbar'>
|
||||||
|
<form id="zgrpms">
|
||||||
|
<a onclick="zgrpmsearch()" class='easyui-linkbutton' iconCls='fa-search' plain=true>查询</a>
|
||||||
|
<a onclick="zgrpmexport()" class='easyui-linkbutton' iconCls='fa-upload' plain=true>导出</a>
|
||||||
|
<div>
|
||||||
|
<label>整改人</label><input class="easyui-textbox" name="zgr" style="width:80px;height:22px" />
|
||||||
|
<label>起始时间</label><input id="sqssj" name="qssj" class="easyui-datebox" style="width:80px;height:22px" />
|
||||||
|
<label>结束时间</label><input id="sjssj" name="jssj" class="easyui-datebox" style="width:80px;height:22px" />
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script>
|
||||||
|
$("#sfxbm,#sfxbm2").combotree({
|
||||||
|
url: 'parthandle?a=tree',
|
||||||
|
editable: false,
|
||||||
|
loadFilter: function (rows) {
|
||||||
|
return convert(rows);
|
||||||
|
},
|
||||||
|
formatter: function (node) {
|
||||||
|
var s = node.text;
|
||||||
|
if (node.children) {
|
||||||
|
s += ' <span style=\'color:blue\'>(' + node.children.length + ')</span>';
|
||||||
|
}
|
||||||
|
return s;
|
||||||
|
},
|
||||||
|
onSelect: function (node) {
|
||||||
|
$('#sfxr').combobox({
|
||||||
|
url: 'getuser?partid=' + node.id + '&a=combobox',
|
||||||
|
editable: false,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
function fxrpmsearch() {
|
||||||
|
var querydata = $('#fxrpms').serializeJSON();
|
||||||
|
$('#fxrpmtable').datagrid('load', querydata);
|
||||||
|
}
|
||||||
|
function zgrpmsearch() {
|
||||||
|
var querydata = $('#zgrpms').serializeJSON();
|
||||||
|
$('#zgrpmtable').datagrid('load', querydata);
|
||||||
|
}
|
||||||
|
function yhbztsearch() {
|
||||||
|
var querydata = $('#yhbztf').serializeJSON();
|
||||||
|
bindmap3_o('yhlbt', querydata)
|
||||||
|
bindmap4_o('yhpgt', querydata)
|
||||||
|
bindmap8('yhztt', querydata)
|
||||||
|
bindmap7('yhqst',querydata);
|
||||||
|
}
|
||||||
|
var now = new Date();
|
||||||
|
var year = now.getFullYear();
|
||||||
|
var month = now.getMonth() + 1;
|
||||||
|
bindmap3_o('yhlbt', { 'year': year, 'month': month });
|
||||||
|
bindmap4_o('yhpgt', { 'year': year, 'month': month });
|
||||||
|
bindmap7('yhqst');
|
||||||
|
bindmap8('yhztt');
|
||||||
|
function fxrpmexport() {
|
||||||
|
var data = $('#fxrpmtable').datagrid('getData');
|
||||||
|
var datalist = data.rows;
|
||||||
|
//datalist.unshift({'fxr__userid':'用户ID','fxr__name':'姓名','fxbm__partname':'部门','number':'发现隐患数'})
|
||||||
|
|
||||||
|
|
||||||
|
for (var j = 0, len = datalist.length; j < len; j++) {
|
||||||
|
var dic = datalist[j]
|
||||||
|
for (var key in dic) {
|
||||||
|
dic["姓名"] = dic["fxr__name"]
|
||||||
|
dic["部门"] = dic["fxbm__partname"]
|
||||||
|
dic["发现隐患数"] = dic["number"]
|
||||||
|
delete dic["fxr__userid"];
|
||||||
|
delete dic["fxr__name"]
|
||||||
|
delete dic["fxbm__partname"]
|
||||||
|
delete dic["number"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
JSONToCSVConvertor(JSON.stringify(datalist), "发现排名", true);
|
||||||
|
// var postdata = {
|
||||||
|
// data:JSON.stringify(datalist)
|
||||||
|
// }
|
||||||
|
// $.ajax({
|
||||||
|
// type: "POST",
|
||||||
|
// url: "fxhandle?a=exportexcel",
|
||||||
|
// data: postdata,
|
||||||
|
// success: function (data) {
|
||||||
|
// if (data.code==1) {
|
||||||
|
// downloadurl = 'http://' + window.location.host + '/' + data.downloadurl
|
||||||
|
// window.open(downloadurl);
|
||||||
|
// } else{
|
||||||
|
// $.messager.alert('提示', '导出失败!');
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
}
|
||||||
|
function zgrpmexport() {
|
||||||
|
var data = $('#zgrpmtable').datagrid('getData');
|
||||||
|
var datalist = data.rows;
|
||||||
|
for (var j = 0, len = datalist.length; j < len; j++) {
|
||||||
|
var dic = datalist[j]
|
||||||
|
for (var key in dic) {
|
||||||
|
dic["姓名"] = dic["zgr__name"]
|
||||||
|
dic["部门"] = dic["zgbm__partname"]
|
||||||
|
dic["整改隐患数"] = dic["number"]
|
||||||
|
delete dic["zgr__userid"];
|
||||||
|
delete dic["zgr__name"]
|
||||||
|
delete dic["zgbm__partname"]
|
||||||
|
delete dic["number"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
JSONToCSVConvertor(JSON.stringify(datalist), "整改排名", true);
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
@ -55,9 +55,7 @@
|
||||||
}},
|
}},
|
||||||
{ field: 'yxqkssj', title: '有效期开始时间', width: 80 },
|
{ field: 'yxqkssj', title: '有效期开始时间', width: 80 },
|
||||||
{ field: 'yxqjssj', title: '有效期结束时间', width: 80 },
|
{ field: 'yxqjssj', title: '有效期结束时间', width: 80 },
|
||||||
{ field: 'url', title: '官网地址', width: 80 ,formatter: function(value,row,index){
|
|
||||||
return '<a style="color:blue" target="_blank" href="'+row.url+'">官网地址</a>';
|
|
||||||
} },
|
|
||||||
]]
|
]]
|
||||||
});
|
});
|
||||||
function addaqzs(){
|
function addaqzs(){
|
||||||
|
|
|
||||||
|
|
@ -50,6 +50,12 @@
|
||||||
<label>发现部门</label><input id="sfxbm2" name="fxbm" style="width:180px;height:22px" />
|
<label>发现部门</label><input id="sfxbm2" name="fxbm" style="width:180px;height:22px" />
|
||||||
<label>起始时间</label><input id="sqssj" name="qssj" class="easyui-datebox" style="width:80px;height:22px" />
|
<label>起始时间</label><input id="sqssj" name="qssj" class="easyui-datebox" style="width:80px;height:22px" />
|
||||||
<label>结束时间</label><input id="sjssj" name="jssj" class="easyui-datebox" style="width:80px;height:22px" />
|
<label>结束时间</label><input id="sjssj" name="jssj" class="easyui-datebox" style="width:80px;height:22px" />
|
||||||
|
<label>检查类型</label><input id="sjclx" name="jclx" class="easyui-combobox" style="width:100px;height:22px" data-options="
|
||||||
|
method: 'get',
|
||||||
|
valueField:'value',
|
||||||
|
textField:'text',
|
||||||
|
url:'getdickey?dicclass=14&a=combobox'
|
||||||
|
"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</form>
|
</form>
|
||||||
|
|
|
||||||
|
|
@ -85,6 +85,7 @@ urlpatterns = [
|
||||||
path('html/riskcheck',views.riskcheck),#风险点排查记录
|
path('html/riskcheck',views.riskcheck),#风险点排查记录
|
||||||
path('html/risk/edit/<int:id>/',views.riskedit),
|
path('html/risk/edit/<int:id>/',views.riskedit),
|
||||||
path('html/report/edit',views.reportedit),
|
path('html/report/edit',views.reportedit),
|
||||||
|
path('riskas',views.riskas),
|
||||||
#html页面
|
#html页面
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ from django.db.models import F,Count,Sum
|
||||||
import requests
|
import requests
|
||||||
from .tasks import send_wechatmsgs,send_wechatmsg,yjjs,gettime,yjjs_px,yjjs_yl,updateTzzs,updateAqzs,yjjs_gc,yjjs_ws
|
from .tasks import send_wechatmsgs,send_wechatmsg,yjjs,gettime,yjjs_px,yjjs_yl,updateTzzs,updateAqzs,yjjs_gc,yjjs_ws
|
||||||
from .export import exportdoc,exportxlsx,exportyjdoc,exportsimplexlsx,exportdoc2
|
from .export import exportdoc,exportxlsx,exportyjdoc,exportsimplexlsx,exportdoc2
|
||||||
from .daoru import drusers,drequipments,drrisks,cal_riskact_level,cal_area_risk_level,makeqr,makeqr_train,makeqr_riskact,makeqr_examtest,makeqr_area
|
from .daoru import drusers,drequipments,drrisks,drquestions,cal_riskact_level,cal_area_risk_level,makeqr,makeqr_train,makeqr_riskact,makeqr_examtest,makeqr_area
|
||||||
from django.forms.models import model_to_dict
|
from django.forms.models import model_to_dict
|
||||||
from .safespider import getTzzs,getAqzs
|
from .safespider import getTzzs,getAqzs
|
||||||
from duibiao import calsim
|
from duibiao import calsim
|
||||||
|
|
@ -80,6 +80,8 @@ def transstr(obj,str1,str2):
|
||||||
return keystr
|
return keystr
|
||||||
|
|
||||||
#html页面
|
#html页面
|
||||||
|
def riskas(req):
|
||||||
|
return render(req,'riskas.html')
|
||||||
def reportedit(req):
|
def reportedit(req):
|
||||||
return render(req,'reportedit.html',{'year':req.GET.get('year'),'month':req.GET.get('month'),'part':req.GET.get('part')})
|
return render(req,'reportedit.html',{'year':req.GET.get('year'),'month':req.GET.get('month'),'part':req.GET.get('part')})
|
||||||
def riskedit(req,id):
|
def riskedit(req,id):
|
||||||
|
|
@ -1972,6 +1974,8 @@ def fxhandle(req):
|
||||||
objs = objs.filter(fxsj__gte=req.GET.get('qssj'))
|
objs = objs.filter(fxsj__gte=req.GET.get('qssj'))
|
||||||
if req.GET.get('jssj'):
|
if req.GET.get('jssj'):
|
||||||
objs = objs.filter(fxsj__lte=req.GET.get('jssj'))
|
objs = objs.filter(fxsj__lte=req.GET.get('jssj'))
|
||||||
|
if req.GET.get('jclx'):
|
||||||
|
objs = objs.filter(jclx = Dickey.objects.filter(dickeyid=req.GET.get('jclx')))
|
||||||
# yhnum = yhnum.count()
|
# yhnum = yhnum.count()
|
||||||
# objs.append({'fxr__userid':i.userid,'fxr__name':i.name,'fxbm__partname':i.ubelongpart.partname,'number':yhnum})
|
# objs.append({'fxr__userid':i.userid,'fxr__name':i.name,'fxbm__partname':i.ubelongpart.partname,'number':yhnum})
|
||||||
# objs.sort(key=takeSecond,reverse=True)
|
# objs.sort(key=takeSecond,reverse=True)
|
||||||
|
|
@ -2991,6 +2995,23 @@ def drapi(req):
|
||||||
return JsonResponse({"code":1})
|
return JsonResponse({"code":1})
|
||||||
except:
|
except:
|
||||||
return JsonResponse({"code":0})
|
return JsonResponse({"code":0})
|
||||||
|
elif a == 'question':
|
||||||
|
userid = req.session['userid']
|
||||||
|
companyid = getcompany(userid)
|
||||||
|
file_name = 'c'+str(companyid)+'_'+req.FILES['upfile'].name
|
||||||
|
upload_folder = 'media/temp'
|
||||||
|
if not os.path.exists(upload_folder):
|
||||||
|
os.mkdir(upload_folder)
|
||||||
|
filepath = os.path.join(upload_folder, file_name)
|
||||||
|
filepath = filepath.replace('\\','/')
|
||||||
|
with open( filepath, 'wb') as f:
|
||||||
|
f.write(req.FILES['upfile'].read())
|
||||||
|
msg = drquestions(companyid,filepath,userid)
|
||||||
|
if msg:
|
||||||
|
return JsonResponse({"code":2,"msg":msg})
|
||||||
|
else:
|
||||||
|
return JsonResponse({"code":1})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue