def getProcessInstanceId(loginID, env='c', MMusername='', MMpassword=''): out(f'{MMusername} 正在获取 {loginID} 对应流程实例Id……\t\t\t\t\t\t') head = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36', 'Cookie': loginMMReq(env=env, username=MMusername, password=MMpassword)['Cookie'], 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', 'Connection': 'close', } for i in range(5): r = requests.get(f'{MMdomainDic[env]}/myTask/list?page=1&limit=10', headers=head, verify=False) try: result = r.json() except json.decoder.JSONDecodeError: saveLog('查询流程实例Id失败!', r.text) time.sleep(1) continue for data in result['data']: if data['loginCode'] == loginID: return MMdomainDic[env], head, data['processInstanceId'] time.sleep(1) print('未查询到', loginID, '对应的 processInstanceId')
def addUser(company, head=''): #新增用户、角色 if not head: head = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36', 'Cookie': loginMMReq(env=company.env, username='', password='')['Cookie'], 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', 'Connection': 'close', } key = { 'userNum': '', 'loginName': company.loginID, 'realName': company.legalName, 'password': '', 'email': company.email, 'statusCd': 'Y', 'sexCd': '1', 'city': company.city, 'mobile': company.legalTel, 'entCreditCode': company.BLRN, } # userNumDic={} if company.cusType == 'CORE': roleNameDic = {'manager': 'coreManager', 'liable': 'coreLiable'} elif company.cusType == 'CUSTOMER': roleNameDic = {'manager': 'custManager', 'liable': 'custLiable'} for loginID in [company.loginID, company.opLoginID]: key['loginName'] = loginID out(f'正在为 {loginID} 新增资金管理后台用户……\t\t\t\t\t\t') for i in range(5): r = requests.post( f'{MMdomainDic[company.env]}/electronicSealUser/insert', headers=head, data=key, verify=False) try: result = r.json() except json.decoder.JSONDecodeError: time.sleep(1) continue if result['success']: out(f'为 {loginID} 新增资金管理后台用户成功!\t\t\t\t\t\t\t') # userNumDic[loginID]=result['result']['userNum'] roleType = roleNameDic['liable'] if loginID.endswith( 'b') else roleNameDic['manager'] addRole(head, company.env, result['result']['userNum'], roleType) break else: time.sleep(1) return head
def getProcessInstanceId(loginID,env='c',MMusername='******',MMpassword='******',head=False): out(f'{MMusername} 正在获取 {loginID} 对应流程实例Id……\t\t\t\t\t\t') if not head:head=loginMMReq(env=env,username=MMusername,password=MMpassword) for i in range(5): r=requests.get(f'{MMdomainDic[env]}/myTask/list?page=1&limit=10',headers=head,verify=False) try: result=r.json() except json.decoder.JSONDecodeError: saveLog('查询流程实例Id失败!',r.text) time.sleep(1);continue for data in result['data']: if data['loginCode']==loginID:return MMdomainDic[env],head,data['processInstanceId'] time.sleep(1) print('未查询到',loginID,'对应的 processInstanceId')
def factorApply(head):#发起保理申请 out('正在发起保理申请……\t\t\t\t\t\t') if not head:head=loginMMReq(env=args.env,username='',password='') key={ 'loginCode':args.loginID, 'partnerCode':'BESTPAY', 'productCode':productCodeDic[_productCodeDic[args.productCode]], 'forecastReceAmount':args.FRA, 'applyAmount':args.applyAmount, 'expectTransferAmount':args.ETA, 'expectLoanDay':args.expectLoanDay, 'loanUsage':args.loanUsage, 'factoringExpires':args.factorExp, 'fundingCode':args.daddy, 'creditAgencyCode':args.CAC, 'factoringRate':args.factorRate, 'totalPeriod':args.totalPeriod, 'discountRate':args.discountRate, 'coreEnterpriseCode':args.CEC, 'repaymentType':args.repaymentType, 'repayType':args.repayType, 'guaranteeType':args.guarante, 'loanType':args.loanType, 'isRightRecourse':args.recourse, 'factoringType':'', 'informationSources':'', 'contractSignWay':'', 'repaySource':'', 'externalEnhcType':'', 'agent':'', 'agentContact':'13207165870', 'applyTime':f'{time.strftime("%Y%m%d",time.localtime())}000000', } for i in range(5): r=requests.post(f'{MMdomainDic[args.env]}/actFactoringApply/applyLargeFactoring',headers=head,data=key,verify=False) try: result=r.json() if result['success']: print("发起保理申请成功: ",result) return True else: print("发起保理申请失败: ",result) except json.decoder.JSONDecodeError: saveLog('发起保理申请请求失败!',r.text) time.sleep(1);continue except KeyError: saveLog('发起保理申请失败,返回数据异常!',r.text) time.sleep(1);continue
def actCreditGranting(MMusername='',MMpassword=''):#授信申请发起 out(f'发起授信申请:{args.loginID}\t\t\t\t\t\t') head=loginMMReq(env=args.env,username=MMusername,password=MMpassword) key={ 'loginCode':args.loginID, 'customerType':args.cusType, 'productCode':productCodeDic[_productCodeDic[args.productCode]], } for i in range(5): r=requests.post(f'{domain}/actCreditGranting/start',headers=head,data=key,verify=False) try: result=r.json() state=result['state'] if state==1:return head except json.decoder.JSONDecodeError: saveLog(f'{args.loginID} 发起授信申请请求失败!',r.text) time.sleep(1);continue except KeyError: saveLog(f'{args.loginID} 发起授信申请失败!',str(result)) time.sleep(1);continue goonORquit() return False
def addUser(company,head=''):#新增用户、角色 if not head:head=loginMMReq(env=company.env,username='******',password='******') key={ 'userNum':'', 'loginName':company.loginID, 'realName':company.legalName, 'password':'******', 'email':company.email, 'statusCd':'Y', 'sexCd':'1', 'city':company.city, 'mobile':company.legalTel, 'entCreditCode':company.BLRN, } # userNumDic={} if company.cusType=='CORE': roleNameDic={'manager':'coreManager','liable':'coreLiable'} elif company.cusType=='CUSTOMER': roleNameDic={'manager':'custManager','liable':'custLiable'} for loginID in [company.loginID,company.opLoginID]: key['loginName']=loginID out(f'正在为 {loginID} 新增资金管理后台用户……\t\t\t\t\t\t') for i in range(5): r=requests.post(f'{MMdomainDic[company.env]}/electronicSealUser/insert',headers=head,data=key,verify=False) try: result=r.json() except json.decoder.JSONDecodeError: time.sleep(1);continue if result['success']: out(f'为 {loginID} 新增资金管理后台用户成功!\t\t\t\t\t\t\t') # userNumDic[loginID]=result['result']['userNum'] roleType=roleNameDic['liable'] if loginID.endswith('b') else roleNameDic['manager'] addRole(head,company.env,result['result']['userNum'],roleType) break else: time.sleep(1) return head
def entryCoreCompany(company,head=''):#录入核心企业 if not head:head=loginMMReq(env=company.env,username='******',password='******') a,b=str(time.time()).split('.') key={ 'customerType':'1', 'coreEnterpriseCode':f"ENT{time.strftime('%Y%m%d%H%M%S',time.localtime(int(a)))}{b}", 'coreEnterpriseName':company.companyName, 'loginCode':company.loginID, 'partnerCode':company.bankCode, 'certType':'01', 'certCode':company.legalID, 'isRealnameAuth':'1', 'coreEnterpriseType':'CTCC', 'province':'000000', 'busiManager':'*', 'remark':'', 'customerName':company.companyName, 'busiLicenseNumber':company.BLRN, 'legalPerson':company.legalName, 'legalPersonCertNo':company.legalID, 'legalPersonMobile':company.legalTel, 'registrationDate':f"{company.regTime.replace('-','')}000000", 'registeredCapital':company.regCapital, 'registeredAddr':company.officeAddr, 'enterpriseType':'国企', 'enterpriseNature':'国企', 'enterpriseScale':'国企', 'registrationAuthority':'国企', 'officeAddr':company.officeAddr, 'businessOpeningDate':f"{company.regTime.replace('-','')}000000", 'businessClosingDate':f"{company.endTime.replace('-','')}000000", 'businessScope':company.scope, 'nationalTaxNo':company.taxRegCode, 'localTaxNo':company.taxRegCode, 'organizationalCode':company.orgCode, 'organizationalValidity':f"{company.endTime.replace('-','')}000000", 'unifiedSocialCode':company.BLRN, 'importExportCert':company.permitNum, 'annualInspectionDate':f"{company.endTime.replace('-','')}000000", 'employeeNum':company.regCapital, 'shareholdersNum':company.district, 'tel':company.legalTel, 'fax':'020689745', 'email':company.email, 'establishmentBackground':'测试成立背景', 'developingProcess':'测试发展过程', 'managementStructure':'测试管理结构', 'mainProducts':'测试主要产品', 'industryPolicy':'测试行业政策', 'marketCompetition':'测试市场竞争状况', 'futureDevelopmentPlan':'测试未来发展计划', 'busiPlacesNature':'临街店面', 'busiPlacesArea':'100.00', 'busiPlacesEvaluation':'1000000.00', 'actualController':company.legalName, 'actualControllerCertNo':company.legalID, 'actualControllerMobile':company.legalTel, 'contacts':company.legalName, 'contactsMobile':company.legalTel, } for i in range(5): r=requests.post(f'{MMdomainDic[company.env]}/coreEnterprise/save',headers=head,data=key,verify=False) try: result=r.json() except json.decoder.JSONDecodeError: print('添加核心企业返回数据错误',r.text) time.sleep(1);continue if result['success']: out(f'资金后台添加 {company.loginID} 核心企业成功!\t\t\t\t\t') return result else: time.sleep(1) print(f'资金后台添加 {company.loginID} 核心企业失败!{result}') goonORquit()
def uploadExcel(idlist=[' '], env='c', save=0, noprint=1, head=0, menhuPath=''): if env in 'ps': cookiePath = os.path.join(menhuPath, f'cookie\\MM_{env}') head = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0', 'Connection': 'close' } while 1: localCookie = open(cookiePath, 'r', encoding='UTF-8').read() head['Cookie'] = localCookie if not isMMalive(head, env): if menhuPath: sendInput('生产资金后台cookie已失效,发送 更新cookie 查看更新方法') if getInput('已更新'): continue else: input('生产资金后台cookie已失效,请手动更新后回车继续:') else: break else: if not head: head = loginMMReq(env=env, username=countMM[env]['usernameMM'], password=countMM[env]['passwordMM']) for Id in idlist: if save: save_excel(Id) #将输入的营业执照号保存到excel keys = MultipartEncoder({ 'creditFile': ('Precredit.xlsx', open( 'Precredit.xlsx', 'rb' ), 'multipart/form-data', { 'Content-Type': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'Content-Disposition': 'form-data; name="creditFile"; filename="Precredit.xlsx"' }) }) head['Content-Type'] = keys.content_type for i in range(5): r = requests.post(f'{MMdomainDic[env]}/uploads/creditUploads', headers=head, data=keys, verify=False) try: result = r.json() except json.decoder.JSONDecodeError: continue try: if result['successCount'] == 1: if not noprint: print(f'成功:{Id}') break else: return 1, head else: print(f'导入预授信失败:{Id} 原因:{r.text}') return 0, 0 except (KeyError, TypeError): print('导入预授信失败,资金后台返回结果:', result) sys.exit()