Bläddra i källkod

fit:成本调查表-调查表填报(动态表)

zzw 1 månad sedan
förälder
incheckning
0007bb95f2

+ 0 - 57
assistMg/src/main/java/com/hotent/enterpriseDeclare/controller/material/CostProjectTaskMaterialDetailController.java

@@ -1,57 +0,0 @@
-package com.hotent.enterpriseDeclare.controller.material;
-
-import com.hotent.base.annotation.ApiGroup;
-import com.hotent.base.constants.ApiGroupConsts;
-import com.hotent.base.controller.BaseController;
-import com.hotent.base.model.CommonResult;
-import com.hotent.base.util.StringUtil;
-import com.hotent.project.manager.CostProjectTaskMaterialDetailManager;
-import com.hotent.project.model.CostProjectTaskMaterialDetail;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.web.bind.annotation.*;
-
-/**
- * 资料归纳明细表 前端控制器
- *
- * @company 山西清众科技股份有限公司
- * @author 超级管理员
- * @since 2025-01-27
- */
-@RestController
-@RequestMapping("/api/materialSummary/detail/v1/")
-@Api(tags = "资料归纳明细表")
-@ApiGroup(group = {ApiGroupConsts.GROUP_COST})
-public class CostProjectTaskMaterialDetailController extends BaseController<CostProjectTaskMaterialDetailManager, CostProjectTaskMaterialDetail> {
-
-    /**
-     * 根据id获取明细详情
-     * @param id 明细ID
-     * @return 明细详情
-     */
-    @GetMapping(value = "/getDetail")
-    @ApiOperation(value = "根据id获取明细详情", httpMethod = "GET", notes = "根据id获取明细详情")
-    public CommonResult<CostProjectTaskMaterialDetail> getDetail(
-            @ApiParam(name = "id", value = "明细ID", required = true)
-            @RequestParam(required = true) String id) {
-        return CommonResult.<CostProjectTaskMaterialDetail>ok().value(baseService.getDetail(id));
-    }
-
-    /**
-     * 删除明细
-     * @param id 明细ID
-     * @return
-     */
-    @DeleteMapping(value = "/delete")
-    @ApiOperation(value = "删除明细", httpMethod = "DELETE", notes = "删除明细(逻辑删除)")
-    @Transactional
-    public CommonResult<String> delete(
-            @ApiParam(name = "id", value = "明细ID", required = true)
-            @RequestParam(required = true) String id) {
-        baseService.deleteById(id);
-        return CommonResult.<String>ok().message("删除明细成功");
-    }
-}
-

+ 136 - 1
assistMg/src/main/java/com/hotent/enterpriseDeclare/controller/opinion/CostAuditTaskInfoController.java

@@ -5,9 +5,12 @@ import com.hotent.base.annotation.ApiGroup;
 import com.hotent.base.constants.ApiGroupConsts;
 import com.hotent.base.model.CommonResult;
 import com.hotent.base.util.StringUtil;
+import com.hotent.enterpriseDeclare.manager.CostAuditPeriodRecordManager;
 import com.hotent.enterpriseDeclare.manager.CostSurveyTemplateUploadDataManager;
+import com.hotent.enterpriseDeclare.model.CostAuditPeriodRecord;
 import com.hotent.enterpriseDeclare.model.CostSurveyTemplateUploadData;
 import com.hotent.surveyinfo.dao.CostSurveyTemplateItemsDao;
+import com.hotent.surveyinfo.manager.CostSurveyTemplateManager;
 import com.hotent.surveyinfo.manager.CostSurveyTemplateHeadersManager;
 import com.hotent.surveyinfo.manager.CostSurveyTemplateUploadManager;
 import com.hotent.surveyinfo.manager.CostSurveyTemplateVersionManager;
