yin_yu820 1 gadu atpakaļ
vecāks
revīzija
dd25ba38d5
46 mainītis faili ar 1860 papildinājumiem un 24 dzēšanām
  1. 34 0
      jp-console/jeeplus-modules/gw/pom.xml
  2. 85 0
      jp-console/jeeplus-modules/gw/src/main/java/com/jeeplus/circulation/controller/GwCirculationCardController.java
  3. 66 0
      jp-console/jeeplus-modules/gw/src/main/java/com/jeeplus/circulation/domain/GwCirculationCard.java
  4. 17 0
      jp-console/jeeplus-modules/gw/src/main/java/com/jeeplus/circulation/mapper/GwCirculationCardMapper.java
  5. 6 0
      jp-console/jeeplus-modules/gw/src/main/java/com/jeeplus/circulation/mapper/xml/GwCirculationCardMapper.xml
  6. 55 0
      jp-console/jeeplus-modules/gw/src/main/java/com/jeeplus/circulation/service/GwCirculationCardService.java
  7. 75 0
      jp-console/jeeplus-modules/gw/src/main/java/com/jeeplus/circulation/service/dto/GwCirculationCardDTO.java
  8. 24 0
      jp-console/jeeplus-modules/gw/src/main/java/com/jeeplus/circulation/service/mapstruct/GwCirculationCardWrapper.java
  9. 154 0
      jp-console/jeeplus-modules/gw/src/main/java/com/jeeplus/circulation2/controller/GwCirculationCard2Controller.java
  10. 69 0
      jp-console/jeeplus-modules/gw/src/main/java/com/jeeplus/circulation2/domain/GwCirculationCard2.java
  11. 17 0
      jp-console/jeeplus-modules/gw/src/main/java/com/jeeplus/circulation2/mapper/GwCirculationCard2Mapper.java
  12. 6 0
      jp-console/jeeplus-modules/gw/src/main/java/com/jeeplus/circulation2/mapper/xml/GwCirculationCard2Mapper.xml
  13. 21 0
      jp-console/jeeplus-modules/gw/src/main/java/com/jeeplus/circulation2/service/GwCirculationCard2Service.java
  14. 90 0
      jp-console/jeeplus-modules/gw/src/main/java/com/jeeplus/circulation2/service/dto/GwCirculationCard2DTO.java
  15. 24 0
      jp-console/jeeplus-modules/gw/src/main/java/com/jeeplus/circulation2/service/mapstruct/GwCirculationCard2Wrapper.java
  16. 1 1
      jp-console/jeeplus-modules/jeeplus-test/target/generated-sources/annotations/com/jeeplus/test/activiti/service/mapstruct/TestActivitiAuditWrapperImpl.java
  17. 1 1
      jp-console/jeeplus-modules/jeeplus-test/target/generated-sources/annotations/com/jeeplus/test/grid/service/mapstruct/TestContinentWrapperImpl.java
  18. 1 1
      jp-console/jeeplus-modules/jeeplus-test/target/generated-sources/annotations/com/jeeplus/test/grid/service/mapstruct/TestCountryWrapperImpl.java
  19. 1 1
      jp-console/jeeplus-modules/jeeplus-test/target/generated-sources/annotations/com/jeeplus/test/manytomany/service/mapstruct/TestCourseWrapperImpl.java
  20. 1 1
      jp-console/jeeplus-modules/jeeplus-test/target/generated-sources/annotations/com/jeeplus/test/manytomany/service/mapstruct/TestStudentCourseWrapperImpl.java
  21. 1 1
      jp-console/jeeplus-modules/jeeplus-test/target/generated-sources/annotations/com/jeeplus/test/manytomany/service/mapstruct/TestStudentWrapperImpl.java
  22. 1 1
      jp-console/jeeplus-modules/jeeplus-test/target/generated-sources/annotations/com/jeeplus/test/mobile/service/mapstruct/TestMobileWrapperImpl.java
  23. 1 1
      jp-console/jeeplus-modules/jeeplus-test/target/generated-sources/annotations/com/jeeplus/test/note/service/mapstruct/TestNoteWrapperImpl.java
  24. 1 1
      jp-console/jeeplus-modules/jeeplus-test/target/generated-sources/annotations/com/jeeplus/test/one/service/mapstruct/TestFormLeaveWrapperImpl.java
  25. 1 1
      jp-console/jeeplus-modules/jeeplus-test/target/generated-sources/annotations/com/jeeplus/test/onetomany/service/mapstruct/TestDataChild1WrapperImpl.java
  26. 1 1
      jp-console/jeeplus-modules/jeeplus-test/target/generated-sources/annotations/com/jeeplus/test/onetomany/service/mapstruct/TestDataChild2WrapperImpl.java
  27. 1 1
      jp-console/jeeplus-modules/jeeplus-test/target/generated-sources/annotations/com/jeeplus/test/onetomany/service/mapstruct/TestDataChild3WrapperImpl.java
  28. 1 1
      jp-console/jeeplus-modules/jeeplus-test/target/generated-sources/annotations/com/jeeplus/test/onetomany/service/mapstruct/TestDataMainWrapperImpl.java
  29. 1 1
      jp-console/jeeplus-modules/jeeplus-test/target/generated-sources/annotations/com/jeeplus/test/pic/service/mapstruct/TestPicWrapperImpl.java
  30. 1 1
      jp-console/jeeplus-modules/jeeplus-test/target/generated-sources/annotations/com/jeeplus/test/shop/service/mapstruct/TestCategoryWrapperImpl.java
  31. 1 1
      jp-console/jeeplus-modules/jeeplus-test/target/generated-sources/annotations/com/jeeplus/test/shop/service/mapstruct/TestGoodsWrapperImpl.java
  32. 1 1
      jp-console/jeeplus-modules/jeeplus-test/target/generated-sources/annotations/com/jeeplus/test/tree/service/mapstruct/TestTreeWrapperImpl.java
  33. 1 1
      jp-console/jeeplus-modules/jeeplus-test/target/generated-sources/annotations/com/jeeplus/test/treetable/service/mapstruct/TestCarKindWrapperImpl.java
  34. 1 1
      jp-console/jeeplus-modules/jeeplus-test/target/generated-sources/annotations/com/jeeplus/test/treetable/service/mapstruct/TestCarWrapperImpl.java
  35. 1 1
      jp-console/jeeplus-modules/jeeplus-test/target/generated-sources/annotations/com/jeeplus/test/validation/service/mapstruct/TestValidationWrapperImpl.java
  36. 1 0
      jp-console/jeeplus-modules/pom.xml
  37. 6 0
      jp-console/jeeplus-web/pom.xml
  38. 2 2
      jp-console/jeeplus-web/src/main/resources/application-development.yml
  39. 2 2
      jp-console/jeeplus-web/target/classes/application-development.yml
  40. 35 0
      jp-ui/src/api/circulation/gwCirculationCardService.js
  41. 60 0
      jp-ui/src/api/circulation2/gwCirculationCard2Service.js
  42. 1 0
      jp-ui/src/router/index.js
  43. 166 0
      jp-ui/src/views/circulation/GwCirculationCardForm.vue
  44. 274 0
      jp-ui/src/views/circulation/GwCirculationCardList.vue
  45. 165 0
      jp-ui/src/views/circulation2/GwCirculationCard2Form.vue
  46. 385 0
      jp-ui/src/views/circulation2/GwCirculationCard2List.vue

+ 34 - 0
jp-console/jeeplus-modules/gw/pom.xml

@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>jeeplus-modules</artifactId>
+        <groupId>org.jeeplus</groupId>
+        <version>9.0</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>gw</artifactId>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.jeeplus</groupId>
+            <artifactId>jeeplus-common</artifactId>
+            <version>9.0</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.jeeplus</groupId>
+            <artifactId>jeeplus-admin</artifactId>
+            <version>9.0</version>
+            <scope>compile</scope>
+        </dependency>
+    </dependencies>
+
+    <properties>
+        <maven.compiler.source>11</maven.compiler.source>
+        <maven.compiler.target>11</maven.compiler.target>
+    </properties>
+
+</project>

+ 85 - 0
jp-console/jeeplus-modules/gw/src/main/java/com/jeeplus/circulation/controller/GwCirculationCardController.java

@@ -0,0 +1,85 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.circulation.controller;
+
+import javax.validation.Valid;
+import com.jeeplus.common.utils.ResponseUtil;
+import com.jeeplus.core.query.QueryWrapperGenerator;
+import com.jeeplus.aop.logging.annotation.ApiLog;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.http.ResponseEntity;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jeeplus.circulation.domain.GwCirculationCard;
+import com.jeeplus.circulation.service.dto.GwCirculationCardDTO;
+import com.jeeplus.circulation.service.GwCirculationCardService;
+
+/**
+ * 公文流转Controller
+ * @author 尹宇
+ * @version 2024-03-20
+ */
+@Api(tags ="公文流转")
+@RestController
+@RequestMapping(value = "/circulation/gwCirculationCard")
+public class GwCirculationCardController {
+
+	@Autowired
+	private GwCirculationCardService gwCirculationCardService;
+
+	/**
+	 * 公文流转列表数据
+	 */
+	@ApiLog("查询公文流转列表数据")
+	@ApiOperation(value = "查询公文流转列表数据")
+	@GetMapping("list")
+	public ResponseEntity<IPage<GwCirculationCard>> list(GwCirculationCardDTO gwCirculationCardDTO, Page<GwCirculationCard> page) throws Exception {
+		QueryWrapper queryWrapper = QueryWrapperGenerator.buildQueryCondition (gwCirculationCardDTO, GwCirculationCardDTO.class);
+		IPage<GwCirculationCard> result = gwCirculationCardService.page (page, queryWrapper);
+		return ResponseEntity.ok (result);
+	}
+
+
+	/**
+	 * 根据Id获取公文流转数据
+	 */
+	@ApiLog("根据Id获取公文流转数据")
+	@ApiOperation(value = "根据Id获取公文流转数据")
+	@GetMapping("queryById")
+	public ResponseEntity<GwCirculationCardDTO> queryById(String id) {
+		return ResponseEntity.ok ( gwCirculationCardService.findById ( id ) );
+	}
+
+	/**
+	 * 保存公文流转
+	 */
+	@ApiLog("保存公文流转")
+	@ApiOperation(value = "保存公文流转")
+	@PostMapping("save")
+	public  ResponseEntity <String> save(@Valid @RequestBody GwCirculationCardDTO gwCirculationCardDTO) {
+		//新增或编辑表单保存
+		gwCirculationCardService.saveOrUpdate (gwCirculationCardDTO);
+		return ResponseUtil.newInstance ( ).add("businessTable", "gw_circulation_card").add("businessId", gwCirculationCardDTO.getId()).ok ("保存公文流转成功");
+	}
+
+
+	/**
+	 * 删除公文流转
+	 */
+	@ApiLog("删除公文流转")
+	@ApiOperation(value = "删除公文流转")
+	@DeleteMapping("delete")
+	public ResponseEntity <String> delete(String ids) {
+		String idArray[] = ids.split(",");
+		for(String id: idArray){
+			gwCirculationCardService.removeById ( id );
+		}
+		return ResponseEntity.ok( "删除公文流转成功" );
+	}
+
+}

