From 76474d8c602095059be8450c63b87f43eccc24ff Mon Sep 17 00:00:00 2001 From: zhouhaibin Date: Tue, 16 Apr 2024 16:17:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E5=8F=98=E6=9B=B4=E6=96=87?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/HuzhouPlanController.java | 201 +++++++----------- .../HuzhouWorkreportController.java | 63 +++++- .../huzhou/dao/HuzhouWorkreportMapper.java | 1 + .../dao/mapping/HuzhouWorkreportMapper.xml | 49 ++--- .../huzhou/entity/HuzhouWorkreport.java | 2 +- .../service/IHuzhouPlaninfoService.java | 12 ++ .../service/IHuzhouWorkreportService.java | 2 + .../impl/HuzhouPlaninfoServiceImpl.java | 159 +++++++++++++- .../impl/HuzhouWorkreportServiceImpl.java | 9 + 9 files changed, 320 insertions(+), 178 deletions(-) diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouPlanController.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouPlanController.java index ebbb3f4..95a3654 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouPlanController.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouPlanController.java @@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.easy.admin.auth.model.SysUser; import com.easy.admin.common.core.exception.EasyException; +import com.easy.admin.modules.huzhou.vo.HuzhouProjectinfoOV; import com.easy.admin.util.ShiroUtil; import org.activiti.engine.RuntimeService; import org.activiti.engine.runtime.ProcessInstance; @@ -40,108 +41,80 @@ import java.util.*; public class HuzhouPlanController { @Autowired private IHuzhouPlaninfoService planinfoService; - @Autowired - private IWorkflowService workflowService; - @Autowired - private IHuzhouProcessinfoService processinfoService; - - @Autowired - private IHuzhouProjectinfoService projectinfoService; - @Autowired - private IHuzhouPlaninfoHistoryService planinfoHistoryService; - @Autowired - private RuntimeService runtimeService; - @Value(value = "${jeecg.path.upload}") - private String uploadpath; + /** + * 项目计划列表信息 + * @param projectinfo 查询条件 + * @param pageNo 页码 + * @param pageSize 每页条数 + * @return 返回值 + */ + @GetMapping("/projectPlanPageList") + public Result> projectPlanPageList(HuzhouProjectinfo projectinfo, + @RequestParam(name="current", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize){ + IPage infoPageList =planinfoService.projectPlanPageList(projectinfo, pageNo, pageSize); + return Result.OK(infoPageList); + } /** - * 上传计划信息 - * @param multipartFile - * @param projectid - * @return + * 上传计划信息(创建审批流程) + * @param multipartFile 模板文件 + * @param projectid 项目id + * @return 返回值 * @throws Exception */ @PostMapping("/submitplaninfoUploadFile") public Result submitPlaninfoUploadFile(@RequestParam(value = "file",required = false) MultipartFile multipartFile, @RequestParam String projectid) throws Exception { - HashMap hashMap = planinfoService.getPlanInfoListFromFile(multipartFile, projectid); - boolean res = (boolean) hashMap.get("res"); - if(!res){ - throw new EasyException((String)hashMap.get("msg")); - } - ArrayList huzhouPlaninfoArrayList = (ArrayList) hashMap.get("arr"); - planinfoService.saveBatch(huzhouPlaninfoArrayList); - - WorkFlow workFlow = workflowService.createFlow("createPlaninfo",projectid); - projectinfoService.modifyStageById(projectid,"4"); + planinfoService.submitPlaninfoUploadFile(multipartFile,projectid); return Result.ok("成功"); } + + /** + * 审批项目计划 + * @param file 重新提交要啊传文件 + * @param taskId 流程任务id + * @param flag 审批标志 + * @param projectid 项目id + * @param comment 审批意见 + * @return 返回值 + * @throws Exception + */ @PostMapping("/approvePlaninfo") public Result approvePlaninfo(@RequestParam(value = "file",required = false) MultipartFile file, @RequestParam String taskId, @RequestParam String flag, @RequestParam String projectid, @RequestParam String comment) throws Exception { - SysUser currentUser = ShiroUtil.getCurrentUser(); - String userId = currentUser.getId(); - if(file!=null&&"1".equals(flag)){ - - //发生了修改 - HashMap hashMap = planinfoService.getPlanInfoListFromFile(file, projectid); - boolean res = (boolean) hashMap.get("res"); - if(!res){ - throw new EasyException((String)hashMap.get("msg")); - } - ArrayList huzhouPlaninfoArrayList = (ArrayList) hashMap.get("arr"); - String isAllow = planinfoService.IsAllowModifyPlaninfo(projectid,huzhouPlaninfoArrayList); - if(!"1".equals(isAllow)){ - throw new EasyException(isAllow); - } - //保存历史记录 - planinfoHistoryService.savePlanInfoToHistory(projectid); - //删除原纪录 - planinfoService.removeByProjectId(projectid); - planinfoService.saveBatch(huzhouPlaninfoArrayList); - } - WorkFlow workFlow = workflowService.approveProjectInfo(taskId, flag, comment); - if("3".equals(flag)){ - projectinfoService.modifyStageById(projectid,"0"); - processinfoService.modifyStatusByProjectId(projectid,"0","createPlaninfo"); - return Result.ok("作废成功!"); - } - ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(workFlow.getProcessInstanceId()).singleResult(); - if(processInstance==null&&"1".equals(flag)){ - projectinfoService.modifyStageById(projectid,"5"); - processinfoService.modifyStatusByProjectId(projectid,"2","createPlaninfo"); - } + planinfoService.approvePlaninfo(file,taskId,flag,projectid,comment); return Result.ok("审批成功"); } + + /** + * 修改项目计划 + * @param multipartFile 需要解析的文件 + * @param projectid 项目id + * @return 返回值 + * @throws Exception + */ @PostMapping("/modifyPlaninfo") public Result modifyPlaninfo(@RequestParam(value = "file",required = false) MultipartFile multipartFile, @RequestParam String projectid) throws Exception { - HashMap hashMap = planinfoService.getPlanInfoListFromFile(multipartFile, projectid); - boolean res = (boolean) hashMap.get("res"); - if(!res){ - throw new EasyException((String)hashMap.get("msg")); - } - ArrayList huzhouPlaninfoArrayList = (ArrayList) hashMap.get("arr"); - String isAllow = planinfoService.IsAllowModifyPlaninfo(projectid,huzhouPlaninfoArrayList); - if(!"1".equals(isAllow)){ - throw new EasyException(isAllow); - } - WorkFlow workFlow = workflowService.createFlow("createPlaninfo",projectid); - projectinfoService.modifyStageById(projectid,"4"); - planinfoHistoryService.savePlanInfoToHistory(projectid); - planinfoService.removeByProjectId(projectid); - LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); - wrapper.eq(HuzhouPlaninfo::getProjectId,projectid); - wrapper.set(HuzhouPlaninfo::getGroupId,huzhouPlaninfoArrayList.get(0).getGroupId()); - planinfoService.update(null,wrapper); - planinfoService.saveBatch(huzhouPlaninfoArrayList); + planinfoService.modifyPlaninfo(multipartFile,projectid); + return Result.ok("修改计划成功"); } + + /** + * 获取项目计划的树形结构List + * @param projectid 项目id + * @param isArchive 是否已归档 + * @param pageNo 页码 + * @param pageSize 页数 + * @return 返回值 + */ @GetMapping("/queryPlanInfoMainTimeline") public Result queryPlanInfoMainTimeline(String projectid,String isArchive,@RequestParam(name="current", defaultValue="1") Integer pageNo, @RequestParam(name="pageSize", defaultValue="10") Integer pageSize){ @@ -152,6 +125,12 @@ public class HuzhouPlanController { ArrayList planInfoMainTimelineList = planinfoService.getPlanInfoMainTimelineList(projectid); return Result.ok(planInfoMainTimelineList); } + + /** + * 根据计划id获取当前计划阶段的数据 + * @param planinfoid 计划id + * @return 返回值 + */ @GetMapping("/qetplaninfoByid") public Result getplaninfoByid(String planinfoid){ HuzhouPlaninfo planinfo = planinfoService.getById(planinfoid); @@ -159,6 +138,14 @@ public class HuzhouPlanController { huzhouPlaninfos.add(planinfo); return Result.OK(huzhouPlaninfos); } + + /** + * 项目计划汇总展示 + * @param projectinfo 项目计划信息 + * @param pageNo 页码 + * @param pageSize 页数 + * @return 返回值 + */ @GetMapping("/getplanSummary") public Result getplanSummary(HuzhouProjectinfo projectinfo, @RequestParam(name="current", defaultValue="1") Integer pageNo, @@ -166,57 +153,15 @@ public class HuzhouPlanController { Page mapPage = planinfoService.getplanSummary(projectinfo, pageNo, pageSize); return Result.OK(mapPage); } + + /** + * 根据项目id下载项目计划内容 + * @param response 返回内容 + * @param projectid 项目id + */ @GetMapping("/downloadPlanInfo") public void downloadPlanInfo(HttpServletResponse response, String projectid){ - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(HuzhouPlaninfo::getProjectId,projectid); - List list = planinfoService.list(queryWrapper); - try (Workbook workbook = new XSSFWorkbook()) { - Sheet sheet = workbook.createSheet("项目计划内容"); - Row headerRow0 = sheet.createRow(0); - headerRow0.createCell(0).setCellValue("taskLevel"); - headerRow0.createCell(1).setCellValue("taskName"); - headerRow0.createCell(2).setCellValue("scheduledStartTime"); - headerRow0.createCell(3).setCellValue("scheduledEndTime"); - headerRow0.createCell(4).setCellValue("taskFile"); - headerRow0.setZeroHeight(true);//隐藏当前行 - // 创建标题行 - Row headerRow1 = sheet.createRow(1); - headerRow1.createCell(0).setCellValue("阶段序号"); - headerRow1.createCell(1).setCellValue("阶段名称"); - headerRow1.createCell(2).setCellValue("开始时间"); - headerRow1.createCell(3).setCellValue("结束时间"); - headerRow1.createCell(4).setCellValue("所需文件"); - CellStyle dateCellStyle = workbook.createCellStyle(); - CreationHelper createHelper = workbook.getCreationHelper(); - dateCellStyle.setDataFormat(createHelper.createDataFormat().getFormat("yyyy-MM-dd")); - // 填充数据行 - int rowNum = 2; - for (HuzhouPlaninfo planinfo : list) { - Row row = sheet.createRow(rowNum++); - row.createCell(0).setCellValue(planinfo.getTaskLevel()); - row.createCell(1).setCellValue(planinfo.getTaskName()); - Cell cell2 = row.createCell(2); - cell2.setCellValue(planinfo.getScheduledStartTime()); - cell2.setCellStyle(dateCellStyle); - Cell cell3 = row.createCell(3); - cell3.setCellValue(planinfo.getScheduledEndTime()); - cell3.setCellStyle(dateCellStyle); - row.createCell(4).setCellValue(planinfo.getTaskFile()); - } - // 自动调整列宽以适应内容 - for (int i = 0; i < 5; i++) { - sheet.autoSizeColumn(i); // 使用Apache POI的autoSizeColumn方法 - } - // 设置响应头 - response.setCharacterEncoding("utf-8"); - response.setContentType("application/octet-stream"); - response.setHeader("Content-Disposition", "attachment; filename=项目计划.xlsx"); - // 将Excel内容写入响应 - workbook.write(response.getOutputStream()); - } catch (IOException e) { - throw new RuntimeException("导出失败!"); - } -// planinfoService.downloadPlanInfo(response,projectinfoid); + planinfoService.downloadPlanInfo(response,projectid); + } } diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouWorkreportController.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouWorkreportController.java index fdf5e06..348ec90 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouWorkreportController.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouWorkreportController.java @@ -3,6 +3,7 @@ package com.easy.admin.modules.huzhou.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.easy.admin.common.api.vo.Result; +import com.easy.admin.common.core.annotation.ResponseResult; import com.easy.admin.common.core.exception.EasyException; import com.easy.admin.modules.huzhou.entity.HuzhouProjectinfo; import com.easy.admin.modules.huzhou.entity.HuzhouWorkreport; @@ -21,19 +22,26 @@ import java.util.List; public class HuzhouWorkreportController { @Autowired private IHuzhouWorkreportService workreportService; - @PostMapping("setProjectWorkReport") - public void setProjectWorkReport(@RequestBody HuzhouProjectinfo huzhouProjectinfo){ + + /** + * 设置项目的周月报类型 + * @param huzhouProjectinfo 参数 + * @return 无 + */ + @PostMapping("/setProjectWorkReport") + public Result setProjectWorkReport(@RequestBody HuzhouProjectinfo huzhouProjectinfo){ workreportService.setProjectWorkReport(huzhouProjectinfo); + return Result.ok(); } /** * 获取未创建周月报类型的项目 * @param projectinfo 查询条件 - * @param pageNo - * @param pageSize + * @param pageNo 页码 + * @param pageSize 页数 * @return IPage */ - @GetMapping("getNoTypeWorkReportPageList") + @GetMapping("/getNoTypeWorkReportPageList") public Result getNoTypeWorkReportPageList(HuzhouProjectinfo projectinfo,@RequestParam(name="current", defaultValue="1") Integer pageNo, @RequestParam(name="pageSize", defaultValue="10") Integer pageSize){ IPage res=workreportService.getNoTypeWorkReportPageList(projectinfo,pageNo,pageSize); @@ -42,10 +50,10 @@ public class HuzhouWorkreportController { /** * 获取已创建的周月报项目 - * @param workreportOV - * @param pageNo - * @param pageSize - * @return + * @param huzhouProjectinfo 查询条件 + * @param pageNo 页码 + * @param pageSize 页数 + * @return Page */ @GetMapping("/workreportPageList") public Result workreportPageList(HuzhouProjectinfo huzhouProjectinfo,@RequestParam(name="current", defaultValue="1") Integer pageNo, @@ -53,16 +61,53 @@ public class HuzhouWorkreportController { Page pageList = workreportService.getWorkreportPageList(huzhouProjectinfo, pageNo, pageSize); return Result.ok(pageList); } + + /** + * 根据项目id获取当前项目的所有周月报信息 + * @param workreportOV 条件 + * @param pageNo 页码 + * @param pageSize 页数 + * @return IPage + */ + @ResponseResult + @GetMapping("/getProjectWorkReportByProjectId") + public IPage getProjectWorkReportByProjectId(HuzhouWorkreportOV workreportOV,@RequestParam(name="current", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize){ + IPage pageList = workreportService.getProjectWorkReportByProjectId(workreportOV,pageNo,pageSize); + return pageList; + } + + /** + * 根据周月报id获取周月报的详情信息 + * @param id 周月报id + * @return HuzhouWorkreport + */ @GetMapping("/getWorkreportById") public Result getWorkreportById(String id){ HuzhouWorkreport byId = workreportService.getById(id); return Result.ok(byId); } + + /** + * 新增项目周月报 + * @param file 文件信息 + * @param workreport 周月报信息 + * @return 返回值 + * @throws IOException + */ @PostMapping("/addWorkreport") public Result addWorkreport(@RequestParam(value = "file") MultipartFile file, HuzhouWorkreport workreport) throws IOException { workreportService.addWorkreport(file,workreport); return Result.ok("上传成功"); } + + /** + * 修改周报 + * @param file 文件(非必输) + * @param workreport 值 + * @return 返回值 + * @throws IOException + */ @PostMapping("/modifyWorkreport") public Result modifyContractinfo(@RequestParam(value = "file",required = false) MultipartFile file, HuzhouWorkreport workreport) throws IOException { Boolean aBoolean = workreportService.modifyWorkreport(file, workreport); diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/HuzhouWorkreportMapper.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/HuzhouWorkreportMapper.java index 9cce94e..5e27b3c 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/HuzhouWorkreportMapper.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/HuzhouWorkreportMapper.java @@ -13,4 +13,5 @@ public interface HuzhouWorkreportMapper extends BaseMapper { Page getWorkreportPageList(Page page, HuzhouProjectinfo info); IPage getNoTypeWorkReportPageList(Page page, HuzhouProjectinfo info); + IPage getProjectWorkReportByProjectId(Page page,HuzhouWorkreportOV info); } diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouWorkreportMapper.xml b/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouWorkreportMapper.xml index dc9470a..d717ce7 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouWorkreportMapper.xml +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouWorkreportMapper.xml @@ -1,40 +1,21 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +