From 2d3abae132c79e38404eb090d5a43544bf9816c9 Mon Sep 17 00:00:00 2001 From: ah_zjn <ah_zjn@126.com> Date: Mon, 4 Mar 2024 12:10:20 +0800 Subject: [PATCH] addCode --- .../web/api/IChildCareFeeApplyController.java | 8 +- .../dto/request/ChildCareFeeApplyRequest.java | 1 + .../ChildCareFeeDetailHandSaveRequest.java | 28 +++++ .../request/ChildCareFeeDetailRequest.java | 3 + .../QueryChildCareFeeApplyRequest.java | 32 +++++ .../result/ChildCareFeeApplyRecordResult.java | 2 + .../api/ChildCareFeeApplyService.java | 9 ++ .../api/ChildCareFeeDetailService.java | 5 +- .../dao/mapper/ChildCareFeeApplyMapper.java | 8 ++ .../dao/xml/ChildCareFeeApplyMapper.xml | 45 ++++++- .../service/ChildCareFeeApplyServiceImpl.java | 84 ++++++++----- .../ChildCareFeeDetailServiceImpl.java | 113 ++++++++++++++++-- .../ChildCareFeeApplyController.java | 8 ++ 13 files changed, 302 insertions(+), 44 deletions(-) create mode 100644 ServiceSiteCommon/facade/src/main/java/com/seasky/nurseryFeesclaims/web/dto/request/ChildCareFeeDetailHandSaveRequest.java create mode 100644 ServiceSiteCommon/facade/src/main/java/com/seasky/nurseryFeesclaims/web/dto/request/QueryChildCareFeeApplyRequest.java diff --git a/ServiceSiteCommon/facade/src/main/java/com/seasky/nurseryFeesclaims/web/api/IChildCareFeeApplyController.java b/ServiceSiteCommon/facade/src/main/java/com/seasky/nurseryFeesclaims/web/api/IChildCareFeeApplyController.java index 1a2d0a1..0446492 100644 --- a/ServiceSiteCommon/facade/src/main/java/com/seasky/nurseryFeesclaims/web/api/IChildCareFeeApplyController.java +++ b/ServiceSiteCommon/facade/src/main/java/com/seasky/nurseryFeesclaims/web/api/IChildCareFeeApplyController.java @@ -3,6 +3,7 @@ package com.seasky.nurseryFeesclaims.web.api; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.seasky.nurseryFeesclaims.web.dto.request.ChildCareFeeApplyAuditRequest; import com.seasky.nurseryFeesclaims.web.dto.request.ChildCareFeeApplyRequest; +import com.seasky.nurseryFeesclaims.web.dto.request.QueryChildCareFeeApplyRequest; import com.seasky.nurseryFeesclaims.web.dto.result.ChildCareFeeApplyRecordResult; import com.seasky.core.common.Result; import com.seasky.nurseryFeesclaims.web.dto.result.ChildCareFeeApplyRecordViewResult; @@ -25,7 +26,7 @@ import org.springframework.web.bind.annotation.RequestMapping; @RequestMapping("childcarefeeapply") @Api(tags = "涓汉鐢虫姤") public interface IChildCareFeeApplyController { - @ApiOperation("1.鏌ヨ涓汉鐢宠璁板綍") + @ApiOperation("1.涓汉鐢宠璁板綍鏌ヨ") @PostMapping(path = "/pc/v1/list") @ApiOperationSupport(order = 1) Result<ChildCareFeeApplyRecordResult> list(); @@ -57,4 +58,9 @@ public interface IChildCareFeeApplyController { @PostMapping(path = "/pc/v1/rejection") @ApiOperationSupport(order = 7) Result rejection(@Validated @RequestBody ChildCareFeeApplyAuditRequest childCareFeeApplyAuditRequest); + + @ApiOperation("8.瀹℃牳鐣岄潰鐢宠璁板綍鏌ヨ") + @PostMapping(path = "/pc/v1/pageList") + @ApiOperationSupport(order = 8) + Result<ChildCareFeeApplyRecordResult> pageList(QueryChildCareFeeApplyRequest queryChildCareFeeApplyRequest); } diff --git a/ServiceSiteCommon/facade/src/main/java/com/seasky/nurseryFeesclaims/web/dto/request/ChildCareFeeApplyRequest.java b/ServiceSiteCommon/facade/src/main/java/com/seasky/nurseryFeesclaims/web/dto/request/ChildCareFeeApplyRequest.java index a8effcf..e8d6f70 100644 --- a/ServiceSiteCommon/facade/src/main/java/com/seasky/nurseryFeesclaims/web/dto/request/ChildCareFeeApplyRequest.java +++ b/ServiceSiteCommon/facade/src/main/java/com/seasky/nurseryFeesclaims/web/dto/request/ChildCareFeeApplyRequest.java @@ -22,6 +22,7 @@ import java.util.List; @NoArgsConstructor @AllArgsConstructor public class ChildCareFeeApplyRequest { + @ApiModelProperty(name = "鐢宠id") private Long id; private String employeeCode; private String employeeName; diff --git a/ServiceSiteCommon/facade/src/main/java/com/seasky/nurseryFeesclaims/web/dto/request/ChildCareFeeDetailHandSaveRequest.java b/ServiceSiteCommon/facade/src/main/java/com/seasky/nurseryFeesclaims/web/dto/request/ChildCareFeeDetailHandSaveRequest.java new file mode 100644 index 0000000..683e6fc --- /dev/null +++ b/ServiceSiteCommon/facade/src/main/java/com/seasky/nurseryFeesclaims/web/dto/request/ChildCareFeeDetailHandSaveRequest.java @@ -0,0 +1,28 @@ +package com.seasky.nurseryFeesclaims.web.dto.request; + +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; +import java.util.List; + +/** + * @author 锛歾jn + * @classname: ChildCareFeeDetailHandSaveRequest + * @date 锛欳reated in 2024/3/4 10:20 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class ChildCareFeeDetailHandSaveRequest { + @ApiModelProperty(name = "鐢宠id") + @NotNull + private Long applyId; + @ApiModelProperty(name = "鍙戠エ淇℃伅") + @NotNull + @Size(min = 1) + private List<ChildCareFeeDetailRequest> childCareFeeDetailRequestList; +} diff --git a/ServiceSiteCommon/facade/src/main/java/com/seasky/nurseryFeesclaims/web/dto/request/ChildCareFeeDetailRequest.java b/ServiceSiteCommon/facade/src/main/java/com/seasky/nurseryFeesclaims/web/dto/request/ChildCareFeeDetailRequest.java index 19c4449..7c491fb 100644 --- a/ServiceSiteCommon/facade/src/main/java/com/seasky/nurseryFeesclaims/web/dto/request/ChildCareFeeDetailRequest.java +++ b/ServiceSiteCommon/facade/src/main/java/com/seasky/nurseryFeesclaims/web/dto/request/ChildCareFeeDetailRequest.java @@ -22,7 +22,10 @@ import java.util.Date; @NoArgsConstructor @AllArgsConstructor public class ChildCareFeeDetailRequest { + @ApiModelProperty(name = "鐢宠鏄庣粏id") private Long id; + @ApiModelProperty(name = "鐢宠id") + private Long applyId; @ApiModelProperty(name = "骞存湀") @JsonFormat(pattern = "yyyy-MM") @NotNull diff --git a/ServiceSiteCommon/facade/src/main/java/com/seasky/nurseryFeesclaims/web/dto/request/QueryChildCareFeeApplyRequest.java b/ServiceSiteCommon/facade/src/main/java/com/seasky/nurseryFeesclaims/web/dto/request/QueryChildCareFeeApplyRequest.java new file mode 100644 index 0000000..d71490e --- /dev/null +++ b/ServiceSiteCommon/facade/src/main/java/com/seasky/nurseryFeesclaims/web/dto/request/QueryChildCareFeeApplyRequest.java @@ -0,0 +1,32 @@ +package com.seasky.nurseryFeesclaims.web.dto.request; + +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * @author 锛歾jn + * @classname: QueryChildCareFeeApplyRequest + * @date 锛欳reated in 2024/3/4 9:13 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class QueryChildCareFeeApplyRequest extends BasePageResult { + @ApiModelProperty(name = "寮€濮嬪彂鏀捐捣濮嬪勾鏈�") + private Date beginYearMonthStart; + @ApiModelProperty(name = "寮€濮嬪彂鏀剧粨鏉熷勾鏈�") + private Date beginYearMonthEnd; + @ApiModelProperty(name = "缁撴潫鍙戞斁璧峰骞存湀") + private Date endYearMonthStart; + @ApiModelProperty(name = "缁撴潫鍙戞斁缁撴潫骞存湀") + private Date endYearMonthEnd; + @ApiModelProperty(name = "鐢宠浜�") + private String applyPerson; + @ApiModelProperty(name = "鐢宠鐘舵€侊紙0-鏈彁浜わ紝1-鎻愪氦锛�2-瀹℃牳锛�-1椹冲洖锛�") + private Integer state; + +} diff --git a/ServiceSiteCommon/facade/src/main/java/com/seasky/nurseryFeesclaims/web/dto/result/ChildCareFeeApplyRecordResult.java b/ServiceSiteCommon/facade/src/main/java/com/seasky/nurseryFeesclaims/web/dto/result/ChildCareFeeApplyRecordResult.java index d8259a5..50e4c4b 100644 --- a/ServiceSiteCommon/facade/src/main/java/com/seasky/nurseryFeesclaims/web/dto/result/ChildCareFeeApplyRecordResult.java +++ b/ServiceSiteCommon/facade/src/main/java/com/seasky/nurseryFeesclaims/web/dto/result/ChildCareFeeApplyRecordResult.java @@ -28,4 +28,6 @@ public class ChildCareFeeApplyRecordResult extends ChildCareFeeApplyResult{ */ @ApiModelProperty(name = "鍙戠エ鎶ラ攢閲戦", example = "1000.00") private BigDecimal claimsAmount; + @ApiModelProperty(name = "鏁欏伐绫诲瀷鍚嶇О", example = "鑱屽伐") + private String employeeTypeName; } diff --git a/ServiceSiteCommon/src/main/java/com/seasky/nurseryFeesclaims/business/api/ChildCareFeeApplyService.java b/ServiceSiteCommon/src/main/java/com/seasky/nurseryFeesclaims/business/api/ChildCareFeeApplyService.java index e03c196..29c4dfd 100644 --- a/ServiceSiteCommon/src/main/java/com/seasky/nurseryFeesclaims/business/api/ChildCareFeeApplyService.java +++ b/ServiceSiteCommon/src/main/java/com/seasky/nurseryFeesclaims/business/api/ChildCareFeeApplyService.java @@ -1,10 +1,12 @@ package com.seasky.nurseryFeesclaims.business.api; import com.seasky.core.base.BaseService; +import com.seasky.core.common.Pagination; import com.seasky.nurseryFeesclaims.business.dao.mapper.ChildCareFeeApplyMapper; import com.seasky.nurseryFeesclaims.business.entity.ChildCareFeeApplyEntity; import com.seasky.nurseryFeesclaims.web.dto.request.ChildCareFeeApplyAuditRequest; import com.seasky.nurseryFeesclaims.web.dto.request.ChildCareFeeApplyRequest; +import com.seasky.nurseryFeesclaims.web.dto.request.QueryChildCareFeeApplyRequest; import com.seasky.nurseryFeesclaims.web.dto.result.ChildCareFeeApplyRecordResult; import com.seasky.nurseryFeesclaims.web.dto.result.ChildCareFeeApplyRecordViewResult; import com.seasky.nurseryFeesclaims.web.dto.result.ChildCareFeeApplyResult; @@ -52,4 +54,11 @@ public interface ChildCareFeeApplyService extends BaseService<ChildCareFeeApplyE void auditChildCareFeeApply(ChildCareFeeApplyAuditRequest childCareFeeApplyAuditRequest); void rejectionChildCareFeeApply(ChildCareFeeApplyAuditRequest childCareFeeApplyAuditRequest); + + /** + * 瀹℃牳-鐢宠鍒嗛〉鏌ヨ + * @param queryChildCareFeeApplyRequest + * @return + */ + Pagination<ChildCareFeeApplyRecordResult> pageChildCareFeeApplyRecordList(QueryChildCareFeeApplyRequest queryChildCareFeeApplyRequest); } diff --git a/ServiceSiteCommon/src/main/java/com/seasky/nurseryFeesclaims/business/api/ChildCareFeeDetailService.java b/ServiceSiteCommon/src/main/java/com/seasky/nurseryFeesclaims/business/api/ChildCareFeeDetailService.java index ef15390..56710b9 100644 --- a/ServiceSiteCommon/src/main/java/com/seasky/nurseryFeesclaims/business/api/ChildCareFeeDetailService.java +++ b/ServiceSiteCommon/src/main/java/com/seasky/nurseryFeesclaims/business/api/ChildCareFeeDetailService.java @@ -3,10 +3,13 @@ package com.seasky.nurseryFeesclaims.business.api; import com.seasky.core.base.BaseService; import com.seasky.core.common.Pagination; import com.seasky.nurseryFeesclaims.business.entity.ChildCareFeeDetailEntity; +import com.seasky.nurseryFeesclaims.web.dto.request.ChildCareFeeDetailHandSaveRequest; import com.seasky.nurseryFeesclaims.web.dto.request.ChildCareFeeDetailRequest; import com.seasky.nurseryFeesclaims.web.dto.request.QueryChildCareFeeDetailRequest; import com.seasky.nurseryFeesclaims.web.dto.result.ChildCareFeeDetailResult; +import java.util.List; + /** * @author 锛歾jn * @classname: ChildCareFeeDetailService @@ -30,6 +33,6 @@ public interface ChildCareFeeDetailService extends BaseService<ChildCareFeeDetai void cancelChildCareFeeDetail(Long id); void enableChildCareFeeDetail(Long id); - void saveChildCareFeeDetail(ChildCareFeeDetailRequest childCareFeeDetailRequest); + void saveChildCareFeeDetail(ChildCareFeeDetailHandSaveRequest childCareFeeDetailHandSaveRequest); } diff --git a/ServiceSiteCommon/src/main/java/com/seasky/nurseryFeesclaims/business/dao/mapper/ChildCareFeeApplyMapper.java b/ServiceSiteCommon/src/main/java/com/seasky/nurseryFeesclaims/business/dao/mapper/ChildCareFeeApplyMapper.java index 199a2e4..43c921c 100644 --- a/ServiceSiteCommon/src/main/java/com/seasky/nurseryFeesclaims/business/dao/mapper/ChildCareFeeApplyMapper.java +++ b/ServiceSiteCommon/src/main/java/com/seasky/nurseryFeesclaims/business/dao/mapper/ChildCareFeeApplyMapper.java @@ -3,6 +3,7 @@ package com.seasky.nurseryFeesclaims.business.dao.mapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.seasky.core.base.BaseMapper; import com.seasky.nurseryFeesclaims.business.entity.ChildCareFeeApplyEntity; +import com.seasky.nurseryFeesclaims.web.dto.request.QueryChildCareFeeApplyRequest; import com.seasky.nurseryFeesclaims.web.dto.request.QueryStatisticsRequest; import com.seasky.nurseryFeesclaims.web.dto.result.ChildCareFeeApplyRecordResult; import com.seasky.nurseryFeesclaims.web.dto.result.QueryStatisticsResult; @@ -29,4 +30,11 @@ public interface ChildCareFeeApplyMapper extends BaseMapper<ChildCareFeeApplyEnt * @return 缁撴灉 */ List<QueryStatisticsResult> queryStatisticsPage(Page<QueryStatisticsResult> page, @Param("entity") QueryStatisticsRequest queryStatisticsRequest); + + /** + * 瀹℃牳鐢宠鏌ヨ + * @param queryChildCareFeeApplyRequest + * @return + */ + List<ChildCareFeeApplyRecordResult> pageChildCareFeeApplyRecordList(Page<ChildCareFeeApplyRecordResult> page,@Param("queryRequest") QueryChildCareFeeApplyRequest queryChildCareFeeApplyRequest); } diff --git a/ServiceSiteCommon/src/main/java/com/seasky/nurseryFeesclaims/business/dao/xml/ChildCareFeeApplyMapper.xml b/ServiceSiteCommon/src/main/java/com/seasky/nurseryFeesclaims/business/dao/xml/ChildCareFeeApplyMapper.xml index dc23547..392ffd9 100644 --- a/ServiceSiteCommon/src/main/java/com/seasky/nurseryFeesclaims/business/dao/xml/ChildCareFeeApplyMapper.xml +++ b/ServiceSiteCommon/src/main/java/com/seasky/nurseryFeesclaims/business/dao/xml/ChildCareFeeApplyMapper.xml @@ -64,5 +64,48 @@ </if> </select> - +<select id="pageChildCareFeeApplyRecordList" resultType="com.seasky.nurseryFeesclaims.web.dto.result.ChildCareFeeApplyRecordResult"> + SELECT a.id + , a.employee_code + , a.employee_name + , a.relationship + , c.employee_type_name + , a.child_name + , a.child_birthday + , a.begin_year_month + , a.end_year_month + , a.ocr_check + , a.pay_amount + , a.state + ,a.audit_remark + , SUM(CASE WHEN ISNULL(b.file_id) THEN 0 ELSE 1 END) AS invoiceCount + , SUM(CASE WHEN ISNULL(b.pay_amount) THEN 0.00 ELSE b.pay_amount END) AS claims_amount + FROM tb_childcarefee_apply a + LEFT JOIN tb_childcarefee_detail b ON a.id = b.apply_id AND b.type = 0 AND b.available = 'YES' + LEFT JOIN tb_childcarefee_employee c ON c.employee_code = a.employee_code AND b.available = 'YES' + WHERE a.available = 'YES' + <if test="queryRequest.beginYearMonthStart!=null"> + AND a.begin_year_month <![CDATA[ >=]]> #{queryRequest.beginYearMonthStart} + </if> + <if test="queryRequest.beginYearMonthEnd!=null"> + AND a.begin_year_month <![CDATA[ <=]]> #{queryRequest.beginYearMonthEnd} + </if> + <if test="queryRequest.endYearMonthStart!=null"> + AND a.end_year_month <![CDATA[ >=]]> #{queryRequest.endYearMonthStart} + </if> + <if test="queryRequest.endYearMonthEnd!=null"> + AND a.end_year_month <![CDATA[ <=]]> #{queryRequest.endYearMonthEnd} + </if> + <if test="queryRequest.applyPerson!=null and queryRequest.applyPerson!=''"> + AND ( + a.employee_code LIKE CONCAT( '%', #{queryRequest.applyPerson}, '%' ) OR a.employee_name LIKE CONCAT( '%', + #{queryRequest.applyPerson}, '%' ) + ) + </if> + <if test="queryRequest.state!=null"> + AND a.state =#{queryRequest.state} + </if> + GROUP BY a.id, a.employee_code, a.employee_name, a.relationship, c.employee_type_name, a.child_name, + a.child_birthday, a.begin_year_month, a.end_year_month, a.ocr_check, a.pay_amount, a.state,a.audit_remark +</select> </mapper> \ No newline at end of file diff --git a/ServiceSiteCommon/src/main/java/com/seasky/nurseryFeesclaims/business/service/ChildCareFeeApplyServiceImpl.java b/ServiceSiteCommon/src/main/java/com/seasky/nurseryFeesclaims/business/service/ChildCareFeeApplyServiceImpl.java index 1134dd1..40b69d1 100644 --- a/ServiceSiteCommon/src/main/java/com/seasky/nurseryFeesclaims/business/service/ChildCareFeeApplyServiceImpl.java +++ b/ServiceSiteCommon/src/main/java/com/seasky/nurseryFeesclaims/business/service/ChildCareFeeApplyServiceImpl.java @@ -2,7 +2,9 @@ package com.seasky.nurseryFeesclaims.business.service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.seasky.core.base.AbstractService; +import com.seasky.core.common.Pagination; import com.seasky.core.ddd.utils.MapperUtils; import com.seasky.core.util.ExceptionUtil; import com.seasky.nurseryFeesclaims.business.api.*; @@ -18,11 +20,13 @@ import com.seasky.nurseryFeesclaims.business.enums.ConfigKeyEnum; import com.seasky.nurseryFeesclaims.web.dto.request.ChildCareFeeApplyAuditRequest; import com.seasky.nurseryFeesclaims.web.dto.request.ChildCareFeeApplyRequest; import com.seasky.nurseryFeesclaims.web.dto.request.ChildCareFeeDetailRequest; +import com.seasky.nurseryFeesclaims.web.dto.request.QueryChildCareFeeApplyRequest; import com.seasky.nurseryFeesclaims.web.dto.result.*; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.time.DateUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.ObjectUtils; import javax.annotation.Resource; import java.math.BigDecimal; @@ -53,7 +57,7 @@ public class ChildCareFeeApplyServiceImpl extends AbstractService<ChildCareFeeAp @Resource ChildCareFeeDetailService childCareFeeDetailService; @Resource - CommServiceImpl commService; + CommService commService; @Override public List<ChildCareFeeApplyRecordResult> getChildCareFeeApplyRecordList(String employeeCode) { @@ -118,11 +122,6 @@ public class ChildCareFeeApplyServiceImpl extends AbstractService<ChildCareFeeAp childCareFeeApplyEntity.setFileId(childCareFeeApplyRequest.getFileId()); isOcrBirthCertificate = true; } - //鍒犻櫎涓嶅瓨鍦ㄧ殑鍙戞斁鏄庣粏鏁版嵁 - List<Long> detailIdList = childCareFeeApplyRequest.getChildCareFeeDetailRequestList().stream().filter(f -> f.getId() != null).map(ChildCareFeeDetailRequest::getId).collect(Collectors.toList()); - if (!Objects.isNull(detailIdList) && detailIdList.size() > 0) { - childCareFeeDetailMapper.delete(new QueryWrapper<ChildCareFeeDetailEntity>().eq("apply_id", childCareFeeApplyEntity.getId()).notIn("id", detailIdList)); - } List<ChildCareFeeDetailEntity> childCareFeeDetailEntityList = new ArrayList<>(); BigDecimal standardAmount = new BigDecimal(childCareFeeConfigService.getEntityByKey(ConfigKeyEnum.鍙戞斁鏍囧噯).getValue()); childCareFeeApplyEntity.setPayAmount(standardAmount); @@ -271,7 +270,7 @@ public class ChildCareFeeApplyServiceImpl extends AbstractService<ChildCareFeeAp @Override public void rejectionChildCareFeeApply(ChildCareFeeApplyAuditRequest childCareFeeApplyAuditRequest) { - if(null == childCareFeeApplyAuditRequest.getAuditRemark() || childCareFeeApplyAuditRequest.getAuditRemark().trim().isEmpty()){ + if (null == childCareFeeApplyAuditRequest.getAuditRemark() || childCareFeeApplyAuditRequest.getAuditRemark().trim().isEmpty()) { throw ExceptionUtil.getException(null, "椹冲洖鍘熷洜涓嶅厑璁镐负绌�"); } for (Long id : childCareFeeApplyAuditRequest.getIds()) { @@ -290,6 +289,18 @@ public class ChildCareFeeApplyServiceImpl extends AbstractService<ChildCareFeeAp } } + @Override + public Pagination<ChildCareFeeApplyRecordResult> pageChildCareFeeApplyRecordList(QueryChildCareFeeApplyRequest queryChildCareFeeApplyRequest) { + if (ObjectUtils.isEmpty(queryChildCareFeeApplyRequest.getPageIndex()) || ObjectUtils.isEmpty(queryChildCareFeeApplyRequest.getPageSize())) { + throw ExceptionUtil.getException(null, "鍒嗛〉鍙傛暟涓嶅瓨鍦紒"); + } + Pagination<ChildCareFeeApplyRecordResult> pagination = new Pagination<>(queryChildCareFeeApplyRequest.getPageIndex(), queryChildCareFeeApplyRequest.getPageSize()); + Page<ChildCareFeeApplyRecordResult> page = Pagination.toPage(pagination); + List<ChildCareFeeApplyRecordResult> list = this.mapper.pageChildCareFeeApplyRecordList(page, queryChildCareFeeApplyRequest); + page.setRecords(list); + return Pagination.fromPage(page); + } + private void checkSaveChildCareFeeApply(ChildCareFeeApplyRequest childCareFeeApplyRequest) { ChildCareFeeFilesResult birthCertificateFile = childCareFeeFilesService.getEntityById(childCareFeeApplyRequest.getFileId()); if (Objects.isNull(birthCertificateFile)) { @@ -305,6 +316,9 @@ public class ChildCareFeeApplyServiceImpl extends AbstractService<ChildCareFeeAp try { ChildCareFeeConfigEntity monthConfig = childCareFeeConfigService.getEntityByKey(ConfigKeyEnum.鍏佽鎶ラ攢涓婂勾鍙戠エ鏈堜唤); claimsMonth = Integer.parseInt(monthConfig.getValue()); + if (claimsMonth < 1 || claimsMonth > 12) { + throw ExceptionUtil.getException(null, "鍏佽鎶ラ攢涓婂勾鍙戠エ鏈堜唤閰嶇疆閿欒"); + } } catch (Exception e) { throw ExceptionUtil.getException(null, "鑾峰彇鍏佽鎶ラ攢涓婂勾鍙戠エ鏈堜唤寮傚父"); } @@ -338,34 +352,46 @@ public class ChildCareFeeApplyServiceImpl extends AbstractService<ChildCareFeeAp int currentMonth = currentDate.getMonth(); int year = currentDate.getYear(); if (!Objects.isNull(childCareFeeApplyRequest.getChildCareFeeDetailRequestList())) { - if (childCareFeeApplyRequest.getId() != null) { - List<Long> detailIdList = childCareFeeApplyRequest.getChildCareFeeDetailRequestList().stream().filter(f -> f.getId() != null).map(ChildCareFeeDetailRequest::getId).collect(Collectors.toList()); - Integer count = childCareFeeDetailMapper.selectCount(new QueryWrapper<ChildCareFeeDetailEntity>().eq("apply_id", childCareFeeApplyRequest.getId()).eq("state", ChildCareFeeDetailStateEnum.宸插彂鏀�.getKey()).notIn("id", detailIdList)); + throw ExceptionUtil.getException(null, "鍙戠エ淇℃伅涓嶈兘涓虹┖锛�"); + } + if (childCareFeeApplyRequest.getId() != null) { + List<Long> detailIdList = childCareFeeApplyRequest.getChildCareFeeDetailRequestList().stream().filter(f -> f.getId() != null).map(ChildCareFeeDetailRequest::getId).collect(Collectors.toList()); + if (!Objects.isNull(detailIdList) && detailIdList.size() > 0) { + Integer count = childCareFeeDetailMapper.selectCount(new QueryWrapper<ChildCareFeeDetailEntity>().eq("apply_id", childCareFeeApplyRequest.getId()).eq("type", ChildCareFeeDetailTypeEnum.鍙戠エ.getKey()).eq("state", ChildCareFeeDetailStateEnum.宸插彂鏀�.getKey()).notIn("id", detailIdList)); if (count != null && count.intValue() > 0) { throw ExceptionUtil.getException(null, "鐢宠鍙戠エ宸插彂鏀�"); } } - for (int i = 0; i < childCareFeeApplyRequest.getChildCareFeeDetailRequestList().size(); i++) { - ChildCareFeeDetailRequest childCareFeeDetailRequest = childCareFeeApplyRequest.getChildCareFeeDetailRequestList().get(i); - ChildCareFeeFilesResult invoiceFileResult = childCareFeeFilesService.getEntityById(childCareFeeDetailRequest.getFileId()); - if (Objects.isNull(invoiceFileResult) || Objects.isNull(invoiceFileResult.getFileImage())) { - throw ExceptionUtil.getException(null, "鍙戠エ鏂囦欢涓嶅瓨鍦�"); - } - if (childCareFeeDetailRequest.getApplyYearMonth().after(currentDate)) { - throw ExceptionUtil.getException(null, "鐢虫姤骞存湀涓嶈兘澶т簬褰撳墠绯荤粺骞存湀"); - } - if (claimsMonth < currentMonth && childCareFeeDetailRequest.getApplyYearMonth().getYear() != year) { - throw ExceptionUtil.getException(null, "褰撳墠鏈堜唤鍙兘鐢虫姤褰撳勾鐨勫彂绁�"); - } - if (claimsMonth > currentMonth && year - childCareFeeDetailRequest.getApplyYearMonth().getYear() > 1) { - throw ExceptionUtil.getException(null, "鍙兘鐢虫姤杩戜竴骞寸殑鍙戠エ"); - } + } + //鍒犻櫎涓嶅瓨鍦ㄧ殑鍙戞斁鏄庣粏鏁版嵁 + List<Long> detailIdList = childCareFeeApplyRequest.getChildCareFeeDetailRequestList().stream().filter(f -> f.getId() != null).map(ChildCareFeeDetailRequest::getId).collect(Collectors.toList()); + if (!Objects.isNull(detailIdList) && detailIdList.size() > 0) { + childCareFeeDetailMapper.delete(new QueryWrapper<ChildCareFeeDetailEntity>().eq("apply_id", childCareFeeApplyRequest.getId()).eq("type", ChildCareFeeDetailTypeEnum.鍙戠エ.getKey()).notIn("id", detailIdList)); + } + List<ChildCareFeeDetailEntity> FeeDetailEntitys = childCareFeeDetailMapper.selectList(new QueryWrapper<ChildCareFeeDetailEntity>().eq("apply_id", childCareFeeApplyRequest.getId())); + FeeDetailEntitys.stream().forEach(f -> { + String formatYearMonth = formatter.format(f.getApplyYearMonth()); + if (setYearMonth.contains(formatYearMonth)) { + throw ExceptionUtil.getException(null, "璇ョ敵璇峰凡瀛樺湪鐢虫姤骞存湀"+formatYearMonth); } - } else { - Integer count = childCareFeeDetailMapper.selectCount(new QueryWrapper<ChildCareFeeDetailEntity>().eq("apply_id", childCareFeeApplyRequest.getId()).eq("state", ChildCareFeeDetailStateEnum.宸插彂鏀�.getKey())); - if (count != null && count.intValue() > 0) { - throw ExceptionUtil.getException(null, "鐢宠鍙戠エ宸插彂鏀句笉鑳藉垹闄�"); + }); + + for (int i = 0; i < childCareFeeApplyRequest.getChildCareFeeDetailRequestList().size(); i++) { + ChildCareFeeDetailRequest childCareFeeDetailRequest = childCareFeeApplyRequest.getChildCareFeeDetailRequestList().get(i); + ChildCareFeeFilesResult invoiceFileResult = childCareFeeFilesService.getEntityById(childCareFeeDetailRequest.getFileId()); + if (Objects.isNull(invoiceFileResult) || Objects.isNull(invoiceFileResult.getFileImage())) { + throw ExceptionUtil.getException(null, "鍙戠エ鏂囦欢涓嶅瓨鍦�"); + } + if (childCareFeeDetailRequest.getApplyYearMonth().after(currentDate)) { + throw ExceptionUtil.getException(null, "鐢虫姤骞存湀涓嶈兘澶т簬褰撳墠绯荤粺骞存湀"); + } + if (claimsMonth < currentMonth && childCareFeeDetailRequest.getApplyYearMonth().getYear() != year) { + throw ExceptionUtil.getException(null, "褰撳墠鏈堜唤鍙兘鐢虫姤褰撳勾鐨勫彂绁�"); + } + if (claimsMonth > currentMonth && year - childCareFeeDetailRequest.getApplyYearMonth().getYear() > 1) { + throw ExceptionUtil.getException(null, "鍙兘鐢虫姤杩戜竴骞寸殑鍙戠エ"); } } + } } diff --git a/ServiceSiteCommon/src/main/java/com/seasky/nurseryFeesclaims/business/service/ChildCareFeeDetailServiceImpl.java b/ServiceSiteCommon/src/main/java/com/seasky/nurseryFeesclaims/business/service/ChildCareFeeDetailServiceImpl.java index 9f36d52..5e3c63c 100644 --- a/ServiceSiteCommon/src/main/java/com/seasky/nurseryFeesclaims/business/service/ChildCareFeeDetailServiceImpl.java +++ b/ServiceSiteCommon/src/main/java/com/seasky/nurseryFeesclaims/business/service/ChildCareFeeDetailServiceImpl.java @@ -1,23 +1,37 @@ package com.seasky.nurseryFeesclaims.business.service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.seasky.core.base.AbstractService; import com.seasky.core.common.Pagination; import com.seasky.core.ddd.utils.MapperUtils; import com.seasky.core.util.ExceptionUtil; +import com.seasky.nurseryFeesclaims.business.api.ChildCareFeeApplyService; +import com.seasky.nurseryFeesclaims.business.api.ChildCareFeeConfigService; import com.seasky.nurseryFeesclaims.business.api.ChildCareFeeDetailService; +import com.seasky.nurseryFeesclaims.business.api.ChildCareFeeFilesService; import com.seasky.nurseryFeesclaims.business.dao.mapper.ChildCareFeeDetailMapper; +import com.seasky.nurseryFeesclaims.business.entity.ChildCareFeeConfigEntity; import com.seasky.nurseryFeesclaims.business.entity.ChildCareFeeDetailEntity; import com.seasky.nurseryFeesclaims.business.enums.ChildCareFeeDetailStateEnum; +import com.seasky.nurseryFeesclaims.business.enums.ChildCareFeeDetailTypeEnum; +import com.seasky.nurseryFeesclaims.business.enums.ConfigKeyEnum; +import com.seasky.nurseryFeesclaims.web.dto.request.ChildCareFeeDetailHandSaveRequest; import com.seasky.nurseryFeesclaims.web.dto.request.ChildCareFeeDetailRequest; import com.seasky.nurseryFeesclaims.web.dto.request.QueryChildCareFeeDetailRequest; +import com.seasky.nurseryFeesclaims.web.dto.result.ChildCareFeeApplyResult; import com.seasky.nurseryFeesclaims.web.dto.result.ChildCareFeeDetailResult; +import com.seasky.nurseryFeesclaims.web.dto.result.ChildCareFeeFilesResult; import com.seasky.nurseryFeesclaims.web.dto.result.QueryStatisticsResult; import org.springframework.stereotype.Service; import org.springframework.util.ObjectUtils; -import java.util.List; +import javax.annotation.Resource; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.stream.Collectors; +import java.util.stream.Stream; /** * @author 锛歾jn @@ -26,10 +40,17 @@ import java.util.List; */ @Service public class ChildCareFeeDetailServiceImpl extends AbstractService<ChildCareFeeDetailEntity, ChildCareFeeDetailMapper> implements ChildCareFeeDetailService { + @Resource + ChildCareFeeApplyService childCareFeeApplyService; + @Resource + ChildCareFeeFilesService childCareFeeFilesService; + @Resource + ChildCareFeeConfigService childCareFeeConfigService; + @Override public ChildCareFeeDetailResult getChildCareFeeDetail(Long id) { ChildCareFeeDetailEntity detailEntity = this.mapper.selectById(id); - if (null == detailEntity){ + if (null == detailEntity) { throw ExceptionUtil.getException(null, "鍙戞斁鏄庣粏涓嶅瓨鍦�"); } return MapperUtils.INSTANCE.map(ChildCareFeeDetailResult.class, detailEntity); @@ -42,7 +63,7 @@ public class ChildCareFeeDetailServiceImpl extends AbstractService<ChildCareFeeD } Pagination<ChildCareFeeDetailResult> pagination = new Pagination<>(queryChildCareFeeDetailRequest.getPageIndex(), queryChildCareFeeDetailRequest.getPageSize()); Page<ChildCareFeeDetailResult> page = Pagination.toPage(pagination); - List<ChildCareFeeDetailResult> list= this.mapper.getChildCareFeeDetailListByApplyId(queryChildCareFeeDetailRequest.getApplyId()); + List<ChildCareFeeDetailResult> list = this.mapper.getChildCareFeeDetailListByApplyId(queryChildCareFeeDetailRequest.getApplyId()); page.setRecords(list); return Pagination.fromPage(page); } @@ -50,12 +71,12 @@ public class ChildCareFeeDetailServiceImpl extends AbstractService<ChildCareFeeD @Override public void cancelChildCareFeeDetail(Long id) { ChildCareFeeDetailEntity detailEntity = this.mapper.selectById(id); - if (null == detailEntity){ + if (null == detailEntity) { throw ExceptionUtil.getException(null, "鍙戞斁鏄庣粏涓嶅瓨鍦�"); } - if (detailEntity.getState() != ChildCareFeeDetailStateEnum.鏈彂鏀�.getKey()){ - throw ExceptionUtil.getException(null, "鍙厑璁镐綔搴�"+ChildCareFeeDetailStateEnum.鏈彂鏀�.getValue()+"鐨勫彂鏀炬槑缁�"); - }else { + if (detailEntity.getState() != ChildCareFeeDetailStateEnum.鏈彂鏀�.getKey()) { + throw ExceptionUtil.getException(null, "鍙厑璁镐綔搴�" + ChildCareFeeDetailStateEnum.鏈彂鏀�.getValue() + "鐨勫彂鏀炬槑缁�"); + } else { detailEntity.setState(ChildCareFeeDetailStateEnum.浣滃簾.getKey()); this.mapper.updateById(detailEntity); } @@ -64,19 +85,87 @@ public class ChildCareFeeDetailServiceImpl extends AbstractService<ChildCareFeeD @Override public void enableChildCareFeeDetail(Long id) { ChildCareFeeDetailEntity detailEntity = this.mapper.selectById(id); - if (null == detailEntity){ + if (null == detailEntity) { throw ExceptionUtil.getException(null, "鍙戞斁鏄庣粏涓嶅瓨鍦�"); } - if (detailEntity.getState() != ChildCareFeeDetailStateEnum.浣滃簾.getKey()){ - throw ExceptionUtil.getException(null, "鍙厑璁稿惎鐢�"+ChildCareFeeDetailStateEnum.浣滃簾.getValue()+"鐨勫彂鏀炬槑缁�"); - }else { + if (detailEntity.getState() != ChildCareFeeDetailStateEnum.浣滃簾.getKey()) { + throw ExceptionUtil.getException(null, "鍙厑璁稿惎鐢�" + ChildCareFeeDetailStateEnum.浣滃簾.getValue() + "鐨勫彂鏀炬槑缁�"); + } else { detailEntity.setState(ChildCareFeeDetailStateEnum.鏈彂鏀�.getKey()); this.mapper.updateById(detailEntity); } } @Override - public void saveChildCareFeeDetail(ChildCareFeeDetailRequest childCareFeeDetailRequest) { + public void saveChildCareFeeDetail(ChildCareFeeDetailHandSaveRequest childCareFeeDetailHandSaveRequest) { + checkChildCareFeeDetailRequest(childCareFeeDetailHandSaveRequest); + for (ChildCareFeeDetailRequest childCareFeeDetailRequest : childCareFeeDetailHandSaveRequest.getChildCareFeeDetailRequestList()){ + ChildCareFeeDetailEntity detailEntity = new ChildCareFeeDetailEntity(); + detailEntity.setId(IdWorker.getId()); + detailEntity.setApplyId(childCareFeeDetailHandSaveRequest.getApplyId()); + detailEntity.setApplyYearMonth(childCareFeeDetailRequest.getApplyYearMonth()); + detailEntity.setInvoiceAmount(childCareFeeDetailRequest.getInvoiceAmount()); + detailEntity.setPayAmount(childCareFeeDetailRequest.getPayAmount()); + detailEntity.setType(ChildCareFeeDetailTypeEnum.鎵嬪伐.getKey()); + detailEntity.setState(ChildCareFeeDetailStateEnum.鏈彂鏀�.getKey()); + this.mapper.insert(detailEntity); + } + } + + private void checkChildCareFeeDetailRequest(ChildCareFeeDetailHandSaveRequest childCareFeeDetailHandSaveRequest) { + ChildCareFeeApplyResult childCareFeeApply = childCareFeeApplyService.getChildCareFeeApply(childCareFeeDetailHandSaveRequest.getApplyId()); + if (null == childCareFeeApply) { + throw ExceptionUtil.getException(null, "璇ョ敵璇蜂笉瀛樺湪"); + } + //鑾峰彇绯荤粺褰撳墠鏃ユ湡 + Date currentDate = new Date(); + int currentMonth = currentDate.getMonth(); + int year = currentDate.getYear(); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM"); + List<String> listYearMonth = childCareFeeDetailHandSaveRequest.getChildCareFeeDetailRequestList().stream().map(ChildCareFeeDetailRequest::getApplyYearMonth).map(yearMonth -> formatter.format(yearMonth)).collect(Collectors.toList()); + Set<String> setYearMonth = new HashSet<>(listYearMonth); + if (listYearMonth.size() != setYearMonth.size()) { + throw ExceptionUtil.getException(null, "鐢虫姤骞存湀涓嶈兘閲嶅"); + } + List<ChildCareFeeDetailEntity> detailEntityList = this.mapper.selectList(new QueryWrapper<ChildCareFeeDetailEntity>().eq("apply_id", childCareFeeDetailHandSaveRequest.getApplyId())); + if (null != detailEntityList && !detailEntityList.isEmpty()) { + List<String> yearMonths = detailEntityList.stream().map(ChildCareFeeDetailEntity::getApplyYearMonth).map(yearMonth -> formatter.format(yearMonth)).collect(Collectors.toList()); + setYearMonth.stream().forEach(yearMonth -> { + if (yearMonths.contains(yearMonth)) { + throw ExceptionUtil.getException(null, "璇ョ敵璇峰凡瀛樺湪鐢虫姤骞存湀" + yearMonth); + } + }); + } + int claimsMonth = 0; + try { + ChildCareFeeConfigEntity monthConfig = childCareFeeConfigService.getEntityByKey(ConfigKeyEnum.鍏佽鎶ラ攢涓婂勾鍙戠エ鏈堜唤); + claimsMonth = Integer.parseInt(monthConfig.getValue()); + if (claimsMonth < 1 || claimsMonth > 12) { + throw ExceptionUtil.getException(null, "鍏佽鎶ラ攢涓婂勾鍙戠エ鏈堜唤閰嶇疆閿欒"); + } + } catch (Exception e) { + throw ExceptionUtil.getException(null, "鑾峰彇鍏佽鎶ラ攢涓婂勾鍙戠エ鏈堜唤寮傚父"); + } + + + for (int i = 0; i < childCareFeeDetailHandSaveRequest.getChildCareFeeDetailRequestList().size(); i++) { + ChildCareFeeDetailRequest childCareFeeDetailRequest = childCareFeeDetailHandSaveRequest.getChildCareFeeDetailRequestList().get(i); + if (null != childCareFeeDetailRequest.getFileId()) { + ChildCareFeeFilesResult invoiceFileResult = childCareFeeFilesService.getEntityById(childCareFeeDetailRequest.getFileId()); + if (Objects.isNull(invoiceFileResult) || Objects.isNull(invoiceFileResult.getFileImage())) { + throw ExceptionUtil.getException(null, "鍙戠エ鏂囦欢涓嶅瓨鍦�"); + } + } + if (childCareFeeDetailRequest.getApplyYearMonth().after(currentDate)) { + throw ExceptionUtil.getException(null, "鐢虫姤骞存湀涓嶈兘澶т簬褰撳墠绯荤粺骞存湀"); + } + if (claimsMonth < currentMonth && childCareFeeDetailRequest.getApplyYearMonth().getYear() != year) { + throw ExceptionUtil.getException(null, "褰撳墠鏈堜唤鍙兘鐢虫姤褰撳勾鐨勫彂绁�"); + } + if (claimsMonth > currentMonth && year - childCareFeeDetailRequest.getApplyYearMonth().getYear() > 1) { + throw ExceptionUtil.getException(null, "鍙兘鐢虫姤杩戜竴骞寸殑鍙戠エ"); + } + } } } diff --git a/ServiceSiteCommon/src/main/java/com/seasky/nurseryFeesclaims/web/controller/ChildCareFeeApplyController.java b/ServiceSiteCommon/src/main/java/com/seasky/nurseryFeesclaims/web/controller/ChildCareFeeApplyController.java index 566ad4a..398098c 100644 --- a/ServiceSiteCommon/src/main/java/com/seasky/nurseryFeesclaims/web/controller/ChildCareFeeApplyController.java +++ b/ServiceSiteCommon/src/main/java/com/seasky/nurseryFeesclaims/web/controller/ChildCareFeeApplyController.java @@ -2,6 +2,7 @@ package com.seasky.nurseryFeesclaims.web.controller; import com.seasky.base.data.dto.user.CurrentUserSignalOut; import com.seasky.core.base.BaseController; +import com.seasky.core.common.Pagination; import com.seasky.core.common.ResponseCode; import com.seasky.core.common.Result; import com.seasky.core.util.ExceptionUtil; @@ -11,6 +12,7 @@ import com.seasky.nurseryFeesclaims.business.utils.UserUtil; import com.seasky.nurseryFeesclaims.web.api.IChildCareFeeApplyController; import com.seasky.nurseryFeesclaims.web.dto.request.ChildCareFeeApplyAuditRequest; import com.seasky.nurseryFeesclaims.web.dto.request.ChildCareFeeApplyRequest; +import com.seasky.nurseryFeesclaims.web.dto.request.QueryChildCareFeeApplyRequest; import com.seasky.nurseryFeesclaims.web.dto.result.ChildCareFeeApplyRecordResult; import com.seasky.nurseryFeesclaims.web.dto.result.ChildCareFeeApplyRecordViewResult; import com.seasky.nurseryFeesclaims.web.dto.result.ChildCareFeeApplyResult; @@ -78,4 +80,10 @@ public class ChildCareFeeApplyController implements IChildCareFeeApplyController childCareFeeApplyService.rejectionChildCareFeeApply(childCareFeeApplyAuditRequest); return ok(ResponseCode.SUCCESS); } + + @Override + public Result<ChildCareFeeApplyRecordResult> pageList(QueryChildCareFeeApplyRequest queryChildCareFeeApplyRequest) { + Pagination<ChildCareFeeApplyRecordResult> childCareFeeApplyRecordResultPagination = childCareFeeApplyService.pageChildCareFeeApplyRecordList(queryChildCareFeeApplyRequest); + return ok(ResponseCode.SUCCESS, childCareFeeApplyRecordResultPagination); + } } -- GitLab