Selaa lähdekoodia

Merge branch 'master' of http://124.70.43.205:3000/wangchangsheng/evaluation

 Conflicts:
	ims-service/ims-eval/src/main/java/com/ims/eval/schedule/EvaluationWarningSchedule.java
chenminghua 1 vuosi sitten
vanhempi
commit
34cd3d113b
22 muutettua tiedostoa jossa 726 lisäystä ja 203 poistoa
  1. 26 6
      ims-service/ims-eval/pom.xml
  2. 4 4
      ims-service/ims-eval/src/main/java/com/ims/eval/controller/DepartmentPerformanceAppraisalRatingController.java
  3. 6 9
      ims-service/ims-eval/src/main/java/com/ims/eval/controller/DepartmentalPerformanceIndicatorAssessmentController.java
  4. 5 5
      ims-service/ims-eval/src/main/java/com/ims/eval/controller/DepartmentalPerformanceIndicatorPlanController.java
  5. 243 0
      ims-service/ims-eval/src/main/java/com/ims/eval/controller/DeptAssessmentDeclarationController.java
  6. 5 5
      ims-service/ims-eval/src/main/java/com/ims/eval/controller/EvaluationRevisionController.java
  7. 33 33
      ims-service/ims-eval/src/main/java/com/ims/eval/controller/NoticeManagementController.java
  8. 19 0
      ims-service/ims-eval/src/main/java/com/ims/eval/dao/DeptAssessmentDeclarationContentMapper.java
  9. 18 0
      ims-service/ims-eval/src/main/java/com/ims/eval/dao/DeptAssessmentDeclarationMapper.java
  10. 63 0
      ims-service/ims-eval/src/main/java/com/ims/eval/entity/DeptAssessmentDeclaration.java
  11. 31 0
      ims-service/ims-eval/src/main/java/com/ims/eval/entity/DeptAssessmentDeclarationContent.java
  12. 19 0
      ims-service/ims-eval/src/main/java/com/ims/eval/service/IDeptAssessmentDeclarationContentService.java
  13. 24 0
      ims-service/ims-eval/src/main/java/com/ims/eval/service/IDeptAssessmentDeclarationService.java
  14. 0 3
      ims-service/ims-eval/src/main/java/com/ims/eval/service/IEvaluationNoticeService.java
  15. 6 0
      ims-service/ims-eval/src/main/java/com/ims/eval/service/custom/WorkflowService.java
  16. 29 0
      ims-service/ims-eval/src/main/java/com/ims/eval/service/impl/DeptAssessmentDeclarationContentServiceImpl.java
  17. 85 0
      ims-service/ims-eval/src/main/java/com/ims/eval/service/impl/DeptAssessmentDeclarationServiceImpl.java
  18. 0 1
      ims-service/ims-eval/src/main/java/com/ims/eval/service/impl/EvaluationDeptBusinessPlanServiceImpl.java
  19. 0 43
      ims-service/ims-eval/src/main/java/com/ims/eval/service/impl/EvaluationNoticeServiceImpl.java
  20. 0 94
      ims-service/ims-eval/src/main/java/com/ims/eval/util/FileConvertUtil.java
  21. 35 0
      ims-service/ims-eval/src/main/resources/mappers/DeptAssessmentDeclarationContentMapper.xml
  22. 75 0
      ims-service/ims-eval/src/main/resources/mappers/DeptAssessmentDeclarationMapper.xml

+ 26 - 6
ims-service/ims-eval/pom.xml

@@ -61,6 +61,11 @@
             <version>8.18.0</version>
         </dependency>
         <dependency>
+            <groupId>org.freemarker</groupId>
+            <artifactId>freemarker</artifactId>
+            <version>2.3.28</version>
+        </dependency>
+        <dependency>
             <groupId>org.apache.poi</groupId>
             <artifactId>poi</artifactId>
             <version>3.17-beta1</version>
@@ -71,14 +76,29 @@
             <version>3.17-beta1</version>
         </dependency>
         <dependency>
-            <groupId>org.freemarker</groupId>
-            <artifactId>freemarker</artifactId>
-            <version>2.3.28</version>
+            <groupId>com.documents4j</groupId>
+            <artifactId>documents4j-api</artifactId>
+            <version>1.0.3</version>
+        </dependency>
+        <dependency>
+            <groupId>com.documents4j</groupId>
+            <artifactId>documents4j-transformer</artifactId>
+            <version>1.0.3</version>
+        </dependency>
+        <dependency>
+            <groupId>com.documents4j</groupId>
+            <artifactId>documents4j-local</artifactId>
+            <version>1.0.3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.httpcomponents</groupId>
+            <artifactId>httpclient</artifactId>
+            <version>4.5.13</version>
         </dependency>
         <dependency>
-            <groupId>com.artofsolving</groupId>
-            <artifactId>jodconverter</artifactId>
-            <version>2.2.1</version>
+            <groupId>org.apache.httpcomponents</groupId>
+            <artifactId>httpcore</artifactId>
+            <version>4.4.14</version>
         </dependency>
     </dependencies>
     <build>

+ 4 - 4
ims-service/ims-eval/src/main/java/com/ims/eval/controller/DepartmentPerformanceAppraisalRatingController.java

