From 990ad5f6db0bb3ad5a3795e77c5d6f3971c12ff3 Mon Sep 17 00:00:00 2001 From: lyh <925863403@qq.com> Date: 星期四, 17 四月 2025 09:43:01 +0800 Subject: [PATCH] 增加筛选电子样板 --- lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DocInfoServiceImpl.java | 112 ++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 92 insertions(+), 20 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 809ae76..a1498cd 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; @@ -12,22 +11,23 @@ import org.apache.shiro.SecurityUtils; import org.jeecg.common.api.vo.FileUploadResult; import org.jeecg.common.api.vo.Result; +import org.jeecg.common.exception.JeecgBootException; 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.request.DocInfoQueryRequest; +import org.jeecg.modules.dnc.request.DocInfoUploadRequest; +import org.jeecg.modules.dnc.response.*; 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.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.dncFlow.entity.DispatchFile; +import org.jeecg.modules.dncFlow.service.IDispatchFileService; import org.jeecg.modules.mdc.entity.MdcEquipment; -import org.jeecg.modules.system.service.ISysDictService; +import org.jeecg.modules.system.entity.SysParams; +import org.jeecg.modules.system.service.ISysParamsService; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; @@ -59,7 +59,10 @@ private IDeviceInfoService deviceInfoService; @Autowired private IDeviceGroupService deviceGroupService; - + @Autowired + private IDispatchFileService dispatchFileService; + @Autowired + private ISysParamsService sysParamsService; /*澶囦唤澶勭悊*/ @Override @@ -137,11 +140,27 @@ } } - } boolean saveBool = super.save(docInfo); + SysParams sysParams=sysParamsService.getSysPramBySettingKey("nc_dispatch_file"); + if (sysParams ==null){ + throw new JeecgBootException("鏈厤缃鍏C涓庣數瀛愬浘鐗堟槸鍚﹁Е鍙戝绛炬祦绋嬶紝璇疯仈绯荤鐞嗗憳"); + }else { + if (saveBool&&sysParams.getSettingValue().equals("1")&&uploadRequest.getDocClassCode().equals("NC")){ + //瑙﹀彂瀹$ + 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}) @@ -161,7 +180,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; } @@ -519,6 +538,13 @@ }else { queryWrapper.eq(StrUtil.isNotEmpty(docQuery.getDocStatus()),"u.doc_status",docQuery.getDocStatus()); } + if (docQuery.getDocDispatchStatus() != null && docQuery.getDocDispatchStatus().contains(",")) { + String[] docDispatchStatusArray = docQuery.getDocDispatchStatus().split(","); + List<Integer> docDispatchStatusList = Arrays.stream(docDispatchStatusArray).map(Integer::parseInt).collect(Collectors.toList()); + queryWrapper.in("u.doc_dispatch_status",docDispatchStatusList); + }else { + queryWrapper.eq(StrUtil.isNotEmpty(docQuery.getDocDispatchStatus()),"u.doc_dispatch_status",docQuery.getDocDispatchStatus()); + } if (StrUtil.isNotEmpty(docQuery.getPullStatus())){ if (("1").equals(docQuery.getPullStatus())){ queryWrapper.isNull("o.doc_id"); @@ -528,10 +554,12 @@ } 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())); + 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())); + } } } @@ -659,10 +687,7 @@ @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 @@ -746,6 +771,13 @@ }else { queryWrapper.eq(StrUtil.isNotEmpty(docQuery.getDocStatus()),"u.doc_status",docQuery.getDocStatus()); } + if (docQuery.getDocDispatchStatus() != null && docQuery.getDocDispatchStatus().contains(",")) { + String[] docDispatchStatusArray = docQuery.getDocDispatchStatus().split(","); + List<Integer> docDispatchStatusList = Arrays.stream(docDispatchStatusArray).map(Integer::parseInt).collect(Collectors.toList()); + queryWrapper.in("u.doc_dispatch_status",docDispatchStatusList); + }else { + queryWrapper.eq(StrUtil.isNotEmpty(docQuery.getDocDispatchStatus()),"u.doc_dispatch_status",docQuery.getDocDispatchStatus()); + } if (StrUtil.isNotEmpty(docQuery.getPullStatus())){ if (("1").equals(docQuery.getPullStatus())){ queryWrapper.isNull("o.doc_id"); @@ -789,6 +821,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())) { @@ -805,6 +838,45 @@ return super.getBaseMapper().findDocExtList(queryWrapper); } + /** + * 閫氳繃涓�缁刟ttributionId,docClassCode,attributionType鏌ヨ鍙寚娲剧殑鏂囨。淇℃伅鍒楄〃 + * @param docQuery + * @return + */ + @Override + public List<DocInfo> findListByDocQuery(DocInfoQueryRequest docQuery){ + if(docQuery == null || !ValidateUtil.validateString(docQuery.getAttributionIds()) + || !ValidateUtil.validateInteger(docQuery.getAttributionType()) || + !ValidateUtil.validateString(docQuery.getDocClassCode())) { + ExceptionCast.cast(CommonCode.INVALID_PARAM); + } + DocClassification docClassification = docClassificationService.getByCode(docQuery.getDocClassCode()); + if(docClassification == null) { + ExceptionCast.cast(CommonCode.INVALID_PAGE); + } + List<String> attributionIds = Arrays.asList(docQuery.getAttributionIds().split(",")); + + QueryWrapper<DocInfo> queryWrapper = Wrappers.query(); + queryWrapper.eq(StrUtil.isNotEmpty(docQuery.getDocId()),"u.doc_id",docQuery.getDocId()); + queryWrapper.eq("r.attribution_type", docQuery.getAttributionType()) + .in("r.attribution_id", attributionIds) + .eq("r.classification_id", docClassification.getClassificationId()); + if (StringUtils.isNotEmpty(docQuery.getDocName())) { + int dotIndex = docQuery.getDocName().lastIndexOf("."); + if (dotIndex == -1) { + queryWrapper.like("u.doc_name", docQuery.getDocName()); + } else { + String[] docNameArr = docQuery.getDocName().split("\\."); + queryWrapper.like(StrUtil.isNotEmpty(docNameArr[0]), "u.doc_name", docNameArr[0]); + queryWrapper.eq(StrUtil.isNotEmpty(docNameArr[1]), "u.doc_suffix", docNameArr[1]); + } + } + getDocQuery(docQuery, queryWrapper); + return super.getBaseMapper().findDocExtList(queryWrapper); + } + + + @Override public List<DocInfo> getByProcessIds(List<ProcessStream> streams) { List<String> ids = new ArrayList<>(); -- Gitblit v1.9.3