From 9e232ad68507730ba5c01cd7f5d9004cd3bbd7cf Mon Sep 17 00:00:00 2001 From: yang_shj <1069818635@QQ.com> Date: Tue, 16 Jan 2024 14:57:41 +0800 Subject: [PATCH] =?UTF-8?q?#=E6=89=B9=E9=87=8F=E5=A1=AB=E6=8A=A5=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../operational/fill/entity/RainfallEntity.java | 8 ++- .../hzims/ticket/repair/entity/WorkTaskEntity.java | 8 +++ .../hzims/ticket/repair/vo/WorkTaskContentVO.java | 5 +- .../hzims/ticket/repair/vo/WorkTaskPreviewVO.java | 24 +++++++- .../fill/controller/GenerateController.java | 1 + .../fill/controller/RainfallController.java | 15 ++++- .../operational/fill/controller/UseController.java | 16 +++++- .../operational/fill/service/RainfallService.java | 11 ++-- .../hzims/operational/fill/service/UseService.java | 3 + .../fill/service/impl/GenerateServiceImpl.java | 4 +- .../fill/service/impl/RainFallServiceImpl.java | 30 +++++++++- .../fill/service/impl/UseServiceImpl.java | 27 ++++++++- .../hzims/ticket/repair/mapper/WorkTaskMapper.java | 3 + .../ticket/repair/mapper/xml/WorkTaskMapper.xml | 5 ++ .../repair/service/impl/WorkTaskServiceImpl.java | 63 +++++++++++---------- .../template/excel/work_task_template.xlsx | Bin 19699 -> 19768 bytes 16 files changed, 169 insertions(+), 54 deletions(-) diff --git a/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/fill/entity/RainfallEntity.java b/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/fill/entity/RainfallEntity.java index ba28a68..a9e13d3 100644 --- a/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/fill/entity/RainfallEntity.java +++ b/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/fill/entity/RainfallEntity.java @@ -2,18 +2,20 @@ package com.hnac.hzims.operational.fill.entity; import com.baomidou.mybatisplus.annotation.TableName; -import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import lombok.EqualsAndHashCode; import org.springblade.core.tenant.mp.TenantEntity; -import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; import java.math.BigDecimal; -import java.util.Date; +/** + * @author ysj + */ +@EqualsAndHashCode(callSuper = true) @Data @TableName("hzims_fill_rainfall") @ApiModel(value="RainfallEntity", description="水利降雨量填报") diff --git a/hzims-service-api/ticket-api/src/main/java/com/hnac/hzims/ticket/repair/entity/WorkTaskEntity.java b/hzims-service-api/ticket-api/src/main/java/com/hnac/hzims/ticket/repair/entity/WorkTaskEntity.java index adf341f..3713c48 100644 --- a/hzims-service-api/ticket-api/src/main/java/com/hnac/hzims/ticket/repair/entity/WorkTaskEntity.java +++ b/hzims-service-api/ticket-api/src/main/java/com/hnac/hzims/ticket/repair/entity/WorkTaskEntity.java @@ -1,12 +1,19 @@ package com.hnac.hzims.ticket.repair.entity; +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import org.springblade.core.tenant.mp.TenantEntity; +import org.springframework.format.annotation.DateTimeFormat; import java.util.Date; @@ -95,4 +102,5 @@ public class WorkTaskEntity extends TenantEntity { @ApiModelProperty(value = "创建机构名称") private String deptName; + } diff --git a/hzims-service-api/ticket-api/src/main/java/com/hnac/hzims/ticket/repair/vo/WorkTaskContentVO.java b/hzims-service-api/ticket-api/src/main/java/com/hnac/hzims/ticket/repair/vo/WorkTaskContentVO.java index e2cd03d..e530937 100644 --- a/hzims-service-api/ticket-api/src/main/java/com/hnac/hzims/ticket/repair/vo/WorkTaskContentVO.java +++ b/hzims-service-api/ticket-api/src/main/java/com/hnac/hzims/ticket/repair/vo/WorkTaskContentVO.java @@ -13,6 +13,9 @@ public class WorkTaskContentVO { private String location; @ApiModelProperty(value = "工作内容") - private Integer content; + private String content; + + @ApiModelProperty(value = "下标") + private Integer $index; } diff --git a/hzims-service-api/ticket-api/src/main/java/com/hnac/hzims/ticket/repair/vo/WorkTaskPreviewVO.java b/hzims-service-api/ticket-api/src/main/java/com/hnac/hzims/ticket/repair/vo/WorkTaskPreviewVO.java index 090f28e..88110e8 100644 --- a/hzims-service-api/ticket-api/src/main/java/com/hnac/hzims/ticket/repair/vo/WorkTaskPreviewVO.java +++ b/hzims-service-api/ticket-api/src/main/java/com/hnac/hzims/ticket/repair/vo/WorkTaskPreviewVO.java @@ -1,9 +1,13 @@ package com.hnac.hzims.ticket.repair.vo; +import com.fasterxml.jackson.annotation.JsonFormat; import com.hnac.hzims.ticket.repair.entity.WorkTaskEntity; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; /** * @author ysj @@ -12,8 +16,23 @@ import lombok.EqualsAndHashCode; @Data public class WorkTaskPreviewVO extends WorkTaskEntity { - @ApiModelProperty(value = "机构名称") - private String deptName; + @ApiModelProperty("创建人") + private Long userId; + + @ApiModelProperty("创建部门") + private Long deptId; + + @ApiModelProperty("创建时间") + @DateTimeFormat( + pattern = "yyyy-MM-dd HH:mm:ss" + ) + @JsonFormat( + pattern = "yyyy-MM-dd HH:mm:ss" + ) + private Date time; + + @ApiModelProperty(value = "单位") + private String company; @ApiModelProperty(value = "班组成员数量") private Integer groupCount; @@ -45,7 +64,6 @@ public class WorkTaskPreviewVO extends WorkTaskEntity { @ApiModelProperty(value = "签发时间: 分") private Integer createMin; - @ApiModelProperty(value = "开票处理时间: 年") private Integer headYear; diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/fill/controller/GenerateController.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/fill/controller/GenerateController.java index 4a56847..abe2ff8 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/fill/controller/GenerateController.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/fill/controller/GenerateController.java @@ -45,6 +45,7 @@ public class GenerateController extends BladeController { public R saveOrUpdate(@RequestBody GenerateEntity entity) { return R.status(service.saveUpdate(entity)); } + /** * 新增 */ diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/fill/controller/RainfallController.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/fill/controller/RainfallController.java index 689076e..d0b688f 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/fill/controller/RainfallController.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/fill/controller/RainfallController.java @@ -21,6 +21,7 @@ import org.springblade.core.tool.utils.Func; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; +import java.util.List; /** * @author ysj @@ -40,11 +41,23 @@ public class RainfallController extends BladeController { */ @PostMapping("/saveOrUpdate") @ApiOperationSupport(order = 1) - @ApiOperation(value = "新增", notes = "传入InsertPowerEntity对象") + @ApiOperation(value = "新增", notes = "传入RainfallEntity对象") public R saveOrUpdate(@RequestBody RainfallEntity entity) { return R.status(service.saveUpdate(entity)); } + + /** + * 批量新增 + */ + @PostMapping("/batchSave") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "新增", notes = "传入RainfallEntity对象集合") + public R batchSave(@RequestBody List rains) { + return R.status(service.batchSave(rains)); + } + + /** * 删除 */ diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/fill/controller/UseController.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/fill/controller/UseController.java index 49c3d84..5a99470 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/fill/controller/UseController.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/fill/controller/UseController.java @@ -20,6 +20,8 @@ import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.Func; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** * @author ysj * @date 2023/04/10 11:16:07 @@ -38,16 +40,26 @@ public class UseController extends BladeController { */ @PostMapping("/saveOrUpdate") @ApiOperationSupport(order = 1) - @ApiOperation(value = "新增", notes = "传入InsertPowerEntity对象") + @ApiOperation(value = "新增", notes = "传入UseEntity对象") public R saveOrUpdate(@RequestBody UseEntity entity) { return R.status(service.saveUpdate(entity)); } /** + * 批量新增 + */ + @PostMapping("/batchSave") + @ApiOperationSupport(order = 2) + @ApiOperation(value = "批量新增", notes = "传入UseEntity对象集合") + public R batchSave(@RequestBody List uses) { + return R.status(service.batchSave(uses)); + } + + /** * 删除 */ @PostMapping("/remove") - @ApiOperationSupport(order = 2) + @ApiOperationSupport(order = 3) @ApiOperation(value = "逻辑删除", notes = "传入id字符串以逗号分隔") public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) { return R.status(service.deleteLogic(Func.toLongList(ids))); diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/fill/service/RainfallService.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/fill/service/RainfallService.java index 42bab3f..007ef5e 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/fill/service/RainfallService.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/fill/service/RainfallService.java @@ -8,14 +8,12 @@ import org.springblade.core.mp.base.BaseService; import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; -/** - * @author ysj - * @date 2023/03/09 16:12:22 - * @version 4.0.0 - */ +import java.util.List; + /** * 接入电站历史发电量填报 + * @author ysj */ public interface RainfallService extends BaseService { @@ -24,4 +22,7 @@ public interface RainfallService extends BaseService { // 新增/修改水利降雨量填报数据 boolean saveUpdate(RainfallEntity entity); + + // 批量保存降雨量填补数据 + boolean batchSave(List rains); } diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/fill/service/UseService.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/fill/service/UseService.java index e80d319..91632f6 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/fill/service/UseService.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/fill/service/UseService.java @@ -22,6 +22,9 @@ public interface UseService extends BaseService { // 分页查询用电量填报数据 R> pageCondition(QueryVo filter, Query query); + // 批量报错用电量填报数据 + boolean batchSave(List uses); + // 新增/修改用电量填报数据 boolean saveUpdate(UseEntity entity); diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/fill/service/impl/GenerateServiceImpl.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/fill/service/impl/GenerateServiceImpl.java index cd315be..3463168 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/fill/service/impl/GenerateServiceImpl.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/fill/service/impl/GenerateServiceImpl.java @@ -102,8 +102,8 @@ public class GenerateServiceImpl extends BaseServiceImpl ids = entityList.stream(). filter(s -> ObjectUtil.isEmpty(s.getGenerate())) - .filter(s -> ObjectUtil.isNotEmpty(s.getId())) - .map(GenerateEntity::getId).collect(Collectors.toList()); + .map(GenerateEntity::getId) + .filter(ObjectUtil::isNotEmpty).collect(Collectors.toList()); boolean deleteFlag =true; if (CollectionUtil.isNotEmpty(ids)){ deleteFlag= this.deleteLogic(ids); diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/fill/service/impl/RainFallServiceImpl.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/fill/service/impl/RainFallServiceImpl.java index 2db7b57..191f31d 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/fill/service/impl/RainFallServiceImpl.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/fill/service/impl/RainFallServiceImpl.java @@ -3,15 +3,13 @@ package com.hnac.hzims.operational.fill.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.hnac.hzims.operational.fill.entity.RainfallEntity; -import com.hnac.hzims.operational.fill.entity.StorageEntity; import com.hnac.hzims.operational.fill.mapper.RainfallMapper; import com.hnac.hzims.operational.fill.service.RainfallService; import com.hnac.hzims.operational.fill.vo.QueryVo; import com.hnac.hzims.operational.fill.vo.RainfallVo; -import com.hnac.hzims.operational.fill.wrapper.OverWrapper; import com.hnac.hzims.operational.fill.wrapper.RainfallWrapper; -import com.hnac.hzims.operational.fill.wrapper.StorageWrapper; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springblade.core.log.exception.ServiceException; @@ -19,11 +17,14 @@ import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.CollectionUtil; import org.springblade.core.tool.utils.ObjectUtil; import org.springblade.core.tool.utils.StringUtil; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.List; +import java.util.stream.Collectors; /** * @author ysj @@ -78,4 +79,27 @@ public class RainFallServiceImpl extends BaseServiceImpl rains) { + // 查询填报数据中存在的填报数据 + List filleds = this.list(Wrappers.lambdaQuery() + .eq(RainfallEntity::getStationCode,rains.get(0).getStationCode()) + .in(RainfallEntity::getFillDate,rains.stream().map(RainfallEntity::getFillDate).collect(Collectors.toList())) + ); + + // 如果存在就进行删除原来的填报数据 + if(CollectionUtil.isNotEmpty(filleds)){ + this.deleteLogic(filleds.stream().map(RainfallEntity::getId).collect(Collectors.toList())); + } + + // 批量保存填报数据 + return this.saveBatch(rains); + } } diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/fill/service/impl/UseServiceImpl.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/fill/service/impl/UseServiceImpl.java index 2b03da4..fc00b17 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/fill/service/impl/UseServiceImpl.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/fill/service/impl/UseServiceImpl.java @@ -4,15 +4,12 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.hnac.hzims.operational.fill.entity.GenerateEntity; -import com.hnac.hzims.operational.fill.entity.PowerEntity; import com.hnac.hzims.operational.fill.entity.UseEntity; import com.hnac.hzims.operational.fill.mapper.UseMapper; import com.hnac.hzims.operational.fill.service.UseService; import com.hnac.hzims.operational.fill.vo.QueryVo; import com.hnac.hzims.operational.fill.vo.UseVo; import com.hnac.hzims.operational.fill.wrapper.UseWrapper; -import com.hnac.hzims.operational.main.vo.PowerMonthVo; import com.hnac.hzims.operational.main.vo.UsrPowerVo; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -26,6 +23,7 @@ import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.ObjectUtil; import org.springblade.core.tool.utils.StringUtil; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.*; import java.util.stream.Collectors; @@ -66,6 +64,29 @@ public class UseServiceImpl extends BaseServiceImpl implem } /** + * 批量报错用电量填报数据 + * @param uses + * @return + */ + @Override + @Transactional(rollbackFor = Exception.class) + public boolean batchSave(List uses) { + // 查询填报数据中存在的填报数据 + List filleds = this.list(Wrappers.lambdaQuery() + .eq(UseEntity::getStationCode,uses.get(0).getStationCode()) + .in(UseEntity::getFillDate,uses.stream().map(UseEntity::getFillDate).collect(Collectors.toList())) + ); + + // 如果存在就进行删除原来的填报数据 + if(CollectionUtil.isNotEmpty(filleds)){ + this.deleteLogic(filleds.stream().map(UseEntity::getId).collect(Collectors.toList())); + } + + // 批量保存填报数据 + return this.saveBatch(uses); + } + + /** * 新增/修改用电量填报数据 * @param entity * @return diff --git a/hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/repair/mapper/WorkTaskMapper.java b/hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/repair/mapper/WorkTaskMapper.java index 5776107..d1a1cf1 100644 --- a/hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/repair/mapper/WorkTaskMapper.java +++ b/hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/repair/mapper/WorkTaskMapper.java @@ -1,6 +1,8 @@ package com.hnac.hzims.ticket.repair.mapper; import com.hnac.hzims.ticket.repair.entity.WorkTaskEntity; +import com.hnac.hzims.ticket.repair.vo.WorkTaskPreviewVO; +import org.apache.ibatis.annotations.Param; import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; /** @@ -8,4 +10,5 @@ import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; */ public interface WorkTaskMapper extends UserDataScopeBaseMapper { + WorkTaskPreviewVO workTask(@Param("id") Long id); } diff --git a/hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/repair/mapper/xml/WorkTaskMapper.xml b/hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/repair/mapper/xml/WorkTaskMapper.xml index a190f1a..2b6a378 100644 --- a/hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/repair/mapper/xml/WorkTaskMapper.xml +++ b/hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/repair/mapper/xml/WorkTaskMapper.xml @@ -3,4 +3,9 @@ + diff --git a/hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/repair/service/impl/WorkTaskServiceImpl.java b/hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/repair/service/impl/WorkTaskServiceImpl.java index cc05cf4..5076782 100644 --- a/hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/repair/service/impl/WorkTaskServiceImpl.java +++ b/hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/repair/service/impl/WorkTaskServiceImpl.java @@ -139,6 +139,8 @@ public class WorkTaskServiceImpl extends BaseServiceImpl params = new HashMap<>(); try { params = PdfUtils.objectToMap(preview); + log.error("preview_to_map : {}",params); }catch (Exception e) { log.error("转换对象失败!"); } @@ -221,25 +224,28 @@ public class WorkTaskServiceImpl extends BaseServiceImpl result = sysClient.getDept(workTask.getCreateDept()); + R result = sysClient.getDept(preview.getDeptId()); if(result.isSuccess() && ObjectUtil.isNotEmpty(result.getData())){ - preview.setDeptName(result.getData().getDeptName()); + preview.setCompany(result.getData().getDeptName()); + } + // 工作派工单签发人 + R user = userClient.userInfoById(preview.getUserId()); + if(user.isSuccess() && ObjectUtil.isNotEmpty(user.getData())){ + preview.setCreateName(user.getData().getName()); } // 班组数量 - if(StringUtil.isNotBlank(workTask.getMember())){ - preview.setGroupCount(workTask.getMember().split(",").length); + if(StringUtil.isNotBlank(preview.getMember())){ + preview.setGroupCount(preview.getMember().split(",").length); } // 工作地点 、工作内容 - if(StringUtil.isNotBlank(workTask.getWorkTask())){ - List contents = JSONObject.parseObject(workTask.getWorkTask(), new TypeReference>() {}); + if(StringUtil.isNotBlank(preview.getWorkTask())){ + List contents = JSONObject.parseObject(preview.getWorkTask(), new TypeReference>() {}); if(CollectionUtil.isNotEmpty(contents)){ StringBuilder location = new StringBuilder(),content = new StringBuilder(); for(WorkTaskContentVO item : contents){ @@ -251,28 +257,23 @@ public class WorkTaskServiceImpl extends BaseServiceImpl user = userClient.userInfoById(workTask.getCreateUser()); - if(user.isSuccess() && ObjectUtil.isNotEmpty(user.getData())){ - preview.setCreateName(user.getData().getName()); - } // 工作派工单签发时间 - if(ObjectUtil.isNotEmpty(workTask.getCreateTime())){ + if(ObjectUtil.isNotEmpty(preview.getTime())){ Calendar createTime = Calendar.getInstance(); - createTime.setTime(workTask.getCreateTime()); + createTime.setTime(preview.getTime()); preview.setCreateYear(createTime.get(Calendar.YEAR)); preview.setCreateMon(createTime.get(Calendar.MONTH)); preview.setCreateDay(createTime.get(Calendar.DAY_OF_MONTH)); @@ -280,9 +281,9 @@ public class WorkTaskServiceImpl extends BaseServiceImplI-hX(1AK9opzzj(j* zzIXlJ^?Ux9XRV3P%$~j1-fLz~(-0fe5i6?@QJuozgObpCM0Q};BWGXAMh_Q-`J)&8 zbp!Die(<=HmqfT%dpI6gqHm(Kgh;+$O=$bk?E&ggo&4qu36@+psFjWn3Rs8*t^_TZ{zHc{@gyCK71@|J!1acQD1=b%_1?nPVK$UaC2IP zn^th+94L#n!p!-Q{GrS`IKm;3(i~R~ZkE^L;I|p*?ZYFGm7B}K{(M7-dITe9P0ZH& z@b^|U4NJ@RBNMK=bYBAs!Ao0wRLXC5+KY1eaUsK5U`ij>( zT1rX`L0N%!o)R4Go*QMfoGt8T`eAQWiP=zI+29b%sm0&Pz>g91#$&AU3WZZztv}q4sj8*(ylf z!mhueTxk8xA#blE9o=O*ha=kOf7X64fN@FKmdX&xEsgr zzh?zb_Q*>w!Pou${n;hU8#dQ0-*^)xu2eLC_vujUNvqTTA}+a0eC1;-E=lc|DqnXN zUFA1#bKClPGXRaWc0ls>U}NjPEp=fmt6AGCwV4sFT(2p7 zwn~uUp)UrBE%`%-agvHJszu^UvfkP4^U2?A@bNC(A_c6vhj&tH*!tMs*mBtU=t%eR zG%JO)R8o?6qI+YE_b?zggEXH9A=%w?K9qA6`A_wUbgucd%<*{k>G2gTQ??Z; z`nh}~AS; zF*WGfHeLeOqGm7tHK7uFknWQ(F}{exR3>*n#0mc1>Hj0sk;&aP>S8y9cMED3dz6d( z$8=PSL0M4;hY6q`KTDI!mFINGD^6Wd$K{c0mm^fkPI6C-BqV&pr>Mv;&Jh3h2^fy@ zA5kMTL7A5r9arE=t^r3eYt%rL-&Q&Kk3Tj~FDJ%A8K_y$=?kw1Vb zUQshI^DvZr=s!N6aKPa7c0xsP(LDbDMiNzg`os-KAr9n(f7!vZYLlk?b%sM9gRdS5 z(8=9^b-p<1QBFo-vdF4C-8q6{jrW{b{)vH*KpaiVSxLRhULy>$R97D=^4ri$mLM-u z`zb+@J3I)ld6=}Uer_nq!Ikp=lNpSt-I=@@V@GSVT={mnU@{RAw!ce%+8Wh{%F zC-%V>j-l}1_yCNL;M~w&k3Ck0tYaoa_!(jn7aQP@aVlh;-}>k+~~49jNL3lG%3;9B<$W3Un$Z z)Uq_+Ro6{bM?>!MnR1t4JV4jYK|$G&vdkRgeYUH)_-;Y z5!2K8JB67{?S2I39>fuYZA#L^cwz%AC!n57@F&m?j%g?~BQ$LoQ)Ey?93Wi~uPPbY8P8Z}aAU6++5EO0x$$nBmIV$ASW zAShJ)n@t#Ig%9|2nSaLo8;6_w+*><+055_}K7&Cz!FNTjqKtXGmC|zAUdU^sBrpPA zFNA$anku-{JEp!Nuj)eC3Tao_9=-l9yZX(yg;+gIZA)6ns zjT4W8)n1I&7r(#w;aX38*RFEN_Vf!@xqc`QHd7(GYqxABdUbpqfZCz){Lg6wpe%k| zphwY|n>jMUc6&!qzN0Pek#djbguHS>B(X{HT+?~4AKj2e_08|W_STY%cmaNjsXXP* z(E`2fXVSG(N%v?6$atznV}ZzwVT@kugR%vgqmx+1BWl09+Z#hdRZN0v1oMr5V`h9? zd-%?Fi=>N=E3bo)K|^o&8#99KH$W#Ja8cm9$M$vUMVmGsf?EFi0Gs9pUAk^tdJ4$2 zv$?)vX=UNKuHzR;;Q{K!u`h-wz|ZBf+fley%&N07)`L<}vR3%g8&VmfXE>wswu`HW zdkvi|=Hu=6FUu9t5Wjtx#yzmgB>z^RXRhZq=%%jI#FH9k?{KRWyNp64LW=2Md-%u! zE0#Q{J}%7TWGuPfhiyM1K|d1m)a>HhV$wu}2bttyBOrhP1Oyxe1O#sfE_V+f2OD=z zZ%2n|s3Ro9YvlCweOn5?{Uki#?8 zH(SPNg#zpvU1)l(mIP>0(9VZ1QxfH@W#=ajolj`Kd{tdy;XbF9XI-=?nM&p8QMQ(F zkb1k->7ic4X+Yumaz%{HpuSxap{UPuXcn86u{gqZwjQRt(u7;AtlQ!28T+hTxy_o= zOKtrtklflPkd9rK!fLgQ z5B%TbpS>>&vQfdUq|Q~1i#f|#%j6Nioh~7b+cAh}77quzqL#c6R?zMhb$^RwG0^oH z(sK`FWo#NjUW*GGVzDQk*7JAm8oWe3ldcxsva8qBl#1F6$#c40Ja zTT+e?35Ti=1XMOkN9qifIlj_HuIv!)~0b_Q^PaXWqcJw-6k)E)QJxmRphFWA5`s^1&w=|GuVGYkAOE=Q770JYzkFU)VEFZog+i? z@m8${QjP#3C4Ernc}M*ps_vVwK!Hw{P;vw4H3PHH0ueA)K*kcjZghZO5+f~9rBBLfMg4cA4wN%GkENV*) zSEDMmg!PBKzlo+{AsQgH#my_V(3QrG5n~`%<`Wi?&4eJY7J-|`dK2Usf0bI1G6KQp z8&J8(VK;E}NhYvApRMXhfk|fe8-I{XVWOf+T4*a7g}6H}HjJ{XfNkO+Lk&e%JIR<@ zhw@!h&P-zS-f3+;sSlg+PjyNeZ~|wjBAv~%1UV8%Y*MSqdIF_<2qU55yaL#DUhtw6 z!$AP+ip;=mtBzOe`NF6ifx605JoN(fOxK?LIKV~o&w}4fr=P#Ds%w3{~9oi@HY}H=OUwi#}Wpr!~1P(R z00z`-Jc#KuV>xqVcV`F-gDi!T4zNtH3X45Tb`7QEzbh&ZX~@5PSV_me#4*adP3SqJ zSGiqlAO@4lU`O*n!pYuybtY7{lt^j6H6z}z{w6t;(V;H_e6NjfgnyKg^Z+WYmK#QB0tnzKrw!`Oz2d=T6cP~VohAv!WNpkevPg}T z!Aq-0a32i?GwR|IgY-f%tG^5B6phvtVV)BgZyxcSB~_=s7kq; z4ZsA4v5;wXA*Y0on^67wdRO=kp)>2TQ@xDNq^r;}7`(fB$-1f|EuD*rq)rS17X#$h zJC$fGU1hA^#G0wSpQh%>S~UEdF6h6I6UO z^5a%MD#>mW`RGjy;FCsIhw7~?)p^%qn>n-BVRKPmUhf@CQ9ll1T=%yW;q(RAUn)<1 z@{&gXrBI=oQ{qKz`}O{3^@x}GI96G0p|RhqN==v5w`7z;qup)|SXbG)ScJzJh!}l* z=t>t@gDIC*RB~jnNL(H~E?-f}-V3WOx>*MM6NEI^iBeQXz+xxM$JTDNUrcJEEhN}0 z!N6*`Cr;%#4(oDjkQ~@v*C=npTwaVBtyIy31es)bYF?d*QNJ=F$>~>|Ll4+OWzH7! z)NPHsi``gA)d!}2lTb#xB>2gque@c$Crzqb9&s%L?aqpaLwKnPvulkPC0hDJK4VGQ zdeFxhYWX7_z%+~tr=Zib*)pT+EbS9%zlmbBn4fkAXBZq`^EhQwlJ)Y~x0OnA9k94Z4Uu3Q(sUsdCHXl$!D?VTj6_CW+HM z9%Iw#`$;u_zmWPCqT4`il$AA&jjz2VEND0+f&5l0TeISGtV)CkuC?yzsE1dR?9|Qj z=CsfO;?H4pVHH0PTx%x0#8Yy&q!Q)@QX0M zc`2f8Wx&m-n*v@ZWy8ejtjmkjYU#AiJ3l7jev*1@7e^RbiIxU^C2zctQq`tO&$9bm zWllFL^L?+xF3VgfYeGt5-RAD;_O`}~yv0gZDzdk_b7cuH!_m=02`OG-$JOV+m00a4rOps3+Yxl*{ z$z=dU6E7Ydpm5)skA*iNC9c4G7PL)}_9)iqedczt$J|ccm>6vRORs38$>L_0dE3s+ zSWLq2{-I_2^n_bg`sA!?_*BsD@n-MGu3x)!su(@u4u-`CelFLCKU|Y5tuJrycmITR zTmx>_mtJJHhXE1pigvV_rv7K>X2ECG`k{Ldr-ii0jq`1Vr2;?WY#_#gja&KIU-B>Q z8Df4F`N&9D$ioK7m|i+$YQ|@taVl6xQNGl8mI}X!gGUL?5x&&l=Au=jMfpQF#vsk$ zVnxhlNauEAU>;_J@@un~Nci@2ucj~P*${xyxEaaFdwaF~M?>Qq9`G{21-Mw-4q_j| z^3LRcHB;a(m%PkO;;Xf`b@nH#u*UE4d}RDfef+Z&?MY^?;L~|i*|pb}H@gNd5<_TV zL*dbWl78oR26Ww?#F!~qlVg&ik9`5FS7-AZ(Qy(&kDJW&j%ys6s_{*&nuBHug84w$ zJN@#`So{pdqJek%4?0bE-ITZDh#cn>Ndr6u&{xa9bo0B|)N!c5SFS#)r?_$oCi^4Y@l7{B>D?;DtZ|OD- z$Npv6ln>f)MzBeb8QKVA9U8S`19~z7>~?EuUQ_~ArWn(e!(oMDZd1L!Oq$3}ojJNq zZH#?v_(ToM@w4iT)!&UrVQx%1J#M<2Zi0U!NN#$O()8Ev1K^U^IK1hN%ChBys$+rr zr0Dxsu^zVRQ2N(}JH&YFUo74Rg*3`#F;rQuYy??cE(~C?V{V& z^_R2pK`GnA(uR?iWZ5^hn@6Wca7O}eb;M6S;e8FTqmSrU9BK|V9FN}4h2slLlZmmm zK7~y=y0HriCG|BeTH2zbEiHy6rHP`FLH+TwKb&dwrZ!CnOr4Sp4DQJ`1UtUO3+svx6)o@$n72odV*QhSUr)Zt*8T|ou* zslxD9ZV&rHg=a|%8i-PwoT3aBrLJ&q*v`ZWQX{3uy}#``_W!1?YwG|ms_N>`%YGt# zEH~n$cU$&6BA@#(k~^_VB54<#e*M3zUyOai)RHg6E zg;u-#e0#`9=POkIVwl7o&?Y;^lzU@MOO>~Mp>{Su=i5Hvdlgr@^iJI9NY6CT`8nSg zGm$Mg36kW|!{7=TO&MO0P;=`2JNrh%uiF|i z`f<>_5Guu1CJQF7dVY>+NOon~!Wbt#=hwZ|7yJ*t@4?yE#P8GI1J>CFi&PkI0}GS1 zTC}7*7!gMjmkRc@q9_d7mPh!-vAx6|w)Vzmqu~3^w}+k2PIjg#nBqg=r$_t|tfsUl z6Br4?sz(@|RNpR9%yFT9NZi^hYVRZo3Ot>SW|q5&B$5|$Fkj4*JkRhf-f3)|*VXx9 zWn5ozyO_jl!%#|`2W-FZMeZK9;p+;YJu~eshBO6m6!~@Kg{iM>j1q$4xC`s5h{P^# z*an#jO43oxQTZ{tbFJU&zXX%kaR;}xJU|OE-aAv=g(?-FS<8ISF`hf65mpRDyVVBM z6Aebyj%XyjQw1FP98V{~pvp(9g^R*|O55&5$>c<0ncIOy;C;?HI(wuXk~Fq61P?715Cp5adu05b*xF3%s1&AePR~kiUJ6 zSeqz9p9-k$J`MX_9l$rXFthMXY97>wD^|gxi8(HA|e_@YUceE>eqXEDA~9xcIL6RUb$LI7ysNz1 zQQJU#5zgwjDaHM>wFHoAi>KF(A8_9=2RN?p0T&zVCx zEtwWSW7~C_4a@4RC46bmZi1GMf9byT=+>P*{-cYZ;bGLKG`IUz1bS-EbyxZ29LDne z74nz?IE*mL=@moYd1;(UX6$6&w7v3~VK;;d2T~U#-NVt04yBm8xU9fJJB?zs@w)+f zDX%Da7viZnDGA3aY@-ci4>moHw*(!OX~u#F8ifI|tT;2SZxx<;tAHS=XLt?u@Ohk< zunHc(6i3+;^3K!7< zdiRPOiC+fFsVIPG1hrOtg%}GhRTM_Tl7?<8N+5|!Lz$H{o)Ep1x+f|D^->l=G=Nqs3nG00L9;-_&_`u_s{ebe|7(EH z4rNmjMI40MJ<(6lJQZoAPFZM*EE5z<6`%5dXR@pa2xNbap1yw^T|fm@c0R delta 7911 zcmZ8`Wmr^O*!GNsbPU}{9lAk6nt_oiHH1(+SE7M7Xy?J1%}(NYSRKSs3hI>jgdbO;n8!q*l~;6$ zX-y*8$ZTvVEHl2)lif?^<@n>Crt(~VQk{?3FJ9{Pdr)lIs-$z#501FgpAOoa>&x3;7yK5<>$Jm4k?6SS%};O{FIH35p;VhV)!_Xd-O!^2 zUh#_Yu50vaXkfgoj6_?o$e07cX`eih&%gT}ReRLVZ{8rOr=bfQXmN`tke)pWUs@RN ze}|;zGWeiKndHZSv-(m+g(Ysdd+XyA(l5b_L7Kq^P$@pr2@(eHx9RO5bP(tn3nB$V z2JmpY+1Wp85-K{^+ac3trpZ`E))s9 zCBkPhE-`lt3%_WR?~mqJnrwzfX`?#vz(q(oi^3Fb2vZus;m2NY&?CVH+_Vj z)8C5LvD;6k*@ez*d+8U%^zN<9Imh(LG6ysgWB@+uOQ&%L7O z-_Fl2D_5ujHjp}kJzfO$l_?!*qYS(5rSeV$`F6;Ht1Bi;l?(;p>0U467xwsDwyQ*8>C%?HxD+c>#tqN{N zftuCJnqF$&w-37#KDMs;dYC8dASAJ&uPFbm^VYrRO3C z8?o)Ksd#fLbV|cFb8LP?^}BB<=B zFHq@FN02bXMYjF3hCE{6#oWDz59^2!aQ;`_+vmzNdK@=qFjQ{$D)1Wk2_^pzAXKK=wKYPicJNkW^>oJeZWtQ~3e zVP$~?bw;nUdlA{BPaXV(9tkrhf0Gk)Ms=X$agZqZ!aY(^Bs;FNV)AWrUdMQ8;X% zn?~DaA02A0Z8f1mB__>i`0=BXg$zxis`!%hl8- zn3T?hE{Jicr#&(d0@3nTfbpBN#X`RtPU&Z%mFrNM1$qSm4AGKoo6Pu(40#@r;g&s0 zw8L~H6%&&iu=Mg{#z@^yA_}tTL3zXs4Dk?rSlOdGJOjNoMTQb&{YQ(`rPK4k=t0^1 z$Pf-EQ=2HIRsV{=E!z3}jj}1>md6hwDG{- zXiaxkPq{g)pz6x_8G#xM%#mOW#%vp4Y-WPUgicDJ+>FpM7#YednI@|xx#i>UCutFp z8n4e2ECl^TN0zFV&Pt0OR8e$U3RA0R`bTp&$RDBwehDl4&>jO*E2KWid9qaS|8=Sp zh5N}G=ooHB^^~P0$J5E-|A476AQ37kP3Dxdz`~b}h=aws0BuBwqV$%(A3lXjAg$~* zgJuG!PI&$J?t1vEq`AvcW^(sQ(7%qz%Kiki#{6*cWl^nWn~$pSbF3OM(r9B|d5jSQ zod>oWUrcxo&(;wG-7&+ff8lh$Hs|eb)r2Ho=kC`^BIc-X#eay3mb(z!ugdRO;djye?9$EWW5fR-% zsM5co4Lscw==x4e=bo;d)cyIl`7OKB&Hk?z@8qBO&B9J(f*vF7iTE2pDB3wtd-9dq z7@gm#R+Vn#Hz^LgQL&ST2S&Z_HM*{U7l(XE7su0#KzgSXbYv(bqG%Zzh%&w^KSRUQ^a9UmVOK@RxWF{RuQ@YYKLp2=h?lvPr zK4r>ngtPX2f1NxE7zTP6Q@wE>R~`LZhs%t_)qDboCK;Xihwqm!s#bF{9ME2eS` z61sMmCyFpJI%b|#v?)6qeZ7CICp6}q=Fk35sq({ za-^(m$|~WubUqJd+iQXJT?0M(4_)(-Q1@IHIia&}bSe?4F#WP&8{z@y8lWIAonWvG zYL8>{KUvM4RCW$qDD15xH8Zvps%-u0h?qmD8=Z=}wg+TI2-^M1knqq)nROt$;1s#dQIOHATJeS`0n*Tr z<<-csTswl?$QHK%^r(CJ=(JQK&~L`QbCWMdqRI8g5PCDeOvEI=4s5G)-3T}%r5q86 zw?mlJ{)+2*%F3*ym1k~Z+bgz9POeM{&Bfuf^JPFDe#LPkaEcVBm^0{uP4AECn!etk zIk;hkqytA-Pi-1Zz0W1CvTBW1EN?O*zg8{Zh3isP5vYR!fwCMMV!P#`^nLX*bCaBy zhLKtWyMr;TG42#r#E511Ds8-WeQY%0LPL!p*B)2@;fRrasm2Y~rkij8LL#=Z@^tYH zFi!YtYtzTCa{RDS$IYtP|3WVs&fGlcEwLgoR3ChkOSM>3Y6G_mP@Sha45b^(@Yz~A zlf2Vj;;dynZx!O7&pC~MEiLa0?EMBx({@8^Z7;WTM!U>Bs*kn-HAN(3M4}QoA`3!L zx`AhbK@I5hpQU1fKoI~4gbf0L+-$kv&hED6@ISwD>j-NKI)FEb?@dJ8=hg3VP__@- z(Y{cqGzvz3l&*_b&r^}6PgB;@E)PnG0k0LV_xoqF)khz89rrHfYNK2rotuf9$tQ`P z`)BnPl|@uxUqrXEezS3FYfDliG^9h@JF%Jl!2J zRnIM*$|NA7kqfNhlu=tRz}+bo9>ppfM>)L^U&lDVkMm5Kl|fnzZmA!MZ5zNmO24`f za~+6Hy4z_leR^8ZS|s4h;E0^hDlDhbCI){CGVN}TeA9aMATHcnI+5w&RJLKjx@l(> zJX@}B!)!6p>|-!d#(Vq2Dzm%9H$!c;wS%9_wirN1P0-ZRM!oCu4-ww${q^BS$j$VX zHoBicVktqZ%N)0-Q|r)mIW`UmYd`5KF(BA)prD1DX%0}~4>Y!1{l zaVqXf^z+_)k#^xPy|1h@#;pa|&MZo&U*$)Q&;Ini(=MORV*_O*KG$m9`}yfgu5hA2 zOFvk@yB72P-p`ykf$Ax4`Wt^gvS}`cKIb6>AUKJM!}rSs78`LV-7?ozy-}Scm$3x= zM>?fbyPw9g!SkQ6c-t8MH|`FV0qGX8@b`83JTsL$H{t1Xjzk}w@gCi2ok?CR(izUe z+MGI{P@|dRjwt)~S>||BFs!R=q|8nidv;-mVjc-TN7d39`PcFtV`MQi+Hb&aTHNnU z^gzMN)jDDS6)Y$bShEfji!n>ZGgC#0rS6%6Cw07?CGONH$v*jro}HUv7DBSCg8R<5 zDEI@u+2*?GCs{*}%!_8m@0}IARQM3uz;eoCE@tJqO1FWp<&d%i-kmq&a-YM9lxNo6 zl>Hj3R{ITs0_jl9H|CLoyxRCq&b!q%X#5q*ISL^Bm21KxK;)w3FjV?J;-!x5GPWXe zk+S8JWfkU#@4P(jJR>(9&TC=MZxwYi=Y2D2 z_k+>tp+!ix;L!!K&yccrFxk;Z!Y1Sx!iz&-E5Gb^6Evo*H%@rU*7|JB3zVvoO6U@! zJ9-%GY?Ks^fjvv|-4AJs<18nU2`owtot1II-g@wPG90B?kL&ktpZjbZo*%wbW}Uur zeIaRZ^cul1oeg!li3lrxvgPA!0UIDWq@d3nDTF(|dUdg7>6Y&6k~e#Wiu%bx)LDhZ zt5KXEr-Pmfv(756Vxe?9dVu%ifya;Vq~wZWde12jS|Cl7VledSSG8@d6_KpHFv$1)w z{HOh*C(3EwT7HPQd-ecoOktvE@rl0N_e4NHUMtGBfQ-@(@=tgU$S4{=W}E7m(H@17 z#7nlD5x|ps)mG($4Eeg!$^30;tPM}c0F5}|-u92piAwFwY z_KI4X$Y46_m`+Y~YiE;AkJH3DWpj>Mj$|l%P-;bwJy+f>OE_WrYgrUrLvmSH_xG;H zDS2R!!#$E{`K>cbN-%n4=I6;DA2m==f>_anv;ej69E9AczdRpn2iiJHzwH;OIl zQtIh}hz2;eTCjm9H&=V%KaWpd&CPsPe}o=K{0l+rSncL#J?)t7o&$FSmh&QTj zFqQt=|B?x{K#hk0iCD>Ddbbaac=tZDc3#GlL_G|jNGi4uBLF?SsKvC0&t*ilV1HQo zj)LusBk3dk7@|exv~CiiSc`-zUq&c zjkS^JTqkKiuNQrz{!#j@$Wk)RQEK?3^xOajUc7JvMwawCl-n!K^waB0X&Kb!L;t+e z$2*ju_Lv-dE){oUMjC0Ygmy$8uXzxcVKWqo*&|H8g1F=jZS#v*`IyA3sJa)|>tnR0 zq%HMsM_DK@4~&8SLppEj&_41v)KNk<-`q7<$MgsUa>7`;a}{1&hpXpu5O!&K@Y*PB z@GNydlB`OFnBipcE=-9}X*8q_&3iIKoC!M$HV)zn>9s)HG4^G#k#6equc@Pi8QYi_ z3fp5vaV4@j`_!A6Tq)irbLXndwHvU1k7yvw$&)qnqXBrsTzhsy+hPM~G~m1tb7~!x zU-EJCb)}DDS|x<{7YQpeoh5! zBd!*`0s19X2AM^RVrD*>sRon#w0GEf#F3e}T_)e1m!6T4^3#%Cmz{<80sBTT+{7Qw z=m&8OUrO-~+{_Zsao?OGPD;5rsgvuy9_CM=?xaYx?$=6N(1a7>7uDI8=d z{)KEHz3mFo*ynSyaC`CN1owWUJECw?Dt0~w;NYZ90^B@~hG|})dpxi~mTMkvk2*p2 zKASu?*r#vc0-O?*@W@5wkp$TYDf=B*eBkzIQ>M+ZW++cjpGI zIlh>JJlEYEr0Ltg+NH&nmZE#FL&Bv`>vSFG;BSsRXVy+2d~?!U8qk2&i(a)DM9=#G zTn^l-hFM$y&ud*>@0T|l*n2VEVg=+U(!5~N3z@`j>dPCaw<$kPL?6!jhDAHV(PA`8 zVN{Bvm8ZBM!cDH^F6Bl|| z{|julOr)t4UR|fwV}cOO%(B)kYBC}P5@9(<*1Gqa)wj8w`KH1s7d-EW-p8+QX0<>t zjUU?8@wSOfuH{HC_YPsiIUf&+lkvoer;NPpbzcEiMY4hsqO?|BLsYc3RzJVsyQqWA+pgN3=V5Ht zH5bh>23gT310HT~t)cUYSj&Y+(X+ZFw;@Zq2683<+89eyC-b)&&Q4bL@BZm#bQK*&CGi^Q zk7(FamLwC)*0mTnK+^A-cfdH5A*KApMOmfA=V!Da?F~_cXz{^xEc?2iVMQjO4ilkD zbbptHBePh=O9gK0Sus#cFm40EU!YO~$FW&$Jns`aXZBu*9AJM-CR%40Ut>UA4Z4PS zWU1#LRbw|4$A6Da{B9V*Wvokd+bHL~e6et{ggmO0L0Ox=m7|8%lUOfcd{35(Oe)LF zU}h}Tzo*l`_dH~N9yX7~evTKguKYugB9|Zf&5KjthGC=ZY2!usW?~TsZ#j@dquMM+IscGZ#~bWI|+7zkcD`L;zDkEIoZG;cVmag zyddyR@ANIo;5~+)UvxN&7?;@9dEs3p`i0d6ea46M;|3H?#gd5>L*Y*YbNIA0 zZa4ZlxAy}s&mnE>rNNbv=_x9>_SMc`ARl}~HH&L)r1R@qu;fx?#KEE<=$I0O##DBP zl)5?lF@}1VerOy>Ohm81T*y?p78}%Gp5*+sRN%YvP35xVtIU?(a=8qk}vE^{7>=-!3~Qoii(F06LN@ zR$|g1vUWa<>mln_74}s3fjb4K_|{aM^7WOBw_w${gqxl7$M3CcIJn%0lBvZqpml0gQ6aQ~UdfUAR( zjhTak&7U2K5RLxOQSLu;7$^Fm5OEq%VO?Wg5u$5VtN%ffM5T*C<&B-0e1+myJjgo+ z`@<(NLw68o9aimNvyfFS6w3V9px6EFRRWo(TSY(LX*5fJ)?vx4Gq)LCBo7H2O{1<~ z2({dd8vdvf#>T3v(rW4O=wCo<*=tFS-AMAu?dn(%(d{- zp^i}aVSPV$PmbVdECumR6-w@0v3%<12z`>~_;NAC>aS2mD&?oy(~Zb9Z^$K-}G5p#*~8fuS##P4-cOy&Q+c!|XNMU5{CA z`0eK1``Q4Wt6ZI44y=g#&^UYej_!DdxNLn1shD*omm0ErE`lf?ci&JM_>pwj>N94L zADh@Gx)~9v&y-Epov4{1?k->-_WcK$fDKBRBY(jdDlxX}7Fdb(_2gnBCu!eb72oH# zAMhQP_}&&U2^&r@B%AaTm&VWaZm*o#>BhWBMnO1w-@A#^G(H~7nC$rpFRuwE zjD$&o9S~A5?k5LQ2slgtOpM5d$%DfYM=;?h9g+z4m*P*(B@wnSRlzlgx|h%=4;%<2 z1pzP