Merge branch 'master' of 10.7.100.160:/job/safesite

This commit is contained in:
shilixia 2019-10-10 17:10:21 +08:00
commit 15ff79c60a
24 changed files with 426 additions and 111 deletions

View File

@ -283,7 +283,7 @@ def drrisks(companyid,path):
if users.exists(): if users.exists():
obj.zrr = users[0] obj.zrr = users[0]
obj.save() obj.save()
obj.qrcode = makeqr3('https://safeyun.ctcshe.com/miniprogram/riskact?id='+str(obj.id)) obj.qrcode = makeqr_riskact('https://safeyun.ctcshe.com/miniprogram/riskact?id='+str(obj.id))
obj.save() obj.save()
a = Risk() a = Risk()
a.riskact=obj a.riskact=obj

View File

@ -19,6 +19,5 @@ class CompanyInfoForm(forms.Form):
legalperson_phone = forms.CharField(max_length=24, label='法人电话', widget=forms.TextInput(attrs={'size': '50'})) legalperson_phone = forms.CharField(max_length=24, label='法人电话', widget=forms.TextInput(attrs={'size': '50'}))
liaison = forms.CharField(max_length=24, label='联系人', widget=forms.TextInput(attrs={'size': '50'})) liaison = forms.CharField(max_length=24, label='联系人', widget=forms.TextInput(attrs={'size': '50'}))
liaison_phone = forms.CharField(max_length=24, label='联系人电话', widget=forms.TextInput(attrs={'size': '50'})) liaison_phone = forms.CharField(max_length=24, label='联系人电话', widget=forms.TextInput(attrs={'size': '50'}))
liaison_fax = forms.CharField(max_length=13, label='联系人传真', widget=forms.TextInput(attrs={'size': '50'}))
introduce = forms.CharField(label='公司概况', widget=forms.Textarea) introduce = forms.CharField(label='公司概况', widget=forms.Textarea)

View File

@ -0,0 +1,19 @@
# Generated by Django 2.1.5 on 2019-09-17 23:14
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('safesite', '0265_auto_20190917_1716'),
]
operations = [
migrations.AddField(
model_name='area',
name='qrcode',
field=models.CharField(blank=True, max_length=200, null=True),
),
]

View File

@ -0,0 +1,17 @@
# Generated by Django 2.1.5 on 2019-09-20 12:00
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('safesite', '0269_auto_20190919_1423'),
]
operations = [
migrations.RemoveField(
model_name='companyinfo',
name='liaison_fax',
),
]

View File

@ -0,0 +1,18 @@
# Generated by Django 2.1.5 on 2019-09-25 11:13
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('safesite', '0270_auto_20190920_1200'),
]
operations = [
migrations.AlterField(
model_name='trouble',
name='shresult',
field=models.IntegerField(blank=True, choices=[(1, '通过'), (2, '审核未通过'), (3, '复查未通过'), (4, '已修改'), (5, '评估未通过'), (6, '未采纳')], null=True),
),
]

View File

@ -0,0 +1,18 @@
# Generated by Django 2.1.5 on 2019-09-25 16:57
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('safesite', '0271_auto_20190925_1113'),
]
operations = [
migrations.AddField(
model_name='suggest',
name='accept',
field=models.IntegerField(default=1),
),
]

View File

@ -0,0 +1,29 @@
# Generated by Django 2.1.5 on 2019-10-08 16:04
import django.contrib.postgres.fields
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('safesite', '0272_auto_20190925_1657'),
]
operations = [
# migrations.AddField(
# model_name='area',
# name='qrcode',
# field=models.CharField(blank=True, max_length=200, null=True),
# ),
migrations.AddField(
model_name='operation',
name='todousers',
field=django.contrib.postgres.fields.ArrayField(base_field=models.IntegerField(), blank=True, null=True, size=None),
),
migrations.AddField(
model_name='operationspjd',
name='sprs',
field=django.contrib.postgres.fields.ArrayField(base_field=models.IntegerField(), blank=True, null=True, size=None),
),
]

View File

@ -1,7 +1,7 @@
from django.db import models from django.db import models
import uuid import uuid
import django.utils.timezone as timezone import django.utils.timezone as timezone
from django.contrib.postgres.fields import JSONField from django.contrib.postgres.fields import JSONField,ArrayField
import jwt import jwt
import datetime import datetime
# Create your models here. # Create your models here.
@ -120,6 +120,7 @@ class Trouble(models.Model):#隐患排查
(3, '复查未通过'), (3, '复查未通过'),
(4, '已修改'), (4, '已修改'),
(5,'评估未通过'), (5,'评估未通过'),
(6,'未采纳'),
) )
deletemark=models.IntegerField(default='1') deletemark=models.IntegerField(default='1')
troubleid = models.AutoField(primary_key=True) troubleid = models.AutoField(primary_key=True)
@ -409,6 +410,7 @@ class Suggest(models.Model):#合理化建议
yjwcsj = models.DateTimeField(null=True,blank=True) #预计完成时间 yjwcsj = models.DateTimeField(null=True,blank=True) #预计完成时间
sjwcsj = models.DateTimeField(null=True,blank=True) #实际完成时间 sjwcsj = models.DateTimeField(null=True,blank=True) #实际完成时间
shyj = models.CharField(max_length=1000,null=True,blank=True) #审核意见 shyj = models.CharField(max_length=1000,null=True,blank=True) #审核意见
accept = models.IntegerField(default=1)
class Suggestflow(models.Model):#建议流程 class Suggestflow(models.Model):#建议流程
id = models.AutoField(primary_key=True) id = models.AutoField(primary_key=True)
@ -464,6 +466,7 @@ class Operation(models.Model):#作业表
zyzt = JSONField() zyzt = JSONField()
fxcs = models.CharField(max_length=200) fxcs = models.CharField(max_length=200)
todouser = models.ForeignKey(User,related_name='zyclr',on_delete=models.CASCADE,null=True,blank=True) todouser = models.ForeignKey(User,related_name='zyclr',on_delete=models.CASCADE,null=True,blank=True)
todousers = ArrayField(models.IntegerField(), blank=True,null=True)
usecomp = models.ForeignKey(Partment,on_delete=models.CASCADE,null=True,blank=True,default=1) usecomp = models.ForeignKey(Partment,on_delete=models.CASCADE,null=True,blank=True,default=1)
class Fxcs(models.Model):#作业分析措施 class Fxcs(models.Model):#作业分析措施
@ -506,12 +509,13 @@ class Operzyry(models.Model):#作业确认人
modifytime = models.DateTimeField(auto_now = True) modifytime = models.DateTimeField(auto_now = True)
submittime = models.DateTimeField(default = timezone.now) submittime = models.DateTimeField(default = timezone.now)
class Operationspjd(models.Model):#作业审批节点 class Operationspjd(models.Model):#作业审批节点配置
id = models.AutoField(primary_key=True) id = models.AutoField(primary_key=True)
zylx = models.ForeignKey(Dickey, on_delete=models.CASCADE,null=True,blank=True) zylx = models.ForeignKey(Dickey, on_delete=models.CASCADE,null=True,blank=True)
jdmc = models.CharField(max_length=100) jdmc = models.CharField(max_length=100)
spbm = models.ForeignKey(Partment,related_name='spbm',on_delete=models.CASCADE,null=True,blank=True)#审批部门 spbm = models.ForeignKey(Partment,related_name='spbm',on_delete=models.CASCADE,null=True,blank=True)#审批部门
spr = models.ForeignKey(User,related_name='spr',on_delete=models.CASCADE,null=True,blank=True)#审批部门 spr = models.ForeignKey(User,related_name='spr',on_delete=models.CASCADE,null=True,blank=True)#审批部门
sprs = ArrayField(models.IntegerField(), blank=True,null=True)
submittime = models.DateTimeField(u'创建时间',default = timezone.now) submittime = models.DateTimeField(u'创建时间',default = timezone.now)
modifytime = models.DateTimeField(auto_now = True) modifytime = models.DateTimeField(auto_now = True)
usecomp = models.ForeignKey(Partment,on_delete=models.CASCADE,null=True,blank=True) usecomp = models.ForeignKey(Partment,on_delete=models.CASCADE,null=True,blank=True)
@ -830,7 +834,6 @@ class CompanyInfo(models.Model):
legalperson_phone = models.CharField(max_length=24, null=True, blank=True, verbose_name='法人电话') legalperson_phone = models.CharField(max_length=24, null=True, blank=True, verbose_name='法人电话')
liaison = models.CharField(max_length=24, verbose_name='联系人') liaison = models.CharField(max_length=24, verbose_name='联系人')
liaison_phone = models.CharField(max_length=24, verbose_name='联系人电话') liaison_phone = models.CharField(max_length=24, verbose_name='联系人电话')
liaison_fax = models.CharField(max_length=10, null=True, blank=True, verbose_name='联系人传真')
introduce = models.TextField( null=True, blank=True, verbose_name='公司概况') introduce = models.TextField( null=True, blank=True, verbose_name='公司概况')
createtime = models.DateTimeField(auto_now_add=True) createtime = models.DateTimeField(auto_now_add=True)
modifytime = models.DateTimeField(auto_now=True) modifytime = models.DateTimeField(auto_now=True)

