Browse Source

1.新增获取测算表进度信息接口
2.新增导入机器设备基础信息接口
3.新增表assets_calculate_eqpt_data,修改表assets_calculate

GouGengquan 8 tháng trước cách đây
mục cha
commit
7171e87733

+ 27 - 0
biz-base/src/main/java/com/dayou/controller/AssetsCalculateController.java

@@ -2,6 +2,8 @@ package com.dayou.controller;
 
 import cn.dev33.satoken.annotation.SaCheckLogin;
 import com.dayou.result.Result;
+import com.dayou.result.Status;
+import com.dayou.vo.calculate.AssetsCalculateProgressVO;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -10,6 +12,10 @@ import org.springframework.web.bind.annotation.RestController;
 import com.dayou.service.AssetsCalculateService;
 import com.dayou.entity.AssetsCalculate;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.IOException;
+
 /**
  * 资产项目测算信息表
  *
@@ -70,5 +76,26 @@ public class AssetsCalculateController {
         return Result.build(ret);
     }
 
+    /**
+     * 根据项目id获取未完成测算表的进度信息
+     * @param projectId 项目id
+     * @return AssetsCalculateStepBaseVO
+     */
+    @GetMapping("/getUnFinishedCalculateProgress/{projectId}")
+    public Result<AssetsCalculateProgressVO> getUnFinishedCalculateProgress(@PathVariable Long projectId){
+        return Result.build(assetsCalculateService.getUnFinishedCalculateProgress(projectId));
+    }
+
+    /**
+     * 导入保存机器设备基础信息
+     * @param multipartFile Excel文件
+     * @param calculateId 测算表id
+     */
+    @PostMapping("/importEqptExcelData")
+    public Result importEqptExcelData(MultipartFile multipartFile, Long calculateId) throws IOException {
+        assetsCalculateService.importEqptExcelData(multipartFile, calculateId);
+        return Result.build(Status.SUCCESS);
+    }
+
 }
 

+ 0 - 5
common/pom.xml

@@ -55,11 +55,6 @@
         </dependency>
 
         <dependency>
-            <groupId>com.alibaba</groupId>
-            <artifactId>easyexcel</artifactId>
-        </dependency>
-
-        <dependency>
             <groupId>org.apache.poi</groupId>
             <artifactId>poi</artifactId>
         </dependency>

+ 16 - 0
dao/src/main/java/com/dayou/mapper/AssetsCalculateEqptDataMapper.java

@@ -0,0 +1,16 @@
+package com.dayou.mapper;
+
+import com.dayou.entity.AssetsCalculateEqptData;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 机器设备测算数据表 Mapper 接口
+ * </p>
+ *
+ * @author mybatis-plus-generator
+ * @since 2024-11-15
+ */
+public interface AssetsCalculateEqptDataMapper extends BaseMapper<AssetsCalculateEqptData> {
+
+}

+ 8 - 0
dao/src/main/java/com/dayou/mapper/AssetsCalculateMapper.java

@@ -2,6 +2,8 @@ package com.dayou.mapper;
 
 import com.dayou.entity.AssetsCalculate;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dayou.vo.calculate.AssetsCalculateProgressVO;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * <p>
@@ -13,4 +15,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface AssetsCalculateMapper extends BaseMapper<AssetsCalculate> {
 
+    /**
+     * 根据项目id获取未完成测算表的进度信息
+     * @param projectId 项目id
+     * @return AssetsCalculateStepBaseVO
+     */
+    AssetsCalculateProgressVO getCalculateProgress(@Param("projectId") Long projectId);
 }

+ 36 - 0
dao/src/main/resources/mapper/AssetsCalculateEqptDataMapper.xml

@@ -0,0 +1,36 @@
+<?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.dayou.mapper.AssetsCalculateEqptDataMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.dayou.entity.AssetsCalculateEqptData">
+        <result column="id" property="id" />
+        <result column="create_time" property="createTime" />
+        <result column="update_time" property="updateTime" />
+        <result column="delete_status" property="deleteStatus" />
+        <result column="assets_calculate_id" property="assetsCalculateId" />
+        <result column="sort_id" property="sortId" />
+        <result column="equipment_name" property="equipmentName" />
+        <result column="manufacturer" property="manufacturer" />
+        <result column="model" property="model" />
+        <result column="purchase_date" property="purchaseDate" />
+        <result column="activation_date" property="activationDate" />
+        <result column="storage_location" property="storageLocation" />
+        <result column="quantity" property="quantity" />
+        <result column="unit_of_measurement" property="unitOfMeasurement" />
+        <result column="original_value" property="originalValue" />
+        <result column="net_value" property="netValue" />
+        <result column="equipment_type" property="equipmentType" />
+        <result column="equipment_type_detail" property="equipmentTypeDetail" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id,
+        create_time,
+        update_time,
+        delete_status,
+        assets_calculate_id, sort_id, equipment_name, manufacturer, model, purchase_date, activation_date, storage_location, quantity, unit_of_measurement, original_value, net_value, equipment_type, equipment_type_detail
+    </sql>
+
+</mapper>