+ 66 - 0
jp-console/jeeplus-modules/gw/src/main/java/com/jeeplus/circulation/domain/GwCirculationCard.java

@@ -0,0 +1,66 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.circulation.domain;
+
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import com.jeeplus.core.query.Query;
+import com.jeeplus.core.query.QueryType;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+/**
+ * 公文流转Entity
+ * @author 尹宇
+ * @version 2024-03-20
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("gw_circulation_card")
+public class GwCirculationCard extends BaseEntity {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+     * 年度
+     */
+	private String yearNum;
+	/**
+     * 卡号
+     */
+	private String cardNum;
+	/**
+     * 来文机关
+     */
+	private String sendingAgency;
+	/**
+     * 来文字号
+     */
+	private String docFontSize;
+	/**
+     * 文件来源
+     */
+	private String fileSource;
+	/**
+     * 成文时间
+     */
+	private Date writtenTime;
+	/**
+     * 收文时间
+     */
+	private Date receivingTime;
+	/**
+     * 内容摘要
+     */
+	private String contentSummary;
+	/**
+     * 来文附件id
+     */
+	private String attachedDocumentId;
+	/**
+     * 流程实例id
+     */
+	private String procInsId;
+
+}

+ 17 - 0
jp-console/jeeplus-modules/gw/src/main/java/com/jeeplus/circulation/mapper/GwCirculationCardMapper.java

@@ -0,0 +1,17 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.circulation.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jeeplus.circulation.domain.GwCirculationCard;
+
+/**
+ * 公文流转MAPPER接口
+ * @author 尹宇
+ * @version 2024-03-20
+ */
+public interface GwCirculationCardMapper extends BaseMapper<GwCirculationCard> {
+
+
+}

+ 6 - 0
jp-console/jeeplus-modules/gw/src/main/java/com/jeeplus/circulation/mapper/xml/GwCirculationCardMapper.xml

@@ -0,0 +1,6 @@
+<?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.jeeplus.circulation.mapper.GwCirculationCardMapper">
+
+
+</mapper>

+ 55 - 0
jp-console/jeeplus-modules/gw/src/main/java/com/jeeplus/circulation/service/GwCirculationCardService.java

@@ -0,0 +1,55 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.circulation.service;
+
+import com.jeeplus.sys.constant.CommonConstants;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.beans.factory.annotation.Autowired;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jeeplus.circulation.service.dto.GwCirculationCardDTO;
+import com.jeeplus.circulation.service.mapstruct.GwCirculationCardWrapper;
+import com.jeeplus.circulation.domain.GwCirculationCard;
+import com.jeeplus.circulation.mapper.GwCirculationCardMapper;
+
+/**
+ * 公文流转Service
+ * @author 尹宇
+ * @version 2024-03-20
+ */
+@Service
+@Transactional
+public class GwCirculationCardService extends ServiceImpl<GwCirculationCardMapper, GwCirculationCard> {
+
+	/**
+	 * 根据id查询
+	 * @param id
+	 * @return
+	 */
+	public GwCirculationCardDTO findById(String id) {
+		GwCirculationCardDTO gwCirculationCardDTO = GwCirculationCardWrapper.INSTANCE.toDTO ( super.getById ( id ) );
+		return gwCirculationCardDTO;
+	}
+
+	/**
+	 * 保存或者更新
+	 * @param  gwCirculationCardDTO
+	 * @return
+	 */
+	public void saveOrUpdate(GwCirculationCardDTO gwCirculationCardDTO) {
+		GwCirculationCard gwCirculationCard =  GwCirculationCardWrapper.INSTANCE.toEntity ( gwCirculationCardDTO );
+		super.saveOrUpdate (gwCirculationCard);
+		gwCirculationCardDTO.setId ( gwCirculationCard.getId () );
+	}
+
+	/**
+	 * 删除
+	 * @param  id
+	 * @return
+	 */
+	public void removeById(String id) {
+		super.removeById ( id );
+	}
+
+}

+ 75 - 0
jp-console/jeeplus-modules/gw/src/main/java/com/jeeplus/circulation/service/dto/GwCirculationCardDTO.java

@@ -0,0 +1,75 @@
+/**
+        * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+        */
+        package com.jeeplus.circulation.service.dto;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.jeeplus.core.query.Query;
+import com.jeeplus.core.query.QueryType;
+import com.jeeplus.core.service.dto.BaseDTO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+/**
+ * 公文流转Entity
+ * @author 尹宇
+ * @version 2024-03-20
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class GwCirculationCardDTO extends BaseDTO {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+     * 年度
+     */
+    @Query(type = QueryType.LIKE)
+	private String yearNum;
+	/**
+     * 卡号
+     */
+    @Query(type = QueryType.LIKE)
+	private String cardNum;
+	/**
+     * 来文机关
+     */
+    @Query(type = QueryType.LIKE)
+	private String sendingAgency;
+	/**
+     * 来文字号
+     */
+    @Query(type = QueryType.LIKE)
+	private String docFontSize;
+	/**
+     * 文件来源
+     */
+    @Query(type = QueryType.LIKE)
+	private String fileSource;
+	/**
+     * 成文时间
+     */
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Query(type = QueryType.EQ)
+	private Date writtenTime;
+	/**
+     * 收文时间
+     */
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Query(type = QueryType.EQ)
+	private Date receivingTime;
+	/**
+     * 内容摘要
+     */
+    @Query(type = QueryType.LIKE)
+	private String contentSummary;
+	/**
+     * 来文附件id
+     */
+	private String attachedDocumentId;
+	/**
+     * 流程实例id
+     */
+	private String procInsId;
+
+}

+ 24 - 0
jp-console/jeeplus-modules/gw/src/main/java/com/jeeplus/circulation/service/mapstruct/GwCirculationCardWrapper.java

@@ -0,0 +1,24 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.circulation.service.mapstruct;
+
+
+import com.jeeplus.core.mapstruct.EntityWrapper;
+import com.jeeplus.circulation.service.dto.GwCirculationCardDTO;
+import com.jeeplus.circulation.domain.GwCirculationCard;
+import org.mapstruct.Mapper;
+import org.mapstruct.ReportingPolicy;
+import org.mapstruct.factory.Mappers;
+
+/**
+ *  GwCirculationCardWrapper
+ * @author 尹宇
+ * @version 2024-03-20
+ */
+@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, uses = {} )
+public interface GwCirculationCardWrapper extends EntityWrapper<GwCirculationCardDTO, GwCirculationCard> {
+
+    GwCirculationCardWrapper INSTANCE = Mappers.getMapper(GwCirculationCardWrapper.class);
+}
+

+ 154 - 0
jp-console/jeeplus-modules/gw/src/main/java/com/jeeplus/circulation2/controller/GwCirculationCard2Controller.java

