zhoulisky 11 months ago
parent
commit
7668e21a6b

+ 36 - 3
doc/sql/kd_dev.sql

@@ -11,7 +11,7 @@
  Target Server Version : 50741
  File Encoding         : 65001
 
- Date: 01/07/2025 22:21:24
+ Date: 02/07/2025 18:58:26
 */
 
 SET NAMES utf8mb4;
@@ -6256,8 +6256,9 @@ CREATE TABLE `kd_yfzd`  (
   `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID',
   `year_and_month` varchar(4) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属年份,如2025',
   `WJLX` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '文件类型',
+  `ZDWJDZ` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '企业的制度文件url地址',
   `ZDWJMC` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '企业的制度文件名称',
-  `ZDSSZM` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '制度实施证明,多个文件url用,分割',
+  `ZDSSZM` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '制度实施证明, 字符串数组',
   `ZDYXX` tinyint(1) NULL DEFAULT NULL COMMENT '制度有效性,1:有效,0:失效',
   `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
   `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门',
@@ -6267,13 +6268,45 @@ CREATE TABLE `kd_yfzd`  (
   `status` int(11) NULL DEFAULT 1 COMMENT '状态',
   `is_deleted` int(11) NULL DEFAULT 0 COMMENT '是否已删除',
   PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '研发制度' ROW_FORMAT = Dynamic;
+) ENGINE = InnoDB AUTO_INCREMENT = 1940326794218389507 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '研发制度' ROW_FORMAT = Dynamic;
 
 -- ----------------------------
 -- Records of kd_yfzd
 -- ----------------------------
 
 -- ----------------------------
+-- Table structure for kd_yfzd_type
+-- ----------------------------
+DROP TABLE IF EXISTS `kd_yfzd_type`;
+CREATE TABLE `kd_yfzd_type`  (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `WJLX` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '文件类型',
+  `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
+  `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门',
+  `create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+  `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人',
+  `update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
+  `status` int(11) NULL DEFAULT 1 COMMENT '状态',
+  `is_deleted` int(11) NULL DEFAULT 0 COMMENT '是否已删除',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 12 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '研发制度类型' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of kd_yfzd_type
+-- ----------------------------
+INSERT INTO `kd_yfzd_type` VALUES (1, '研发组织管理制度', NULL, NULL, '2025-07-02 15:43:47', NULL, '2025-07-02 15:43:47', 1, 0);
+INSERT INTO `kd_yfzd_type` VALUES (2, '研发经费投入与核算制度', NULL, NULL, '2025-07-02 15:44:12', NULL, '2025-07-02 15:44:12', 1, 0);
+INSERT INTO `kd_yfzd_type` VALUES (3, '研发准备金制度', NULL, NULL, '2025-07-02 15:44:18', NULL, '2025-07-02 15:44:18', 1, 0);
+INSERT INTO `kd_yfzd_type` VALUES (4, '研发机构成立及认定文件', NULL, NULL, '2025-07-02 15:44:34', NULL, '2025-07-02 15:44:34', 1, 0);
+INSERT INTO `kd_yfzd_type` VALUES (5, '产学研合作管理制度', NULL, NULL, '2025-07-02 15:44:42', NULL, '2025-07-02 15:44:42', 1, 0);
+INSERT INTO `kd_yfzd_type` VALUES (6, '科技成果转化的组织实施与激励奖励制度', NULL, NULL, '2025-07-02 15:44:48', NULL, '2025-07-02 15:44:48', 1, 0);
+INSERT INTO `kd_yfzd_type` VALUES (7, '创新创业平台创建及管理文件', NULL, NULL, '2025-07-02 15:44:54', NULL, '2025-07-02 15:44:54', 1, 0);
+INSERT INTO `kd_yfzd_type` VALUES (8, '科技人员的培养进修制度', NULL, NULL, '2025-07-02 15:45:00', NULL, '2025-07-02 15:45:00', 1, 0);
+INSERT INTO `kd_yfzd_type` VALUES (9, '科技人员技能培训制度', NULL, NULL, '2025-07-02 15:45:12', NULL, '2025-07-02 15:45:12', 1, 0);
+INSERT INTO `kd_yfzd_type` VALUES (10, '技术人才引进制度', NULL, NULL, '2025-07-02 15:45:19', NULL, '2025-07-02 15:45:19', 1, 0);
+INSERT INTO `kd_yfzd_type` VALUES (11, '研发技术人才绩效评价奖励制度', NULL, NULL, '2025-07-02 15:45:25', NULL, '2025-07-02 15:45:25', 1, 0);
+
+-- ----------------------------
 -- Table structure for kd_ys_qtfy
 -- ----------------------------
 DROP TABLE IF EXISTS `kd_ys_qtfy`;

+ 10 - 17
kd-service-api/kd-scientific-api/src/main/java/org/sky/scientific/pojo/entity/YfzdEntity.java

@@ -23,29 +23,22 @@ public class YfzdEntity extends TenantEntity {
 	@Serial
 	private static final long serialVersionUID = 1L;
 
-	/**
-	 * 所属年份,如2025
-	 */
 	@Schema(description = "所属年份,如2025")
 	private String yearAndMonth;
-	/**
-	 * 文件类型
-	 */
+
 	@Schema(description = "文件类型")
 	private String wjlx;
-	/**
-	 * 企业的制度文件名称
-	 */
-	@Schema(description = "企业的制度文件名称")
+
+	@Schema(description = "企业的制度文件-名称")
 	private String zdwjmc;
-	/**
-	 * 制度实施证明,多个文件url用,分割
-	 */
-	@Schema(description = "制度实施证明,多个文件url用,分割")
+
+
+	@Schema(description = "企业的制度文件-url地址")
+	private String zdwjdz;
+
+	@Schema(description = "制度实施证明,字符串数组")
 	private String zdsszm;
-	/**
-	 * 制度有效性,1:有效,0:失效
-	 */
+
 	@Schema(description = "制度有效性,1:有效,0:失效")
 	private Boolean zdyxx;
 

+ 35 - 70
kd-service/kd-scientific/src/main/java/org/sky/scientific/controller/YfzdController.java

@@ -1,6 +1,8 @@
 
 package org.sky.scientific.controller;
 
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
@@ -25,8 +27,10 @@ import org.sky.scientific.excel.YfzdExcel;
 import org.sky.scientific.wrapper.YfzdWrapper;
 import org.sky.scientific.service.IYfzdService;
 import org.sky.core.boot.ctrl.KdController;
+
 import java.util.Map;
 import java.util.List;
+
 import jakarta.servlet.http.HttpServletResponse;
 
 /**
@@ -41,96 +45,57 @@ import jakarta.servlet.http.HttpServletResponse;
 @Tag(name = "研发制度", description = "研发制度接口")
 public class YfzdController extends KdController {
 
-	private final IYfzdService yfzdService;
+	private final IYfzdService service;
 
-	/**
-	 * 研发制度 详情
-	 */
 	@GetMapping("/detail")
 	@ApiOperationSupport(order = 1)
-	@Operation(summary = "详情", description  = "传入yfzd")
-	public R<YfzdVO> detail(YfzdEntity yfzd) {
-		YfzdEntity detail = yfzdService.getOne(Condition.getQueryWrapper(yfzd));
-		return R.data(YfzdWrapper.build().entityVO(detail));
-	}
-	/**
-	 * 研发制度 分页
-	 */
-	@GetMapping("/list")
-	@ApiOperationSupport(order = 2)
-	@Operation(summary = "分页", description  = "传入yfzd")
-	public R<IPage<YfzdVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> yfzd, Query query) {
-		IPage<YfzdEntity> pages = yfzdService.page(Condition.getPage(query), Condition.getQueryWrapper(yfzd, YfzdEntity.class));
-		return R.data(YfzdWrapper.build().pageVO(pages));
+	@Operation(summary = "获取指定年度的制度文件", description = "传入yfzd")
+	public R<Map<String, List<YfzdEntity>>> selectYfzd(YfzdEntity yfzd) {
+		Map<String, List<YfzdEntity>> map = service.selectYfzd(yfzd);
+		return R.data(map);
 	}
 
-	/**
-	 * 研发制度 自定义分页
-	 */
-	@GetMapping("/page")
-	@ApiOperationSupport(order = 3)
-	@Operation(summary = "分页", description  = "传入yfzd")
-	public R<IPage<YfzdVO>> page(YfzdVO yfzd, Query query) {
-		IPage<YfzdVO> pages = yfzdService.selectYfzdPage(Condition.getPage(query), yfzd);
-		return R.data(pages);
-	}
-
-	/**
-	 * 研发制度 新增
-	 */
 	@PostMapping("/save")
 	@ApiOperationSupport(order = 4)
-	@Operation(summary = "新增", description  = "传入yfzd")
-	public R save(@Valid @RequestBody YfzdEntity yfzd) {
-		return R.status(yfzdService.save(yfzd));
-	}
-
-	/**
-	 * 研发制度 修改
-	 */
-	@PostMapping("/update")
-	@ApiOperationSupport(order = 5)
-	@Operation(summary = "修改", description  = "传入yfzd")
-	public R update(@Valid @RequestBody YfzdEntity yfzd) {
-		return R.status(yfzdService.updateById(yfzd));
+	@Operation(summary = "新增或修改", description = "传入yfzd")
+	public R saveOrUpdate(@Valid @RequestBody YfzdEntity yfzd) {
+		return R.status(service.editYfzd(yfzd));
 	}
 
-	/**
-	 * 研发制度 新增或修改
-	 */
-	@PostMapping("/submit")
-	@ApiOperationSupport(order = 6)
-	@Operation(summary = "新增或修改", description  = "传入yfzd")
-	public R submit(@Valid @RequestBody YfzdEntity yfzd) {
-		return R.status(yfzdService.saveOrUpdate(yfzd));
-	}
-
-	/**
-	 * 研发制度 删除
-	 */
 	@PostMapping("/remove")
 	@ApiOperationSupport(order = 7)
-	@Operation(summary = "逻辑删除", description  = "传入ids")
+	@Operation(summary = "删除", description = "传入ids")
 	public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
-		return R.status(yfzdService.deleteLogic(Func.toLongList(ids)));
+		return R.status(service.physicalDeleteByIds(Func.toLongList(ids)));
 	}
 
-
-	/**
-	 * 导出数据
-	 */
 	@IsAdmin
 	@GetMapping("/export-yfzd")
 	@ApiOperationSupport(order = 9)
-	@Operation(summary = "导出数据", description  = "传入yfzd")
+	@Operation(summary = "导出数据", description = "传入yfzd")
 	public void exportYfzd(@Parameter(hidden = true) @RequestParam Map<String, Object> yfzd, KdUser kdUser, HttpServletResponse response) {
 		QueryWrapper<YfzdEntity> queryWrapper = Condition.getQueryWrapper(yfzd, YfzdEntity.class);
-		//if (!AuthUtil.isAdministrator()) {
-		//	queryWrapper.lambda().eq(Yfzd::getTenantId, kdUser.getTenantId());
-		//}
-		//queryWrapper.lambda().eq(YfzdEntity::getIsDeleted, KdConstant.DB_NOT_DELETED);
-		List<YfzdExcel> list = yfzdService.exportYfzd(queryWrapper);
+		List<YfzdExcel> list = service.exportYfzd(queryWrapper);
 		ExcelUtil.export(response, "研发制度数据" + DateUtil.time(), "研发制度数据表", list, YfzdExcel.class);
 	}
 
+	public static void main(String[] args) {
+		JSONArray jsonArray = new JSONArray();
+		JSONObject jsonObject = new JSONObject();
+		jsonObject.put("url", "http://sxdhyig3c.hn-bkt.clouddn.com/upload/20250702/864da644cc7041f5414c55c1a6f625c7.png");
+		jsonObject.put("fileName", "111.png");
+		jsonArray.add(jsonObject);
+		jsonObject = new JSONObject();
+		jsonObject.put("url", "http://sxdhyig3c.hn-bkt.clouddn.com/upload/20250702/864da644cc7041f5414c55c1a6f625c7.png");
+		jsonObject.put("fileName", "222.png");
+		jsonArray.add(jsonObject);
+		jsonObject = new JSONObject();
+		jsonObject.put("url", "http://sxdhyig3c.hn-bkt.clouddn.com/upload/20250702/864da644cc7041f5414c55c1a6f625c7.png");
+		jsonObject.put("fileName", "333.png");
+		jsonArray.add(jsonObject);
+		System.out.println(jsonArray.toJSONString());
+
+//		"[{\"fileName\":\"111.png\",\"url\":\"http://sxdhyig3c.hn-bkt.clouddn.com/upload/20250702/864da644cc7041f5414c55c1a6f625c7.png\"},{\"fileName\":\"222.png\",\"url\":\"http://sxdhyig3c.hn-bkt.clouddn.com/upload/20250702/864da644cc7041f5414c55c1a6f625c7.png\"},{\"fileName\":\"333.png\",\"url\":\"http://sxdhyig3c.hn-bkt.clouddn.com/upload/20250702/864da644cc7041f5414c55c1a6f625c7.png\"}]\n"
+	}
+
 }

+ 23 - 48
kd-service/kd-scientific/src/main/java/org/sky/scientific/excel/YfzdExcel.java

@@ -27,53 +27,28 @@ public class YfzdExcel implements Serializable {
 	@Serial
 	private static final long serialVersionUID = 1L;
 
-	/**
-	 * 主键
-	 */
-	@ColumnWidth(20)
-	@ExcelProperty("主键")
-	private Long id;
-	/**
-	 * 租户ID
-	 */
-	@ColumnWidth(20)
-	@ExcelProperty("租户ID")
-	private String tenantId;
-	/**
-	 * 所属年份,如2025
-	 */
-	@ColumnWidth(20)
-	@ExcelProperty("所属年份,如2025")
-	private String yearAndMonth;
-	/**
-	 * 文件类型
-	 */
-	@ColumnWidth(20)
-	@ExcelProperty("文件类型")
-	private String wjlx;
-	/**
-	 * 企业的制度文件名称
-	 */
-	@ColumnWidth(20)
-	@ExcelProperty("企业的制度文件名称")
-	private String zdwjmc;
-	/**
-	 * 制度实施证明,多个文件url用,分割
-	 */
-	@ColumnWidth(20)
-	@ExcelProperty("制度实施证明,多个文件url用,分割")
-	private String zdsszm;
-	/**
-	 * 制度有效性,1:有效,0:失效
-	 */
-	@ColumnWidth(20)
-	@ExcelProperty("制度有效性,1:有效,0:失效")
-	private Boolean zdyxx;
-	/**
-	 * 是否已删除
-	 */
-	@ColumnWidth(20)
-	@ExcelProperty("是否已删除")
-	private Integer isDeleted;
+//	@ColumnWidth(20)
+//	@ExcelProperty("所属年份,如2025")
+//	private String yearAndMonth;
+
+//	@ColumnWidth(20)
+//	@ExcelProperty("文件类型")
+//	private String wjlx;
+//
+//	@ColumnWidth(20)
+//	@ExcelProperty("企业的制度文件名称")
+//	private String zdwjmc;
+//	/**
+//	 * 制度实施证明,多个文件url用,分割
+//	 */
+//	@ColumnWidth(20)
+//	@ExcelProperty("制度实施证明,多个文件url用,分割")
+//	private String zdsszm;
+//	/**
+//	 * 制度有效性,1:有效,0:失效
+//	 */
+//	@ColumnWidth(20)
+//	@ExcelProperty("制度有效性,1:有效,0:失效")
+//	private Boolean zdyxx;
 
 }

+ 3 - 0
kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/YfzdMapper.java

@@ -36,4 +36,7 @@ public interface YfzdMapper extends BaseMapper<YfzdEntity> {
 	 */
 	List<YfzdExcel> exportYfzd(@Param("ew") Wrapper<YfzdEntity> queryWrapper);
 
+	List<String> selectWJLXType();
+
+	boolean physicalDeleteByIds(List<Long> ids);
 }

+ 14 - 1
kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/YfzdMapper.xml

@@ -9,6 +9,7 @@
         <result column="year_and_month" property="yearAndMonth"/>
         <result column="WJLX" property="wjlx"/>
         <result column="ZDWJMC" property="zdwjmc"/>
+        <result column="ZDWJDZ" property="zdwjdz"/>
         <result column="ZDSSZM" property="zdsszm"/>
         <result column="ZDYXX" property="zdyxx"/>
         <result column="create_user" property="createUser"/>
@@ -20,9 +21,17 @@
         <result column="is_deleted" property="isDeleted"/>
     </resultMap>
 
+    <delete id="physicalDeleteByIds">
+        delete from kd_yfzd
+        where id in
+        <foreach item="id" collection="list" separator="," close=")" open="(" index="">
+            #{id}
+        </foreach>
+    </delete>
+
 
     <select id="selectYfzdPage" resultMap="yfzdResultMap">
-        select * from kd_yfzd where is_deleted = 0
+        select * from c where is_deleted = 0
     </select>
 
 
@@ -30,4 +39,8 @@
         SELECT * FROM kd_yfzd ${ew.customSqlSegment}
     </select>
 
+    <select id="selectWJLXType">
+        select WJLX from kd_yfzd_type
+    </select>
+
 </mapper>

+ 24 - 0
kd-service/kd-scientific/src/main/java/org/sky/scientific/service/IYfzdService.java

@@ -1,6 +1,7 @@
 
 package org.sky.scientific.service;
 
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import org.sky.scientific.pojo.entity.YfzdEntity;
 import org.sky.scientific.pojo.vo.YfzdVO;
@@ -8,6 +9,7 @@ import org.sky.scientific.excel.YfzdExcel;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.sky.core.mp.base.BaseService;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 研发制度 服务类
@@ -34,4 +36,26 @@ public interface IYfzdService extends BaseService<YfzdEntity> {
 	 */
 	List<YfzdExcel> exportYfzd(Wrapper<YfzdEntity> queryWrapper);
 
+	/**
+	 * 修改数据
+	 *
+	 * @param yfzd 研发制度
+	 * @return boolean
+	 */
+	boolean editYfzd(YfzdEntity yfzd);
+
+	/**
+	 * 查询数据
+	 *
+	 * @param yfzd 研发制度
+	 */
+	Map<String, List<YfzdEntity>> selectYfzd(YfzdEntity yfzd);
+
+	/**
+	 * 删除数据
+	 *
+	 * @param longList
+	 * @return
+	 */
+	boolean physicalDeleteByIds(List<Long> ids);
 }

+ 40 - 1
kd-service/kd-scientific/src/main/java/org/sky/scientific/service/impl/YfzdServiceImpl.java

@@ -1,6 +1,13 @@
 
 package org.sky.scientific.service.impl;
 
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import org.apache.commons.lang3.ArrayUtils;
+import org.sky.core.log.exception.ServiceException;
+import org.sky.core.tool.utils.CollectionUtil;
+import org.sky.core.tool.utils.StringUtil;
 import org.sky.scientific.pojo.entity.YfzdEntity;
 import org.sky.scientific.pojo.vo.YfzdVO;
 import org.sky.scientific.excel.YfzdExcel;
@@ -10,7 +17,9 @@ import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.sky.core.mp.base.BaseServiceImpl;
-import java.util.List;
+
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 研发制度 服务实现类
@@ -36,4 +45,34 @@ public class YfzdServiceImpl extends BaseServiceImpl<YfzdMapper, YfzdEntity> imp
 		return yfzdList;
 	}
 
