From f4948136a05ba7eac4c5bb168c10fd11423e78f1 Mon Sep 17 00:00:00 2001 From: guoshengxiong <1923636941@qq.com> Date: Fri, 14 Feb 2025 19:10:20 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8C=85=E5=A4=B4bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...uctionSiteConsumptionRecordController.java | 4 +- .../controller/PipelineWelderController.java | 9 +- .../WorkerAdmissionDetailController.java | 4 +- .../baotou/entity/WorkerAdmissionDetail.java | 17 +-- .../mapper/xml/PipelineWelderMapper.xml | 9 +- .../xml/WorkerAdmissionDetailMapper.xml | 5 +- .../WorkerAdmissionDetailServiceImpl.java | 114 ++++++++++++++++-- .../impl/WorkerAdmissionServiceImpl.java | 1 + .../basicdata/mapper/xml/SystemUserMapper.xml | 6 + .../exam/controller/ExamWorkerController.java | 4 +- .../service/impl/ExamPaperServiceImpl.java | 4 +- .../impl/ExamTrainRecordServiceImpl.java | 4 +- .../modules/worker/entity/WorkerInfo.java | 9 +- .../com/zhgd/xmgl/util/FlowSeviceUtil.java | 4 +- .../excel/work/水电记录结算单模板.docx | Bin 18506 -> 18509 bytes src/main/resources/template/下载试卷模板.docx | Bin 32037 -> 29620 bytes 16 files changed, 151 insertions(+), 43 deletions(-) diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/controller/ConstructionSiteConsumptionRecordController.java b/src/main/java/com/zhgd/xmgl/modules/baotou/controller/ConstructionSiteConsumptionRecordController.java index 33a39fcef..70324af64 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/controller/ConstructionSiteConsumptionRecordController.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/controller/ConstructionSiteConsumptionRecordController.java @@ -171,8 +171,8 @@ public class ConstructionSiteConsumptionRecordController { ConstructionSiteConsumptionRecord record = constructionSiteConsumptionRecordService.queryById(id); Map userMap = systemUserService.list(new LambdaQueryWrapper() .eq(SystemUser::getSn, record.getProjectSn())).stream().collect(Collectors.toMap(SystemUser::getUserId, Function.identity())); - map.put("dateBegin", record.getDateBegin()); - map.put("dateEnd", record.getDateEnd()); + map.put("dateBegin", DateUtil.format(record.getDateBegin(), "yyyy年MM月dd日")); + map.put("dateEnd", DateUtil.format(record.getDateEnd(), "yyyy年MM月dd日")); map.put("contractor", record.getContractor()); map.put("recorder", record.getRecorder()); map.put("settlementCategory", record.getSettlementCategory()); diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/controller/PipelineWelderController.java b/src/main/java/com/zhgd/xmgl/modules/baotou/controller/PipelineWelderController.java index 33d40b0e4..362d4202e 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/controller/PipelineWelderController.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/controller/PipelineWelderController.java @@ -65,10 +65,11 @@ public class PipelineWelderController { @OperLog(operModul = "管道焊工管理", operType = "分页查询", operDesc = "分页列表查询管道焊工信息") @ApiOperation(value = "分页列表查询管道焊工信息", notes = "分页列表查询管道焊工信息", httpMethod="GET") @ApiImplicitParams({ - @ApiImplicitParam(name = "pageNo", value = "第几页", paramType = "query", required = true, dataType = "Integer"), - @ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "query", required = true, dataType = "Integer"), - @ApiImplicitParam(name = "weldingPassRateDesc", value = "1焊接合格率降序", paramType = "query", required = false, dataType = "Integer"), - }) + @ApiImplicitParam(name = "pageNo", value = "第几页", paramType = "query", required = true, dataType = "Integer"), + @ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "query", required = true, dataType = "Integer"), + @ApiImplicitParam(name = "weldingPassRateDesc", value = "1焊接合格率降序", paramType = "query", required = false, dataType = "Integer"), + @ApiImplicitParam(name = "ignoreWelderNameNull", value = "1忽略焊工名称为null和无焊工记录的", paramType = "query", required = false, dataType = "Integer"), + }) @GetMapping(value = "/page") public Result> queryPageList(@ApiIgnore @RequestParam HashMap param) { return Result.success(pipelineWelderService.queryPageList(param)); diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/controller/WorkerAdmissionDetailController.java b/src/main/java/com/zhgd/xmgl/modules/baotou/controller/WorkerAdmissionDetailController.java index e7e05fe5c..468ad8e0e 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/controller/WorkerAdmissionDetailController.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/controller/WorkerAdmissionDetailController.java @@ -166,7 +166,9 @@ public class WorkerAdmissionDetailController { @ApiOperation(value = "批量录入人员到实名制中", notes = "批量录入人员到实名制中", httpMethod = "POST") @ApiImplicitParams({ @ApiImplicitParam(name = "idCards", value = "人员身份证s", paramType = "body", required = true, dataType = "String"), - @ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String") + @ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String"), + @ApiImplicitParam(name = "detailIds", value = "人员入场明细ids", paramType = "body", required = false, dataType = "String"), + @ApiImplicitParam(name = "addBy", value = "1人员身份证s(默认)2人员入场明细ids", paramType = "body", required = false, dataType = "String"), }) @PostMapping(value = "/importWorkerBatch") public Result importWorkerBatch(@RequestBody HashMap param) { diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/entity/WorkerAdmissionDetail.java b/src/main/java/com/zhgd/xmgl/modules/baotou/entity/WorkerAdmissionDetail.java index 5a769310c..d249c2d66 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/entity/WorkerAdmissionDetail.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/entity/WorkerAdmissionDetail.java @@ -173,11 +173,13 @@ public class WorkerAdmissionDetail implements Serializable { @ApiModelProperty(value = "更新时间") private java.util.Date updateDate; @Excel(name = "联系电话", width = 15) - @ApiModelProperty(value="联系电话") - private java.lang.String phone ; + @ApiModelProperty(value = "联系电话") + private java.lang.String phone; @Excel(name = "资质是否合格0不合格1合格", width = 15) - @ApiModelProperty(value="资质是否合格0不合格1合格") - private java.lang.Integer isCertificateQualified ; + @ApiModelProperty(value = "资质是否合格0不合格1合格") + private java.lang.Integer isCertificateQualified; + @ApiModelProperty(value = "1已经录入0未录入") + private Integer isImport; @TableField(exist = false) private String random; @@ -203,11 +205,12 @@ public class WorkerAdmissionDetail implements Serializable { @TableField(exist = false) @ApiModelProperty(value = "开始考试时间") private Date startExamTime; - @TableField(exist = false) - @ApiModelProperty(value = "1已经录入0未录入") - private Integer isImport; @TableField(exist = false) @ApiModelProperty(value = "考试记录id") private Long recordId; + + @TableField(exist = false) + @ApiModelProperty(value = "办证人") + private java.lang.Long certificateIssuingPerson; } diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/mapper/xml/PipelineWelderMapper.xml b/src/main/java/com/zhgd/xmgl/modules/baotou/mapper/xml/PipelineWelderMapper.xml index 118d57378..d7346b2ce 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/mapper/xml/PipelineWelderMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/mapper/xml/PipelineWelderMapper.xml @@ -17,12 +17,17 @@ left join enterprise_info ei on ei.id=wi.enterprise_id left join (select * from worker_certificate where project_sn = #{param.projectSn} and certificate_type = 71 group by worker_id) wc on wc.worker_id = t.worker_id - left join (select ifnull(round(ifnull(sum(if(testing_qualified=1,1,0)),0)/count(*)*100,2),0) as welding_pass_rate,pipeline_welder_id - from pipeline_welding_record where testing_qualified != -1 + left join (select ifnull(round(ifnull(sum(if(testing_qualified=1,1,0)),0)/count(*)*100,2),0) as + welding_pass_rate,pipeline_welder_id + from pipeline_welding_record where testing_qualified != -1 and project_sn = #{param.projectSn} group by pipeline_welder_id) pwr on t.id = pwr.pipeline_welder_id + where 1=1 + + and wi.worker_name is not null and wi.worker_name != '' and pwr.welding_pass_rate != 0 + )t ${ew.customSqlSegment} diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/mapper/xml/WorkerAdmissionDetailMapper.xml b/src/main/java/com/zhgd/xmgl/modules/baotou/mapper/xml/WorkerAdmissionDetailMapper.xml index cb9044d32..972e3e474 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/mapper/xml/WorkerAdmissionDetailMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/mapper/xml/WorkerAdmissionDetailMapper.xml @@ -22,10 +22,11 @@ t2.name as post_work_type_name, tr.start_exam_time, tr.is_pass, - tr.score, - if(wi.id is null,0,1) as is_import + tr.score + ,tr.id as record_id ,tr.is_new_batch + ,wa.certificate_issuing_person from worker_admission_detail t left join worker_admission wa on wa.id=t.worker_admission_id left join enterprise_info ei1 on ei1.id=t.epc_cbs diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/service/impl/WorkerAdmissionDetailServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/baotou/service/impl/WorkerAdmissionDetailServiceImpl.java index a5ec41831..314671e55 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/service/impl/WorkerAdmissionDetailServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/service/impl/WorkerAdmissionDetailServiceImpl.java @@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.zhgd.jeecg.common.execption.OpenAlertException; import com.zhgd.jeecg.common.system.query.QueryGenerator; +import com.zhgd.xmgl.constant.Cts; import com.zhgd.xmgl.modules.baotou.entity.WorkerAdmission; import com.zhgd.xmgl.modules.baotou.entity.WorkerAdmissionCertificateDetail; import com.zhgd.xmgl.modules.baotou.entity.WorkerAdmissionDetail; @@ -18,10 +19,14 @@ import com.zhgd.xmgl.modules.baotou.mapper.WorkerAdmissionDetailMapper; import com.zhgd.xmgl.modules.baotou.service.IWorkerAdmissionCertificateDetailService; import com.zhgd.xmgl.modules.baotou.service.IWorkerAdmissionDetailService; import com.zhgd.xmgl.modules.baotou.service.IWorkerAdmissionService; +import com.zhgd.xmgl.modules.basicdata.entity.SystemUser; +import com.zhgd.xmgl.modules.basicdata.service.impl.NoticeServiceImpl; +import com.zhgd.xmgl.modules.basicdata.service.impl.SystemUserServiceImpl; import com.zhgd.xmgl.modules.exam.service.IExamTrainRecordService; import com.zhgd.xmgl.modules.worker.entity.*; import com.zhgd.xmgl.modules.worker.mapper.UfaceDevMapper; import com.zhgd.xmgl.modules.worker.service.*; +import com.zhgd.xmgl.security.util.SecurityUtils; import com.zhgd.xmgl.util.FlowUtil; import com.zhgd.xmgl.util.MapBuilder; import com.zhgd.xmgl.util.PageUtil; @@ -50,6 +55,12 @@ public class WorkerAdmissionDetailServiceImpl extends ServiceImpl ufaceDevs = ufaceDevMapper.selectList(new LambdaQueryWrapper() .eq(UfaceDev::getProjectSn, projectSn)); @@ -180,15 +192,39 @@ public class WorkerAdmissionDetailServiceImpl extends ServiceImpl admissionList = workerAdmissionService.list(new LambdaQueryWrapper() .eq(WorkerAdmission::getProjectSn, projectSn)); - List detailList = this.queryList(new MapBuilder() - .put("projectSn", projectSn) - .put("idCards", idCards) - .put("isCertificateQualified", 1) - .put("isPass", 1) - .build()); + Integer addBy = MapUtils.getInteger(param, "addBy"); + String detailIdStrs = MapUtils.getString(param, "detailIds"); + List detailList; + if (addBy == null || Objects.equals(addBy, 1)) { + if (StrUtil.isBlank(idCards)) { + return "请选择人员"; + } + detailList = this.queryList(new MapBuilder() + .put("projectSn", projectSn) + .put("idCards", idCards) + .put("isCertificateQualified", 1) + .put("isPass", 1) + .build()); + } else { + if (StrUtil.isBlank(detailIdStrs)) { + return "请选择人员"; + } + detailList = this.queryList(new MapBuilder() + .put("projectSn", projectSn) + .put("detailIds", detailIdStrs) + .put("isCertificateQualified", 1) + .put("isPass", 1) + .build()); + } if (CollUtil.isEmpty(detailList)) { return msg; } + List readNums = detailList.stream().map(o -> o.getNum()).collect(Collectors.toList()); + List existNums = workerInfoService.list(new LambdaQueryWrapper() + .in(WorkerInfo::getNum, readNums).eq(WorkerInfo::getProjectSn, projectSn).last(Cts.IGNORE_DATA_SCOPE_CONDITION)).stream().map(WorkerInfo::getNum).collect(Collectors.toList()); + List existIdCards = detailList.stream().map(o -> o.getIdCard()).collect(Collectors.toList()); + List existWorkerIdCards = workerInfoService.list(new LambdaQueryWrapper() + .in(WorkerInfo::getIdCard, existIdCards).eq(WorkerInfo::getProjectSn, projectSn).last(Cts.IGNORE_DATA_SCOPE_CONDITION)).stream().map(WorkerInfo::getIdCard).collect(Collectors.toList()); ArrayList addTypes = new ArrayList<>(); ArrayList addTeams = new ArrayList<>(); ArrayList addDepartments = new ArrayList<>(); @@ -267,8 +303,35 @@ public class WorkerAdmissionDetailServiceImpl extends ServiceImpl repeatStrs = new ArrayList<>(); + ArrayList existStrs = new ArrayList<>(); + ArrayList successStrs = new ArrayList<>(); + List startUsers = detailList.stream().map(WorkerAdmissionDetail::getCertificateIssuingPerson).collect(Collectors.toList()); + Map startUserMap = systemUserService.getProjectChildernSystemUserList(new MapBuilder() + .put("userIdList", startUsers) + .put("projectSn", projectSn) + .build()).stream().collect(Collectors.toMap(SystemUser::getUserId, Function.identity(), (o1, o2) -> o1)); for (WorkerAdmissionDetail detail : detailList) { WorkerInfo workerInfo = mapWorkerInfo(detail, admissionList, ufaceId); + //发起人不需要校验是否存在人员管理 + SystemUser startUser = startUserMap.get(detail.getCertificateIssuingPerson()); + if (startUser == null || (!Objects.equals(startUser.getIdCard(), detail.getIdCard()) && !Objects.equals(startUser.getNum(), detail.getNum()))) { + if (existWorkerIdCards.stream().anyMatch(o1 -> Objects.equals(detail.getIdCard(), o1))) { + existStrs.add(detail.getWorkerName() + "[" + detail.getIdCard() + "]"); + continue; + } + if (existNums.contains(detail.getNum())) { + repeatStrs.add(detail.getWorkerName() + "[" + detail.getNum() + "]"); + continue; + } + } else { + workerInfo.setId(startUser.getWorkerId()); + } + existWorkerIdCards.add(detail.getIdCard()); + existNums.add(detail.getNum()); + successStrs.add(detail.getWorkerName() + "[" + detail.getIdCard() + "]"); + detail.setIsImport(1); + baseMapper.updateById(detail); addWorkers.add(workerInfo); } //插入班组,部门 @@ -306,7 +369,11 @@ public class WorkerAdmissionDetailServiceImpl extends ServiceImpl Objects.equals(o.getDepartmentName(), addWorker.getDepartmentName()) && Objects.equals(o.getEnterpriseId(), addWorker.getEnterpriseId())).findFirst().get().getId()); } - workerInfoService.saveWorkerInfo(addWorker); + if (addWorker.getId() == null) { + workerInfoService.saveWorkerInfo(addWorker); + } else { + workerInfoService.editWorkerInfo(addWorker); + } List workerCertificates = addCertificates.stream().filter(o -> Objects.equals(o.getIdCard(), addWorker.getIdCard())).collect(Collectors.toList()); for (WorkerCertificate workerCertificate : workerCertificates) { workerCertificate.setWorkerId(addWorker.getId()); @@ -331,6 +398,31 @@ public class WorkerAdmissionDetailServiceImpl extends ServiceImpl systemUsers = systemUserService.getSystemUsersBySn(new MapBuilder().put(Cts.SN, projectSn).put(Cts.QUERY_TYPE, Cts.PROJECT_LEVEL).build()); + List noticeUserIdList = systemUsers.stream().map(SystemUser::getUserId).collect(Collectors.toList()); + if (!noticeUserIdList.contains(userId)) { + noticeUserIdList.add(userId); + } + noticeService.addUsersNotice(noticeUserIdList, "人员录入通知", msg, "10"); +// if (CollUtil.isNotEmpty(existStrs)) { +// String m = "身份证已存在人员:" + StrUtil.join("、", existStrs); +// noticeService.addUsersNotice(noticeUserIdList, "人员录入身份证已存在通知", m, "10"); +// } +// if (CollUtil.isNotEmpty(repeatStrs)) { +// String m = "编号已存在人员:" + StrUtil.join("、", repeatStrs); +// noticeService.addUsersNotice(noticeUserIdList, "人员录入编号已存在通知", m, "10"); +// } return msg; } @@ -371,6 +463,8 @@ public class WorkerAdmissionDetailServiceImpl extends ServiceImpl and t.user_id = #{param.userId} + + and t.user_id in + + #{item} + + and t.user_id = #{param.id} diff --git a/src/main/java/com/zhgd/xmgl/modules/exam/controller/ExamWorkerController.java b/src/main/java/com/zhgd/xmgl/modules/exam/controller/ExamWorkerController.java index 2706c09d9..48f101678 100644 --- a/src/main/java/com/zhgd/xmgl/modules/exam/controller/ExamWorkerController.java +++ b/src/main/java/com/zhgd/xmgl/modules/exam/controller/ExamWorkerController.java @@ -244,8 +244,8 @@ public class ExamWorkerController { params.put("score", record.getScore()); params.put("startExamTime", DateUtil.format(record.getStartExamTime(), "yyyy年MM月dd日")); -// String tempUrl = Fileutils.getExportTemplateFile("template/下载试卷模板.docx").getAbsolutePath(); - String tempUrl = "C:\\Users\\Administrator\\Desktop\\下载试卷模板.docx"; + String tempUrl = Fileutils.getExportTemplateFile("template/下载试卷模板.docx").getAbsolutePath(); +// String tempUrl = "C:\\Users\\Administrator\\Desktop\\下载试卷模板.docx"; //生成word文档流 EasyPoiUtil.exportNewLineWord(response, params, FileUtil.file(tempUrl)); diff --git a/src/main/java/com/zhgd/xmgl/modules/exam/service/impl/ExamPaperServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/exam/service/impl/ExamPaperServiceImpl.java index 9c5c6a10b..335bf8519 100644 --- a/src/main/java/com/zhgd/xmgl/modules/exam/service/impl/ExamPaperServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/exam/service/impl/ExamPaperServiceImpl.java @@ -203,9 +203,7 @@ public class ExamPaperServiceImpl extends ServiceImpl list = Arrays.asList(questions.split(",")).stream().map(Long::new).collect(Collectors.toList()); List vos = examQuestionBankService.queryByBatchId(list); - if (Objects.equals(examPaper.getCheckQuestionType(), 2)) { - vos = vos.stream().sorted(Comparator.comparing(ExamQuestionBankVo::getType)).collect(Collectors.toList()); - } + vos = vos.stream().sorted(Comparator.comparing(ExamQuestionBankVo::getType)).collect(Collectors.toList()); return vos; } } diff --git a/src/main/java/com/zhgd/xmgl/modules/exam/service/impl/ExamTrainRecordServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/exam/service/impl/ExamTrainRecordServiceImpl.java index 2b9b70821..e74baa55a 100644 --- a/src/main/java/com/zhgd/xmgl/modules/exam/service/impl/ExamTrainRecordServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/exam/service/impl/ExamTrainRecordServiceImpl.java @@ -482,9 +482,6 @@ public class ExamTrainRecordServiceImpl extends ServiceImpl list = Arrays.asList(questions.split(",")).stream().map(Long::new).collect(Collectors.toList()); List vos = examQuestionBankService.queryByBatchId(list); - if (Objects.equals(examPaper.getCheckQuestionType(), 2)) { - vos = vos.stream().sorted(Comparator.comparing(ExamQuestionBankVo::getType)).collect(Collectors.toList()); - } //构造题目和选择答案map String selectOptions = record.getSelectOptions(); @@ -497,6 +494,7 @@ public class ExamTrainRecordServiceImpl extends ServiceImpl { o.setSelectOption(questionIdMap.get(o.getId())); }); + vos = vos.stream().sorted(Comparator.comparing(ExamQuestionBankVo::getType)).collect(Collectors.toList()); return vos; } } diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/entity/WorkerInfo.java b/src/main/java/com/zhgd/xmgl/modules/worker/entity/WorkerInfo.java index 2fb019b3a..47beaf63f 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/entity/WorkerInfo.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/entity/WorkerInfo.java @@ -357,6 +357,10 @@ public class WorkerInfo implements Serializable { private java.lang.Long epcCbs; @ApiModelProperty(value = "包头部门") private java.lang.String btDepartment; + /** + * 通知的人员id + */ + private Long noticeUserId; @TableField(exist = false) @ApiModelProperty(value = "人脸分数") private java.lang.Integer faceScore; @@ -417,11 +421,6 @@ public class WorkerInfo implements Serializable { @TableField(exist = false) @ApiModelProperty(value = "动火证编号") private String fireCertificate; - /** - * 通知的人员id - */ - @TableField(exist = false) - private Long noticeUserId; @TableField(exist = false) @ApiModelProperty(value = "岗位(工种)名称") private java.lang.String postWorkTypeName; diff --git a/src/main/java/com/zhgd/xmgl/util/FlowSeviceUtil.java b/src/main/java/com/zhgd/xmgl/util/FlowSeviceUtil.java index bca91387a..b1b267516 100644 --- a/src/main/java/com/zhgd/xmgl/util/FlowSeviceUtil.java +++ b/src/main/java/com/zhgd/xmgl/util/FlowSeviceUtil.java @@ -453,12 +453,12 @@ public class FlowSeviceUtil { if (Objects.equals(customStatus, 1)) { instanceQuery.or().startedBy(userId + "").involvedUser(userId + "").endOr(); } else if (Objects.equals(customStatus, 2)) { - instanceQuery.or().processInstanceBusinessStatusLike("PRE%").endOr(); + instanceQuery.or().startedBy(userId + "").involvedUser(userId + "").endOr(); } Executor.builder() //customStatus 1待催办2已办结3审批进行中4审批被撤销5审批被驳回 .ifTrueNext(Objects.equals(customStatus, 1), instanceQuery::unfinished) - .ifTrueNext(Objects.equals(customStatus, 3), instanceQuery::unfinished) + .ifNotBlankNext(Objects.equals(customStatus, 2) ? "PRE%" : null, instanceQuery::processInstanceBusinessStatusLike) .ifNotBlankNext(Objects.equals(customStatus, 5) ? ProcessStatus.REFUSE.toString() : null, instanceQuery::processInstanceBusinessStatus); instanceQuery.count(); return instanceQuery; diff --git a/src/main/resources/excel/work/水电记录结算单模板.docx b/src/main/resources/excel/work/水电记录结算单模板.docx index 85bb182555404758a81db0df6ddddf171c1bba65..d66167e2719d7dff6a2a54c7e935aed782caace5 100644 GIT binary patch delta 8727 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�vzy=s0S*ELW6ewC3aMj224jpwNyzK3PW|O%9&7y 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 diff --git a/src/main/resources/template/下载试卷模板.docx b/src/main/resources/template/下载试卷模板.docx index f424f309ee65bf04d21600ce1dcb13bbc3d2acc4..e0887273533b00e0c8d76d11249f4f9866574a0e 100644 GIT binary patch delta 5863 zcmZ8lcQhQ{wl<@e(Oa|#qD41|2!n`j5MA`>JtT}#M(-sIql?}K(R+>Fd#@o%BBDlg z&+omv-o5Ybwf6bv?6c3e&ROR>-`)jRfZAQaClUPHgy-v)01OORyc8|s%`miEfV7qM zm_+k;L}ubyfM|)bKSiLj(ho9&vHB`S$6?X%J4s?0r$)EsMT0nNPon)V?SxX3`Z<c{?yP8`K(H>$UKr$OXTuwKr>V zVR}j!*9yM#60DF*jN64cHaU)CDq!U*a1S&kwhB_q9}oOi47>hu_iTw%>Z0b$A0_W@ z?3soASaF^#TnXb9&Us96PxIke+bFC7{Z5nAzAY~tOP(CZRP&Wf6)JSn;|wzx`BX=t zbl+F>BM-1@17s9G&`^ACHn-pW3YfiF);;x>kGQM`@B0+(%=!TWI{(v8e+WvKFA(rDbeM7$0-V$z_;Dhucx%JrR!6wQ>Fn zW|mg(#vqsF&_L*=mNxc$#s{xQU#WrPgH4ihaLH#rxcz zdg*e8PmmMQ^dU4<9bT^Do=jZC3R1c`ZpgdXsP8PF)Ig_qa z^q_vo%GDG75; z3rdo0b_6H3kG>p!minysICy>rnvHRZDPN!DEgH}oWT(=2bSH{rUX|T=+QkpNopn`;VR`t zSPQ^KeLQvoy+q0O3rOd4*cw&2v=85rz0M%Gd8Wx|H;jK(N0*%a4*gy|RQ*Ma%0%64 zqm{MBiWK-;Nvl&?ky~>>(TT6YbIW$IBkh0rLHpy%ehHG(@a)IJF~M+K!B)DFuh+pc z_Z6$w(eH-3OoU$^u2x5{+VB`7ynb?Z9i1a6yO3fWO|0mgL1(VILbWb_^Eb7)*`6ew z=#9Y-IqcbQLeu<}>FonOKJHNk(Km`|FNkOvd6Nvgj#{N2DMH zFN5Ak9(E@mCWW(9?F3{3r<3+zo07xAlan-bpSHC!DpH8HkBD2qH8!pEDB?Ij`mPbu zT%N01+-WGw_?q3Xk8R+f3&dp~4T5n^?DMYJ{2DIpuu_%<_lMGBeWz=1exo*Of`z$} zz`?fh5gr9?8U#T=$RPBtV?)f?T*)fc*t8Lxo87ff5pSo%IHk>jnTwzcTbL*3!_dE;C=ofuvcsB&C(_ee^n;Y_e8LLOkmGG zi)Ux{B(o~~Nlh9(msoJrz(cghQZ_mG6+Jm<@!&x8q+On}z~9n%VJxjmx;-r6D&-H7 zM5|I&Eqb`<04VBk$)nn5e$VoA!9-mRq}Cq+qbpQOFxl%eUqj6l7R<%Pn1HXZbyZUao7^aHV}R!3lG!VL>7<} zHBA12Q9du(##+3O@5&bCna%a8ZEY&mnw??Ljjbo?Z%sSc{@NH@^>_csFUh+`CoW9G z20ofjW%>g$CTyc%56Yr4`Y0T~(NBFu&lLRHs0j!0R?UW^MT^T{7^!CO_cm_KonE+scw_!FM+$Pv@RFv8HV1PgbM1 zuK>vHt+11bOp?C%&a<`v_2*SxMpA+J`5j9&_E!jx``i|5b9U?_#ZUteQJPw<@p3IB zM%wd|-x=p(S!sO@905zzE{<=J_8=+X=V4?iNDiUM;(06&^?pz3!V|?Sy}TJ?RrR_^ zrM1e4_92~k)I%zR)+)KN&6uZd)Gj>nH89qQl^%MPKr$Dee;}zj{pW7KH)Aq%_Bhw{ zso(n7_tFnrL_w2b@0tWQW48ab`dvguFTKhGdVLm~V|nr>M1&X$i*-$(FI{vdZRr6- zyc&~zZXwKpWnr_u>22H6lyL_=aEEofGSpp28GZ0!hVtn`i^;)=i)h|FuHWSHEc$eY zK>7JjKo=oS+S{J=*%WxrFYBnwp99@)77V|NzX;5kGtb%MxU%QcC=4WC+CyLhw4x9! zinTqCqMzLe{t$Q&#;<-GkC7nX)>(5OeAMquR9IKok4US^$&M?W=l~S`8(6>p=9o#V zj@b|k>{h0D$!U#!;-c>xFK|EV@TJz2AL?VyTrpLvkDK%MoXN3cOa68MXFGy7VQ)X-xDJ7E$XH<=GAn9qhTq-1(}+o;>HpklZr zje1i<>@p6To}3(?ha4LoVDIi!K~GKR4$M;RUgfmE{NdZH6E&ife{%}|se{e4e*gIY z>Ky$&GpKC4_KdBr{H~kdj~g-+Rr$LW@wMP6?W1kMJpxo zJ2xc0ujK<|c@K-MVTzhQLbG4Lj`1Si#xcW13F<@#`dSD*$>p2;25@@c^Ps#q^!+ag z1B>A@M&<7jRWI-&(9xP)h6f^+m}|cvqalXvV$&D1Y z@tIgOQZJk+X|On5_Stg=k+JW%HTSG)i?3d}FV^xS_FYDPln`ci`Gh?mdP36{CJ5^? z5H~`@F>&{@7Ji(Gev&4zgKv~3bkh{aZ>AI;7CQ+R<+&C`+6gW_d@Q3G6u8f9;Kqbn zS$K-zFo&k%1q@mGWD6WgRe~I#~O$t0NjLwEuCdtg?4&LZuJZHi3OvzV0o9wtkpu_vo z%OtY-N=iyufDvPR=NA3YM!vOus>e!GQ6pwQ_+X}Xvpp=!9oSE##n?Y2#1Y9DBjSx< zO7U1|XcTsEPQ-y0Ze3Ju7b;~}iJoRMtCBNv9KVDpie!LQGnwo8#ZgXh>z^Yc43Ohr zm#XhZ(=dmlM7(MaMygj+`yA-2t*rvs-$>xSbJ!W=2Q(QHm*4JDTOVw)if?A4e=9iT0!n4HHKW5-DDUsWeZWhF2Q+KPZ z`!ueN2!Z5%A*tQ9^Je{Vw@sNZ(zq|)lLq15u0Ue?)u$##j6fBb{^`OEA_yj|^OXi; zMvo0tQ<8WZED)TDU9qYQfJeCjUMSaT3|FW1t}502P@1i~pw)4JPJA~hpBB(5?M;Iy z1QXwggs$R!cGDe&o0%AYB+|^O9x)rFrFC*EeGNdX2a1(1o-iFB*fu0@7;^KNK8~xO zk&n1Et-P6Cb@EQBG`?o6K-3sDG$?S6?AT{VS+~*Ea+dXQl!a1%HfnPK3SEpDPJ*ls{NkC^UTYwoGk zND&iPF67V$o|k9%51zMldH2!D%K5`TJbz&D&3W@V=^bLK4RZ*=9MB0gY|hmvRc_Fk z^{9iWvkUepSX?`X)fyjAtc-idc?Wr?xBP9a%ESOo`B6=P7qk~Y)#wO769oZ6!*#weVUl`B%rUkW12;}@0! zNwv>~n9ed4xz^D0R;1ss1`TC_U2N&4hMfs7(xFQJ`;REh+rGgoE_<;FD-#9QNhh%r zpv1|Jxq`7=BO+ETGRku)DYF!8J6vCYFBBqG6;)?=%~}qCp?@+F+7l*x8XvhnF-_F~ zw?A71FHBerw|ac%Z17L5;&UYu65wY2s%Os-iNh@)q8JsHsL%GkEBXESdWuWQiIjr? zIcHFTKES!tNl@Mv_i0sKkjeUNDT?ebpfyfogFSqrz$}cb*_wOYcc8e*##TmGt6tO+ zF;NfNT6fTL!z(F5U=5U*ahXPT4^B^v?fFC$uwIiTG#!9uzvp3yTHJHXGVu3)b4yX~ zO(1(?8kP@5GD1+Agp4RxhMgvt>%#xP|ae3_w+`2r;huDbO!4}3p-Ei ztSPZ&M}NGujrsbq!q)M7n>{*ezbD|Z@0|YO#g=U;w!)WAhy@m>EuqfI|YBg ze~7id&^H4^`aW5{x6_uFMS;2^u%lFr-DRJq7xjHa{K>l1VRoh?ilv@Tv7+GuCFXEi z7m5ax6DU))1iE(TQFJ%ke@;IS4$go1@NhgLRfM8u9)Uo~`QfHDS~4frTz=`>7qd0` z_u6J9GOE@y8TKcgh94mcl#&d)YpBLSySSKingucwRhkxDtZhj%Z++OBlFjp^A8ee%h4XV6 zBl)`S35==hRJH1Jx0p}IwB6OJXBfgbtRr-ZEF+%+INyN0smOQ1-chbb*DQ>C{=t3Y z6jXOzdHJ|9C1U${Y8KIZjLsJI_}yC>BJ~ZiS*NmRGuPPYSkb!%#r|gKy`Wa!q*rYh zee2xfd*i3mE>FsAmQig#>40I>5BSFp^Wt;D;KOww=lD4;?sioEs!A~I?petM}Tkaz@mXr z5%I`Zv^gWU@aPn#N|0s@q zm&s?-Eu6$_WlBor&)MvQmx$52M!9*iDa-?{;yaq28~dhki~&3Qm)x$A5Gj)dhB_jD zctU`ywn%Q65D;L8G=XXVyVHwofr-%nXW#K3J^qgYFqj|4CM2Pk6hIBB>?IALL`HcD z0XgiE9bRHU4SVFOI}?%`&J9dHk03|2v5SG7>HY5Je8crGP!pkeVWtNJejN z03lM*8v-yzhI>l_i};ZJ-eSNBz62i*`u|@Z{5umHQr3r!{(oC_b{H5B6~uqr|G*VP e2Kc-LoFdzOo&y<}k^IawND^OC998FkV*U%e&jM5c delta 8264 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 bDSjw{r#NsAs^%#SB!Y%{vSGCQ-d^xuFnV%t