@@ -48,6 +51,12 @@ public class CostAuditTaskInfoController {
     @Autowired
     private CostSurveyTemplateUploadDataManager costSurveyTemplateUploadDataManager;
 
+    @Autowired
+    private CostAuditPeriodRecordManager costAuditPeriodRecordManager;
+
+    @Autowired
+    private CostSurveyTemplateManager costSurveyTemplateManager;
+
     /**
      * 企业报送-成本申报表-列表
      * @param catalogId 监管目录ID
@@ -156,7 +165,7 @@ public class CostAuditTaskInfoController {
      * @return 保存结果
      */
     @PostMapping(value = "/saveUploadData")
-    @ApiOperation(value = "保存成本调查表模板上传数据", httpMethod = "POST", notes = "保存成本调查表模板上传数据,直接使用实体类列表")
+    @ApiOperation(value = "保存成本调查表模板上传数据", httpMethod = "POST", notes = "保存成本调查表模板上传数据,直接使用实体类列表。固定表和单记录直接保存,动态表需要先创建监审期间记录")
     public CommonResult<String> saveUploadData(
             @ApiParam(name = "dataList", value = "数据列表", required = true)
             @RequestBody List<CostSurveyTemplateUploadData> dataList) throws Exception {
@@ -165,6 +174,35 @@ public class CostAuditTaskInfoController {
             return CommonResult.<String>error().message("数据列表不能为空");
         }
 
+        // 从第一条数据中提取信息
+        CostSurveyTemplateUploadData firstData = dataList.get(0);
+        String uploadId = firstData.getUploadId();
+        String surveyTemplateId = firstData.getSurveyTemplateId();
+        
+        // 判断模板类型
+        String templateType = null;
+        if (StringUtil.isNotEmpty(surveyTemplateId)) {
+            com.hotent.surveyinfo.model.CostSurveyTemplate template = costSurveyTemplateManager.getDetail(surveyTemplateId);
+            if (template != null) {
+                templateType = template.getTemplateType();
+            }
+        } else if (StringUtil.isNotEmpty(uploadId)) {
+            CostSurveyTemplateUpload upload = costSurveyTemplateUploadManager.get(uploadId);
+            if (upload != null && StringUtil.isNotEmpty(upload.getSurveyTemplateId())) {
+                com.hotent.surveyinfo.model.CostSurveyTemplate template = costSurveyTemplateManager.getDetail(upload.getSurveyTemplateId());
+                if (template != null) {
+                    templateType = template.getTemplateType();
+                }
+            }
+        }
+
+        // 如果是动态表(3),需要检查periodRecordId
+        if ("3".equals(templateType)) {
+            String periodRecordId = firstData.getPeriodRecordId();
+            if (StringUtil.isEmpty(periodRecordId)) {
+                return CommonResult.<String>error().message("动态表需要先创建监审期间记录,periodRecordId不能为空");
+            }
+        }
 
         costSurveyTemplateUploadDataManager.saveData(dataList);
         return CommonResult.<String>ok().message("保存数据成功");
@@ -188,5 +226,102 @@ public class CostAuditTaskInfoController {
         List<CostSurveyTemplateUploadData> dataList = costSurveyTemplateUploadDataManager.listByUploadIdAndAuditedUnitId(queryData.getUploadId(), queryData.getAuditedUnitId());
         return CommonResult.<List<CostSurveyTemplateUploadData>>ok().value(dataList);
     }
+
+    /**
+     * 企业报送-成本申报表-动态表-新增监审期间记录
+     * @param record 监审期间记录(包含uploadId、auditedUnitId、auditPeriod等字段)
+     * @return 保存结果
+     */
+    @PostMapping(value = "/addPeriodRecord")
+    @ApiOperation(value = "新增监审期间记录(动态表使用)", httpMethod = "POST", notes = "新增监审期间记录,用于动态表。必须先创建监审期间记录,然后才能编辑保存数据")
+    public CommonResult<CostAuditPeriodRecord> addPeriodRecord(
+            @ApiParam(name = "record", value = "监审期间记录", required = true)
+            @RequestBody CostAuditPeriodRecord record) throws Exception {
+
+        if (record == null) {
+            return CommonResult.<CostAuditPeriodRecord>error().message("记录不能为空");
+        }
+
+        if (StringUtil.isEmpty(record.getAuditedUnitId())) {
+            return CommonResult.<CostAuditPeriodRecord>error().message("auditedUnitId不能为空");
+        }
+
+        if (StringUtil.isEmpty(record.getAuditPeriod())) {
+            return CommonResult.<CostAuditPeriodRecord>error().message("auditPeriod不能为空");
+        }
+
+        // 如果没有 uploadId,需要先创建主表
+        String uploadId = record.getUploadId();
+        if (StringUtil.isEmpty(uploadId)) {
+            String catalogId = record.getCatalogId();
+            String surveyTemplateId = record.getSurveyTemplateId();
+            
+            if (StringUtil.isEmpty(catalogId) || StringUtil.isEmpty(surveyTemplateId)) {
+                return CommonResult.<CostAuditPeriodRecord>error().message("uploadId为空时,catalogId和surveyTemplateId不能为空");
+            }
+
+            // 创建主表记录
+            CostSurveyTemplateUpload upload = new CostSurveyTemplateUpload();
+            upload.setCatalogId(catalogId);
+            upload.setSurveyTemplateId(surveyTemplateId);
+            upload.setIsRequired("1");
+            upload.setIsDeleted("0");
+            upload.setOrderNum(0);
+            costSurveyTemplateUploadManager.save(upload);
+            uploadId = upload.getId();
+            record.setUploadId(uploadId);
+        }
+
+        // 设置填报时间为当前时间
+        if (record.getReportingTime() == null) {
+            record.setReportingTime(java.time.LocalDateTime.now());
+        }
+
+        // 设置默认值
+        if (StringUtil.isEmpty(record.getIsDeleted())) {
+            record.setIsDeleted("0");
+        }
+
+        costAuditPeriodRecordManager.createOrUpdate(record);
+        return CommonResult.<CostAuditPeriodRecord>ok().value(record).message("新增监审期间记录成功");
+    }
+
+    /**
+     * 企业报送-成本申报表-动态表-查询监审期间记录列表
+     * @param queryData 查询条件(包含uploadId和auditedUnitId)
+     * @return 记录列表
+     */
+    @PostMapping(value = "/listPeriodRecord")
+    @ApiOperation(value = "查询监审期间记录列表(动态表使用)", httpMethod = "POST", notes = "查询监审期间记录列表,返回记录列表")
+    public CommonResult<List<CostAuditPeriodRecord>> listPeriodRecord(
+            @ApiParam(name = "queryData", value = "查询条件", required = true)
+            @RequestBody CostAuditPeriodRecord queryData) throws Exception {
+
+        if (queryData == null || StringUtil.isEmpty(queryData.getUploadId()) || StringUtil.isEmpty(queryData.getAuditedUnitId())) {
+            return CommonResult.<List<CostAuditPeriodRecord>>ok().message(null);
+        }
+
+        List<CostAuditPeriodRecord> recordList = costAuditPeriodRecordManager.listByUploadIdAndAuditedUnitId(queryData.getUploadId(), queryData.getAuditedUnitId());
+        return CommonResult.<List<CostAuditPeriodRecord>>ok().value(recordList);
+    }
+
+    /**
+     * 企业报送-成本申报表-动态表-删除监审期间记录
+     * @param id 记录ID
+     * @return 删除结果
+     */
+    @PostMapping(value = "/deletePeriodRecord")
+    @ApiOperation(value = "删除监审期间记录(动态表使用)", httpMethod = "POST", notes = "删除监审期间记录")
+    public CommonResult<String> deletePeriodRecord(
+            @ApiParam(name = "id", value = "记录ID", required = true)
+            @RequestParam String id) throws Exception {
+
+        if (StringUtil.isEmpty(id)) {
+            return CommonResult.<String>error().message("id不能为空");
+        }
+
+        costAuditPeriodRecordManager.remove(id);
+        return CommonResult.<String>ok().message("删除监审期间记录成功");
+    }
 }
 

+ 28 - 0
assistMg/src/main/java/com/hotent/enterpriseDeclare/dao/CostAuditPeriodRecordDao.java

@@ -0,0 +1,28 @@
+package com.hotent.enterpriseDeclare.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.hotent.enterpriseDeclare.model.CostAuditPeriodRecord;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 成本监审期间记录表 Mapper 接口
+ *
+ * @company 山西清众科技股份有限公司
+ * @author 超级管理员
+ * @since 2025-01-XX
+ */
+public interface CostAuditPeriodRecordDao extends BaseMapper<CostAuditPeriodRecord> {
+    
+    /**
+     * 根据上传记录ID和企业ID查询记录列表
+     * @param uploadId 上传记录ID
+     * @param auditedUnitId 企业ID
+     * @return 记录列表
+     */
+    List<CostAuditPeriodRecord> selectByUploadIdAndAuditedUnitId(
+            @Param("uploadId") String uploadId,
+            @Param("auditedUnitId") String auditedUnitId);
+}
+

+ 38 - 0
assistMg/src/main/java/com/hotent/enterpriseDeclare/manager/CostAuditPeriodRecordManager.java

@@ -0,0 +1,38 @@
+package com.hotent.enterpriseDeclare.manager;
+
+import com.hotent.base.manager.BaseManager;
+import com.hotent.enterpriseDeclare.model.CostAuditPeriodRecord;
+
+import java.util.List;
+
+/**
+ * 成本监审期间记录表 服务类
+ *
+ * @company 山西清众科技股份有限公司
+ * @author 超级管理员
+ * @since 2025-01-XX
+ */
+public interface CostAuditPeriodRecordManager extends BaseManager<CostAuditPeriodRecord> {
+    
+    /**
+     * 根据主键获取详情
+     * @param id
+     * @return
+     */
+    CostAuditPeriodRecord getDetail(String id);
+    
+    /**
+     * 新建、更新记录
+     * @param costAuditPeriodRecord
+     */
+    void createOrUpdate(CostAuditPeriodRecord costAuditPeriodRecord);
+    
+    /**
+     * 根据上传记录ID和企业ID查询记录列表
+     * @param uploadId 上传记录ID
+     * @param auditedUnitId 企业ID
+     * @return 记录列表
+     */
+    List<CostAuditPeriodRecord> listByUploadIdAndAuditedUnitId(String uploadId, String auditedUnitId);
+}
+

+ 44 - 0
assistMg/src/main/java/com/hotent/enterpriseDeclare/manager/impl/CostAuditPeriodRecordManagerImpl.java

@@ -0,0 +1,44 @@
+package com.hotent.enterpriseDeclare.manager.impl;
+
+import com.hotent.base.manager.impl.BaseManagerImpl;
+import com.hotent.enterpriseDeclare.dao.CostAuditPeriodRecordDao;
+import com.hotent.enterpriseDeclare.manager.CostAuditPeriodRecordManager;
+import com.hotent.enterpriseDeclare.model.CostAuditPeriodRecord;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+/**
+ * 成本监审期间记录表 服务实现类
+ *
+ * @company 山西清众科技股份有限公司
+ * @author 超级管理员
+ * @since 2025-01-XX
+ */
+@Service
+public class CostAuditPeriodRecordManagerImpl extends BaseManagerImpl<CostAuditPeriodRecordDao, CostAuditPeriodRecord> implements CostAuditPeriodRecordManager {
+
+    @Autowired
+    private CostAuditPeriodRecordDao costAuditPeriodRecordDao;
+
+    @Override
+    public CostAuditPeriodRecord getDetail(String id) {
+        CostAuditPeriodRecord record = this.get(id);
+        return record;
+    }
+
+    @Override
+    @Transactional
+    public void createOrUpdate(CostAuditPeriodRecord costAuditPeriodRecord) {
+        //新建或更新
+        this.saveOrUpdate(costAuditPeriodRecord);
+    }
+
+    @Override
+    public List<CostAuditPeriodRecord> listByUploadIdAndAuditedUnitId(String uploadId, String auditedUnitId) {
+        return costAuditPeriodRecordDao.selectByUploadIdAndAuditedUnitId(uploadId, auditedUnitId);
+    }
+}
+

+ 30 - 2
assistMg/src/main/java/com/hotent/enterpriseDeclare/manager/impl/CostSurveyTemplateUploadDataManagerImpl.java

@@ -95,8 +95,17 @@ public class CostSurveyTemplateUploadDataManagerImpl extends BaseManagerImpl<Cos
             uploadId = upload.getId();
         }
 
