From 1d7adfefb0bb1eb583a1777dbcd835466c48323e Mon Sep 17 00:00:00 2001 From: DELL Date: Tue, 19 Mar 2024 01:00:10 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=88=E5=AE=A1=E5=88=97=E8=A1=A8=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/FlowTaskController.java | 218 ++++++++++++------ .../service/impl/FlowTaskServiceImpl.java | 5 + 2 files changed, 153 insertions(+), 70 deletions(-) diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/flowable/controller/FlowTaskController.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/flowable/controller/FlowTaskController.java index a23fcd66..b9434df9 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/flowable/controller/FlowTaskController.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/flowable/controller/FlowTaskController.java @@ -15,6 +15,7 @@ import cn.jyjz.xiaoyao.common.base.param.ParamterPage; import cn.jyjz.xiaoyao.common.base.service.UserTokenService; import cn.jyjz.xiaoyao.common.base.util.RequestBaseUtil; import cn.jyjz.xiaoyao.common.base.util.requestFormat.SearchQuery; +import cn.jyjz.xiaoyao.common.base.util.requestFormat.SearchQueryForm; import cn.jyjz.xiaoyao.common.base.vo.ResultVo; import cn.jyjz.xiaoyao.common.base.vo.ResultVoUtil; import cn.jyjz.xiaoyao.common.base.vo.UserToken; @@ -44,10 +45,8 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.io.InputStream; import java.math.BigDecimal; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.text.SimpleDateFormat; +import java.util.*; import java.util.stream.Collectors; @Api(tags="ocr_流程接口") @@ -57,10 +56,10 @@ public class FlowTaskController extends BaseController { @Resource IFlowTaskService flowTaskService; - + @Resource private UserTokenService userTokenService; - + @Resource private UserService userService; @Resource @@ -114,7 +113,7 @@ public class FlowTaskController extends BaseController { diagram.read(bytes); return bytes; } - + /** * 查看表单主键 * @return @@ -122,7 +121,7 @@ public class FlowTaskController extends BaseController { @PostMapping("/viewFormid") @ResponseBody public ResultVo viewFormid(@RequestParam("processId") String processId, HttpServletRequest request){ - + //查询业务主键 Category category = flowTaskService.viewForm(processId,request); if(null != category){ @@ -142,7 +141,7 @@ public class FlowTaskController extends BaseController { Boolean flag = flowTaskService.complete(taskVO,request); return flag?ResultVoUtil.success():ResultVoUtil.error(); } - + /** * 批量任务审批 * @return @@ -151,34 +150,34 @@ public class FlowTaskController extends BaseController { @PostMapping("/completeBatchFlow") @ResponseBody public ResultVo completeBatch(HttpServletRequest request){ - + UserToken userToken = this.userTokenService.getUserToken(RequestBaseUtil.getToken(request)); - + //任务ID String[] taskId = request.getParameterValues("taskId"); //审批的任务主键 String[] formid = request.getParameterValues("formid"); - + String[] taskname = request.getParameterValues("taskname"); - + //是否同意,true:同意,false:拒绝 boolean approvd = Boolean.valueOf(request.getParameter("approvd")); - + //审批意见") String taskComment = request.getParameter("taskComment"); - + //判断当前任务审批人是否一致 if(!this.ocrTaskchildPictureService.validateAssignee(formid,userToken)){ return ResultVoUtil.error("审批人不一致,请到任务审批中处理。"); } - + //TODO 判断当前任务是否审批完毕 if(!this.ocrTaskchildPictureService.validateApprove(formid)){ return ResultVoUtil.error("存在已经审批的任务。"); } - + //TODO 判断taskid是否为非法,空置、taskid是否存在 - + //判断当前任务是否存在历史任务--暂时不做,生成任务时直接保存历史任务的审批工具中 StringBuffer smg = new StringBuffer(); @@ -190,9 +189,9 @@ public class FlowTaskController extends BaseController { taskVO.setFormid(fi); taskVO.setApprovd(approvd); taskVO.setTaskComment(taskComment); - + Boolean flag = flowTaskService.complete(taskVO,request); - + if(!flag){ if(StringUtils.isNotBlank(smg.toString())){ smg.append(","); @@ -205,12 +204,12 @@ public class FlowTaskController extends BaseController { } } - - - + + + return (StringUtils.isNotBlank(smg.toString()))?ResultVoUtil.error(smg.toString()):ResultVoUtil.success(); } - + @GetMapping("/listhistore") @ResponseBody public ResultVo listhistore(PageUtils vo, Model model, HttpServletRequest request){ @@ -226,18 +225,18 @@ public class FlowTaskController extends BaseController { @GetMapping("/finishedList") @ResponseBody public ResultVo getFinishedList(PageUtils pageUtils, HttpServletRequest request){ - + SearchQuery searchQuery = this.getParametersStartingWithToSearchJson(request,"search_"); User user = this.userService.getSessionUser(request); - + if(user.isUserIsSys(xiaoyaoConfig.getWebconfig().getSysLoginUser().split(","))){ flowTaskService.getMyProcessInstances(searchQuery.getQuery(),pageUtils); }else{ searchQuery.addEqual("approveUserid",user.getId().toString()); - + flowTaskService.getMyProcessInstances(searchQuery.getQuery(),pageUtils); } - + return ResultVoUtil.success(pageUtils); } /** @@ -253,7 +252,7 @@ public class FlowTaskController extends BaseController { @ResponseBody public ResultVo listdata(PageUtils pageUtils, HttpServletRequest request){ SearchQuery searchQuery = this.getParametersStartingWithToSearchJson(request,"search_"); - + //租户主键,由前端页面传送 String tenantId = request.getHeader("X-Tenant-Id"); String taskid = request.getParameter("taskid"); @@ -289,7 +288,7 @@ public class FlowTaskController extends BaseController { // List collect = userApprove.stream().map(Userapprove::getFormid).map(Object::toString).collect(Collectors.toList()); // searchQuery.addIn("formid",collect); if(user.isUserIsSys(xiaoyaoConfig.getWebconfig().getSysLoginUser().split(","))){ - + flowTaskService.getMyProcessInstances(searchQuery.getQuery(),pageUtils); }else{ String assigneeId = request.getParameter("assigneeId"); @@ -304,7 +303,7 @@ public class FlowTaskController extends BaseController { flowTaskService.getMyProcessInstances(searchQuery.getQuery(),pageUtils); //待办信息,增加是否查看标记 if(StringUtils.isNotBlank(assigneeId) && assigneeId.equals(user.getId().toString())){ - + List list = pageUtils.getList(); if(null != list && !list.isEmpty()){ int count = list.size(); @@ -315,7 +314,7 @@ public class FlowTaskController extends BaseController { } } - + } return ResultVoUtil.success(pageUtils); } @@ -332,22 +331,22 @@ public class FlowTaskController extends BaseController { @ResponseBody public ResultVo listAlldata(PageUtils pageUtils, HttpServletRequest request){ SearchQuery searchQuery = this.getParametersStartingWithToSearchJson(request,"search_"); - + //租户主键,由前端页面传送 String tenantId = request.getHeader("X-Tenant-Id"); - + if(org.apache.commons.lang3.StringUtils.isBlank(tenantId)){ return ResultVoUtil.error("租户主键不能为空"); } - + User user = this.userService.getSessionUser(request); if(user.isUserIsSys(xiaoyaoConfig.getWebconfig().getSysLoginUser().split(","))){ - + flowTaskService.getMyProcessInstances(searchQuery.getQuery(),pageUtils); }else{ flowTaskService.getMyProcessInstances(user,tenantId,searchQuery.getQuery(),pageUtils); - + //待办信息,增加是否查看标记 // if(StringUtils.isNotBlank(assigneeId) && assigneeId.equals(user.getId().toString())){ // @@ -361,10 +360,12 @@ public class FlowTaskController extends BaseController { // } // // } - + } return ResultVoUtil.success(pageUtils); } + + /** * 终审列表 * @return @@ -376,30 +377,70 @@ public class FlowTaskController extends BaseController { @GetMapping("/listfinal") @ResponseBody public ResultVo listFinalData(PageUtils pageUtils, - @RequestParam(name="search_fromuserid", defaultValue="",required = false) String searchFromuserid, - @RequestParam(name="search_fromprojectid", defaultValue="",required = false) String searchFromprojectid, - @RequestParam(name="search_fromplanid", defaultValue="",required = false) String searchFromplanid, - @RequestParam(name="search_states", defaultValue="",required = false) String searchStates, - @RequestParam(name="search_fromsourceid", defaultValue="",required = false) String searchFromsourceid, - @RequestParam(name="fromuptime_start", defaultValue="",required = false) BigDecimal fromuptimeStart, - @RequestParam(name="fromuptime_end", defaultValue="",required = false) BigDecimal fromuptimeEnd, + @RequestParam(name="izupuser", defaultValue="",required = false) String izupuser, + @RequestParam(name="izproject", defaultValue="",required = false) String izproject, + @RequestParam(name="izplan", defaultValue="",required = false) String izplan, + @RequestParam(name="izstatus", defaultValue="",required = false) String izstatus, + @RequestParam(name="iztaskrrom", defaultValue="",required = false) String iztaskrrom, + @RequestParam(name="izuptime", defaultValue="",required = false) String izuptime, HttpServletRequest request){ SearchQuery searchQuery = new SearchQuery(); - if(org.springframework.util.StringUtils.hasText(searchFromuserid)){ - searchQuery.addEqual("fromuserid",searchFromuserid); + if(org.springframework.util.StringUtils.hasText(izupuser)){ +// searchQuery.addEqual("fromuserid",izupuser); + if (izupuser.contains(",")) { + String[] userIds = izupuser.split(","); + List arrayData = Arrays.asList(userIds); + SearchQueryForm searchQueryForm = new SearchQueryForm(); + searchQuery.addIn("fromuserid", arrayData); + } else { + searchQuery.addEqual("fromuserid", izupuser); + } } - if(org.springframework.util.StringUtils.hasText(searchFromprojectid)){ - searchQuery.addEqual("fromprojectid",searchFromprojectid); + if (org.springframework.util.StringUtils.hasText(izproject)) { + if (izproject.contains(",")) { + String[] projectIds = izproject.split(","); // 以逗号拆分字符串 + searchQuery.addIn("fromprojectid", projectIds); + } else { + searchQuery.addEqual("fromprojectid", izproject); + } } - if(org.springframework.util.StringUtils.hasText(searchFromplanid)){ - searchQuery.addEqual("fromplanid",searchFromplanid); + if (org.springframework.util.StringUtils.hasText(izplan)) { + if (izplan.contains(",")) { + String[] planIds = izplan.split(","); // 以逗号拆分字符串 + searchQuery.addIn("fromplanid", planIds); + } else { + searchQuery.addEqual("fromplanid", izplan); + } } - if(org.springframework.util.StringUtils.hasText(searchStates)){ - searchQuery.addEqual("states",searchStates); + if (org.springframework.util.StringUtils.hasText(izstatus)) { + if (izstatus.contains(",")) { + String[] statusIds = izstatus.split(","); // 以逗号拆分字符串 + searchQuery.addIn("states", statusIds); + } else { + searchQuery.addEqual("states", izstatus); + } } - if(org.springframework.util.StringUtils.hasText(searchFromsourceid)){ - searchQuery.addEqual("fromsourceid",searchFromsourceid); + if (org.springframework.util.StringUtils.hasText(iztaskrrom)) { + if (iztaskrrom.contains(",")) { + String[] taskrromIds = iztaskrrom.split(","); // 以逗号拆分字符串 + searchQuery.addIn("fromsourceid", taskrromIds); + } else { + searchQuery.addEqual("fromsourceid", iztaskrrom); + } } +// +// if(org.springframework.util.StringUtils.hasText(izproject)){ +// searchQuery.addEqual("fromprojectid",izproject); +// } +// if(org.springframework.util.StringUtils.hasText(izplan)){ +// searchQuery.addEqual("fromplanid",izplan); +// } +// if(org.springframework.util.StringUtils.hasText(izstatus)){ +// searchQuery.addEqual("states",izstatus); +// } +// if(org.springframework.util.StringUtils.hasText(iztaskrrom)){ +// searchQuery.addEqual("fromsourceid",iztaskrrom); +// } //租户主键,由前端页面传送 String tenantId = request.getHeader("X-Tenant-Id"); @@ -414,11 +455,48 @@ public class FlowTaskController extends BaseController { } Map query = searchQuery.getQuery(); - if(fromuptimeStart != null){ - query.put("fromuptimeStart",fromuptimeStart); - } - if(fromuptimeEnd != null) { - query.put("fromuptimeEnd", fromuptimeEnd); + + if(org.springframework.util.StringUtils.hasText(izuptime)){ + + String[] dateRange = izuptime.split("-"); +// if (dateRange.length == 2) { +// try { +// long startTimeStamp = Long.parseLong(dateRange[0].trim()); +// long endTimeStamp = Long.parseLong(dateRange[1].trim()); +// query.put("fromuptimeStart", startTimeStamp); +// query.put("fromuptimeEnd", endTimeStamp); +// } catch (NumberFormatException e) { +// e.printStackTrace(); +// } +// } + + if (dateRange.length == 2) { + try { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); + + // 解析开始时间 + long startTimeStamp = Long.parseLong(dateRange[0].trim()); + Date startDate = new Date(startTimeStamp); + String startDateString = sdf.format(startDate); + + // 解析结束时间 + long endTimeStamp = Long.parseLong(dateRange[1].trim()); + Date endDate = new Date(endTimeStamp); + String endDateString = sdf.format(endDate); + + // 如果开始时间不为空,则将其放入查询条件中 + if (!startDateString.isEmpty()) { + query.put("fromuptimeStart", startDateString); + } + // 如果结束时间不为空,则将其放入查询条件中 + if (!endDateString.isEmpty()) { + query.put("fromuptimeEnd", endDateString); + } + } catch (NumberFormatException e) { + // 处理时间戳解析异常 + e.printStackTrace(); + } + } } flowTaskService.getFinalProcessInstances(query,pageUtils); return ResultVoUtil.success(pageUtils); @@ -468,11 +546,11 @@ public class FlowTaskController extends BaseController { List flowUnionVoList = null; String categoryid = request.getParameter("categoryid"); String buessinessno = request.getParameter("buessinessno"); - + //业务表id String formid = request.getParameter("viewformid"); if (StringUtils.isNotBlank(categoryid)) { - + User user = this.userService.getSessionUser(request); if (user.isUserIsSys(xiaoyaoConfig.getWebconfig().getSysLoginUser().split(","))) { flowUnionVoList = flowTaskService.getMyProcessInstances(searchQuery.getQuery()); @@ -486,8 +564,8 @@ public class FlowTaskController extends BaseController { if(StringUtils.isNotBlank(formid)){ searchQuery.addEqual("id", formid); } - - + + searchQuery.addEqual("states", SystemConstantsOa.OA_STATUS_TYPE_END.toString()); flowUnionVoList = flowTaskService.getMyProcessInstances(searchQuery.getQuery()); } @@ -505,11 +583,11 @@ public class FlowTaskController extends BaseController { public ResultVo listdatacc(ParamterPage paramterPage,PageUtils pageUtils, HttpServletRequest request){ SearchQuery searchQuery = this.getParametersStartingWithToSearchJson(request, "search_"); Map query = searchQuery.getQuery(); - + UserToken userToken = this.userTokenService.getUserToken(RequestBaseUtil.getToken(request)); - + flowTaskService.getMyListCc(query,userToken,paramterPage); - + return ResultVoUtil.success(pageUtils); } /** @@ -524,7 +602,7 @@ public class FlowTaskController extends BaseController { SearchQuery searchQuery = this.getParametersStartingWithToSearchJson(request, "search_"); Map query = searchQuery.getQuery(); IPage flowableccIPage = flowTaskService.getMyListCc(query,userToken,paramterPage); - + return ResultVoUtil.success(flowableccIPage); } /** @@ -540,7 +618,7 @@ public class FlowTaskController extends BaseController { return ResultVoUtil.success(); } - + /** * 重置流程流程 * @return @@ -556,7 +634,7 @@ public class FlowTaskController extends BaseController { String fromid = request.getParameter("fromid"); String taskid = request.getParameter("taskid"); return flowTaskService.removeTask(fromid,taskid); - + //return ResultVoUtil.success(); } diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/flowable/service/impl/FlowTaskServiceImpl.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/flowable/service/impl/FlowTaskServiceImpl.java index e277997f..520fd82d 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/flowable/service/impl/FlowTaskServiceImpl.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/flowable/service/impl/FlowTaskServiceImpl.java @@ -1281,6 +1281,11 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask for(OcrTaskchildPictureAppro taskchildPicture:list){ + //审批节点 当前如果没有历史操作,则将当前节点赋值到历史审批节点中. + if(StringUtils.isBlank(taskchildPicture.getTasknamehis())){ + taskchildPicture.setTasknamehis(taskchildPicture.getTaskname()); + } + if(taskchildPicture.getStatshis() != null){ String stateText; switch (taskchildPicture.getStatshis()) {