From ed8c7a5effd0d423ce1118b680ecdca6fe732609 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期三, 02 七月 2025 16:43:13 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.11.205:9000/r/P2022036_Service

---
 src/main/java/com/lf/server/service/show/ApplyService.java |  174 ++++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 152 insertions(+), 22 deletions(-)

diff --git a/src/main/java/com/lf/server/service/show/ApplyService.java b/src/main/java/com/lf/server/service/show/ApplyService.java
index e916120..b3adb4a 100644
--- a/src/main/java/com/lf/server/service/show/ApplyService.java
+++ b/src/main/java/com/lf/server/service/show/ApplyService.java
@@ -1,17 +1,24 @@
 package com.lf.server.service.show;
 
+import com.lf.server.entity.all.StaticData;
 import com.lf.server.entity.ctrl.DownloadReqEntity;
+import com.lf.server.entity.data.MetaEntity;
 import com.lf.server.entity.show.ApplyEntity;
 import com.lf.server.entity.show.FlowEntity;
 import com.lf.server.entity.sys.UserEntity;
-import com.lf.server.helper.Md5Helper;
+import com.lf.server.helper.AesHelper;
 import com.lf.server.helper.StringHelper;
 import com.lf.server.mapper.show.ApplyMapper;
-import org.hsqldb.rights.User;
+import com.lf.server.service.data.MetaService;
+import com.lf.server.service.sys.UserService;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.sql.Timestamp;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 /**
@@ -26,14 +33,29 @@
     @Autowired
     FlowService flowService;
 
+    @Autowired
+    UserService userService;
+
+    @Autowired
+    MetaService metaService;
+
+    @Autowired
+    DataLibService dataLibService;
+
+    private final static Log log = LogFactory.getLog(ApplyService.class);
+
     @Override
-    public Integer selectCount(Integer userid) {
-        return applyMapper.selectCount(userid);
+    public Integer selectCount(String uname, Integer status, Timestamp start, Timestamp end) {
+        uname = StringHelper.getLikeUpperStr(uname);
+
+        return applyMapper.selectCount(uname, status, start, end);
     }
 
     @Override
-    public List<ApplyEntity> selectByPage(Integer userid, Integer limit, Integer offset) {
-        return applyMapper.selectByPage(userid, limit, offset);
+    public List<ApplyEntity> selectByPage(Integer userid, String uname, Integer status, Timestamp start, Timestamp end, Integer limit, Integer offset) {
+        uname = StringHelper.getLikeUpperStr(uname);
+
+        return applyMapper.selectByPage(userid, uname, status, start, end, limit, offset);
     }
 
     @Override
@@ -44,6 +66,21 @@
     @Override
     public ApplyEntity selectById(int id) {
         return applyMapper.selectById(id);
+    }
+
+    @Override
+    public UserEntity selectUserByDepcode(String depcode) {
+        return applyMapper.selectUserByDepcode(depcode);
+    }
+
+    @Override
+    public Integer selectSubmits(Integer userid) {
+        return applyMapper.selectSubmits(userid);
+    }
+
+    @Override
+    public List<FlowEntity> selectFlows(Integer applyid) {
+        return applyMapper.selectFlows(applyid);
     }
 
     @Override
@@ -76,10 +113,30 @@
         return applyMapper.updates(list);
     }
 
+    @Override
+    public Integer updateForDiscard(Integer userid, Integer id) {
+        return applyMapper.updateForDiscard(userid, id);
+    }
+
+    @Override
+    public Integer updateForResubmit(Integer userid, Integer id) {
+        return applyMapper.updateForResubmit(userid, id);
+    }
+
+    @Override
+    public Integer updateForSubmit(Integer userid, Integer applyid, Integer flowId) {
+        return applyMapper.updateForSubmit(userid, applyid, flowId);
+    }
+
+    @Override
+    public Integer updateForReject(Integer userid, Integer applyid, Integer flowId) {
+        return applyMapper.updateForReject(userid, applyid, flowId);
+    }
+
     /**
      * 鎻掑叆鏁版嵁鐢宠
      */