@@ -0,0 +1,154 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.circulation2.controller;
+
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+import com.google.common.collect.Lists;
+import com.jeeplus.aop.logging.annotation.ApiLog;
+import com.jeeplus.core.excel.EasyExcelUtils;
+import com.jeeplus.core.excel.ExcelOptions;
+import com.jeeplus.core.excel.annotation.ExportMode;
+import com.jeeplus.core.query.QueryWrapperGenerator;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jeeplus.circulation2.domain.GwCirculationCard2;
+import com.jeeplus.circulation2.service.dto.GwCirculationCard2DTO;
+import com.jeeplus.circulation2.service.mapstruct.GwCirculationCard2Wrapper;
+import com.jeeplus.circulation2.service.GwCirculationCard2Service;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.IOException;
+import java.util.List;
+
+/**
+ * 公文流转Controller
+ * @author 尹宇
+ * @version 2024-03-20
+ */
+
+@Api(tags ="公文流转")
+@RestController
+@RequestMapping(value = "/circulation2/gwCirculationCard2")
+public class GwCirculationCard2Controller {
+
+	@Autowired
+	private GwCirculationCard2Service gwCirculationCard2Service;
+
+	@Autowired
+	private GwCirculationCard2Wrapper gwCirculationCard2Wrapper;
+
+	/**
+	 * 公文流转列表数据
+	 */
+	@ApiLog("查询公文流转列表数据")
+	@ApiOperation(value = "查询公文流转列表数据")
+	@PreAuthorize("hasAuthority('circulation2:gwCirculationCard2:list')")
+	@GetMapping("list")
+	public ResponseEntity<IPage<GwCirculationCard2DTO>> list(GwCirculationCard2DTO gwCirculationCard2DTO, Page<GwCirculationCard2> page) throws Exception {
+		QueryWrapper queryWrapper = QueryWrapperGenerator.buildQueryCondition (gwCirculationCard2DTO, GwCirculationCard2DTO.class);
+		IPage<GwCirculationCard2DTO> result = gwCirculationCard2Wrapper.toDTO ( gwCirculationCard2Service.page (page, queryWrapper) );
+		return ResponseEntity.ok (result);
+	}
+
+
+	/**
+	 * 根据Id获取公文流转数据
+	 */
+	@ApiLog("根据Id获取公文流转数据")
+	@ApiOperation(value = "根据Id获取公文流转数据")
+	@PreAuthorize("hasAnyAuthority('circulation2:gwCirculationCard2:view','circulation2:gwCirculationCard2:add','circulation2:gwCirculationCard2:edit')")
+	@GetMapping("queryById")
+	public ResponseEntity<GwCirculationCard2DTO> queryById(String id) {
+		return ResponseEntity.ok ( gwCirculationCard2Wrapper.toDTO ( gwCirculationCard2Service.getById ( id ) ) );
+	}
+
+	/**
+	 * 保存公文流转
+	 */
+	@ApiLog("保存公文流转")
+	@ApiOperation(value = "保存公文流转")
+	@PreAuthorize("hasAnyAuthority('circulation2:gwCirculationCard2:add','circulation2:gwCirculationCard2:edit')")
+	@PostMapping("save")
+	public  ResponseEntity <String> save(@Valid @RequestBody GwCirculationCard2DTO gwCirculationCard2DTO) {
+		//新增或编辑表单保存
+		gwCirculationCard2Service.saveOrUpdate (gwCirculationCard2Wrapper.toEntity (gwCirculationCard2DTO));
+        return ResponseEntity.ok ( "保存公文流转成功" );
+	}
+
+
+	/**
+	 * 删除公文流转
+	 */
+	@ApiLog("删除公文流转")
+	@ApiOperation(value = "删除公文流转")
+	@PreAuthorize("hasAuthority('circulation2:gwCirculationCard2:del')")
+	@DeleteMapping("delete")
+	public ResponseEntity <String> delete(String ids) {
+		String idArray[] = ids.split(",");
+        gwCirculationCard2Service.removeByIds ( Lists.newArrayList ( idArray ) );
+		return ResponseEntity.ok( "删除公文流转成功" );
+	}
+	
+    /**
+     * 导出公文流转数据
+     *
+     * @param gwCirculationCard2DTO
+     * @param page
+     * @param response
+     * @throws Exception
+     */
+    @ApiLog("导出公文流转数据")
+    @PreAuthorize("hasAnyAuthority('circulation2:gwCirculationCard2:export')")
+    @GetMapping("export")
+    public void exportFile(GwCirculationCard2DTO gwCirculationCard2DTO, Page <GwCirculationCard2> page, ExcelOptions options, HttpServletResponse response) throws Exception {
+        String fileName = options.getFilename ( );
+		QueryWrapper queryWrapper = QueryWrapperGenerator.buildQueryCondition (gwCirculationCard2DTO, GwCirculationCard2DTO.class);
+        if ( ExportMode.current.equals ( options.getMode ( ) ) ) { // 导出当前页数据
+            
+        } else if ( ExportMode.selected.equals ( options.getMode ( ) ) ) { // 导出选中数据
+            queryWrapper.in ( "id", options.getSelectIds () );
+        } else { // 导出全部数据
+            page.setSize ( -1 );
+            page.setCurrent ( 0 );
+        }
+        List < GwCirculationCard2> result = gwCirculationCard2Service.page ( page, queryWrapper ).getRecords ( );
+        EasyExcelUtils.newInstance ( gwCirculationCard2Service, gwCirculationCard2Wrapper ).exportExcel ( result,  options.getSheetName ( ), GwCirculationCard2DTO.class, fileName,options.getExportFields (), response );
+    }
+
+    /**
+     * 导入公文流转数据
+     *
+     * @return
+     */
+    @PreAuthorize("hasAnyAuthority('circulation2:gwCirculationCard2:import')")
+    @PostMapping("import")
+    public ResponseEntity importFile(MultipartFile file) throws IOException {
+        String result = EasyExcelUtils.newInstance ( gwCirculationCard2Service, gwCirculationCard2Wrapper ).importExcel ( file, GwCirculationCard2DTO.class );
+        return ResponseEntity.ok ( result );
+    }
+
+    /**
+     * 下载导入公文流转数据模板
+     *
+     * @param response
+     * @return
+     */
+    @PreAuthorize ("hasAnyAuthority('circulation2:gwCirculationCard2:import')")
+    @GetMapping("import/template")
+    public void importFileTemplate(HttpServletResponse response) throws IOException {
+        String fileName = "公文流转数据导入模板.xlsx";
+        List<GwCirculationCard2DTO> list = Lists.newArrayList();
+        EasyExcelUtils.newInstance ( gwCirculationCard2Service, gwCirculationCard2Wrapper ).exportExcel ( list,  "公文流转数据", GwCirculationCard2DTO.class, fileName, null, response );
+    }
+
+
+}

+ 69 - 0
jp-console/jeeplus-modules/gw/src/main/java/com/jeeplus/circulation2/domain/GwCirculationCard2.java

@@ -0,0 +1,69 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.circulation2.domain;
+
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+/**
+ * 公文流转Entity
+ * @author 尹宇
+ * @version 2024-03-20
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("gw_circulation_card2")
+public class GwCirculationCard2 extends BaseEntity {
+
+	private static final long serialVersionUID = 1L;
+
+			
+	/**
+     * 年度
+     */
+	private String yearNum;
+			
+	/**
+     * 卡号
+     */
+	private String cardNum;
+			
+	/**
+     * 来文机关
+     */
+	private String sendingAgency;
+			
+	/**
+     * 来文字号
+     */
+	private String docFontSize;
+			
+	/**
+     * 文件来源
+     */
+	private String fileSource;
+			
+	/**
+     * 成文时间
+     */
+	private Date writtenTime;
+			
+	/**
+     * 收文时间
+     */
+	private Date receivingTime;
+			
+	/**
+     * 内容摘要
+     */
+	private String contentSummary;
+			
+	/**
+     * 来文附件id
+     */
+	private String attachedDocumentId;
+
+}

+ 17 - 0
jp-console/jeeplus-modules/gw/src/main/java/com/jeeplus/circulation2/mapper/GwCirculationCard2Mapper.java

@@ -0,0 +1,17 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.circulation2.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jeeplus.circulation2.domain.GwCirculationCard2;
+
+/**
+ * 公文流转MAPPER接口
+ * @author 尹宇
+ * @version 2024-03-20
+ */
+public interface GwCirculationCard2Mapper extends BaseMapper<GwCirculationCard2> {
+
+
+}

+ 6 - 0
jp-console/jeeplus-modules/gw/src/main/java/com/jeeplus/circulation2/mapper/xml/GwCirculationCard2Mapper.xml

@@ -0,0 +1,6 @@
+<?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.jeeplus.circulation2.mapper.GwCirculationCard2Mapper">
+
+
+</mapper>

+ 21 - 0
jp-console/jeeplus-modules/gw/src/main/java/com/jeeplus/circulation2/service/GwCirculationCard2Service.java

@@ -0,0 +1,21 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.circulation2.service;
+
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jeeplus.circulation2.domain.GwCirculationCard2;
+import com.jeeplus.circulation2.mapper.GwCirculationCard2Mapper;
+
+/**
+ * 公文流转Service
+ * @author 尹宇
+ * @version 2024-03-20
+ */
+@Service
+@Transactional
+public class GwCirculationCard2Service extends ServiceImpl<GwCirculationCard2Mapper, GwCirculationCard2> {
+
+}

+ 90 - 0
jp-console/jeeplus-modules/gw/src/main/java/com/jeeplus/circulation2/service/dto/GwCirculationCard2DTO.java

@@ -0,0 +1,90 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.circulation2.service.dto;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.jeeplus.core.query.Query;
+import com.jeeplus.core.query.QueryType;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.jeeplus.core.service.dto.BaseDTO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+/**
+ * 公文流转DTO
+ * @author 尹宇
+ * @version 2024-03-20
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class GwCirculationCard2DTO extends BaseDTO {
+
+	private static final long serialVersionUID = 1L;
+
+	        
+	/**
+     * 年度
+     */
+    @Query(type = QueryType.LIKE)
+	@ExcelProperty("年度") 
+	private String yearNum;
+	        
+	/**
+     * 卡号
+     */
+    @Query(type = QueryType.LIKE)
+	@ExcelProperty("卡号") 
+	private String cardNum;
+	        
+	/**
+     * 来文机关
+     */
+    @Query(type = QueryType.LIKE)
+	@ExcelProperty("来文机关") 
+	private String sendingAgency;
+	        
+	/**
+     * 来文字号
+     */
+    @Query(type = QueryType.LIKE)
+	@ExcelProperty("来文字号") 
+	private String docFontSize;
+	        
+	/**
+     * 文件来源
+     */
+    @Query(type = QueryType.LIKE)
+	@ExcelProperty("文件来源") 
+	private String fileSource;
+	        
+	/**
+     * 成文时间
+     */
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Query(type = QueryType.EQ)
+	@ExcelProperty("成文时间") 
+	private Date writtenTime;
+	        
+	/**
+     * 收文时间
+     */
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Query(type = QueryType.EQ)
+	@ExcelProperty("收文时间") 
+	private Date receivingTime;
+	        
+	/**
+     * 内容摘要
+     */
+    @Query(type = QueryType.LIKE)
+	@ExcelProperty("内容摘要") 
+	private String contentSummary;
+	        
+	/**
+     * 来文附件id
+     */
+	@ExcelProperty("来文附件id") 
+	private String attachedDocumentId;
+
+}

+ 24 - 0
jp-console/jeeplus-modules/gw/src/main/java/com/jeeplus/circulation2/service/mapstruct/GwCirculationCard2Wrapper.java

@@ -0,0 +1,24 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.circulation2.service.mapstruct;
+
+
+import com.jeeplus.core.mapstruct.EntityWrapper;
+import com.jeeplus.circulation2.service.dto.GwCirculationCard2DTO;
+import com.jeeplus.circulation2.domain.GwCirculationCard2;
+import org.mapstruct.Mapper;
+import org.mapstruct.ReportingPolicy;
+import org.mapstruct.factory.Mappers;
+
+/**
+ *  GwCirculationCard2Wrapper
+ * @author 尹宇
+ * @version 2024-03-20
+ */
+@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, uses = {} )
+public interface GwCirculationCard2Wrapper extends EntityWrapper<GwCirculationCard2DTO, GwCirculationCard2> {
+
+    GwCirculationCard2Wrapper INSTANCE = Mappers.getMapper(GwCirculationCard2Wrapper.class);
+}
+

+ 1 - 1
jp-console/jeeplus-modules/jeeplus-test/target/generated-sources/annotations/com/jeeplus/test/activiti/service/mapstruct/TestActivitiAuditWrapperImpl.java

@@ -13,7 +13,7 @@ import org.springframework.stereotype.Component;
 
 @Generated(
     value = "org.mapstruct.ap.MappingProcessor",
-    date = "2024-03-20T09:33:18+0800",
+    date = "2024-03-20T16:06:33+0800",
     comments = "version: 1.4.1.Final, compiler: javac, environment: Java 11.0.13 (JetBrains s.r.o.)"
 )
 @Component

