From be18279dad5d23570e7fadc7a88c1552a4bf79a4 Mon Sep 17 00:00:00 2001 From: pengjie <17373303529@163.com> Date: Mon, 22 Apr 2024 19:21:57 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=BA=E5=91=98=E5=AE=A1=E6=A0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ISafeEducationQuestionAnswerService.java | 2 + ...afeEducationQuestionAnswerServiceImpl.java | 89 +++++++ .../modules/project/entity/ProjectExtend.java | 7 + .../worker/entity/WorkerInfoAuditRecord.java | 5 + .../xml/WorkerInfoAuditRecordMapper.xml | 3 + .../IWorkerInfoAuditRecordService.java | 3 + .../WorkerInfoAuditRecordServiceImpl.java | 7 + .../impl/WorkerSafeEducationServiceImpl.java | 8 + .../XzWorkerInfoAuditRecordController.java | 218 ++++++++++++++++++ .../xz/entity/XzWorkerInfoAuditRecord.java | 27 +++ .../zhgd/xmgl/security/WebSecurityConfig.java | 3 + .../lib/wflow-server-1.0-SNAPSHOT.jar | Bin 480261 -> 480997 bytes 12 files changed, 372 insertions(+) create mode 100644 src/main/java/com/zhgd/xmgl/modules/xz/controller/XzWorkerInfoAuditRecordController.java create mode 100644 src/main/java/com/zhgd/xmgl/modules/xz/entity/XzWorkerInfoAuditRecord.java diff --git a/src/main/java/com/zhgd/xmgl/modules/edu/service/ISafeEducationQuestionAnswerService.java b/src/main/java/com/zhgd/xmgl/modules/edu/service/ISafeEducationQuestionAnswerService.java index 8f560d511..b4a48abcb 100644 --- a/src/main/java/com/zhgd/xmgl/modules/edu/service/ISafeEducationQuestionAnswerService.java +++ b/src/main/java/com/zhgd/xmgl/modules/edu/service/ISafeEducationQuestionAnswerService.java @@ -18,5 +18,7 @@ public interface ISafeEducationQuestionAnswerService extends IService map); } diff --git a/src/main/java/com/zhgd/xmgl/modules/edu/service/impl/SafeEducationQuestionAnswerServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/edu/service/impl/SafeEducationQuestionAnswerServiceImpl.java index e2ef51128..cb0c65568 100644 --- a/src/main/java/com/zhgd/xmgl/modules/edu/service/impl/SafeEducationQuestionAnswerServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/edu/service/impl/SafeEducationQuestionAnswerServiceImpl.java @@ -10,8 +10,10 @@ import com.zhgd.xmgl.modules.edu.mapper.SafeEducationQuestionAnswerMapper; import com.zhgd.xmgl.modules.edu.mapper.SafeEducationQuestionMapper; import com.zhgd.xmgl.modules.edu.mapper.SafeEducationQuestionOptionMapper; import com.zhgd.xmgl.modules.worker.entity.WorkerInfo; +import com.zhgd.xmgl.modules.worker.entity.WorkerInfoAuditRecord; import com.zhgd.xmgl.modules.worker.entity.WorkerSafeEducation; import com.zhgd.xmgl.modules.worker.entity.WorkerSafeEducationWorker; +import com.zhgd.xmgl.modules.worker.mapper.WorkerInfoAuditRecordMapper; import com.zhgd.xmgl.modules.worker.mapper.WorkerInfoMapper; import com.zhgd.xmgl.modules.worker.mapper.WorkerSafeEducationMapper; import com.zhgd.xmgl.modules.worker.mapper.WorkerSafeEducationWorkerMapper; @@ -44,6 +46,8 @@ public class SafeEducationQuestionAnswerServiceImpl extends ServiceImpl> dataList=new HashMap<>(); + if(dataVo.getList()!=null&&dataVo.getList().size()>0){ + //清除上一次回答记录 + QueryWrapper workerInfoQueryWrapper=new QueryWrapper<>(); + workerInfoQueryWrapper.lambda().eq(WorkerSafeEducationWorker::getWorkerId,dataVo.getWorkerId()) + .eq(WorkerSafeEducationWorker::getEduId,dataVo.getEduId()); + workerSafeEducationWorkerMapper.delete(workerInfoQueryWrapper); + QueryWrapper answerQueryWrapper=new QueryWrapper<>(); + answerQueryWrapper.lambda().eq(SafeEducationQuestionAnswer::getWorkerId,dataVo.getWorkerId()) + .eq(SafeEducationQuestionAnswer::getEduId,dataVo.getEduId()); + safeEducationQuestionAnswerMapper.delete(answerQueryWrapper); + //保存用户的回答 + for (SafeEducationQuestionAnswer answer:dataVo.getList()){ + answer.setEduId(dataVo.getEduId()); + answer.setWorkerId(dataVo.getWorkerId()); + safeEducationQuestionAnswerMapper.insert(answer); + if(dataList.containsKey(String.valueOf(answer.getQuestionId()))){ + List opList=dataList.get(String.valueOf(answer.getQuestionId())); + opList.add(answer.getOptionId()); + dataList.put(String.valueOf(answer.getQuestionId()),opList); + }else{ + List opList=new ArrayList<>(); + opList.add(answer.getOptionId()); + dataList.put(String.valueOf(answer.getQuestionId()),opList); + } + } + //计算分数 + QueryWrapper questionQueryWrapper=new QueryWrapper<>(); + questionQueryWrapper.lambda().eq(SafeEducationQuestion::getEduId,dataVo.getEduId()); + questionQueryWrapper.orderByAsc("sort_num"); + List list=safeEducationQuestionMapper.selectList(questionQueryWrapper); + int totalSocre=0; + if(list!=null&&list.size()>0){ + //查询正确答案的选项 + QueryWrapper optionQueryWrapper=new QueryWrapper<>(); + optionQueryWrapper.lambda().eq(SafeEducationQuestionOption::getEduId, dataVo.getEduId()) + .eq(SafeEducationQuestionOption::getCorrectType,1); + List optionList=safeEducationQuestionOptionMapper.selectList(optionQueryWrapper); + for(SafeEducationQuestion question:list){ + List optionIdList=new ArrayList<>(); + for (SafeEducationQuestionOption option:optionList){ + if(question.getQuestionId().longValue()==option.getQuestionId()){ + optionIdList.add(option.getOptionId()); + } + } + Collections.sort(optionIdList); + if(dataList.containsKey(String.valueOf(question.getQuestionId()))){ + List opList=dataList.get(String.valueOf(question.getQuestionId())); + Collections.sort(opList); + //比较用户的选择和答案是否一致 + if(Arrays.toString(optionIdList.toArray()).equals(Arrays.toString(opList.toArray()))){ + totalSocre=totalSocre+question.getQuestionScore(); + } + } + + } + } + workerSafeEducationWorker.setScore(totalSocre); + //判断是否及格 + if(StringUtils.isNotEmpty(safeEducation.getPassScore()) &&totalSocre>=Integer.valueOf(safeEducation.getPassScore())){ + workerSafeEducationWorker.setIsQualified(1); + }else{ + workerSafeEducationWorker.setIsQualified(2); + } + workerSafeEducationWorker.setProjectSn(info.getProjectSn()); + workerSafeEducationWorkerMapper.insert(workerSafeEducationWorker); + } + return workerSafeEducationWorker; + } } diff --git a/src/main/java/com/zhgd/xmgl/modules/project/entity/ProjectExtend.java b/src/main/java/com/zhgd/xmgl/modules/project/entity/ProjectExtend.java index c95190b15..f0c270806 100644 --- a/src/main/java/com/zhgd/xmgl/modules/project/entity/ProjectExtend.java +++ b/src/main/java/com/zhgd/xmgl/modules/project/entity/ProjectExtend.java @@ -148,5 +148,12 @@ public class ProjectExtend implements Serializable { @ApiModelProperty(value = "绿色施工") private String greenConstruction; + /** + * 安全教育ID + */ + @Excel(name = "安全教育ID", width = 15) + @ApiModelProperty(value = "安全教育ID") + private Long educationId; + } diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/entity/WorkerInfoAuditRecord.java b/src/main/java/com/zhgd/xmgl/modules/worker/entity/WorkerInfoAuditRecord.java index 05a811b8d..f6ab3be58 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/entity/WorkerInfoAuditRecord.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/entity/WorkerInfoAuditRecord.java @@ -215,4 +215,9 @@ public class WorkerInfoAuditRecord implements Serializable { @Excel(name = "是否上传住建,0否,1是", width = 15) @ApiModelProperty(value="是否上传住建,0否,1是") private java.lang.Integer isUploadHousing ; + + /**培训是否合格*/ + @Excel(name = "培训是否合格", width = 15) + @ApiModelProperty(value="培训是否合格") + private java.lang.Boolean isExamPass; } diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerInfoAuditRecordMapper.xml b/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerInfoAuditRecordMapper.xml index 2e0c34d2c..d756d5ccf 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerInfoAuditRecordMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerInfoAuditRecordMapper.xml @@ -39,5 +39,8 @@ and a.person_type=#{param.personType} + + and a.is_exam_pass=#{param.isExamPass} + \ No newline at end of file diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/service/IWorkerInfoAuditRecordService.java b/src/main/java/com/zhgd/xmgl/modules/worker/service/IWorkerInfoAuditRecordService.java index d8a758318..1c19f82a6 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/service/IWorkerInfoAuditRecordService.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/service/IWorkerInfoAuditRecordService.java @@ -5,6 +5,7 @@ import com.zhgd.jeecg.common.mybatis.EntityMap; import com.zhgd.xmgl.modules.worker.entity.WorkerInfoAuditRecord; import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; import java.util.Map; /** @@ -17,6 +18,8 @@ public interface IWorkerInfoAuditRecordService extends IService selectWorkerInfoAuditList(Map map); + List getPassList(Map map); + void saveWorkerInfoAuditRecord(WorkerInfoAuditRecord workerInfoAuditRecord); void editWorkerInfoAuditRecord(WorkerInfoAuditRecord workerInfoAuditRecord); diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerInfoAuditRecordServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerInfoAuditRecordServiceImpl.java index d344ea633..a77f93b02 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerInfoAuditRecordServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerInfoAuditRecordServiceImpl.java @@ -46,6 +46,13 @@ public class WorkerInfoAuditRecordServiceImpl extends ServiceImpl getPassList(Map map) { + Page page = new Page<>(-1, 10); + map.put("isExamPass", true); + return workerInfoAuditRecordMapper.selectWorkerInfoAuditList(page, map); + } + @Override public void saveWorkerInfoAuditRecord(WorkerInfoAuditRecord workerInfoAuditRecord) { QueryWrapper queryWrapper=new QueryWrapper<>(); diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerSafeEducationServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerSafeEducationServiceImpl.java index 897f07573..8ffe5bc1b 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerSafeEducationServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerSafeEducationServiceImpl.java @@ -19,6 +19,8 @@ import com.zhgd.xmgl.modules.edu.mapper.EducationClassifyMapper; import com.zhgd.xmgl.modules.edu.mapper.SafeEducationQuestionAnswerMapper; import com.zhgd.xmgl.modules.edu.mapper.SafeEducationQuestionMapper; import com.zhgd.xmgl.modules.edu.mapper.SafeEducationQuestionOptionMapper; +import com.zhgd.xmgl.modules.project.entity.ProjectExtend; +import com.zhgd.xmgl.modules.project.mapper.ProjectExtendMapper; import com.zhgd.xmgl.modules.project.mapper.ProjectMapper; import com.zhgd.xmgl.modules.project.service.IProjectService; import com.zhgd.xmgl.modules.sanjiang.service.impl.SjSafeEnvironmentFileServiceImpl; @@ -77,6 +79,8 @@ public class WorkerSafeEducationServiceImpl extends ServiceImpl> selectWorkerSafeEducationPage(Map map) { @@ -138,6 +142,10 @@ public class WorkerSafeEducationServiceImpl extends ServiceImpl projectExtends = projectExtendMapper.selectList(Wrappers.lambdaQuery().eq(ProjectExtend::getEducationId, id)); + if (projectExtends.size() > 0) { + return; + } workerSafeEducationMapper.deleteById(id); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(WorkerSafeEducationWorker::getEduId, id); diff --git a/src/main/java/com/zhgd/xmgl/modules/xz/controller/XzWorkerInfoAuditRecordController.java b/src/main/java/com/zhgd/xmgl/modules/xz/controller/XzWorkerInfoAuditRecordController.java new file mode 100644 index 000000000..43755066c --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/xz/controller/XzWorkerInfoAuditRecordController.java @@ -0,0 +1,218 @@ +package com.zhgd.xmgl.modules.xz.controller; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.zhgd.annotation.OperLog; +import com.zhgd.jeecg.common.api.vo.Result; +import com.zhgd.jeecg.common.mybatis.EntityMap; +import com.zhgd.xmgl.entity.vo.SafeEducationQuestionAnswerDataVo; +import com.zhgd.xmgl.modules.edu.service.ISafeEducationQuestionAnswerService; +import com.zhgd.xmgl.modules.worker.entity.WorkerInfoAuditRecord; +import com.zhgd.xmgl.modules.worker.entity.WorkerSafeEducationWorker; +import com.zhgd.xmgl.modules.worker.service.IWorkerInfoAuditRecordService; +import com.zhgd.xmgl.util.MessageUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections.MapUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.lang.reflect.Array; +import java.util.Arrays; +import java.util.List; +import java.util.Map; + + +/** + * @Title: Controller + * @Description: 劳务人员-审核表 + * @author: pds + * @date: 2021-05-13 + * @version: V1.0 + */ +@RestController +@RequestMapping("/xmgl/xzWorkerInfoAuditRecord") +@Slf4j +@Api(tags = "劳务人员-审核表") +public class XzWorkerInfoAuditRecordController { + @Autowired + private IWorkerInfoAuditRecordService workerInfoAuditRecordService; + + @Autowired + private ISafeEducationQuestionAnswerService safeEducationQuestionAnswerService; + + /** + * 分页列表查询 + * + * @return + */ + @ApiOperation(value = "分页列表查询劳务人员-审核表信息", notes = "分页列表查询劳务人员-审核表信息", httpMethod = "POST") + @ApiImplicitParams({ + @ApiImplicitParam(name = "workerName", value = "姓名", paramType = "body", required = false, dataType = "String"), + @ApiImplicitParam(name = "idCard", value = "身份证号", paramType = "body", required = false, dataType = "String"), + @ApiImplicitParam(name = "userEnterpriseId", value = "用户能查看的企业", paramType = "body", required = false, dataType = "String"), + @ApiImplicitParam(name = "enterpriseId", value = "所属企业", paramType = "body", required = false, dataType = "String"), + @ApiImplicitParam(name = "teamId", value = "班组ID", paramType = "body", required = false, dataType = "String"), + @ApiImplicitParam(name = "departmentId", value = "部门ID", paramType = "body", required = false, dataType = "String"), + @ApiImplicitParam(name = "personType", value = "人员类型 1、劳务人员 2、管理人员", paramType = "body", required = true, dataType = "String"), + @ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "body", required = true, dataType = "String"), + @ApiImplicitParam(name = "pageNo", value = "第几页", paramType = "body", required = true, dataType = "Integer"), + @ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "body", required = true, dataType = "Integer"), + }) + @PostMapping(value = "/selectWorkerInfoAuditList") + public Result> selectWorkerInfoAuditList(@RequestBody Map map) { + return Result.success(workerInfoAuditRecordService.selectWorkerInfoAuditList(map)); + } + + /** + * 列表查询 + * + * @return + */ + @ApiOperation(value = "列表查询劳务人员-审核表信息", notes = "列表查询劳务人员-审核表信息", httpMethod = "POST") + @ApiImplicitParams({ + @ApiImplicitParam(name = "workerName", value = "姓名", paramType = "body", required = false, dataType = "String"), + @ApiImplicitParam(name = "idCard", value = "身份证号", paramType = "body", required = false, dataType = "String"), + @ApiImplicitParam(name = "userEnterpriseId", value = "用户能查看的企业", paramType = "body", required = false, dataType = "String"), + @ApiImplicitParam(name = "enterpriseId", value = "所属企业", paramType = "body", required = false, dataType = "String"), + @ApiImplicitParam(name = "teamId", value = "班组ID", paramType = "body", required = false, dataType = "String"), + @ApiImplicitParam(name = "departmentId", value = "部门ID", paramType = "body", required = false, dataType = "String"), + @ApiImplicitParam(name = "personType", value = "人员类型 1、劳务人员 2、管理人员", paramType = "body", required = true, dataType = "String"), + @ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "body", required = true, dataType = "String"), + }) + @PostMapping(value = "/getPassList") + public Result> getPassList(@RequestBody Map map) { + return Result.success(workerInfoAuditRecordService.getPassList(map)); + } + + /** + * 添加 + * + * @param workerInfoAuditRecord + * @return + */ + @OperLog(operModul = "劳务管理", operType = "添加劳务人员-审核", operDesc = "添加劳务人员-审核表信息") + @ApiOperation(value = "添加劳务人员-审核表信息", notes = "添加劳务人员-审核表信息", httpMethod = "POST") + @PostMapping(value = "/add") + public Result add(@RequestBody WorkerInfoAuditRecord workerInfoAuditRecord) { + workerInfoAuditRecordService.saveWorkerInfoAuditRecord(workerInfoAuditRecord); + return Result.ok(); + } + + + /** + * 添加 + * + * @param + * @return + */ + @OperLog(operModul = "安全教育管理", operType = "添加安全教育-人员回答记录", operDesc = "添加安全教育-人员回答记录") + @ApiOperation(value = "添加安全教育-人员回答记录信息", notes = "添加安全教育-人员回答记录信息", httpMethod = "POST") + @PostMapping(value = "/submit") + public Result submit(@RequestBody SafeEducationQuestionAnswerDataVo dataVo) { + WorkerSafeEducationWorker workerSafeEducationWorker = safeEducationQuestionAnswerService.xzSaveQuestionAnswer(dataVo); + WorkerInfoAuditRecord infoAuditRecord = new WorkerInfoAuditRecord(); + infoAuditRecord.setId(dataVo.getWorkerId()); + infoAuditRecord.setIsExamPass(workerSafeEducationWorker.getIsQualified() == 1 ? true : false); + workerInfoAuditRecordService.updateById(infoAuditRecord); + return Result.success(workerSafeEducationWorker); + } + + /** + * 通过id删除 + * + * @param + * @return + */ + @OperLog(operModul = "劳务管理", operType = "删除劳务人员-审核", operDesc = "删除劳务人员-审核表信息") + @ApiOperation(value = "删除劳务人员-审核表信息", notes = "删除劳务人员-审核表信息", httpMethod = "POST") + @ApiImplicitParam(name = "id", value = "劳务人员-审核表ID", paramType = "body", required = true, dataType = "Integer") + @PostMapping(value = "/delete") + public Result delete(@RequestBody Map map) { + Result result = new Result(); + WorkerInfoAuditRecord workerInfoAuditRecord = workerInfoAuditRecordService.getById(MapUtils.getString(map, "id")); + if (workerInfoAuditRecord == null) { + result.error500(MessageUtil.get("notFindErr")); + } else { + boolean ok = workerInfoAuditRecordService.removeById(MapUtils.getString(map, "id")); + if (ok) { + result.successMsg(MessageUtil.get("deleteSucess")); + } + } + return result; + } + + /** + * 通过card查询 + * + * @param + * @return + */ + @ApiOperation(value = "通过card查询劳务人员-审核表信息", notes = "通过card查询劳务人员-审核表信息", httpMethod = "POST") + @ApiImplicitParams({ + @ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "Integer"), + @ApiImplicitParam(name = "idCard", value = "身份证号", paramType = "body", required = false, dataType = "String"), + }) + @PostMapping(value = "/queryByCard") + public Result queryByCard(@RequestBody Map map) { + String idCard = MapUtils.getString(map, "idCard"); + String projectSn = MapUtils.getString(map, "projectSn"); + Result result = new Result(); + WorkerInfoAuditRecord workerInfoAuditRecord = workerInfoAuditRecordService.getOne(Wrappers.lambdaQuery() + .eq(WorkerInfoAuditRecord::getIdCard, idCard).eq(WorkerInfoAuditRecord::getProjectSn, projectSn)); + if (workerInfoAuditRecord == null) { + result.error500(MessageUtil.get("notFindErr")); + } else { + result.setResult(workerInfoAuditRecord); + result.setSuccess(true); + } + return result; + } + + /** + * 通过id查询 + * + * @param + * @return + */ + @ApiOperation(value = "通过id查询劳务人员-审核表信息", notes = "通过id查询劳务人员-审核表信息", httpMethod = "POST") + @ApiImplicitParam(name = "id", value = "劳务人员-审核表ID", paramType = "body", required = true, dataType = "Integer") + @PostMapping(value = "/queryById") + public Result queryById(@RequestBody Map map) { + Result result = new Result(); + WorkerInfoAuditRecord workerInfoAuditRecord = workerInfoAuditRecordService.getById(MapUtils.getString(map, "id")); + if (workerInfoAuditRecord == null) { + result.error500(MessageUtil.get("notFindErr")); + } else { + result.setResult(workerInfoAuditRecord); + result.setSuccess(true); + } + return result; + } + + @OperLog(operModul = "劳务管理", operType = "劳务人员审核通过", operDesc = "劳务人员审核通过") + @ApiOperation(value = "审核通过", notes = "审核通过", httpMethod = "POST") + @ApiImplicitParams({ + @ApiImplicitParam(name = "id", value = "劳务人员-审核表ID", paramType = "body", required = true, dataType = "Integer"), + @ApiImplicitParam(name = "ufaceDevId", value = "人脸设备表ID", paramType = "body", required = false, dataType = "String"), + }) + @PostMapping(value = "/adoptWorkerInfo") + public Result adoptWorkerInfo(@RequestBody String paramMap) { + JSONObject param = JSONObject.parseObject(paramMap); + param.put("id", param.get("id").toString().replace("[", "").replace("]", "")); + param.put("ufaceDevId", param.get("ufaceDevId").toString().replace("[", "").replace("]", "")); + param.put("accountType", 2); + param.put("registerType", 2); + workerInfoAuditRecordService.adoptWorkerInfo(param); + return Result.ok(); + } + +} diff --git a/src/main/java/com/zhgd/xmgl/modules/xz/entity/XzWorkerInfoAuditRecord.java b/src/main/java/com/zhgd/xmgl/modules/xz/entity/XzWorkerInfoAuditRecord.java new file mode 100644 index 000000000..06fdd6aa5 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/xz/entity/XzWorkerInfoAuditRecord.java @@ -0,0 +1,27 @@ +package com.zhgd.xmgl.modules.xz.entity; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import lombok.Data; + +import java.io.IOException; + +@Data +public class XzWorkerInfoAuditRecord { + + private Long id; + + private Integer registerType; + + private Integer accountType; + + private Long ufaceDevId; + + public XzWorkerInfoAuditRecord(String json) { + XzWorkerInfoAuditRecord xzWorkerInfoAuditRecord = JSON.parseObject(json, XzWorkerInfoAuditRecord.class); + this.id = xzWorkerInfoAuditRecord.getId(); + this.registerType = xzWorkerInfoAuditRecord.getRegisterType(); + this.accountType = xzWorkerInfoAuditRecord.getAccountType(); + this.ufaceDevId = xzWorkerInfoAuditRecord.getUfaceDevId(); + } +} diff --git a/src/main/java/com/zhgd/xmgl/security/WebSecurityConfig.java b/src/main/java/com/zhgd/xmgl/security/WebSecurityConfig.java index eccbe0c37..7c55cb70c 100644 --- a/src/main/java/com/zhgd/xmgl/security/WebSecurityConfig.java +++ b/src/main/java/com/zhgd/xmgl/security/WebSecurityConfig.java @@ -365,6 +365,9 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter { .antMatchers("/xmgl/systemUser/resetPwByEmail").permitAll() .antMatchers("/xmgl/xzRegistry/validCode").permitAll() .antMatchers("/xmgl/videoItem/updateStatus").permitAll() + .antMatchers("/xmgl/xzWorkerInfoAuditRecord/adoptWorkerInfo").permitAll() + .antMatchers("/xmgl/xzWorkerInfoAuditRecord/queryByCard").permitAll() + .antMatchers("/xmgl/xzWorkerInfoAuditRecord/submit").permitAll() .antMatchers(HttpMethod.OPTIONS, "/**").anonymous() .anyRequest().authenticated() // 剩下所有的验证都需要验证. .and() diff --git a/src/main/resources/lib/wflow-server-1.0-SNAPSHOT.jar b/src/main/resources/lib/wflow-server-1.0-SNAPSHOT.jar index 69bd5b28e9b19d7315173d95c26793f11072f277..d4ca0f6554426180173318e9313159444c7def38 100644 GIT binary patch delta 27422 zcmZ6z1z40p*FVhevP(CJv~-trgLJo)fOJTAx*#egAS|#-NQ0yT!V*eKNS7kr-3>~7 z>+bXZ-}m{vE}XM7XU?4Sn=^Co+!lf{>grUH})WGzaj3{?*3=1W{!xfEQIB z0C-R(Jx~Bu>I3=zQ%?i?03-q3L-wHu(!lqdL3k*Y{&$F008I*r6va&edWb4DK-{R( z96$rB0^`84K)9&UTd-K*^3eeB|4+gKNDRdufo>*%X<*`_D&{c-;lvUk2rLm<@z0D* zO!@ybD4db(#VQmof zP=gS0R0B2^x`Qf~DC%GDiEp;8w$Ax{D(Axb{}8|AVKyu z)h1n!&m_jcP~ybE5QW+FP$S9?0N;rT|Fu0a6s>;^!oV2Ch8@V?LyQLiKA;65?t@!_ zC~cf4HUWf4ZA>5Q?i!T=Ffgn^@VE6~wtuLS)xv)@15j+nzui%))^^QQqlw^!8k8Be zd}|&kp|v@iyVxi-n^r-QXv3Zr1EkO+GX8+L0a4~8mI0#hQ54AnW;6<0#9KG85*2D7 z|0*(+{k4RITxghB=|Gxj8NLrd#%M@dLm(<>N}B?rhUR-m4Us@8i?II&QURkz_!)zF z0Y;ez7gtgaN4osQJ^0dRFk5;uCKyqU4@|~J@qLp4?W5&YJpvsOqUx-3Fc;7o z(UVeb1&Tzq)^=N2qRnTszeRD?vO5JTqB@EVL8wXb{%1}8o9R0dz&Tn;ygtBd2nr;y z2V@K_e%cG-4`G>(^_z;+SHog@Vp_VhPBT%aF}3nxwo;33+0fko(U&JTeS zXjr*sz!GR{9hbn5h*09)13@SFD7{PW1D*m2{@LC9h%6-lh=D;2uf7jpLL9n)vw{EC z4BSx!kdB%@`rmxXuE=2ty*;7h0}7Q|zVA$EK!-}eqG+|BCqnW;*#Fd7IK0k=jVQ~(_4Kf?5FROzasWzo z+EfS;+AzK>h#$IF?i+wE8ky8o1&j~K$t%G6=VA2leHjP|f+yvF*6v&yAQjE1^dTtp z19Eqqq=rWh0;%A7AS@0%gfIxH0W&NQd=Jh?1Hgt?*+IlWLb6wgO*_ac+97h2 zfiU!X5={dNqbc`yKqf4d9P!D(h9RVkFIX5D^k^51BgVo++Im)u`K9MP_YRRNv`;{1aXOstWg0UK48gob@gMb+1U zU!bS+RXx}X<<+%6b-6$&6aq;T0!YCa7>#(aQ7fu{n>i8ufdH5U9(x2Ksx>yGMXy6Y zQ(d(G%5H*E(3+0#fOJrg9R$lQh(!f8hl*!le6-SV2Oxw8<%p}~AX&7ZuWDk>g9-j^ zoe@-quV#^W7QyAyfK2eV5dbFQOdk^mjTgWe^C{Y~?JY3T-iF|=1KmU06;}bwM^pS& zKxy>$>R5NBkAcKgma1y!|Dg+isw>F7`Ljb6iCB~|Ln}~FwTDXEFSRL96 zgaCk#)q(`qIRW*=q}VT6Y9ok=I-LVqc&Ya)0-b{2jZFk(u?5hwyQe&6(T0f&2LBZ4 zHpBl;xFu9K9{pEsx_FC>W_ns@Hriq`A^TvcqR`UCtn~W%RY7j{-*=%yG8a-CVHfkk zM{}C|7^bXavICuD4&pEPxh_+P_@tqEi|TR|ez4nDadhrZ@4g)Wtq2Rm4 z5@Y`0BVE}iUEBuy#{5;m-j?-uX0o?k@$75IE&Mch+g;CU!sg<|?5~(VJ?SyN{v9ty zah*wdx8G@bNyIP9yLYS0KYzU3`t{Ni?5SyS*ArbC)DwSad`QL+u!zGypSBii1;E8_ zf6Z}(3+I`m<&lo#II|&A#eG!-J><$Ch^C)9=ggmFHxf*67qpBU)>C?=J3#&%0Jk~E zyPO%chjKWaR!UO4iv9h2W?#_8tLSJXR^Mfi{$Be1bSW!oh(T_Zj4k1-#0#qRqmj3B zl-ubE*<@ITs!vTMJ-S|>eycXBm>kJm_8uRrct@p+Q{l^|&0=?S+fpc62xSn1Mdevp z#+N(_H&^1qbtwSm6@PJ{Phvge_!%-7u=d@=zj;ZY=lrmO zJ*kVSsV(KaU|Ntjwcb{R!?v4w%ibW#A}{^go1Ax!IKHPs84~`u*L_U70dfp4e~6bs0ZXJw6-8@%5XP_}M^X-gZ~Oz_w9b zm`9}pf^}<3O1f(7C)uiUD*8CvFN?ewtAqN+mPx)P7>4AB=Z#oUkV9uNaJh91b=|7ely~TxDVbkjQ%53`Ic||>2wE8~A zZgXZQ3fNxk>`m)=8kLinX5y*vJRhK)P+UsZ*LO0tb7%akN$|I*EuYhQk;5ryFhR!9 zH@dBCu>t>`^fv2iQL&{HF{wg#8EEv>DLXqq2l7lOw4z_@ zoTum+;xK13-LU%qh#Y-4_#^M{n56n-`w6|-fsUgK)ZLrz-c*2q<12$Lr4B9gJg;Yx z9tBF{qM5~MH6MF_BvPRDs_?*V}0Ix9~*||%y^8tnDh&5F$9%)9(R#e8&N3em&Z9A z>$7iz%h>U#lzE2D^@1k&EaM-_n)?rGux~Ltd?~K)+Ujvs)GUIYrgC{uG6L)KAI-K~ zhB~}zFr+B|?y6j&-(_B%$Y~OxVtmTPk$~g(in(uliOPplk6PRdRoe7{X5mO2_?vUXmMig~X~waZz_c8uyA$aGSEJWR$FVKsdSa>F(1vRw9v9GOrG6y$IhR2D9^t#x+f((MTN4#gwO!}vJK z5PUctMX8%z#rL9$$=ql(PRzL4*lmSx_LGHK_wQvlI|@6f%%EsQnKRjpQMF~?Zd;~S z0Hnd&fMTzvnngTW0MF|qSAfP9A*au?&-Ek4OZ#N7=A(UKUkgu{k(6B&$&S(W@u;$z%uE55%Q!LZQ!_9I^pcl5}|E_W|Z{9~NrvX#V)jWI2W z`O-ksXuCeix3ZWRXDeK(psS$Yw(IV=IyVuIy|_K>523TG^bf>*HVQcoZxf_ap>Uhz$6=+K!!C!BzpjZ*mO`h7deaL&J9 zC=b+VAif2}61$Y|$YP@*W281tq81;#Yod#!El=9)-HS&aM6Z`E=DogPdeK)9_;@sd z-?Grxz|0pqlxBC9s?%9V#>cjH-c=|Rx^HeMueoRB!84XsO}PJgs(x_$RV8=vq{N?l zG9dA0DU!N@JtN+6<6LGU{l-=?dX9(Mw>XSMbfus4+0NSto_w2(W@cjhEH2(vTX`>8 zi{Il)Zz;^T%V4I>)C?sR(3J`^?w=&J`cCY_`6RhMKOKuF;LWpfSH$U*kPkf6X{-GmkxuQ^qSo-D&V2=IFQ%)J zX250v8yfDaLL>BWszljO>M|yH3DH=~!zao@yOWeeYhDX;5;0kuN)f86(W@FIb0GK1 zSkV!^ntcoPDjfvZ^}=b{JAM?ArmPu`eUNbw*6|qR=;z5Ui<9*sb@`T;Q5}B}B+J$CxpBpIUKT3jw%!?g^3WrqS$m4UV2oz?bL%2` z5_w@Z6IO9|Y4G!o(^oj$3-_twnJtt(y{%_?;x}}~pGm{(B(3G>3{^JWkG}5}1S~sQ zDC3uP5EsWiJN}wUd{KId|JwMP>-97j@Q9uX9-%8mO>R-gv!0cs(Zx}@7CMT zqrffDHF2~3uw%8K;>_{TAAMx03Wnu#@-~fNeuveTFm+sx@r?DjoEY+T6|78{(6+c%SqryV&J|Cp0Uw{@8SSN zw|;U#kDB9bA*H>NKtsM7ypEOHgwJ(jT(u#{9d*Hr7sSVi@#On1X;xQ0&zi`{Yt+xqFo~9VWLI6a3V>5xM|{wczf5gkL~Ke$X#cm{(8rq z$UNe|rPZlb>8A zh-zd8l__!sIM`%P4X9|>k&g3|-!9OUvXxi!z z{~br4_>YdbkpO9K&O#v#97d@W%=)^v!SS zsh1271;Gr%cYj&`9>A|K9b0;WxU$9L76oWscfCHIuDi&n(hL2e!uB)nQ}s6k(zc8JkYMiqwj??KJ0erQ%9DlmUaD^1ssty&Z$qunF^}L` znhgySX$RQr6VH0O=klo`2dB>olWL!=S!cIr*hqi>V}2*u{5=x22+Z$2i)=Xbty0TSKoKCB~<15TNJo@E535~JfX>V~mvbaHdx%v&gr>|h>9h}@ z4Awi%Qdy^2WM(@T+8o^WY*aj(BSi1c`+qACdR!a~jkKG?aL@~VK=hyB*Rbcag&Z|jP*oME<(MwAy#Wax9bjV`#bgmdObQ{jM-<-emT5Lavu|-=KLIb5P zvV4anE@plAGo}Cj>`WpXwLjA)8eCDQmyKl4l#oASPQ;g7#RR3poqXRX zz2hzto$NdbYMCg*mo>}PIZ6hSyNXy@wc)MR^)7Zve2IbwHKxOSX7+NewmG3%Y($0M*68!LA2v>F>Mn}EYz7PXJv^utO`HN>F|o4 z3vAky#L5*K#b;^m+0p)?<24B9|(;NQK;GAd#0~5nCCMNvlPC5V|t4Rck#z_Ph*^f<8OOV{6^aE5BleL7k5K4Q{^ufF2%l zU#k+`#op~MwH}tUHRIowN7o-ONM8p&A6%U*3RAT5%s74X=BvZ89RBl}&b!q>{O9l= zWpPR`s*k-M&=YmPf3oDv4ErQW{p_@-lK=)CJ~mOMp^2(CC|2M-dRoEsJInNbIU!^_ zs(SjVo8m{lUg5?jzUkG4-^7U?r=D-Rf9+_@(x377OXFdmq<>K&%`09!)|37sO3M?k zlpib4M4k|l1al+Iu**}kQ{)*TC;xg|*DlYp?}Sg$ua4+Dt+bD119eap*V?1O6IESdZ2yoU{n(dD6E{K~ zDlm3G4)aD+5@Z{2@b24(iHYk0Ln(P1E2zAGdymmuwx5Lpl#UUYuXnfd)Hnpmwz=;k zvVK_7S7N=8{rLcqTjb&{P;Yd9B%~7WB@~Wj%jhDNz5l(5m_=3?MhZ86%%7mr={+LA z*r@b?rH{(`E!)Vkvp8)98E@+JwVj*Gp-5g6iN@YdU>z%`;JX=fzROy9~EE0}{vQ@F~m7d!Mc9V&&)lWXRY4 zA{r8jy6gI~d04)SBgXW0w)<&5(|tmyTa|Mx*sat2$y@K*R~Z?dw~p8#qZi4NTe>ev zGqb-Xy-#bhl;nfe4-g~{{;+c0xQ|Cp6;K%%8yqI3%~lLWJI);_!%ifEOwjtyCikF#U;11g>yVOeHUp2t!GUvZOO)8 z-I0;1HslYyS?x%A{k_RmS-agwO@_S)WV-j&^h*&{_}X5$Z&KV=SOTZqPn_wSW!`6o zd(-KX@9~&F0jE?lcbCNeW!m$KXgM>%KoLD;QUYuQ>#qSFIDXWYOVu zTXcBU@>qIr`Mlb$4hXE}OFeCpH&-+ z5tbU1Q}O3%RBCx5WQwGA8%Gs%wic^xE=ZxO#8n%uZVeHKW9xcOs#Cq1r*Hg2Ipt`X zoWV>;ZX3h8imm;N+fU2pB@=-@F(AP{$eP4~I=$ZM^l@oYmAdjVh5myq-=HJEq(}Dt zo%%5)PV?10+d^ccanA9wCs{h)Otj}f?v|raMdG3K{pRz55AW)4Wn?(7blU- zvZ4$iWzu#3!upspi-z>oxkj-NnZ38xD=L^4rbzWu;Yi_5{`hzm;(0ab*OD92w+PHm z>R9E_Eykz?#K#2s*N@_PZX@J`FYiX$@9Hm^Z}0aA>Z~hCli&%@T&aE46}@AJ%PAZ! zJfU|wD!G2&j>U7E)!Mtp|JVM=q%my7pzybWMkD@Oy-|8!{pMt!eB9L0OJWWAA}!4| z4x)T_&EPbLQmZmCwZLDwQ00Y^?AP0NrB8lRnmvI?FdH~yi~KQBv$GO!dR$`Z#nM)9 z>v7gW@$4Q?#m6VL&ObVo>xiAOgjDTaICHk0N^e~wiXg{ual;U5Y8uzKMaL7wnsfz; zbrX8GFJ1ID{0CfcUhPB)D$+TX+PF64shGMJQahA}iA)>VO_*}nl|qYfUnY1TbEQrO ziC{8zI9^jsPLNMd66MIX7M7N>&?AhJx#}k{*ANp*BDnHYK%e3ts$|Nh+d;3gmlE4? z7lZ2L2;0;xwlPJf@)6k7nM~A~WjbFb)Lk?3G?`vWHgQOUdP=je|0XUHl+*Kv6k1sgPXcW-d}p;{Fpao+SVT$SCp<+`B*!;y~9LM zL&O(iHGX7U`sOXJQfc3+ND02T!~3tsKY^yk%4_*Wn`RC6AG#E&nr(7l%nfe{dg1i@ z1dGS5HA;6Ia2r`q=nk&wb38Ub6~5`nZ{7;k0xeA6&WX{xgrCGUFEp*)iZOh<9K88! z;x2LErSFL=XF6`|VZb;&4>X}@$Y6(nqTUDwoEY&~!F?L*@dne5jAixw z_sW=FfYI+0Uvqv)KdP#UJxLx6F1bJ^2YBz$KJa~YAJwCa&Mt5dsp3?eGjd%G& zFomKN<75`R%N80rDBAtvg|THPY~Y8fDB<+eT$~ghHKMy+tGt-}i2^=-I6YH?)S#l& zgqV`HLSqNbJV1MlqQfWZEKhP(r07RyDL0kCI594}Qsp>qld6yNV&vd`+tv*Z0jKfXTd)Uq7k8 zu$R2hz7jl_;6(nD(4VS4h@(yn5|EobE7ay*f%l#ALD#RzZ65-f(S%zt)d&;s&XpLk z+vBM#<0FZ7FX6EUVb=}&=tftaeYQr+XZURCCHow@yU#z|cEi+J&ch#3rPc#xEN5+d zSc`W%!2+w$Wf_9)#-4aK{Qb37eQ={qhnuV7=J z{;cLp?6M&YO6#l?#Y=XeEqq*9z+p|QTg75J&vDc*jI}w(^<1qIxSLy|Wlm&xVHW6P`meq*KC){?JgkaLhuN()qgCV-oeWi;JsLP3zSBFSHRQH`T zq-AEbK_T6>&6y5 zv)>P*ov;FCS`}C2#U)u^(1+30!%q^%8awN?xjneGp>tX~eu?oxn_0O8?gh2Y+TSA2 zx{sZebUIv@2dtc+xAb~?{xK(aKEalN7C-8drPH)z?lpgkEVb8sj2MDC|7woKM5=ie44Llc)(IGP zr||8OySYSbrtCjowSk`KbSE1pzjppQhYOXu%g8Tx{5E8tX&v4s#rerTaB(rqKjG|F zTRXv~HT&-$_;$xtudp0fUZjk7DU60$d^ojns#UD|=7UMjPJnL76E?;Bww-AK4Z0db zXTNr&f}MI+MoJ^DC#Om9YJ%9y-@|q}BwqNAzK1P%^Y!Y=G`-jQNkthn5oW)2_Tv-O zJ;aAq_G9gM#`_k>xXGu8Et4)a7y2hL$s%8~1bZ5W_Unl;$yO$+O!liTZH&G5CjO0BI{_t! zU^-uk+Fv*YM#oC_%9SZ(+F$tg_|x%1iC%Wr^>Q-SWt zV;P;1A{A!)CvxARN%dk*^TK~?M)@LeD>Q@0{OqravJFejH_cXIB1%6WF`I_HvKAt+dUxRgUsw}FGtNiC`pJ> zlGC`|sknf2az3M-ZvHv)RTM4(5PLL9#6oVg5E_^9w#r8>wCC@W%2misg=Kbwb&ASD zX8u7@&gk%2!(`rp-rx6%32V0#Ru3lgg+~G{^=TZ0ekG{TyvMDhEe$6B95T~uu-H8L zV)@8@!eUgk&*wm6Xmfn-4Qb$qW@v)X(pb%L&GbipyM2z*tNWcd8Z~%OwVR#|2gE1_ zJRxAC-Q-D)9>Qu9ljp^zAGN&G$bEA~vMsF)rDrzA{$EnIUC6*&KCZdkE_9ZPjJ$8( z6A!a(YYxlfPu0|?I#(4q(TzS)Z7tk*kRkZ)f_vggo9L_O2^kjU{rAe`Z`h#VvoPH4 zVELPSE1=#Ru=c~vSNuPc5DNT>5+i&EPWsmmi{{|+7lEfWm6m*1RXnHGBJ*OsVhst$ zPl$UKGnjeW^7W@#Rp#^Y-fzNXX~z~WUp(=x zBJR&pXjU$GD34J9`dMi<5zJ}<9u z$bTAPhz!I$y=32PBTyr{d4KytUyZRSuYA+^54SkU79sPbiC>ulRA}=60{tes{orYu z!Y7(jNVS5etAvxFV~lpI@|{<}5Lp{v2tT(5yt3Ys_g5^d$M5~4dhI`KOA-o6Uq(*yHyrB5QXgkbw=7_}I#|ZDT4I?5$RrffJjE6(PRF$^WlbHONlZ@L>f#uXRKV+a z)o8~U1AWn+Y&tKs*{>0d)ePORJQY7b5sh1&zFpg$%(Hjx{~F4lE#8u*<67iGwy*rx zk$}DVwKK+Ig3RmML8C)PBm1BfHY|}Y1ZoV)agc45#PDxP5(k7R$2YJMsb*zvkWccK0L$bR3xPVBJE)Lv(?LH5>XvN!y>MO}IbY$v|Zz=x4 z)}U5|kMx`}n4WSpy^+nkb8TLL8T5WgeRM94t1q4+*M)DA;d)+J>d3PervB}-rS)~( zF~J`#SL+d;C_>uY7O(X1is9bub>Zf+ecwMF^S>bzJS7Ruv`pr8xfjA>eLq>JT+5Q- za~dTJ?4eKjtd{GGp(~B|hw*tir;2{#2dys#1H_AGgx|#L&Bq!vw8r+*Mjrd8*6KaS zPgDVI$mjDr77Q?bI5kXVAN{P$rJp$1f1aHua=|@mWXCR(a85nYeTmZTw|q7r}U|^iAnJXRX(* zP8JvYd6F6ieb-4%I?j>3w13b8x%tG#c)TUwUzGQnr#X0}Y;S%^^|s}$2JCH1`|RvR zQ&0WbQyiN5KpP1~xcL0JFvNVeIqhqK#WOzZ5(H^h2tR!4*GSZ^<8-(u13GvS9y}x?T7`(5vEFC-lk@A3{X7AXOd=Wt5W};NL!GeXa{X;8xUdD3i7%)MwxHsWC6_m-H{-^EA-iKIS}&q35)`fHu*OtVQjw6#5bQ{`Hp_4gZ>&Cn zSuNj}#%RdPH@PL%?roZ^NMA|>w~zjOqxD|vkizDbdE!j8Z+nrd+=~eZ;hr;EkV7T~CSlsqW?$hxQ zS>+uub#tENG+Hw$=RXQfj}mEKW?k^XX$!rM31EF~OhY`LhErFC-Qn8QiC`ab0CdLr?BM401C+O@mABo@^SY zgXSLO5E{=E@HcN*ZcGF`@(Q>0*vLtljZgSudOne4yRQ&2OfCh70CqbCU1I+!kqLMtREee1qQ(H6liU^!VbS;48PG z6)5A#5Se6x#xk+C3x_O3FTd8RDs^aHeQVEDTJcJpy*jgKMZ1x--Mb;j!=uPkMvbmY zDJa=0R-64sLy7N^xJzXc$y&(j_HertMG?<9*Xdl!#Kyi(%-_N}ax-aQJTn$uQZI!c zb8u?ZK7EDu<}gQCT)hW#?V8WdlT;mNlg54r=rjz{J$GeHaPdzGGuvAyO- z!(&Vn=QgnU?}MAgkC0AE^6F>}y>wd`8>P%U6>r%fGCrpW&8v<5)qB-F^ZqH%#5kWl z>Y;e^n*Xzjz#xelgU!X;hYDe{d@xzUI>P%s=StrXm!e6$0ZG0i+5scMVKaCZTZGWq zYe`0n%+~{*%nhG~YL2MhhHnt}>KxpodjBM~$%8g8a`8o&)cJTIL;k%+pH<-}u-?J0 z=?3;q3r&97Vus=G;!hSWsUKK8B>nwSJ>G@shN0ep*Y&QLRyI4)ILc|`Xu+ji63b)X z+&`*`F!S3>KenEt)#WYeD5vddTD}cjmXc4BKQA5}1h|FgQ_a}P{`jxZ07N5*@j7%6H4?fymi zTcM-;)4Y&;ts#IfXn_G?08(@WX?!Fg5luMm3u z3qVvJ!e9ed>Jc)knG5+79S?kI2Xr5sHyCl(0O%W$ zAGLTMwH&tS<%TT`IA+?5xlAW9-1W{Ze7&0Mx%l?OZg~EVI6`E3jQCo-VsVYpXpsW& z_2Em4BPbX6Q~L0yWTH=L{qBqvJv)zrWaf!GXpYz#FV+P_X3b&|OM8H?iufbENzDY$~sO?`s4rLpIh4CY$)`qai!vtPRh|{)3Ke`ls@9l|vIER=2kyiA zdq9^;tjFSf@H`A1HQo!&VV&2981zPmde{l#w9xPDM_$-D9VLoEm^sP)PDR`~u>Jy{ ztFIF`V0D>$ZIrB?D?V2#02o<&b}2ZQsF2cl)M7=WZbO&0G5ZsSv+fcc&T4jP=xx`nF1kq7Z*x zvcU`$Ed-D1DXt77ofg&m^~9TL0B=UE;g<72?{}Z#Qm5UIqQUOO1-Z96*H0f$6sQu2D~2d{o$x=lTBekIDS`b$#}SCcSNa$ z8MB@K)z{;!{byUbE)G+WZz^GW^}SozO>RPI>M3^Jn=MoWgcn0^s*mdZ0>wU+e4ieL zF4d>H@>b@iW{x>LtA4H_4vE3RZ5fo%JEQ|I7$3@j7fg`R!g4Iq*hcQ-d$Poo<7F0e#V#V1^ujqkFBKgQKZP53t<;N6q@9asgzYQ(5QTB zc*q=CKD;??&&*FLZ){GpneeRcRpdv@qQ#!wL+-QoIS;MvbS)LJ?24V;Nc%aZT0u4k zrz!lp&c~Uo$RMXk|BZ?~;hHr3a@KUd+~AM>z3&CX?KBe2e`4cXF)HefzUIbsWrs%5 zrd+Tay%RYbG-vzpOIs&3E@v5si{1i4A=f!9nxw%Ds5W#r0B^#LD>cWllpLt}`mh;{vqr}VI24Iv9f8F>MFOKe4My7#dsIK@_zq#~*1xFO_Qanb`%LUVvPT6q`yZ-boPB<2(sV z>}1!o7L#}a_vOnAa`Fzq9QwqK2Q^B26}KyD;2l})t>C>n^s`8SgBRj5n$6iESefwS z-Cqr>n_fh}mXNZ8Pg8u}=+(Q@XZ2PUe~U?jc$~TYtG@4VYQDBDf%q}2X5($wXGMxB zsfslh^jLIz-Da%@7WR^mBEwiCxBSaU#IZIeMgc;hIGt{jw$hL8{nF;(4$tX3_3m_x?)ys_l}BklP0em+ zqA$Z*^`I(Y@7Hp;#8aBilb@2Mk7X2JIrK}K2x_K3BS>0%q#|Y-_5R&%vNt)oXTHKl zH?!dERqE73{F6j7i~C^)ggML5S^EGM?2eip4e?c0R_@H>l!xy*VdXxJrSv~@_g{tA z?^5w*Z~qLbbAD9o7OYm8*r%AFQ^X^hLHl>h!H08aX(dg)VON zfil+>kP}N_Z6E<-?VZiG$Ewlx3pEZ0cd^~aai=igp8jx5-a`K;>!r2ksq- zBx|UIu67oG8Qlrf_R^Wkn%kQR2yolt@BK76NiTF-&JGc+?1G*GIwIvmUF^uKPF4cUr#2O<_C2)kg`G8MXx?x=msT5? z8uAo;fmhn0u){h;kVRq_r=S}n`26Br)UlpjzT#oy2Z?hz4w}0A!+#Yhp|iY^UH+^v zBkMn{l*$#xUCOrEaTZ>%I2tdQ{Gdyt(R#$_CsnB|3t3$=UO~4qpGD{?jLF`f?)51D z%-&J*YdqXp(6lnJ{MTAm(77s3AKA*RRTCR~dL@7OOmWe;CFh5nIA)5N$ z*gH#D@*L@t76#A9u5p*Ahe|l0!D+8QEs1{@B&GOm`V{DBOJ?%Zq0Q0Fo7}xC?NDtg z&K>)~_irV-`L+i&D~H0+E2fsu2tlHp3x&&z5bEY*z03Q~i==OYPOu5`YJM;rnebQk zDef(ur@oGnTmHsi7)kc-aikZ8SosMyLwiRlYY-=p*yE2K5+L3Axr1|q#1)_`r%V)3=n zPcX%IHIQg}(WEa0@bp-kM%wYTb*_eymtW2`O#cY%7<6G=NZD=^ErICTNdr0Yo^ljsX7dkSaVkd2&tGDff<*c*K9ti_?$^ojgb!Vi~X|9~?job7Sa z-}0w&e_YC@`<)fYa&>dXw_(`z4b zXMC-(&Q~4bftrY3r7MTI4N5-_UJ0%kTInD&HH>7eaNrMtt6nED5x1zNXJq?&504rq zd5I-yhBQ<(mmK*enB=DH6n*(dKkh~4xa70$1xl~^Q%PHHNn0Uv>c!BwQjuG+;poF( zWS?$!k-Q`QL>1bndu1tLBbaaYW=bVd)c!1b=R+Id7$;h?ciLE-!Z2RyZv%6AEmn(@ zfMz=*II6^pgq(eall_y=a9(!CTWOYO4+*1t)*f7uU+W4Qn7w@pp2HXdFn%h5AjPUXI8CXR<=A;Ed2!i0Mf@k!rLM?rN^;pS3RVa)(Gwr2;mvCm;mu#ZBfzKbjN#>1)_=Nf zLexnDDJ71zJcDkC`I?E~48EVwgwKa^GvJaqP%5kM3j(Dy-rQC(xecbmv6?Xf2&piN zAiUs(IOYb10{L$YfztndC@@vEwSnLuzqIFqP>F5we<9>BYbP?e00R~_!o(j$hW_&2 zLk5^be*xD$1|Om8G?g&Z(aE11??87%sITH%A3@38BIu z8?-(*J)kpmcH1$zWAGUS17n>O9vKEeCJ!G%2oOSjATW9msZr1fI+u;`7bpka`SUc0 z15M4$gJ#h=e2GWWD68sQFt`7c-PVb@gHE)|+`_Cv^K0#6N}{Drrh@U&Fsx^S8PKiR zxnLHw8A|maB~)FlzmPo2irNNYUvwfUpI9vp3bkJ^A-U+h!O9Mh0SJ|_nB8%Zn-7n~ z1+>L zz7!Z3GBBH8%<#84m}KxWIxJkop+1NTjeSA^qzTKrQ=#_{$d>)zYFN)+9fa{-uS>PUE zEFySk17H(nbyXvv77s;Dz5-98$6LDw$Dtui9RWn3L8qJq2%vo`%L=mwjg!6uW;`17 z1vktzw4VfeV78(CMA8fM-F;L}Uq?Yjm5lGjU0>k-l zK~(=z{t5o2WWz0Ku_zG&QlL0=5~&;ouo9hddq4+VMNj%KCZH=Ct1cNx7+PL|T5FdE z(*I&8;d%m)|4mCKglDN^(I9f=Ax0?WYX>g}P*Q5MZaD6t04P5M=b=>(Hv)#Ck+gdW zq9H*cE)+SWDuhgjUBiYeqyZV>2bx&8a6LsVIz-VGSOyJEk~*Ln2bDC+_8}>*5owkR zoSzPaP8x-aDq%6gcM5Yzr_<3<5bZGd$F9VFxlpPrunKX*b@;8;z zXm9sJ&fzWyzCZ(cfEXkPr=T_5?FB}oCo5nOc#EzJ90n$#fx-C+WJJ3p?{6R;`W#Oi z4TuDzZUt~Ktj5s6!J0UAt(SQiY%kvAemhu z$Q)!wxF-jY2(h;WtVQz`tOAiK<^Ljfvo?UzXliB)n1c2muS4Kdbf*9KH87e2_zS@GXlk<%EQ7Y5 zqZnL(&Ut;?Irpa$iJA>OVh|`*i>uUv;;8LcK1c6Xme#jxA;@HMYaI9z6A}RAZbe^9 zruGu;85vsQ=#ekKA#?OmaJYO2XQC;re(($dYOWQoK@WG4qvZS>g&N+r0mO!5DIk;e z1*gEs-SgiIlR`;g1UgTfT^(qMp78HB5cHJ_2uo5>7?1z}BnSP!%RAs!ix4?f;(P8Q zMEIW!_~ar4b>iNTP`6OXw>r;H^s#g@53}V^<(FaQbBk6Y7)VG6Z!~ z1^mS_1a&C}ylWXL{vRXO3bG05VQ`g||1=@H%AlHltUw;22*One>S7BxavU1C(<+1+ zHEO~tL=n|Kz6w!A5p-)1O%(BL4Wf_YXFnVG{o5Y+Vu@MW9Il58 zfxtJhupXdnz{5s1#j?VmI$%=5<*>1sPzrz0M%GGl!t>6M`Q`k`t3u%W(pdNp{%s^B zKzB1Lq_ciN{_+3U*oNHjYH~0w{019~5ha@u2PvhI2cCQY5Qo2&KnnP0=l|X$g1i>s zzXW`gfwu<$9>B|)vCw)`i68~ID!@s)K^$-^k^d++eGZ`k@+keQ6@~L&Ku8}Tz5D-M zI)Z^A`CnowRsOMxz*8?E=!an01yTT&8oXK`xw9fyEM@v7gbt}J^F9WK*ne@_nZig6h2ZD@IT@dwy^zgkQSB8BH!cwmpE7?Jo*1C>q@|~sB%tT|_G@({iY;Ib@L9pHqs2EA^`Mi>ali{aKoGWnLUmE3-(=%+w4K$HEZ) zcdvc;@DR__^VnW%uf6u#Yu<;=c0({_^;W~JLR9;T_Bs6sQ8mCY!gZ*1%N=NIGxFJG zn_Z~!CQd@&$K}MtAA|)Aba!y*r^9btC5^>npxIK9?H0>cz;k9M^qbcR5#7WZIl4Ka z)pE|N0JSTl#%AXX7Y242XA-YN9k)(e(Ng?Q355hgQH2vs5ccxrhZ5xRyum^rb+Wk9 zghDlePiOM2K}U>GoJp=7>A7r?rq?r1)9&Itka}#JG`+n+I36}VvFXMN>r2XvV8V#OCPJJA<66dUjP_Z#pa*PHFuqEPZpr89%79#(@*<8lmS{n;EyqiV6)s6bls&RBbGa$7@4NQ$VT*NX6+Eyfj+ki+4)MX_Dehy9a9Yj)0!2-@G&1^#Zy!E zpX##lQ|T8+)tee883I`EnN;sq$kcf{gDQr6WuXbJN+ci7o88Bh4gjU8prjYuff=;5 zRTJ9_7cc#p9O&S1G`C}99Wqm3`S24eRN$pXvoreZyi3|TP<#*vl4j@5!J)dWmJF3; zNb^4I3qinws7Czb;Bo`y+SD`(&R2by!XC#bi^oG}C&7PY=_nlf597wrlzdfYK`Zk? zqWnFmg)`Fo)A?$kRfNf`9(#Ts3le!y`vM(_@b!$_haTyt2Js0@>IV|nH}Y@{4N6yh zIS4U_=bQmsz0E-TN18%J((OyhF4}qa!EZ&F&VJ6YL^^lD=trwvR4-nC^3ac-{sEq{ z$P-0~ZvC(J8Y;Ga;3M+XKx%b?&;-A0YW5`Eg1|ohheA30*FZ%B)DW7Oi{*sW-WLDJ zti`%_6)PRhRpXe%`rYnxs$iQXksZ^TvNIa)swub(WCthcO#2%;Hsy+ey4EQ8wersl zD((CmDXW03?u9k#>NObNfeNK?3-&GEf=X`2y!WpeD&BMKLMe)BrfJQJA8Srfp7 zQFfy+#2|W2QN0<}R(dq001o|+=#Gx*;w@o9naoG)O|12r(MaW$kbkdRN-7UexP{?| zRU=F(i;j7LG2t&(!J59c42D07 z3b!M9i)XRCndrUaTb=h|@vl+A=xr{J-9(DLF80L`#3qyKg|EVrZ z>O$qts!ZP~xJdP5$sRFa>9vUhlultrHJnc&$B5BCyNLyY_?0bs%cvz3f3yQ5yx_tC0A&wmP}?h9 zsVsm+hurU+@~RCMy_;^Yfs0tvQ#oK*MU9es_4JZZtkzE`hz@tmVk6~tHAT?MHxzeT5wC^c zLAIsNZ(xEA4ovT_YnKQ?YAW4lqs5)Zf z!{<(nzWrZpWd$UiuOqd$S}Yw@fk&rU(5yo3Poj0qiR#xex_p>6cJ z-RRE;v_!Sm4LW%p5}l;Q1JL zYS5gB3pn6^V*z~;y7Vy<{qnvsjBIhLOgUFs!DsE`w9~3~Wh-*dUN`>zQ-oO!Qv5Dw{%opbKC+`+`X( zNC*RN)U&%9%&YaO=$^kDdvSsA^d+|EWS)>t*Q}Oc4nZuvP0u$Z4gh_XA@4o62iE*`8k2}2*C?Y4?Ty1HNTRl9I(_>szT6#r{|5`}9oi$MCMs`Ix>0fp zNZz$;Yb9$F#6tTyRBASu(3%hu`^rsBb49SLzdq{^r^OUrUoCsC6 zCC~l=<+@O3w=Ro_JQj+q*IGSg%9^KQA;wYIv%WgN_=}hnQ87M9GghI;i$yGXtii-d z)&6=#hBi;3-9q*gOq3^|gu9UnUwo#_UJauWAWZVI)Xg{~O{F zc^2Aa7W$t^G+9J9^aBCwb;p!g4_QG?a4 zf?B0$+C1baAnBE}RBnk?F2h(~CovW&YW~VIva+bWi}5GiDK|+bR9%?%Vjqmw`^ZsL z8}4+$2Q2~-eP+M>Xm@XzR{)NuukMte3Y5HXDur<3LH(1phSd0E(5nl(501#;(q1n< zpK)jV9LUN7Tg%oF{W(cY@)hr%dQf~mihxcxG=0;3M5vpzzpI?Yg*(0}3}yXnze4Tk zx0^F1{{6SAK2pf2Ka69t?cg3PgL>C*o7RBcS#Z$$jzQi-j4CeMXz>GDC0<*)q-row zPodD#yX0Q^l-mWd2ZrHH>k!NEQ%2VK7F!;a|dius+MFo1wunxrkN{7qxMV)QbTw`K@djw%`{8nDGgFX*>0-D z@QzZmu$y>kGQxZK4L@L93zInr(@fND+WQSn^*48ep$W6#{dF0+%hMn3_B{5e&%jKx z#UTXIykIqo?`UJMKN?a+6Rs(~#%JFWuylIGChdae+pw*Yd191X#jbS9rX>ya0<^Z= zZX0e?dcqV&#htZ$W_)MB@rn!E4qM5-&e)_7<~achS|R!PvCb4EO_+cq+JAbtVOuNl8>3+c;deDRIq0_}=StY(96af*53f&c6!^Zh z=zW71xul?7FP2V8!O}xMW)RmV6H?R^hD;DHqt6bhT^qWp$vpa#7`?Vzj=tJ}!bDs+ zurZx1yi@%(Sk1)JdJmoOg}{%Y@fn(WmSuoSM$LUXw>JaV9AIepy?N_!$ChpS2$>tmCE zxqWYz*-p0xgPF>F2T zU?l87f2J{w0<|B{JuMo)F*n43aOXahoT#zTClQcgx9?M0q(=%-qIMb^1$^dR2}faJ zYp=LIHSGinD~%hEUa?nOIo_Qr1oq#7`~nTZ8-b<{~X{IS&Q=teb>S zbb&<%FGch6si9hnc;u0zIg23LLYS}qM&nqJoWx##!ZzGaap^5|xIt9q+mZx4lw!@O zAA};cf9%ka)beDBir!He_lFq&>AYr-Jh<3l(H$F6j$P%_xb5i7-CNe3BnwtulOsVW zExND(7KqVfx%N?oe%N8~qdJQkXF8Q{X=^^oJE@Z1(2Y5T2-u=cw5+$**_-hohD%0h z!?*zSpsyd)?C+`qSbebuLsj8Rn_@NL7Kj_a2~U$DQ+o1l%+bI&jQ;PlVlRT6an#~@LBw8eoNUmT5?P=~mu&#$Z3w9lc5zNmJ_ zqM^g?Y}w6mOWs5$(W?C5HhyPNo+5H zqPFOVdo4bpI&^Z4>pzun7>y%^EkPFDnuXMcU7S$zLVSo~jM<^BEG%bPe>ILdUA^kL zp%cOBGAx>_lXu--iQoD=J~1f0t3)vVoW%<-9LM)W@1h-~Z+vX{O5jIU9K9FX-f+E( z#;x(YIspl#Q;imHc5Y1R+5Xq>Cc-m$;~D~XKIiWCZ)OlLa&()2rn%ip%;Gy5 z{zD{mMG$+f^?q1vi{j1ReMj$4wqHR1pcdDWdd*$tq=+)xpRPWn`h<(@q((JgbA-g} zLOb@Rc2Gnf?BU9JT;Gc@FlW)W}X#t$f4Y{;5vKI6ov( zpob7X-tnO=XpaJKW?AQi&-76iM~oYAmb5p2-`-*MgyS z5J`dV9Ewt@sHm+s3v=(`m^XDNK?&IMx>&BVPgv-kO(k6V9$(m#gX_Sa4SYao>sASR+(?@llHY2kNVn4Ip#j19yI-m!JeCXNhae6AXBU++u_{+i5k{Xs7I$u_VnmHMku%-HMy zdM08nas=_kraoWZF@@2Wx~pEa;-(_giklPmEW8TT8;G~@x_vC1PUQn(?6ATR=Cf&E zNn9CJ#0Fjw9_>HXWna#csJLkKXA^P`-W2^LP%i=%yR!dOm%TMt;c9%NS@ELq+i-p& zhQy0PAz_gO;UdwA{<7h^$L{wQ3i!X5NH}T?cRCt~SSzM(MfqVmRjF`|k?e&wt^KB8 zlc(?G7jZ_P;F$HINTGJ?do5FwT#rpBPu>BmgeeJjmPP;S_jlXSJJIP(#64Cp+@%=1 zET_6-dA<+a4}CO1Xk^8fyHG< z9B(qK5u?@B_nFY*M(vjR+ILw=VbI|-$XfK>rJvVH{Nz1a!v)HnWPuV$_O} zzq!-!9L=m>5YUEC7%KX|L9{1F)8L~5bmR-E!EIlv$t=s^+%8)*x_)yzcP!IA4@i8j zH^#fF(X69WK8`E74G()MsAE)p=i7Fb9^M}Y#~%+tu*3W8n|f+IPDXskp^q|G&bG~Q zq{h)oV0$T;Ir^#Rl7W8&Myk)5*PoMoAqIt0m6yrUZ%Bb?GC+ogbVJok2;RSn|NVce C`aEX< delta 26446 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