From 27a9da7c15c8c751c3de89681b6b7c85cb19811a Mon Sep 17 00:00:00 2001 From: fengguangyu <841028466@qq.com> Date: Mon, 21 Jun 2021 12:49:20 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B6=E5=85=A5=E7=BC=96=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/IInComePlanController.java | 81 ++++++++++++ .../baseconfig/personfund/PersonFundCmd.java | 12 +- .../dto/incomeplan/InComePlanCmd.java | 9 +- .../dto/incomeplan/InComePlanOut.java | 84 +++++++++++++ .../dto/incomeplan/IncomeplanQry.java | 36 ++++++ .../command/incomeplan/InComePlanSvr.java | 4 +- .../command/incomeplan/InComePlanSvrImpl.java | 3 +- .../query/InComePlan/InComePlanService.java | 49 ++++++++ .../domain/service/DBaseConfigSvrImpl.java | 9 +- .../dataobject/po/InComePlanPo.java | 2 +- .../db/mapper/table/InComePlanMapper.java | 26 ++++ .../db/mapper/xml/InComePlanMapper.xml | 29 +++++ .../reader/InComePlan/InComePlanConvert.java | 46 +++++++ .../InComePlanQueryServiceImpl.java | 108 ++++++++++++++++ .../controller/InComePlanController.java | 119 ++++++++++++++++++ 15 files changed, 609 insertions(+), 8 deletions(-) create mode 100644 ServiceSite/facade/src/main/java/com/seasky/projectplan/api/IInComePlanController.java create mode 100644 ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/incomeplan/InComePlanOut.java create mode 100644 ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/incomeplan/IncomeplanQry.java create mode 100644 ServiceSite/src/main/java/com/seasky/projectplan/application/query/InComePlan/InComePlanService.java create mode 100644 ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/reader/InComePlan/InComePlanConvert.java create mode 100644 ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/reader/InComePlan/InComePlanQueryServiceImpl.java create mode 100644 ServiceSite/src/main/java/com/seasky/projectplan/interfaces/controller/InComePlanController.java diff --git a/ServiceSite/facade/src/main/java/com/seasky/projectplan/api/IInComePlanController.java b/ServiceSite/facade/src/main/java/com/seasky/projectplan/api/IInComePlanController.java new file mode 100644 index 000000000..5f4a1b532 --- /dev/null +++ b/ServiceSite/facade/src/main/java/com/seasky/projectplan/api/IInComePlanController.java @@ -0,0 +1,81 @@ +package com.seasky.projectplan.api; + +import com.seasky.core.common.Result; +import com.seasky.projectplan.dto.fund.FundCmd; +import com.seasky.projectplan.dto.fund.FundOut; +import com.seasky.projectplan.dto.fund.FundQry; +import com.seasky.projectplan.dto.fund.FundTreeOut; +import com.seasky.projectplan.dto.incomeplan.InComePlanCmd; +import com.seasky.projectplan.dto.incomeplan.InComePlanOut; +import com.seasky.projectplan.dto.incomeplan.IncomeplanQry; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * 鏀跺叆缂栧埗API + * + * @author fengguangyu + * @date 2021/06/18 + */ +@FeignClient("projectplan-provider") +@RequestMapping("InComePlan") +public interface IInComePlanController { + + /** + * 鏂板鎴栦慨鏀规敹鍏ョ紪鍒朵功锛堝鏋滄槸鏂板骞跺惎鍔ㄦ祦绋嬶級 + * + * @param inComePlanCmd 鏀跺叆缂栧埗cmd + * @return {@link Result<Integer>} + */ + @PostMapping(path = "/saveInComePlan") + Result<Integer> saveInComePlan(InComePlanCmd inComePlanCmd); + + /** + * 閫昏緫鍒犻櫎鏀跺叆缂栧埗涔� + * + * @param ids id + * @return {@link Result<Integer>} + */ + @PostMapping(path = "/removeInComePlan") + Result<Integer> removeInComePlan(List<Long> ids); + + + //浠ヤ笅 Q绾� + /** + * 鏍规嵁褰撳墠鐧诲綍浜烘墍鍦ㄩ儴闂ㄨ幏鍙栧叾閮ㄩ棬鐨勬敹鍏ョ紪鍒朵俊鎭甫鍒嗛〉 + * + * @return {@link Result<List<InComePlanOut>>} + */ + @PostMapping(path = "/queryInComePlanPageByCurrentUserDept") + Result<InComePlanOut> queryInComePlanPageByCurrentUserDept(IncomeplanQry qry); + + /** + * 鏍规嵁ID鏌ヨ鏀跺叆缂栧埗淇℃伅 + * + * @return {@link Result<List<InComePlanOut>>} + */ + @PostMapping(path = "/queryInComeById") + Result<InComePlanOut> queryInComeById(IncomeplanQry qry); + + /** + * 杩斿洖鏀跺叆绫诲瀷鐨勬灇涓鹃泦鍚� + * + * @return {@link Result<List<InComePlanOut>>} + */ + @PostMapping(path = "/queryInComeTypeEnumList") + Result<InComePlanOut> queryInComeTypeEnumList(); + + /** + * 鏄剧ず鎵€鏈夌殑鏀跺叆缂栧埗淇℃伅甯﹀垎椤� + * + * @return {@link Result<List<InComePlanOut>>} + */ + @PostMapping(path = "/queryInComePlanPage") + Result<InComePlanOut> queryInComePlanPage(IncomeplanQry qry); +} diff --git a/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/baseconfig/personfund/PersonFundCmd.java b/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/baseconfig/personfund/PersonFundCmd.java index cd439b8de..5ebf1e5d8 100644 --- a/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/baseconfig/personfund/PersonFundCmd.java +++ b/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/baseconfig/personfund/PersonFundCmd.java @@ -1,7 +1,13 @@ package com.seasky.projectplan.dto.baseconfig.personfund; +import com.seasky.core.ddd.base.BaseDto; import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +import java.io.Serializable; /** * 浜虹粡璐筩md @@ -10,7 +16,10 @@ import lombok.Data; * @date 2021/05/24 */ @Data -public class PersonFundCmd { +@AllArgsConstructor +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class PersonFundCmd extends BaseDto implements Serializable { @ApiModelProperty("id") private Long id; @@ -23,6 +32,7 @@ public class PersonFundCmd { @ApiModelProperty("浜哄憳缁忔祹绉戠洰鍚嶇О") private String personFundName; + @ApiModelProperty("鍙娇鐢ㄩ儴闂╦son瀵硅薄") private String canUseDeptJson; diff --git a/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/incomeplan/InComePlanCmd.java b/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/incomeplan/InComePlanCmd.java index 9340c963d..e7df3f9bc 100644 --- a/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/incomeplan/InComePlanCmd.java +++ b/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/incomeplan/InComePlanCmd.java @@ -1,7 +1,11 @@ package com.seasky.projectplan.dto.incomeplan; +import com.seasky.core.ddd.base.BaseDto; import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; import java.math.BigDecimal; @@ -12,7 +16,10 @@ import java.math.BigDecimal; * @date 2021/06/10 */ @Data -public class InComePlanCmd { +@AllArgsConstructor +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class InComePlanCmd extends BaseDto { @ApiModelProperty("id") private Long id; diff --git a/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/incomeplan/InComePlanOut.java b/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/incomeplan/InComePlanOut.java new file mode 100644 index 000000000..252af13a3 --- /dev/null +++ b/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/incomeplan/InComePlanOut.java @@ -0,0 +1,84 @@ +package com.seasky.projectplan.dto.incomeplan; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.seasky.core.ddd.base.BaseDto; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * 鏀跺叆缂栧埗out绫� + * + * @author fengguangyu + * @date 2021/06/18 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class InComePlanOut extends BaseDto implements Serializable { + + /** + * 涓婚敭id + */ + private Long id; + + /** + * 鍏宠仈鐨勬祦绋嬪疄渚婭D + */ + private Long processId; + + /** + * 瀹℃牳鐘舵€� + */ + private String state; + + /** + * 鐢虫姤涔︾被鍨� + */ + private String planType; + + /** + * 鎬婚噾棰� + */ + private BigDecimal totalMoney; + + /** + * 閮ㄩ棬缂栧彿 + */ + private String departmentCode; + + /** + * 閮ㄩ棬鍚嶇О + */ + private String departmentName; + + /** + * 娴佺▼id + */ + private Long flowId; + + /** + * 骞翠唤 + */ + private Integer year; + + /** + * 鍏」鏀跺叆瀵瑰簲妯℃澘鎵€瀛樺唴瀹� + */ + private String otherJson; + + /** + * 鏀跺叆绫诲瀷鍚嶇О + */ + private String ComeTypeName; + + /** + * 鏀跺叆绫诲瀷鍊� + */ + private String ComeTypeVal; +} diff --git a/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/incomeplan/IncomeplanQry.java b/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/incomeplan/IncomeplanQry.java new file mode 100644 index 000000000..f59c83e2f --- /dev/null +++ b/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/incomeplan/IncomeplanQry.java @@ -0,0 +1,36 @@ +package com.seasky.projectplan.dto.incomeplan; + +import com.seasky.core.ddd.base.BaseDto; +import io.swagger.annotations.ApiModelProperty; +import lombok.*; + +import javax.validation.constraints.NotNull; + +/** + * 鏀跺叆缂栧埗 qry + * + * @author fengguangyu + * @date 2021/06/18 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +@EqualsAndHashCode(callSuper = true) +public class IncomeplanQry extends BaseDto { + + @ApiModelProperty("id") + private Long id; + + @ApiModelProperty("閮ㄩ棬缂栧彿") + private String departmentCode; + + @NotNull(message = "椤电爜涓嶈兘涓虹┖") + @ApiModelProperty(value = "椤电爜", example = "1") + private Integer pageIndex; + + @NotNull(message = "鍒嗛〉澶у皬涓嶈兘涓虹┖") + @ApiModelProperty(value = "鍒嗛〉澶у皬", example = "10") + private Integer pageSize; + +} diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/application/command/incomeplan/InComePlanSvr.java b/ServiceSite/src/main/java/com/seasky/projectplan/application/command/incomeplan/InComePlanSvr.java index 5aa899078..57a01117c 100644 --- a/ServiceSite/src/main/java/com/seasky/projectplan/application/command/incomeplan/InComePlanSvr.java +++ b/ServiceSite/src/main/java/com/seasky/projectplan/application/command/incomeplan/InComePlanSvr.java @@ -4,6 +4,7 @@ import com.seasky.core.common.Result; import com.seasky.projectplan.dto.incomeplan.InComePlanCmd; import org.springframework.validation.annotation.Validated; +import javax.validation.Valid; import java.util.List; /** @@ -21,7 +22,8 @@ public interface InComePlanSvr { * @param inComePlanCmd 鏀跺叆缂栧埗涔md * @return {@link Result <Integer>} */ - Integer saveInComePlan(InComePlanCmd inComePlanCmd); + @Validated + Integer saveInComePlan(@Valid InComePlanCmd inComePlanCmd); /** diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/application/command/incomeplan/InComePlanSvrImpl.java b/ServiceSite/src/main/java/com/seasky/projectplan/application/command/incomeplan/InComePlanSvrImpl.java index 27ca8857f..5cb8cc6e1 100644 --- a/ServiceSite/src/main/java/com/seasky/projectplan/application/command/incomeplan/InComePlanSvrImpl.java +++ b/ServiceSite/src/main/java/com/seasky/projectplan/application/command/incomeplan/InComePlanSvrImpl.java @@ -8,6 +8,7 @@ import com.seasky.projectplan.domain.service.ProjectInfoPlanDomainSvr; import com.seasky.projectplan.dto.baseconfig.budgetswitch.BudgetSwitchOut; import com.seasky.projectplan.dto.baseconfig.budgetswitch.BudgetSwitchQry; import com.seasky.projectplan.dto.incomeplan.InComePlanCmd; +import com.seasky.projectplan.dto.projectplan.ActionFlowCmd; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -51,7 +52,7 @@ public class InComePlanSvrImpl implements InComePlanSvr { * 鎻愪氦鐢虫姤涔� * */ //@Override - public void submitInComePlan(InComePlanCmd cmd) { + public void submitInComePlan(ActionFlowCmd cmd) { } diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/application/query/InComePlan/InComePlanService.java b/ServiceSite/src/main/java/com/seasky/projectplan/application/query/InComePlan/InComePlanService.java new file mode 100644 index 000000000..c3c2de60f --- /dev/null +++ b/ServiceSite/src/main/java/com/seasky/projectplan/application/query/InComePlan/InComePlanService.java @@ -0,0 +1,49 @@ +package com.seasky.projectplan.application.query.InComePlan; + +import com.seasky.core.base.BaseService; +import com.seasky.core.common.Pagination; +import com.seasky.core.common.Result; +import com.seasky.projectplan.dto.incomeplan.InComePlanOut; +import com.seasky.projectplan.dto.incomeplan.IncomeplanQry; +import com.seasky.projectplan.infrastructure.dataobject.po.InComePlanPo; +import org.springframework.validation.annotation.Validated; + +import java.util.List; + +/** + * 鏀跺叆缂栧埗鏌ヨ鏈嶅姟 + * + * @author fengguangyu + * @date 2021/06/18 + */ +@Validated +public interface InComePlanService extends BaseService<InComePlanPo> { + + /** + * 鏍规嵁褰撳墠鐧诲綍浜烘墍鍦ㄩ儴闂ㄨ幏鍙栧叾閮ㄩ棬鐨勬敹鍏ョ紪鍒朵俊鎭甫鍒嗛〉 + * + * @return {@link Result List<InComePlanOut>} + */ + Pagination<InComePlanOut> queryInComePlanPageByCurrentUserDept(IncomeplanQry qry); + + /** + * 鏍规嵁ID鏌ヨ鏀跺叆缂栧埗淇℃伅 + * + * @return {@link Result InComePlanOut} + */ + InComePlanOut queryInComeById(IncomeplanQry qry); + + /** + * 杩斿洖鏀跺叆绫诲瀷鐨勬灇涓鹃泦鍚� + * + * @return {@link Result List<InComePlanOut>} + */ + List<InComePlanOut> queryInComeTypeEnumList(); + + /** + * 鏄剧ず鎵€鏈夌殑鏀跺叆缂栧埗淇℃伅甯﹀垎椤� + * + * @return {@link Result List<InComePlanOut>} + */ + Pagination<InComePlanOut> queryInComePlanPage(IncomeplanQry qry); +} diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/domain/service/DBaseConfigSvrImpl.java b/ServiceSite/src/main/java/com/seasky/projectplan/domain/service/DBaseConfigSvrImpl.java index a777345e8..d6dfe9eb2 100644 --- a/ServiceSite/src/main/java/com/seasky/projectplan/domain/service/DBaseConfigSvrImpl.java +++ b/ServiceSite/src/main/java/com/seasky/projectplan/domain/service/DBaseConfigSvrImpl.java @@ -141,9 +141,12 @@ public class DBaseConfigSvrImpl implements DBaseConfigSvr { @Override public void savePersonFund(BaseConfigAgg agg) { - - baseConfigRepository.createPersonFund(agg); - baseConfigRepository.modifyPersonFund(agg); + PersonFundEntity entity = agg.getPersonFundEntities().get(0); + if(ObjectUtils.isEmpty(entity.getId())){ + baseConfigRepository.createPersonFund(agg); + }else { + baseConfigRepository.modifyPersonFund(agg); + } } @Override diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/dataobject/po/InComePlanPo.java b/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/dataobject/po/InComePlanPo.java index 63c866b09..16285ac5e 100644 --- a/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/dataobject/po/InComePlanPo.java +++ b/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/dataobject/po/InComePlanPo.java @@ -70,5 +70,5 @@ public class InComePlanPo extends BaseDataObject { * 鍏」鏀跺叆瀵瑰簲妯℃澘鎵€瀛樺唴瀹� */ @TableField("otherJson") - private Integer otherJson; + private String otherJson; } diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/db/mapper/table/InComePlanMapper.java b/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/db/mapper/table/InComePlanMapper.java index e79ef420c..0f605db5e 100644 --- a/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/db/mapper/table/InComePlanMapper.java +++ b/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/db/mapper/table/InComePlanMapper.java @@ -1,6 +1,11 @@ package com.seasky.projectplan.infrastructure.db.mapper.table; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.seasky.core.base.BaseMapper; +import com.seasky.micro.basedata.dto.OrganizationDTO; +import com.seasky.projectplan.dto.budgetinfo.BudgetInfoOut; +import com.seasky.projectplan.dto.incomeplan.InComePlanOut; +import com.seasky.projectplan.dto.incomeplan.IncomeplanQry; import com.seasky.projectplan.infrastructure.dataobject.po.FundPo; import com.seasky.projectplan.infrastructure.dataobject.po.InComePlanPo; import com.seasky.projectplan.infrastructure.dataobject.qo.FundQo; @@ -42,4 +47,25 @@ public interface InComePlanMapper extends BaseMapper<InComePlanPo> { * @return int */ int logicDelete(@Param("pm") InComePlanPo inComePlanPo); + + /** + * 鏍规嵁褰撳墠鐧诲綍浜烘墍鍦ㄩ儴闂ㄨ幏鍙栧叾閮ㄩ棬鐨勬敹鍏ョ紪鍒朵俊鎭甫鍒嗛〉 + * + * @return {@link Page < InComePlanPo >} + */ + Page<InComePlanPo> queryInComePlanPageByCurrentUserDept(Page<InComePlanOut> page, @Param("pm") IncomeplanQry inComePlanQo, @Param("pmO") List<OrganizationDTO> Organization); + + /** + * 鏍规嵁ID鏌ヨ鏀跺叆缂栧埗淇℃伅 + * + * @return {@link InComePlanPo} + */ + InComePlanPo queryInComeById(@Param("pm") IncomeplanQry inComePlanQo); + + /** + * 鏄剧ず鎵€鏈夌殑鏀跺叆缂栧埗淇℃伅甯﹀垎椤� + * + * @return {@link Page < InComePlanPo >} + */ + Page<InComePlanPo> queryInComePlanPage(Page<InComePlanOut> page, @Param("pm") IncomeplanQry inComePlanQo); } diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/db/mapper/xml/InComePlanMapper.xml b/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/db/mapper/xml/InComePlanMapper.xml index 8b4698cfa..521b2d19f 100644 --- a/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/db/mapper/xml/InComePlanMapper.xml +++ b/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/db/mapper/xml/InComePlanMapper.xml @@ -32,4 +32,33 @@ </where> </select> + <select id="queryInComePlanPageByCurrentUserDept" resultType="com.seasky.projectplan.infrastructure.dataobject.po.InComePlanPo"> + select * from InCome_Plan + <where> + available = 'YES' + <if test="pmO != null "> + and departmentCode in + <foreach collection="pmO" item="item" index="index" open="(" close=")" separator=","> + #{item.code} + </foreach> + </if> + </where> + </select> + + <select id="queryInComeById" resultType="com.seasky.projectplan.infrastructure.dataobject.po.InComePlanPo"> + select * from InCome_Plan + <where> + available = 'YES' + <if test="pm.id != null"> + and id = #{pm.id} + </if> + </where> + </select> + + <select id="queryInComePlanPage" resultType="com.seasky.projectplan.infrastructure.dataobject.po.InComePlanPo"> + select * from InCome_Plan + <where> + available = 'YES' + </where> + </select> </mapper> \ No newline at end of file diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/reader/InComePlan/InComePlanConvert.java b/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/reader/InComePlan/InComePlanConvert.java new file mode 100644 index 000000000..b34ee50b6 --- /dev/null +++ b/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/reader/InComePlan/InComePlanConvert.java @@ -0,0 +1,46 @@ +package com.seasky.projectplan.infrastructure.reader.InComePlan; + +import com.seasky.core.ddd.utils.MapperUtils; +import com.seasky.projectplan.dto.budgetinfo.BudgetInfoOut; +import com.seasky.projectplan.dto.budgetinfo.BudgetInfoTreeOut; +import com.seasky.projectplan.dto.fund.FundOut; +import com.seasky.projectplan.dto.incomeplan.InComePlanOut; +import com.seasky.projectplan.infrastructure.dataobject.po.BudgetInfoPo; +import com.seasky.projectplan.infrastructure.dataobject.po.InComePlanPo; + +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +/** + * 鏀跺叆缂栧埗宸ュ巶绫� + * + * @author fengguangyu + * @date 2021/05/25 + */ +public class InComePlanConvert { + + + /** + * po绫昏浆out绫� + * + * @param inComePlanPo 鏀跺叆缂栧埗po绫� + * @return {@link InComePlanOut} + */ + public static InComePlanOut poToOut(InComePlanPo inComePlanPo){ + return MapperUtils.INSTANCE.map(InComePlanOut.class,inComePlanPo); + } + + + /** + * pos绫昏浆out绫籹 + * + * @param inComePlanPo 鏀跺叆缂栧埗鍒楄〃 + * @return {@link List<FundOut>} + */ + public static List<InComePlanOut> listPoToListOut(List<InComePlanPo> inComePlanPo){ + return MapperUtils.INSTANCE.mapAsList(InComePlanOut.class,inComePlanPo); + } + +} diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/reader/InComePlan/InComePlanQueryServiceImpl.java b/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/reader/InComePlan/InComePlanQueryServiceImpl.java new file mode 100644 index 000000000..3a3096f07 --- /dev/null +++ b/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/reader/InComePlan/InComePlanQueryServiceImpl.java @@ -0,0 +1,108 @@ +package com.seasky.projectplan.infrastructure.reader.InComePlan; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.seasky.core.base.AbstractService; +import com.seasky.core.common.Pagination; +import com.seasky.micro.basedata.api.IUser; +import com.seasky.micro.basedata.dto.OrganizationDTO; +import com.seasky.projectplan.application.query.InComePlan.InComePlanService; +import com.seasky.projectplan.domain.aggregate.common.InComePlanEnum; +import com.seasky.projectplan.dto.budgetinfo.BudgetInfoOut; +import com.seasky.projectplan.dto.budgetinfo.BudgetInfoQry; +import com.seasky.projectplan.dto.incomeplan.InComePlanOut; +import com.seasky.projectplan.dto.incomeplan.IncomeplanQry; +import com.seasky.projectplan.infrastructure.dataobject.po.InComePlanPo; +import com.seasky.projectplan.infrastructure.db.mapper.table.BudgetInfoMapper; +import com.seasky.projectplan.infrastructure.db.mapper.table.InComePlanMapper; +import com.seasky.projectplan.infrastructure.reader.budgetinfo.BudgetInfoConvert; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; + +/** + * 鏀跺叆缂栧埗impl + * + * @author fengguangyu + * @date 2021/06/21 + */ +@Service +public class InComePlanQueryServiceImpl extends AbstractService<InComePlanPo, InComePlanMapper> implements InComePlanService { + + @Resource + InComePlanMapper mapper; + + @Resource + IUser iUser; + + /** + * 鏍规嵁褰撳墠鐧诲綍浜烘墍鍦ㄩ儴闂ㄨ幏鍙栧叾閮ㄩ棬鐨勬敹鍏ョ紪鍒朵俊鎭甫鍒嗛〉 + * + * @return {@link Pagination < InComePlanOut >} + */ + @Override + public Pagination<InComePlanOut> queryInComePlanPageByCurrentUserDept(IncomeplanQry qry) { + + List<OrganizationDTO> organizationList = iUser.getCurrent("").getData().get(0).getOrganizationList(); + Page<InComePlanOut> page = new Page<>(qry.getPageIndex(), qry.getPageSize()); + List<InComePlanOut> records = InComePlanConvert.listPoToListOut(mapper.queryInComePlanPageByCurrentUserDept(page, qry,organizationList).getRecords()); + page.setRecords(records); + return Pagination.fromPage(page); + } + + /** + * 鏍规嵁ID鏌ヨ鏀跺叆缂栧埗淇℃伅 + * + * @return {@link InComePlanOut} + */ + @Override + public InComePlanOut queryInComeById(IncomeplanQry qry) { + InComePlanPo records = mapper.queryInComeById(qry); + return InComePlanConvert.poToOut(records); + } + + /** + * 杩斿洖鏀跺叆绫诲瀷鐨勬灇涓鹃泦鍚� + * + * @return {@link List < InComePlanOut >} + */ + @Override + public List<InComePlanOut> queryInComeTypeEnumList() { + List<InComePlanOut> list = new ArrayList(); + InComePlanOut tmp = new InComePlanOut(); + tmp.setComeTypeName(InComePlanEnum.JIAOYU.key()); + tmp.setComeTypeVal(InComePlanEnum.JIAOYU.val()); + list.add(tmp); + tmp = new InComePlanOut(); + tmp.setComeTypeName(InComePlanEnum.BAXIANG.key()); + tmp.setComeTypeVal(InComePlanEnum.BAXIANG.val()); + list.add(tmp); + tmp = new InComePlanOut(); + tmp.setComeTypeName(InComePlanEnum.QITA.key()); + tmp.setComeTypeVal(InComePlanEnum.QITA.val()); + list.add(tmp); + tmp = new InComePlanOut(); + tmp.setComeTypeName(InComePlanEnum.KEYAN.key()); + tmp.setComeTypeVal(InComePlanEnum.KEYAN.val()); + list.add(tmp); + tmp = new InComePlanOut(); + tmp.setComeTypeName(InComePlanEnum.JIAOWEI.key()); + tmp.setComeTypeVal(InComePlanEnum.JIAOWEI.val()); + list.add(tmp); + return list; + } + + /** + * 鏄剧ず鎵€鏈夌殑鏀跺叆缂栧埗淇℃伅甯﹀垎椤� + * + * @return {@link Pagination < InComePlanOut >} + */ + @Override + public Pagination<InComePlanOut> queryInComePlanPage(IncomeplanQry qry) { + Page<InComePlanOut> page = new Page<>(qry.getPageIndex(), qry.getPageSize()); + List<InComePlanOut> records = InComePlanConvert.listPoToListOut(mapper.queryInComePlanPage(page, qry).getRecords()); + page.setRecords(records); + return Pagination.fromPage(page); + } +} diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/interfaces/controller/InComePlanController.java b/ServiceSite/src/main/java/com/seasky/projectplan/interfaces/controller/InComePlanController.java new file mode 100644 index 000000000..b8bd31e59 --- /dev/null +++ b/ServiceSite/src/main/java/com/seasky/projectplan/interfaces/controller/InComePlanController.java @@ -0,0 +1,119 @@ +package com.seasky.projectplan.interfaces.controller; + +import com.seasky.core.common.ResponseCode; +import com.seasky.core.common.Result; +import com.seasky.projectplan.api.IFund; +import com.seasky.projectplan.api.IInComePlanController; +import com.seasky.projectplan.application.command.fund.FundSvr; +import com.seasky.projectplan.application.command.incomeplan.InComePlanSvr; +import com.seasky.projectplan.application.query.InComePlan.InComePlanService; +import com.seasky.projectplan.application.query.budgetinfo.BudgetInfoQueryService; +import com.seasky.projectplan.application.query.fund.FundQueryService; +import com.seasky.projectplan.dto.fund.FundCmd; +import com.seasky.projectplan.dto.fund.FundOut; +import com.seasky.projectplan.dto.fund.FundQry; +import com.seasky.projectplan.dto.fund.FundTreeOut; +import com.seasky.projectplan.dto.incomeplan.InComePlanCmd; +import com.seasky.projectplan.dto.incomeplan.InComePlanOut; +import com.seasky.projectplan.dto.incomeplan.IncomeplanQry; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +import static com.seasky.core.common.Response.ok; + +/** + * 鏀跺叆缂栧埗鎺у埗鍣� + * + * @author fengguangyu + * @date 2021/06/21 + */ +@Api(tags = "鏀跺叆缂栧埗绠$悊") +@RestController +public class InComePlanController extends BaseController implements IInComePlanController { + + @Resource + private InComePlanSvr inComePlanSvr; + + @Resource + private InComePlanService inComePlanService; + + //浠ヤ笅 C绾� + + /** + * 鏂板鎴栦慨鏀规敹鍏ョ紪鍒朵功锛堝鏋滄槸鏂板骞跺惎鍔ㄦ祦绋嬶級 + * + * @param inComePlanCmd s鏀跺叆缂栧埗cmd + * @return {@link Result<Integer>} + */ + @ApiOperation("1.鏂板鎴栦慨鏀规敹鍏ョ紪鍒朵功") + @Override + public Result<Integer> saveInComePlan(@RequestBody InComePlanCmd inComePlanCmd) { + return ok(ResponseCode.SUCCESS, inComePlanSvr.saveInComePlan(inComePlanCmd)); + } + + /** + * 閫昏緫鍒犻櫎鏀跺叆缂栧埗涔� + * + * @param ids id + * @return {@link Result<Integer>} + */ + @ApiOperation("2.閫昏緫鍒犻櫎鏀跺叆缂栧埗涔�") + @Override + public Result<Integer> removeInComePlan(@RequestBody List<Long> ids) { + return ok(ResponseCode.SUCCESS, inComePlanSvr.removeInComePlan(ids)); + } + + //浠ヤ笅 Q绾� + /** + * 鏍规嵁褰撳墠鐧诲綍浜烘墍鍦ㄩ儴闂ㄨ幏鍙栧叾閮ㄩ棬鐨勬敹鍏ョ紪鍒朵俊鎭甫鍒嗛〉 + * + * @return {@link Result<FundOut>} + */ + @ApiOperation("1-1.鏍规嵁褰撳墠鐧诲綍浜烘墍鍦ㄩ儴闂ㄨ幏鍙栧叾閮ㄩ棬鐨勬敹鍏ョ紪鍒朵俊鎭甫鍒嗛〉") + @Override + public Result<InComePlanOut> queryInComePlanPageByCurrentUserDept(IncomeplanQry qry) { + return ok(ResponseCode.SUCCESS, inComePlanService.queryInComePlanPageByCurrentUserDept(qry)); + } + + /** + * 鏍规嵁ID鏌ヨ鏀跺叆缂栧埗淇℃伅 + * + * @return {@link Result<FundOut>} + */ + @ApiOperation("1-2.鏍规嵁ID鏌ヨ鏀跺叆缂栧埗淇℃伅") + @Override + public Result<InComePlanOut> queryInComeById(IncomeplanQry qry) { + return ok(ResponseCode.SUCCESS, inComePlanService.queryInComeById(qry)); + } + + /** + * 杩斿洖鏀跺叆绫诲瀷鐨勬灇涓鹃泦鍚� + * + * @return {@link Result<FundOut>} + */ + @ApiOperation("1-3.杩斿洖鏀跺叆绫诲瀷鐨勬灇涓鹃泦鍚�") + @Override + public Result<InComePlanOut> queryInComeTypeEnumList() { + return ok(ResponseCode.SUCCESS, inComePlanService.queryInComeTypeEnumList()); + } + + /** + * 鏍规嵁褰撳墠鐧诲綍浜烘墍鍦ㄩ儴闂ㄨ幏鍙栧叾閮ㄩ棬鐨勬敹鍏ョ紪鍒朵俊鎭甫鍒嗛〉 + * + * @return {@link Result<FundOut>} + */ + @ApiOperation("1-4.鏄剧ず鎵€鏈夌殑鏀跺叆缂栧埗淇℃伅甯﹀垎椤�") + @Override + public Result<InComePlanOut> queryInComePlanPage(IncomeplanQry qry) { + return ok(ResponseCode.SUCCESS, inComePlanService.queryInComePlanPage(qry)); + } +} -- GitLab