+ 1 - 1
jp-console/jeeplus-modules/jeeplus-test/target/generated-sources/annotations/com/jeeplus/test/grid/service/mapstruct/TestContinentWrapperImpl.java

@@ -13,7 +13,7 @@ import org.springframework.stereotype.Component;
 
 @Generated(
     value = "org.mapstruct.ap.MappingProcessor",
-    date = "2024-03-20T09:33:18+0800",
+    date = "2024-03-20T16:06:33+0800",
     comments = "version: 1.4.1.Final, compiler: javac, environment: Java 11.0.13 (JetBrains s.r.o.)"
 )
 @Component

+ 1 - 1
jp-console/jeeplus-modules/jeeplus-test/target/generated-sources/annotations/com/jeeplus/test/grid/service/mapstruct/TestCountryWrapperImpl.java

@@ -13,7 +13,7 @@ import org.springframework.stereotype.Component;
 
 @Generated(
     value = "org.mapstruct.ap.MappingProcessor",
-    date = "2024-03-20T09:33:18+0800",
+    date = "2024-03-20T16:06:33+0800",
     comments = "version: 1.4.1.Final, compiler: javac, environment: Java 11.0.13 (JetBrains s.r.o.)"
 )
 @Component

+ 1 - 1
jp-console/jeeplus-modules/jeeplus-test/target/generated-sources/annotations/com/jeeplus/test/manytomany/service/mapstruct/TestCourseWrapperImpl.java

@@ -13,7 +13,7 @@ import org.springframework.stereotype.Component;
 
 @Generated(
     value = "org.mapstruct.ap.MappingProcessor",
-    date = "2024-03-20T09:33:18+0800",
+    date = "2024-03-20T16:06:33+0800",
     comments = "version: 1.4.1.Final, compiler: javac, environment: Java 11.0.13 (JetBrains s.r.o.)"
 )
 @Component

+ 1 - 1
jp-console/jeeplus-modules/jeeplus-test/target/generated-sources/annotations/com/jeeplus/test/manytomany/service/mapstruct/TestStudentCourseWrapperImpl.java

@@ -14,7 +14,7 @@ import org.springframework.stereotype.Component;
 
 @Generated(
     value = "org.mapstruct.ap.MappingProcessor",
-    date = "2024-03-20T09:33:18+0800",
+    date = "2024-03-20T16:06:33+0800",
     comments = "version: 1.4.1.Final, compiler: javac, environment: Java 11.0.13 (JetBrains s.r.o.)"
 )
 @Component

+ 1 - 1
jp-console/jeeplus-modules/jeeplus-test/target/generated-sources/annotations/com/jeeplus/test/manytomany/service/mapstruct/TestStudentWrapperImpl.java

@@ -13,7 +13,7 @@ import org.springframework.stereotype.Component;
 
 @Generated(
     value = "org.mapstruct.ap.MappingProcessor",
-    date = "2024-03-20T09:33:18+0800",
+    date = "2024-03-20T16:06:33+0800",
     comments = "version: 1.4.1.Final, compiler: javac, environment: Java 11.0.13 (JetBrains s.r.o.)"
 )
 @Component

+ 1 - 1
jp-console/jeeplus-modules/jeeplus-test/target/generated-sources/annotations/com/jeeplus/test/mobile/service/mapstruct/TestMobileWrapperImpl.java

@@ -13,7 +13,7 @@ import org.springframework.stereotype.Component;
 
 @Generated(
     value = "org.mapstruct.ap.MappingProcessor",
-    date = "2024-03-20T09:33:18+0800",
+    date = "2024-03-20T16:06:34+0800",
     comments = "version: 1.4.1.Final, compiler: javac, environment: Java 11.0.13 (JetBrains s.r.o.)"
 )
 @Component

+ 1 - 1
jp-console/jeeplus-modules/jeeplus-test/target/generated-sources/annotations/com/jeeplus/test/note/service/mapstruct/TestNoteWrapperImpl.java

@@ -13,7 +13,7 @@ import org.springframework.stereotype.Component;
 
 @Generated(
     value = "org.mapstruct.ap.MappingProcessor",
-    date = "2024-03-20T09:33:18+0800",
+    date = "2024-03-20T16:06:33+0800",
     comments = "version: 1.4.1.Final, compiler: javac, environment: Java 11.0.13 (JetBrains s.r.o.)"
 )
 @Component

+ 1 - 1
jp-console/jeeplus-modules/jeeplus-test/target/generated-sources/annotations/com/jeeplus/test/one/service/mapstruct/TestFormLeaveWrapperImpl.java

@@ -13,7 +13,7 @@ import org.springframework.stereotype.Component;
 
 @Generated(
     value = "org.mapstruct.ap.MappingProcessor",
-    date = "2024-03-20T09:33:18+0800",
+    date = "2024-03-20T16:06:33+0800",
     comments = "version: 1.4.1.Final, compiler: javac, environment: Java 11.0.13 (JetBrains s.r.o.)"
 )
 @Component

+ 1 - 1
jp-console/jeeplus-modules/jeeplus-test/target/generated-sources/annotations/com/jeeplus/test/onetomany/service/mapstruct/TestDataChild1WrapperImpl.java

@@ -13,7 +13,7 @@ import org.springframework.stereotype.Component;
 
 @Generated(
     value = "org.mapstruct.ap.MappingProcessor",
-    date = "2024-03-20T09:33:18+0800",
+    date = "2024-03-20T16:06:33+0800",
     comments = "version: 1.4.1.Final, compiler: javac, environment: Java 11.0.13 (JetBrains s.r.o.)"
 )
 @Component

+ 1 - 1
jp-console/jeeplus-modules/jeeplus-test/target/generated-sources/annotations/com/jeeplus/test/onetomany/service/mapstruct/TestDataChild2WrapperImpl.java

@@ -13,7 +13,7 @@ import org.springframework.stereotype.Component;
 
 @Generated(
     value = "org.mapstruct.ap.MappingProcessor",
-    date = "2024-03-20T09:33:18+0800",
+    date = "2024-03-20T16:06:34+0800",
     comments = "version: 1.4.1.Final, compiler: javac, environment: Java 11.0.13 (JetBrains s.r.o.)"
 )
 @Component

+ 1 - 1
jp-console/jeeplus-modules/jeeplus-test/target/generated-sources/annotations/com/jeeplus/test/onetomany/service/mapstruct/TestDataChild3WrapperImpl.java

@@ -13,7 +13,7 @@ import org.springframework.stereotype.Component;
 
 @Generated(
     value = "org.mapstruct.ap.MappingProcessor",
-    date = "2024-03-20T09:33:18+0800",
+    date = "2024-03-20T16:06:33+0800",
     comments = "version: 1.4.1.Final, compiler: javac, environment: Java 11.0.13 (JetBrains s.r.o.)"
 )
 @Component

+ 1 - 1
jp-console/jeeplus-modules/jeeplus-test/target/generated-sources/annotations/com/jeeplus/test/onetomany/service/mapstruct/TestDataMainWrapperImpl.java

@@ -13,7 +13,7 @@ import org.springframework.stereotype.Component;
 
 @Generated(
     value = "org.mapstruct.ap.MappingProcessor",
-    date = "2024-03-20T09:33:18+0800",
+    date = "2024-03-20T16:06:33+0800",
     comments = "version: 1.4.1.Final, compiler: javac, environment: Java 11.0.13 (JetBrains s.r.o.)"
 )
 @Component

+ 1 - 1
jp-console/jeeplus-modules/jeeplus-test/target/generated-sources/annotations/com/jeeplus/test/pic/service/mapstruct/TestPicWrapperImpl.java

@@ -13,7 +13,7 @@ import org.springframework.stereotype.Component;
 
 @Generated(
     value = "org.mapstruct.ap.MappingProcessor",
-    date = "2024-03-20T09:33:18+0800",
+    date = "2024-03-20T16:06:33+0800",
     comments = "version: 1.4.1.Final, compiler: javac, environment: Java 11.0.13 (JetBrains s.r.o.)"
 )
 @Component

+ 1 - 1
jp-console/jeeplus-modules/jeeplus-test/target/generated-sources/annotations/com/jeeplus/test/shop/service/mapstruct/TestCategoryWrapperImpl.java

@@ -14,7 +14,7 @@ import org.springframework.stereotype.Component;
 
 @Generated(
     value = "org.mapstruct.ap.MappingProcessor",
-    date = "2024-03-20T09:33:18+0800",
+    date = "2024-03-20T16:06:33+0800",
     comments = "version: 1.4.1.Final, compiler: javac, environment: Java 11.0.13 (JetBrains s.r.o.)"
 )
 @Component

+ 1 - 1
jp-console/jeeplus-modules/jeeplus-test/target/generated-sources/annotations/com/jeeplus/test/shop/service/mapstruct/TestGoodsWrapperImpl.java

@@ -13,7 +13,7 @@ import org.springframework.stereotype.Component;
 
 @Generated(
     value = "org.mapstruct.ap.MappingProcessor",
-    date = "2024-03-20T09:33:18+0800",
+    date = "2024-03-20T16:06:33+0800",
     comments = "version: 1.4.1.Final, compiler: javac, environment: Java 11.0.13 (JetBrains s.r.o.)"
 )
 @Component

+ 1 - 1
jp-console/jeeplus-modules/jeeplus-test/target/generated-sources/annotations/com/jeeplus/test/tree/service/mapstruct/TestTreeWrapperImpl.java

@@ -14,7 +14,7 @@ import org.springframework.stereotype.Component;
 
 @Generated(
     value = "org.mapstruct.ap.MappingProcessor",
-    date = "2024-03-20T09:33:18+0800",
+    date = "2024-03-20T16:06:33+0800",
     comments = "version: 1.4.1.Final, compiler: javac, environment: Java 11.0.13 (JetBrains s.r.o.)"
 )
 @Component

+ 1 - 1
jp-console/jeeplus-modules/jeeplus-test/target/generated-sources/annotations/com/jeeplus/test/treetable/service/mapstruct/TestCarKindWrapperImpl.java

@@ -15,7 +15,7 @@ import org.springframework.stereotype.Component;
 
 @Generated(
     value = "org.mapstruct.ap.MappingProcessor",
-    date = "2024-03-20T09:33:18+0800",
+    date = "2024-03-20T16:06:33+0800",
     comments = "version: 1.4.1.Final, compiler: javac, environment: Java 11.0.13 (JetBrains s.r.o.)"
 )
 @Component

