comparison part
Showing
9 changed files
with
134 additions
and
66 deletions
... | @@ -1003,3 +1003,4 @@ APPLICANT_TYPE = ['COAPP', 'CUSTR', 'GAUTR1', 'GAUTR2'] | ... | @@ -1003,3 +1003,4 @@ APPLICANT_TYPE = ['COAPP', 'CUSTR', 'GAUTR1', 'GAUTR2'] |
1003 | ID_TYPE = ['ITARI', 'ITHKM', 'ITPRC', 'ITPSP', 'ITRES', 'ITTID', 'ITUSC', 'ITCCU'] | 1003 | ID_TYPE = ['ITARI', 'ITHKM', 'ITPRC', 'ITPSP', 'ITRES', 'ITTID', 'ITUSC', 'ITCCU'] |
1004 | SECOND_ID_TYPE = ['ITARI', 'ITHKM', 'ITPRC', 'ITPSP', 'ITRES', 'ITTID'] | 1004 | SECOND_ID_TYPE = ['ITARI', 'ITHKM', 'ITPRC', 'ITPSP', 'ITRES', 'ITTID'] |
1005 | SUB_TYPE = ['CSIBM', 'CSOTH', 'CSSME'] | 1005 | SUB_TYPE = ['CSIBM', 'CSOTH', 'CSSME'] |
1006 | ... | ... |
src/apps/doc/consts_bak.py
deleted
100644 → 0
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
... | @@ -165,3 +165,107 @@ class Configs(models.Model): | ... | @@ -165,3 +165,107 @@ class Configs(models.Model): |
165 | verbose_name = '配置信息' | 165 | verbose_name = '配置信息' |
166 | verbose_name_plural = verbose_name | 166 | verbose_name_plural = verbose_name |
167 | 167 | ||
168 | |||
169 | # 比对信息表 | ||
170 | class AFCComparisonInfo(models.Model): | ||
171 | id = models.BigAutoField(primary_key=True, verbose_name="id") # 主键 | ||
172 | uniq_seq = models.CharField(max_length=128, verbose_name="唯一序列号") # 索引? | ||
173 | application_id = models.CharField(max_length=64, verbose_name="申请id") # 索引 | ||
174 | # CUSTOMER_TYPE = ['TCCOR', 'TCDAS', 'TCFRE', 'TCIAS', 'TCIND', 'TCSEP', 'TCURE'] | ||
175 | customer_type = models.CharField(max_length=16, verbose_name="顾客类型") | ||
176 | application_version = models.SmallIntegerField(default=0, verbose_name="应用版本") | ||
177 | vehicle_status = models.CharField(max_length=16, verbose_name="车辆状况") # VEHICLE_STATUS = ['PCUSD', 'PCNEW'] | ||
178 | |||
179 | individual_cus_info = models.TextField(verbose_name="个人信息") | ||
180 | |||
181 | usedcar_info = models.TextField(null=True, verbose_name="二手车信息") | ||
182 | |||
183 | corporate_cus_info = models.TextField(null=True, verbose_name="企业信息") | ||
184 | |||
185 | update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间') | ||
186 | create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间') # 索引 | ||
187 | |||
188 | class Meta: | ||
189 | managed = False | ||
190 | db_table = 'afc_comparison_info' | ||
191 | situ_db_label = 'afc' | ||
192 | |||
193 | |||
194 | # 比对信息表 | ||
195 | class HILComparisonInfo(models.Model): | ||
196 | id = models.BigAutoField(primary_key=True, verbose_name="id") # 主键 | ||
197 | uniq_seq = models.CharField(max_length=128, verbose_name="唯一序列号") # 索引? | ||
198 | application_id = models.CharField(max_length=64, verbose_name="申请id") # 索引 | ||
199 | # CUSTOMER_TYPE = ['TCCOR', 'TCDAS', 'TCFRE', 'TCIAS', 'TCIND', 'TCSEP', 'TCURE'] | ||
200 | customer_type = models.CharField(max_length=16, verbose_name="顾客类型") | ||
201 | application_version = models.SmallIntegerField(default=0, verbose_name="应用版本") | ||
202 | vehicle_status = models.CharField(max_length=16, verbose_name="车辆状况") # VEHICLE_STATUS = ['PCUSD', 'PCNEW'] | ||
203 | |||
204 | individual_cus_info = models.TextField(verbose_name="个人信息") | ||
205 | |||
206 | usedcar_info = models.TextField(null=True, verbose_name="二手车信息") | ||
207 | |||
208 | corporate_cus_info = models.TextField(null=True, verbose_name="企业信息") | ||
209 | |||
210 | update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间') | ||
211 | create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间') # 索引 | ||
212 | |||
213 | class Meta: | ||
214 | managed = False | ||
215 | db_table = 'hil_comparison_info' | ||
216 | situ_db_label = 'hil' | ||
217 | |||
218 | |||
219 | # OCR结果累计表 | ||
220 | class AFCOCRResult(models.Model): | ||
221 | id = models.AutoField(primary_key=True, verbose_name="id") # 主键 | ||
222 | application_id = models.CharField(max_length=64, verbose_name="申请id") # 索引 | ||
223 | |||
224 | bs_ocr = models.TextField(null=True, verbose_name="银行流水") | ||
225 | mvi_ocr = models.TextField(null=True, verbose_name="机动车销售统一发票") | ||
226 | ic_ocr = models.TextField(null=True, verbose_name="身份证") | ||
227 | rp_ocr = models.TextField(null=True, verbose_name="居住证") | ||
228 | bc_ocr = models.TextField(null=True, verbose_name="银行卡") | ||
229 | bl_ocr = models.TextField(null=True, verbose_name="营业执照") | ||
230 | uci_ocr = models.TextField(null=True, verbose_name="二手车发票") | ||
231 | eep_ocr = models.TextField(null=True, verbose_name="港澳台通行证") | ||
232 | dl_ocr = models.TextField(null=True, verbose_name="行驶证") | ||
233 | pp_ocr = models.TextField(null=True, verbose_name="护照") | ||
234 | mvc_ocr = models.TextField(null=True, verbose_name="机动车登记证") | ||
235 | vat_ocr = models.TextField(null=True, verbose_name="增值税发票") | ||
236 | |||
237 | update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间') | ||
238 | create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间') | ||
239 | |||
240 | class Meta: | ||
241 | managed = False | ||
242 | db_table = 'afc_ocr_result' | ||
243 | situ_db_label = 'afc' | ||
244 | |||
245 | |||
246 | # OCR结果累计表 | ||
247 | class HILOCRResult(models.Model): | ||
248 | id = models.AutoField(primary_key=True, verbose_name="id") # 主键 | ||
249 | application_id = models.CharField(max_length=64, verbose_name="申请id") # 索引 | ||
250 | |||
251 | bs_ocr = models.TextField(null=True, verbose_name="银行流水") | ||
252 | mvi_ocr = models.TextField(null=True, verbose_name="机动车销售统一发票") | ||
253 | ic_ocr = models.TextField(null=True, verbose_name="身份证") | ||
254 | rp_ocr = models.TextField(null=True, verbose_name="居住证") | ||
255 | bc_ocr = models.TextField(null=True, verbose_name="银行卡") | ||
256 | bl_ocr = models.TextField(null=True, verbose_name="营业执照") | ||
257 | uci_ocr = models.TextField(null=True, verbose_name="二手车发票") | ||
258 | eep_ocr = models.TextField(null=True, verbose_name="港澳台通行证") | ||
259 | dl_ocr = models.TextField(null=True, verbose_name="行驶证") | ||
260 | pp_ocr = models.TextField(null=True, verbose_name="护照") | ||
261 | mvc_ocr = models.TextField(null=True, verbose_name="机动车登记证") | ||
262 | vat_ocr = models.TextField(null=True, verbose_name="增值税发票") | ||
263 | |||
264 | update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间') | ||
265 | create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间') | ||
266 | |||
267 | class Meta: | ||
268 | managed = False | ||
269 | db_table = 'hil_ocr_result' | ||
270 | situ_db_label = 'hil' | ||
271 | ... | ... |
src/apps/doc/ocr/wb_bak.py
deleted
100644 → 0
This diff is collapsed.
Click to expand it.
... | @@ -15,11 +15,11 @@ from common import response | ... | @@ -15,11 +15,11 @@ from common import response |
15 | from common.mixins import GenericView | 15 | from common.mixins import GenericView |
16 | from common.tools.file_tools import file_write | 16 | from common.tools.file_tools import file_write |
17 | from common.redis_cache import redis_handler as rh | 17 | from common.redis_cache import redis_handler as rh |
18 | from .models import UploadDocRecords, DocStatus, PriorityApplication, GCAPRecords | 18 | from .models import UploadDocRecords, DocStatus, PriorityApplication, GCAPRecords, AFCComparisonInfo, HILComparisonInfo |
19 | from .mixins import DocHandler | 19 | from .mixins import DocHandler |
20 | from . import consts | 20 | from . import consts |
21 | from apps.account.authentication import OAuth2AuthenticationWithUser | 21 | from apps.account.authentication import OAuth2AuthenticationWithUser |
22 | from celery_compare.tasks import test | 22 | from celery_compare.tasks import compare |
23 | 23 | ||
24 | 24 | ||
25 | # restframework将request.body封装至request.data, webargs从request.data中获取参数 | 25 | # restframework将request.body封装至request.data, webargs从request.data中获取参数 |
... | @@ -312,8 +312,23 @@ class CompareView(GenericView): | ... | @@ -312,8 +312,23 @@ class CompareView(GenericView): |
312 | # pos上传比对信息接口 | 312 | # pos上传比对信息接口 |
313 | @use_args(compare_args, location='data') | 313 | @use_args(compare_args, location='data') |
314 | def post(self, request, args): | 314 | def post(self, request, args): |
315 | self.running_log.info('in') | 315 | # 存库 |
316 | test.apply_async((args, ), queue='queue_compare') | 316 | uniq_seq = args.get('uniqSeq') |
317 | business_type = args.get('applicationEntity') | ||
318 | application_id = args.get('applicationId') | ||
319 | comparison_class = HILComparisonInfo if business_type in consts.HIL_SET else AFCComparisonInfo | ||
320 | comparison_class.objects.create( | ||
321 | uniq_seq=uniq_seq, | ||
322 | application_id=application_id, | ||
323 | customer_type=args.get('customerType'), | ||
324 | application_version=args.get('applicationVersion'), | ||
325 | vehicle_status=args.get('vehicleStatus'), | ||
326 | individual_cus_info=None, | ||
327 | usedcar_info=None, | ||
328 | corporate_cus_info=None, | ||
329 | ) | ||
330 | # 触发比对 | ||
331 | compare.apply_async((application_id, business_type, uniq_seq, None), queue='queue_compare') | ||
317 | return response.ok() | 332 | return response.ok() |
318 | 333 | ||
319 | post.openapi_doc = ''' | 334 | post.openapi_doc = ''' | ... | ... |
... | @@ -8,4 +8,4 @@ broker = conf.CELERY_BROKER_URL | ... | @@ -8,4 +8,4 @@ broker = conf.CELERY_BROKER_URL |
8 | 8 | ||
9 | app = Celery('celery_compare', broker=broker, include=['celery_compare.tasks']) | 9 | app = Celery('celery_compare', broker=broker, include=['celery_compare.tasks']) |
10 | 10 | ||
11 | app.conf.update(worker_max_tasks_per_child=5, timezone='Asia/Shanghai') | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
11 | app.conf.update(worker_max_tasks_per_child=5, timezone='Asia/Shanghai') | ... | ... |
... | @@ -6,7 +6,12 @@ compare_log = logging.getLogger('compare') | ... | @@ -6,7 +6,12 @@ compare_log = logging.getLogger('compare') |
6 | 6 | ||
7 | 7 | ||
8 | @app.task | 8 | @app.task |
9 | def test(info): | 9 | def compare(application_id, application_entity, uniq_seq, ocr_res_id): |
10 | doc = AFCDoc.objects.filter(id=1).first() | 10 | # POS: application_id, application_entity, uniq_seq, None |
11 | compare_log.info(doc.id) | 11 | # OCR: application_id, business_type(application_entity), None, ocr_res_id |
12 | compare_log.info(info) | 12 | |
13 | # 根据application_id查找最新的比对信息,如果没有,结束 | ||
14 | # 分析比对信息,需要比对的license | ||
15 | # 根据application_id查找OCR累计结果指定license字段,如果没有,结束 | ||
16 | # 比对信息,将比对结果发送GCAP | ||
17 | pass | ... | ... |
src/common/tools/mail.py
deleted
100644 → 0
1 | import os | ||
2 | import smtplib | ||
3 | from email import encoders | ||
4 | from email.header import Header | ||
5 | from email.mime.base import MIMEBase | ||
6 | from email.mime.multipart import MIMEMultipart | ||
7 | from email.mime.text import MIMEText | ||
8 | |||
9 | MAIL_SERVER_HOST = 'smtp.exmail.qq.com' | ||
10 | MAIL_SERVER_PORT = 25 | ||
11 | |||
12 | TIME_OUT = 50 | ||
13 | |||
14 | |||
15 | class MailSender: | ||
16 | |||
17 | def __init__(self, sender, pwd): | ||
18 | self.sender = sender | ||
19 | self.pwd = pwd | ||
20 | self.server = smtplib.SMTP(timeout=TIME_OUT) | ||
21 | self.server.debuglevel = 0 | ||
22 | self.server.connect(host=MAIL_SERVER_HOST, | ||
23 | port=MAIL_SERVER_PORT,) | ||
24 | self.server.login(self.sender, self.pwd) | ||
25 | |||
26 | def close(self): | ||
27 | self.server.close() | ||
28 | |||
29 | def send(self, to_addrs, subject, content, file_list=[]): | ||
30 | msg = MIMEMultipart() | ||
31 | |||
32 | for att_file in file_list: | ||
33 | att = MIMEBase('application', 'octet-stream') | ||
34 | att.set_payload(open(att_file, 'rb').read()) | ||
35 | encoders.encode_base64(att) | ||
36 | att.add_header('Content-Disposition', | ||
37 | 'attachment', | ||
38 | filename=Header(os.path.basename(att_file), 'utf-8').encode()) | ||
39 | msg.attach(att) | ||
40 | |||
41 | msg['Subject'] = Header(subject, 'utf-8') | ||
42 | msg['From'] = self.sender | ||
43 | msg['To'] = ','.join(to_addrs) | ||
44 | |||
45 | content = u'Hi:<br><br>' + \ | ||
46 | content + \ | ||
47 | u'<br><br>祝好!<br><br><br>本邮件为系统自动发送,请勿直接回复!<hr>' | ||
48 | |||
49 | msg.attach(MIMEText(content.encode('utf-8'), 'html', 'utf-8')) | ||
50 | self.server.sendmail(self.sender, to_addrs, msg.as_string()) | ||
51 | # smtplib.SMTPServerDisconnected | ||
52 | |||
53 | |||
54 | # if __name__ == '__main__': | ||
55 | # mail_sender = MailSender() | ||
56 | # mail_sender.send(['1304057458@qq.com'], 'hello', 'world.', []) | ||
57 | # mail_sender.close() |
-
Please register or sign in to post a comment