+ 17 - 0
dao/src/main/resources/mapper/AssetsCalculateMapper.xml

@@ -23,4 +23,21 @@
         project_id, calculate_name, valuation_basis_date, create_user_id
     </sql>
 
+    <!--根据项目id获取未完成项目当前进度名称-->
+    <select id="getCalculateProgressName" resultType="java.lang.String">
+        SELECT progress
+        FROM assets_calculate
+        WHERE delete_status = 0
+          AND project_id = #{projectId}
+    </select>
+
+    <!--根据项目id和进度名获取测算表基本信息-->
+    <select id="getCalculateProgress" resultType="com.dayou.vo.calculate.AssetsCalculateProgressVO">
+        SELECT id, project_id, calculate_name, progress
+        FROM assets_calculate
+        WHERE delete_status = 0
+        AND progress != 'FINISHED'
+        AND project_id = #{projectId}
+    </select>
+
 </mapper>

+ 5 - 0
domain/pom.xml

@@ -33,6 +33,11 @@
             <artifactId>mybatis-plus-boot-starter</artifactId>
         </dependency>
 
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>easyexcel</artifactId>
+        </dependency>
+
     </dependencies>
     <dependencyManagement>
         <dependencies>

+ 1 - 1
domain/src/main/java/com/dayou/dto/calculate/equipment/ImportedEquipmentInfoDTO.java

@@ -13,7 +13,7 @@ public class ImportedEquipmentInfoDTO {
     /**
      * 序号
      */
-    private Integer id;
+    private Integer sortId;
 
     /**
      * 设备名称

+ 14 - 1
domain/src/main/java/com/dayou/entity/AssetsCalculate.java

@@ -1,11 +1,14 @@
 package com.dayou.entity;
+
 import com.dayou.common.BaseEntity;
+
 import java.time.LocalDate;
 
 import java.io.Serializable;
 
 import lombok.Data;
 import lombok.EqualsAndHashCode;
+
 /**
  * <p>
  * 资产项目测算信息表
@@ -18,7 +21,7 @@ import lombok.EqualsAndHashCode;
 @EqualsAndHashCode(callSuper = true)
 public class AssetsCalculate extends BaseEntity implements Serializable {
 
-    private static final long serialVersionUID=1L;
+    private static final long serialVersionUID = 1L;
 
     /**
      * 资产项目id
@@ -36,9 +39,19 @@ public class AssetsCalculate extends BaseEntity implements Serializable {
     private LocalDate valuationBasisDate;
 
     /**
+     * 测算所需基础信息(json)
+     */
+    private String calculateInfo;
+
+    /**
      * 测算表创建者user_id
      */
     private Long createUserId;
 
+    /**
+     * 测算表生成进度(BASE、IMPORT、GENERATE、FINISHED)
+     */
+    private String progress;
+
 
 }

+ 117 - 0
domain/src/main/java/com/dayou/entity/AssetsCalculateEqptData.java

@@ -0,0 +1,117 @@
+package com.dayou.entity;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.dayou.common.BaseEntity;
+
+import java.time.LocalDateTime;
+
+import java.io.Serializable;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 机器设备测算数据表
+ * </p>
+ *
+ * @author mybatis-plus-generator
+ * @since 2024-11-15
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class AssetsCalculateEqptData extends BaseEntity implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 资产测算表id
+     */
+    private Long assetsCalculateId;
+
+    /**
+     * 序号
+     */
+    @ExcelProperty("序号")
+    private Integer sortId;
+
+    /**
+     * 设备名称
+     */
+    @ExcelProperty("设备名称")
+    private String equipmentName;
+
+    /**
+     * 生产厂家
+     */
+    @ExcelProperty("生产厂家")
+    private String manufacturer;
+
+    /**
+     * 型号规格
+     */
+    @ExcelProperty("型号规格")
+    private String model;
+
+    /**
+     * 购买日期
+     */
+    @ExcelProperty("购买日期")
+    private LocalDateTime purchaseDate;
+
+    /**
+     * 启用日期
+     */
+    @ExcelProperty("启用日期")
+    private LocalDateTime activationDate;
+
+    /**
+     * 存放地点
+     */
+    @ExcelProperty("存放地点")
+    private String storageLocation;
+
+    /**
+     * 数量
+     */
+    @ExcelProperty("数量")
+    private String quantity;
+
+    /**
+     * 计量单位
+     */
+    @ExcelProperty("计量单位")
+    private String unitOfMeasurement;
+
+    /**
+     * 账面原值
+     */
+    @ExcelProperty("账面原值")
+    private Float originalValue;
+
+    /**
+     * 账面净值
+     */
+    @ExcelProperty("账面净值")
+    private Float netValue;
+
+    /**
+     * 设备类型
+     */
+    @ExcelProperty("设备类型")
+    private String equipmentType;
+
+    /**
+     * 设备详细类型
+     */
+    @ExcelProperty("设备详细类型")
+    private String equipmentTypeDetail;
+
+    /**
+     * 备注
+     */
+    @ExcelProperty("备注")
+    private String remark;
+
+
+}