+ 1 - 1
jp-console/jeeplus-modules/jeeplus-test/target/generated-sources/annotations/com/jeeplus/test/treetable/service/mapstruct/TestCarWrapperImpl.java

@@ -13,7 +13,7 @@ import org.springframework.stereotype.Component;
 
 @Generated(
     value = "org.mapstruct.ap.MappingProcessor",
-    date = "2024-03-20T09:33:18+0800",
+    date = "2024-03-20T16:06:33+0800",
     comments = "version: 1.4.1.Final, compiler: javac, environment: Java 11.0.13 (JetBrains s.r.o.)"
 )
 @Component

+ 1 - 1
jp-console/jeeplus-modules/jeeplus-test/target/generated-sources/annotations/com/jeeplus/test/validation/service/mapstruct/TestValidationWrapperImpl.java

@@ -13,7 +13,7 @@ import org.springframework.stereotype.Component;
 
 @Generated(
     value = "org.mapstruct.ap.MappingProcessor",
-    date = "2024-03-20T09:33:18+0800",
+    date = "2024-03-20T16:06:33+0800",
     comments = "version: 1.4.1.Final, compiler: javac, environment: Java 11.0.13 (JetBrains s.r.o.)"
 )
 @Component

+ 1 - 0
jp-console/jeeplus-modules/pom.xml

@@ -13,6 +13,7 @@
     <packaging>pom</packaging>
     <modules>
         <module>jeeplus-test</module>
+        <module>gw</module>
     </modules>
 
 

+ 6 - 0
jp-console/jeeplus-web/pom.xml

@@ -123,6 +123,12 @@
             <artifactId>jeeplus-test</artifactId>
             <version>${project.parent.version}</version>
         </dependency>
+        <dependency>
+            <groupId>org.jeeplus</groupId>
+            <artifactId>gw</artifactId>
+            <version>${project.parent.version}</version>
+        </dependency>
+
     </dependencies>
 
     <build>

+ 2 - 2
jp-console/jeeplus-web/src/main/resources/application-development.yml

@@ -213,8 +213,8 @@ devtool:
   packageName: com.jeeplus    # 默认包名
   author: xx     # 默认作者
 # 产品授权
-productId: Y20221228521
-license: 311B824D79A418AE3AB54AB16327659EAFAA9188049FFB6ED5A62658E884A677B70162FA76FF6E7DD78AF7332D8A323D432518CBEC58ACC6396CA8CA13D4BFA55150AFC7180CC9DE9A9BDFDB5590DD47B88A588DC6C42A0A233BB1723047BCC660840D1A97A43F91D02CC42FC808A886F49F03B958BB222B3A66FDF0AF23CF50
+productId: Y20231106028
+license: 31DF251A21F97CEC3EA09EDE36CAD11484F182B027ECB934A41A62118712963839DCA39F68E42502DE15D9B7EF5A38E7E3F5BD1E5627691C5595DA8E6019D79FDBC51B0E51C09BDD009D42D60EFCBF1560D2394358F0E5E77A55BE57A73DD12D53B7A1A7041CF9ACC16D2DAB604C45346078FA05C71CAC737A4288B99107BDA1
 
 
 

+ 2 - 2
jp-console/jeeplus-web/target/classes/application-development.yml

@@ -213,8 +213,8 @@ devtool:
   packageName: com.jeeplus    # 默认包名
   author: xx     # 默认作者
 # 产品授权
-productId: Y20221228521
-license: 311B824D79A418AE3AB54AB16327659EAFAA9188049FFB6ED5A62658E884A677B70162FA76FF6E7DD78AF7332D8A323D432518CBEC58ACC6396CA8CA13D4BFA55150AFC7180CC9DE9A9BDFDB5590DD47B88A588DC6C42A0A233BB1723047BCC660840D1A97A43F91D02CC42FC808A886F49F03B958BB222B3A66FDF0AF23CF50
+productId: Y20231106028
+license: 31DF251A21F97CEC3EA09EDE36CAD11484F182B027ECB934A41A62118712963839DCA39F68E42502DE15D9B7EF5A38E7E3F5BD1E5627691C5595DA8E6019D79FDBC51B0E51C09BDD009D42D60EFCBF1560D2394358F0E5E77A55BE57A73DD12D53B7A1A7041CF9ACC16D2DAB604C45346078FA05C71CAC737A4288B99107BDA1
 
 
 

+ 35 - 0
jp-ui/src/api/circulation/gwCirculationCardService.js

@@ -0,0 +1,35 @@
+import request from "@/utils/httpRequest";
+
+export default {
+	save: function (inputForm) {
+		return request({
+			url: "/circulation/gwCirculationCard/save",
+			method: "post",
+			data: inputForm,
+		});
+	},
+
+	delete: function (ids) {
+		return request({
+			url: "/circulation/gwCirculationCard/delete",
+			method: "delete",
+			params: { ids: ids },
+		});
+	},
+
+	queryById: function (id) {
+		return request({
+			url: "/circulation/gwCirculationCard/queryById",
+			method: "get",
+			params: { id: id },
+		});
+	},
+
+	list: function (params) {
+		return request({
+			url: "/circulation/gwCirculationCard/list",
+			method: "get",
+			params: params,
+		});
+	},
+};

+ 60 - 0
jp-ui/src/api/circulation2/gwCirculationCard2Service.js

@@ -0,0 +1,60 @@
+import request from "@/utils/httpRequest";
+
+export default {
+	save: function (inputForm) {
+		return request({
+			url: "/circulation2/gwCirculationCard2/save",
+			method: "post",
+			data: inputForm,
+		});
+	},
+
+	delete: function (ids) {
+		return request({
+			url: "/circulation2/gwCirculationCard2/delete",
+			method: "delete",
+			params: { ids: ids },
+		});
+	},
+
+	queryById: function (id) {
+		return request({
+			url: "/circulation2/gwCirculationCard2/queryById",
+			method: "get",
+			params: { id: id },
+		});
+	},
+
+	list: function (params) {
+		return request({
+			url: "/circulation2/gwCirculationCard2/list",
+			method: "get",
+			params: params,
+		});
+	},
+
+	exportTemplate: function () {
+		return request({
+			url: "/circulation2/gwCirculationCard2/import/template",
+			method: "get",
+			responseType: "blob",
+		});
+	},
+
+	exportExcel: function (params) {
+		return request({
+			url: "/circulation2/gwCirculationCard2/export",
+			method: "get",
+			params: params,
+			responseType: "blob",
+		});
+	},
+
+	importExcel: function (data) {
+		return request({
+			url: "/circulation2/gwCirculationCard2/import",
+			method: "post",
+			data: data,
+		});
+	},
+};

+ 1 - 0
jp-ui/src/router/index.js

@@ -53,6 +53,7 @@ router.beforeEach(async (to, from, next) => {
 		//删除路由(404)
 		routes_404_r();
 		isGetRouter = false;
+		console.log("登录:"+isGetRouter);
 		next();
 		return false;
 	}

+ 166 - 0
jp-ui/src/views/circulation/GwCirculationCardForm.vue

@@ -0,0 +1,166 @@
+<template>
+    <el-form :model="inputForm" ref="inputForm" v-loading="loading" :disabled="formReadOnly" label-width="120px">
+      <el-row  :gutter="15">
+        <el-col :span="24">
+            <el-form-item label="年度" prop="yearNum"
+                :rules="[
+                 ]">
+              <el-input v-model="inputForm.yearNum" placeholder="请填写年度"     ></el-input>
+           </el-form-item>
+        </el-col>
+        <el-col :span="24">
+            <el-form-item label="卡号" prop="cardNum"
+                :rules="[
+                 ]">
+              <el-input v-model="inputForm.cardNum" placeholder="请填写卡号"     ></el-input>
+           </el-form-item>
+        </el-col>
+        <el-col :span="24">
+            <el-form-item label="来文机关" prop="sendingAgency"
+                :rules="[
+                 ]">
+              <el-input v-model="inputForm.sendingAgency" placeholder="请填写来文机关"     ></el-input>
+           </el-form-item>
+        </el-col>
+        <el-col :span="24">
+            <el-form-item label="来文字号" prop="docFontSize"
+                :rules="[
+                 ]">
+              <el-input v-model="inputForm.docFontSize" placeholder="请填写来文字号"     ></el-input>
+           </el-form-item>
+        </el-col>
+        <el-col :span="24">
+            <el-form-item label="文件来源" prop="fileSource"
+                :rules="[
+                 ]">
+              <el-input v-model="inputForm.fileSource" placeholder="请填写文件来源"     ></el-input>
+           </el-form-item>
+        </el-col>
+        <el-col :span="24">
+            <el-form-item label="成文时间" prop="writtenTime"
+                :rules="[
+                 ]">
+                <el-date-picker
+                      style="width: 100%;"
+                      v-model="inputForm.writtenTime"
+                      type="datetime"
+                      value-format="YYYY-MM-DD HH:mm:ss"
+                      placeholder="选择日期时间">
+                    </el-date-picker>
+           </el-form-item>
+        </el-col>
+        <el-col :span="24">
+            <el-form-item label="收文时间" prop="receivingTime"
+                :rules="[
+                 ]">
+                <el-date-picker
+                      style="width: 100%;"
+                      v-model="inputForm.receivingTime"
+                      type="datetime"
+                      value-format="YYYY-MM-DD HH:mm:ss"
+                      placeholder="选择日期时间">
+                    </el-date-picker>
+           </el-form-item>
+        </el-col>
+        <el-col :span="24">
+            <el-form-item label="内容摘要" prop="contentSummary"
+                :rules="[
+                 ]">
+              <el-input type="textarea" v-model="inputForm.contentSummary" placeholder="请填写内容摘要"     ></el-input>
+           </el-form-item>
+        </el-col>
+        <el-col :span="24">
+            <el-form-item label="来文附件id" prop="attachedDocumentId"
+                :rules="[
+                 ]">
+	            <image-upload v-model="inputForm.attachedDocumentId" :limit="3" tip="最多上传3个图片,单个图片不要超过10M"></image-upload>
+           </el-form-item>
+        </el-col>
+     </el-row>
+    </el-form>
+</template>
+
+<script>
+  import gwCirculationCardService from '@/api/circulation/gwCirculationCardService'
+  export default {
+    data () {
+      return {
+        title: '',
+        method: '',
+        visible: false,
+        loading: false,
+        inputForm: {
+          id: '',
+          yearNum: '',
+          cardNum: '',
+          sendingAgency: '',
+          docFontSize: '',
+          fileSource: '',
+          writtenTime: '',
+          receivingTime: '',
+          contentSummary: '',
+          attachedDocumentId: ''
+        }
+      }
+    },
+    components: {
+    },
+    created () {
+    },
+    props: {
+      businessId: {
+        type: String,
+        default: ''
+      },
+      formReadOnly: {
+        type: Boolean,
+        default: false
+      }
+    },
+    watch: {
+      'businessId': {
+        handler () {
+          if (this.businessId) {
+            this.init(this.businessId)
+          } else {
+            this.$nextTick(() => {
+              this.$refs.inputForm.resetFields()
+            })
+          }
+        },
+        immediate: true,
+        deep: false
+      }
+    },
+    methods: {
+      init (id) {
+        if (id) {
+          this.loading = true
+          this.inputForm.id = id
+          this.$nextTick(() => {
+            this.$refs.inputForm.resetFields()
+            gwCirculationCardService.queryById(this.inputForm.id).then((data) => {
+              this.inputForm = this.recover(this.inputForm, data)
+              this.loading = false
+            })
+          })
+        }
+      },
+      // 表单提交
+      saveForm (callback) {
+        this.$refs['inputForm'].validate((valid) => {
+          if (valid) {
+            this.loading = true
+            gwCirculationCardService.save(this.inputForm).then((data) => {
+              callback(data.businessTable, data.businessId, this.inputForm)
+            }).catch(() => {
+              this.loading = false
+            })
+          }
+        })
+      }
+    }
+  }
+</script>
+
+  

