platformx-device-api/src/main/java/com/by4cloud/platformx/device/constant/MaxSizeContant.java
@@ -15,6 +15,10 @@ */ String PLAN_NUM = "PLAN_NUM"; /** * 年度投资计划编号 */ String TZPLAN_NUM = "TZPLAN_NUM"; /** * 合同编号 */ String CONTRACT_NUM = "CONTRACT_NUM"; platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/InvestmentPlan.java
New file @@ -0,0 +1,77 @@ package com.by4cloud.platformx.device.entity; import com.by4cloud.platformx.common.data.mybatis.BaseModel; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.hibernate.annotations.Table; import org.springframework.format.annotation.DateTimeFormat; import javax.persistence.Column; import javax.persistence.Entity; import java.util.Date; /** * @author kdq * @version 1.0.0 * @ClassName InvestmentPlan.java * @Description TODO * @createTime 2025年03月28日 09:17:00 */ @Data @Entity @Table(appliesTo = "investment_plan", comment = "年度投资计划主表") public class InvestmentPlan extends BaseModel<InvestmentPlan> { @Schema(description = "编号") @Column(columnDefinition="VARCHAR(64) comment '编号'") private String number; @Schema(description = "年度") @Column(columnDefinition="int comment '年度'") private Integer year; @Column(columnDefinition = "double(10,2) comment '计划总额'") private Double amount; @Schema(description = "联系人") @Column(columnDefinition="VARCHAR(64) comment '联系人'") private String contacts; @Schema(description = "名称") @Column(columnDefinition="VARCHAR(64) comment '名称'") private String name; @Schema(description = "填报公司") @Column(columnDefinition="VARCHAR(64) comment '填报公司'") private String releaseCompName; @Schema(description = "填报人") @Column(columnDefinition="VARCHAR(64) comment '填报人'") private String releasePerson; @DateTimeFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd") @Schema(description = "填报时间") @Column(columnDefinition = "datetime comment '填报时间'") private Date releaseDate; @DateTimeFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd") @Schema(description = "上报时间") @Column(columnDefinition = "datetime comment '上报时间'") private Date sendDate; @Schema(description = "申报状态 0申请中,1审批拒绝 2审核通过 ") @Column(columnDefinition="int comment '申报状态'") private Integer status; @Schema(description = "申报类型") @Column(columnDefinition="int comment '申报类型'") private Integer type; @Column(columnDefinition = "double(10,2) comment '调整偏移率'") private Double deviation; @Schema(description = "投资计划ids") @Column(columnDefinition="VARCHAR(64) comment '投资计划ids'") private String planIds; } platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/InvestmentPlanItem.java
New file @@ -0,0 +1,66 @@ package com.by4cloud.platformx.device.entity; import com.by4cloud.platformx.common.data.mybatis.BaseModel; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.hibernate.annotations.Table; import org.springframework.format.annotation.DateTimeFormat; import javax.persistence.Column; import javax.persistence.Entity; import java.util.Date; /** * @author kdq * @version 1.0.0 * @ClassName InvestmentPlan.java * @Description TODO * @createTime 2025年03月28日 09:17:00 */ @Data @Entity @Table(appliesTo = "investment_plan_item", comment = "年度投资计划子表") public class InvestmentPlanItem extends BaseModel<InvestmentPlanItem> { @Schema(description = "年度") @Column(columnDefinition="int comment '年度'") private Integer year; @Schema(description = "月份") @Column(columnDefinition="int comment '月份'") private Integer month; @Schema(description = "设备表id") @Column(columnDefinition="long comment '设备表id'") private Long deviceId; @Schema(description = "设备编码") @Column(columnDefinition="VARCHAR(64) comment '设备编码'") private String number; @Column(columnDefinition = "varchar(200) comment '规格型号'") private String specification; @Column(columnDefinition = "int comment '数量'") private Integer num; @Column(columnDefinition = "varchar(20) comment '单位'") private String unit; @Column(columnDefinition = "double(10,2) comment '预估单价'") private Double price; @Column(columnDefinition = "double(10,2) comment '计划总额'") private Double amount; @Schema(description = "建议厂家") @Column(columnDefinition="VARCHAR(64) comment '建议厂家'") private String manu; @Schema(description = "投资必要性") @Column(columnDefinition="VARCHAR(64) comment '投资必要性'") private String necessity; @Schema(description = "增减计划") @Column(columnDefinition="int comment '增减计划'") private Integer flucPlan; } platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceDemandPlanController.java
@@ -77,6 +77,7 @@ wrapper.eq(deviceDemandPlan.getDeclareCompId() !=null,DeviceDemandPlan::getDeclareCompId,deviceDemandPlan.getDeclareCompId()); wrapper.eq(deviceDemandPlan.getReleasePerson() !=null,DeviceDemandPlan::getReleasePerson,deviceDemandPlan.getReleasePerson()); wrapper.eq(deviceDemandPlan.getYear() !=null,DeviceDemandPlan::getYear,deviceDemandPlan.getYear()); wrapper.eq(deviceDemandPlan.getStatus() !=null,DeviceDemandPlan::getStatus,deviceDemandPlan.getStatus()); wrapper.eq(DeviceDemandPlan::getType2,1); return R.ok(deviceDemandPlanService.page(page, wrapper)); } platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/InvestmentPlanController.java
New file @@ -0,0 +1,132 @@ package com.by4cloud.platformx.device.controller; import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.by4cloud.platformx.common.core.util.R; import com.by4cloud.platformx.common.log.annotation.SysLog; import com.by4cloud.platformx.device.constant.MaxSizeContant; import com.by4cloud.platformx.device.entity.DeviceDemandPlan; import com.by4cloud.platformx.device.entity.InvestmentPlan; import com.by4cloud.platformx.device.service.DeviceDemandPlanService; import com.by4cloud.platformx.device.service.InvestmentPlanService; import com.by4cloud.platformx.device.service.JcMaxSizeService; import com.by4cloud.platformx.device.util.NumUtils; import org.springframework.security.access.prepost.PreAuthorize; import com.by4cloud.platformx.common.excel.annotation.ResponseExcel; import io.swagger.v3.oas.annotations.security.SecurityRequirement; import org.springdoc.api.annotations.ParameterObject; import org.springframework.http.HttpHeaders; import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Operation; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Objects; /** * 年度投资计划主表 * * @author kdq * @date 2025-03-28 11:06:50 */ @RestController @RequiredArgsConstructor @RequestMapping("/investmentPlan" ) @Tag(description = "investmentPlan" , name = "年度投资计划主表管理" ) @SecurityRequirement(name = HttpHeaders.AUTHORIZATION) public class InvestmentPlanController { private final InvestmentPlanService investmentPlanService; private final DeviceDemandPlanService deviceDemandPlanService; private final JcMaxSizeService maxSizeService; /** * 分页查询 * @param page 分页对象 * @param investmentPlan 年度投资计划主表 * @return */ @Operation(summary = "分页查询" , description = "分页查询" ) @GetMapping("/page" ) @PreAuthorize("@pms.hasPermission('device_investmentPlan_view')" ) public R getInvestmentPlanPage(@ParameterObject Page page, @ParameterObject InvestmentPlan investmentPlan) { LambdaQueryWrapper<InvestmentPlan> wrapper = Wrappers.lambdaQuery(); wrapper.eq(investmentPlan.getYear()!=null,InvestmentPlan::getYear,investmentPlan.getYear()); wrapper.like(StringUtils.isNotBlank(investmentPlan.getName()),InvestmentPlan::getName,investmentPlan.getName()); return R.ok(investmentPlanService.page(page, wrapper)); } /** * 通过id查询年度投资计划主表 * @param id id * @return R */ @Operation(summary = "通过id查询" , description = "通过id查询" ) @GetMapping("/{id}" ) @PreAuthorize("@pms.hasPermission('device_investmentPlan_view')" ) public R getById(@PathVariable("id" ) Long id) { return R.ok(investmentPlanService.getById(id)); } /** * 新增年度投资计划主表 * @param investmentPlan 年度投资计划主表 * @return R */ @Operation(summary = "新增年度投资计划主表" , description = "新增年度投资计划主表" ) @SysLog("新增年度投资计划主表" ) @PostMapping @PreAuthorize("@pms.hasPermission('device_investmentPlan_add')" ) public R save(@RequestBody InvestmentPlan investmentPlan) { investmentPlan.setNumber(maxSizeService.nextNo(MaxSizeContant.TZPLAN_NUM)); investmentPlanService.save(investmentPlan); return R.ok(); } /** * 修改年度投资计划主表 * @param investmentPlan 年度投资计划主表 * @return R */ @Operation(summary = "修改年度投资计划主表" , description = "修改年度投资计划主表" ) @SysLog("修改年度投资计划主表" ) @PutMapping @PreAuthorize("@pms.hasPermission('device_investmentPlan_edit')" ) public R updateById(@RequestBody InvestmentPlan investmentPlan) { return R.ok(investmentPlanService.updateById(investmentPlan)); } /** * 通过id删除年度投资计划主表 * @param ids id列表 * @return R */ @Operation(summary = "通过id删除年度投资计划主表" , description = "通过id删除年度投资计划主表" ) @SysLog("通过id删除年度投资计划主表" ) @DeleteMapping @PreAuthorize("@pms.hasPermission('device_investmentPlan_del')" ) public R removeById(@RequestBody Long[] ids) { return R.ok(investmentPlanService.removeBatchByIds(CollUtil.toList(ids))); } /** * 导出excel 表格 * @param investmentPlan 查询条件 * @param ids 导出指定ID * @return excel 文件流 */ @ResponseExcel @GetMapping("/export") @PreAuthorize("@pms.hasPermission('device_investmentPlan_export')" ) public List<InvestmentPlan> export(InvestmentPlan investmentPlan,Long[] ids) { return investmentPlanService.list(Wrappers.lambdaQuery(investmentPlan).in(ArrayUtil.isNotEmpty(ids), InvestmentPlan::getId, ids)); } } platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/InvestmentPlanItemController.java
New file @@ -0,0 +1,119 @@ package com.by4cloud.platformx.device.controller; import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.by4cloud.platformx.common.core.util.R; import com.by4cloud.platformx.common.log.annotation.SysLog; import com.by4cloud.platformx.device.entity.InvestmentPlanItem; import com.by4cloud.platformx.device.service.InvestmentPlanItemService; import org.springframework.security.access.prepost.PreAuthorize; import com.by4cloud.platformx.common.excel.annotation.ResponseExcel; import io.swagger.v3.oas.annotations.security.SecurityRequirement; import org.springdoc.api.annotations.ParameterObject; import org.springframework.http.HttpHeaders; import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Operation; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Objects; /** * 年度投资计划子表 * * @author kdq * @date 2025-03-28 11:08:34 */ @RestController @RequiredArgsConstructor @RequestMapping("/investmentPlanItem" ) @Tag(description = "investmentPlanItem" , name = "年度投资计划子表管理" ) @SecurityRequirement(name = HttpHeaders.AUTHORIZATION) public class InvestmentPlanItemController { private final InvestmentPlanItemService investmentPlanItemService; /** * 分页查询 * @param page 分页对象 * @param investmentPlanItem 年度投资计划子表 * @return */ @Operation(summary = "分页查询" , description = "分页查询" ) @GetMapping("/page" ) @PreAuthorize("@pms.hasPermission('device_investmentPlanItem_view')" ) public R getInvestmentPlanItemPage(@ParameterObject Page page, @ParameterObject InvestmentPlanItem investmentPlanItem) { LambdaQueryWrapper<InvestmentPlanItem> wrapper = Wrappers.lambdaQuery(); return R.ok(investmentPlanItemService.page(page, wrapper)); } /** * 通过id查询年度投资计划子表 * @param id id * @return R */ @Operation(summary = "通过id查询" , description = "通过id查询" ) @GetMapping("/{id}" ) @PreAuthorize("@pms.hasPermission('device_investmentPlanItem_view')" ) public R getById(@PathVariable("id" ) Long id) { return R.ok(investmentPlanItemService.getById(id)); } /** * 新增年度投资计划子表 * @param investmentPlanItem 年度投资计划子表 * @return R */ @Operation(summary = "新增年度投资计划子表" , description = "新增年度投资计划子表" ) @SysLog("新增年度投资计划子表" ) @PostMapping @PreAuthorize("@pms.hasPermission('device_investmentPlanItem_add')" ) public R save(@RequestBody InvestmentPlanItem investmentPlanItem) { return R.ok(investmentPlanItemService.save(investmentPlanItem)); } /** * 修改年度投资计划子表 * @param investmentPlanItem 年度投资计划子表 * @return R */ @Operation(summary = "修改年度投资计划子表" , description = "修改年度投资计划子表" ) @SysLog("修改年度投资计划子表" ) @PutMapping @PreAuthorize("@pms.hasPermission('device_investmentPlanItem_edit')" ) public R updateById(@RequestBody InvestmentPlanItem investmentPlanItem) { return R.ok(investmentPlanItemService.updateById(investmentPlanItem)); } /** * 通过id删除年度投资计划子表 * @param ids id列表 * @return R */ @Operation(summary = "通过id删除年度投资计划子表" , description = "通过id删除年度投资计划子表" ) @SysLog("通过id删除年度投资计划子表" ) @DeleteMapping @PreAuthorize("@pms.hasPermission('device_investmentPlanItem_del')" ) public R removeById(@RequestBody Long[] ids) { return R.ok(investmentPlanItemService.removeBatchByIds(CollUtil.toList(ids))); } /** * 导出excel 表格 * @param investmentPlanItem 查询条件 * @param ids 导出指定ID * @return excel 文件流 */ @ResponseExcel @GetMapping("/export") @PreAuthorize("@pms.hasPermission('device_investmentPlanItem_export')" ) public List<InvestmentPlanItem> export(InvestmentPlanItem investmentPlanItem,Long[] ids) { return investmentPlanItemService.list(Wrappers.lambdaQuery(investmentPlanItem).in(ArrayUtil.isNotEmpty(ids), InvestmentPlanItem::getId, ids)); } } platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/InvestmentPlanItemMapper.java
New file @@ -0,0 +1,11 @@ package com.by4cloud.platformx.device.mapper; import com.by4cloud.platformx.common.data.datascope.PlatformxBaseMapper; import com.by4cloud.platformx.device.entity.InvestmentPlanItem; import org.apache.ibatis.annotations.Mapper; @Mapper public interface InvestmentPlanItemMapper extends PlatformxBaseMapper<InvestmentPlanItem> { } platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/InvestmentPlanMapper.java
New file @@ -0,0 +1,11 @@ package com.by4cloud.platformx.device.mapper; import com.by4cloud.platformx.common.data.datascope.PlatformxBaseMapper; import com.by4cloud.platformx.device.entity.InvestmentPlan; import org.apache.ibatis.annotations.Mapper; @Mapper public interface InvestmentPlanMapper extends PlatformxBaseMapper<InvestmentPlan> { } platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/InvestmentPlanItemService.java
New file @@ -0,0 +1,8 @@ package com.by4cloud.platformx.device.service; import com.baomidou.mybatisplus.extension.service.IService; import com.by4cloud.platformx.device.entity.InvestmentPlanItem; public interface InvestmentPlanItemService extends IService<InvestmentPlanItem> { } platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/InvestmentPlanService.java
New file @@ -0,0 +1,8 @@ package com.by4cloud.platformx.device.service; import com.baomidou.mybatisplus.extension.service.IService; import com.by4cloud.platformx.device.entity.InvestmentPlan; public interface InvestmentPlanService extends IService<InvestmentPlan> { } platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/InvestmentPlanItemServiceImpl.java
New file @@ -0,0 +1,16 @@ package com.by4cloud.platformx.device.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.by4cloud.platformx.device.entity.InvestmentPlanItem; import com.by4cloud.platformx.device.mapper.InvestmentPlanItemMapper; import com.by4cloud.platformx.device.service.InvestmentPlanItemService; import org.springframework.stereotype.Service; /** * 年度投资计划子表 * * @author kdq * @date 2025-03-28 11:08:34 */ @Service public class InvestmentPlanItemServiceImpl extends ServiceImpl<InvestmentPlanItemMapper, InvestmentPlanItem> implements InvestmentPlanItemService { } platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/InvestmentPlanServiceImpl.java
New file @@ -0,0 +1,16 @@ package com.by4cloud.platformx.device.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.by4cloud.platformx.device.entity.InvestmentPlan; import com.by4cloud.platformx.device.mapper.InvestmentPlanMapper; import com.by4cloud.platformx.device.service.InvestmentPlanService; import org.springframework.stereotype.Service; /** * 年度投资计划主表 * * @author kdq * @date 2025-03-28 11:06:50 */ @Service public class InvestmentPlanServiceImpl extends ServiceImpl<InvestmentPlanMapper, InvestmentPlan> implements InvestmentPlanService { } platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/JcMaxSizeServiceImpl.java
@@ -56,7 +56,7 @@ String s = pre+format+suf+randomNumber+n; return s; }else { Integer currentNumber = dayMax.getCurrentNumber(); Integer currentNumber = dayMax.getCurrentNumber()==null?0:dayMax.getCurrentNumber(); int current = currentNumber+1; String n = padStart(current, maxSize.getLength()); String pre = (maxSize.getUsePrefix() == 0 ? "" : maxSize.getPrefixName()); platformx-device-biz/src/main/resources/mapper/InvestmentPlanItemMapper.xml
New file @@ -0,0 +1,27 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.by4cloud.platformx.device.mapper.InvestmentPlanItemMapper"> <resultMap id="investmentPlanItemMap" type="com.by4cloud.platformx.device.entity.InvestmentPlanItem"> <id property="id" column="id"/> <result property="compId" column="comp_id"/> <result property="year" column="year"/> <result property="month" column="month"/> <result property="amount" column="amount"/> <result property="number" column="number"/> <result property="num" column="num"/> <result property="price" column="price"/> <result property="unit" column="unit"/> <result property="manu" column="manu"/> <result property="specification" column="specification"/> <result property="deviceId" column="device_id"/> <result property="flucPlan" column="fluc_plan"/> <result property="necessity" column="necessity"/> <result property="createBy" column="create_by"/> <result property="createTime" column="create_time"/> <result property="updateBy" column="update_by"/> <result property="updateTime" column="update_time"/> <result property="delFlag" column="del_flag"/> </resultMap> </mapper> platformx-device-biz/src/main/resources/mapper/InvestmentPlanMapper.xml
New file @@ -0,0 +1,26 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.by4cloud.platformx.device.mapper.InvestmentPlanMapper"> <resultMap id="investmentPlanMap" type="com.by4cloud.platformx.device.entity.InvestmentPlan"> <id property="id" column="id"/> <result property="compId" column="comp_id"/> <result property="year" column="year"/> <result property="amount" column="amount"/> <result property="releasePerson" column="release_person"/> <result property="contacts" column="contacts"/> <result property="releaseDate" column="release_date"/> <result property="sendDate" column="send_date"/> <result property="deviation" column="deviation"/> <result property="status" column="status"/> <result property="planIds" column="plan_ids"/> <result property="type" column="type"/> <result property="releaseCompName" column="release_comp_name"/> <result property="createBy" column="create_by"/> <result property="createTime" column="create_time"/> <result property="updateBy" column="update_by"/> <result property="updateTime" column="update_time"/> <result property="delFlag" column="del_flag"/> </resultMap> </mapper>