+ 31 - 0
domain/src/main/java/com/dayou/vo/calculate/AssetsCalculateProgressVO.java

@@ -0,0 +1,31 @@
+package com.dayou.vo.calculate;
+
+import lombok.Data;
+
+/**
+ * 测算表进度信息
+ */
+@Data
+public class AssetsCalculateProgressVO {
+
+    /**
+     * 测算表id
+     */
+    private Long id;
+
+    /**
+     * 资产项目id
+     */
+    private Long projectId;
+
+    /**
+     * 测算名
+     */
+    private String calculateName;
+
+    /**
+     * 测算表生成进度(BASE、IMPORT、GENERATE、FINISHED)
+     */
+    private String progress;
+
+}

+ 16 - 0
service/src/main/java/com/dayou/service/AssetsCalculateEqptDataService.java

@@ -0,0 +1,16 @@
+package com.dayou.service;
+import com.dayou.entity.AssetsCalculateEqptData;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+/**
+ * <p>
+ * 机器设备测算数据表 服务类
+ * </p>
+ *
+ * @author mybatis-plus-generator
+ * @since 2024-11-15
+ */
+public interface AssetsCalculateEqptDataService extends IService<AssetsCalculateEqptData> {
+
+}

+ 19 - 1
service/src/main/java/com/dayou/service/AssetsCalculateService.java

@@ -2,7 +2,11 @@ package com.dayou.service;
 import com.dayou.entity.AssetsCalculate;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.dayou.vo.calculate.AssetsCalculateProgressVO;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.IOException;
+
 /**
  * <p>
  * 资产项目测算信息表 服务类
@@ -23,4 +27,18 @@ public interface AssetsCalculateService extends IService<AssetsCalculate> {
 
         Boolean delete(Long id);
 
+        /**
+         * 根据项目id获取未完成测算表的进度信息
+         * @param projectId 项目id
+         * @return AssetsCalculateStepBaseVO
+         */
+        AssetsCalculateProgressVO getUnFinishedCalculateProgress(Long projectId);
+
+        /**
+         * 导入保存机器设备基础信息
+         * @param multipartFile Excel文件
+         * @param calculateId 测算表id
+         */
+        void importEqptExcelData(MultipartFile multipartFile, Long calculateId) throws IOException;
+
 }

+ 30 - 0
service/src/main/java/com/dayou/service/impl/AssetsCalculateEqptDataServiceImpl.java

@@ -0,0 +1,30 @@
+package com.dayou.service.impl;
+
+import com.dayou.entity.AssetsCalculateEqptData;
+import com.dayou.mapper.AssetsCalculateEqptDataMapper;
+import com.dayou.service.AssetsCalculateEqptDataService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import java.util.List;
+import java.util.ArrayList;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * <p>
+ * 机器设备测算数据表 服务实现类
+ * </p>
+ *
+ * @author mybatis-plus-generator
+ * @since 2024-11-15
+ */
+@Service
+public class AssetsCalculateEqptDataServiceImpl extends ServiceImpl<AssetsCalculateEqptDataMapper, AssetsCalculateEqptData> implements AssetsCalculateEqptDataService {
+
+}

+ 45 - 8
service/src/main/java/com/dayou/service/impl/AssetsCalculateServiceImpl.java

@@ -1,20 +1,23 @@
 package com.dayou.service.impl;
 
+import cn.dev33.satoken.stp.StpUtil;
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.read.listener.PageReadListener;
 import com.dayou.entity.AssetsCalculate;
+import com.dayou.entity.AssetsCalculateEqptData;
 import com.dayou.mapper.AssetsCalculateMapper;
+import com.dayou.service.AssetsCalculateEqptDataService;
 import com.dayou.service.AssetsCalculateService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dayou.vo.calculate.AssetsCalculateProgressVO;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