+ 274 - 0
jp-ui/src/views/circulation/GwCirculationCardList.vue

@@ -0,0 +1,274 @@
+<template>
+    <div class="page">
+      <el-form :inline="true" class="query-form m-b-10" ref="searchForm" :model="searchForm" @keyup.enter="refreshList()" @submit.prevent>
+            <!-- 搜索框-->
+         <el-form-item prop="yearNum">
+                <el-input v-model="searchForm.yearNum" placeholder="年度" clearable></el-input>
+         </el-form-item>
+         <el-form-item prop="cardNum">
+                <el-input v-model="searchForm.cardNum" placeholder="卡号" clearable></el-input>
+         </el-form-item>
+         <el-form-item prop="sendingAgency">
+                <el-input v-model="searchForm.sendingAgency" placeholder="来文机关" clearable></el-input>
+         </el-form-item>
+         <el-form-item prop="docFontSize">
+                <el-input v-model="searchForm.docFontSize" placeholder="来文字号" clearable></el-input>
+         </el-form-item>
+         <el-form-item prop="fileSource">
+                <el-input v-model="searchForm.fileSource" placeholder="文件来源" clearable></el-input>
+         </el-form-item>
+         <el-form-item prop="writtenTime">
+                <el-date-picker
+                  v-model="searchForm.writtenTime"
+                  type="datetime"
+                  value-format="YYYY-MM-DD HH:mm:ss"
+                  placeholder="请选择成文时间">
+                </el-date-picker>
+         </el-form-item>
+         <el-form-item prop="receivingTime">
+                <el-date-picker
+                  v-model="searchForm.receivingTime"
+                  type="datetime"
+                  value-format="YYYY-MM-DD HH:mm:ss"
+                  placeholder="请选择收文时间">
+                </el-date-picker>
+         </el-form-item>
+         <el-form-item prop="contentSummary">
+                <el-input v-model="searchForm.contentSummary" placeholder="内容摘要" clearable></el-input>
+         </el-form-item>
+          <el-form-item>
+            <el-button type="primary" @click="refreshList()" icon="search">查询</el-button>
+            <el-button @click="resetSearch()" icon="refresh-right">重置</el-button>
+          </el-form-item>
+      </el-form>
+
+      <div class="jp-table">
+        <vxe-toolbar ref="gwCirculationCardToolbar" :refresh="{query: refreshList}" export print custom>
+          <template #buttons>
+            <el-button v-if="hasPermission('circulation:gwCirculationCard:add')" type="primary"  icon="plus" @click="add()">新建</el-button>
+            <el-button v-if="hasPermission('circulation:gwCirculationCard:edit')" type="warning" icon="edit" @click="edit()" :disabled="$refs.gwCirculationCardTable && $refs.gwCirculationCardTable.getCheckboxRecords().length !== 1" plain>修改</el-button>
+            <el-button v-if="hasPermission('circulation:gwCirculationCard:del')" type="danger"   icon="delete" @click="del()" :disabled="$refs.gwCirculationCardTable && $refs.gwCirculationCardTable.getCheckboxRecords().length === 0" plain>删除</el-button>
+          </template>
+        </vxe-toolbar>
+        <div class="jp-table-body">
+        <vxe-table
+            border
+            auto-resize
+            resizable
+            height="auto"
+            :loading="loading"
+            size="small"
+            ref="gwCirculationCardTable"
+            show-header-overflow
+            show-overflow
+            highlight-hover-row
+            :menu-config="{}"
+            :print-config="{}"
+            :import-config="{}"
+            :export-config="{}"
+            @sort-change="sortChangeHandle"
+            :sort-config="{remote:true}"
+            :data="dataList"
+            :checkbox-config="{}">
+            <vxe-column type="seq" width="40"></vxe-column>
+            <vxe-column type="checkbox"  width="40px"></vxe-column>
+    <vxe-column
+        field="yearNum"
+        sortable
+        title="年度">
+            <template  #default="{ row }">
+              <el-link  type="primary" :underline="false" v-if="hasPermission('circulation:gwCirculationCard:edit')" @click="edit(row.id)">{{row.yearNum}}</el-link>
+              <el-link  type="primary" :underline="false" v-else-if="hasPermission('circulation:gwCirculationCard:view')"  @click="view(row.id)">{{row.yearNum}}</el-link>
+              <span v-else>{{row.yearNum}}</span>
+            </template>
+      </vxe-column>
+    <vxe-column
+        field="cardNum"
+        sortable
+        title="卡号">
+      </vxe-column>
+    <vxe-column
+        field="sendingAgency"
+        sortable
+        title="来文机关">
+      </vxe-column>
+    <vxe-column
+        field="docFontSize"
+        sortable
+        title="来文字号">
+      </vxe-column>
+    <vxe-column
+        field="fileSource"
+        sortable
+        title="文件来源">
+      </vxe-column>
+    <vxe-column
+        field="writtenTime"
+        sortable
+        title="成文时间">
+      </vxe-column>
+    <vxe-column
+        field="receivingTime"
+        sortable
+        title="收文时间">
+      </vxe-column>
+    <vxe-column
+        field="contentSummary"
+        sortable
+        title="内容摘要">
+      </vxe-column>
+    <vxe-column
+        field="attachedDocumentId"
+        sortable
+        title="来文附件id">
+        <template  #default="{ row }">
+          <template v-if="row.attachedDocumentId">
+              <el-image
+                style="height: 50px;width:50px;margin-right:10px;"
+                :src="src" v-for="(src, index) in row.attachedDocumentId.split(',')" :key="index"
+                :preview-src-list="row.attachedDocumentId.split(',')">
+              </el-image>
+           </template>
+        </template>
+      </vxe-column>
+      <vxe-column
+        fixed="right"
+        align="center"
+        width="200"
+        title="操作">
+        <template   #default="{ row }">
+          <el-button v-if="hasPermission('circulation:gwCirculationCard:view')" type="primary" text icon="view" size="small" @click="view(row.id)">查看</el-button>
+          <el-button v-if="hasPermission('circulation:gwCirculationCard:edit')" type="primary" text icon="edit" size="small" @click="edit(row.id)">修改</el-button>
+          <el-button v-if="hasPermission('circulation:gwCirculationCard:del')"  type="danger"  text icon="delete" size="small" @click="del(row.id)">删除</el-button>
+        </template>
+      </vxe-column>
+    </vxe-table>
+    <vxe-pager
+      background
+      size="small"
+      :current-page="tablePage.currentPage"
+      :page-size="tablePage.pageSize"
+      :total="tablePage.total"
+      :page-sizes="[10, 20, 100, 1000, {label: '全量数据', value: 1000000}]"
+      :layouts="['PrevPage', 'JumpNumber', 'NextPage', 'FullJump', 'Sizes', 'Total']"
+      @page-change="currentChangeHandle">
+    </vxe-pager>
+    </div>
+    </div>
+        <!-- 弹窗, 新增 / 修改 -->
+    <GwCirculationCardForm  ref="gwCirculationCardForm" @refreshDataList="refreshList"></GwCirculationCardForm>
+  </div>
+</template>
+
+<script>
+  import GwCirculationCardForm from './GwCirculationCardForm'
+  import gwCirculationCardService from '@/api/circulation/gwCirculationCardService'
+  export default {
+    data () {
+      return {
+        searchForm: {
+          yearNum: '',
+          cardNum: '',
+          sendingAgency: '',
+          docFontSize: '',
+          fileSource: '',
+          writtenTime: '',
+          receivingTime: '',
+          contentSummary: ''
+        },
+        dataList: [],
+        tablePage: {
+          total: 0,
+          currentPage: 1,
+          pageSize: 10,
+          orders: []
+        },
+        loading: false
+      }
+    },
+    components: {
+      GwCirculationCardForm
+    },
+    created () {
+    },    
+    mounted () {
+      this.$nextTick(() => {
+        // 将表格和工具栏进行关联
+        const $table = this.$refs.gwCirculationCardTable
+        const $toolbar = this.$refs.gwCirculationCardToolbar
+        $table.connect($toolbar)
+      })
+    }, 
+    activated () {
+      this.refreshList()
+    },
+    methods: {
+      // 获取数据列表
+      refreshList () {
+        this.loading = true
+        gwCirculationCardService.list({
+          'current': this.tablePage.currentPage,
+          'size': this.tablePage.pageSize,
+          'orders': this.tablePage.orders,
+          ...this.searchForm
+        }).then((data) => {
+          this.dataList = data.records
+          this.tablePage.total = data.total
+          this.loading = false
+        })
+      },
+      // 当前页
+      currentChangeHandle ({ currentPage, pageSize }) {
+        this.tablePage.currentPage = currentPage
+        this.tablePage.pageSize = pageSize
+        this.refreshList()
+      },
+      // 排序
+      sortChangeHandle (column) {
+        this.tablePage.orders = []
+        if (column.order != null) {
+          this.tablePage.orders.push({column: this.$utils.toLine(column.property), asc: column.order === 'asc'})
+        }
+        this.refreshList()
+      },
+      // 新增
+      add () {
+        this.$refs.gwCirculationCardForm.init('add', '')
+      },
+      // 修改
+      edit (id) {
+        id = id || this.$refs.gwCirculationCardTable.getCheckboxRecords().map(item => {
+          return item.id
+        })[0]
+        this.$refs.gwCirculationCardForm.init('edit', id)
+      },
+      // 查看
+      view (id) {
+        this.$refs.gwCirculationCardForm.init('view', id)
+      },
+      // 删除
+      del (id) {
+        let ids = id || this.$refs.gwCirculationCardTable.getCheckboxRecords().map(item => {
+          return item.id
+        }).join(',')
+        this.$confirm(`确定删除所选项吗?`, '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(() => {
+          this.loading = true
+          gwCirculationCardService.delete(ids).then((data) => {
+            this.$message.success(data)
+            this.refreshList()
+            this.loading = false
+          })
+        })
+      },
+      resetSearch () {
+        this.$refs.searchForm.resetFields()
+        this.refreshList()
+      }
+    }
+  }
+</script>
+

