liusheng
2024-04-22 2825e5d603737bc596c0aca6c39929949ac240c7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
package com.ruoyi.quartz.task;
 
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.bean.DtoConversionUtils;
import com.ruoyi.project.domain.*;
import com.ruoyi.project.domain.vo.DingTalkReqVo;
import com.ruoyi.project.service.*;
import com.ruoyi.system.mapper.SysUserMapper;
import com.ruoyi.system.service.ISysUserService;
import com.taobao.api.ApiException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.ruoyi.common.utils.StringUtils;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
 
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.locks.ReentrantLock;
 
/**
 * 定时任务调度测试
 *
 * @author ruoyi
 */
@Component("ryTask")
@Slf4j
public class RyTask {
    @Autowired
    private DingTalkService dingTalkService;
 
    @Autowired
    private IServiceReimbursementService serviceReimbursementService;
 
    @Autowired
    private IServiceTasknumService ServiceTasknumService;
 
    @Autowired
    private IServiceReimbursementSharedService serviceReimbursementSharedService;
 
    @Autowired
    private IServiceFundSharedService serviceFundSharedService;
 
    @Autowired
    private IServiceFundflowruleService iServiceFundflowruleService;
 
    @Autowired
    private IServiceFundService serviceFundService;
 
    @Autowired
    private ISysUserService sysUserService;
 
 
    @Autowired
    private IServiceFundflowService fundflowService;
 