File diff suppressed because one or more lines are too long

View File

@ -32,6 +32,17 @@ function canvasDataURL(path, obj, callback) {
scale = w / h; scale = w / h;
w = obj.width || w; w = obj.width || w;
h = obj.height || (w / scale); h = obj.height || (w / scale);
if(w <= h ){
if(w>640){
w = 640
h = w/scale
}
}else{
if(h>640){
h=640
w = h*scale
}
}
var quality = 0.7; // 默认图片质量为0.7 var quality = 0.7; // 默认图片质量为0.7
//生成canvas //生成canvas
var canvas = document.createElement('canvas'); var canvas = document.createElement('canvas');
@ -45,9 +56,9 @@ function canvasDataURL(path, obj, callback) {
canvas.setAttributeNode(anh); canvas.setAttributeNode(anh);
ctx.drawImage(that, 0, 0, w, h); ctx.drawImage(that, 0, 0, w, h);
// 图像质量 // 图像质量
if (obj.quality && obj.quality <= 1 && obj.quality > 0) { // if (obj.quality && obj.quality <= 1 && obj.quality > 0) {
quality = obj.quality; // quality = obj.quality;
} // }
// quality值越小所绘制出的图像越模糊 // quality值越小所绘制出的图像越模糊
var base64 = canvas.toDataURL('image/jpeg', quality); var base64 = canvas.toDataURL('image/jpeg', quality);
// 回调函数返回base64的值 // 回调函数返回base64的值
@ -62,7 +73,6 @@ function convertBase64UrlToBlob(urlData) {
} }
return new Blob([u8arr], { type: mime }); return new Blob([u8arr], { type: mime });
} }
//取消上传 //取消上传
function cancleUploadFile() { function cancleUploadFile() {

View File

@ -301,7 +301,16 @@
$("#yhms").textbox('disable'); $("#yhms").textbox('disable');
$('#fcyjdiv,#file2,#zgxq,#shyjdiv,#csyj,#reject').hide(); $('#jxpg').show(); $('#fcyjdiv,#file2,#zgxq,#shyjdiv,#csyj,#reject').hide(); $('#jxpg').show();
$("#yhpg").combobox({ url: 'getdickey?dicclass=19&a=combobox', }); $("#yhpg").combobox({ url: 'getdickey?dicclass=19&a=combobox', });
$("#zgbm").combotree({ url: 'parthandle?a=tree3', onSelect: function (node) { $('#zgr').combobox({ url: 'getuser?partid=' + node.id + '&a=combobox', }); } }); $("#zgbm").combotree({ url: 'parthandle?a=tree3', onSelect: function (node) {
$('#zgr').combobox({
url: 'getuser?partid=' + node.id + '&a=combobox',
editable: false,
filter: function (q, row) {
var opts = $(this).combobox('options');
return row[opts.textField].indexOf(q) >= 0;//这里改成>=即可在任意地方匹配
},
});
} });
// if (data.yhpg__dickeyname != '' & data.yhpg__dickeyname != null) { // if (data.yhpg__dickeyname != '' & data.yhpg__dickeyname != null) {
// $("#yhpg").combobox('setValue', data.yhpg__dickeyid).combobox('readonly'); // $("#yhpg").combobox('setValue', data.yhpg__dickeyid).combobox('readonly');
// $("#yhlx").combobox({ url: 'getdicclass?dicid=15' }).combobox('setValue', data.yhlx__dicid).combobox('readonly'); // $("#yhlx").combobox({ url: 'getdicclass?dicid=15' }).combobox('setValue', data.yhlx__dicid).combobox('readonly');

View File

@ -219,9 +219,7 @@
var form = new FormData(); var form = new FormData();
if (fileObj.size / 1024 > 500) { //大于500k进行压缩上传 if (fileObj.size / 1024 > 500) { //大于500k进行压缩上传
$("#file").after('<span id="tip" style="color:blue">图片大于500k,正在压缩...</span>'); $("#file").after('<span id="tip" style="color:blue">图片大于500k,正在压缩...</span>');
photoCompress(fileObj, { photoCompress(fileObj, {}, function (base64Codes) {
quality: 0.2
}, function (base64Codes) {
//console.log("压缩后:" + base.length / 1024 + " " + base); //console.log("压缩后:" + base.length / 1024 + " " + base);
var bl = convertBase64UrlToBlob(base64Codes); var bl = convertBase64UrlToBlob(base64Codes);
form.append("upfile", bl, fileObj.name); // 文件对象 form.append("upfile", bl, fileObj.name); // 文件对象
@ -310,9 +308,7 @@
var form = new FormData(); var form = new FormData();
if (fileObj.size / 1024 > 500) { //大于500k进行压缩上传 if (fileObj.size / 1024 > 500) { //大于500k进行压缩上传
$("#file2").after('<span id="tip" style="color:blue">图片大于500k,正在压缩...</span>'); $("#file2").after('<span id="tip" style="color:blue">图片大于500k,正在压缩...</span>');
photoCompress(fileObj, { photoCompress(fileObj, {}, function (base64Codes) {//quality: 0.2
quality: 0.2
}, function (base64Codes) {
//console.log("压缩后:" + base.length / 1024 + " " + base); //console.log("压缩后:" + base.length / 1024 + " " + base);
var bl = convertBase64UrlToBlob(base64Codes); var bl = convertBase64UrlToBlob(base64Codes);
form.append("upfile", bl, fileObj.name); // 文件对象 form.append("upfile", bl, fileObj.name); // 文件对象

View File

@ -1,4 +1,3 @@
<div class="labeldiv" style="margin:10px">公司信息</div>
<form method="post" action="/companyinfo/" id="companyform"> <form method="post" action="/companyinfo/" id="companyform">
{% csrf_token %} {% csrf_token %}
{{ companyinfo.non_field_errors }} {{ companyinfo.non_field_errors }}

View File

@ -263,7 +263,7 @@ float: left;">
<div style="width:70%;float:left;height:100%;margin-top: 10px;" align=center> <div style="width:70%;float:left;height:100%;margin-top: 10px;" align=center>
<div style="margin-left:10px;margin-right: 10px"> <div style="margin-left:10px;margin-right: 10px">
<div id="panelx" class="easyui-panel" title="各指标数量趋势" data-options="iconCls:'fa-bar-chart',closable:true, <div class="easyui-panel" title="各指标数量趋势" data-options="iconCls:'fa-bar-chart',closable:true,
collapsible:true," collapsible:true,"
align=center style="height:100%"> align=center style="height:100%">
<div id='gzbqst' style="width:90%;height:500px;"></div> <div id='gzbqst' style="width:90%;height:500px;"></div>
@ -326,6 +326,12 @@ float: left;">
</div> </div>
<div style="width:100%;height:800px">
<div id="panelx" class="easyui-panel" data-options="iconCls:'fa-bar-chart'" >
</div>
</div>
<script type="text/javascript"> <script type="text/javascript">
//首页总数统计 //首页总数统计
$.ajax({ $.ajax({
@ -372,13 +378,12 @@ float: left;">
<script> <script>
var data=JSON.parse(localStorage.getItem("data")); var data=JSON.parse(localStorage.getItem("data"));
bindmap9('gzbqst')
if(data.rights.indexOf('30')!=-1){ //有无地图功能 if(data.rights.indexOf('30')!=-1){ //有无地图功能
$('#panelx').panel({ $('#panelx').panel({
href:'html/mapshow', href:'html/mapshow',
title:'地图展示' title:'地图展示'
}) })
}else{
bindmap9('gzbqst')
} }
$("#sfxbm").combotree({ $("#sfxbm").combotree({
url: 'parthandle?a=tree', url: 'parthandle?a=tree',

View File

@ -13,7 +13,7 @@
required=true /> required=true />
</div> </div>
<div style="margin-bottom:5px"> <div style="margin-bottom:5px">
<input id="spr" class="easyui-combobox" name="spr" style="width:480px;" editable="false" data-options="label:'审批人'" <input id="spr" class="easyui-combobox" name="spr" style="width:480px;" editable="false" data-options="label:'审批人',multiple:true"
required=true /> required=true />
</div> </div>
</form> </form>
@ -22,9 +22,13 @@
<script> <script>
$('#spbm').combotree({ url: 'parthandle?a=tree', loadFilter: function(rows){ $('#spbm').combotree({ url: 'parthandle?a=tree', loadFilter: function(rows){
return convert(rows); return convert(rows);
},onSelect: function (node) { $('#spr').combobox({ url: 'getuser?partid=' + node.id + '&a=combobox', }); } }); },onSelect: function (node) { $('#spr').combobox({
url: 'getuser?partid=' + node.id + '&a=combobox',
}); } });
function spjdsubmitForm() { function spjdsubmitForm() {
var spjddata = $('#spjdff').serializeJSON(); var spjddata = $('#spjdff').serializeJSON();
spjddata['spr'] = $('#spr').combobox('getValues')
console.log(spjddata)
spjddata['zylx'] = $('#zylxlist').datalist('getSelected').value spjddata['zylx'] = $('#zylxlist').datalist('getSelected').value
$.ajax({ $.ajax({
type: "POST", type: "POST",

View File

@ -72,6 +72,10 @@
<input id="B" class="easyui-textbox" name="B" style="width:480px;" data-options="label:'选项B'," value="错" editable=false/> <input id="B" class="easyui-textbox" name="B" style="width:480px;" data-options="label:'选项B'," value="错" editable=false/>
<input name="right" type="radio" value="B" /> <input name="right" type="radio" value="B" />
</div> </div>
<div style="margin-top:5px;margin-bottom:5px">
<input id="resolution" class="easyui-textbox" name="resolution" style="width:480px;height:80px"
data-options="label:'解析',multiline:true" />
</div>
</form> </form>
</div> </div>
</div> </div>

View File

@ -93,6 +93,7 @@
//$('#station').combobox('setValue',res.station__groupid) //$('#station').combobox('setValue',res.station__groupid)
$('#label').textbox('setValue',res.label) $('#label').textbox('setValue',res.label)
$('#title').textbox('setValue',res.title) $('#title').textbox('setValue',res.title)
$('#resolution').textbox('setValue',res.resolution)
for(var key in res.answer){ for(var key in res.answer){
$('#'+key).textbox('setValue',res.answer[key]) $('#'+key).textbox('setValue',res.answer[key])
} }

View File

@ -106,6 +106,7 @@
//$('#station').combobox('setValue',res.station__groupid) //$('#station').combobox('setValue',res.station__groupid)
$('#label').textbox('setValue',res.label) $('#label').textbox('setValue',res.label)
$('#title').textbox('setValue',res.title) $('#title').textbox('setValue',res.title)
$('#resolution').textbox('setValue',res.resolution)
for(var key in res.answer){ for(var key in res.answer){
$('#'+key).textbox('setValue',res.answer[key]) $('#'+key).textbox('setValue',res.answer[key])
} }

View File

@ -72,6 +72,10 @@
<input id="B" class="easyui-textbox" name="B" style="width:480px;" data-options="label:'选项B'," value="错" editable=false/> <input id="B" class="easyui-textbox" name="B" style="width:480px;" data-options="label:'选项B'," value="错" editable=false/>
<input id="Bcheck" name="right" type="radio" value="B" /> <input id="Bcheck" name="right" type="radio" value="B" />
</div> </div>
<div style="margin-top:5px;margin-bottom:5px">
<input id="resolution" class="easyui-textbox" name="resolution" style="width:480px;height:80px"
data-options="label:'解析',multiline:true" />
</div>
</form> </form>
</div> </div>
</div> </div>
@ -83,6 +87,7 @@
// $('#station').combobox('setValue',res.station__groupid) // $('#station').combobox('setValue',res.station__groupid)
$('#label').textbox('setValue',res.label) $('#label').textbox('setValue',res.label)
$('#title').textbox('setValue',res.title) $('#title').textbox('setValue',res.title)
$('#resolution').textbox('setValue',res.resolution)
for(var key in res.answer){ for(var key in res.answer){
$('#'+key).textbox('setValue',res.answer[key]) $('#'+key).textbox('setValue',res.answer[key])
} }

View File

@ -39,6 +39,10 @@
<input id="jtwz" class="easyui-textbox" name="place" style="width:480px" data-options="label:'具体位置'" <input id="jtwz" class="easyui-textbox" name="place" style="width:480px" data-options="label:'具体位置'"
/> />
</div> </div>
<div style="margin-top:10px;margin-bottom:5px">
<input id="group" class="easyui-combobox" name="group" style="width:480px" data-options="label:'所属岗位',url:'grouphandle?a=combobox'"
required=true editable=false/>
</div>
<div style="margin-top:10px;margin-bottom:5px"> <div style="margin-top:10px;margin-bottom:5px">
<select id="gkcj" class="easyui-combobox" name="gkcj" style="width:480px" data-options="label:'管控层级'" <select id="gkcj" class="easyui-combobox" name="gkcj" style="width:480px" data-options="label:'管控层级'"
required=true editable=false> required=true editable=false>
@ -80,7 +84,7 @@
$('#fxdmc').textbox('setValue',data.name) $('#fxdmc').textbox('setValue',data.name)
$('#jtwz').textbox('setValue',data.place) $('#jtwz').textbox('setValue',data.place)
$('#qrcode').attr('src',data.qrcode) $('#qrcode').attr('src',data.qrcode)
$('#group').combobox('setValue', res.group__groupid) $('#group').combobox('setValue', data.group__groupid)
$("#zrbm").combotree({ $("#zrbm").combotree({
url: 'parthandle?a=tree', url: 'parthandle?a=tree',
onSelect: function (node) { onSelect: function (node) {

View File

@ -94,6 +94,20 @@
{ field: 'dqxz', title: '当前现状', width: 200 }, { field: 'dqxz', title: '当前现状', width: 200 },
{ field: 'jynr', title: '建议内容', width: 400 }, { field: 'jynr', title: '建议内容', width: 400 },
{ field: 'jyfk', title: '建议反馈', width: 400 }, { field: 'jyfk', title: '建议反馈', width: 400 },
{
field: 'accept', title: '建议状态', width: 80, styler: function (value, row, index) {
switch (value) {
case 1: return 'background-color:green;'; break;
case 0: return 'background-color:red;'; break;
}
}, formatter: function (value, row, index) {
switch (value) {
case 1: return '已采纳'; break;
case 0: return '未采纳'; break;
}
}
},
]] ]]
}); });
function addjy(){ function addjy(){

View File

@ -116,12 +116,13 @@
{ field: 'todouser__userid', hidden: true }, { field: 'todouser__userid', hidden: true },
{ field: 'sybzt', hidden: true }, { field: 'sybzt', hidden: true },
{ {
field: 'shresult', title: '整改结果状态', width: 100, styler: function (value, row, index) { field: 'shresult', title: '隐患状态', width: 100, styler: function (value, row, index) {
switch (value) { switch (value) {
case 1: return ''; break; case 1: return ''; break;
case 2: return 'background-color:red;'; break; case 2: return 'background-color:red;'; break;
case 3: return 'background-color:red;'; break; case 3: return 'background-color:red;'; break;
case 4: return 'background-color:yellow;'; break; case 4: return 'background-color:yellow;'; break;
case 6: return 'background-color:yellow;'; break;
} }
}, formatter: function (value, row, index) { }, formatter: function (value, row, index) {
switch (value) { switch (value) {
@ -130,6 +131,7 @@
case 3: return '复查未通过'; break; case 3: return '复查未通过'; break;
case 4: return '已修改'; break; case 4: return '已修改'; break;
case 5: return '评估未通过'; break; case 5: return '评估未通过'; break;
case 6: return '未采纳'; break;
} }
} }
}, },

View File

@ -47,7 +47,7 @@
{ field: 'id', title: 'ID', hidden: true }, { field: 'id', title: 'ID', hidden: true },
{ field: 'jdmc', title: '节点名称', width: 40 }, { field: 'jdmc', title: '节点名称', width: 40 },
{ field: 'spbm__partname', title: '审批部门', width: 120 }, { field: 'spbm__partname', title: '审批部门', width: 120 },
{ field: 'spr__name', title: '审批人', width: 120 }, { field: 'sprnames', title: '审批人', width: 120 },
]] ]]
}); });
$('#fxcstable').datagrid({ $('#fxcstable').datagrid({

View File

@ -482,6 +482,32 @@ def getspr(ubp):
return User.objects.get(ubelongpart=currentpart,issuper=1) return User.objects.get(ubelongpart=currentpart,issuper=1)
return a return a
def getsprs(ubp):
currentpart=ubp
a=getsprs_ubp(currentpart)
while a==False:
currentpart=currentpart.parentid #已找不到上级部门
if currentpart:
a=getsprs_ubp(currentpart)
else:
return User.objects.get(ubelongpart=currentpart,issuper=1)
return a
def getsprs_ubp(ubp):
a=ubp
if a.aqy !=',':
aqystr = a.aqy
aqylist = aqystr.split(',')
aqylist = list(map(int, list(filter(None, aqylist))))
return aqylist
if a.bmzg !=',':
zgstr = a.bmzg
zglist = zgstr.split(',')
zglist = list(map(int, list(filter(None, zglist))))
return zglist
else:
return False
@check_login @check_login
def menutree(req): def menutree(req):
userid = req.session['userid'] userid = req.session['userid']
@ -947,29 +973,55 @@ def accessyh(req):
return JsonResponse({"code":1}) return JsonResponse({"code":1})
elif a.yhzt==1: elif a.yhzt==1:
if yhdata['shresult'] == 'reject': if yhdata['shresult'] == 'reject':
a.shresult = 5 if 'accept' in yhdata:
a.yhzt = 0 if yhdata['accept'] == 'no':
a.sybzt = 1 a.shresult = 6
a.todouser = a.fxr a.yhzt = 6
a.pgyj = yhdata['pgyj'] a.sybzt = 1
a.save() a.todouser = None
m=TroubleAccess(troubleid=a,clr=a.pgr,yhzt=0,action=''+a.fxr.name+'重新填报',result=0) a.pgyj = yhdata['pgyj']
m.save() a.save()
postdict={ m=TroubleAccess(troubleid=a,clr=a.pgr,yhzt=6,action='未采纳',opinion=yhdata['pgyj'])
'touser':'oPGqkweX75QtLmgehUN-ipR4hcyc', m.save()
'template_id':'lOuwSE67vZC3ZVFYPZvz2eb7JdFxqx7ysMFkXrYmYh0', postdict={
"miniprogram":{"appid":"wx5c39b569f01c27db","path":"pages/trouble/accesstrouble?troubleid="+str(a.troubleid)}, 'touser':'oPGqkweX75QtLmgehUN-ipR4hcyc',
'data':{ 'template_id':'lOuwSE67vZC3ZVFYPZvz2eb7JdFxqx7ysMFkXrYmYh0',
'first':{'value':a.yhdj.dickeyname + '被退出需重新上报:'}, "miniprogram":{"appid":"wx5c39b569f01c27db","path":"pages/trouble/accesstrouble?troubleid="+str(a.troubleid)},
'keyword1':{'value':a.yhms}, 'data':{
'keyword2':{'value':a.fxsj}, 'first':{'value':a.yhdj.dickeyname + '未被采纳:'},
'keyword3':{'value':a.yhdd}, 'keyword1':{'value':a.yhms},
'remark':{'value':'请查看评估意见并修改后上传。'} 'keyword2':{'value':a.fxsj},
'keyword3':{'value':a.yhdd},
'remark':{'value':'请查看未采纳原因'}
}
}
postdict['touser']=a.fxr.openid
send_wechatmsg.delay(postdict)
return JsonResponse({"code":1})
else:
a.shresult = 5
a.yhzt = 0
a.sybzt = 1
a.todouser = a.fxr
a.pgyj = yhdata['pgyj']
a.save()
m=TroubleAccess(troubleid=a,clr=a.pgr,yhzt=0,action=''+a.fxr.name+'重新填报',result=0)
m.save()
postdict={
'touser':'oPGqkweX75QtLmgehUN-ipR4hcyc',
'template_id':'lOuwSE67vZC3ZVFYPZvz2eb7JdFxqx7ysMFkXrYmYh0',
"miniprogram":{"appid":"wx5c39b569f01c27db","path":"pages/trouble/accesstrouble?troubleid="+str(a.troubleid)},
'data':{
'first':{'value':a.yhdj.dickeyname + '被退出需重新上报:'},
'keyword1':{'value':a.yhms},
'keyword2':{'value':a.fxsj},
'keyword3':{'value':a.yhdd},
'remark':{'value':'请查看评估意见并修改后上传。'}
}
} }
} postdict['touser']=a.todouser.openid
postdict['touser']=a.todouser.openid send_wechatmsg.delay(postdict)
send_wechatmsg.delay(postdict) return JsonResponse({"code":1})
return JsonResponse({"code":1})
elif 'zppg' in yhdata and yhdata['zppg']=='yes': elif 'zppg' in yhdata and yhdata['zppg']=='yes':
a.yhzt=1 a.yhzt=1
a.sybzt=1 a.sybzt=1
@ -1475,13 +1527,15 @@ def troublehandle(req):
userid = req.session['userid'] userid = req.session['userid']
if User.objects.get(userid = userid).issuper == 1: if User.objects.get(userid = userid).issuper == 1:
a = Trouble.objects.get(troubleid = req.POST.get('troubleid')) a = Trouble.objects.get(troubleid = req.POST.get('troubleid'))
a.delete() a.deletemark=0
a.save()
return JsonResponse({"code":1}) return JsonResponse({"code":1})
else: else:
a = Trouble.objects.get(troubleid = req.POST.get('troubleid')) a = Trouble.objects.get(troubleid = req.POST.get('troubleid'))
b = TroubleAccess.objects.filter(troubleid__troubleid=req.POST.get('troubleid')).count() b = TroubleAccess.objects.filter(troubleid__troubleid=req.POST.get('troubleid')).count()
if b == 1 and a.fxr.userid==userid: if b == 1 and a.fxr.userid==userid:
a.delete() a.deletemark=0
a.save()
return JsonResponse({"code":1}) return JsonResponse({"code":1})
else: else:
return JsonResponse({"code":0}) return JsonResponse({"code":0})
@ -2553,9 +2607,10 @@ def gchandle(req):
if 'unsafe' in gcdata: if 'unsafe' in gcdata:
olist = gcdata['unsafe'] olist = gcdata['unsafe']
for i in olist: for i in olist:
dickey = Dickey.objects.get(dickeyid=i) if i != 0:
m = Unsafes(observe = obj,unsafedickey=dickey,unsafedicclass=dickey.dicparent) dickey = Dickey.objects.get(dickeyid=i)
m.save() m = Unsafes(observe = obj,unsafedickey=dickey,unsafedicclass=dickey.dicparent)
m.save()
yjjs_gc.delay(companyid) yjjs_gc.delay(companyid)
return JsonResponse({"code":1}) return JsonResponse({"code":1})
elif a == 'listall': elif a == 'listall':
@ -3353,19 +3408,19 @@ def apipartuser(req):
if req.GET.get('parentid')=='company': if req.GET.get('parentid')=='company':
lst=[] lst=[]
company = User.objects.get(userid=userid).usecomp company = User.objects.get(userid=userid).usecomp
partobjs = Partment.objects.filter(parentid=company) partobjs = Partment.objects.filter(parentid=company,deletemark=1)
for i in partobjs: for i in partobjs:
lst.append({'id':i.partid,'name':i.partname,'parentId':0,'checked':False,'isPeople':False,'children':[]}) lst.append({'id':i.partid,'name':i.partname,'parentId':0,'checked':False,'isPeople':False,'children':[]})
userobjs = User.objects.filter(ubelongpart=company).exclude(issuper=1) userobjs = User.objects.filter(ubelongpart=company,deletemark=1).exclude(issuper=1)
for i in userobjs: for i in userobjs:
lst.append({'id':i.userid,'name':i.name,'parentId':0,'checked':False,'isPeople':True,'children':[]}) lst.append({'id':i.userid,'name':i.name,'parentId':0,'checked':False,'isPeople':True,'children':[]})
return JsonResponse({"code":1,"data":lst}) return JsonResponse({"code":1,"data":lst})
else: else:
lst=[] lst=[]
partobjs = Partment.objects.filter(parentid=req.GET.get('parentid')) partobjs = Partment.objects.filter(parentid=req.GET.get('parentid'),deletemark=1)
for i in partobjs: for i in partobjs:
lst.append({'id':i.partid,'name':i.partname,'parentId':0,'checked':False,'isPeople':False,'children':[]}) lst.append({'id':i.partid,'name':i.partname,'parentId':0,'checked':False,'isPeople':False,'children':[]})
userobjs = User.objects.filter(ubelongpart=req.GET.get('parentid')).exclude(issuper=1) userobjs = User.objects.filter(ubelongpart=req.GET.get('parentid'),deletemark=1).exclude(issuper=1)
for i in userobjs: for i in userobjs:
lst.append({'id':i.userid,'name':i.name,'parentId':0,'checked':False,'isPeople':True,'children':[]}) lst.append({'id':i.userid,'name':i.name,'parentId':0,'checked':False,'isPeople':True,'children':[]})
return JsonResponse({"code":1,"data":lst}) return JsonResponse({"code":1,"data":lst})
@ -3471,7 +3526,7 @@ def apisuggest(req):
a = Suggest.objects.filter(usecomp=Partment.objects.get(partid=companyid)).order_by('-submittime') a = Suggest.objects.filter(usecomp=Partment.objects.get(partid=companyid)).order_by('-submittime')
total = a.count() total = a.count()
startnum,endnum=fenye(req) startnum,endnum=fenye(req)
a = a[startnum:endnum].values('jyid','jylb__dickeyname','jyr__name','jybm__partname','dqxz','jynr','jynum','jyzt','todouser__userid','todouser__name','jyqy__name','jydd','submittime') a = a[startnum:endnum].values('jyid','jylb__dickeyname','jyr__name','jybm__partname','dqxz','jynr','jynum','jyzt','todouser__userid','todouser__name','jyqy__name','jydd','submittime','accept')
return HttpResponse(transjson(total,a),content_type="application/json") return HttpResponse(transjson(total,a),content_type="application/json")
elif a == 'listself': elif a == 'listself':
userid = req.session['userid'] userid = req.session['userid']
@ -3479,7 +3534,7 @@ def apisuggest(req):
a = Suggest.objects.filter(jyr__userid=userid).order_by('-submittime') a = Suggest.objects.filter(jyr__userid=userid).order_by('-submittime')
total = a.count() total = a.count()
startnum,endnum=fenye(req) startnum,endnum=fenye(req)
a = a[startnum:endnum].values('jyid','jylb__dickeyname','jyr__name','jybm__partname','dqxz','jynr','jynum','jyzt','todouser__userid','todouser__name','jyqy__name','jydd','submittime') a = a[startnum:endnum].values('jyid','jylb__dickeyname','jyr__name','jybm__partname','dqxz','jynr','jynum','jyzt','todouser__userid','todouser__name','jyqy__name','jydd','submittime','accept')
return HttpResponse(transjson(total,a),content_type="application/json") return HttpResponse(transjson(total,a),content_type="application/json")
elif a == 'listtodo': elif a == 'listtodo':
userid = req.session['userid'] userid = req.session['userid']
@ -3487,7 +3542,7 @@ def apisuggest(req):
a = Suggest.objects.filter(todouser__userid=userid).order_by('-submittime') a = Suggest.objects.filter(todouser__userid=userid).order_by('-submittime')
total = a.count() total = a.count()
startnum,endnum=fenye(req) startnum,endnum=fenye(req)
a = a[startnum:endnum].values('jyid','jylb__dickeyname','jyr__name','jybm__partname','dqxz','jynr','jynum','jyzt','todouser__userid','todouser__name','jyqy__name','jydd','submittime') a = a[startnum:endnum].values('jyid','jylb__dickeyname','jyr__name','jybm__partname','dqxz','jynr','jynum','jyzt','todouser__userid','todouser__name','jyqy__name','jydd','submittime','accept')
return HttpResponse(transjson(total,a),content_type="application/json") return HttpResponse(transjson(total,a),content_type="application/json")
elif a == 'todonum': elif a == 'todonum':
userid = req.session['userid'] userid = req.session['userid']
@ -3496,7 +3551,7 @@ def apisuggest(req):
elif a == 'detail': elif a == 'detail':
jyid=req.GET.get('jyid') jyid=req.GET.get('jyid')
a = Suggest.objects.filter(jyid=jyid) a = Suggest.objects.filter(jyid=jyid)
x = a.values('jyid','jylb__dickeyname','jynum','submittime','jyr__name','dqxz','jynr','jybm__partname','jyimg','qwxg','jyqy__name','jydd','jyzt','clr__name','jyfk','clcs','pgr__name','clms','jyimg2','sjwcsj')[0] x = a.values('jyid','jylb__dickeyname','jynum','submittime','jyr__name','dqxz','jynr','jybm__partname','jyimg','qwxg','jyqy__name','jydd','jyzt','clr__name','jyfk','clcs','pgr__name','clms','jyimg2','sjwcsj','accept')[0]
if x['jyimg']!='': if x['jyimg']!='':
x['jyimg'] = x['jyimg'].split('?') x['jyimg'] = x['jyimg'].split('?')
else: else:
@ -3526,7 +3581,7 @@ def apisuggest(req):
if req.GET.get('jssj'): if req.GET.get('jssj'):
a = a.filter(submittime__lte=req.GET.get('jssj')) a = a.filter(submittime__lte=req.GET.get('jssj'))
total = a.count() total = a.count()
a = a[startnum:endnum].values('jyid','jylb__dickeyname','jyr__name','jybm__partname','dqxz','jynr','jynum','jyzt','todouser__userid','todouser__name','jyqy__name','jydd','submittime') a = a[startnum:endnum].values('jyid','jylb__dickeyname','jyr__name','jybm__partname','dqxz','jynr','jynum','jyzt','todouser__userid','todouser__name','jyqy__name','jydd','submittime','accept')
return HttpResponse(transjson(total,a),content_type="application/json") return HttpResponse(transjson(total,a),content_type="application/json")
elif a == 'exportexcel': elif a == 'exportexcel':
userid = req.session['userid'] userid = req.session['userid']
@ -3568,6 +3623,15 @@ def apisuggest(req):
obj.save() obj.save()
Suggestflow.objects.create(suggest=obj,user=User.objects.get(userid=userid),action='转交'+user.name+'评估') Suggestflow.objects.create(suggest=obj,user=User.objects.get(userid=userid),action='转交'+user.name+'评估')
return JsonResponse({"code":1}) return JsonResponse({"code":1})
elif 'accept' in data:
if data['accept'] == 'no':
obj.jyzt = 4
obj.todouser = None
obj.jyfk = data['jyfk']
obj.accept = 0
obj.save()
Suggestflow.objects.create(suggest=obj,user=User.objects.get(userid=userid),action='未采纳该建议')
return JsonResponse({"code":1})
else: else:
obj.jyzt = 4 obj.jyzt = 4
obj.todouser = None obj.todouser = None
@ -3694,11 +3758,23 @@ def apitool(req):
newpart = req.GET.get('part') newpart = req.GET.get('part')
username = req.GET.get('username') username = req.GET.get('username')
user = User.objects.get(username=username) user = User.objects.get(username=username)
oldpart = user.ubelongpart
oldpart.aqy = oldpart.aqy.replace(','+str(user.userid)+',','')
oldpart.bmzg = oldpart.bmzg.replace(','+str(user.userid)+',','')
oldpart.bsq = oldpart.bsq.replace(','+str(user.userid)+',','')
oldpart.save()
part = Partment.objects.get(partid=newpart) part = Partment.objects.get(partid=newpart)
companyid = part.partlink.split(',')[1] if part.iscompany==1:
usecomp = part
else:
usecomp = Partment.objects.get(partid=part.partlink.split(',')[1])
user.ubelongpart = part user.ubelongpart = part
user.usecomp = Partment.objects.get(partid=companyid) user.usecomp = usecomp
user.save() user.save()
for i in Group.objects.filter(usecomp=usecomp):
i.users.remove(user)
groupobj = Group.objects.filter(usecomp=usecomp,grouptype=3).first()
groupobj.users.add(user)
return JsonResponse({"code":1}) return JsonResponse({"code":1})
elif a == 'correctionzs': elif a == 'correctionzs':
objs = Socertificate.objects.all() objs = Socertificate.objects.all()
@ -3941,13 +4017,14 @@ def apioperation(req):
obj.zyzt = {'zyzt':'确认中','index':0} obj.zyzt = {'zyzt':'确认中','index':0}
obj.save() obj.save()
splc = [] splc = []
splc.append({'jdmc':'作业部门审批','spr':getspr(obj.zybm)}) splc.append({'jdmc':'作业负责人审批','sprs':[userid]})
splc.append({'jdmc':'属地部门审批','spr':getspr(obj.sdbm)}) splc.append({'jdmc':'作业部门审批','sprs':getsprs(obj.zybm)})
splc.append({'jdmc':'属地部门审批','sprs':getsprs(obj.sdbm)})
for i in Operationspjd.objects.filter(zylx=obj.zylx,usecomp=Partment.objects.get(partid=getcompany(userid))).order_by('id'): for i in Operationspjd.objects.filter(zylx=obj.zylx,usecomp=Partment.objects.get(partid=getcompany(userid))).order_by('id'):
splc.append({'jdmc':i.jdmc,'spr':i.spr.userid}) splc.append({'jdmc':i.jdmc,'sprs':i.sprs})
obj.zyzt['splc']=splc obj.zyzt['splc']=splc
obj.save() obj.save()
Operspxq.objects.create(oper=obj,jdmc='作业负责人审批',spr=obj.zyfzr,checked=1,spbm=obj.zyfzr.ubelongpart) # Operspxq.objects.create(oper=obj,jdmc='作业负责人审批',spr=obj.zyfzr,checked=1,spbm=obj.zyfzr.ubelongpart)
b=[]#发送通知 b=[]#发送通知
for i in data['zyry']: for i in data['zyry']:
x=User.objects.get(userid=i) x=User.objects.get(userid=i)
@ -4002,7 +4079,7 @@ def apioperation(req):
for x in b: for x in b:
i.append(x.oper.zyid) i.append(x.oper.zyid)
a = Operation.objects.filter(usecomp=usecomp,deletemark=1,zyid__in=i) a = Operation.objects.filter(usecomp=usecomp,deletemark=1,zyid__in=i)
a = (a|Operation.objects.filter(todouser=User.objects.get(userid=userid))).order_by('-submittime') a = (a|Operation.objects.filter(todouser=User.objects.get(userid=userid))|Operation.objects.filter(todousers__contains=[userid])).order_by('-submittime')
total = a.count() total = a.count()
startnum,endnum=fenye(req) startnum,endnum=fenye(req)
a = a[startnum:endnum].values('zyid','zylx__dickeyname','zynum','zyfzr__name','zynr','zyzt','submittime') a = a[startnum:endnum].values('zyid','zylx__dickeyname','zynum','zyfzr__name','zynr','zyzt','submittime')
@ -4041,7 +4118,8 @@ def apioperation(req):
return res return res
elif a == 'qrzy': elif a == 'qrzy':
userid = req.session['userid'] userid = req.session['userid']
zyid = req.POST.get('zyid') data = json.loads(req.body.decode('utf-8'))
zyid = data['zyid']
Operzyry.objects.filter(oper__zyid=zyid,operzyry__userid=userid).update(checked=1) Operzyry.objects.filter(oper__zyid=zyid,operzyry__userid=userid).update(checked=1)
if Operzyry.objects.filter(oper__zyid=zyid,checked=0).exists(): if Operzyry.objects.filter(oper__zyid=zyid,checked=0).exists():
pass pass
@ -4052,14 +4130,57 @@ def apioperation(req):
obj.zyzt['index'] = 0 obj.zyzt['index'] = 0
index = obj.zyzt['index'] index = obj.zyzt['index']
obj.zyzt['jdmc'] = obj.zyzt['splc'][index]['jdmc'] obj.zyzt['jdmc'] = obj.zyzt['splc'][index]['jdmc']
obj.todouser = User.objects.get(userid=obj.zyzt['splc'][index]['spr']) if 'sprs' in obj.zyzt['splc'][index]:
sprs = obj.zyzt['splc'][index]['sprs']
else:
sprs = [obj.zyzt['splc'][index]['spr']]
obj.todousers = sprs
obj.save() obj.save()
for i in sprs:
postdict={
'touser':'',
'template_id':User.objects.get(userid=i).openid,
'data':{
'first':{
'value':obj.zylx.dickeyname + '作业审批:'
},
'keyword1':{
'value':obj.zynr
},
'keyword2':{
'value':obj.kssj
},
'keyword3':{
'value':obj.zydd
},
'remark':{
'value':'请您及时完成审批!'
}
}
}
send_wechatmsg.delay(postdict)
return JsonResponse({"code":1})
elif a == 'spzy':
userid = req.session['userid']
data = json.loads(req.body.decode('utf-8'))
zyid = data['zyid']
obj = Operation.objects.get(zyid=zyid)
oldtodo = obj.todousers
oldjdmc = obj.zyzt['jdmc']
nextindex = obj.zyzt['index']+1
spruser = User.objects.get(userid=userid)
if 'zzsp' in data:
obj.zyzt['zyzt'] = '待关闭'
obj.todouser = obj.zyfzr
obj.todousers = None
obj.save()
Operspxq.objects.create(oper=Operation.objects.get(zyid=zyid),jdmc=oldjdmc,spr=spruser,checked=1,spbm=spruser.ubelongpart)
postdict={ postdict={
'touser':'', 'touser':'',
'template_id':obj.todouser.openid, 'template_id':obj.zyfzr.openid,
'data':{ 'data':{
'first':{ 'first':{
'value':obj.zylx.dickeyname + '作业审批:' 'value':obj.zylx.dickeyname + '作业审批通过:'
}, },
'keyword1':{ 'keyword1':{
'value':obj.zynr 'value':obj.zynr
@ -4071,53 +4192,79 @@ def apioperation(req):
'value':obj.zydd 'value':obj.zydd
}, },
'remark':{ 'remark':{
'value':'请您及时完成审批!' 'value':'你是作业负责人,可以开始作业,作业完成请及时关闭!'
} }
} }
} }
send_wechatmsg.delay(postdict) send_wechatmsg.delay(postdict)
return JsonResponse({"code":1}) return JsonResponse({"code":1})
elif a == 'spzy': if 'zjsp' in data:
zyid = req.POST.get('zyid') newsprs = data['newsprs']#新审批人
obj = Operation.objects.get(zyid=zyid) obj.todousers = newsprs
oldtodo = obj.todouser obj.save()
oldjdmc = obj.zyzt['jdmc'] for i in newsprs:
nextindex = obj.zyzt['index']+1 postdict={
'touser':'',
'template_id':User.objects.get(userid=i).openid,
'data':{
'first':{
'value':obj.zylx.dickeyname + '作业审批:'
},
'keyword1':{
'value':obj.zynr
},
'keyword2':{
'value':obj.kssj
},
'keyword3':{
'value':obj.zydd
},
'remark':{
'value':'请您及时完成审批!'
}
}
}
send_wechatmsg.delay(postdict)
Operspxq.objects.create(oper=Operation.objects.get(zyid=zyid),jdmc=oldjdmc,spr=spruser,checked=2,spbm=spruser.ubelongpart)
return JsonResponse({"code":1})
try: try:
nextsplc = obj.zyzt['splc'][nextindex] nextsplc = obj.zyzt['splc'][nextindex]
obj.zyzt['zyzt'] = '审批中' obj.zyzt['zyzt'] = '审批中'
obj.zyzt['index'] = nextindex obj.zyzt['index'] = nextindex
obj.zyzt['jdmc'] = nextsplc['jdmc'] obj.zyzt['jdmc'] = nextsplc['jdmc']
obj.todouser = User.objects.get(userid=nextsplc['spr']) obj.todousers = nextsplc['sprs']
obj.save() obj.save()
postdict={ for i in nextsplc['sprs']:
'touser':'', postdict={
'template_id':obj.todouser.openid, 'touser':'',
'data':{ 'template_id':User.objects.get(userid=i).openid,
'first':{ 'data':{
'value':obj.zylx.dickeyname + '作业审批:' 'first':{
}, 'value':obj.zylx.dickeyname + '作业审批:'
'keyword1':{ },
'value':obj.zynr 'keyword1':{
}, 'value':obj.zynr
'keyword2':{ },
'value':obj.kssj 'keyword2':{
}, 'value':obj.kssj
'keyword3':{ },
'value':obj.zydd 'keyword3':{
}, 'value':obj.zydd
'remark':{ },
'value':'请您及时完成审批!' 'remark':{
'value':'请您及时完成审批!'
}
} }
} }
} send_wechatmsg.delay(postdict)
send_wechatmsg.delay(postdict)
Operspxq.objects.create(oper=Operation.objects.get(zyid=zyid),jdmc=oldjdmc,spr=oldtodo,checked=1,spbm=oldtodo.ubelongpart) Operspxq.objects.create(oper=Operation.objects.get(zyid=zyid),jdmc=oldjdmc,spr=spruser,checked=1,spbm=spruser.ubelongpart)
except : except :
obj.zyzt['zyzt'] = '待关闭' obj.zyzt['zyzt'] = '待关闭'
obj.todouser = obj.zyfzr obj.todouser = None
obj.todousers = [obj.zyfzr.userid]
obj.save() obj.save()
Operspxq.objects.create(oper=Operation.objects.get(zyid=zyid),jdmc=oldjdmc,spr=oldtodo,checked=1,spbm=oldtodo.ubelongpart) Operspxq.objects.create(oper=Operation.objects.get(zyid=zyid),jdmc=oldjdmc,spr=spruser,checked=1,spbm=spruser.ubelongpart)
postdict={ postdict={
'touser':'', 'touser':'',
'template_id':obj.zyfzr.openid, 'template_id':obj.zyfzr.openid,
@ -4150,13 +4297,14 @@ def apioperation(req):
obj.zyimg2 = '?'.join(zyimg2) obj.zyimg2 = '?'.join(zyimg2)
obj.zyzt['zyzt']='已关闭' obj.zyzt['zyzt']='已关闭'
obj.todouser = None obj.todouser = None
obj.todousers = None
obj.save() obj.save()
return JsonResponse({"code":1}) return JsonResponse({"code":1})
elif a == 'todonum': elif a == 'todonum':
userid = req.session['userid'] userid = req.session['userid']
i = [] i = []
b = Operzyry.objects.filter(operzyry__userid=userid,checked=0) b = Operzyry.objects.filter(operzyry__userid=userid,checked=0)
c = Operation.objects.filter(todouser=User.objects.get(userid=userid)) c = Operation.objects.filter(Q(todouser=User.objects.get(userid=userid))|Q(todousers__contains=[userid]))
for x in b: for x in b:
i.append(x.oper.zyid) i.append(x.oper.zyid)
for x in c: for x in c:
@ -4240,8 +4388,9 @@ def apioperationspjd(req):
zylx = Dickey.objects.get(dickeyid=data['zylx']) zylx = Dickey.objects.get(dickeyid=data['zylx'])
jdmc = data['jdmc'] jdmc = data['jdmc']
spbm = Partment.objects.get(partid=data['spbm']) spbm = Partment.objects.get(partid=data['spbm'])
spr = User.objects.get(userid=data['spr']) #spr = User.objects.get(userid=data['spr'])
Operationspjd.objects.create(jdmc=jdmc,zylx=zylx,spbm=spbm,spr=spr,usecomp=Partment.objects.get(partid=companyid)) sprs = data['spr']
Operationspjd.objects.create(jdmc=jdmc,zylx=zylx,spbm=spbm,sprs=sprs,usecomp=Partment.objects.get(partid=companyid))
return JsonResponse({"code":1}) return JsonResponse({"code":1})
elif a=='listall': elif a=='listall':
if req.GET.get('zylx'): if req.GET.get('zylx'):
@ -4250,8 +4399,9 @@ def apioperationspjd(req):
companyid = getcompany(userid) companyid = getcompany(userid)
a = Operationspjd.objects.filter(zylx=Dickey.objects.get(dickeyid=zylx),usecomp=Partment.objects.get(partid=companyid)).order_by('id') a = Operationspjd.objects.filter(zylx=Dickey.objects.get(dickeyid=zylx),usecomp=Partment.objects.get(partid=companyid)).order_by('id')
total = a.count() total = a.count()
startnum,endnum=fenye(req) a = a.values('id','jdmc','spbm__partname','sprs')
a = a[startnum:endnum].values('id','jdmc','spbm__partname','spr__name') for i in a:
i['sprnames'] = list(User.objects.filter(userid__in=i['sprs']).values_list('name',flat=True))
return HttpResponse(transjson(total,a),content_type="application/json") return HttpResponse(transjson(total,a),content_type="application/json")
elif a == 'del': elif a == 'del':
id = req.GET.get('id') id = req.GET.get('id')
@ -5092,6 +5242,13 @@ def apiriskact(req):
startnum,endnum=fenye(req) startnum,endnum=fenye(req)
a = a.order_by('area')[startnum:endnum].values('id','area__name','type__dickeyname','name','level','qrcode','group__groupname','zrbm__partname','zrr__name','gkcj') a = a.order_by('area')[startnum:endnum].values('id','area__name','type__dickeyname','name','level','qrcode','group__groupname','zrbm__partname','zrr__name','gkcj')
return HttpResponse(transjson(total,a),content_type="application/json") return HttpResponse(transjson(total,a),content_type="application/json")
elif a=='listall2':
a = RiskAct.objects
if req.GET.get('area'):
a = a.filter(area__id = req.GET.get('area'))
total = a.count()
a = a.values('id','area__name','type__dickeyname','name','level','qrcode','group__groupname','zrbm__partname','zrr__name','gkcj')
return HttpResponse(transjson(total,a),content_type="application/json")
elif a=='listself': elif a=='listself':
groups = Group.objects.filter(users=User.objects.get(userid=userid)) groups = Group.objects.filter(users=User.objects.get(userid=userid))
objs = RiskAct.objects.filter(group__in=groups) objs = RiskAct.objects.filter(group__in=groups)
@ -5455,8 +5612,8 @@ def apiriskacttask(req):
startnum,endnum=fenye(req) startnum,endnum=fenye(req)
objs = objs[startnum:endnum].values('id','riskact__group__groupname','riskact__area__name','riskact__type__dickeyname','riskact__id','riskact__group__groupid','riskact__name','riskact__level','riskact__tasktype','taskadd','taskexpire','user__userid','usable') objs = objs[startnum:endnum].values('id','riskact__group__groupname','riskact__area__name','riskact__type__dickeyname','riskact__id','riskact__group__groupid','riskact__name','riskact__level','riskact__tasktype','taskadd','taskexpire','user__userid','usable')
return HttpResponse(transjson(total,objs),content_type="application/json") return HttpResponse(transjson(total,objs),content_type="application/json")
elif a == 'listself': elif a == 'listself':#排查记录
a = RiskActTask.objects.filter(user__userid=userid,istask=1) a = RiskActTask.objects.filter(user__userid=userid)
total = a.count() total = a.count()
startnum,endnum=fenye(req) startnum,endnum=fenye(req)
a = a.order_by('-id')[startnum:endnum].values('id','riskact__level','riskact__name','riskact__area__name','riskact__place','taskdo','state','usable','riskact__group__groupname','taskadd','taskexpire','user__userid','riskact__id') a = a.order_by('-id')[startnum:endnum].values('id','riskact__level','riskact__name','riskact__area__name','riskact__place','taskdo','state','usable','riskact__group__groupname','taskadd','taskexpire','user__userid','riskact__id')