+ 165 - 0
jp-ui/src/views/circulation2/GwCirculationCard2Form.vue

@@ -0,0 +1,165 @@
+<template>
+  <v-dialog
+    :title="title"
+    :close-on-click-modal="false"
+    v-model="visible">
+    <el-form :model="inputForm" ref="inputForm" v-loading="loading" :class="method==='view'?'readonly':''"  :disabled="method==='view'" label-width="120px">
+      <el-row  :gutter="15">
+        <el-col :span="12">
+            <el-form-item label="年度" prop="yearNum"
+                :rules="[
+                 ]">
+              <el-input v-model="inputForm.yearNum" placeholder="请填写年度"     ></el-input>
+           </el-form-item>
+        </el-col>
+        <el-col :span="12">
+            <el-form-item label="卡号" prop="cardNum"
+                :rules="[
+                 ]">
+              <el-input v-model="inputForm.cardNum" placeholder="请填写卡号"     ></el-input>
+           </el-form-item>
+        </el-col>
+        <el-col :span="12">
+            <el-form-item label="来文机关" prop="sendingAgency"
+                :rules="[
+                 ]">
+              <el-input v-model="inputForm.sendingAgency" placeholder="请填写来文机关"     ></el-input>
+           </el-form-item>
+        </el-col>
+        <el-col :span="12">
+            <el-form-item label="来文字号" prop="docFontSize"
+                :rules="[
+                 ]">
+              <el-input v-model="inputForm.docFontSize" placeholder="请填写来文字号"     ></el-input>
+           </el-form-item>
+        </el-col>
+        <el-col :span="12">
+            <el-form-item label="文件来源" prop="fileSource"
+                :rules="[
+                 ]">
+              <el-input v-model="inputForm.fileSource" placeholder="请填写文件来源"     ></el-input>
+           </el-form-item>
+        </el-col>
+        <el-col :span="12">
+            <el-form-item label="成文时间" prop="writtenTime"
+                :rules="[
+                 ]">
+                <el-date-picker
+                      style="width: 100%;"
+                      v-model="inputForm.writtenTime"
+                      type="datetime"
+                      value-format="YYYY-MM-DD HH:mm:ss"
+                      placeholder="选择日期时间">
+                    </el-date-picker>
+           </el-form-item>
+        </el-col>
+        <el-col :span="12">
+            <el-form-item label="收文时间" prop="receivingTime"
+                :rules="[
+                 ]">
+                <el-date-picker
+                      style="width: 100%;"
+                      v-model="inputForm.receivingTime"
+                      type="datetime"
+                      value-format="YYYY-MM-DD HH:mm:ss"
+                      placeholder="选择日期时间">
+                    </el-date-picker>
+           </el-form-item>
+        </el-col>
+        <el-col :span="12">
+            <el-form-item label="内容摘要" prop="contentSummary"
+                :rules="[
+                 ]">
+          <el-input type="textarea" v-model="inputForm.contentSummary" placeholder="请填写内容摘要"     ></el-input>
+           </el-form-item>
+        </el-col>
+        <el-col :span="24">
+            <el-form-item label="来文附件id" prop="attachedDocumentId"
+                :rules="[
+                 ]">
+	            <image-upload v-model="inputForm.attachedDocumentId" :limit="3" tip="最多上传3个图片,单个图片不要超过10M"></image-upload>
+           </el-form-item>
+        </el-col>
+        </el-row>
+    </el-form>
+    <template #footer>    
+        <span class="dialog-footer">
+          <el-button @click="visible = false" icon="circle-close">关闭</el-button>
+          <el-button  type="primary" v-if="method != 'view'" @click="doSubmit()" icon="circle-check" v-noMoreClick>确定</el-button>
+        </span>
+    </template>    
+  </v-dialog>
+</template>
+
+<script>
+  import gwCirculationCard2Service from '@/api/circulation2/gwCirculationCard2Service'
+  export default {
+    data () {
+      return {
+        title: '',
+        method: '',
+        visible: false,
+        loading: false,
+        inputForm: {
+          id: '',
+          yearNum: '',
+          cardNum: '',
+          sendingAgency: '',
+          docFontSize: '',
+          fileSource: '',
+          writtenTime: '',
+          receivingTime: '',
+          contentSummary: '',
+          attachedDocumentId: ''
+        }
+      }
+    },
+    components: {
+    },
+    created () {
+    },
+    methods: {
+      init (method, id) {
+        this.method = method
+        this.inputForm.id = id
+        if (method === 'add') {
+          this.title = `新建公文流转`
+        } else if (method === 'edit') {
+          this.title = '修改公文流转'
+        } else if (method === 'view') {
+          this.title = '查看公文流转'
+        }
+        this.visible = true
+        this.loading = false
+        this.$nextTick(() => {
+          this.$refs.inputForm.resetFields()
+          if (method === 'edit' || method === 'view') { // 修改或者查看
+            this.loading = true
+            gwCirculationCard2Service.queryById(this.inputForm.id).then((data) => {
+              this.inputForm = this.recover(this.inputForm, data)
+              this.loading = false
+            })
+          }
+        })
+      },
+      // 表单提交
+      doSubmit () {
+        this.$refs['inputForm'].validate((valid) => {
+          if (valid) {
+            this.loading = true
+            gwCirculationCard2Service.save(this.inputForm).then((data) => {
+              this.visible = false
+              this.$message.success(data)
+              this.$emit('refreshDataList')
+              this.loading = false
+            }).catch(() => {
+              this.loading = false
+            })
+          }
+        })
+      }
+    }
+  }
+</script>
+
+  

+ 385 - 0
jp-ui/src/views/circulation2/GwCirculationCard2List.vue

