Kaynağa Gözat

Merge branch 'refs/heads/feature-lihb-20250811' into test-merge

# Conflicts:
#	blade-service/blade-business/src/main/java/org/springblade/business/controller/InformationWriteQueryController.java
#	blade-service/blade-business/src/main/java/org/springblade/business/mapper/RecycleBinInfoMapper.xml
#	blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/TextdictInfoMapper.java
#	blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/TextdictInfoMapper.xml
LHB 1 gün önce
ebeveyn
işleme
5804d7e66d

+ 1 - 1
blade-service/blade-business/src/main/java/org/springblade/business/mapper/RecycleBinInfoMapper.xml

@@ -71,7 +71,7 @@
                 </if>
             </if>
         </if>
-        <if test="vo.content != null">
+        <if test="vo.content != null and vo.content != ''">
             and (file_name like concat('%',#{vo.content},'%') or jl_file_name like concat('%',#{vo.content},'%') or del_root_name like concat('%',#{vo.content},'%') or position like concat('%',#{vo.content},'%'))
         </if>
         <if test="vo.operationId != null">

+ 8 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ExcelTabController.java

@@ -824,6 +824,7 @@ public class ExcelTabController extends BladeController {
                 this.excelTabService.gsColor(pkeyId, process.getPKeyId().toString(), wbsTreeContract.getProjectId(), doc);
             }
             doc.select("Col").remove();
+
             org.springblade.manager.entity.TableInfo tableInfo = this.tableInfoService.getOne(Wrappers.<org.springblade.manager.entity.TableInfo>lambdaQuery().select(org.springblade.manager.entity.TableInfo::getId)
                     .eq(org.springblade.manager.entity.TableInfo::getTabEnName, wbsTreeContract.getInitTableName()).eq(org.springblade.manager.entity.TableInfo::getIsDeleted, 0).last("limit 1"));
             if (tableInfo != null ) {
@@ -841,6 +842,9 @@ public class ExcelTabController extends BladeController {
                     });
                 }
             }