@@ -93,8 +93,8 @@ public class DepartmentPerformanceAppraisalRatingController {
 	/**
 	 * 批量删除部门绩效考核评级信息
 	 *
-	 * @param ids
-	 * @return
+	 * @param ids 主键s
+	 * @return 结果
 	 */
 	@PostMapping(value = "/removeAll/{ids}")
 	public R deleteAll(@PathVariable("ids") String ids) {
@@ -110,8 +110,8 @@ public class DepartmentPerformanceAppraisalRatingController {
 	/**
 	 * 导入
 	 *
-	 * @param file
-	 * @return
+	 * @param file 文件
+	 * @return 结果
 	 */
 	@PostMapping(value = "/import")
 	public R importData(@RequestParam("file") MultipartFile file) {

+ 6 - 9
ims-service/ims-eval/src/main/java/com/ims/eval/controller/DepartmentalPerformanceIndicatorAssessmentController.java

@@ -1,14 +1,10 @@
 package com.ims.eval.controller;
 
-import cn.hutool.core.io.IoUtil;
-import cn.hutool.core.util.RandomUtil;
-import cn.hutool.poi.word.Word07Writer;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.ims.eval.config.CustomException;
 import com.ims.eval.entity.EvaluationDept;
 import com.ims.eval.entity.EvaluationDeptBusinessAssessment;
 import com.ims.eval.entity.EvaluationDeptBusinessContent;
-import com.ims.eval.entity.EvaluationDeptBusinessPlan;
 import com.ims.eval.entity.custom.Path;
 import com.ims.eval.entity.dto.result.R;
 import com.ims.eval.service.IEvaluationDeptBusinessAssessmentService;
@@ -18,13 +14,14 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
-import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.*;
 import java.net.URLEncoder;
-import java.nio.file.Files;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 /**
  * 本部部门业绩指标考核
@@ -108,8 +105,8 @@ public class DepartmentalPerformanceIndicatorAssessmentController {
 	/**
 	 * 下载报表
 	 *
-	 * @param request request
-	 * @param response response
+	 * @param request    request
+	 * @param response   response
 	 * @param reportName 文件名
 	 * @throws IOException 异常
 	 */

+ 5 - 5
ims-service/ims-eval/src/main/java/com/ims/eval/controller/DepartmentalPerformanceIndicatorPlanController.java

@@ -115,8 +115,8 @@ public class DepartmentalPerformanceIndicatorPlanController {
 	/**
 	 * 批量删除部门考评业务信息
 	 *
-	 * @param ids
-	 * @return
+	 * @param ids 主键s
+	 * @return 结果
 	 */
 	@PostMapping(value = "/removeAll/{ids}")
 	public R deleteAll(@PathVariable("ids") String ids) {
@@ -154,7 +154,7 @@ public class DepartmentalPerformanceIndicatorPlanController {
 	}
 
 	/**
-	 * 详情-修改
+	 * 详情-修改/新增
 	 *
 	 * @param evaluationDeptBusinessContentList 修改内容
 	 * @return 结果
@@ -176,8 +176,8 @@ public class DepartmentalPerformanceIndicatorPlanController {
 	/**
 	 * 导入
 	 *
-	 * @param file
-	 * @return
+	 * @param file 文件
+	 * @return 结果
 	 */
 	@PostMapping(value = "/import")
 	public R importData(@RequestParam("file") MultipartFile file) {

+ 243 - 0
ims-service/ims-eval/src/main/java/com/ims/eval/controller/DeptAssessmentDeclarationController.java

@@ -0,0 +1,243 @@
+package com.ims.eval.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.ims.eval.config.CustomException;
+import com.ims.eval.entity.DeptAssessmentDeclaration;
+import com.ims.eval.entity.DeptAssessmentDeclarationContent;
+import com.ims.eval.entity.dto.result.R;
+import com.ims.eval.service.IDeptAssessmentDeclarationContentService;
+import com.ims.eval.service.IDeptAssessmentDeclarationService;
+import com.ims.eval.util.ExcelUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 绩效结果考核申报
+ *
+ * @author hlf
+ * @date 2023/5/29 15:15
+ * 文件说明:
+ */
+@Slf4j
+@RestController
+@RequestMapping("//evaluation-dept-ad")
+public class DeptAssessmentDeclarationController {
+
+	@Autowired
+	private IDeptAssessmentDeclarationService deptAssessmentDeclarationService;
+
+	@Autowired
+	private IDeptAssessmentDeclarationContentService deptAssessmentDeclarationContentService;
+
+	/**
+	 * 绩效结果考核申报列表信息(分页)
+	 *
+	 * @param pageNum          当前记录起始索引
+	 * @param pageSize         每页显示记录数
+	 * @param orderNumber      单号
+	 * @param deptId           部门主键
+	 * @param annual           年度
+	 * @param declarationMonth 申报月份
+	 * @return 结果
+	 */
+	@GetMapping(value = "/list")
+	public R list(
+		@RequestParam(value = "pageNum") Integer pageNum,
+		@RequestParam(value = "pageSize") Integer pageSize,
+		@RequestParam(value = "orderNumber", required = false) String orderNumber,
+		@RequestParam(value = "deptId", required = false) String deptId,
+		@RequestParam(value = "annual", required = false) String annual,
+		@RequestParam(value = "declarationMonth", required = false) String declarationMonth) {
+		IPage<DeptAssessmentDeclaration> list = deptAssessmentDeclarationService.listPage(pageNum, pageSize, orderNumber, deptId, annual, declarationMonth);
+		return R.ok().data(list);
+	}
+
+	/**
+	 * 绩效结果考核申报信息
+	 *
+	 * @return 结果
+	 */
+	@GetMapping(value = "/listAll")
+	public R listAll() {
+		List<DeptAssessmentDeclaration> list = deptAssessmentDeclarationService.list();
+		return R.ok().data(list);
+	}
+
+	/**
+	 * 新增绩效结果考核申报信息
+	 *
+	 * @param deptAssessmentDeclaration 绩效结果考核申报实体
+	 * @return 结果
+	 */
+	@PostMapping(value = "/save")
+	public R addAll(@RequestBody DeptAssessmentDeclaration deptAssessmentDeclaration) {
+		try {
+			boolean b = deptAssessmentDeclarationService.save(deptAssessmentDeclaration);
+			if (b) {
+				return R.ok().data(b);
+			} else {
+				return R.error().data("保存失败!");
+			}
+		} catch (CustomException e) {
+			return R.customError(e.getMessage()).data("失败!");
+		}
+	}
+
+	/**
+	 * 修改绩效结果考核申报信息
+	 *
+	 * @param deptAssessmentDeclaration 绩效结果考核申报实体
+	 * @return 结果
+	 */
+	@PostMapping(value = "/modify")
+	public R modify(@RequestBody DeptAssessmentDeclaration deptAssessmentDeclaration) {
+		try {
+			boolean b = deptAssessmentDeclarationService.updateById(deptAssessmentDeclaration);
+			if (b) {
+				return R.ok().data(b);
+			} else {
+				return R.error().data("修改失败!");
+			}
+		} catch (CustomException e) {
+			return R.customError(e.getMessage()).data("失败!");
+		}
+	}
+
+	/**
+	 * 批量删除绩效结果考核申报信息
+	 *
+	 * @param ids 主键s
+	 * @return 结果
+	 */
+	@PostMapping(value = "/removeAll/{ids}")
+	public R deleteAll(@PathVariable("ids") String ids) {
+		String[] strings = ids.split(",");
+		boolean b = deptAssessmentDeclarationService.removeByIds(Arrays.asList(strings));
+		if (b) {
+			return R.ok().data(b);
+		} else {
+			return R.error().data("删除失败!");
+		}
+	}
+
+	/**
+	 * 详情-头部信息
+	 *
+	 * @param id 业务主键
+	 * @return 结果
+	 */
+	@GetMapping(value = "/detailsHead/{id}")
+	public R detailsHead(@PathVariable("id") String id) {
+		DeptAssessmentDeclaration deptAssessmentDeclaration = deptAssessmentDeclarationService.getById(id);
+		return R.ok().data(deptAssessmentDeclaration);
+	}
+
+	/**
+	 * 详情
+	 *
+	 * @param id 业务主键
+	 * @return 结果
+	 */
+	@GetMapping(value = "/details/{id}")
+	public R details(@PathVariable("id") String id) {
+		List<DeptAssessmentDeclarationContent> list = deptAssessmentDeclarationContentService.detailsList(id);
+		return R.ok().data(list);
+	}
+
+	/**
+	 * 详情-修改/新增
+	 *
+	 * @param deptAssessmentDeclarationContentList 修改内容
+	 * @return 结果
+	 */
+	@PostMapping(value = "/update")
+	public R update(@RequestBody List<DeptAssessmentDeclarationContent> deptAssessmentDeclarationContentList) {
+		try {
+			boolean b = deptAssessmentDeclarationContentService.saveOrUpdateBatch(deptAssessmentDeclarationContentList);
+			if (b) {
+				return R.ok().data(b);
+			} else {
+				return R.error().data("修改失败!");
+			}
+		} catch (CustomException e) {
+			return R.customError(e.getMessage()).data("失败!");
+		}
+	}
+
+	/**
+	 * 导入
+	 *
+	 * @param file 文件
+	 * @return 结果
+	 */
+	@PostMapping(value = "/import")
+	public R importData(@RequestParam("file") MultipartFile file) {
+		if (!file.isEmpty()) {
+			try {
+				//获取原始的文件名
+				String originalFilename = file.getOriginalFilename();
+				//获取文件类型
+				String fileType = originalFilename.substring(originalFilename.lastIndexOf(".") + 1, originalFilename.length());
+				//默认从第一行开始读取
+				int startRows = 1;
+				//获取输入流
+				InputStream is = file.getInputStream();
+				List<DeptAssessmentDeclarationContent> deptAssessmentDeclarationContentList = new ArrayList<>();
+				//Excel导入导出的单元类
+				List<String[]> strings = ExcelUtil.readData(fileType, startRows, true, is);
+				//遍历Excel表每一行的数据
+				for (String[] str : strings) {
+					DeptAssessmentDeclarationContent deptAssessmentDeclarationContent = new DeptAssessmentDeclarationContent();
+					deptAssessmentDeclarationContent.setId(str[0]);
+					deptAssessmentDeclarationContent.setAssessmentDeclarationId(str[1]);
+					deptAssessmentDeclarationContent.setSerialNumber(str[2]);
+					deptAssessmentDeclarationContent.setEmployeeId(str[3]);
+					deptAssessmentDeclarationContent.setEmployeeName(str[4]);
+					deptAssessmentDeclarationContent.setSuggestedValue(str[5]);
+					deptAssessmentDeclarationContentList.add(deptAssessmentDeclarationContent);
+				}
+				boolean b = deptAssessmentDeclarationContentService.saveOrUpdateBatch(deptAssessmentDeclarationContentList);
+				if (b) {
+					return R.ok().data(b);
+				} else {
+					return R.error().data("保存失败!");
+				}
+			} catch (Exception e) {
+				log.error("错误", e);
+				return R.customError(e.getMessage()).data("失败!");
+			}
+		}
+		return R.customError("上传文件为空!");
+	}
+
+	/**
+	 * 修改状态
+	 *
+	 * @param id    主键
+	 * @param stage 状态
+	 * @return 结果
+	 */
+	@PostMapping(value = "/targetStart")
+	public R targetStart(@RequestParam(value = "id") String id,
+						 @RequestParam(value = "stage") String stage) {
+		try {
+			DeptAssessmentDeclaration deptAssessmentDeclaration = deptAssessmentDeclarationService.getById(id);
+			deptAssessmentDeclaration.setStage(stage);
+			boolean b = deptAssessmentDeclarationService.updateById(deptAssessmentDeclaration);
+			if (b) {
+				return R.ok().data(b);
+			} else {
+				return R.error().data("失败!");
+			}
+		} catch (CustomException e) {
+			return R.customError(e.getMessage()).data("失败!");
+		}
+	}
+}

+ 5 - 5
ims-service/ims-eval/src/main/java/com/ims/eval/controller/EvaluationRevisionController.java

@@ -141,12 +141,12 @@ public class EvaluationRevisionController {
 	 * 详情-弹框数据
 	 *
 	 * @param deptResponsibilityId 考评目标主键
-	 * @param isQuantified 是否量化
+	 * @param isQuantified         是否量化
 	 * @return 结果
 	 */
 	@GetMapping(value = "/popUpData")
 	public R popUpData(@RequestParam(value = "deptResponsibilityId") String deptResponsibilityId,
-					 @RequestParam(value = "isQuantified") String isQuantified) {
+					   @RequestParam(value = "isQuantified") String isQuantified) {
 		List<ResponsibilityIndicatorInfoResDTO> list = responsibilityIndicatorInfoService.selectPopUpData(deptResponsibilityId, isQuantified, null);
 		return R.ok().data(list);
 	}
@@ -154,7 +154,7 @@ public class EvaluationRevisionController {
 	/**
 	 * 导入
 	 *
-	 * @param file 文件
+	 * @param file         文件
 	 * @param isQuantified 是否量化
 	 * @return 结果
 	 */
@@ -177,10 +177,10 @@ public class EvaluationRevisionController {
 				for (String[] str : strings) {
 					ResponsibilityIndicatorInfo responsibilityIndicatorInfo = new ResponsibilityIndicatorInfo();
 					responsibilityIndicatorInfo.setId(str[0]);
-					if ("是".equals(isQuantified)){
+					if ("是".equals(isQuantified)) {
 						responsibilityIndicatorInfo.setQuantifiedValue(Double.parseDouble(str[7]));
 						responsibilityIndicatorInfo.setState(str[9]);
-					}else if ("否".equals(isQuantified)){
+					} else if ("否".equals(isQuantified)) {
 						responsibilityIndicatorInfo.setNonQuantifiedValue(str[7]);
 						responsibilityIndicatorInfo.setState(str[8]);
 					}

+ 33 - 33
ims-service/ims-eval/src/main/java/com/ims/eval/controller/NoticeManagementController.java

@@ -2,6 +2,9 @@ package com.ims.eval.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.documents4j.api.DocumentType;
+import com.documents4j.api.IConverter;
+import com.documents4j.job.LocalConverter;
 import com.ims.common.utils.StringUtils;
 import com.ims.eval.config.CustomException;
 import com.ims.eval.entity.DataDictionary;
@@ -10,18 +13,22 @@ import com.ims.eval.entity.custom.Path;
 import com.ims.eval.entity.dto.result.R;
 import com.ims.eval.service.IDataDictionaryService;
 import com.ims.eval.service.IEvaluationNoticeService;
-import com.ims.eval.util.FileConvertUtil;
 import com.ims.eval.util.FileUploadUtil;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.FilenameUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.io.ByteArrayResource;
+import org.springframework.core.io.Resource;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
-import javax.servlet.http.HttpServletResponse;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
+import java.io.*;
+import java.net.URL;
+import java.nio.file.Files;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
@@ -107,7 +114,7 @@ public class NoticeManagementController {
 	/**
 	 * 批量删除通告管理信息
 	 *
-	 * @param ids
+	 * @param ids 主键s
 	 * @return 结果
 	 */
 	@PostMapping(value = "/removeAll/{ids}")
@@ -250,35 +257,28 @@ public class NoticeManagementController {
 	/**
 	 * 文件预览
 	 *
-	 * @param url      url
-	 * @param response response
+	 * @param url 文件路径
 	 * @return 结果
-	 * @throws Exception
+	 * @throws IOException 异常
 	 */
 	@GetMapping(value = "/filePreview")
-	public void filePreview(@RequestParam(value = "url") String url, HttpServletResponse response) throws Exception {
-		InputStream in = null;
-		try {
-			in = FileConvertUtil.convertLocaleFile(url, "pdf");
-			OutputStream outputStream = response.getOutputStream();
-			//创建存放文件内容的数组
-			byte[] buff = new byte[1024];
-			//所读取的内容使用n来接收
-			int n;
-			//当没有读取完时,继续读取,循环
-			while ((n = in.read(buff)) != -1) {
-				//将字节数组的数据全部写入到输出流中
-				outputStream.write(buff, 0, n);
-			}
-			//强制将缓存区的数据进行输出
-			outputStream.flush();
-			//关流
-			outputStream.close();
-			in.close();
-			//return R.ok();
-		} catch (Exception e) {
-			log.error("错误", e);
+	public ResponseEntity<Resource> convertToHtml(@RequestParam("url") String url) throws IOException {
+		url = Path.getNoticePath() + url;
+		InputStream inputStream = new URL(url).openStream();
+		File sourceFile = File.createTempFile("source", ".docx");
+		FileUtils.copyInputStreamToFile(inputStream, sourceFile);
+		File htmlFile = new File(sourceFile.getParent(), FilenameUtils.getBaseName(sourceFile.getName()) + ".html");
+		try (InputStream fis = new FileInputStream(sourceFile); OutputStream fos = new FileOutputStream(htmlFile)) {
+			IConverter converter = LocalConverter.builder().build();
+			converter.convert(fis).as(DocumentType.MS_WORD).to(fos).as(DocumentType.MHTML).execute();
+		} catch (IOException e) {
+			throw new RuntimeException(e);
 		}
-		//evaluationNoticeService.onlinePreview(Path.getNoticePath() + url, response);
+		ByteArrayResource resource = new ByteArrayResource(Files.readAllBytes(htmlFile.toPath()));
+		return ResponseEntity.ok()
+			.header(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + htmlFile.getName())
+			.contentType(MediaType.TEXT_HTML)
+			.contentLength(htmlFile.length())
+			.body(resource);
 	}
 }

+ 19 - 0
ims-service/ims-eval/src/main/java/com/ims/eval/dao/DeptAssessmentDeclarationContentMapper.java

@@ -0,0 +1,19 @@
+package com.ims.eval.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ims.eval.entity.DeptAssessmentDeclarationContent;
+
+import java.util.List;
+
+/**
+ * @author hlf
+ * @date 2023/5/29 16:48
+ * 文件说明:
+ */
+public interface DeptAssessmentDeclarationContentMapper extends BaseMapper<DeptAssessmentDeclarationContent> {
+
+	List<DeptAssessmentDeclarationContent> detailsList(String assessmentDeclarationId);
+
+	boolean removeByAssessmentDeclarationId(String assessmentDeclarationId);
+
+}

+ 18 - 0
ims-service/ims-eval/src/main/java/com/ims/eval/dao/DeptAssessmentDeclarationMapper.java

@@ -0,0 +1,18 @@
+package com.ims.eval.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ims.eval.entity.DeptAssessmentDeclaration;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * @author hlf
+ * @date 2023/5/29 15:01
+ * 文件说明:
+ */
+public interface DeptAssessmentDeclarationMapper extends BaseMapper<DeptAssessmentDeclaration> {
+
+	IPage<DeptAssessmentDeclaration> selectListPage(Page<DeptAssessmentDeclaration> page, @Param("orderNumber") String orderNumber, @Param("deptId") String deptId, @Param("annual") String annual, @Param("declarationMonth") String declarationMonth);
+
+}

+ 63 - 0
ims-service/ims-eval/src/main/java/com/ims/eval/entity/DeptAssessmentDeclaration.java

@@ -0,0 +1,63 @@
+package com.ims.eval.entity;
+
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * @author hlf
+ * @date 2023/5/29 14:56
+ * 文件说明:绩效结果考核申报
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class DeptAssessmentDeclaration extends Model {
+
+	private static final long serialVersionUID = 1L;
+
+	//主键
+	private String id;
+	//单号规则
+	private String orderNumber;
+	//部门主键
+	private String deptId;
+	//部门名称
+	private String deptName;
+	//年度
+	private String annual;
+	//申报月份
+	private String declarationMonth;
+	//申报等级
+	private String declarationLevel;
+	//部门领导主键
+	private String deptLeaderId;
+	//部门领导名称
+	private String deptLeaderName;
+	//申报理由
+	private String declarationReason;
+	//申报人
+	private String applicantId;
+	//申报人名称
+	private String applicantName;
+	//申报时间
+	private Date declarationTime;
+	//流程状态
+	private String stage;
+	//流程实例ID
+	private String instId;
+	//创建时间
+	private Date createTime;
+	//创建者
+	private String createBy;
+	//创建者名称
+	private String createName;
+	//更新时间
+	private Date updateTime;
+	//更新者
+	private String updateBy;
+	//备注
+	private String remark;
+
+}

+ 31 - 0
ims-service/ims-eval/src/main/java/com/ims/eval/entity/DeptAssessmentDeclarationContent.java

@@ -0,0 +1,31 @@
+package com.ims.eval.entity;
+
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * @author hlf
+ * @date 2023/5/29 16:45
+ * 文件说明:
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class DeptAssessmentDeclarationContent extends Model {
+
+	private static final long serialVersionUID = 1L;
+
+	//主键
+	private String id;
+	//考核申报主键
+	private String assessmentDeclarationId;
+	//序号
+	private String serialNumber;
+	//员工主键
+	private String employeeId;
+	//员工名称
+	private String employeeName;
+	//建议值
+	private String suggestedValue;
+
+}

+ 19 - 0
ims-service/ims-eval/src/main/java/com/ims/eval/service/IDeptAssessmentDeclarationContentService.java

@@ -0,0 +1,19 @@
+package com.ims.eval.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ims.eval.entity.DeptAssessmentDeclarationContent;
+
+import java.util.List;
+
+/**
+ * @author hlf
+ * @date 2023/5/29 16:47
+ * 文件说明:
+ */
+public interface IDeptAssessmentDeclarationContentService extends IService<DeptAssessmentDeclarationContent> {
+
+	List<DeptAssessmentDeclarationContent> detailsList(String assessmentDeclarationId);
+
+	boolean removeByAssessmentDeclarationId(String assessmentDeclarationId);
+
+}

+ 24 - 0
ims-service/ims-eval/src/main/java/com/ims/eval/service/IDeptAssessmentDeclarationService.java

@@ -0,0 +1,24 @@
+package com.ims.eval.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ims.eval.entity.DeptAssessmentDeclaration;
+
+import java.util.List;
+
+/**
+ * @author hlf
+ * @date 2023/5/29 15:01
+ * 文件说明:
+ */
+public interface IDeptAssessmentDeclarationService extends IService<DeptAssessmentDeclaration> {
+
+	IPage<DeptAssessmentDeclaration> listPage(Integer pageNum, Integer pageSize, String orderNumber, String deptId, String annual, String declarationMonth);
+
+	boolean save(DeptAssessmentDeclaration deptAssessmentDeclaration);
+
+	boolean removeByIds(List<String> ids);
+
+	boolean editState(String id, String state, String instId);
+
+}

+ 0 - 3
ims-service/ims-eval/src/main/java/com/ims/eval/service/IEvaluationNoticeService.java

@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.ims.eval.entity.EvaluationNotice;
 import org.springframework.web.multipart.MultipartFile;
 
-import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 
 /**
@@ -18,6 +17,4 @@ public interface IEvaluationNoticeService extends IService<EvaluationNotice> {
 	IPage<EvaluationNotice> listPage(Integer pageNum, Integer pageSize, String noticeTitle);
 
 	boolean saveOrUpdate(EvaluationNotice evaluationNotice, MultipartFile[] files) throws IOException;
-
-	void onlinePreview(String url, HttpServletResponse response) throws Exception;
 }

+ 6 - 0
ims-service/ims-eval/src/main/java/com/ims/eval/service/custom/WorkflowService.java

@@ -58,6 +58,9 @@ public class WorkflowService {
 	@Autowired
 	private IEvaluationRevisionService evaluationRevisionService;
 
+	@Autowired
+	private IDeptAssessmentDeclarationService deptAssessmentDeclarationService;
+
 	/**
 	 * 发起流程
 	 *
@@ -251,6 +254,9 @@ public class WorkflowService {
 			case "bbbmyjzbkh"://本部部门业绩指标考核
 				evaluationDeptBusinessAssessmentService.editState(bizKey,taskName,instId);
 				break;
+			case "jxjgkhsb"://绩效结果考核申报
+				deptAssessmentDeclarationService.editState(bizKey,taskName,instId);
+				break;
 		}
 		return true;
 

+ 29 - 0
ims-service/ims-eval/src/main/java/com/ims/eval/service/impl/DeptAssessmentDeclarationContentServiceImpl.java

@@ -0,0 +1,29 @@
+package com.ims.eval.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ims.eval.dao.DeptAssessmentDeclarationContentMapper;
+import com.ims.eval.entity.DeptAssessmentDeclarationContent;
+import com.ims.eval.service.IDeptAssessmentDeclarationContentService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * @author hlf
+ * @date 2023/5/29 16:47
+ * 文件说明:
+ */
+@Service
+public class DeptAssessmentDeclarationContentServiceImpl extends ServiceImpl<DeptAssessmentDeclarationContentMapper, DeptAssessmentDeclarationContent> implements IDeptAssessmentDeclarationContentService {
+
+	@Override
+	public List<DeptAssessmentDeclarationContent> detailsList(String assessmentDeclarationId) {
+		return baseMapper.detailsList(assessmentDeclarationId);
+	}
+
+	@Override
+	public boolean removeByAssessmentDeclarationId(String assessmentDeclarationId) {
+		return baseMapper.removeByAssessmentDeclarationId(assessmentDeclarationId);
+	}
+
+}

+ 85 - 0
ims-service/ims-eval/src/main/java/com/ims/eval/service/impl/DeptAssessmentDeclarationServiceImpl.java

@@ -0,0 +1,85 @@
+package com.ims.eval.service.impl;
+
+import cn.hutool.core.date.DateUtil;
+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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ims.common.utils.StringUtils;
+import com.ims.eval.dao.DeptAssessmentDeclarationMapper;
+import com.ims.eval.entity.DeptAssessmentDeclaration;
+import com.ims.eval.service.IDeptAssessmentDeclarationContentService;
+import com.ims.eval.service.IDeptAssessmentDeclarationService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * @author hlf
+ * @date 2023/5/29 15:01
+ * 文件说明:
+ */
+@Service
+public class DeptAssessmentDeclarationServiceImpl extends ServiceImpl<DeptAssessmentDeclarationMapper, DeptAssessmentDeclaration> implements IDeptAssessmentDeclarationService {
+
+	@Autowired
+	private IDeptAssessmentDeclarationContentService deptAssessmentDeclarationContentService;
+
+	@Override
+	public IPage<DeptAssessmentDeclaration> listPage(Integer pageNum, Integer pageSize, String orderNumber, String deptId, String annual, String declarationMonth) {
+		if (null == pageNum || null == pageSize) {
+			throw new RuntimeException("分页参数为空");
+		}
+		//构造分页构造器
+		Page<DeptAssessmentDeclaration> page = new Page<>(pageNum, pageSize);
+		return baseMapper.selectListPage(page, orderNumber, deptId, annual, declarationMonth);
+	}
+
+	@Override
+	public boolean save(DeptAssessmentDeclaration deptAssessmentDeclaration) {
+		QueryWrapper<DeptAssessmentDeclaration> qw = new QueryWrapper<>();
+		if (StringUtils.isNotEmpty(deptAssessmentDeclaration.getDeptId())) {
+			qw.lambda().eq(DeptAssessmentDeclaration::getDeptId, deptAssessmentDeclaration.getDeptId());
+		}
+		if (StringUtils.isNotEmpty(deptAssessmentDeclaration.getAnnual())) {
+			qw.lambda().like(DeptAssessmentDeclaration::getAnnual, deptAssessmentDeclaration.getAnnual());
+		}
+		if (StringUtils.isNotEmpty(deptAssessmentDeclaration.getDeclarationMonth())) {
+			qw.lambda().eq(DeptAssessmentDeclaration::getDeclarationMonth, deptAssessmentDeclaration.getDeclarationMonth());
+		}
+		int count = super.count(qw);
+		deptAssessmentDeclaration.setOrderNumber("KHSB_GDDL_" + deptAssessmentDeclaration.getAnnual() + "_" + deptAssessmentDeclaration.getDeclarationMonth() + StringUtils.addZeroForStr(String.valueOf(count + 1), 2, "l"));
+		deptAssessmentDeclaration.setStage("流程未启动");
+		deptAssessmentDeclaration.setCreateTime(DateUtil.date());
+		return super.save(deptAssessmentDeclaration);
+	}
+
+	@Override
+	public boolean removeByIds(List<String> ids) {
+		boolean b = false;
+		for (String id : ids) {
+			DeptAssessmentDeclaration deptAssessmentDeclaration = super.getById(id);
+			if ("流程未启动".equals(deptAssessmentDeclaration.getStage()) || "流程已结束".equals(deptAssessmentDeclaration.getStage())) {
+				b = super.removeById(id);
+				b = deptAssessmentDeclarationContentService.removeByAssessmentDeclarationId(id);
+			} else {
+				return b;
+			}
+		}
+		return b;
+	}
+
+	@Override
+	public boolean editState(String id, String state, String instId) {
+		DeptAssessmentDeclaration deptAssessmentDeclaration = baseMapper.selectById(id);
+		if (StringUtils.isNotEmpty(state)) {
+			deptAssessmentDeclaration.setStage(state);
+		}
+		if (StringUtils.isNotEmpty(instId)) {
+			deptAssessmentDeclaration.setInstId(instId);
+		}
+		return super.saveOrUpdate(deptAssessmentDeclaration);
+	}
+
+}

+ 0 - 1
ims-service/ims-eval/src/main/java/com/ims/eval/service/impl/EvaluationDeptBusinessPlanServiceImpl.java

@@ -117,7 +117,6 @@ public class EvaluationDeptBusinessPlanServiceImpl extends ServiceImpl<Evaluatio
 				evaluationDeptBusinessAssessment.setFinalReviewPeople(evaluationDeptBusinessPlan.getFinalReviewPeople());
 				evaluationDeptBusinessAssessment.setFinalReviewPeopleTime(evaluationDeptBusinessPlan.getFinalReviewPeopleTime());
 				evaluationDeptBusinessAssessment.setFinalReviewOpinion(evaluationDeptBusinessPlan.getFinalReviewOpinion());
-				//evaluationDeptBusinessAssessment.setInstId(evaluationDeptBusinessPlan.getInstId());
 				evaluationDeptBusinessAssessment.setCreateTime(DateUtil.date());
 				evaluationDeptBusinessAssessment.setCreateBy(evaluationDeptBusinessPlan.getCreateBy());
 				evaluationDeptBusinessAssessment.setUpdateTime(evaluationDeptBusinessPlan.getUpdateTime());

+ 0 - 43
ims-service/ims-eval/src/main/java/com/ims/eval/service/impl/EvaluationNoticeServiceImpl.java

@@ -7,15 +7,11 @@ import com.ims.eval.dao.EvaluationNoticeMapper;
 import com.ims.eval.entity.EvaluationNotice;
 import com.ims.eval.entity.custom.Path;
 import com.ims.eval.service.IEvaluationNoticeService;
-import com.ims.eval.util.FileConvertUtil;
 import com.ims.eval.util.FileUploadUtil;
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
 
-import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
 import java.util.Date;
 
 /**
@@ -68,43 +64,4 @@ public class EvaluationNoticeServiceImpl extends ServiceImpl<EvaluationNoticeMap
 		}
 		return super.saveOrUpdate(evaluationNotice);
 	}
-
-	/**
-	 * @Description:文件在线预览接口
-	 */
-	@Override
-	public void onlinePreview(String url, HttpServletResponse response) throws Exception {
-		/*//获取文件类型
-		String[] str = StringUtils.split(url, "\\.");
-
-		if (str.length == 0) {
-			throw new Exception("文件格式不正确");
-		}
-		String suffix = str[str.length - 1];
-		if (!suffix.equals("txt") && !suffix.equals("doc") && !suffix.equals("docx") && !suffix.equals("xls") && !suffix.equals("xlsx") && !suffix.equals("ppt") && !suffix.equals("pptx")) {
-			throw new Exception("文件格式不支持预览");
-		}
-		InputStream in = FileConvertUtil.convertNetFile(url, suffix);*/
-		InputStream in = null;
-		try {
-			in = FileConvertUtil.convertLocaleFile(url, "pdf");
-			OutputStream outputStream = response.getOutputStream();
-			//创建存放文件内容的数组
-			byte[] buff = new byte[1024];
-			//所读取的内容使用n来接收
-			int n;
-			//当没有读取完时,继续读取,循环
-			while ((n = in.read(buff)) != -1) {
-				//将字节数组的数据全部写入到输出流中
-				outputStream.write(buff, 0, n);
-			}
-			//强制将缓存区的数据进行输出
-			outputStream.flush();
-			//关流
-			outputStream.close();
-			in.close();
-		} catch (Exception e) {
-			log.error("错误", e);
-		}
-	}
 }

+ 0 - 94
ims-service/ims-eval/src/main/java/com/ims/eval/util/FileConvertUtil.java

@@ -1,94 +0,0 @@
-package com.ims.eval.util;
-
-import com.artofsolving.jodconverter.DefaultDocumentFormatRegistry;
-import com.artofsolving.jodconverter.DocumentConverter;
-import com.artofsolving.jodconverter.DocumentFormat;
-import com.artofsolving.jodconverter.openoffice.connection.OpenOfficeConnection;
-import com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection;
-import com.artofsolving.jodconverter.openoffice.converter.StreamOpenOfficeDocumentConverter;
-
-import java.io.*;
-import java.net.HttpURLConnection;
-import java.net.URL;
-import java.net.URLConnection;
-import java.nio.file.Files;
-
-/**
- * @author hlf
- * @date 2023/5/25 14:22
- * 文件说明:文件格式转换工具类
- */
-public class FileConvertUtil {
-
-	/**
-	 * 默认转换后文件后缀
-	 */
-	private static final String DEFAULT_SUFFIX = "pdf";
-	/**
-	 * openoffice_port
-	 */
-	private static final Integer OPENOFFICE_PORT = 8100;
-
-	/**
-	 * 方法描述 office文档转换为PDF(处理本地文件)
-	 *
-	 * @param sourcePath 源文件路径
-	 * @param suffix     源文件后缀
-	 * @return InputStream 转换后文件输入流
-	 */
-	public static InputStream convertLocaleFile(String sourcePath, String suffix) throws Exception {
-		File inputFile = new File(sourcePath);
-		InputStream inputStream = Files.newInputStream(inputFile.toPath());
-		return covertCommonByStream(inputStream, suffix);
-	}
-
-	/**
-	 * 方法描述  office文档转换为PDF(处理网络文件)
-	 *
-	 * @param netFileUrl 网络文件路径
-	 * @param suffix     文件后缀
-	 * @return InputStream 转换后文件输入流
-	 */
-	public static InputStream convertNetFile(String netFileUrl, String suffix) throws Exception {
-		// 创建URL
-		URL url = new URL(netFileUrl);
-		// 试图连接并取得返回状态码
-		URLConnection urlconn = url.openConnection();
-		urlconn.connect();
-		HttpURLConnection httpconn = (HttpURLConnection) urlconn;
-		int httpResult = httpconn.getResponseCode();
-		if (httpResult == HttpURLConnection.HTTP_OK) {
-			InputStream inputStream = urlconn.getInputStream();
-			return covertCommonByStream(inputStream, suffix);
-		}
-		return null;
-	}
-
-	/**
-	 * 方法描述  将文件以流的形式转换
-	 *
-	 * @param inputStream 源文件输入流
-	 * @param suffix      源文件后缀
-	 * @return InputStream 转换后文件输入流
-	 */
-	public static InputStream covertCommonByStream(InputStream inputStream, String suffix) throws Exception {
-		ByteArrayOutputStream out = new ByteArrayOutputStream();
-		OpenOfficeConnection connection = new SocketOpenOfficeConnection(OPENOFFICE_PORT);
-		connection.connect();
-		DocumentConverter converter = new StreamOpenOfficeDocumentConverter(connection);
-		DefaultDocumentFormatRegistry formatReg = new DefaultDocumentFormatRegistry();
-		DocumentFormat targetFormat = formatReg.getFormatByFileExtension(DEFAULT_SUFFIX);
-		DocumentFormat sourceFormat = formatReg.getFormatByFileExtension(suffix);
-		converter.convert(inputStream, sourceFormat, out, targetFormat);
-		connection.disconnect();
-		return outputStreamConvertInputStream(out);
-	}
-
-	/**
-	 * 方法描述 outputStream转inputStream
-	 */
-	public static ByteArrayInputStream outputStreamConvertInputStream(final OutputStream out) throws Exception {
-		ByteArrayOutputStream baos = (ByteArrayOutputStream) out;
-		return new ByteArrayInputStream(baos.toByteArray());
-	}
-}

+ 35 - 0
ims-service/ims-eval/src/main/resources/mappers/DeptAssessmentDeclarationContentMapper.xml

@@ -0,0 +1,35 @@
+<?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.ims.eval.dao.DeptAssessmentDeclarationContentMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.ims.eval.entity.DeptAssessmentDeclarationContent">
+        <id column="id" property="id"/>
+        <result column="assessment_declaration_id" property="assessmentDeclarationId"/>
+        <result column="serial_number" property="serialNumber"/>
+        <result column="employee_id" property="employeeId"/>
+        <result column="employee_name" property="employeeName"/>
+        <result column="suggested_value" property="suggestedValue"/>
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="selectDeptAssessmentDeclarationContentVo">
+        select id,
+               assessment_declaration_id,
+               serial_number,
+               employee_id,
+               employee_name,
+               suggested_value
+        from dept_assessment_declaration_content
+    </sql>
+
+    <select id="detailsList" resultType="com.ims.eval.entity.DeptAssessmentDeclarationContent">
+        <include refid="selectDeptAssessmentDeclarationContentVo"/>
+        where assessment_declaration_id = #{assessmentDeclarationId} order by serial_number asc
+    </select>
+
+    <delete id="removeByAssessmentDeclarationId">
+        delete from dept_assessment_declaration_content where assessment_declaration_id = #{assessmentDeclarationId}
+    </delete>
+
+</mapper>

+ 75 - 0
ims-service/ims-eval/src/main/resources/mappers/DeptAssessmentDeclarationMapper.xml

@@ -0,0 +1,75 @@
+<?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.ims.eval.dao.DeptAssessmentDeclarationMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.ims.eval.entity.DeptAssessmentDeclaration">
+        <id column="id" property="id" />
+        <result column="order_number" property="orderNumber" />
+        <result column="dept_id" property="deptId" />
+        <result column="dept_name" property="deptName" />
+        <result column="annual" property="annual" />
+        <result column="declaration_month" property="declarationMonth" />
+        <result column="declaration_level" property="declarationLevel" />
+        <result column="dept_leader_id" property="deptLeaderId" />
+        <result column="dept_leader_name" property="deptLeaderName" />
+        <result column="declaration_reason" property="declarationReason" />
+        <result column="applicant_id" property="applicantId" />
+        <result column="applicant_name" property="applicantName" />
+        <result column="declaration_time" property="declarationTime" />
+        <result column="stage" property="stage" />
+        <result column="inst_id" property="instId" />
+        <result column="create_time" property="createTime" />
+        <result column="create_by" property="createBy" />
+        <result column="create_name" property="createName" />
+        <result column="update_time" property="updateTime" />
+        <result column="update_by" property="updateBy" />
+        <result column="remark" property="remark" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="selectDeptAssessmentDeclarationVo">
+        select id,
+               order_number,
+               dept_id,
+               dept_name,
+               annual,
+               declaration_month,
+               declaration_level,
+               dept_leader_id,
+               dept_leader_name,
+               declaration_reason,
+               applicant_id,
+               applicant_name,
+               declaration_time,
+               stage,
+               inst_id,
+               create_time,
+               create_by,
+               create_name,
+               update_time,
+               update_by,
+               remark
+        from dept_assessment_declaration
+    </sql>
+
+    <select id="selectListPage" resultType="com.ims.eval.entity.DeptAssessmentDeclaration">
+        <include refid="selectDeptAssessmentDeclarationVo"/>
+        <where>
+            <if test="orderNumber != null and orderNumber != ''">
+                AND order_number like CONCAT('%',#{orderNumber},'%')
+            </if>
+            <if test="deptId != null and deptId != ''">
+                AND dept_id = #{deptId}
+            </if>
+            <if test="annual != null and annual != ''">
+                AND annual = #{annual}
+            </if>
+            <if test="declarationMonth != null and declarationMonth != ''">
+                AND declaration_month = #{declarationMonth}
+            </if>
+        </where>
+        order by create_time desc
+    </select>
+
+</mapper>