@@ -0,0 +1,385 @@
+<template>
+  <div class="page">
+    <el-form
+      :inline="true"
+      v-if="searchVisible"
+      class="query-form m-b-10"
+      ref="searchForm"
+      :model="searchForm"
+      @keyup.enter="refreshList()"
+      @submit.prevent
+    >
+      <!-- 搜索框-->
+      <el-form-item prop="yearNum" label="年度:">
+        <el-input v-model="searchForm.yearNum" placeholder="请输入年度" clearable></el-input>
+		   </el-form-item>
+      <el-form-item prop="cardNum" label="卡号:">
+        <el-input v-model="searchForm.cardNum" placeholder="请输入卡号" clearable></el-input>
+		   </el-form-item>
+      <el-form-item prop="sendingAgency" label="来文机关:">
+        <el-input v-model="searchForm.sendingAgency" placeholder="请输入来文机关" clearable></el-input>
+		   </el-form-item>
+      <el-form-item prop="docFontSize" label="来文字号:">
+        <el-input v-model="searchForm.docFontSize" placeholder="请输入来文字号" clearable></el-input>
+		   </el-form-item>
+      <el-form-item prop="fileSource" label="文件来源:">
+        <el-input v-model="searchForm.fileSource" placeholder="请输入文件来源" clearable></el-input>
+		   </el-form-item>
+      <el-form-item prop="writtenTime" label="成文时间:">
+        <el-date-picker
+						v-model="searchForm.writtenTime"
+						type="datetime"
+						value-format="YYYY-MM-DD HH:mm:ss"
+						placeholder="请选择成文时间">
+        </el-date-picker>
+		   </el-form-item>
+      <el-form-item prop="receivingTime" label="收文时间:">
+        <el-date-picker
+						v-model="searchForm.receivingTime"
+						type="datetime"
+						value-format="YYYY-MM-DD HH:mm:ss"
+						placeholder="请选择收文时间">
+        </el-date-picker>
+		   </el-form-item>
+      <el-form-item prop="contentSummary" label="内容摘要:">
+        <el-input v-model="searchForm.contentSummary" placeholder="请输入内容摘要" clearable></el-input>
+		   </el-form-item>
+      <el-form-item>
+        <el-button type="primary" @click="refreshList()" icon="search">查询</el-button>
+        <el-button type="default" @click="resetSearch()" icon="refresh-right">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+		<div class="jp-table">
+		  <vxe-toolbar ref="gwCirculationCard2Toolbar" :refresh="{query: refreshList}" import export print custom>
+		    <template #buttons>
+				<el-button v-if="hasPermission('circulation2:gwCirculationCard2:add')" type="primary"  icon="plus" @click="add()">新建</el-button>
+				<el-button v-if="hasPermission('circulation2:gwCirculationCard2:edit')" type="warning" icon="edit-filled" @click="edit()" v-show="$refs.gwCirculationCard2Table && $refs.gwCirculationCard2Table.getCheckboxRecords().length === 1" plain>修改</el-button>
+				<el-button v-if="hasPermission('circulation2:gwCirculationCard2:del')" type="danger"   icon="del-filled" @click="del()" v-show="$refs.gwCirculationCard2Table && $refs.gwCirculationCard2Table.getCheckboxRecords().length > 0" plain>删除</el-button>
+		    </template>
+		    <template #tools>
+		<vxe-button
+		  type="text"
+		  :title="
+		    searchVisible ? '收起检索' : '展开检索'
+		  "
+		  icon="vxe-icon-search"
+		  class="tool-btn"
+		  @click="searchVisible = !searchVisible"
+		></vxe-button>
+		<vxe-button
+		  type="text"
+		  title="下载导入模板"
+		  v-if="hasPermission('circulation2:gwCirculationCard2:import')"
+		  icon="iconfont icon-xiazaimoban1"
+		  class="tool-btn m-l-0"
+		  @click="downloadTpl()"
+		>
+		</vxe-button>
+    </template>
+		  </vxe-toolbar>
+		  <div class="jp-table-body">
+		  <vxe-table
+				border="inner"
+				auto-resize
+				resizable
+				height="auto"
+				:loading="loading"
+				size="small"
+				ref="gwCirculationCard2Table"
+				show-header-overflow
+				show-overflow
+				highlight-hover-row
+				:menu-config="{}"
+				:print-config="{}"
+  :import-config="{
+    importMethod: importMethod,
+    types: ['csv', 'xls', 'xlsx'],
+    remote: true,
+  }"
+  :export-config="{
+    remote: true,
+    filename: `公文流转数据${moment(new Date()).format(
+		'YYYY-MM-DD'
+    )}`,
+    sheetName: '公文流转数据',
+    exportMethod: exportMethod,
+    types: ['xlsx'],
+    modes: ['current', 'selected', 'all'],
+  }"
+
+				@sort-change="sortChangeHandle"
+				:sort-config="{remote:true}"
+				:data="dataList"
+				:checkbox-config="{}">
+				<vxe-column type="seq" width="40"></vxe-column>
+				<vxe-column type="checkbox"  width="40px"></vxe-column>
+    <vxe-column
+		  field="yearNum"
+		  sortable
+		  title="年度">
+				<template  #default="{ row }">
+				  <el-link  type="primary" :underline="false" v-if="hasPermission('circulation2:gwCirculationCard2:edit')" @click="edit(row.id)">{{row.yearNum}}</el-link>
+				  <el-link  type="primary" :underline="false" v-else-if="hasPermission('circulation2:gwCirculationCard2:view')"  @click="view(row.id)">{{row.yearNum}}</el-link>
+				  <span v-else>{{row.yearNum}}</span>
+				</template>
+		</vxe-column>
+    <vxe-column
+		  field="cardNum"
+		  sortable
+		  title="卡号">
+		</vxe-column>
+    <vxe-column
+		  field="sendingAgency"
+		  sortable
+		  title="来文机关">
+		</vxe-column>
+    <vxe-column
+		  field="docFontSize"
+		  sortable
+		  title="来文字号">
+		</vxe-column>
+    <vxe-column
+		  field="fileSource"
+		  sortable
+		  title="文件来源">
+		</vxe-column>
+    <vxe-column
+		  field="writtenTime"
+		  sortable
+		  title="成文时间">
+		</vxe-column>
+    <vxe-column
+		  field="receivingTime"
+		  sortable
+		  title="收文时间">
+		</vxe-column>
+    <vxe-column
+		  field="contentSummary"
+		  sortable
+		  title="内容摘要">
+		</vxe-column>
+    <vxe-column
+		  field="attachedDocumentId"
+		  sortable
+		  title="来文附件id">
+		  <template  #default="{ row }">
+		    <template v-if="row.attachedDocumentId">
+				  <el-image
+				    style="height: 50px;width:50px;margin-right:10px;"
+				    :src="src" v-for="(src, index) in row.attachedDocumentId.split(',')" :key="index"
+				    :preview-src-list="row.attachedDocumentId.split(',')">
+				  </el-image>
+		     </template>
+		  </template>
+		</vxe-column>
+		<vxe-column
+		  fixed="right"
+		  align="center"
+		  width="200"
+		  title="操作">
+		  <template   #default="{ row }">
+		    <el-button v-if="hasPermission('circulation2:gwCirculationCard2:view')" type="primary" text icon="view-filled" @click="view(row.id)">查看</el-button>
+		    <el-button v-if="hasPermission('circulation2:gwCirculationCard2:edit')" type="primary" text icon="edit-filled" @click="edit(row.id)">修改</el-button>
+		    <el-button v-if="hasPermission('circulation2:gwCirculationCard2:del')"  type="danger"  text icon="del-filled" @click="del(row.id)">删除</el-button>
+		  </template>
+		</vxe-column>
+    </vxe-table>
+    <vxe-pager
+		background
+		size="small"
+		:current-page="tablePage.currentPage"
+		:page-size="tablePage.pageSize"
+		:total="tablePage.total"
+		:page-sizes="[10, 20, 100, 1000, {label: '全量数据', value: 1000000}]"
+		:layouts="['PrevPage', 'JumpNumber', 'NextPage', 'FullJump', 'Sizes', 'Total']"
+		@page-change="currentChangeHandle">
+    </vxe-pager>
+    </div>
+    </div>
+		  <!-- 弹窗, 新增 / 修改 -->
+    <GwCirculationCard2Form  ref="gwCirculationCard2Form" @refreshDataList="refreshList"></GwCirculationCard2Form>
+  </div>
+</template>
+
+<script>
+  import GwCirculationCard2Form from './GwCirculationCard2Form'
+  import gwCirculationCard2Service from '@/api/circulation2/gwCirculationCard2Service'
+  export default {
+    data () {
+		return {
+		  searchVisible: true,
+		  searchForm: {
+		    yearNum: '',
+		    cardNum: '',
+		    sendingAgency: '',
+		    docFontSize: '',
+		    fileSource: '',
+		    writtenTime: '',
+		    receivingTime: '',
+		    contentSummary: ''
+		  },
+		  dataList: [],
+		  tablePage: {
+		    total: 0,
+		    currentPage: 1,
+		    pageSize: 10,
+		    orders: [{ column: "create_time", asc: false }],
+		  },
+		  loading: false
+		}
+    },
+    components: {
+		GwCirculationCard2Form
+    },
+    created () {
+    },    
+    mounted () {
+		this.$nextTick(() => {
+		  // 将表格和工具栏进行关联
+		  const $table = this.$refs.gwCirculationCard2Table
+		  const $toolbar = this.$refs.gwCirculationCard2Toolbar
+		  $table.connect($toolbar)
+		})
+    }, 
+    activated () {
+		this.refreshList()
+    },
+    methods: {
+		// 获取数据列表
+		refreshList () {
+		  this.loading = true
+		  gwCirculationCard2Service.list({
+		    'current': this.tablePage.currentPage,
+		    'size': this.tablePage.pageSize,
+		    'orders': this.tablePage.orders,
+		    ...this.searchForm
+		  }).then((data) => {
+		    this.dataList = data.records
+		    this.tablePage.total = data.total
+		    this.loading = false
+		  })
+		},
+		// 当前页
+		currentChangeHandle ({ currentPage, pageSize }) {
+		  this.tablePage.currentPage = currentPage
+		  this.tablePage.pageSize = pageSize
+		  this.refreshList()
+		},
+		// 排序
+    sortChangeHandle(obj) {
+		  this.tablePage.orders = [];
+		  if (obj.order != null) {
+		    this.tablePage.orders = [{ column: obj.column.sortBy || this.$utils.toLine(obj.property), asc: obj.order === "asc" }];
+		  } else {
+		    this.tablePage.orders = [{ column: "create_time", asc: false }];
+		  }
+		  this.refreshList();
+		},
+		// 新增
+		add () {
+		  this.$refs.gwCirculationCard2Form.init('add', '')
+		},
+		// 修改
+		edit (id) {
+		  id = id || this.$refs.gwCirculationCard2Table.getCheckboxRecords().map(item => {
+		    return item.id
+		  })[0]
+		  this.$refs.gwCirculationCard2Form.init('edit', id)
+		},
+		// 查看
+		view (id) {
+		  this.$refs.gwCirculationCard2Form.init('view', id)
+		},
+		// 删除
+		del (id) {
+		  let ids = id || this.$refs.gwCirculationCard2Table.getCheckboxRecords().map(item => {
+		    return item.id
+		  }).join(',')
+		  this.$confirm(`确定删除所选项吗?`, '提示', {
+		    confirmButtonText: '确定',
+		    cancelButtonText: '取消',
+		    type: 'warning'
+		  }).then(() => {
+		    this.loading = true
+		    gwCirculationCard2Service.delete(ids).then((data) => {
+				this.$message.success(data)
+				this.refreshList()
+				this.loading = false
+		    })
+		  })
+		},
+		// 下载模板
+		downloadTpl() {
+		this.loading = true
+		gwCirculationCard2Service
+		  .exportTemplate()
+		  .then((data) => {
+		    // 将二进制流文件写入excel表,以下为重要步骤
+		    this.$utils.downloadExcel(data, "公文流转导入模板");
+		    this.loading = false
+		  })
+		  .catch(function (err) {
+				this.loading = false
+		    if (err.response) {
+				console.log(err.response);
+		    }
+		  });
+    },
+    // 自定义服务端导入
+    importMethod({ file }) {
+		// 处理表单
+		const formBody = new FormData();
+		formBody.append("file", file);
+		this.loading = true
+		gwCirculationCard2Service.importExcel(formBody).then((result) => {
+		  this.$message.success({
+		    dangerouslyUseHTMLString: true,
+		    message: result,
+		  });
+		  this.refreshList();
+		});
+    },
+    // 自定义服务端导出
+    exportMethod({ options }) {
+		// 传给服务端的参数
+		const params = {
+		  current: this.tablePage.currentPage,
+		  size: this.tablePage.pageSize,
+		  orders: this.tablePage.orders,
+		  ...this.searchForm,
+		  filename: options.filename,
+		  sheetName: options.sheetName,
+		  isHeader: options.isHeader,
+		  original: options.original,
+		  mode: options.mode,
+		  selectIds:
+		    options.mode === "selected"
+				? options.data.map((item) => item.id)
+				: [],
+		  exportFields: options.columns.map(
+		    (column) => column.property && column.property.split(".")[0]
+		  ),
+		};
+		this.loading = true;
+		return gwCirculationCard2Service
+		  .exportExcel(params)
+		  .then((data) => {
+		    // 将二进制流文件写入excel表,以下为重要步骤
+		    this.$utils.downloadExcel(data, options.filename);
+		    this.loading = false;
+		  })
+		  .catch(function (err) {
+		    if (err.response) {
+				console.log(err.response);
+		    }
+		  });
+    },
+		resetSearch () {
+		  this.$refs.searchForm.resetFields()
+		  this.refreshList()
+		}
+    }
+  }
+</script>
+