+            // 电签显示文件
+           // List<TextdictInfoVO> textdictInfos = textdictInfoService.getTextdictListInfoByPkeyId(wbsTreeContract.getIsTypePrivatePid()+"",wbsTreeContract.getProjectId()+"");
+
             fileInputStream.close();
             return R.data(table + "");
         } catch (Exception e) {
@@ -3958,6 +3962,9 @@ public class ExcelTabController extends BladeController {
     })
     public R addBussFile(Integer classify,Long contractId,@RequestParam("file") MultipartFile[] file, String nodeId, Integer type,BladeUser b) {
         List<TableFile> fileList = new ArrayList<>();
+        //查询字段
+        List<Integer> types = jdbcTemplate.queryForList("select dict_key from blade_dict_biz where code like 'table_file_type%' and is_deleted = 0 and dict_key > 0", Integer.class);
+
         if (file != null && file.length >= 1) {
             for (int i = 0; i < file.length; i++) {
 
@@ -3971,7 +3978,7 @@ public class ExcelTabController extends BladeController {
                 tableFile.setContractId(contractId);
                 tableFile.setName(file[i].getOriginalFilename());
                 tableFile.setType(type); //10 代表附件
-                if (type == 10 || type == 11 || type == 12 || type == 20 || type == 21 || type == 22) {
+                if (CollectionUtil.isNotEmpty(types) && types.contains(type)) {
                     tableFile.setDomainPdfUrl(bladeFile1.getLink());
                 }
                 tableFile.setDomainUrl(bladeFile1.getLink());

+ 6 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/TableFileController.java

@@ -43,6 +43,7 @@ import org.springblade.manager.service.IExcelTabService;
 import org.springblade.manager.service.IWbsTreeContractService;
 import org.springblade.manager.service.IWbsTreePrivateService;
 import org.springblade.manager.vo.ExcelTabVO;
+import org.springblade.resource.feign.NewIOSSClient;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.jdbc.core.BeanPropertyRowMapper;
 import org.springframework.jdbc.core.JdbcTemplate;
@@ -77,7 +78,7 @@ public class TableFileController extends BladeController {
 
     private final InformationQueryClient informationQueryClient;
 
-
+    private final NewIOSSClient newIOSSClient;
 
 
     // excel 基本信息表
@@ -98,6 +99,10 @@ public class TableFileController extends BladeController {
         TableFile tableFile = tableFileService.getById(ids);
         // 删除数据
         tableFileService.delDataById(ids, null);
+        //删除远程服务器中的文件
+        String pdfName = tableFile.getDomainPdfUrl().split("upload")[1];
+        this.newIOSSClient.removeFile("upload" + pdfName);
+
         //如果为节点附件,则不去做其他处理,只删除
         if (tableFile.getType() == 1 || tableFile.getType() == 2) {
             List<TableFileVO> fileVOList = tableFileService.selectTableFileList(Long.parseLong(tableFile.getTabId()));

+ 1 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/SaveUserInfoByProjectMapper.xml

@@ -73,7 +73,7 @@
     <select id="queryCurrentUserDownAllContractAndProjectId" resultMap="contractInfoResultMap">
         select project_id, contract_id
         from m_project_assignment_user
-        where is_deleted = 0
+        where is_deleted = 0 and project_id is not null and contract_id is not null
           and user_id = #{userId}
     </select>
 

+ 3 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/TableFileMapper.xml

@@ -52,7 +52,9 @@
     </delete>
 
     <select id="selectTableFileListByTen" resultMap="TableFileVO">
-        select *,domain_pdf_url as url from m_table_file where is_deleted = 0  and classify = #{classify} and type in (10,11,12,20,21,22) and tab_id = #{pKid} Order by sort ASC
+        select *,domain_pdf_url as url from m_table_file where is_deleted = 0  and classify = #{classify} and type in (
+            select dict_key from blade_dict_biz where code like 'table_file_type%' and is_deleted = 0 and dict_key > 0
+        ) and tab_id = #{pKid} Order by sort ASC
     </select>
 
     <select id="selectTableFileList1" resultMap="TableFileVO">

+ 4 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/TextdictInfoMapper.java

@@ -48,6 +48,7 @@ public interface TextdictInfoMapper extends EasyBaseMapper<TextdictInfo> {
 
 
     List<TextdictInfoVO> selectTextdictInfoByExcelId(IPage page, TextdictInfoVO textdictInfo);
+
     List<TextdictInfoVO> selectTextdictBYIds(@Param("ids") List<String> ids,@Param("projectId") String projectId);
 
     TextdictInfo selectTextdictInfoOne(@Param("id") String id,@Param("sigRoleId") String sigRoleId,@Param("projectId") String projectId);
@@ -57,4 +58,7 @@ public interface TextdictInfoMapper extends EasyBaseMapper<TextdictInfo> {
     List<TextdictInfoVO> selectTextdictInfoByExcelIdAndColKey(@Param("excelId") String excelId, @Param("colKeys") Collection<String> colKeys);
 
     List<TextdictInfoVO> selectTextDictInfoByIdAndColKeyAndColName(@Param("list") List<TextdictInfo> textdictInfos);
+    //通过表单Id 获取电签信息
+    List<TextdictInfoVO> getTextdictListInfoByPkeyId(@Param("tabId") String tabId,@Param("projectId") String projectId);
+
 }

+ 4 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/TextdictInfoMapper.xml

@@ -80,4 +80,8 @@
     <update id="updateHtmlUrl">
         update m_wbs_tree_contract set html_url = #{htmlUrl} where type = 2 and project_id = #{projectId} and is_type_private_pid = #{pKeyId};
     </update>
+
+    <select id="getTextdictListInfoByPkeyId" resultMap="textdictInfoVoResultMap">
+        SELECT a.* from m_textdict_info a where 1=0
+    </select>
 </mapper>

+ 5 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/ITextdictInfoService.java

@@ -26,6 +26,8 @@ import org.springblade.manager.vo.TextdictInfoVO;
 import org.springblade.core.mp.base.BaseService;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 
+import java.util.List;
+
 /**
  * 参数信息表 服务类
  *
@@ -54,4 +56,7 @@ public interface ITextdictInfoService extends IService<TextdictInfo> {
     void removeHtmlDefault(String tabId, String colKey);
 
     void saveHtmlDefault(TextdictBy345VO textdictInfo);
+
+    //表单获取电签信息
+    List<TextdictInfoVO> getTextdictListInfoByPkeyId(String tabId,String projectId);
 }

+ 6 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/TextdictInfoServiceImpl.java

@@ -439,6 +439,12 @@ public class TextdictInfoServiceImpl extends ServiceImpl<TextdictInfoMapper, Tex
 
 
 
+    }
+
+    @Override
+    public List<TextdictInfoVO> getTextdictListInfoByPkeyId(String tabId,String projectId) {
+        return  baseMapper.getTextdictListInfoByPkeyId(tabId,projectId);
+
     }
 
     @Override

+ 9 - 10
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeContractServiceImpl.java

@@ -611,10 +611,13 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
 //        if(info!=null){
 //            resultTabs.forEach(tab->tab.setFileName(info.getName()));
 //        }
+
         if (Optional.ofNullable(wbsTreeContract.getIsUseSort()).orElse(0) == 0) {
             //表单排序
             if (resultTabs.size() > 0) {
                 sortTabsByIsTypePrivatePid(resultTabs);
+                // 使用自定义 Comparator 进行排序
+                resultTabs.sort(new WbsTreeContractComparator());
                List<AppWbsTreeContractVO> resultTabsToCopy = this.sortTabs(resultTabs, "__"); //复制表排序
                 return this.sortTabs(resultTabsToCopy, "_PL_"); //频率表排序
             }
@@ -628,7 +631,6 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
         if(!resultTabs.isEmpty()){
            StringBuilder ids=new StringBuilder("");
             List<Integer>sorts1=new ArrayList<>();
-            List<Integer>sorts2=new ArrayList<>();
             for (AppWbsTreeContractVO resultTab : resultTabs) {
                 if(resultTab.getExcelId()==null){
                     continue;
@@ -636,7 +638,6 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
                 //拿到质量检验表附表的pkeyId,以及sort
                 if(resultTab.getExcelId()==1777969831956520962L||resultTab.getExcelId()==1636534954773417986L||resultTab.getExcelId()==1626130998410768385L){
                     ids.append(resultTab.getPKeyId()+",");
-                    sorts2.add(resultTab.getSort());
                     continue;
                 }
                 //检验附表以外的排序有问题的表单修改
@@ -659,21 +660,19 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
                     sorts1.add(resultTab.getSort());
                 }
             }
-            if(!sorts1.isEmpty()&&!sorts2.isEmpty()){
+            if(!sorts1.isEmpty()){
                 String idss = ids.substring(0, ids.length() - 1);
                 //tableType=1 的表单sort的最大值
                 Integer maxSort = Collections.max(sorts1);
-                //质量检验表附表 的sort的最小值
-                Integer minSort = Collections.min(sorts2);
-                if(maxSort>minSort){
                     resultTabs.forEach(r->{
                        if(idss.contains(r.getPKeyId()+"")){
-                           r.setSort(maxSort);
+                        if(!Objects.equals(r.getSort(), maxSort)){
+                            r.setSort(maxSort);
+                            String sql2="update m_wbs_tree_contract set sort="+maxSort+" where p_key_id="+r.getPKeyId();
+                            jdbcTemplate.update(sql2);
+                        }
                        }
                     });
-                    String sql2="update m_wbs_tree_contract set sort="+maxSort+" where p_key_id in ("+idss+")";
-                    jdbcTemplate.update(sql2);
-                }
             }
         }
     }