-        // 先删除该上传记录和企业下的所有数据
-        deleteByUploadIdAndAuditedUnitId(uploadId, auditedUnitId);
+        // 获取periodRecordId(动态表使用)
+        String periodRecordId = firstData.getPeriodRecordId();
+        
+        // 先删除该上传记录和企业下的所有数据(如果是动态表,需要根据periodRecordId删除)
+        if (StringUtil.isNotEmpty(periodRecordId)) {
+            // 动态表:删除指定periodRecordId的数据
+            deleteByUploadIdAndAuditedUnitIdAndPeriodRecordId(uploadId, auditedUnitId, periodRecordId);
+        } else {
+            // 固定表和单记录:删除所有数据
+            deleteByUploadIdAndAuditedUnitId(uploadId, auditedUnitId);
+        }
 
         // 设置公共字段并保存新数据
         List<CostSurveyTemplateUploadData> saveList = new ArrayList<>();
@@ -108,6 +117,10 @@ public class CostSurveyTemplateUploadDataManagerImpl extends BaseManagerImpl<Cos
 
             data.setUploadId(uploadId);
             data.setAuditedUnitId(auditedUnitId);
+            // 如果是动态表,设置periodRecordId
+            if (StringUtil.isNotEmpty(periodRecordId)) {
+                data.setPeriodRecordId(periodRecordId);
+            }
             if (data.getIsDeleted() == null) {
                 data.setIsDeleted("0");
             }