-import java.util.List;
-import java.util.ArrayList;
-import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.IOException;
+import java.io.InputStream;
 
 /**
  * <p>
@@ -27,6 +30,11 @@ import org.springframework.transaction.annotation.Transactional;
 @Service
 public class AssetsCalculateServiceImpl extends ServiceImpl<AssetsCalculateMapper, AssetsCalculate> implements AssetsCalculateService {
 
+    @Autowired
+    private AssetsCalculateMapper assetsCalculateMapper;
+
+    @Autowired
+    private AssetsCalculateEqptDataService assetsCalculateEqptDataService;
 
     @Override
     @SuppressWarnings("unchecked")
@@ -42,6 +50,7 @@ public class AssetsCalculateServiceImpl extends ServiceImpl<AssetsCalculateMappe
 
     @Override
     public Boolean add(AssetsCalculate assetsCalculate){
+        assetsCalculate.setCreateUserId(StpUtil.getLoginIdAsLong());
         return  this.save(assetsCalculate);
     }
 
@@ -55,4 +64,32 @@ public class AssetsCalculateServiceImpl extends ServiceImpl<AssetsCalculateMappe
         //逻辑删除
         return this.removeById(id);
     }
+
+    /**
+     * 根据项目id获取未完成测算表的进度信息
+     * @param projectId 项目id
+     * @return AssetsCalculateStepBaseVO
+     */
+    @Override
+    public AssetsCalculateProgressVO getUnFinishedCalculateProgress(Long projectId) {
+        return assetsCalculateMapper.getCalculateProgress(projectId);
+    }
+
+    /**
+     * 导入保存机器设备基础信息
+     * @param multipartFile Excel文件
+     * @param calculateId 测算表id
+     * @return Boolean
+     */
+    @Override
+    public void importEqptExcelData(MultipartFile multipartFile, Long calculateId) throws IOException {
+        // 读取excel内容并批量保存到数据库
+        InputStream inputStream = multipartFile.getInputStream();
+        EasyExcel.read(inputStream, AssetsCalculateEqptData.class, new PageReadListener<AssetsCalculateEqptData>(dataList -> {
+            // 设置数据的测算表id
+            dataList.forEach(data -> data.setAssetsCalculateId(calculateId));
+            // 批量保存
+            assetsCalculateEqptDataService.saveBatch(dataList);
+        }, 1000)).sheet().doRead();
+    }
 }

+ 35 - 1
sql/update_sql.sql

@@ -243,4 +243,38 @@ ALTER TABLE assets_calculate MODIFY COLUMN create_user_id bigint(20) DEFAULT NUL
   未更新到test-env
  */
 ALTER TABLE assets_project ADD COLUMN completion_status BIT(1) DEFAULT b'0' NOT NULL COMMENT '项目完成状态';
-ALTER TABLE assets_calculate CHANGE COLUMN assets_id project_id BIGINT(20) NOT NULL COMMENT '资产项目id';
+ALTER TABLE assets_calculate CHANGE COLUMN assets_id project_id BIGINT(20) NOT NULL COMMENT '资产项目id';
+
+/**
+  日期:2024-11-15
+  修改人:苟耕铨
+  未更新到test-env
+ */
+ # 修改表
+ALTER TABLE assets_calculate ADD COLUMN progress VARCHAR(128) NOT NULL COMMENT '测算表生成进度(BASE、IMPORT、GENERATE、FINISHED)';
+
+# 新建表
+DROP TABLE IF EXISTS `assets_calculate_eqpt_data`;
+CREATE TABLE `assets_calculate_eqpt_data`  (
+                                               `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '机器设备测算数据id',
+                                               `assets_calculate_id` bigint(20) NOT NULL COMMENT '资产测算表id',
+                                               `sort_id` int(11) NOT NULL COMMENT '序号',
+                                               `equipment_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '设备名称',
+                                               `manufacturer` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '生产厂家',
+                                               `model` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '型号规格',
+                                               `purchase_date` datetime(0) NOT NULL COMMENT '购买日期',
+                                               `activation_date` datetime(0) NOT NULL COMMENT '启用日期',
+                                               `storage_location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '存放地点',
+                                               `quantity` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '数量',
+                                               `unit_of_measurement` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '计量单位',
+                                               `original_value` float NOT NULL COMMENT '账面原值',
+                                               `net_value` float NOT NULL COMMENT '账面净值',
+                                               `equipment_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '设备类型',
+                                               `equipment_type_detail` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '设备详细类型',
+                                               `remark` varchar(500) DEFAULT NULL COMMENT '备注',
+                                               `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
+                                               `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '修改时间',
+                                               `delete_status` bit(1) NOT NULL DEFAULT b'0' COMMENT '删除状态',
+                                               PRIMARY KEY (`id`) USING BTREE,
+                                               INDEX `assets_calculate_id`(`assets_calculate_id`, `sort_id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '机器设备测算数据表' ROW_FORMAT = Dynamic;