全国党员管理信息系统信息检错

#全国党员管理信息系统-党员信息管理-综合查询-导出excle-运行该程序选择导出文件即可检测
import os
import xlrd
import win32ui
import docx
from docx.oxml.ns import qn


def wanzhengxing():
    global w_num
    if '' == x or '' ==d or '' ==h or '' ==z or '' ==edu or '' ==address or '' ==job:
        file.add_paragraph(a+' '+zb+'   基本信息不完善!')
        w_num=w_num+1
        if ''== x or '' ==d or '' ==h:
            print(zb+'的:'+a+' 同志缺乏重要信息,请完善!')
            return 2
         
def xingbie():
    global w_num
    xb=int(b[-2])%2
    if (xb==0 and x=='女') or (xb==1 and x=='男'):
        pass
    else:
        file.add_paragraph(a+' '+'性别错误!'+b+' '+x+' '+zb)
        w_num=w_num+1

def jiegou():
    global w_num
    xx=(int(b[0])*7+int(b[1])*9+int(b[2])*10+int(b[3])*5+int(b[4])*8+int(b[5])*4+
       int(b[6])*2+int(b[7])*1+int(b[8])*6+int(b[9])*3+int(b[10])*7+int(b[11])*9+
       int(b[12])*10+int(b[13])*5+int(b[14])*8+int(b[15])*4+int(b[16])*2)
    y=int(xx)%11
    if (y>=3 and str(12-int(y))==b[17]) or (y<2 and str(1-int(y))==b[17]) or (y==2 and b[17]=='X'):
        pass
    else:
        file.add_paragraph(a+'身份证构造有误!'+b+' '+'联系方式:'+z+' '+zb)
        w_num=w_num+1
             
             
def shengri():
    global w_num
    if int(b[6:14])==int(d[:4]+d[5:7]+d[8:10]):
        pass 
    else:
        file.add_paragraph(a+'身份证出生时间可能有误!'+b+' '+d[:10]+' '+'联系方式:'+z+' '+zb)
        w_num=w_num+1

def chengnian():
    global w_num
    if int(d[:4]+d[5:7]+d[8:10])+180000>=int(f[:4]+f[5:7]+f[8:10]):
        file.add_paragraph(a+'未满十八岁入党'+' '+d[:10]+' '+f[:10]+' '+'联系方式:'+z+' '+zb)
        w_num=w_num+1
    else:
        pass
    
def rudang():
    global w_num
    rd_time=int(f[:4]+f[5:7]+f[8:10])
    zz_time=int(g[:4]+g[5:7]+g[8:10])
    if rd_time<=19560914 and (zz_time==rd_time+600 or zz_time==rd_time+10000 or zz_time==rd_time+20000 or zz_time==rd_time+10000-600):
        return 0
    elif rd_time>=19560915 and rd_time<=19690331 and zz_time==rd_time+10000:
        return 0
    elif rd_time>=19690401 and rd_time<=19770811 and rd_time==zz_time:
        return 0
    if rd_time>=19770812 and zz_time==rd_time+10000:
        return 0
    else:
        file.add_paragraph(a+' '+'入党转正时间有误'+' '+f[:10]+' '+g[:10]+' '+zb)
        w_num=w_num+1

pwd = os.getcwd()
d=win32ui.CreateFileDialog(1)
d.SetOFNInitialDir(pwd)
d.DoModal()
files=d.GetPathName()
w_num=0

if 'xls' in files:
    file=docx.Document()
    file.styles['Normal'].font.name = u'宋体'
    file.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')
    print(files)
    file.add_paragraph(files)
    workbook=xlrd.open_workbook(files)
    sheet=workbook.sheet_by_index(0)
    n_of_rows=sheet.nrows

    for i in range(1,n_of_rows):
        #姓名
        a=sheet.cell(i,0).value    
        #身份证号码
        b=sheet.cell(i,1).value
        #性别
        x=sheet.cell(i,2).value
        #出生时间
        d=sheet.cell(i,3).value
        #学历
        edu=sheet.cell(i,7).value
        #入党时间
        f=sheet.cell(i,11).value
        #入党时间
        g=sheet.cell(i,12).value
        #工作岗位
        job=sheet.cell(i,13).value
        #人员类别
        h=sheet.cell(i,16).value
        #电话
        z=sheet.cell(i,18).value
        #支部名称
        zb=sheet.cell(i,20).value
        #家庭地址
        address=sheet.cell(i,24).value

        if wanzhengxing()==2:
            continue
        
        jiegou()
        xingbie()
        shengri()  
        chengnian()
        if h=='预备党员':
            continue
        rudang()
        
    file.add_paragraph('共检测出问题数为:'+str(w_num))
    file.save(pwd+r'\本次检测反馈结果.doc')
    print('处理结束,反馈文件已在当前目录下生成!共检出问题',w_num,'个!')
        
else:
    print('请选择党员信息汇总报告表!')

input('按任意键关闭......')

        

        



 

PS:看到自己之前写的代码想抽自己大耳巴子......

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章