-    public Integer insertApply(UserEntity ue, DownloadReqEntity dr) {
+    public Integer insertApply(UserEntity ue, DownloadReqEntity dr) throws Exception {
         ApplyEntity apply = getApplyEntity(ue, dr);
         int rows = applyMapper.insert(apply);
         if (0 == rows) {
@@ -87,30 +144,66 @@
         }
 
         List<FlowEntity> list = getFlowEntities(apply.getId(), ue, dr);
-        rows = flowService.inserts(list);
+        if (list.isEmpty()) {
+            applyMapper.delete(apply.getId());
+            throw new Exception("鎵句笉鍒板緟瀹℃牳浜�");
+        }
 
-        return rows;
+        return flowService.inserts(list);
     }
 
     /**
      * 鑾峰彇鏁版嵁鐢宠瀹炰綋绫�
      */
-    private ApplyEntity getApplyEntity(UserEntity ue, DownloadReqEntity dr) {
-        String dbPwd = Md5Helper.reverse(Md5Helper.generate(dr.getPwd()));
+    private ApplyEntity getApplyEntity(UserEntity ue, DownloadReqEntity dr) throws Exception {
+        // String dbPwd = Md5Helper.reverse(Md5Helper.generate(dr.getPwd()))
+        String aesPwd = AesHelper.encrypt(dr.getPwd());
+        String gids = null == dr.getIds() || dr.getIds().isEmpty() ? null : StringHelper.join(dr.getIds(), ",");
 
         ApplyEntity apply = new ApplyEntity();
         apply.setUserid(ue.getId());
-        apply.setDepids(StringHelper.join(dr.getIds(), ","));
-        apply.setTabs(StringHelper.join(dr.getTabs(), ","));
+        apply.setDepids(StringHelper.join(dr.getDepcodes(), ","));
+        apply.setTabs(getTabs(dr));
         apply.setEntities(StringHelper.join(dr.getEntities(), ","));
         apply.setWkt(dr.getWkt());
-        apply.setPwd(dbPwd);
+        apply.setPwd(aesPwd);
         apply.setStatus(0);
-        apply.setCount(dr.getIds().size());
+        apply.setCount(dr.getDepcodes().size());
         apply.setDescr(dr.getDescr());
         apply.setCreateUser(ue.getId());
+        apply.setDepcode(dr.getDepcode());
+        apply.setDircodes(dr.getDirs());
+        apply.setGids(gids);
+        apply.setFilters(dr.getFilter());
 
         return apply;
+    }
+
+    /**
+     * 鑾峰彇琛ㄥ悕
+     */
+    private String getTabs(DownloadReqEntity dr) {
+        if (!StaticData.SYS_META.equals(dr.getEntities().get(0))) {
+            return StringHelper.join(dr.getTabs(), ",");
+        }
+
+        List<MetaEntity> list = metaService.selectMetaFiles(dr.getIds());
+        if (null == list || list.isEmpty()) {
+            return "鍏冩暟鎹〃";
+        }
+
+        StringBuilder sb = new StringBuilder();
+        for (MetaEntity me : list) {
+            sb.append(me.getName()).append(",");
+            if (sb.length() > StaticData.I1000) {
+                break;
+            }
+        }
+        if (sb.length() > 1) {
+            sb.deleteCharAt(sb.length() - 1);
+        }
+
+        return sb.toString();
     }
 
     /**
@@ -118,12 +211,15 @@
      */
     private List<FlowEntity> getFlowEntities(Integer applyId, UserEntity ue, DownloadReqEntity dr) {
         List<FlowEntity> list = new ArrayList<>();
-        for (Integer depid : dr.getIds()) {
-            UserEntity user = selectUserByDepid(depid);
+        for (String depcode : dr.getDepcodes()) {
+            UserEntity user = selectUserByDepcode(depcode);
+            if (null == user) {
+                user = userService.selectByUid(StaticData.ADMIN);
+            }
 
             FlowEntity flow = new FlowEntity();
             flow.setApplyid(applyId);
-            flow.setDepid(depid);
+            flow.setDepcode(depcode);
             flow.setUserid(user.getId());
             flow.setStatus(0);
             flow.setDescr(null);
@@ -136,11 +232,45 @@
     }
 
     /**
-     * 鏍规嵁鍗曚綅ID鏌ヨ鐢ㄦ埛
+     * 鎵撳寘DB鏁版嵁
      */
-    private UserEntity selectUserByDepid(Integer depid) {
-        //
+    public void zipDbData(UserEntity ue, ApplyEntity entity) {
+        try {
+            List<String> entities = Arrays.asList(entity.getEntities().split(StaticData.COMMA));
+            String pwd = AesHelper.decrypt(entity.getPwd());
 
-        return null;
+            DownloadReqEntity dr = new DownloadReqEntity();
+            dr.setEntities(entities);
+            dr.setWkt(dr.getWkt());
+            dr.setPwd(pwd);
+            dr.setDepcode(entity.getDepcode());
+            dr.setDirs(entity.getDircodes());
+            dr.setIds(getIds(entity.getGids()));
+            dr.setFilter(entity.getFilters());
+
+            String guid = StaticData.SYS_META.equals(entity.getEntities()) ? metaService.downloadMeteReq(ue, dr) : dataLibService.downloadDbReq(ue, dr);
+            if (!StringHelper.isEmpty(guid)) {
+                entity.setGuid(guid);
+                update(entity);
+            }
+        } catch (Exception ex) {
+            log.error(ex.getMessage(), ex);
+        }
+    }
+
+    /**
+     * 鑾峰彇ID闆嗗悎
+     */
+    private List<Integer> getIds(String gids) {
+        if (StringHelper.isEmpty(gids)) {
+            return null;
+        }
+
+        List<Integer> list = new ArrayList<>();
+        for (String str : gids.split(StaticData.COMMA)) {
+            list.add(Integer.parseInt(str));
+        }
+
+        return list;
     }
 }

--
Gitblit v1.9.3