@@ -145,5 +158,20 @@ public class CostSurveyTemplateUploadDataManagerImpl extends BaseManagerImpl<Cos
         wrapper.eq("is_deleted", "0");
         this.remove(wrapper);
     }
+
+    /**
+     * 根据上传记录ID、企业ID和监审期间记录ID删除数据(动态表使用)
+     * @param uploadId 上传记录ID
+     * @param auditedUnitId 企业ID
+     * @param periodRecordId 监审期间记录ID
+     */
+    private void deleteByUploadIdAndAuditedUnitIdAndPeriodRecordId(String uploadId, String auditedUnitId, String periodRecordId) {
+        QueryWrapper<CostSurveyTemplateUploadData> wrapper = new QueryWrapper<>();
+        wrapper.eq("upload_id", uploadId);
+        wrapper.eq("audited_unit_id", auditedUnitId);
+        wrapper.eq("period_record_id", periodRecordId);
+        wrapper.eq("is_deleted", "0");
+        this.remove(wrapper);
+    }
 }
 

+ 23 - 0
assistMg/src/main/java/com/hotent/enterpriseDeclare/model/CostSurveyTemplateUploadData.java

@@ -52,6 +52,13 @@ public class CostSurveyTemplateUploadData extends BaseModel<CostSurveyTemplateUp
     @JsonProperty("rvalue")
     private String rvalue;
     
