From bc263d8bed5d1405f275bb8638a9bec9eaf06585 Mon Sep 17 00:00:00 2001 From: lyh <925863403@qq.com> Date: 星期一, 31 三月 2025 09:42:00 +0800 Subject: [PATCH] 添加审签逻辑,移动flow通用代码,添加根据角色查询用户,新增时间工具类,修改指派设备bug --- lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DocInfoServiceImpl.java | 220 ++++++++++++++++++++++++++---------------------------- 1 files changed, 107 insertions(+), 113 deletions(-) diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DocInfoServiceImpl.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DocInfoServiceImpl.java index 33a1e56..7d4f340 100644 --- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DocInfoServiceImpl.java +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DocInfoServiceImpl.java @@ -1,7 +1,6 @@ package org.jeecg.modules.dnc.service.impl; import cn.hutool.core.util.StrUtil; -import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.IdWorker; @@ -13,19 +12,19 @@ import org.jeecg.common.api.vo.FileUploadResult; import org.jeecg.common.api.vo.Result; import org.jeecg.common.system.vo.LoginUser; +import org.jeecg.modules.dnc.entity.*; import org.jeecg.modules.dnc.exception.ExceptionCast; import org.jeecg.modules.dnc.mapper.DocInfoMapper; -import org.jeecg.modules.dnc.service.*; -import org.jeecg.modules.dnc.utils.ValidateUtil; - - import org.jeecg.modules.dnc.request.DocInfoQueryRequest; import org.jeecg.modules.dnc.request.DocInfoUploadRequest; -import org.jeecg.modules.dnc.utils.file.FileUtilS; - -import org.jeecg.modules.dnc.entity.*; import org.jeecg.modules.dnc.response.*; -import org.jeecg.modules.system.service.ISysDictService; +import org.jeecg.modules.dnc.service.*; +import org.jeecg.modules.dnc.utils.CamelToSnakeRegex; +import org.jeecg.modules.dnc.utils.ValidateUtil; +import org.jeecg.modules.dnc.utils.file.FileUtilS; +import org.jeecg.modules.dncFlow.entity.DispatchFile; +import org.jeecg.modules.dncFlow.service.IDispatchFileService; +import org.jeecg.modules.mdc.entity.MdcEquipment; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; @@ -37,7 +36,9 @@ import javax.servlet.http.HttpServletResponse; import java.io.File; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.stream.Collectors; @Service public class DocInfoServiceImpl extends ServiceImpl<DocInfoMapper, DocInfo> implements IDocInfoService { @@ -56,7 +57,7 @@ @Autowired private IDeviceGroupService deviceGroupService; @Autowired - private INcLogInfoService iNcLogInfoService; + private IDispatchFileService dispatchFileService; /*澶囦唤澶勭悊*/ @Override @@ -134,20 +135,22 @@ } } - } - //娣诲姞鏃ュ織 - NcLogInfo ncLogInfo = new NcLogInfo(); - //妯″潡 - ncLogInfo.setModuleInfo("璁惧缁撴瀯鏍�"); - //绫诲瀷 - ncLogInfo.setOperateType(7); - //鏃ュ織鍐呭 - ncLogInfo.setLogContent("瀵煎叆"+docClass.getClassificationName()+"锛屾枃妗e悕绉�:"+(docFile.getFileName()+"."+docFile.getFileSuffix())); - iNcLogInfoService.saveLogNcInfos(ncLogInfo); boolean saveBool = super.save(docInfo); + if (uploadRequest.getIsApprove()&&saveBool){ + //瑙﹀彂瀹$ + DispatchFile dispatchFile = new DispatchFile(); + dispatchFile.setDocId(docInfo.getDocId()); + dispatchFile.setFileId(docFile.getFileId()); + dispatchFile.setAttributionId(uploadRequest.getAttributionId()); + dispatchFile.setAttributionType(String.valueOf(uploadRequest.getAttributionType())); + dispatchFile.setDocClassCode(uploadRequest.getDocClassCode()); + dispatchFileService.saveDispatchFile(dispatchFile); + } return saveBool; } + + @Override @Transactional(rollbackFor = {Exception.class}) @@ -167,7 +170,7 @@ } String recF = pathFile.substring(0,recNum);//灏嗚繑鍥瀌ef}ab Integer equipmentId = recF.lastIndexOf("\\"); - String deviceNo = recF.substring(equipmentId+1,recF.length()); + String deviceNo = recF.substring(equipmentId+1); if (StringUtils.isEmpty(deviceNo)) { return false; } @@ -300,17 +303,6 @@ docInfo.setClassificationId(null); docInfo.setPublishFileId(null); docInfo.setPublishVersion(null); - //娣诲姞鏃ュ織 - NcLogInfo ncLogInfo = new NcLogInfo(); - //妯″潡 - ncLogInfo.setModuleInfo("璁惧缁撴瀯鏍�"); - //绫诲瀷 - ncLogInfo.setOperateType(3); - //鏃ュ織鍐呭 - ncLogInfo.setLogContent("鏂囨。鍚嶇О锛�"+docInfo.getDocName()); - //淇敼淇濆瓨澶囨敞 - ncLogInfo.setRemark(JSONObject.toJSONString(en)); - iNcLogInfoService.saveLogNcInfos(ncLogInfo); return super.updateById(docInfo); } @@ -333,15 +325,6 @@ b = docRelativeService.deleteByDocId(id); if(!b) ExceptionCast.cast(CommonCode.FAIL); - //娣诲姞鏃ュ織 - NcLogInfo ncLogInfo = new NcLogInfo(); - //妯″潡 - ncLogInfo.setModuleInfo("浜у搧缁撴瀯鏍�"); - //绫诲瀷 - ncLogInfo.setOperateType(4); - //鏃ュ織鍐呭 - ncLogInfo.setLogContent("鏂囨。鍚嶇О锛�"+en.getDocName()); - iNcLogInfoService.saveLogNcInfos(ncLogInfo); return super.removeById(id); } @@ -359,7 +342,7 @@ DocInfo en = super.getById(id); if(en == null) ExceptionCast.cast(DocumentCode.DOC_NOT_EXIST); - List<DeviceInfo> deviceList = docRelativeService.findDeviceByDocId(en.getDocId()); + List<MdcEquipment> deviceList = docRelativeService.findDeviceByDocId(en.getDocId()); if(deviceList != null && !deviceList.isEmpty()) ExceptionCast.cast(DocumentCode.DOC_DEVICE_EXIST); String suffix = FileUtilS.getFileSuffix(file.getOriginalFilename()); @@ -380,16 +363,6 @@ docFile.setFilePath(fileUploadResult.getFilePath()); docFile.setFileSize(fileUploadResult.getFileSize()); docFile.setFileSuffix(fileUploadResult.getFileSuffix()); - //娣诲姞鏃ュ織 - NcLogInfo ncLogInfo = new NcLogInfo(); - //妯″潡 - ncLogInfo.setModuleInfo("璁惧缁撴瀯鏍�"); - //绫诲瀷 - ncLogInfo.setOperateType(7); - //鏃ュ織鍐呭 - ncLogInfo.setLogContent("鍏ュ簱"+docFile.getFileSuffix()+"鏍煎紡鏂囨。锛屾枃妗e悕绉�:"+docFile.getFileName()); - ncLogInfo.setRemark(JSONObject.toJSONString(en)); - iNcLogInfoService.saveLogNcInfos(ncLogInfo); boolean b = fileOperateService.deleteByDocId(id); if(!b) ExceptionCast.cast(CommonCode.FAIL); @@ -448,15 +421,6 @@ DocFile old = docFileService.getDocFileNearest(en.getDocId()); if(old == null) ExceptionCast.cast(DocumentCode.DOC_PUBLISH_FILE_NONE); - //娣诲姞鏃ュ織 - NcLogInfo ncLogInfo = new NcLogInfo(); - //妯″潡 - ncLogInfo.setModuleInfo("璁惧缁撴瀯鏍�"); - //绫诲瀷 - ncLogInfo.setOperateType(7); - //鏃ュ織鍐呭 - ncLogInfo.setLogContent("鍙戝竷"+en.getDocSuffix()+"鏍煎紡鏂囨。锛屾枃妗e悕绉�:"+en.getDocName()); - iNcLogInfoService.saveLogNcInfos(ncLogInfo); if(old.getDocVersion().contains(".")) { DocFile docFile = new DocFile(); BeanUtils.copyProperties(pubFile, docFile); @@ -483,15 +447,6 @@ ExceptionCast.cast(DocumentCode.DOC_NOT_EXIST); if(en.getDocStatus() != 2) ExceptionCast.cast(DocumentCode.DOC_REPUBLISH_ERROR); - //娣诲姞鏃ュ織 - NcLogInfo ncLogInfo = new NcLogInfo(); - //妯″潡 - ncLogInfo.setModuleInfo("璁惧缁撴瀯鏍�"); - //绫诲瀷 - ncLogInfo.setOperateType(7); - //鏃ュ織鍐呭 - ncLogInfo.setLogContent("閲嶆柊鍙戝竷"+en.getDocSuffix()+"鏍煎紡鏂囨。锛屾枃妗e悕绉�:"+en.getDocName()); - iNcLogInfoService.saveLogNcInfos(ncLogInfo); return super.lambdaUpdate().eq(DocInfo::getDocId, id).set(DocInfo::getDocStatus, 1).update(); } @@ -508,15 +463,6 @@ FileOperate operate = fileOperateService.getByDocId(id); if(operate != null) ExceptionCast.cast(DocumentCode.DOC_IS_OPERATING); - //娣诲姞鏃ュ織 - NcLogInfo ncLogInfo = new NcLogInfo(); - //妯″潡 - ncLogInfo.setModuleInfo("璁惧缁撴瀯鏍�"); - //绫诲瀷 - ncLogInfo.setOperateType(7); - //鏃ュ織鍐呭 - ncLogInfo.setLogContent("褰掓。"+en.getDocSuffix()+"鏍煎紡鏂囨。锛屾枃妗e悕绉�:"+en.getDocName()); - iNcLogInfoService.saveLogNcInfos(ncLogInfo); return super.lambdaUpdate().eq(DocInfo::getDocId, id).set(DocInfo::getDocStatus, 3).update(); } @@ -534,15 +480,6 @@ DocInfo en = super.getById(id); if(en == null) ExceptionCast.cast(DocumentCode.DOC_NOT_EXIST); - //娣诲姞鏃ュ織 - NcLogInfo ncLogInfo = new NcLogInfo(); - //妯″潡 - ncLogInfo.setModuleInfo("璁惧缁撴瀯鏍�"); - //绫诲瀷 - ncLogInfo.setOperateType(7); - //鏃ュ織鍐呭 - ncLogInfo.setLogContent("鍙栨秷鍑哄簱"+en.getDocSuffix()+"鏍煎紡鏂囨。锛屾枃妗e悕绉�:"+en.getDocName()); - iNcLogInfoService.saveLogNcInfos(ncLogInfo); return fileOperateService.deleteByDocId(id); } @@ -578,11 +515,35 @@ queryWrapper.eq(StrUtil.isNotEmpty(docNameArr[1]), "u.doc_suffix", docNameArr[1]); } } - queryWrapper.ge(StrUtil.isNotEmpty(docQuery.getStartTime()),"date_format(u.create_time,'%Y-%m-%d %H:%i:%s')",docQuery.getStartTime()); - queryWrapper.le(StrUtil.isNotEmpty(docQuery.getEndTime()),"date_format(u.create_time,'%Y-%m-%d %H:%i:%s')",docQuery.getEndTime()); - queryWrapper.orderByDesc("u.create_time"); + getDocQuery(docQuery, queryWrapper); IPage<DocInfo> docInfoIPage = super.getBaseMapper().findDocExtList(pageData, queryWrapper); return Result.ok(docInfoIPage); + } + + private void getDocQuery(DocInfoQueryRequest docQuery, QueryWrapper<DocInfo> queryWrapper) { + if (docQuery.getDocStatus() != null && docQuery.getDocStatus().contains(",")) { + String[] docStatusArray = docQuery.getDocStatus().split(","); + List<Integer> docStatusList = Arrays.stream(docStatusArray).map(Integer::parseInt).collect(Collectors.toList()); + queryWrapper.in("u.doc_status",docStatusList); + }else { + queryWrapper.eq(StrUtil.isNotEmpty(docQuery.getDocStatus()),"u.doc_status",docQuery.getDocStatus()); + } + if (StrUtil.isNotEmpty(docQuery.getPullStatus())){ + if (("1").equals(docQuery.getPullStatus())){ + queryWrapper.isNull("o.doc_id"); + }else if (("2").equals(docQuery.getPullStatus())){ + queryWrapper.isNotNull("o.doc_id"); + } + } + queryWrapper.ge(StrUtil.isNotEmpty(docQuery.getStartTime()),"u.create_time",docQuery.getStartTime()+" 00:00:00"); + queryWrapper.le(StrUtil.isNotEmpty(docQuery.getEndTime()),"u.create_time",docQuery.getEndTime()+" 23:59:59"); + if (StrUtil.isNotEmpty(docQuery.getColumn())){ + if (("desc").equals(docQuery.getOrder())){ + queryWrapper.orderByDesc("u."+ CamelToSnakeRegex.camelToSnake(docQuery.getColumn())); + }else { + queryWrapper.orderByAsc("u."+CamelToSnakeRegex.camelToSnake(docQuery.getColumn())); + } + } } @Override @@ -673,7 +634,7 @@ public boolean deleteByProcessId(String processId) { if(!ValidateUtil.validateString(processId)) ExceptionCast.cast(CommonCode.INVALID_PARAM); - Integer attrType = 4; + Integer attrType = 5; boolean b = docFileService.deleteByDocAttr(attrType, processId); if(!b) ExceptionCast.cast(CommonCode.FAIL); @@ -684,14 +645,32 @@ return docRelativeService.deleteByDocAttr(attrType, processId); } + /** + * 鍒犻櫎宸ユ涓嬬殑鎵�鏈夋枃妗� + * @param stepId + * @return + */ + @Override + @Transactional(rollbackFor = {Exception.class}) + public boolean deleteByStepId(String stepId){ + if(!ValidateUtil.validateString(stepId)) + ExceptionCast.cast(CommonCode.INVALID_PARAM); + Integer attrType = 6; + boolean b = docFileService.deleteByDocAttr(attrType, stepId); + if(!b) + ExceptionCast.cast(CommonCode.FAIL); + b = deleteByDocAttr(attrType, stepId); + if(!b) { + ExceptionCast.cast(CommonCode.FAIL); + } + return docRelativeService.deleteByDocAttr(attrType, stepId); + } + @Override @Transactional(rollbackFor = {Exception.class}) public boolean deleteByDocAttr(Integer attrType, String attrId) { int i = super.getBaseMapper().deleteByDocAttr(attrType, attrId); - if(i >= 0) { - return true; - } - return false; + return i >= 0; } @Override @@ -710,15 +689,6 @@ String filePath = docFile.getFilePath(); String fileEncodeName = docFile.getFileEncodeName(); FileUtilS.downLoadFile(response, fileEncodeName, filePath, fileName); - //娣诲姞鏃ュ織 - NcLogInfo ncLogInfo = new NcLogInfo(); - //妯″潡 - ncLogInfo.setModuleInfo("璁惧缁撴瀯鏍�"); - //绫诲瀷 - ncLogInfo.setOperateType(7); - //鏃ュ織鍐呭 - ncLogInfo.setLogContent("鍑哄簱"+docFile.getFileSuffix()+"鏍煎紡鏂囨。锛屾枃妗e悕绉�:"+fileName); - iNcLogInfoService.saveLogNcInfos(ncLogInfo); return null; } @@ -777,9 +747,34 @@ queryWrapper.eq(StrUtil.isNotEmpty(docNameArr[1]), "u.doc_suffix", docNameArr[1]); } } - queryWrapper.ge(StrUtil.isNotEmpty(docQuery.getStartTime()),"date_format(u.create_time,'%Y-%m-%d %H:%i:%s')",docQuery.getStartTime()); - queryWrapper.le(StrUtil.isNotEmpty(docQuery.getEndTime()),"date_format(u.create_time,'%Y-%m-%d %H:%i:%s')",docQuery.getEndTime()); - queryWrapper.orderByDesc("u.create_time"); + if (docQuery.getDocStatus() != null && docQuery.getDocStatus().contains(",")) { + String[] docStatusArray = docQuery.getDocStatus().split(","); + List<Integer> docStatusList = Arrays.stream(docStatusArray).map(Integer::parseInt).collect(Collectors.toList()); + queryWrapper.in("u.doc_status",docStatusList); + }else { + queryWrapper.eq(StrUtil.isNotEmpty(docQuery.getDocStatus()),"u.doc_status",docQuery.getDocStatus()); + } + if (StrUtil.isNotEmpty(docQuery.getPullStatus())){ + if (("1").equals(docQuery.getPullStatus())){ + queryWrapper.isNull("o.doc_id"); + }else if (("2").equals(docQuery.getPullStatus())){ + queryWrapper.isNotNull("o.doc_id"); + } + } + if (docQuery.getSyncStatus()!=null){ + if (docQuery.getSyncStatus()==1){ + queryWrapper.isNotNull("t.sync_flag"); + }else if (docQuery.getSyncStatus()==2){ + queryWrapper.isNull("t.sync_flag"); + } + } + queryWrapper.ge(StrUtil.isNotEmpty(docQuery.getStartTime()),"u.create_time",docQuery.getStartTime()+" 00:00:00"); + queryWrapper.le(StrUtil.isNotEmpty(docQuery.getEndTime()),"u.create_time",docQuery.getEndTime()+" 23:59:59"); + if (("desc").equals(docQuery.getOrder())){ + queryWrapper.orderByDesc("u."+ CamelToSnakeRegex.camelToSnake(docQuery.getColumn())); + }else { + queryWrapper.orderByAsc("u."+CamelToSnakeRegex.camelToSnake(docQuery.getColumn())); + } IPage<DocInfo> docInfoIPage = super.getBaseMapper().findDeviceDocExtList(pageData, queryWrapper); if (docInfoIPage != null && docInfoIPage.getRecords() != null && !docInfoIPage.getRecords().isEmpty()) { for (DocInfo d : docInfoIPage.getRecords()) { @@ -790,7 +785,7 @@ } @Override - public Result<?> findList(DocInfoQueryRequest docQuery) { + public List<DocInfo> findList(DocInfoQueryRequest docQuery) { if(docQuery == null || !ValidateUtil.validateString(docQuery.getAttributionId()) || !ValidateUtil.validateInteger(docQuery.getAttributionType()) || !ValidateUtil.validateString(docQuery.getDocClassCode())) { @@ -802,6 +797,7 @@ } QueryWrapper<DocInfo> queryWrapper = Wrappers.query(); + queryWrapper.eq(StrUtil.isNotEmpty(docQuery.getDocId()),"u.doc_id",docQuery.getDocId()); queryWrapper.eq("r.attribution_type", docQuery.getAttributionType()).eq("r.attribution_id", docQuery.getAttributionId()) .eq("r.classification_id", docClassification.getClassificationId()); if (StringUtils.isNotEmpty(docQuery.getDocName())) { @@ -814,10 +810,8 @@ queryWrapper.eq(StrUtil.isNotEmpty(docNameArr[1]), "u.doc_suffix", docNameArr[1]); } } - queryWrapper.ge(StrUtil.isNotEmpty(docQuery.getStartTime()),"date_format(u.create_time,'%Y-%m-%d %H:%i:%s')",docQuery.getStartTime()); - queryWrapper.le(StrUtil.isNotEmpty(docQuery.getEndTime()),"date_format(u.create_time,'%Y-%m-%d %H:%i:%s')",docQuery.getEndTime()); - List<DocInfo> docInfoIPage = super.getBaseMapper().findDocExtList(queryWrapper); - return Result.ok(docInfoIPage); + getDocQuery(docQuery, queryWrapper); + return super.getBaseMapper().findDocExtList(queryWrapper); } @Override -- Gitblit v1.9.3