    public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i) {
        System.out.println(StringUtils.format("执行多参方法: 字符串类型{},布尔类型{},长整型{},浮点型{},整形{}", s, b, l, d, i));
    }
 
    public void ryParams(String params) {
        System.out.println("执行有参方法:" + params);
    }
 
    public void ryNoParams() {
        System.out.println("执行无参方法");
    }
 
    public void checkReportInfo() throws ApiException {
        //查出所有被医院退回的Fund数据
        List<ServiceFundShared> serviceFundShareds = serviceFundSharedService.queryFundShareList();
        for (ServiceFundShared serviceFundShared : serviceFundShareds) {
            if (StringUtils.isNotBlank(serviceFundShared.getOabdzt()) && serviceFundShared.getOabdzt().equals("已撤销")) {
                //如果有财务驳回信息说明是退回的
                String[] split = null;
                if (StringUtils.isNotEmpty(serviceFundShared.getCxrjyj())) {
                    split = serviceFundShared.getCxrjyj().split("&");
                }
                String phone = serviceFundShared.getPhone();
                //将分享里的该数据删除
                serviceFundSharedService.delfundsharedInfoById(serviceFundShared.getId());
 
                ServiceFund serviceFund = new ServiceFund();
                serviceFund.setId(serviceFundShared.getSerfunid());
                List<ServiceFund> serviceFunds = serviceFundService.queryInfoById(serviceFund);
                ServiceFund serviceFund1 = serviceFunds.get(0);
                serviceFund1.setFlowlevel(100L);
                serviceFund1.setDel_flag(0);
                serviceFund1.setRecordstatus(-1);
                serviceFund1.setBackflowlevel(199);
                serviceFundService.updateById(serviceFund1);
 
                SysUser sysUser = sysUserService.selectUserByUserName(serviceFund1.getUserno());
                sendMeg(split, sysUser.getPhonenumber(), serviceFundShared.getApplytype(), 2, serviceFundShared.getSerfunid());
            } else {
                //不是退回的操作
                if (StringUtils.isNotBlank(serviceFundShared.getZffs()) && serviceFundShared.getSpjg() == 0) {
                    String bh = myMethod();
                    //钱已经到帐,并且审批结果为0,说明审批结束,但数据还没有同步到fund表和fundflow表;对fund表和fundflow表进行更新,并将0改成1
                    ServiceFund serviceFund = new ServiceFund();
                    serviceFund.setBh(serviceFundShared.getBh());
                    serviceFund.setId(serviceFundShared.getSerfunid());
                    serviceFund.setZffs(serviceFundShared.getZffs());
                    if (StringUtils.isNotBlank(serviceFundShared.getPresident())) {
                        serviceFund.setPresident(serviceFundShared.getPresident());
                    }
                    if (StringUtils.isNotBlank(serviceFundShared.getFinvicepresident())) {
                        serviceFund.setFinvicepresident(serviceFundShared.getFinvicepresident());
                    }
                    if (StringUtils.isNotBlank(serviceFundShared.getBusvicepresident())) {
                        serviceFund.setBusvicepresident(serviceFundShared.getBusvicepresident());
                    }
                    if (StringUtils.isNotBlank(serviceFundShared.getOfficedirector())) {
                        serviceFund.setOfficedirector(serviceFundShared.getOfficedirector());
                    }
                    if (StringUtils.isNotBlank(serviceFundShared.getFinancedirector())) {
                        serviceFund.setFinancedirector(serviceFundShared.getFinancedirector());
                    }
                    if (StringUtils.isNotBlank(serviceFundShared.getFinancechecher())) {
                        serviceFund.setFinancechecher(serviceFundShared.getFinancechecher());
                    }
                    serviceFund.setRiqi(serviceFundShared.getRiqi());
                    boolean b = serviceFundService.updateById(serviceFund);
                    log.info("更新serviceFund里的zffs表是否成功: {}", b);
                    ServiceFundflow serviceFundflow = new ServiceFundflow();
                    serviceFundflow.setCreateBy("admin");
                    serviceFundflow.setCreateTime(new Date());
                    serviceFundflow.setUpdateBy("admin");
                    serviceFundflow.setUpdateTime(new Date());
                    //用三个审批人,如果都为空,就为空
                    String spname = "";
                    if (StringUtils.isNotBlank(serviceFundShared.getPresident())) {
                        serviceFundflow.setCheckusername(serviceFundShared.getPresident().substring(0, serviceFundShared.getPresident().indexOf(" ")));
                        //更新校验时间
                        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
                        Date parse = new Date();
                        try {
                            parse = simpleDateFormat.parse(serviceFundShared.getPresident().substring(serviceFundShared.getPresident().indexOf(" ") + 1, serviceFundShared.getPresident().length()));
                        } catch (ParseException e) {
                            e.printStackTrace();
                        }
                        serviceFundflow.setCheckTime(parse);
                        spname = spname + serviceFundShared.getPresident() + "  ";
                    }
                    if (StringUtils.isNotBlank(serviceFundShared.getFinvicepresident())) {
                        serviceFundflow.setCheckusername(serviceFundShared.getFinvicepresident().substring(0, serviceFundShared.getFinvicepresident().indexOf(" ")));
                        //更新校验时间
                        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
                        Date parse = new Date();
                        try {
                            parse = simpleDateFormat.parse(serviceFundShared.getFinvicepresident().substring(serviceFundShared.getFinvicepresident().indexOf(" ") + 1, serviceFundShared.getFinvicepresident().length()));
                        } catch (ParseException e) {
                            e.printStackTrace();
                        }
                        serviceFundflow.setCheckTime(parse);
                        spname = spname + serviceFundShared.getFinvicepresident() + "  ";
                    }
                    if (StringUtils.isNotBlank(serviceFundShared.getBusvicepresident())) {
                        serviceFundflow.setCheckusername(serviceFundShared.getBusvicepresident().substring(0, serviceFundShared.getBusvicepresident().indexOf(" ")));
                        //更新校验时间
                        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
                        Date parse = new Date();
                        try {
                            parse = simpleDateFormat.parse(serviceFundShared.getBusvicepresident().substring(serviceFundShared.getBusvicepresident().indexOf(" ") + 1, serviceFundShared.getBusvicepresident().length()));
                        } catch (ParseException e) {
                            e.printStackTrace();
                        }
                        serviceFundflow.setCheckTime(parse);
                        spname = spname + serviceFundShared.getBusvicepresident() + "  ";
                    }
                    serviceFundflow.setFlowcontent(spname + "审批通过");
                    serviceFundflow.setFlowconclusion(1);
                    serviceFundflow.setFundtype(2);
                    // 999 通过
                    serviceFundflow.setFlowlevel(999);
                    serviceFundflow.setApplytype(serviceFundShared.getApplytype());
                    serviceFundflow.setFundid(serviceFundShared.getSerfunid());
                    serviceFundShared.setSpjg(1);
                    fundflowService.save(serviceFundflow);
 
                    serviceFundflow.setFlowcontent("已付款 : " + serviceFundShared.getZffs());
                    serviceFundflow.setId(null);
                    fundflowService.save(serviceFundflow);
                    //将审批状态改成1
                    serviceFundSharedService.updateById(serviceFundShared);
 
                } else if (StringUtils.isNotBlank(serviceFundShared.getZffs()) && serviceFundShared.getSpjg() == 1) {
                    //钱已经到帐,并且审批结果为1,审批结束,就不管那些领导是否签字了
                    continue;
                }
 
                ServiceFund serviceFund = new ServiceFund();
                serviceFund.setId(serviceFundShared.getSerfunid());
                List<ServiceFund> serviceFunds = serviceFundService.queryList(serviceFund);
                if (!CollectionUtils.isEmpty(serviceFunds)) {
                    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
                    Date parse = new Date();
 
 
                    if (StringUtils.isNotBlank(serviceFundShared.getPresident())) {
                        //先查询一下fund是否已经更新President,如果没有更新,则进行更新,并往fundflow表里插一条数据
                        if (StringUtils.isEmpty(serviceFunds.get(0).getPresident())) {
                            try {
                                parse = simpleDateFormat.parse(serviceFundShared.getPresident().substring(serviceFundShared.getPresident().indexOf(" ") + 1, serviceFundShared.getPresident().length()));
                            } catch (ParseException e) {
                                e.printStackTrace();
                            }
                            serviceFund.setPresident(serviceFundShared.getPresident());
                            serviceFundService.updateById(serviceFund);
 
                            //将操作保存到fundflow表中
                            ServiceFundflow serviceFundflow = new ServiceFundflow();
                            serviceFundflow.setCreateBy("admin");
                            serviceFundflow.setCreateTime(new Date());
                            serviceFundflow.setUpdateBy("admin");
                            serviceFundflow.setUpdateTime(new Date());
                            serviceFundflow.setCheckusername(serviceFundShared.getPresident().substring(0, serviceFundShared.getPresident().indexOf(" ")));
                            serviceFundflow.setFlowcontent(serviceFundShared.getPresident().substring(0, serviceFundShared.getPresident().indexOf(" ")) + "审批通过");
                            serviceFundflow.setFlowconclusion(1);
                            serviceFundflow.setFundtype(2);
                            serviceFundflow.setFlowlevel(999);
                            serviceFundflow.setApplytype(serviceFundShared.getApplytype());
                            serviceFundflow.setFundid(serviceFundShared.getSerfunid());
                            serviceFundflow.setCheckTime(parse);
                            fundflowService.save(serviceFundflow);
 
                        }
                        //如果已经更新则不在处理
 
                    }
                    if (StringUtils.isNotBlank(serviceFundShared.getFinvicepresident())) {
                        try {
                            parse = simpleDateFormat.parse(serviceFundShared.getFinvicepresident().substring(serviceFundShared.getFinvicepresident().indexOf(" ") + 1, serviceFundShared.getFinvicepresident().length()));
                        } catch (ParseException e) {
                            e.printStackTrace();
                        }
                        //先查询一下fund是否已经更新Finvicepresident,如果没有更新,则进行更新,并往fundflow表里插一条数据
                        if (StringUtils.isEmpty(serviceFunds.get(0).getFinvicepresident())) {
                            serviceFund.setFinvicepresident(serviceFundShared.getFinvicepresident());
                            serviceFundService.updateById(serviceFund);
 
                            //将操作保存到fundflow表中
                            ServiceFundflow serviceFundflow = new ServiceFundflow();
                            serviceFundflow.setCreateBy("admin");
                            serviceFundflow.setCreateTime(new Date());
                            serviceFundflow.setUpdateBy("admin");
                            serviceFundflow.setUpdateTime(new Date());
                            serviceFundflow.setCheckusername(serviceFundShared.getFinvicepresident().substring(0, serviceFundShared.getFinvicepresident().indexOf(" ")));
                            serviceFundflow.setFlowcontent(serviceFundShared.getFinvicepresident().substring(0, serviceFundShared.getFinvicepresident().indexOf(" ")) + "审批通过");
                            serviceFundflow.setFlowconclusion(1);
                            serviceFundflow.setFundtype(2);
                            serviceFundflow.setFlowlevel(999);
                            serviceFundflow.setApplytype(serviceFundShared.getApplytype());
                            serviceFundflow.setFundid(serviceFundShared.getSerfunid());
                            serviceFundflow.setCheckTime(parse);
                            fundflowService.save(serviceFundflow);
 
                        }
                        //如果已经更新则不在处理
                    }
                    if (StringUtils.isNotBlank(serviceFundShared.getBusvicepresident())) {
                        try {
                            parse = simpleDateFormat.parse(serviceFundShared.getBusvicepresident().substring(serviceFundShared.getBusvicepresident().indexOf(" ") + 1, serviceFundShared.getBusvicepresident().length()));
                        } catch (ParseException e) {
                            e.printStackTrace();
                        }
                        //先查询一下fund是否已经更新Busvicepresident,如果没有更新,则进行更新,并往fundflow表里插一条数据
                        if (StringUtils.isEmpty(serviceFunds.get(0).getBusvicepresident())) {
                            serviceFund.setBusvicepresident(serviceFundShared.getBusvicepresident());
                            serviceFundService.updateById(serviceFund);
 
                            //将操作保存到fundflow表中
                            ServiceFundflow serviceFundflow = new ServiceFundflow();
                            serviceFundflow.setCreateBy("admin");
                            serviceFundflow.setCreateTime(new Date());
                            serviceFundflow.setUpdateBy("admin");
                            serviceFundflow.setUpdateTime(new Date());
                            serviceFundflow.setCheckusername(serviceFundShared.getBusvicepresident().substring(0, serviceFundShared.getBusvicepresident().indexOf(" ")));
                            serviceFundflow.setFlowcontent(serviceFundShared.getBusvicepresident().substring(0, serviceFundShared.getBusvicepresident().indexOf(" ")) + "通过");
                            serviceFundflow.setFlowconclusion(1);
                            serviceFundflow.setFundtype(2);
                            serviceFundflow.setFlowlevel(999);
                            serviceFundflow.setApplytype(serviceFundShared.getApplytype());
                            serviceFundflow.setFundid(serviceFundShared.getSerfunid());
                            serviceFundflow.setCheckTime(parse);
                            fundflowService.save(serviceFundflow);
 
                        }
                        //如果已经更新则不在处理
                    }
                }
            }
        }
 
 
        //查出所有被医院退回的Reimbursement数据
        List<ServiceReimbursementShared> serviceReimbursementShareds = serviceReimbursementSharedService.queryReShareList();
        for (ServiceReimbursementShared serviceReimbursementShared : serviceReimbursementShareds) {
            if (StringUtils.isNotBlank(serviceReimbursementShared.getOabdzt()) && serviceReimbursementShared.getOabdzt().equals("已撤销")) {
                String phone = serviceReimbursementShared.getPhone();
                String[] split = null;
                log.info("serviceReimbursementShared.getCxrjyj(): {}", serviceReimbursementShared.getCxrjyj());
                if (StringUtils.isNotBlank(serviceReimbursementShared.getCxrjyj())) {
                    split = serviceReimbursementShared.getCxrjyj().split("&");
                }
 
                //将分享里的该数据删除
                Boolean aBoolean = serviceReimbursementSharedService.delResharedInfoById(serviceReimbursementShared.getId());
                log.info("将分享里的该数据删除: {}",aBoolean);
                //将Flowlevel 设置为0;
                ServiceReimbursement serviceReimbursement = new ServiceReimbursement();
                serviceReimbursement.setId(serviceReimbursementShared.getReimid());
                List<ServiceReimbursement> serviceReimbursementList = serviceReimbursementService.queryList(serviceReimbursement);
                ServiceReimbursement serviceReimbursement1 = serviceReimbursementList.get(0);
                serviceReimbursement1.setFlowlevel(100L);
                serviceReimbursement1.setDelFlag(0);
                serviceReimbursement1.setUploadStates(0);
                serviceReimbursement1.setBackflowlevel(199L);
                serviceReimbursement1.setRecordstatus(-1);
                serviceReimbursementService.updateById(serviceReimbursement1);
 
                SysUser sysUser = sysUserService.selectUserByUserName(serviceReimbursement1.getUserno());
                sendMeg(split, sysUser.getPhonenumber(), "0", 1, serviceReimbursementShared.getReimid());
            } else {
                //不是退回的操作
 
                if (StringUtils.isNotBlank(serviceReimbursementShared.getZffs()) && serviceReimbursementShared.getSpjg() == 0) {
                    String bh = myMethod();
                    //钱已经到帐,并且审批结果为0(0为审批中),说明审批结束,但数据还没有同步到fund表和fundflow表;对fund表和fundflow表进行更新,并将0改成1(1审批结束)
                    ServiceReimbursement serviceReimbursement = new ServiceReimbursement();
                    serviceReimbursement.setId(serviceReimbursementShared.getReimid());
                    serviceReimbursement.setZffs(serviceReimbursementShared.getZffs());
                    serviceReimbursement.setRiqi(serviceReimbursementShared.getRiqi());
                    serviceReimbursement.setBh(serviceReimbursementShared.getBh());
                    if (StringUtils.isNotBlank(serviceReimbursementShared.getPresident())) {
                        serviceReimbursement.setPresident(serviceReimbursementShared.getPresident());
                    }
                    if (StringUtils.isNotBlank(serviceReimbursementShared.getFinvicepresident())) {
                        serviceReimbursement.setFinvicepresident(serviceReimbursementShared.getFinvicepresident());
                    }
                    if (StringUtils.isNotBlank(serviceReimbursementShared.getBusvicepresident())) {
                        serviceReimbursement.setBusvicepresident(serviceReimbursementShared.getBusvicepresident());
                    }
                    if (StringUtils.isNotBlank(serviceReimbursementShared.getOfficedirector())) {
                        serviceReimbursement.setOfficedirector(serviceReimbursementShared.getOfficedirector());
                    }
                    if (StringUtils.isNotBlank(serviceReimbursementShared.getFinancedirector())) {
                        serviceReimbursement.setFinancedirector(serviceReimbursementShared.getFinancedirector());
                    }
                    if (StringUtils.isNotBlank(serviceReimbursementShared.getFinancechecher())) {
                        serviceReimbursement.setFinancechecher(serviceReimbursementShared.getFinancechecher());
                    }
                    boolean b = serviceReimbursementService.updateById(serviceReimbursement);
                    log.info("更新serviceReimbursement里的zffs表是否成功: {}", b);
                    ServiceFundflow serviceFundflow = new ServiceFundflow();
                    serviceFundflow.setCreateBy("admin");
                    serviceFundflow.setCreateTime(new Date());
                    serviceFundflow.setUpdateBy("admin");
                    serviceFundflow.setUpdateTime(new Date());
                    //用三个审批人,如果都为空,就为空
                    String spName = "";
 
                    if (StringUtils.isNotBlank(serviceReimbursementShared.getPresident())) {
                        serviceFundflow.setCheckusername(serviceReimbursementShared.getPresident().substring(0, serviceReimbursementShared.getPresident().indexOf(" ")));
                        //更新校验时间
                        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
                        Date parse = new Date();
                        try {
                            parse = simpleDateFormat.parse(serviceReimbursementShared.getPresident().substring(serviceReimbursementShared.getPresident().indexOf(" ") + 1, serviceReimbursementShared.getPresident().length()));
                        } catch (ParseException e) {
                            e.printStackTrace();
                        }
                        serviceFundflow.setCheckTime(parse);
                        spName = spName + serviceReimbursementShared.getPresident() + "  ";
                    }
                    if (StringUtils.isNotBlank(serviceReimbursementShared.getFinvicepresident())) {
                        serviceFundflow.setCheckusername(serviceReimbursementShared.getFinvicepresident().substring(0, serviceReimbursementShared.getFinvicepresident().indexOf(" ")));
                        //更新校验时间
                        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
                        Date parse = new Date();
                        try {
                            parse = simpleDateFormat.parse(serviceReimbursementShared.getFinvicepresident().substring(serviceReimbursementShared.getFinvicepresident().indexOf(" ") + 1, serviceReimbursementShared.getFinvicepresident().length()));
                        } catch (ParseException e) {
                            e.printStackTrace();
                        }
                        serviceFundflow.setCheckTime(parse);
                        spName = spName + serviceReimbursementShared.getFinvicepresident() + "  ";
                    }
                    if (StringUtils.isNotBlank(serviceReimbursementShared.getBusvicepresident())) {
                        serviceFundflow.setCheckusername(serviceReimbursementShared.getBusvicepresident().substring(0, serviceReimbursementShared.getBusvicepresident().indexOf(" ")));
                        //更新校验时间
                        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
                        Date parse = new Date();
                        try {
                            parse = simpleDateFormat.parse(serviceReimbursementShared.getBusvicepresident().substring(serviceReimbursementShared.getBusvicepresident().indexOf(" ") + 1, serviceReimbursementShared.getBusvicepresident().length()));
                        } catch (ParseException e) {
                            e.printStackTrace();
                        }
                        serviceFundflow.setCheckTime(parse);
                        spName = spName + serviceReimbursementShared.getBusvicepresident() + "  ";
                    }
                    serviceFundflow.setFlowcontent(spName + "审批通过");
                    serviceFundflow.setFlowconclusion(1);
                    serviceFundflow.setFundtype(1);
                    // 999 通过
                    serviceFundflow.setFlowlevel(999);
                    serviceFundflow.setApplytype("0");
                    serviceFundflow.setFundid(serviceReimbursementShared.getReimid());
 
                    serviceReimbursementShared.setSpjg(1);
                    fundflowService.save(serviceFundflow);
                    serviceFundflow.setFlowcontent("已付款 : " + serviceReimbursementShared.getZffs());
                    serviceFundflow.setId(null);
                    fundflowService.save(serviceFundflow);
                    serviceReimbursementSharedService.updateById(serviceReimbursementShared);
 
                } else if (StringUtils.isNotBlank(serviceReimbursementShared.getZffs()) && serviceReimbursementShared.getSpjg().equals("1")) {
                    //钱已经到帐,并且审批结果为1,审批结束,就不管那些领导是否签字了
                    continue;
                }
 
                ServiceReimbursement reimbursement = new ServiceReimbursement();
                reimbursement.setId(serviceReimbursementShared.getReimid());
                List<ServiceReimbursement> serviceReimbursementList = serviceReimbursementService.queryList(reimbursement);
                if (!CollectionUtils.isEmpty(serviceReimbursementList)) {
                    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
                    Date parse = new Date();
 
                    if (StringUtils.isNotBlank(serviceReimbursementShared.getPresident())) {
                        try {
                            parse = simpleDateFormat.parse(serviceReimbursementShared.getPresident().substring(serviceReimbursementShared.getPresident().indexOf(" ") + 1, serviceReimbursementShared.getPresident().length()));
                        } catch (ParseException e) {
                            e.printStackTrace();
                        }
                        //先查询一下fund是否已经更新President,如果没有更新,则进行更新,并往fundflow表里插一条数据
                        if (StringUtils.isEmpty(serviceReimbursementList.get(0).getPresident())) {
                            reimbursement.setPresident(serviceReimbursementShared.getPresident());
 
                            serviceReimbursementService.updateById(reimbursement);
 
                            //将操作保存到fundflow表中
                            ServiceFundflow serviceFundflow = new ServiceFundflow();
                            serviceFundflow.setCreateBy("admin");
                            serviceFundflow.setCreateTime(new Date());
                            serviceFundflow.setUpdateBy("admin");
                            serviceFundflow.setUpdateTime(new Date());
                            serviceFundflow.setCheckusername(serviceReimbursementShared.getPresident().substring(0, serviceReimbursementShared.getPresident().indexOf(" ")));
                            serviceFundflow.setFlowcontent(serviceReimbursementShared.getPresident().substring(0, serviceReimbursementShared.getPresident().indexOf(" ")) + "审批通过");
                            serviceFundflow.setFlowconclusion(1);
                            serviceFundflow.setFundtype(1);
                            serviceFundflow.setFlowlevel(999);
                            serviceFundflow.setApplytype("0");
                            serviceFundflow.setFundid(serviceReimbursementShared.getReimid());
                            serviceFundflow.setCheckTime(parse);
                            fundflowService.save(serviceFundflow);
 
                        }
                        //如果已经更新则不在处理
 
                    }
                    if (StringUtils.isNotBlank(serviceReimbursementShared.getFinvicepresident())) {
                        try {
                            parse = simpleDateFormat.parse(serviceReimbursementShared.getFinvicepresident().substring(serviceReimbursementShared.getFinvicepresident().indexOf(" ") + 1, serviceReimbursementShared.getFinvicepresident().length()));
                        } catch (ParseException e) {
                            e.printStackTrace();
                        }
                        //先查询一下fund是否已经更新Finvicepresident,如果没有更新,则进行更新,并往fundflow表里插一条数据
                        if (StringUtils.isEmpty(serviceReimbursementList.get(0).getFinvicepresident())) {
                            reimbursement.setFinvicepresident(serviceReimbursementShared.getFinvicepresident());
                            serviceReimbursementService.updateById(reimbursement);
 
                            //将操作保存到fundflow表中
                            ServiceFundflow serviceFundflow = new ServiceFundflow();
                            serviceFundflow.setCreateBy("admin");
                            serviceFundflow.setCreateTime(new Date());
                            serviceFundflow.setUpdateBy("admin");
                            serviceFundflow.setUpdateTime(new Date());
                            serviceFundflow.setCheckusername(serviceReimbursementShared.getFinvicepresident().substring(0, serviceReimbursementShared.getFinvicepresident().indexOf(" ")));
                            serviceFundflow.setFlowcontent(serviceReimbursementShared.getFinvicepresident().substring(0, serviceReimbursementShared.getFinvicepresident().indexOf(" ")) + "审批通过");
                            serviceFundflow.setFlowconclusion(1);
                            serviceFundflow.setFundtype(1);
                            serviceFundflow.setFlowlevel(999);
                            serviceFundflow.setApplytype("0");
                            serviceFundflow.setCheckTime(parse);
                            serviceFundflow.setFundid(serviceReimbursementShared.getReimid());
                            fundflowService.save(serviceFundflow);
 
                        }
                        //如果已经更新则不在处理
                    }
                    if (StringUtils.isNotBlank(serviceReimbursementShared.getBusvicepresident())) {
                        try {
                            parse = simpleDateFormat.parse(serviceReimbursementShared.getBusvicepresident().substring(serviceReimbursementShared.getBusvicepresident().indexOf(" ") + 1, serviceReimbursementShared.getBusvicepresident().length()));
                        } catch (ParseException e) {
                            e.printStackTrace();
                        }
                        //先查询一下fund是否已经更新Busvicepresident,如果没有更新,则进行更新,并往fundflow表里插一条数据
                        if (StringUtils.isEmpty(serviceReimbursementList.get(0).getBusvicepresident())) {
                            reimbursement.setBusvicepresident(serviceReimbursementShared.getBusvicepresident());
                            serviceReimbursementService.updateById(reimbursement);
 
                            //将操作保存到fundflow表中
                            ServiceFundflow serviceFundflow = new ServiceFundflow();
                            serviceFundflow.setCreateBy("admin");
                            serviceFundflow.setCreateTime(new Date());
                            serviceFundflow.setUpdateBy("admin");
                            serviceFundflow.setUpdateTime(new Date());
                            serviceFundflow.setCheckusername(serviceReimbursementShared.getBusvicepresident().substring(0, serviceReimbursementShared.getBusvicepresident().indexOf(" ")));
                            serviceFundflow.setFlowcontent(serviceReimbursementShared.getBusvicepresident().substring(0, serviceReimbursementShared.getBusvicepresident().indexOf(" ")) + "审批通过");
                            serviceFundflow.setFlowconclusion(1);
                            serviceFundflow.setFundtype(1);
                            serviceFundflow.setFlowlevel(999);
                            serviceFundflow.setApplytype("0");
                            serviceFundflow.setCheckTime(parse);
                            serviceFundflow.setFundid(serviceReimbursementShared.getReimid());
 
                            serviceFundflow.setCheckTime(parse);
                            fundflowService.save(serviceFundflow);
 
                        }
                        //如果已经更新则不在处理
                    }
                }
            }
        }
    }
 
 
    public void sendMeg(String[] split, String phone, String applyType, Integer fundType, Long fundId) throws ApiException {
        //记录操作记录
        ServiceFundflow serviceFundflow = new ServiceFundflow();
        serviceFundflow.setCreateBy(split[0]);
        serviceFundflow.setCreateTime(new Date());
        serviceFundflow.setUpdateBy(split[0]);
        serviceFundflow.setUpdateTime(new Date());
        serviceFundflow.setCheckusername(split[0]);
        serviceFundflow.setFlowcontent(split[2]);
        serviceFundflow.setFlowconclusion(2);
        serviceFundflow.setFundtype(fundType);
        serviceFundflow.setFlowlevel(100);
        serviceFundflow.setApplytype(applyType);
        serviceFundflow.setFundid(fundId);
        fundflowService.save(serviceFundflow);
 
        ArrayList<ConcurrentHashMap<String, Object>> contentList = new ArrayList<>();
        ConcurrentHashMap map = new ConcurrentHashMap();
        map.put("审批人:", split[0]);
        map.put("审批时间:", split[1]);
        map.put("意见:", split[2]);
        contentList.add(map);
        DingTalkReqVo dingTalkReqVo = new DingTalkReqVo();
        dingTalkReqVo.setTitle("财务系统驳回信息");
        dingTalkReqVo.setNumber(phone);
        dingTalkReqVo.setContents(contentList);
        dingTalkService.sendNotification(dingTalkReqVo);
    }
 
    private ReentrantLock lock = new ReentrantLock();
 
    public String myMethod() {
        lock.lock();
        String bh = null;
        try {
            // 代码块
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMM");
            String format = simpleDateFormat.format(new Date());
            ServiceTasknum serviceTasknum = new ServiceTasknum();
            serviceTasknum.setYearmonth(format);
            //CW  财务
            serviceTasknum.setApptype("CW");
            List<ServiceTasknum> serviceTasknums = ServiceTasknumService.queryList(serviceTasknum);
            long nums = 1;
            if (CollectionUtils.isEmpty(serviceTasknums)) {
                //进行插入操作
                serviceTasknum.setSerialnumber(nums);
                ServiceTasknumService.save(serviceTasknum);
                bh = serviceTasknum.getYearmonth() + "0" + nums;
            } else {
                //获取唯一值的最大值
                nums = serviceTasknums.stream().mapToLong(ServiceTasknum::getSerialnumber).max().getAsLong() + 1;
 
                ServiceTasknum serviceTasknum1 = serviceTasknums.get(0);
                serviceTasknum1.setSerialnumber(nums);
                //对该条数据的唯一值加1
                ServiceTasknumService.updateById(serviceTasknum1);
                //将生成的编号返回
                if (nums < 10) {
                    bh = serviceTasknums.get(0).getYearmonth() + "0" + nums;
                } else {
                    bh = serviceTasknums.get(0).getYearmonth() + nums;
                }
            }
        } catch (Exception e) {
            log.error("获取编号失败了{}", e.getStackTrace());
        } finally {
            lock.unlock();
        }
        return bh;
    }
 
 
    /**
     * 将数据存到分享表中
     */
    public void addDataShared() {
        ServiceFundflowrule serviceFundflowrule = new ServiceFundflowrule();
        //处理差旅报销
        serviceFundflowrule.setApplytype("0");
        List<ServiceFundflowrule> serviceFundflowrules = iServiceFundflowruleService.queryList(serviceFundflowrule);
        log.info("差旅的最高等级:{}", serviceFundflowrules.get(0).getTotallevel());
        ServiceReimbursement serviceReimbursement = new ServiceReimbursement();
        serviceReimbursement.setFlowlevel(serviceFundflowrules.get(0).getTotallevel().longValue());
        serviceReimbursement.setUploadStates(1);
        serviceReimbursement.setDelFlag(0);
        List<ServiceReimbursement> serviceReimbursementList = serviceReimbursementService.queryList(serviceReimbursement);
        for (ServiceReimbursement serviceReimbursement1 : serviceReimbursementList) {
            try {
                log.info("插入分享表的ID为:{}", serviceReimbursement1.getId());
                Boolean aBoolean = serviceReimbursementService.addSharedData(serviceReimbursement1.getId());
                if (aBoolean) {
                    ServiceReimbursement serviceReimbursement3 = new ServiceReimbursement();
                    serviceReimbursement3.setId(serviceReimbursement1.getId());
                    serviceReimbursement3.setUploadStates(2);
                    boolean b = serviceReimbursementService.updateById(serviceReimbursement3);
                    log.info("serviceReimbursement是否插入成功{},{}", aBoolean, b);
                }
            } catch (Exception e) {
                ServiceReimbursement serviceReimbursement2 = new ServiceReimbursement();
                serviceReimbursement2.setId(serviceReimbursement1.getId());
                serviceReimbursement2.setNotes("插入分享表失败");
                serviceReimbursementService.updateById(serviceReimbursement2);
            }
        }
 
        //专家劳务费申请
        serviceFundflowrule.setApplytype("1");
        List<ServiceFundflowrule> serviceFundflowrules2 = iServiceFundflowruleService.queryList(serviceFundflowrule);
        log.info("专家劳务的最高等级:{}", serviceFundflowrules2.get(0).getTotallevel());
        addFunfShared(serviceFundflowrules2.get(0).getTotallevel().longValue(), "1");
 
        //伦理专家劳务费申请
        serviceFundflowrule.setApplytype("2");
        List<ServiceFundflowrule> serviceFundflowrules3 = iServiceFundflowruleService.queryList(serviceFundflowrule);
        log.info("伦理专家劳务费申请:{}", serviceFundflowrules3.get(0).getTotallevel());
        addFunfShared(serviceFundflowrules3.get(0).getTotallevel().longValue(), "2");
 
        //医学成本报销
        serviceFundflowrule.setApplytype("3");
        List<ServiceFundflowrule> serviceFundflowrules4 = iServiceFundflowruleService.queryList(serviceFundflowrule);
        log.info("医学成本报销:{}", serviceFundflowrules4.get(0).getTotallevel());
        addFunfShared(serviceFundflowrules4.get(0).getTotallevel().longValue(), "3");
 
        //办公费用报销
        serviceFundflowrule.setApplytype("4");
        List<ServiceFundflowrule> serviceFundflowrules5 = iServiceFundflowruleService.queryList(serviceFundflowrule);
        log.info("办公费用报销:{}", serviceFundflowrules5.get(0).getTotallevel());
        addFunfShared(serviceFundflowrules5.get(0).getTotallevel().longValue(), "4");
 
        //绩效审批报销
        serviceFundflowrule.setApplytype("5");
        List<ServiceFundflowrule> serviceFundflowrules6 = iServiceFundflowruleService.queryList(serviceFundflowrule);
        log.info("办公费用报销:{}", serviceFundflowrules6.get(0).getTotallevel());
        addFunfShared(serviceFundflowrules6.get(0).getTotallevel().longValue(), "5");
 
    }
 
    private void addFunfShared(Long totallevel, String applyType) {
        ServiceFund serviceFund = new ServiceFund();
        serviceFund.setFlowlevel(totallevel);
        serviceFund.setUploadStates(1);
        serviceFund.setDel_flag(0);
        serviceFund.setApplytype(applyType);
        List<ServiceFund> serviceFundList = serviceFundService.queryList(serviceFund);
        for (ServiceFund serviceFund1 : serviceFundList) {
            try {
                log.info("插入分享表的FundID为:{}", serviceFund1.getId());
                Boolean aBoolean = serviceFundService.addFundSharedInfo(serviceFund1.getId());
                if (aBoolean) {
                    ServiceFund serviceFund2 = new ServiceFund();
                    serviceFund2.setId(serviceFund1.getId());
                    serviceFund2.setUploadStates(2);
                    serviceFund2.setUpdateTime(new Date());
                    boolean b = serviceFundService.updateById(serviceFund2);
                    log.info("serviceReimbursement是否插入成功{},{}", aBoolean, b);
                }
            } catch (Exception e) {
                e.printStackTrace();
                ServiceFund serviceFund2 = new ServiceFund();
                serviceFund2.setId(serviceFund1.getId());
                serviceFund2.setUploadStates(1);
                serviceFund2.setNotes("插入fund分享表失败");
                serviceFundService.updateById(serviceFund2);
            }
        }
    }
 
}