| | |
| | | package com.java110.oa.bmo.oaWorkflowForm.impl; |
| | | |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.java110.core.annotation.Java110Transactional; |
| | | import com.java110.core.factory.GenerateCodeFactory; |
| | | import com.java110.dto.oaWorkflow.OaWorkflowDto; |
| | | import com.java110.dto.oaWorkflowData.OaWorkflowDataDto; |
| | | import com.java110.dto.oaWorkflowForm.OaWorkflowFormDto; |
| | | import com.java110.dto.oaWorkflow.OaWorkflowDataDto; |
| | | import com.java110.dto.oaWorkflow.OaWorkflowFormDto; |
| | | import com.java110.dto.user.UserDto; |
| | | import com.java110.entity.audit.AuditUser; |
| | | import com.java110.intf.common.IOaWorkflowUserInnerServiceSMO; |
| | | import com.java110.dto.oaWorkflow.WorkflowDataFileDto; |
| | | import com.java110.dto.audit.AuditUser; |
| | | import com.java110.intf.common.IOaWorkflowActivitiInnerServiceSMO; |
| | | import com.java110.intf.oa.IOaWorkflowDataInnerServiceSMO; |
| | | import com.java110.intf.oa.IOaWorkflowFormInnerServiceSMO; |
| | | import com.java110.intf.oa.IOaWorkflowInnerServiceSMO; |
| | | import com.java110.intf.oa.IWorkflowDataFileV1InnerServiceSMO; |
| | | import com.java110.intf.user.IUserInnerServiceSMO; |
| | | import com.java110.oa.bmo.oaWorkflowForm.IGetOaWorkflowFormBMO; |
| | | import com.java110.po.oaWorkflow.WorkflowDataFilePo; |
| | | import com.java110.utils.cache.MappingCache; |
| | | import com.java110.utils.constant.MappingConstant; |
| | | import com.java110.utils.exception.CmdException; |
| | | import com.java110.utils.util.Assert; |
| | | import com.java110.utils.util.BeanConvertUtil; |
| | | import com.java110.utils.util.DateUtil; |
| | |
| | | private IUserInnerServiceSMO userInnerServiceSMOImpl; |
| | | |
| | | @Autowired |
| | | private IOaWorkflowUserInnerServiceSMO oaWorkflowUserInnerServiceSMOImpl; |
| | | private IOaWorkflowActivitiInnerServiceSMO oaWorkflowUserInnerServiceSMOImpl; |
| | | |
| | | @Autowired |
| | | private IOaWorkflowDataInnerServiceSMO oaWorkflowDataInnerServiceSMOImpl; |
| | | |
| | | @Autowired |
| | | private IWorkflowDataFileV1InnerServiceSMO workflowDataFileV1InnerServiceSMOImpl; |
| | | |
| | | |
| | | /** |
| | |
| | | */ |
| | | @Override |
| | | public ResponseEntity<String> queryOaWorkflowFormData(Map paramIn) { |
| | | OaWorkflowDto oaWorkflowDto = new OaWorkflowDto(); |
| | | oaWorkflowDto.setFlowId(paramIn.get("flowId").toString()); |
| | | oaWorkflowDto.setStoreId(paramIn.get("storeId").toString()); |
| | | List<OaWorkflowDto> oaWorkflowDtos = oaWorkflowInnerServiceSMOImpl.queryOaWorkflows(oaWorkflowDto); |
| | | |
| | | Assert.listOnlyOne(oaWorkflowDtos, "流程不存在"); |
| | | OaWorkflowFormDto oaWorkflowFormDto = new OaWorkflowFormDto(); |
| | | oaWorkflowFormDto.setFlowId(paramIn.get("flowId").toString()); |
| | | oaWorkflowFormDto.setStoreId(paramIn.get("storeId").toString()); |
| | | oaWorkflowFormDto.setFormId(oaWorkflowDtos.get(0).getCurFormId()); |
| | | oaWorkflowFormDto.setRow(1); |
| | | oaWorkflowFormDto.setPage(1); |
| | | List<OaWorkflowFormDto> oaWorkflowFormDtos = oaWorkflowFormInnerServiceSMOImpl.queryOaWorkflowForms(oaWorkflowFormDto); |
| | |
| | | List<Map> datas = null; |
| | | if (count > 0) { |
| | | datas = oaWorkflowFormInnerServiceSMOImpl.queryOaWorkflowFormDatas(paramIn); |
| | | |
| | | } else { |
| | | datas = new ArrayList<>(); |
| | | } |
| | | |
| | | //查询file |
| | | queryFilesFromData(datas); |
| | | |
| | | ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (int) paramIn.get("row")), count, datas); |
| | | |
| | | ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK); |
| | | |
| | | return responseEntity; |
| | | } |
| | | |
| | | private void queryFilesFromData(List<Map> datas) { |
| | | if (datas.size() != 1) { |
| | | return; |
| | | } |
| | | |
| | | WorkflowDataFileDto workflowDataFileDto = new WorkflowDataFileDto(); |
| | | workflowDataFileDto.setId(datas.get(0).get("id").toString()); |
| | | workflowDataFileDto.setStoreId(datas.get(0).get("store_id").toString()); |
| | | List<WorkflowDataFileDto> workflowDataFileDtos = workflowDataFileV1InnerServiceSMOImpl.queryWorkflowDataFiles(workflowDataFileDto); |
| | | |
| | | if (workflowDataFileDtos == null || workflowDataFileDtos.size() < 1) { |
| | | return; |
| | | } |
| | | String imgUrl = MappingCache.getValue(MappingConstant.FILE_DOMAIN, "IMG_PATH"); |
| | | for (WorkflowDataFileDto tmpWorkflowDataFileDto : workflowDataFileDtos) { |
| | | tmpWorkflowDataFileDto.setRealFileName(imgUrl + tmpWorkflowDataFileDto.getRealFileName()); |
| | | } |
| | | |
| | | datas.get(0).put("files", workflowDataFileDtos); |
| | | } |
| | | |
| | | /** |
| | |
| | | * @return |
| | | */ |
| | | @Override |
| | | @Java110Transactional |
| | | public ResponseEntity<String> saveOaWorkflowFormData(JSONObject reqJson) { |
| | | OaWorkflowFormDto oaWorkflowFormDto = new OaWorkflowFormDto(); |
| | | oaWorkflowFormDto.setFlowId(reqJson.get("flowId").toString()); |
| | |
| | | throw new IllegalArgumentException("保存失败"); |
| | | } |
| | | |
| | | //判断是否有附件 |
| | | saveOaWorkflowFile(reqJson); |
| | | |
| | | reqJson.put("processDefinitionKey", oaWorkflowDtos.get(0).getProcessDefinitionKey()); |
| | | oaWorkflowUserInnerServiceSMOImpl.startProcess(reqJson); |
| | | |
| | | return ResultVo.success(); |
| | | } |
| | | |
| | | private void saveOaWorkflowFile(JSONObject reqJson) { |
| | | if (!reqJson.containsKey("fileName")) { |
| | | return; |
| | | } |
| | | |
| | | String fileName = reqJson.getString("fileName"); |
| | | if (StringUtil.isEmpty(fileName)) { |
| | | return; |
| | | } |
| | | |
| | | WorkflowDataFilePo workflowDataFilePo = new WorkflowDataFilePo(); |
| | | workflowDataFilePo.setCreateUserId(reqJson.getString("userId")); |
| | | workflowDataFilePo.setCreateUserName(reqJson.getString("createUserName")); |
| | | workflowDataFilePo.setFileId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_file_id)); |
| | | workflowDataFilePo.setFileName(reqJson.getString("fileName")); |
| | | workflowDataFilePo.setId(reqJson.getString("id")); |
| | | workflowDataFilePo.setRealFileName(reqJson.getString("realFileName")); |
| | | workflowDataFilePo.setStoreId(reqJson.getString("storeId")); |
| | | int flag = workflowDataFileV1InnerServiceSMOImpl.saveWorkflowDataFile(workflowDataFilePo); |
| | | if (flag < 1) { |
| | | throw new CmdException("保存附件失败"); |
| | | } |
| | | } |
| | | |
| | | /** |
| | |
| | | } |
| | | |
| | | @Override |
| | | @Java110Transactional |
| | | public ResponseEntity<String> auditOaWorkflow(JSONObject reqJson) { |
| | | //查询流程是否存在 |
| | | OaWorkflowDto oaWorkflowDto = new OaWorkflowDto(); |
| | |
| | | Map paramMap = new HashMap(); |
| | | paramMap.put("storeId", reqJson.getString("storeId")); |
| | | paramMap.put("id", reqJson.getString("id")); |
| | | paramMap.put("tableName", oaWorkflowFormDto.getTableName()); |
| | | paramMap.put("tableName", oaWorkflowFormDtos.get(0).getTableName()); |
| | | paramMap.put("page", 1); |
| | | paramMap.put("row", 1); |
| | | List<Map> formDatas = oaWorkflowFormInnerServiceSMOImpl.queryOaWorkflowFormDatas(paramMap); |
| | |
| | | oaWorkflowFormDto.setRow(1); |
| | | oaWorkflowFormDto.setPage(1); |
| | | List<OaWorkflowFormDto> oaWorkflowFormDtos = oaWorkflowFormInnerServiceSMOImpl.queryOaWorkflowForms(oaWorkflowFormDto); |
| | | Assert.listOnlyOne(oaWorkflowFormDtos, "未包含流程表单,请先设置表单"); |
| | | //Assert.listOnlyOne(oaWorkflowFormDtos, "未包含流程表单,请先设置表单"); |
| | | OaWorkflowFormDto tmpOaWorkflowFormDto = (oaWorkflowFormDtos == null || oaWorkflowFormDtos.size() < 1) ? null : oaWorkflowFormDtos.get(0); |
| | | |
| | | OaWorkflowDataDto oaWorkflowDataDto = new OaWorkflowDataDto(); |
| | | oaWorkflowDataDto.setFlowId(paramIn.getString("flowId")); |
| | |
| | | datas.add(BeanConvertUtil.beanCovertJson(oaWorkflowDataDto1)); |
| | | } |
| | | //刷新 表单数据 |
| | | freshFormData(datas, paramIn, oaWorkflowFormDtos.get(0)); |
| | | freshFormData(datas, paramIn, tmpOaWorkflowFormDto); |
| | | } |
| | | |
| | | ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) paramIn.getInteger("row")), count, datas); |
| | |
| | | * @param datas |
| | | */ |
| | | private void freshFormData(List<JSONObject> datas, JSONObject paramIn, OaWorkflowFormDto oaWorkflowFormDto) { |
| | | List<String> ids = new ArrayList<>(); |
| | | |
| | | List<String> userIds = new ArrayList<>(); |
| | | for (JSONObject data : datas) { |
| | | ids.add(data.getString("id")); |
| | | if (!StringUtil.isEmpty(data.getString("staffId"))) { |
| | | userIds.add(data.getString("staffId")); |
| | | } |
| | | } |
| | | if (ids.size() < 1) { |
| | | return; |
| | | } |
| | | |
| | | Map paramMap = new HashMap(); |
| | | paramMap.put("storeId", paramIn.getString("storeId")); |
| | | paramMap.put("ids", ids.toArray(new String[ids.size()])); |
| | | paramMap.put("tableName", oaWorkflowFormDto.getTableName()); |
| | | paramMap.put("page", 1); |
| | | paramMap.put("row", ids.size()); |
| | | List<Map> formDatas = oaWorkflowFormInnerServiceSMOImpl.queryOaWorkflowFormDatas(paramMap); |
| | | //输入formData |
| | | refreshFormData(oaWorkflowFormDto, datas, paramIn); |
| | | |
| | | long duration = 0L; |
| | | for (JSONObject data : datas) { |
| | | for (Map form : formDatas) { |
| | | if (data.getString("id").equals(form.get("id"))) { |
| | | data.putAll(form); |
| | | } |
| | | } |
| | | |
| | | if (data.containsKey("startTime") && data.containsKey("endTime")) { |
| | | try { |
| | | if (data.getString("endTime") == null) { |
| | |
| | | } |
| | | } |
| | | |
| | | private void refreshFormData(OaWorkflowFormDto oaWorkflowFormDto, List<JSONObject> datas, JSONObject paramIn) { |
| | | if (oaWorkflowFormDto == null) { |
| | | return; |
| | | } |
| | | |
| | | List<String> ids = new ArrayList<>(); |
| | | for (JSONObject data : datas) { |
| | | ids.add(data.getString("id")); |
| | | } |
| | | if (ids.size() < 1) { |
| | | return; |
| | | } |
| | | |
| | | Map paramMap = new HashMap(); |
| | | paramMap.put("storeId", paramIn.getString("storeId")); |
| | | paramMap.put("ids", ids.toArray(new String[ids.size()])); |
| | | paramMap.put("tableName", oaWorkflowFormDto.getTableName()); |
| | | paramMap.put("page", 1); |
| | | paramMap.put("row", ids.size()); |
| | | List<Map> formDatas = oaWorkflowFormInnerServiceSMOImpl.queryOaWorkflowFormDatas(paramMap); |
| | | for (JSONObject data : datas) { |
| | | for (Map form : formDatas) { |
| | | if (data.getString("id").equals(form.get("id"))) { |
| | | data.putAll(form); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | public String getCostTime(Long time) { |
| | | if (time == null) { |
| | | return "00:00"; |