+	@Override
+	public boolean editYfzd(YfzdEntity yfzd) {
+		return this.saveOrUpdate(yfzd);
+	}
+
+	@Override
+	public Map<String, List<YfzdEntity>> selectYfzd(YfzdEntity yfzd) {
+		if(StringUtil.isBlank(yfzd.getYearAndMonth())){
+			throw new ServiceException("请选择年份");
+		}
+		List<String> wjlxTypeList = baseMapper.selectWJLXType();
+		LambdaQueryWrapper<YfzdEntity> queryWrapper = Wrappers.<YfzdEntity>lambdaQuery().eq(YfzdEntity::getYearAndMonth, yfzd.getYearAndMonth());
+		List<YfzdEntity> yfzdList = baseMapper.selectList(queryWrapper);
+		Map<String, List<YfzdEntity>> collected = yfzdList.stream().collect(Collectors.groupingBy(YfzdEntity::getWjlx));
+		if(collected.isEmpty()){
+			collected = new HashMap<>();
+		}
+		for (String wjlxType : wjlxTypeList) {
+			if (!collected.keySet().contains(wjlxType)) {
+				collected.put(wjlxType, new ArrayList<YfzdEntity>());
+			}
+		}
+		return collected;
+	}
+
+	@Override
+	public boolean physicalDeleteByIds(List<Long> ids) {
+		return baseMapper.physicalDeleteByIds(ids);
+	}
+
 }