diff --git a/ServiceSite/facade/src/main/java/com/seasky/dbprojectplanmanage/dto/out/AmountRecordOut.java b/ServiceSite/facade/src/main/java/com/seasky/dbprojectplanmanage/dto/out/AmountRecordOut.java new file mode 100644 index 0000000000000000000000000000000000000000..3eb919642944d38230c211d5544096b457df97aa --- /dev/null +++ b/ServiceSite/facade/src/main/java/com/seasky/dbprojectplanmanage/dto/out/AmountRecordOut.java @@ -0,0 +1,39 @@ +package com.seasky.dbprojectplanmanage.dto.out; + +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; + +/** + * Description锛� + * + * @author 灏忓懆(喔� 鈥� 虁 _ 鈥� 虂)喔� + * @since 2023/2/17 13:00 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class AmountRecordOut { + + @ApiModelProperty("椤圭洰鍚嶇О") + private String projectName; + + @ApiModelProperty("椤圭洰缂栧彿") + private String projectCode; + + @ApiModelProperty("椤圭洰绫诲瀷") + private String projectType; + + @ApiModelProperty("鎵€灞為儴闂�") + private String departmentName; + + @ApiModelProperty("璐熻矗浜�") + private String ownerName; + + @ApiModelProperty("棰勭畻閲戦") + private BigDecimal planMoney; + +} diff --git a/ServiceSite/facade/src/main/java/com/seasky/dbprojectplanmanage/dto/out/DepartmentOut.java b/ServiceSite/facade/src/main/java/com/seasky/dbprojectplanmanage/dto/out/DepartmentOut.java new file mode 100644 index 0000000000000000000000000000000000000000..032dbb7a1c97518d1d99d94dd8d14a7d1ef5ba4c --- /dev/null +++ b/ServiceSite/facade/src/main/java/com/seasky/dbprojectplanmanage/dto/out/DepartmentOut.java @@ -0,0 +1,24 @@ +package com.seasky.dbprojectplanmanage.dto.out; + +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * Description锛� + * + * @author 灏忓懆(喔� 鈥� 虁 _ 鈥� 虂)喔� + * @since 2023/2/17 10:33 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class DepartmentOut { + + @ApiModelProperty("椤圭洰缂栧彿") + private String departmentCode; + + @ApiModelProperty("椤圭洰鍚嶇О") + private String departmentName; +} diff --git a/ServiceSite/facade/src/main/java/com/seasky/dbprojectplanmanage/dto/qry/ProjectPredictionRecordQry.java b/ServiceSite/facade/src/main/java/com/seasky/dbprojectplanmanage/dto/qry/ProjectPredictionRecordQry.java new file mode 100644 index 0000000000000000000000000000000000000000..bda4e0eacb70113076359661f0c9da6636f31382 --- /dev/null +++ b/ServiceSite/facade/src/main/java/com/seasky/dbprojectplanmanage/dto/qry/ProjectPredictionRecordQry.java @@ -0,0 +1,43 @@ +package com.seasky.dbprojectplanmanage.dto.qry; + +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.validation.Valid; +import javax.validation.constraints.NotNull; + +/** + * Description锛� + * + * @author 灏忓懆(喔� 鈥� 虁 _ 鈥� 虂)喔� + * @since 2023/2/17 10:15 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class ProjectPredictionRecordQry { + + @ApiModelProperty("骞翠唤") + private Integer year; + + @ApiModelProperty("椤圭洰缂栧彿") + private String projectCode; + + @ApiModelProperty("閮ㄩ棬缂栧彿") + private String departmentCode; + + @ApiModelProperty("椤圭洰绫诲瀷") + private String projectType; + + @NotNull(message = "椤电爜涓嶈兘涓虹┖") + @ApiModelProperty(value = "椤电爜", example = "1") + @Valid + private Integer pageIndex; + + @NotNull(message = "鍒嗛〉澶у皬涓嶈兘涓虹┖") + @ApiModelProperty(value = "鍒嗛〉澶у皬", example = "10") + @Valid + private Integer pageSize; +} diff --git a/ServiceSite/src/main/java/com/seasky/dbprojectplanmanage/application/query/projectPlan/ProjectPlanQuerySvr.java b/ServiceSite/src/main/java/com/seasky/dbprojectplanmanage/application/query/projectPlan/ProjectPlanQuerySvr.java index fb9d561c03ed66a0e4d0297af461190f52a32336..4e8b4e944e3531ef0e6a239f79960589d830c1a6 100644 --- a/ServiceSite/src/main/java/com/seasky/dbprojectplanmanage/application/query/projectPlan/ProjectPlanQuerySvr.java +++ b/ServiceSite/src/main/java/com/seasky/dbprojectplanmanage/application/query/projectPlan/ProjectPlanQuerySvr.java @@ -5,10 +5,7 @@ import com.seasky.core.common.Result; import com.seasky.dbprojectplanmanage.domain.aggregate.projectPlanAggregate.ProjectPlanAgg; import com.seasky.dbprojectplanmanage.dto.cmd.ProjectPlanEducationCmd; import com.seasky.dbprojectplanmanage.dto.out.*; -import com.seasky.dbprojectplanmanage.dto.qry.ProjectPlanByAuditorQry; -import com.seasky.dbprojectplanmanage.dto.qry.ProjectPlanByOwnerQry; -import com.seasky.dbprojectplanmanage.dto.qry.ProjectPlanQry; -import com.seasky.dbprojectplanmanage.dto.qry.ProjectPredictionAmountQry; +import com.seasky.dbprojectplanmanage.dto.qry.*; import org.springframework.validation.annotation.Validated; import javax.validation.Valid; @@ -135,4 +132,20 @@ public interface ProjectPlanQuerySvr { * @return {@link Object} */ BigDecimal queryAmountBySapCodeAndControlCode(ProjectPredictionAmountQry projectPredictionAmountQry); + + /** + * 鏌ヨdepartment + * + * @return {@link DepartmentOut} + */ + List<DepartmentOut> queryDepartment(); + + /** + * 鏌ヨ璁板綍鏁伴噺 + * + * @param projectPredictionRecordQry 椤圭洰棰勬祴璁板綍qry + * @return {@link Object} + */ + @Validated + Pagination<AmountRecordOut> queryAmountRecord(@Valid ProjectPredictionRecordQry projectPredictionRecordQry); } diff --git a/ServiceSite/src/main/java/com/seasky/dbprojectplanmanage/infrastructure/db/mapper/table/IProjectPredictionMapper.java b/ServiceSite/src/main/java/com/seasky/dbprojectplanmanage/infrastructure/db/mapper/table/IProjectPredictionMapper.java index b165f0be40ce7b3822dbfd8b8ce015e73303168a..0bf98de6c89321f9c6bc368110090ff47663cd66 100644 --- a/ServiceSite/src/main/java/com/seasky/dbprojectplanmanage/infrastructure/db/mapper/table/IProjectPredictionMapper.java +++ b/ServiceSite/src/main/java/com/seasky/dbprojectplanmanage/infrastructure/db/mapper/table/IProjectPredictionMapper.java @@ -1,11 +1,15 @@ package com.seasky.dbprojectplanmanage.infrastructure.db.mapper.table; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.seasky.dbprojectplanmanage.dto.out.AmountRecordOut; +import com.seasky.dbprojectplanmanage.dto.qry.ProjectPredictionRecordQry; import com.seasky.dbprojectplanmanage.infrastructure.dataobject.po.ProjectPredictionPo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.math.BigDecimal; +import java.util.List; /** * Description锛� @@ -16,4 +20,6 @@ import java.math.BigDecimal; @Mapper public interface IProjectPredictionMapper extends BaseMapper<ProjectPredictionPo> { BigDecimal queryCurrentAmountApprovedByProjectPlanBookId(@Param("id") Long projectPlanBookId); + + Page<AmountRecordOut> queryAmountRecord(Page<AmountRecordOut> page,@Param("pm") ProjectPredictionRecordQry projectPredictionRecordQry); } diff --git a/ServiceSite/src/main/java/com/seasky/dbprojectplanmanage/infrastructure/db/mapper/xml/IProjectPredictionMapper.xml b/ServiceSite/src/main/java/com/seasky/dbprojectplanmanage/infrastructure/db/mapper/xml/IProjectPredictionMapper.xml index 14c0a80e8a78664b8e2221f5e7134bf1316be4d9..fe67f3a795bdd54c09a530bbb1d0c9de36982818 100644 --- a/ServiceSite/src/main/java/com/seasky/dbprojectplanmanage/infrastructure/db/mapper/xml/IProjectPredictionMapper.xml +++ b/ServiceSite/src/main/java/com/seasky/dbprojectplanmanage/infrastructure/db/mapper/xml/IProjectPredictionMapper.xml @@ -5,4 +5,30 @@ <select id="queryCurrentAmountApprovedByProjectPlanBookId" resultType="java.math.BigDecimal"> select sum(currentAmountApproved) currentAmountApproved from t_project_prediction where available='YES' and project_plan_book_id = #{id} </select> + + <select id="queryAmountRecord" resultType="com.seasky.dbprojectplanmanage.dto.out.AmountRecordOut"> + select p1.project_code projectCode, + p2.projectName projectName, + p2.projectType projectType, + p2.departmentName departmentName, + p2.ownerName ownerName, + p2.planMoney planMoney + from t_project_prediction p1 INNER JOIN t_projectPlan p2 on p1.project_plan_book_id = p2.id + <where> + p1.available='YES' and p2.available='YES' + <if test="pm.year != null and pm.year != ''"> + and p2.year = #{pm.year} + </if> + <if test="pm.projectCode != null and pm.projectCode != ''"> + and p1.project_code like concat('%',#{pm.projectCode},'%') + </if> + <if test="pm.departmentCode != null and pm.departmentCode != ''"> + and p2.departmentCode = #{pm.departmentCode} + </if> + <if test="pm.projectType != null and pm.projectType != ''"> + and p2.projectType = #{pm.projectType} + </if> + </where> + + </select> </mapper> \ No newline at end of file diff --git a/ServiceSite/src/main/java/com/seasky/dbprojectplanmanage/infrastructure/reader/projectPlan/ProjectPlanQuerySvrImpl.java b/ServiceSite/src/main/java/com/seasky/dbprojectplanmanage/infrastructure/reader/projectPlan/ProjectPlanQuerySvrImpl.java index 18c28ba28b6dab51f25178cc934b113437cce625..c7696a56afbe21fa85de9f882a6b7843ea3b7b6d 100644 --- a/ServiceSite/src/main/java/com/seasky/dbprojectplanmanage/infrastructure/reader/projectPlan/ProjectPlanQuerySvrImpl.java +++ b/ServiceSite/src/main/java/com/seasky/dbprojectplanmanage/infrastructure/reader/projectPlan/ProjectPlanQuerySvrImpl.java @@ -11,10 +11,7 @@ import com.seasky.core.util.ExceptionUtil; import com.seasky.dbprojectplanmanage.application.query.projectPlan.ProjectPlanQuerySvr; import com.seasky.dbprojectplanmanage.dto.cmd.*; import com.seasky.dbprojectplanmanage.dto.out.*; -import com.seasky.dbprojectplanmanage.dto.qry.ProjectPlanByAuditorQry; -import com.seasky.dbprojectplanmanage.dto.qry.ProjectPlanByOwnerQry; -import com.seasky.dbprojectplanmanage.dto.qry.ProjectPlanQry; -import com.seasky.dbprojectplanmanage.dto.qry.ProjectPredictionAmountQry; +import com.seasky.dbprojectplanmanage.dto.qry.*; import com.seasky.dbprojectplanmanage.infrastructure.dataobject.po.*; import com.seasky.dbprojectplanmanage.infrastructure.db.mapper.table.*; import com.seasky.dbprojectplanmanage.infrastructure.rpc.FlowRpc; @@ -701,4 +698,32 @@ public class ProjectPlanQuerySvrImpl implements ProjectPlanQuerySvr { } return projectPredictionControlMapper.queryAmountBySapCodeAndControlCode(projectPredictionAmountQry); } + + /** + * 鏌ヨdepartment + * + * @return {@link DepartmentOut} + */ + @Override + public List<DepartmentOut> queryDepartment() { + QueryWrapper<ProjectPlanPo> projectPlanPoQueryWrapper = new QueryWrapper<>(); + projectPlanPoQueryWrapper.select("departmentCode","departmentName"); + List<ProjectPlanPo> projectPlanPos = IProjectPlanMapper.selectList(projectPlanPoQueryWrapper); + return MapperUtils.INSTANCE.mapAsList(DepartmentOut.class, projectPlanPos); + } + + /** + * 鏌ヨ鏍告嫧璁板綍 + * + * @param projectPredictionRecordQry 椤圭洰棰勬祴璁板綍qry + * @return {@link AmountRecordOut} + */ + @Override + public Pagination<AmountRecordOut> queryAmountRecord(ProjectPredictionRecordQry projectPredictionRecordQry) { + Page<AmountRecordOut> page = new Page<>(projectPredictionRecordQry.getPageIndex(), projectPredictionRecordQry.getPageSize()); + Page<AmountRecordOut> amountRecordOutPage = projectPredictionMapper.queryAmountRecord(page, projectPredictionRecordQry); + return Pagination.fromPage(amountRecordOutPage); + } + + } diff --git a/ServiceSite/src/main/java/com/seasky/dbprojectplanmanage/interfaces/controller/ProjectPlanController.java b/ServiceSite/src/main/java/com/seasky/dbprojectplanmanage/interfaces/controller/ProjectPlanController.java index 63b2c8643c9332186ec60df8d4e79ee6b891240e..6cc1a24dda9dcf8a4f11df57da8ea659152b0810 100644 --- a/ServiceSite/src/main/java/com/seasky/dbprojectplanmanage/interfaces/controller/ProjectPlanController.java +++ b/ServiceSite/src/main/java/com/seasky/dbprojectplanmanage/interfaces/controller/ProjectPlanController.java @@ -31,6 +31,7 @@ import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import java.math.BigDecimal; import java.util.List; @@ -420,4 +421,27 @@ public class ProjectPlanController implements IProjectPlanController { public Result<BigDecimal> queryAmountBySapCodeAndControlCode(@RequestBody ProjectPredictionAmountQry projectPredictionAmountQry){ return ok(ResponseCode.SUCCESS,projectPlanQuerySvr.queryAmountBySapCodeAndControlCode(projectPredictionAmountQry)); } + + /** + * 鏌ヨ閮ㄩ棬 + * + * @return {@link Result}<{@link DepartmentOut}> + */ + @ApiOperation("鏌ヨ鎵€鏈夌殑閮ㄩ棬缂栧彿鍜岄儴闂ㄥ悕绉�") + @PostMapping(path = "queryDepartment") + public Result<DepartmentOut> queryDepartment(){ + return ok(ResponseCode.SUCCESS,projectPlanQuerySvr.queryDepartment()); + } + + /** + * 鏌ヨ鏍告嫧璁板綍 + * + * @param projectPredictionRecordQry 椤圭洰棰勬祴璁板綍qry. + * @return {@link Result}<{@link AmountRecordOut}> + */ + @ApiOperation("鏌ヨ鏍告嫧璁板綍") + @PostMapping(path = "queryAmountRecord") + public Result<AmountRecordOut> queryAmountRecord(@RequestBody ProjectPredictionRecordQry projectPredictionRecordQry){ + return ok(ResponseCode.SUCCESS,projectPlanQuerySvr.queryAmountRecord(projectPredictionRecordQry)); + } }