From f2f8241dd52ef12ec109f6f4f0f13042055338ac Mon Sep 17 00:00:00 2001
From: lyh <925863403@qq.com>
Date: 星期五, 14 二月 2025 14:55:56 +0800
Subject: [PATCH] 修改指派设备 修改设备结构树权限 优化查询 优化排序

---
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DocInfoServiceImpl.java |  121 +++++++++++++++++++++++++++++-----------
 1 files changed, 87 insertions(+), 34 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 4a4c131..d80aefb 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
@@ -16,6 +16,7 @@
 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.CamelToSnakeRegex;
 import org.jeecg.modules.dnc.utils.ValidateUtil;
 
 
@@ -25,6 +26,7 @@
 
 import org.jeecg.modules.dnc.entity.*;
 import org.jeecg.modules.dnc.response.*;
+import org.jeecg.modules.mdc.entity.MdcEquipment;
 import org.jeecg.modules.system.service.ISysDictService;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -37,7 +39,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 {
@@ -351,16 +355,15 @@
         if(file == null || file.isEmpty() || !ValidateUtil.validateString(id))
             ExceptionCast.cast(CommonCode.INVALID_PARAM);
         LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-        String userId = user.getId();
-        if(!ValidateUtil.validateString(userId))
+        if(!ValidateUtil.validateString(user.getUsername()))
             ExceptionCast.cast(UcenterCode.UCENTER_ACCOUNT_NOT_EXIST);
         FileOperate operate = fileOperateService.getByDocId(id);
-        if(operate == null || !userId.equals(operate.getCreateUser()))
+        if(operate == null || !user.getUsername().equals(operate.getCreateBy()))
             ExceptionCast.cast(DocumentCode.DOC_OPERATE_PUSH_FAIL);
         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());
@@ -527,11 +530,10 @@
         if(!ValidateUtil.validateString(id))
             ExceptionCast.cast(CommonCode.INVALID_PARAM);
         LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-        String userId = user.getId();
-        if(!ValidateUtil.validateString(userId))
+        if(!ValidateUtil.validateString(user.getUsername()))
             ExceptionCast.cast(UcenterCode.UCENTER_ACCOUNT_NOT_EXIST);
         FileOperate operate = fileOperateService.getByDocId(id);
-        if(operate == null || !userId.equals(operate.getCreateUser()))
+        if(operate == null || !user.getUsername().equals(operate.getCreateBy()))
             ExceptionCast.cast(DocumentCode.DOC_CANCEL_PULL_ERROR);
         DocInfo en = super.getById(id);
         if(en == null)
@@ -580,18 +582,33 @@
                 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());
-        if(ValidateUtil.validateString(docQuery.getAscStr())) {
-            String[] ascArr = docQuery.getAscStr().split(",");
-//            ((Page<DocInfo>) pageData).setAsc(ascArr);
-        }
-        if(ValidateUtil.validateString(docQuery.getDescStr())) {
-            String[] descStr = docQuery.getDescStr().split(",");
-//            ((Page<DocInfo>) pageData).setDesc(descStr);
-        }
+        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 (("desc").equals(docQuery.getOrder())){
+            queryWrapper.orderByDesc("u."+ CamelToSnakeRegex.camelToSnake(docQuery.getColumn()));
+        }else {
+            queryWrapper.orderByAsc("u."+CamelToSnakeRegex.camelToSnake(docQuery.getColumn()));
+        }
     }
 
     @Override
@@ -682,7 +699,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);
@@ -691,6 +708,27 @@
             ExceptionCast.cast(CommonCode.FAIL);
         }
         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
@@ -758,7 +796,7 @@
     }
 
     @Override
-    public QueryPageResponseResult<DocInfo> findPageListByDevice(int page, int size, DocInfoQueryRequest docQuery) {
+    public IPage<DocInfo> findPageListByDevice(int page, int size, DocInfoQueryRequest docQuery) {
         if(page < 1 || size < 1) {
             ExceptionCast.cast(CommonCode.INVALID_PAGE);
         }
@@ -786,16 +824,33 @@
                 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());
-
-        if(ValidateUtil.validateString(docQuery.getAscStr())) {
-            String[] ascArr = docQuery.getAscStr().split(",");
-//            ((Page<DocInfo>) pageData).setAsc(ascArr);
+        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(ValidateUtil.validateString(docQuery.getDescStr())) {
-            String[] descStr = docQuery.getDescStr().split(",");
-//            ((Page<DocInfo>) pageData).setDesc(descStr);
+        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()) {
@@ -803,11 +858,11 @@
                 d.setSyncStatus(2);
             }
         }
-        return new QueryPageResponseResult<>(CommonCode.SUCCESS, docInfoIPage);
+        return docInfoIPage;
     }
 
     @Override
-    public QueryListResponseResult<DocInfo> findList(DocInfoQueryRequest docQuery) {
+    public List<DocInfo> findList(DocInfoQueryRequest docQuery) {
         if(docQuery == null || !ValidateUtil.validateString(docQuery.getAttributionId())
                 || !ValidateUtil.validateInteger(docQuery.getAttributionType()) ||
                 !ValidateUtil.validateString(docQuery.getDocClassCode())) {
@@ -831,10 +886,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 new QueryListResponseResult<>(CommonCode.SUCCESS, docInfoIPage);
+        getDocQuery(docQuery, queryWrapper);
+        return super.getBaseMapper().findDocExtList(queryWrapper);
     }
 
     @Override

--
Gitblit v1.9.3