+    @ApiModelProperty(value = "关联监审期间记录ID(动态表使用)")
+    @TableField("period_record_id")
+    @JsonProperty("periodRecordId")
+    private String periodRecordId;
+
+    private String parentId;
+    
     @ApiModelProperty(value = "逻辑删除:0正常 1删除")
     @TableField("is_deleted")
     @JsonProperty("isDeleted")
@@ -136,6 +143,14 @@ public class CostSurveyTemplateUploadData extends BaseModel<CostSurveyTemplateUp
         this.rvalue = rvalue;
     }
 
+    public String getPeriodRecordId() {
+        return periodRecordId;
+    }
+
+    public void setPeriodRecordId(String periodRecordId) {
+        this.periodRecordId = periodRecordId;
+    }
+
     public String getIsDeleted() {
         return isDeleted;
     }
@@ -192,6 +207,14 @@ public class CostSurveyTemplateUploadData extends BaseModel<CostSurveyTemplateUp
         this.surveyTemplateId = surveyTemplateId;
     }
 
+    public String getParentId() {
+        return parentId;
+    }
+
+    public void setParentId(String parentId) {
+        this.parentId = parentId;
+    }
+
     @Override
     protected Serializable pkVal() {
         return this.id;

+ 1 - 1
assistMg/src/main/java/com/hotent/project/model/CostProjectTask.java

@@ -92,7 +92,7 @@ public class CostProjectTask extends BaseModel<CostProjectTask> {
 
     @ApiModelProperty(value = "状态名称")
     @TableField(exist = false)
-    private String q;
+    private String statusName;
 
     @ApiModelProperty(value = "序号")
     @TableField("order_num")

+ 63 - 0
assistMg/src/main/resources/mapper/CostAuditPeriodRecordMapper.xml

@@ -0,0 +1,63 @@
+<?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.hotent.enterpriseDeclare.dao.CostAuditPeriodRecordDao">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.hotent.enterpriseDeclare.model.CostAuditPeriodRecord">
+        <id column="id" property="id" />
+        <result column="upload_id" property="uploadId" />
+        <result column="audited_unit_id" property="auditedUnitId" />
+        <result column="audit_period" property="auditPeriod" />
+        <result column="reporting_time" property="reportingTime" />
+        <result column="is_deleted" property="isDeleted" />
+        <result column="create_time" property="createTime" />
+        <result column="create_by" property="createBy" />
+        <result column="update_time" property="updateTime" />
+        <result column="update_by" property="updateBy" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, upload_id, audited_unit_id, audit_period, reporting_time, is_deleted, create_time, create_by, update_time, update_by
+    </sql>
+
+    <select id="selectPage" resultMap="BaseResultMap">
+        select 
+            <include refid="Base_Column_List"/> 
+        from
+            cost_audit_period_record
+        ${ew.customSqlSegment}
+    </select>
+    
+    <select id="selectList" resultMap="BaseResultMap">
+        select 
+            <include refid="Base_Column_List"/> 
+        from
+            cost_audit_period_record
+        ${ew.customSqlSegment}
+    </select>
+    
+    <select id="selectById" resultMap="BaseResultMap">
+        select 
+            <include refid="Base_Column_List"/> 
+        from
+            cost_audit_period_record
+        where 
+            id = #{id}
+    </select>
+
+    <!-- 根据上传记录ID和企业ID查询记录列表 -->
+    <select id="selectByUploadIdAndAuditedUnitId" resultMap="BaseResultMap">
+        SELECT 
+            <include refid="Base_Column_List"/>
+        FROM 
+            cost_audit_period_record
+        WHERE 
+            upload_id = #{uploadId}
+            AND audited_unit_id = #{auditedUnitId}
+            AND is_deleted = '0'
+        ORDER BY audit_period DESC, create_time DESC
+    </select>
+
+</mapper>
+

+ 3 - 1
assistMg/src/main/resources/mapper/CostSurveyTemplateUploadDataMapper.xml

@@ -10,6 +10,8 @@
         <result column="rowid" property="rowid" />
         <result column="rkey" property="rkey" />
         <result column="rvalue" property="rvalue" />
+        <result column="period_record_id" property="periodRecordId" />
+        <result column="parent_id" property="parentId" />
         <result column="is_deleted" property="isDeleted" />
         <result column="create_time" property="createTime" />
         <result column="create_by" property="createBy" />
@@ -19,7 +21,7 @@
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, upload_id, audited_unit_id, rowid, rkey, rvalue, is_deleted, create_time, create_by, update_time, update_by
+        id, upload_id, audited_unit_id, rowid, parent_id,rkey, rvalue, period_record_id, is_deleted, create_time, create_by, update_time, update_by
     </sql>
 
     <select id="selectPage" resultMap="BaseResultMap">