Просмотр исходного кода

上传文件文件类型获取调整
评估离职人员审核功能调整
数电发票上传文件处理

user5 6 месяцев назад
Родитель
Сommit
907bb9f51a
52 измененных файлов с 757 добавлено и 226 удалено
  1. 17 0
      jeeplus-api/jeeplus-system-api/src/main/java/com/jeeplus/flowable/factory/AssessApiFallbackFactory.java
  2. 14 0
      jeeplus-api/jeeplus-system-api/src/main/java/com/jeeplus/flowable/feign/IAssessApi.java
  3. 2 1
      jeeplus-common/jeeplus-common-log/src/main/java/com/jeeplus/logging/constant/enums/LogTypeEnum.java
  4. 3 0
      jeeplus-common/jeeplus-common-log/src/main/java/com/jeeplus/logging/utils/LogUtils.java
  5. 19 6
      jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/assessSignatureDaily/service/AssessSignatureDailyOfficeWorkService.java
  6. 19 6
      jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/assessSignatureDaily/service/AssessSignatureProjectReportService.java
  7. 32 0
      jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/program/configuration/projectList/controller/ProjectListController.java
  8. 13 0
      jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/program/configuration/projectList/mapper/ProjectListMapper.java
  9. 12 0
      jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/program/configuration/projectList/mapper/xml/ProjectListMapper.xml
  10. 39 0
      jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/program/configuration/projectList/service/ProjectListService.java
  11. 2 2
      jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/reimbursement/reimbursementInfo/controller/ReimbursementInfoController.java
  12. 11 1
      jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/reimbursement/reimbursementInfo/mapper/ReimbursementInfoMapper.java
  13. 27 6
      jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/reimbursement/reimbursementInfo/mapper/xml/ReimbursementInfoMapper.xml
  14. 25 10
      jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/reimbursement/reimbursementInfo/service/ReimbursementInfoService.java
  15. 9 3
      jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/workClientInfo/service/WorkClientService.java
  16. 45 15
      jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/workContract/service/WorkContractService.java
  17. 2 2
      jeeplus-modules/jeeplus-ccpm/src/main/java/com/jeeplus/ccpm/approvalInfo/controller/CcpmReimbursementInfoController.java
  18. 1 1
      jeeplus-modules/jeeplus-ccpm/src/main/java/com/jeeplus/ccpm/approvalInfo/mapper/CcpmReimbursementInfoMapper.java
  19. 6 6
      jeeplus-modules/jeeplus-ccpm/src/main/java/com/jeeplus/ccpm/approvalInfo/mapper/xml/CcpmReimbursementInfoMapper.xml
  20. 2 2
      jeeplus-modules/jeeplus-ccpm/src/main/java/com/jeeplus/ccpm/approvalInfo/service/CcpmReimbursementInfoService.java
  21. 38 13
      jeeplus-modules/jeeplus-ccpm/src/main/java/com/jeeplus/ccpm/approvalType/service/CcpmReimbursementTypeService.java
  22. 2 2
      jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/approvalInfo/controller/ZsReimbursementInfoController.java
  23. 1 1
      jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/approvalInfo/mapper/ZsReimbursementInfoMapper.java
  24. 6 6
      jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/approvalInfo/mapper/xml/ZsReimbursementInfoMapper.xml
  25. 2 2
      jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/approvalInfo/service/ZsReimbursementInfoService.java
  26. 37 12
      jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/approvalType/service/ZsReimbursementTypeService.java
  27. 2 2
      jeeplus-modules/jeeplus-consult/src/main/java/com/jeeplus/consultancy/approvalInfo/controller/ConsultancyReimbursementInfoController.java
  28. 1 1
      jeeplus-modules/jeeplus-consult/src/main/java/com/jeeplus/consultancy/approvalInfo/mapper/ConsultancyReimbursementInfoMapper.java
  29. 6 6
      jeeplus-modules/jeeplus-consult/src/main/java/com/jeeplus/consultancy/approvalInfo/mapper/xml/ConsultancyReimbursementInfoMapper.xml
  30. 2 2
      jeeplus-modules/jeeplus-consult/src/main/java/com/jeeplus/consultancy/approvalInfo/service/ConsultancyReimbursementInfoService.java
  31. 37 12
      jeeplus-modules/jeeplus-consult/src/main/java/com/jeeplus/consultancy/approvalType/service/ConsultancyReimbursementTypeService.java
  32. 19 6
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/contractRegistration/service/ContractFilePaperService.java
  33. 19 6
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/contractRegistration/service/ContractFileService.java
  34. 36 12
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/contractRegistration/service/ContractInfoService.java
  35. 2 2
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/invoice/mapper/xml/CwFinanceInvoiceMapper.xml
  36. 46 16
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/projectReport/service/CwProjectReportService.java
  37. 2 2
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/controller/CwReimbursementInfoController.java
  38. 1 1
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/mapper/CwReimbursementInfoMapper.java
  39. 6 6
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/mapper/xml/CwReimbursementInfoMapper.xml
  40. 2 2
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/service/CwReimbursementInfoService.java
  41. 19 6
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reportCancellApplyArchived/service/ReportCancellApplyArchivedService.java
  42. 19 6
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/signatureDaily/service/SignatureDaulyOfficeWorkService.java
  43. 19 6
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/signatureDaily/service/SignatureProjectReportService.java
  44. 41 10
      jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/depart/handover/service/HandoverService.java
  45. 14 0
      jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/practice/register/service/RegistrationService.java
  46. 2 0
      jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/practice/register/service/dto/RegistrationDto.java
  47. 19 6
      jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/practice/reimburseRegister/service/ReimburseSubmitAccountService.java
  48. 18 6
      jeeplus-modules/jeeplus-public-modules/src/main/java/com/jeeplus/pubmodules/holiday/service/HolidayService.java
  49. 18 6
      jeeplus-modules/jeeplus-public-modules/src/main/java/com/jeeplus/pubmodules/oss/service/OssService.java
  50. 18 6
      jeeplus-modules/jeeplus-public-modules/src/main/java/com/jeeplus/pubmodules/purchase/service/MaterialService.java
  51. 2 0
      jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/mapper/LogMapper.java
  52. 1 1
      jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/service/UserService.java

+ 17 - 0
jeeplus-api/jeeplus-system-api/src/main/java/com/jeeplus/flowable/factory/AssessApiFallbackFactory.java

@@ -5,6 +5,8 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.cloud.openfeign.FallbackFactory;
 import org.springframework.stereotype.Component;
 
+import java.util.List;
+
 /**
  * 财务服务降级处理
  * @author: 王强
@@ -54,6 +56,21 @@ public class AssessApiFallbackFactory implements FallbackFactory<IAssessApi> {
                 return null;
             }
 
+            @Override
+            public List<String> getProjectData(String id) {
+                return null;
+            }
+
+            @Override
+            public List<String> getMembersId(String id) {
+                return null;
+            }
+
+            @Override
+            public void insertMembers(String projectId, String membersId, String userId) {
+
+            }
+
 
         };
     }

+ 14 - 0
jeeplus-api/jeeplus-system-api/src/main/java/com/jeeplus/flowable/feign/IAssessApi.java

@@ -4,8 +4,12 @@ import com.jeeplus.common.constant.AppNameConstants;
 import com.jeeplus.flowable.factory.AssessApiFallbackFactory;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
 
+import java.util.List;
+
 /**
  * @author: 王强
  * @create: 2023-07-26 17:01
@@ -62,4 +66,14 @@ public interface IAssessApi {
     @GetMapping(value = "/reimbursement/info/updateOldData")
     String updateOldData();
 
+    @GetMapping(value = "/program/projectList/getProjectData")
+    List<String> getProjectData(@RequestParam(value = "id") String id);
+
+    @GetMapping(value = "/program/projectList/getMembersId")
+    List<String> getMembersId(@RequestParam(value = "id")String id);
+
+    @RequestMapping(value = "/program/projectList/insertMembers", method = RequestMethod.POST)
+    void insertMembers(@RequestParam(value = "projectId")String projectId,@RequestParam(value = "membersId")String membersId,@RequestParam(value = "userId")String userId);
+
+
 }

+ 2 - 1
jeeplus-common/jeeplus-common-log/src/main/java/com/jeeplus/logging/constant/enums/LogTypeEnum.java

@@ -9,7 +9,8 @@ public enum LogTypeEnum {
     EXCEPTION ( "3", "异常日志" ),
     SAVE ("4", "修改或新增数据日志"),
     EXPORT ("5", "导出日志"),
-    IMPORT ("6", "导入日志");
+    IMPORT ("6", "导入日志"),
+    LOGINEXCEPTION ("7", "用户名或密码错误");
 
     /**
      * 类型值

+ 3 - 0
jeeplus-common/jeeplus-common-log/src/main/java/com/jeeplus/logging/utils/LogUtils.java

@@ -123,6 +123,9 @@ public class LogUtils {
             if ( !log.getType ( ).equals ( LogTypeEnum.LOGIN.getValue ( ) ) ) {
                 log.setType ( LogTypeEnum.EXCEPTION.getValue ( ) );
             }
+            if ("用户名或密码错误".equals(log.getResult())) {
+                log.setType ( LogTypeEnum.LOGINEXCEPTION.getValue ( ) );
+            }
         }
         return log;
     }

+ 19 - 6
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/assessSignatureDaily/service/AssessSignatureDailyOfficeWorkService.java

@@ -1,5 +1,6 @@
 package com.jeeplus.assess.assessSignatureDaily.service;
 
+import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.extra.spring.SpringUtil;
 import com.alibaba.fastjson.JSON;
@@ -267,9 +268,15 @@ public class AssessSignatureDailyOfficeWorkService {
             i.setDelFlag(0);
             i.setUrl(dto.getUrl());
             //文件类型处理
-            List<String> strings = Arrays.asList(dto.getName().split("\\."));
-            if (org.flowable.editor.language.json.converter.util.CollectionUtils.isNotEmpty(strings)) {
-                i.setType(strings.get(1));
+            String fileName = dto.getName();
+            List<String> strings = Arrays.asList(fileName.split("\\."));
+            // 检查文件名是否有后缀
+            if (CollectionUtil.isNotEmpty(strings) && strings.size() > 1) {
+                // 获取最后一个部分作为文件类型
+                i.setType(strings.get(strings.size() - 1));
+            } else {
+                // 如果没有后缀或文件名无效,设置一个默认类型或空
+                i.setType("");
             }
             i.setAttachmentId(id);
             i.setAttachmentName(dto.getName());
@@ -326,9 +333,15 @@ public class AssessSignatureDailyOfficeWorkService {
                 i.setDelFlag(0);
                 i.setUrl(dto.getUrl());
                 //文件类型处理
-                List<String> strings = Arrays.asList(dto.getName().split("\\."));
-                if (org.flowable.editor.language.json.converter.util.CollectionUtils.isNotEmpty(strings)) {
-                    i.setType(strings.get(1));
+                String fileName = dto.getName();
+                List<String> strings = Arrays.asList(fileName.split("\\."));
+                // 检查文件名是否有后缀
+                if (CollectionUtil.isNotEmpty(strings) && strings.size() > 1) {
+                    // 获取最后一个部分作为文件类型
+                    i.setType(strings.get(strings.size() - 1));
+                } else {
+                    // 如果没有后缀或文件名无效,设置一个默认类型或空
+                    i.setType("");
                 }
                 i.setAttachmentId(id);
                 i.setAttachmentName(dto.getName());

+ 19 - 6
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/assessSignatureDaily/service/AssessSignatureProjectReportService.java

@@ -1,5 +1,6 @@
 package com.jeeplus.assess.assessSignatureDaily.service;
 
+import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.extra.spring.SpringUtil;
 import com.alibaba.fastjson.JSON;
@@ -293,9 +294,15 @@ public class AssessSignatureProjectReportService {
             i.setDelFlag(0);
             i.setUrl(dto.getUrl());
             //文件类型处理
-            List<String> strings = Arrays.asList(dto.getName().split("\\."));
-            if (org.flowable.editor.language.json.converter.util.CollectionUtils.isNotEmpty(strings)) {
-                i.setType(strings.get(1));
+            String fileName = dto.getName();
+            List<String> strings = Arrays.asList(fileName.split("\\."));
+            // 检查文件名是否有后缀
+            if (CollectionUtil.isNotEmpty(strings) && strings.size() > 1) {
+                // 获取最后一个部分作为文件类型
+                i.setType(strings.get(strings.size() - 1));
+            } else {
+                // 如果没有后缀或文件名无效,设置一个默认类型或空
+                i.setType("");
             }
             i.setAttachmentId(id);
             i.setAttachmentName(dto.getName());
@@ -352,9 +359,15 @@ public class AssessSignatureProjectReportService {
                 i.setDelFlag(0);
                 i.setUrl(dto.getUrl());
                 //文件类型处理
-                List<String> strings = Arrays.asList(dto.getName().split("\\."));
-                if (org.flowable.editor.language.json.converter.util.CollectionUtils.isNotEmpty(strings)) {
-                    i.setType(strings.get(1));
+                String fileName = dto.getName();
+                List<String> strings = Arrays.asList(fileName.split("\\."));
+                // 检查文件名是否有后缀
+                if (CollectionUtil.isNotEmpty(strings) && strings.size() > 1) {
+                    // 获取最后一个部分作为文件类型
+                    i.setType(strings.get(strings.size() - 1));
+                } else {
+                    // 如果没有后缀或文件名无效,设置一个默认类型或空
+                    i.setType("");
                 }
                 i.setAttachmentId(id);
                 i.setAttachmentName(dto.getName());

+ 32 - 0
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/program/configuration/projectList/controller/ProjectListController.java

@@ -742,4 +742,36 @@ public class ProjectListController {
         return data;
     }
 
+    /**
+     * 查询财务项目信息列表
+     * @return
+     */
+    @ApiLog("查询财务项目信息列表")
+    @GetMapping("getProjectData")
+    public List<String> getProjectData(String id) {
+        List<String> idList = projectListService.getProjectAllList (id);
+        return idList;
+    }
+
+    /**
+     * 查询项目组成员id
+     * @return
+     */
+    @ApiLog("查询项目组成员id")
+    @GetMapping("getMembersId")
+    public List<String> getMembersId(String id) throws Exception {
+        List<String> idList = projectListService.getMembersId(id);
+        return idList;
+    }
+
+    /**
+     * 添加项目组成员
+     * @return
+     */
+    @ApiLog("添加项目组成员")
+    @PostMapping("insertMembers")
+    public void insertMembers(String projectId,String membersId,String userId) throws Exception {
+        projectListService.addMembers(projectId,membersId,userId);
+    }
+
 }

+ 13 - 0
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/program/configuration/projectList/mapper/ProjectListMapper.java

@@ -77,4 +77,17 @@ public interface ProjectListMapper extends BaseMapper<ProgramProjectListInfo> {
      */
     @InterceptorIgnore(tenantLine = "true")
     List<ProgramProjectListInfo> getOverdueFilingProjectList(@Param("threeDayAgo") String threeDayAgo);
+
+    /**
+     * 根据创建人id查询所有项目id
+     * @param id
+     * @return
+     */
+    List<String> getProjectAllList(@Param("id") String id);
+    /**
+     * 查询所有的项目组成员id
+     * @param id
+     * @return
+     */
+    List<String> getMembersId(@Param("id") String id);
 }

+ 12 - 0
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/program/configuration/projectList/mapper/xml/ProjectListMapper.xml

@@ -1017,4 +1017,16 @@
         select count(id) from program_archive
         where over_archive_status =1 and status != 7 and create_by_id = #{currentUser.id}
     </select>
+
+    <select id="getProjectAllList" resultType="java.lang.String">
+        select id from program_project_list_info where create_by_id = #{id} and del_flag=0
+    </select>
+
+    <select id="getMembersId" resultType="java.lang.String">
+        SELECT  id FROM program_members
+        <where>
+            del_flag=0
+            and project_id = #{id}
+        </where>
+    </select>
 </mapper>

+ 39 - 0
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/program/configuration/projectList/service/ProjectListService.java

@@ -2369,4 +2369,43 @@ public class ProjectListService {
         }
         return reportNo;
     }
+
+    /**
+     * 根据用户id查询所有的项目信息
+     * @return
+     */
+    public List<String> getProjectAllList(String id) {
+        return projectListMapper.getProjectAllList(id);
+    }
+
+
+    /**
+     * 查询所有的项目组成员id
+     * @param id
+     * @return
+     */
+    public List<String> getMembersId(String id) {
+        return projectListMapper.getMembersId(id);
+    }
+
+    /**
+     * 添加项目组成员信息
+     * @param projectId
+     * @param membersId
+     */
+    public void addMembers(String projectId, String membersId,String userId) {
+        UserDTO userDTO = SpringUtil.getBean ( IUserApi.class ).getById(userId);
+
+        ProgramMembers members = new ProgramMembers();
+        members.setCreateById(userDTO.getId());
+        members.setCreateTime(new Date());
+        members.setUpdateById(userDTO.getId());
+        members.setUpdateTime(new Date());
+        members.setUserId(membersId);
+        members.setProjectId(projectId);
+        members.setStatus("0");
+        members.setIsImportant("1");
+
+        programMembersService.save(members);
+    }
 }

+ 2 - 2
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/reimbursement/reimbursementInfo/controller/ReimbursementInfoController.java

@@ -317,7 +317,7 @@ public class ReimbursementInfoController {
     @ApiLog(value = "根据发票号查询是否已经或正在报销")
     @GetMapping("getEffectiveDataByNumbers2")
     @ApiOperation(value = "根据发票号查询是否已经或正在报销")
-    public Map<String,Object> getEffectiveDataByNumbers2(String invoiceNumber){
+    public Map<String,Object> getEffectiveDataByNumbers2(String invoiceNumber,String id){
         Map map = new HashMap();
         map.put("success",true);
         map.put("message","数电发票正常");
@@ -327,7 +327,7 @@ public class ReimbursementInfoController {
             List<String> numberList = Arrays.asList(array);
             Set<String> set = new HashSet<>();
             if(numberList.size()>0){
-                List<String> repetitionMessageList = service.getEffectiveDataByNumbers2(numberList);
+                List<String> repetitionMessageList = service.getEffectiveDataByNumbers2(numberList,id);
                 for (String vatTax : repetitionMessageList) {
                     set.add(vatTax);
                 }

+ 11 - 1
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/reimbursement/reimbursementInfo/mapper/ReimbursementInfoMapper.java

@@ -33,6 +33,14 @@ public interface ReimbursementInfoMapper extends BaseMapper<ReimbursementInfo> {
      */
     List<TreeUserDto> findOfficeListByNotTenantId(String tenantId);
 
+    /**
+     * 查询非指定租户的所有部门信息
+     * @param tenantId
+     * @return
+     */
+    @InterceptorIgnore(tenantLine = "true")
+    List<TreeUserDto> findOfficeListByTenantId(String tenantId);
+
     @InterceptorIgnore(tenantLine = "true")
     List<TreeUserDto> findOfficeList2();
 
@@ -93,7 +101,7 @@ public interface ReimbursementInfoMapper extends BaseMapper<ReimbursementInfo> {
      * @param invoiceNumber
      * @return
      */
-    List<String> getEffectiveDataByNumbers2(@Param("invoiceNumber") List<String> invoiceNumber);
+    List<String> getEffectiveDataByNumbers2(@Param("invoiceNumber") List<String> invoiceNumber,@Param("id") String id);
 
     Integer deleteByIdAndNumber(@Param("invoiceNumber") String invoiceNumber, @Param("id") String id);
 
@@ -102,6 +110,8 @@ public interface ReimbursementInfoMapper extends BaseMapper<ReimbursementInfo> {
     @InterceptorIgnore(tenantLine = "true")
     List<TreeUserDto> findZhglgsUserList( @Param("name")String name);
     @InterceptorIgnore(tenantLine = "true")
+    List<TreeUserDto> findCwglgsUserList( @Param("name")String name);
+    @InterceptorIgnore(tenantLine = "true")
     List<TreeUserDto> findZhglgsUserList2( @Param("name")String name);
     @InterceptorIgnore(tenantLine = "true")
     List<TreeUserDto> finduserAllList(@Param("name")String name);

+ 27 - 6
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/reimbursement/reimbursementInfo/mapper/xml/ReimbursementInfoMapper.xml

@@ -125,6 +125,10 @@
 		SELECT id,`name`,parent_id FROM sys_office WHERE del_flag = 0 and tenant_id != #{tenantId}
 	</select>
 
+	<select id="findOfficeListByTenantId" resultType="com.jeeplus.assess.reimbursement.reimbursementInfo.service.dto.TreeUserDto">
+		SELECT id,`name`,parent_id FROM sys_office WHERE del_flag = 0 and tenant_id = #{tenantId}
+	</select>
+
 	<select id="findOfficeList2" resultType="com.jeeplus.assess.reimbursement.reimbursementInfo.service.dto.TreeUserDto">
 		SELECT id,`name`,parent_id FROM sys_office WHERE del_flag = 0
 	</select>
@@ -171,6 +175,23 @@
 		</if>
 	</select>
 
+	<select id="findCwglgsUserList" resultType="com.jeeplus.assess.reimbursement.reimbursementInfo.service.dto.TreeUserDto">
+		SELECT
+		a.id,
+		a.`name`,
+		a.office_id AS parent_id,
+		b.`name` AS office_name,
+		true AS is_user
+		FROM
+		sys_user a
+		LEFT JOIN sys_office b ON a.office_id = b.id
+		WHERE
+		a.del_flag = 0 and a.is_admin is null and a.tenant_id = '10003'
+		<if test="name != null and name != ''">
+			and a.`name` LIKE CONCAT ('%', #{name}, '%')
+		</if>
+	</select>
+
 	<select id="finduserAllList" resultType="com.jeeplus.assess.reimbursement.reimbursementInfo.service.dto.TreeUserDto">
 		SELECT
 		a.id,
@@ -458,7 +479,7 @@
 	</select>
 
 	<select id="getEffectiveDataByNumbers2" resultType="string">
-		SELECT GROUP_CONCAT(CAST(count AS CHAR) SEPARATOR ',') AS counts
+		SELECT IFNULL(GROUP_CONCAT(CAST(count AS CHAR) SEPARATOR ','), '') AS counts
 		FROM (
 		select a.number as count from ccpm_reimbursement_amount_info a
 		left join ccpm_reimbursement_info ri on ri.id = a.info_id
@@ -469,7 +490,7 @@
 			</foreach>
 			and a.del_flag = 0
 			and ri.del_flag = 0
-			and (ri.type = '2' or ri.type = '5')
+			and (ri.type = '2' or ri.type = '5') and a.info_id != #{id}
 		</where>
 		union all
 		select a.number as count from reimbursement_amount_info a
@@ -481,7 +502,7 @@
 			</foreach>
 			and a.del_flag = 0
 			and ri.del_flag = 0
-			and (ri.type = '2' or ri.type = '5')
+			and (ri.type = '2' or ri.type = '5') and a.info_id != #{id}
 		</where>
 		union all
 		select a.number as count from cw_reimbursement_amount_info a
@@ -493,7 +514,7 @@
 			</foreach>
 			and a.del_flag = 0
 			and ri.del_flag = 0
-			and (ri.type = '2' or ri.type = '5')
+			and (ri.type = '2' or ri.type = '5') and a.info_id != #{id}
 		</where>
 		union all
 		select a.number as count from zs_reimbursement_amount_info a
@@ -505,7 +526,7 @@
 			</foreach>
 			and a.del_flag = 0
 			and ri.del_flag = 0
-			and (ri.type = '2' or ri.type = '5')
+			and (ri.type = '2' or ri.type = '5') and a.info_id != #{id}
 		</where>
 		union all
 		select a.number as count from consultancy_reimbursement_amount_info a
@@ -517,7 +538,7 @@
 			</foreach>
 			and a.del_flag = 0
 			and ri.del_flag = 0
-			and (ri.type = '2' or ri.type = '5')
+			and (ri.type = '2' or ri.type = '5') and a.info_id != #{id}
 		</where>
 		)AS result;
 

+ 25 - 10
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/reimbursement/reimbursementInfo/service/ReimbursementInfoService.java

@@ -900,14 +900,18 @@ public class ReimbursementInfoService {
         BeanUtils.copyProperties(invoiceReimbursement, ccpmReimAmountAndFileDto);
 
         DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
-        // 将字符串转换为 LocalDate
-        LocalDate invoiceDate = LocalDate.parse(invoiceReimbursement.getInvoiceDate(), formatter);
-        if (ObjectUtil.isNotEmpty(invoiceDate)){
-            String year = String.valueOf(invoiceDate.getYear());
-            String month = String.valueOf(invoiceDate.getMonthValue());
-            String day = String.valueOf(invoiceDate.getDayOfMonth());
-            // 设置到 ccpmReimAmountAndFileDto 中
-            ccpmReimAmountAndFileDto.setInvoiceDate(year + "-" + month + "-" + day);
+        if(StringUtils.isNotBlank(invoiceReimbursement.getInvoiceDate())){
+            // 将字符串转换为 LocalDate
+            LocalDate invoiceDate = LocalDate.parse(invoiceReimbursement.getInvoiceDate(), formatter);
+            if (ObjectUtil.isNotEmpty(invoiceDate)){
+                String year = String.valueOf(invoiceDate.getYear());
+                String month = String.valueOf(invoiceDate.getMonthValue());
+                String day = String.valueOf(invoiceDate.getDayOfMonth());
+                // 设置到 ccpmReimAmountAndFileDto 中
+                ccpmReimAmountAndFileDto.setInvoiceDate(year + "-" + month + "-" + day);
+            }else {
+                ccpmReimAmountAndFileDto.setInvoiceDate("");
+            }
         }else {
             ccpmReimAmountAndFileDto.setInvoiceDate("");
         }
@@ -949,6 +953,10 @@ public class ReimbursementInfoService {
         }
         List<TreeUserDto> filterList = new ArrayList<>();
         filterList.addAll(officeList);
+        if(null != userDTO && null != userDTO.getOfficeDTO() && StringUtils.isNotBlank(userDTO.getOfficeDTO().getId()) && ("1826176524081065985".equals(userDTO.getOfficeDTO().getId()) || "1826176609011527681".equals(userDTO.getOfficeDTO().getId()))) {
+            List<TreeUserDto> officeList1 =  infoMapper.findOfficeListByTenantId("10003");
+            filterList.addAll(officeList1);
+        }
         //查询综合管理公司
         UserDTO dtoByName = SpringUtil.getBean(IUserApi.class).getByLoginNameNoTen("潘中");
         List<TreeUserDto> officeList1 = infoMapper.findOfficeListByCompanyId2(dtoByName.getCompanyDTO().getId());
@@ -1061,6 +1069,13 @@ public class ReimbursementInfoService {
         ArrayList<TreeUserDto> treeUserDtos = new ArrayList<>();
         treeUserDtos.addAll(userList);
         treeUserDtos.addAll(userList1);
+
+        if(null != userDTO && null != userDTO.getOfficeDTO() && StringUtils.isNotBlank(userDTO.getOfficeDTO().getId()) && ("1826176524081065985".equals(userDTO.getOfficeDTO().getId()) || "1826176609011527681".equals(userDTO.getOfficeDTO().getId()))) {
+            //查询会计公司用户信息
+            List<TreeUserDto> userList2 = infoMapper.findCwglgsUserList(name);
+            treeUserDtos.addAll(userList2);
+        }
+
         treeUserDtos.addAll(treeUsers);
         list = disposeUserTree(treeUserDtos, filterList);
         for (TreeUserDto officeDto : officeList) {
@@ -1556,8 +1571,8 @@ public class ReimbursementInfoService {
      * @param invoiceNumber
      * @return
      */
-    public List<String> getEffectiveDataByNumbers2(List<String> invoiceNumber){
-        return infoMapper.getEffectiveDataByNumbers2(invoiceNumber);
+    public List<String> getEffectiveDataByNumbers2(List<String> invoiceNumber,String id){
+        return infoMapper.getEffectiveDataByNumbers2(invoiceNumber, id);
     }
 
     /**

+ 9 - 3
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/workClientInfo/service/WorkClientService.java

@@ -148,9 +148,15 @@ public class WorkClientService {
                 i.setId(UUID.randomUUID().toString().replace("-", ""));
 
                 //文件类型处理
-                List<String> strings = Arrays.asList(i.getAttachmentName().split("\\."));
-                if (CollectionUtil.isNotEmpty(strings)) {
-                    i.setType(strings.get(1));
+                String fileName = i.getAttachmentName();
+                List<String> strings = Arrays.asList(fileName.split("\\."));
+                // 检查文件名是否有后缀
+                if (CollectionUtil.isNotEmpty(strings) && strings.size() > 1) {
+                    // 获取最后一个部分作为文件类型
+                    i.setType(strings.get(strings.size() - 1));
+                } else {
+                    // 如果没有后缀或文件名无效,设置一个默认类型或空
+                    i.setType("");
                 }
                 i.setDelFlag(0);
 

+ 45 - 15
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/workContract/service/WorkContractService.java

@@ -215,9 +215,15 @@ public class WorkContractService {
             i.setDelFlag(0);
             i.setUrl(dto.getUrl());
             //文件类型处理
-            List<String> strings = Arrays.asList(dto.getName().split("\\."));
-            if (CollectionUtil.isNotEmpty(strings)) {
-                i.setType(strings.get(1));
+            String fileName = dto.getName();
+            List<String> strings = Arrays.asList(fileName.split("\\."));
+            // 检查文件名是否有后缀
+            if (CollectionUtil.isNotEmpty(strings) && strings.size() > 1) {
+                // 获取最后一个部分作为文件类型
+                i.setType(strings.get(strings.size() - 1));
+            } else {
+                // 如果没有后缀或文件名无效,设置一个默认类型或空
+                i.setType("");
             }
             i.setAttachmentId(id);
             i.setAttachmentName(dto.getName());
@@ -254,9 +260,15 @@ public class WorkContractService {
             i.setDelFlag(0);
             i.setUrl(dto.getUrl());
             //文件类型处理
-            List<String> strings = Arrays.asList(dto.getName().split("\\."));
-            if (CollectionUtil.isNotEmpty(strings)) {
-                i.setType(strings.get(1));
+            String fileName = dto.getName();
+            List<String> strings = Arrays.asList(fileName.split("\\."));
+            // 检查文件名是否有后缀
+            if (CollectionUtil.isNotEmpty(strings) && strings.size() > 1) {
+                // 获取最后一个部分作为文件类型
+                i.setType(strings.get(strings.size() - 1));
+            } else {
+                // 如果没有后缀或文件名无效,设置一个默认类型或空
+                i.setType("");
             }
             i.setAttachmentId(id);
             i.setAttachmentName(dto.getName());
@@ -293,9 +305,15 @@ public class WorkContractService {
             i.setDelFlag(0);
             i.setUrl(dto.getUrl());
             //文件类型处理
-            List<String> strings = Arrays.asList(dto.getName().split("\\."));
-            if (CollectionUtil.isNotEmpty(strings)) {
-                i.setType(strings.get(1));
+            String fileName = dto.getName();
+            List<String> strings = Arrays.asList(fileName.split("\\."));
+            // 检查文件名是否有后缀
+            if (CollectionUtil.isNotEmpty(strings) && strings.size() > 1) {
+                // 获取最后一个部分作为文件类型
+                i.setType(strings.get(strings.size() - 1));
+            } else {
+                // 如果没有后缀或文件名无效,设置一个默认类型或空
+                i.setType("");
             }
             i.setAttachmentId(id);
             i.setAttachmentName(dto.getName());
@@ -350,9 +368,15 @@ public class WorkContractService {
                 i.setDelFlag(0);
                 i.setUrl(dto.getUrl());
                 //文件类型处理
-                List<String> strings = Arrays.asList(dto.getName().split("\\."));
-                if (CollectionUtil.isNotEmpty(strings)) {
-                    i.setType(strings.get(1));
+                String fileName = dto.getName();
+                List<String> strings = Arrays.asList(fileName.split("\\."));
+                // 检查文件名是否有后缀
+                if (CollectionUtil.isNotEmpty(strings) && strings.size() > 1) {
+                    // 获取最后一个部分作为文件类型
+                    i.setType(strings.get(strings.size() - 1));
+                } else {
+                    // 如果没有后缀或文件名无效,设置一个默认类型或空
+                    i.setType("");
                 }
                 i.setAttachmentId(id);
                 i.setAttachmentName(dto.getName());
@@ -408,9 +432,15 @@ public class WorkContractService {
                 i.setDelFlag(0);
                 i.setUrl(dto.getUrl());
                 //文件类型处理
-                List<String> strings = Arrays.asList(dto.getName().split("\\."));
-                if (CollectionUtil.isNotEmpty(strings)) {
-                    i.setType(strings.get(1));
+                String fileName = dto.getName();
+                List<String> strings = Arrays.asList(fileName.split("\\."));
+                // 检查文件名是否有后缀
+                if (CollectionUtil.isNotEmpty(strings) && strings.size() > 1) {
+                    // 获取最后一个部分作为文件类型
+                    i.setType(strings.get(strings.size() - 1));
+                } else {
+                    // 如果没有后缀或文件名无效,设置一个默认类型或空
+                    i.setType("");
                 }
                 i.setAttachmentId(id);
                 i.setAttachmentName(dto.getName());

+ 2 - 2
jeeplus-modules/jeeplus-ccpm/src/main/java/com/jeeplus/ccpm/approvalInfo/controller/CcpmReimbursementInfoController.java

@@ -336,7 +336,7 @@ public class CcpmReimbursementInfoController {
     @ApiLog(value = "根据发票号查询是否已经或正在报销")
     @GetMapping("getEffectiveDataByNumbers2")
     @ApiOperation(value = "根据发票号查询是否已经或正在报销")
-    public Map<String,Object> getEffectiveDataByNumbers2(String invoiceNumber){
+    public Map<String,Object> getEffectiveDataByNumbers2(String invoiceNumber,String id){
         Map map = new HashMap();
         map.put("success",true);
         map.put("message","数电发票正常");
@@ -346,7 +346,7 @@ public class CcpmReimbursementInfoController {
             List<String> numberList = Arrays.asList(array);
             Set<String> set = new HashSet<>();
             if(numberList.size()>0){
-                List<String> repetitionMessageList = service.getEffectiveDataByNumbers2(numberList);
+                List<String> repetitionMessageList = service.getEffectiveDataByNumbers2(numberList,id);
                 for (String vatTax : repetitionMessageList) {
                     set.add(vatTax);
                 }

+ 1 - 1
jeeplus-modules/jeeplus-ccpm/src/main/java/com/jeeplus/ccpm/approvalInfo/mapper/CcpmReimbursementInfoMapper.java

@@ -72,7 +72,7 @@ public interface CcpmReimbursementInfoMapper extends BaseMapper<CcpmReimbursemen
      * @param invoiceNumber
      * @return
      */
-    List<String> getEffectiveDataByNumbers2(@Param("invoiceNumber") List<String> invoiceNumber);
+    List<String> getEffectiveDataByNumbers2(@Param("invoiceNumber") List<String> invoiceNumber, @Param("id")String id);
     Integer deleteByIdAndNumber(@Param("invoiceNumber") String invoiceNumber, @Param("id") String id);
 
     @InterceptorIgnore(tenantLine = "true")

+ 6 - 6
jeeplus-modules/jeeplus-ccpm/src/main/java/com/jeeplus/ccpm/approvalInfo/mapper/xml/CcpmReimbursementInfoMapper.xml

@@ -650,7 +650,7 @@
 	</select>
 
 	<select id="getEffectiveDataByNumbers2" resultType="string">
-		SELECT GROUP_CONCAT(CAST(count AS CHAR) SEPARATOR ',') AS counts
+		SELECT IFNULL(GROUP_CONCAT(CAST(count AS CHAR) SEPARATOR ','), '') AS counts
 		FROM (
 		select a.number as count from ccpm_reimbursement_amount_info a
 		left join ccpm_reimbursement_info ri on ri.id = a.info_id
@@ -661,7 +661,7 @@
 			</foreach>
 			and a.del_flag = 0
 			and ri.del_flag = 0
-			and (ri.type = '2' or ri.type = '5')
+			and (ri.type = '2' or ri.type = '5') and a.info_id != #{id}
 		</where>
 		union all
 		select a.number as count from reimbursement_amount_info a
@@ -673,7 +673,7 @@
 			</foreach>
 			and a.del_flag = 0
 			and ri.del_flag = 0
-			and (ri.type = '2' or ri.type = '5')
+			and (ri.type = '2' or ri.type = '5') and a.info_id != #{id}
 		</where>
 		union all
 		select a.number as count from cw_reimbursement_amount_info a
@@ -685,7 +685,7 @@
 			</foreach>
 			and a.del_flag = 0
 			and ri.del_flag = 0
-			and (ri.type = '2' or ri.type = '5')
+			and (ri.type = '2' or ri.type = '5') and a.info_id != #{id}
 		</where>
 		union all
 		select a.number as count from zs_reimbursement_amount_info a
@@ -697,7 +697,7 @@
 			</foreach>
 			and a.del_flag = 0
 			and ri.del_flag = 0
-			and (ri.type = '2' or ri.type = '5')
+			and (ri.type = '2' or ri.type = '5') and a.info_id != #{id}
 		</where>
 		union all
 		select a.number as count from consultancy_reimbursement_amount_info a
@@ -709,7 +709,7 @@
 			</foreach>
 			and a.del_flag = 0
 			and ri.del_flag = 0
-			and (ri.type = '2' or ri.type = '5')
+			and (ri.type = '2' or ri.type = '5') and a.info_id != #{id}
 		</where>
 		)AS result;
 

+ 2 - 2
jeeplus-modules/jeeplus-ccpm/src/main/java/com/jeeplus/ccpm/approvalInfo/service/CcpmReimbursementInfoService.java

@@ -1086,8 +1086,8 @@ public class CcpmReimbursementInfoService {
      * @param invoiceNumber
      * @return
      */
-    public List<String> getEffectiveDataByNumbers2(List<String> invoiceNumber){
-        return infoMapper.getEffectiveDataByNumbers2(invoiceNumber);
+    public List<String> getEffectiveDataByNumbers2(List<String> invoiceNumber,String id){
+        return infoMapper.getEffectiveDataByNumbers2(invoiceNumber, id);
     }
 
     /**

+ 38 - 13
jeeplus-modules/jeeplus-ccpm/src/main/java/com/jeeplus/ccpm/approvalType/service/CcpmReimbursementTypeService.java

@@ -1,4 +1,5 @@
 package com.jeeplus.ccpm.approvalType.service;
+import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.extra.spring.SpringUtil;
 import com.alibaba.fastjson.JSON;
@@ -215,10 +216,16 @@ public class CcpmReimbursementTypeService {
                 i.setUpdateTime(new Date());
                 i.setDelFlag(0);
                 i.setUrl(dto.getUrl());
-                //文件类型处理
-                List<String> strings = Arrays.asList(dto.getName().split("\\."));
-                if (CollectionUtils.isNotEmpty(strings)) {
-                    i.setType(strings.get(1));
+                // 文件类型处理
+                String fileName = dto.getName();
+                List<String> strings = Arrays.asList(fileName.split("\\."));
+                // 检查文件名是否有后缀
+                if (CollectionUtil.isNotEmpty(strings) && strings.size() > 1) {
+                    // 获取最后一个部分作为文件类型
+                    i.setType(strings.get(strings.size() - 1));
+                } else {
+                    // 如果没有后缀或文件名无效,设置一个默认类型或空
+                    i.setType("");
                 }
                 i.setAttachmentId(id);
                 i.setAttachmentName(dto.getName());
@@ -276,9 +283,15 @@ public class CcpmReimbursementTypeService {
                 i.setDelFlag(0);
                 i.setUrl(dto.getUrl());
                 //文件类型处理
-                List<String> strings = Arrays.asList(dto.getName().split("\\."));
-                if (CollectionUtils.isNotEmpty(strings)) {
-                    i.setType(strings.get(1));
+                String fileName = dto.getName();
+                List<String> strings = Arrays.asList(fileName.split("\\."));
+                // 检查文件名是否有后缀
+                if (CollectionUtil.isNotEmpty(strings) && strings.size() > 1) {
+                    // 获取最后一个部分作为文件类型
+                    i.setType(strings.get(strings.size() - 1));
+                } else {
+                    // 如果没有后缀或文件名无效,设置一个默认类型或空
+                    i.setType("");
                 }
                 i.setAttachmentId(id);
                 i.setAttachmentName(dto.getName());
@@ -317,9 +330,15 @@ public class CcpmReimbursementTypeService {
             i.setDelFlag(0);
             i.setUrl(dto.getUrl());
             //文件类型处理
-            List<String> strings = Arrays.asList(dto.getName().split("\\."));
-            if (CollectionUtils.isNotEmpty(strings)) {
-                i.setType(strings.get(1));
+            String fileName = dto.getName();
+            List<String> strings = Arrays.asList(fileName.split("\\."));
+            // 检查文件名是否有后缀
+            if (CollectionUtil.isNotEmpty(strings) && strings.size() > 1) {
+                // 获取最后一个部分作为文件类型
+                i.setType(strings.get(strings.size() - 1));
+            } else {
+                // 如果没有后缀或文件名无效,设置一个默认类型或空
+                i.setType("");
             }
             i.setAttachmentId(id);
             i.setAttachmentName(dto.getName());
@@ -357,9 +376,15 @@ public class CcpmReimbursementTypeService {
             i.setDelFlag(0);
             i.setUrl(dto.getUrl());
             //文件类型处理
-            List<String> strings = Arrays.asList(dto.getName().split("\\."));
-            if (CollectionUtils.isNotEmpty(strings)) {
-                i.setType(strings.get(1));
+            String fileName = dto.getName();
+            List<String> strings = Arrays.asList(fileName.split("\\."));
+            // 检查文件名是否有后缀
+            if (CollectionUtil.isNotEmpty(strings) && strings.size() > 1) {
+                // 获取最后一个部分作为文件类型
+                i.setType(strings.get(strings.size() - 1));
+            } else {
+                // 如果没有后缀或文件名无效,设置一个默认类型或空
+                i.setType("");
             }
             i.setAttachmentId(id);
             i.setAttachmentName(dto.getName());

+ 2 - 2
jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/approvalInfo/controller/ZsReimbursementInfoController.java

@@ -334,7 +334,7 @@ public class ZsReimbursementInfoController {
     @ApiLog(value = "根据发票号查询是否已经或正在报销")
     @GetMapping("getEffectiveDataByNumbers2")
     @ApiOperation(value = "根据发票号查询是否已经或正在报销")
-    public Map<String,Object> getEffectiveDataByNumbers2(String invoiceNumber){
+    public Map<String,Object> getEffectiveDataByNumbers2(String invoiceNumber,String id){
         Map map = new HashMap();
         map.put("success",true);
         map.put("message","数电发票正常");
@@ -344,7 +344,7 @@ public class ZsReimbursementInfoController {
             List<String> numberList = Arrays.asList(array);
             Set<String> set = new HashSet<>();
             if(numberList.size()>0){
-                List<String> repetitionMessageList = service.getEffectiveDataByNumbers2(numberList);
+                List<String> repetitionMessageList = service.getEffectiveDataByNumbers2(numberList, id);
                 for (String vatTax : repetitionMessageList) {
                     set.add(vatTax);
                 }

+ 1 - 1
jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/approvalInfo/mapper/ZsReimbursementInfoMapper.java

@@ -75,7 +75,7 @@ public interface ZsReimbursementInfoMapper extends BaseMapper<ZsReimbursementInf
      * @param invoiceNumber
      * @return
      */
-    List<String> getEffectiveDataByNumbers2(@Param("invoiceNumber") List<String> invoiceNumber);
+    List<String> getEffectiveDataByNumbers2(@Param("invoiceNumber") List<String> invoiceNumber, @Param("id")String id);
 
     Integer deleteByIdAndNumber(@Param("invoiceNumber") String invoiceNumber, @Param("id") String id);
 

+ 6 - 6
jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/approvalInfo/mapper/xml/ZsReimbursementInfoMapper.xml

@@ -620,7 +620,7 @@
 	</select>
 
 	<select id="getEffectiveDataByNumbers2" resultType="string">
-		SELECT GROUP_CONCAT(CAST(count AS CHAR) SEPARATOR ',') AS counts
+		SELECT IFNULL(GROUP_CONCAT(CAST(count AS CHAR) SEPARATOR ','), '') AS counts
 		FROM (
 		select a.number as count from ccpm_reimbursement_amount_info a
 		left join ccpm_reimbursement_info ri on ri.id = a.info_id
@@ -631,7 +631,7 @@
 			</foreach>
 			and a.del_flag = 0
 			and ri.del_flag = 0
-			and (ri.type = '2' or ri.type = '5')
+			and (ri.type = '2' or ri.type = '5') and a.info_id != #{id}
 		</where>
 		union all
 		select a.number as count from reimbursement_amount_info a
@@ -643,7 +643,7 @@
 			</foreach>
 			and a.del_flag = 0
 			and ri.del_flag = 0
-			and (ri.type = '2' or ri.type = '5')
+			and (ri.type = '2' or ri.type = '5') and a.info_id != #{id}
 		</where>
 		union all
 		select a.number as count from cw_reimbursement_amount_info a
@@ -655,7 +655,7 @@
 			</foreach>
 			and a.del_flag = 0
 			and ri.del_flag = 0
-			and (ri.type = '2' or ri.type = '5')
+			and (ri.type = '2' or ri.type = '5') and a.info_id != #{id}
 		</where>
 		union all
 		select a.number as count from zs_reimbursement_amount_info a
@@ -667,7 +667,7 @@
 			</foreach>
 			and a.del_flag = 0
 			and ri.del_flag = 0
-			and (ri.type = '2' or ri.type = '5')
+			and (ri.type = '2' or ri.type = '5') and a.info_id != #{id}
 		</where>
 		union all
 		select a.number as count from consultancy_reimbursement_amount_info a
@@ -679,7 +679,7 @@
 			</foreach>
 			and a.del_flag = 0
 			and ri.del_flag = 0
-			and (ri.type = '2' or ri.type = '5')
+			and (ri.type = '2' or ri.type = '5') and a.info_id != #{id}
 		</where>
 		)AS result;
 

+ 2 - 2
jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/approvalInfo/service/ZsReimbursementInfoService.java

@@ -1116,8 +1116,8 @@ public class ZsReimbursementInfoService {
      * @param invoiceNumber
      * @return
      */
-    public List<String> getEffectiveDataByNumbers2(List<String> invoiceNumber){
-        return infoMapper.getEffectiveDataByNumbers2(invoiceNumber);
+    public List<String> getEffectiveDataByNumbers2(List<String> invoiceNumber , String id){
+        return infoMapper.getEffectiveDataByNumbers2(invoiceNumber, id);
     }
 
     /**

+ 37 - 12
jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/approvalType/service/ZsReimbursementTypeService.java

@@ -1,4 +1,5 @@
 package com.jeeplus.centrecareful.approvalType.service;
+import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.extra.spring.SpringUtil;
 import com.alibaba.fastjson.JSON;
@@ -215,9 +216,15 @@ public class ZsReimbursementTypeService {
                 i.setDelFlag(0);
                 i.setUrl(dto.getUrl());
                 //文件类型处理
-                List<String> strings = Arrays.asList(dto.getName().split("\\."));
-                if (CollectionUtils.isNotEmpty(strings)) {
-                    i.setType(strings.get(1));
+                String fileName = dto.getName();
+                List<String> strings = Arrays.asList(fileName.split("\\."));
+                // 检查文件名是否有后缀
+                if (CollectionUtil.isNotEmpty(strings) && strings.size() > 1) {
+                    // 获取最后一个部分作为文件类型
+                    i.setType(strings.get(strings.size() - 1));
+                } else {
+                    // 如果没有后缀或文件名无效,设置一个默认类型或空
+                    i.setType("");
                 }
                 i.setAttachmentId(id);
                 i.setAttachmentName(dto.getName());
@@ -275,9 +282,15 @@ public class ZsReimbursementTypeService {
                 i.setDelFlag(0);
                 i.setUrl(dto.getUrl());
                 //文件类型处理
-                List<String> strings = Arrays.asList(dto.getName().split("\\."));
-                if (CollectionUtils.isNotEmpty(strings)) {
-                    i.setType(strings.get(1));
+                String fileName = dto.getName();
+                List<String> strings = Arrays.asList(fileName.split("\\."));
+                // 检查文件名是否有后缀
+                if (CollectionUtil.isNotEmpty(strings) && strings.size() > 1) {
+                    // 获取最后一个部分作为文件类型
+                    i.setType(strings.get(strings.size() - 1));
+                } else {
+                    // 如果没有后缀或文件名无效,设置一个默认类型或空
+                    i.setType("");
                 }
                 i.setAttachmentId(id);
                 i.setAttachmentName(dto.getName());
@@ -316,9 +329,15 @@ public class ZsReimbursementTypeService {
             i.setDelFlag(0);
             i.setUrl(dto.getUrl());
             //文件类型处理
-            List<String> strings = Arrays.asList(dto.getName().split("\\."));
-            if (CollectionUtils.isNotEmpty(strings)) {
-                i.setType(strings.get(1));
+            String fileName = dto.getName();
+            List<String> strings = Arrays.asList(fileName.split("\\."));
+            // 检查文件名是否有后缀
+            if (CollectionUtil.isNotEmpty(strings) && strings.size() > 1) {
+                // 获取最后一个部分作为文件类型
+                i.setType(strings.get(strings.size() - 1));
+            } else {
+                // 如果没有后缀或文件名无效,设置一个默认类型或空
+                i.setType("");
             }
             i.setAttachmentId(id);
             i.setAttachmentName(dto.getName());
@@ -356,9 +375,15 @@ public class ZsReimbursementTypeService {
             i.setDelFlag(0);
             i.setUrl(dto.getUrl());
             //文件类型处理
-            List<String> strings = Arrays.asList(dto.getName().split("\\."));
-            if (CollectionUtils.isNotEmpty(strings)) {
-                i.setType(strings.get(1));
+            String fileName = dto.getName();
+            List<String> strings = Arrays.asList(fileName.split("\\."));
+            // 检查文件名是否有后缀
+            if (CollectionUtil.isNotEmpty(strings) && strings.size() > 1) {
+                // 获取最后一个部分作为文件类型
+                i.setType(strings.get(strings.size() - 1));
+            } else {
+                // 如果没有后缀或文件名无效,设置一个默认类型或空
+                i.setType("");
             }
             i.setAttachmentId(id);
             i.setAttachmentName(dto.getName());

+ 2 - 2
jeeplus-modules/jeeplus-consult/src/main/java/com/jeeplus/consultancy/approvalInfo/controller/ConsultancyReimbursementInfoController.java

@@ -334,7 +334,7 @@ public class ConsultancyReimbursementInfoController {
     @ApiLog(value = "根据发票号查询是否已经或正在报销")
     @GetMapping("getEffectiveDataByNumbers2")
     @ApiOperation(value = "根据发票号查询是否已经或正在报销")
-    public Map<String,Object> getEffectiveDataByNumbers2(String invoiceNumber){
+    public Map<String,Object> getEffectiveDataByNumbers2(String invoiceNumber,String id){
         Map map = new HashMap();
         map.put("success",true);
         map.put("message","数电发票正常");
@@ -344,7 +344,7 @@ public class ConsultancyReimbursementInfoController {
             List<String> numberList = Arrays.asList(array);
             Set<String> set = new HashSet<>();
             if(numberList.size()>0){
-                List<String> repetitionMessageList = service.getEffectiveDataByNumbers2(numberList);
+                List<String> repetitionMessageList = service.getEffectiveDataByNumbers2(numberList, id);
                 for (String vatTax : repetitionMessageList) {
                     set.add(vatTax);
                 }

+ 1 - 1
jeeplus-modules/jeeplus-consult/src/main/java/com/jeeplus/consultancy/approvalInfo/mapper/ConsultancyReimbursementInfoMapper.java

@@ -73,7 +73,7 @@ public interface ConsultancyReimbursementInfoMapper extends BaseMapper<Consultan
      * @param invoiceNumber
      * @return
      */
-    List<String> getEffectiveDataByNumbers2(@Param("invoiceNumber") List<String> invoiceNumber);
+    List<String> getEffectiveDataByNumbers2(@Param("invoiceNumber") List<String> invoiceNumber, @Param("id")String id);
 
     Integer deleteByIdAndNumber(@Param("invoiceNumber") String invoiceNumber, @Param("id") String id);
 

+ 6 - 6
jeeplus-modules/jeeplus-consult/src/main/java/com/jeeplus/consultancy/approvalInfo/mapper/xml/ConsultancyReimbursementInfoMapper.xml

@@ -632,7 +632,7 @@
 	</select>
 
 	<select id="getEffectiveDataByNumbers2" resultType="string">
-		SELECT GROUP_CONCAT(CAST(count AS CHAR) SEPARATOR ',') AS counts
+		SELECT IFNULL(GROUP_CONCAT(CAST(count AS CHAR) SEPARATOR ','), '') AS counts
 		FROM (
 		select a.number as count from ccpm_reimbursement_amount_info a
 		left join ccpm_reimbursement_info ri on ri.id = a.info_id
@@ -643,7 +643,7 @@
 			</foreach>
 			and a.del_flag = 0
 			and ri.del_flag = 0
-			and (ri.type = '2' or ri.type = '5')
+			and (ri.type = '2' or ri.type = '5') and a.info_id != #{id}
 		</where>
 		union all
 		select a.number as count from reimbursement_amount_info a
@@ -655,7 +655,7 @@
 			</foreach>
 			and a.del_flag = 0
 			and ri.del_flag = 0
-			and (ri.type = '2' or ri.type = '5')
+			and (ri.type = '2' or ri.type = '5') and a.info_id != #{id}
 		</where>
 		union all
 		select a.number as count from cw_reimbursement_amount_info a
@@ -667,7 +667,7 @@
 			</foreach>
 			and a.del_flag = 0
 			and ri.del_flag = 0
-			and (ri.type = '2' or ri.type = '5')
+			and (ri.type = '2' or ri.type = '5') and a.info_id != #{id}
 		</where>
 		union all
 		select a.number as count from zs_reimbursement_amount_info a
@@ -679,7 +679,7 @@
 			</foreach>
 			and a.del_flag = 0
 			and ri.del_flag = 0
-			and (ri.type = '2' or ri.type = '5')
+			and (ri.type = '2' or ri.type = '5') and a.info_id != #{id}
 		</where>
 		union all
 		select a.number as count from consultancy_reimbursement_amount_info a
@@ -691,7 +691,7 @@
 			</foreach>
 			and a.del_flag = 0
 			and ri.del_flag = 0
-			and (ri.type = '2' or ri.type = '5')
+			and (ri.type = '2' or ri.type = '5') and a.info_id != #{id}
 		</where>
 		)AS result;
 

+ 2 - 2
jeeplus-modules/jeeplus-consult/src/main/java/com/jeeplus/consultancy/approvalInfo/service/ConsultancyReimbursementInfoService.java

@@ -1069,8 +1069,8 @@ public class ConsultancyReimbursementInfoService {
      * @param invoiceNumber
      * @return
      */
-    public List<String> getEffectiveDataByNumbers2(List<String> invoiceNumber){
-        return infoMapper.getEffectiveDataByNumbers2(invoiceNumber);
+    public List<String> getEffectiveDataByNumbers2(List<String> invoiceNumber, String id){
+        return infoMapper.getEffectiveDataByNumbers2(invoiceNumber, id);
     }
 
     /**

+ 37 - 12
jeeplus-modules/jeeplus-consult/src/main/java/com/jeeplus/consultancy/approvalType/service/ConsultancyReimbursementTypeService.java

@@ -1,5 +1,6 @@
 package com.jeeplus.consultancy.approvalType.service;
 
+import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.extra.spring.SpringUtil;
 import com.alibaba.fastjson.JSON;
@@ -216,9 +217,15 @@ public class ConsultancyReimbursementTypeService {
                 i.setDelFlag(0);
                 i.setUrl(dto.getUrl());
                 //文件类型处理
-                List<String> strings = Arrays.asList(dto.getName().split("\\."));
-                if (CollectionUtils.isNotEmpty(strings)) {
-                    i.setType(strings.get(1));
+                String fileName = dto.getName();
+                List<String> strings = Arrays.asList(fileName.split("\\."));
+                // 检查文件名是否有后缀
+                if (CollectionUtil.isNotEmpty(strings) && strings.size() > 1) {
+                    // 获取最后一个部分作为文件类型
+                    i.setType(strings.get(strings.size() - 1));
+                } else {
+                    // 如果没有后缀或文件名无效,设置一个默认类型或空
+                    i.setType("");
                 }
                 i.setAttachmentId(id);
                 i.setAttachmentName(dto.getName());
@@ -276,9 +283,15 @@ public class ConsultancyReimbursementTypeService {
                 i.setDelFlag(0);
                 i.setUrl(dto.getUrl());
                 //文件类型处理
-                List<String> strings = Arrays.asList(dto.getName().split("\\."));
-                if (CollectionUtils.isNotEmpty(strings)) {
-                    i.setType(strings.get(1));
+                String fileName = dto.getName();
+                List<String> strings = Arrays.asList(fileName.split("\\."));
+                // 检查文件名是否有后缀
+                if (CollectionUtil.isNotEmpty(strings) && strings.size() > 1) {
+                    // 获取最后一个部分作为文件类型
+                    i.setType(strings.get(strings.size() - 1));
+                } else {
+                    // 如果没有后缀或文件名无效,设置一个默认类型或空
+                    i.setType("");
                 }
                 i.setAttachmentId(id);
                 i.setAttachmentName(dto.getName());
@@ -317,9 +330,15 @@ public class ConsultancyReimbursementTypeService {
             i.setDelFlag(0);
             i.setUrl(dto.getUrl());
             //文件类型处理
-            List<String> strings = Arrays.asList(dto.getName().split("\\."));
-            if (CollectionUtils.isNotEmpty(strings)) {
-                i.setType(strings.get(1));
+            String fileName = dto.getName();
+            List<String> strings = Arrays.asList(fileName.split("\\."));
+            // 检查文件名是否有后缀
+            if (CollectionUtil.isNotEmpty(strings) && strings.size() > 1) {
+                // 获取最后一个部分作为文件类型
+                i.setType(strings.get(strings.size() - 1));
+            } else {
+                // 如果没有后缀或文件名无效,设置一个默认类型或空
+                i.setType("");
             }
             i.setAttachmentId(id);
             i.setAttachmentName(dto.getName());
@@ -357,9 +376,15 @@ public class ConsultancyReimbursementTypeService {
             i.setDelFlag(0);
             i.setUrl(dto.getUrl());
             //文件类型处理
-            List<String> strings = Arrays.asList(dto.getName().split("\\."));
-            if (CollectionUtils.isNotEmpty(strings)) {
-                i.setType(strings.get(1));
+            String fileName = dto.getName();
+            List<String> strings = Arrays.asList(fileName.split("\\."));
+            // 检查文件名是否有后缀
+            if (CollectionUtil.isNotEmpty(strings) && strings.size() > 1) {
+                // 获取最后一个部分作为文件类型
+                i.setType(strings.get(strings.size() - 1));
+            } else {
+                // 如果没有后缀或文件名无效,设置一个默认类型或空
+                i.setType("");
             }
             i.setAttachmentId(id);
             i.setAttachmentName(dto.getName());

+ 19 - 6
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/contractRegistration/service/ContractFilePaperService.java

@@ -1,5 +1,6 @@
 package com.jeeplus.finance.contractRegistration.service;
 
+import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.extra.spring.SpringUtil;
 import com.alibaba.fastjson.JSON;
 import com.jeeplus.common.TokenProvider;
@@ -158,9 +159,15 @@ public class ContractFilePaperService {
                 i.setDelFlag(0);
                 i.setUrl(dto.getUrl());
                 //文件类型处理
-                List<String> strings = Arrays.asList(dto.getName().split("\\."));
-                if (CollectionUtils.isNotEmpty(strings)) {
-                    i.setType(strings.get(1));
+                String fileName = dto.getName();
+                List<String> strings = Arrays.asList(fileName.split("\\."));
+                // 检查文件名是否有后缀
+                if (CollectionUtil.isNotEmpty(strings) && strings.size() > 1) {
+                    // 获取最后一个部分作为文件类型
+                    i.setType(strings.get(strings.size() - 1));
+                } else {
+                    // 如果没有后缀或文件名无效,设置一个默认类型或空
+                    i.setType("");
                 }
                 i.setAttachmentId(id);
                 i.setAttachmentName(dto.getName());
@@ -199,9 +206,15 @@ public class ContractFilePaperService {
             i.setDelFlag(0);
             i.setUrl(dto.getUrl());
             //文件类型处理
-            List<String> strings = Arrays.asList(dto.getName().split("\\."));
-            if (CollectionUtils.isNotEmpty(strings)) {
-                i.setType(strings.get(1));
+            String fileName = dto.getName();
+            List<String> strings = Arrays.asList(fileName.split("\\."));
+            // 检查文件名是否有后缀
+            if (CollectionUtil.isNotEmpty(strings) && strings.size() > 1) {
+                // 获取最后一个部分作为文件类型
+                i.setType(strings.get(strings.size() - 1));
+            } else {
+                // 如果没有后缀或文件名无效,设置一个默认类型或空
+                i.setType("");
             }
             i.setAttachmentId(id);
             i.setAttachmentName(dto.getName());

+ 19 - 6
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/contractRegistration/service/ContractFileService.java

@@ -1,5 +1,6 @@
 package com.jeeplus.finance.contractRegistration.service;
 
+import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.extra.spring.SpringUtil;
 import com.alibaba.fastjson.JSON;
 import com.jeeplus.common.TokenProvider;
@@ -185,9 +186,15 @@ public class ContractFileService {
                 i.setDelFlag(0);
                 i.setUrl(dto.getUrl());
                 //文件类型处理
-                List<String> strings = Arrays.asList(dto.getName().split("\\."));
-                if (CollectionUtils.isNotEmpty(strings)) {
-                    i.setType(strings.get(1));
+                String fileName = dto.getName();
+                List<String> strings = Arrays.asList(fileName.split("\\."));
+                // 检查文件名是否有后缀
+                if (CollectionUtil.isNotEmpty(strings) && strings.size() > 1) {
+                    // 获取最后一个部分作为文件类型
+                    i.setType(strings.get(strings.size() - 1));
+                } else {
+                    // 如果没有后缀或文件名无效,设置一个默认类型或空
+                    i.setType("");
                 }
                 i.setAttachmentId(id);
                 i.setAttachmentName(dto.getName());
@@ -225,9 +232,15 @@ public class ContractFileService {
             i.setDelFlag(0);
             i.setUrl(dto.getUrl());
             //文件类型处理
-            List<String> strings = Arrays.asList(dto.getName().split("\\."));
-            if (CollectionUtils.isNotEmpty(strings)) {
-                i.setType(strings.get(1));
+            String fileName = dto.getName();
+            List<String> strings = Arrays.asList(fileName.split("\\."));
+            // 检查文件名是否有后缀
+            if (CollectionUtil.isNotEmpty(strings) && strings.size() > 1) {
+                // 获取最后一个部分作为文件类型
+                i.setType(strings.get(strings.size() - 1));
+            } else {
+                // 如果没有后缀或文件名无效,设置一个默认类型或空
+                i.setType("");
             }
             i.setAttachmentId(id);
             i.setAttachmentName(dto.getName());

+ 36 - 12
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/contractRegistration/service/ContractInfoService.java

@@ -664,9 +664,15 @@ public class ContractInfoService {
             i.setDelFlag(0);
             i.setUrl(dto.getUrl());
             //文件类型处理
-            List<String> strings = Arrays.asList(dto.getName().split("\\."));
-            if (CollectionUtils.isNotEmpty(strings)) {
-                i.setType(strings.get(1));
+            String fileName = dto.getName();
+            List<String> strings = Arrays.asList(fileName.split("\\."));
+            // 检查文件名是否有后缀
+            if (CollectionUtil.isNotEmpty(strings) && strings.size() > 1) {
+                // 获取最后一个部分作为文件类型
+                i.setType(strings.get(strings.size() - 1));
+            } else {
+                // 如果没有后缀或文件名无效,设置一个默认类型或空
+                i.setType("");
             }
             i.setAttachmentId(id);
             i.setAttachmentName(dto.getName());
@@ -704,9 +710,15 @@ public class ContractInfoService {
             i.setDelFlag(0);
             i.setUrl(dto.getUrl());
             //文件类型处理
-            List<String> strings = Arrays.asList(dto.getName().split("\\."));
-            if (CollectionUtils.isNotEmpty(strings)) {
-                i.setType(strings.get(1));
+            String fileName = dto.getName();
+            List<String> strings = Arrays.asList(fileName.split("\\."));
+            // 检查文件名是否有后缀
+            if (CollectionUtil.isNotEmpty(strings) && strings.size() > 1) {
+                // 获取最后一个部分作为文件类型
+                i.setType(strings.get(strings.size() - 1));
+            } else {
+                // 如果没有后缀或文件名无效,设置一个默认类型或空
+                i.setType("");
             }
             i.setAttachmentId(id);
             i.setAttachmentName(dto.getName());
@@ -763,9 +775,15 @@ public class ContractInfoService {
                 i.setDelFlag(0);
                 i.setUrl(dto.getUrl());
                 //文件类型处理
-                List<String> strings = Arrays.asList(dto.getName().split("\\."));
-                if (CollectionUtils.isNotEmpty(strings)) {
-                    i.setType(strings.get(1));
+                String fileName = dto.getName();
+                List<String> strings = Arrays.asList(fileName.split("\\."));
+                // 检查文件名是否有后缀
+                if (CollectionUtil.isNotEmpty(strings) && strings.size() > 1) {
+                    // 获取最后一个部分作为文件类型
+                    i.setType(strings.get(strings.size() - 1));
+                } else {
+                    // 如果没有后缀或文件名无效,设置一个默认类型或空
+                    i.setType("");
                 }
                 i.setAttachmentId(id);
                 i.setAttachmentName(dto.getName());
@@ -823,9 +841,15 @@ public class ContractInfoService {
                 i.setDelFlag(0);
                 i.setUrl(dto.getUrl());
                 //文件类型处理
-                List<String> strings = Arrays.asList(dto.getName().split("\\."));
-                if (CollectionUtils.isNotEmpty(strings)) {
-                    i.setType(strings.get(1));
+                String fileName = dto.getName();
+                List<String> strings = Arrays.asList(fileName.split("\\."));
+                // 检查文件名是否有后缀
+                if (CollectionUtil.isNotEmpty(strings) && strings.size() > 1) {
+                    // 获取最后一个部分作为文件类型
+                    i.setType(strings.get(strings.size() - 1));
+                } else {
+                    // 如果没有后缀或文件名无效,设置一个默认类型或空
+                    i.setType("");
                 }
                 i.setAttachmentId(id);
                 i.setAttachmentName(dto.getName());

+ 2 - 2
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/invoice/mapper/xml/CwFinanceInvoiceMapper.xml

@@ -407,8 +407,8 @@
         left join sys_office so on su.office_id = so.id and so.del_flag = '0'
         LEFT JOIN act_ru_task d ON fi.proc_ins_id = d.PROC_INST_ID_
         ${ew.customSqlSegment}
-        ORDER BY
-        fi.create_time DESC, cfid.number asc
+        /*ORDER BY
+        fi.create_time DESC, cfid.number asc*/
     </select>
 
     <select id="queryById" resultMap="BaseResultMap">

+ 46 - 16
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/projectReport/service/CwProjectReportService.java

@@ -335,9 +335,15 @@ public class CwProjectReportService extends ServiceImpl<CwProjectReportMapper, C
                 i.setDelFlag(0);
                 i.setUrl(item.getUrl());
                 //文件类型处理
-                List<String> strings = Arrays.asList(item.getName().split("\\."));
-                if (CollectionUtils.isNotEmpty(strings)) {
-                    i.setType(strings.get(1));
+                String fileName = item.getName();
+                List<String> strings = Arrays.asList(fileName.split("\\."));
+                // 检查文件名是否有后缀
+                if (CollectionUtil.isNotEmpty(strings) && strings.size() > 1) {
+                    // 获取最后一个部分作为文件类型
+                    i.setType(strings.get(strings.size() - 1));
+                } else {
+                    // 如果没有后缀或文件名无效,设置一个默认类型或空
+                    i.setType("");
                 }
                 i.setAttachmentId(report.getId());
                 i.setAttachmentName(item.getName());
@@ -482,9 +488,15 @@ public class CwProjectReportService extends ServiceImpl<CwProjectReportMapper, C
                 i.setDelFlag(0);
                 i.setUrl(item.getUrl());
                 //文件类型处理
-                List<String> strings = Arrays.asList(item.getName().split("\\."));
-                if (CollectionUtils.isNotEmpty(strings)) {
-                    i.setType(strings.get(1));
+                String fileName = item.getName();
+                List<String> strings = Arrays.asList(fileName.split("\\."));
+                // 检查文件名是否有后缀
+                if (CollectionUtil.isNotEmpty(strings) && strings.size() > 1) {
+                    // 获取最后一个部分作为文件类型
+                    i.setType(strings.get(strings.size() - 1));
+                } else {
+                    // 如果没有后缀或文件名无效,设置一个默认类型或空
+                    i.setType("");
                 }
                 i.setAttachmentId(report.getId());
                 i.setAttachmentName(item.getName());
@@ -520,9 +532,15 @@ public class CwProjectReportService extends ServiceImpl<CwProjectReportMapper, C
                 i.setDelFlag(0);
                 i.setUrl(item.getUrl());
                 //文件类型处理
-                List<String> strings = Arrays.asList(item.getName().split("\\."));
-                if (CollectionUtils.isNotEmpty(strings)) {
-                    i.setType(strings.get(1));
+                String fileName = item.getName();
+                List<String> strings = Arrays.asList(fileName.split("\\."));
+                // 检查文件名是否有后缀
+                if (CollectionUtil.isNotEmpty(strings) && strings.size() > 1) {
+                    // 获取最后一个部分作为文件类型
+                    i.setType(strings.get(strings.size() - 1));
+                } else {
+                    // 如果没有后缀或文件名无效,设置一个默认类型或空
+                    i.setType("");
                 }
                 i.setAttachmentId(report.getId());
                 i.setAttachmentName(item.getName());
@@ -4036,9 +4054,15 @@ public class CwProjectReportService extends ServiceImpl<CwProjectReportMapper, C
                 i.setDelFlag(0);
                 i.setUrl(dto.getUrl());
                 //文件类型处理
-                List<String> strings = Arrays.asList(dto.getName().split("\\."));
-                if (org.flowable.editor.language.json.converter.util.CollectionUtils.isNotEmpty(strings)) {
-                    i.setType(strings.get(1));
+                String fileName = dto.getName();
+                List<String> strings = Arrays.asList(fileName.split("\\."));
+                // 检查文件名是否有后缀
+                if (CollectionUtil.isNotEmpty(strings) && strings.size() > 1) {
+                    // 获取最后一个部分作为文件类型
+                    i.setType(strings.get(strings.size() - 1));
+                } else {
+                    // 如果没有后缀或文件名无效,设置一个默认类型或空
+                    i.setType("");
                 }
                 i.setAttachmentId(id);
                 i.setAttachmentName(dto.getName());
@@ -4118,10 +4142,16 @@ public class CwProjectReportService extends ServiceImpl<CwProjectReportMapper, C
                 i.setDelFlag(0);
                 i.setUrl(dto.getUrl());
                 //文件类型处理
-                List<String> strings = Arrays.asList(dto.getName().split("\\."));
-                if (org.flowable.editor.language.json.converter.util.CollectionUtils.isNotEmpty(strings)) {
-                    i.setType(strings.get(1));
-                }
+            String fileName = dto.getName();
+            List<String> strings = Arrays.asList(fileName.split("\\."));
+            // 检查文件名是否有后缀
+            if (CollectionUtil.isNotEmpty(strings) && strings.size() > 1) {
+                // 获取最后一个部分作为文件类型
+                i.setType(strings.get(strings.size() - 1));
+            } else {
+                // 如果没有后缀或文件名无效,设置一个默认类型或空
+                i.setType("");
+            }
                 i.setAttachmentId(id);
                 i.setAttachmentName(dto.getName());
                 i.setAttachmentFlag("cwReportSignature");

+ 2 - 2
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/controller/CwReimbursementInfoController.java

@@ -442,7 +442,7 @@ public class CwReimbursementInfoController {
     @ApiLog(value = "根据发票号查询是否已经或正在报销")
     @GetMapping("getEffectiveDataByNumbers2")
     @ApiOperation(value = "根据发票号查询是否已经或正在报销")
-    public Map<String,Object> getEffectiveDataByNumbers2(String invoiceNumber){
+    public Map<String,Object> getEffectiveDataByNumbers2(String invoiceNumber,String id){
         Map map = new HashMap();
         map.put("success",true);
         map.put("message","数电发票正常");
@@ -452,7 +452,7 @@ public class CwReimbursementInfoController {
             List<String> numberList = Arrays.asList(array);
             Set<String> set = new HashSet<>();
             if(numberList.size()>0){
-                List<String> repetitionMessageList = service.getEffectiveDataByNumbers2(numberList);
+                List<String> repetitionMessageList = service.getEffectiveDataByNumbers2(numberList, id);
                 for (String vatTax : repetitionMessageList) {
                     set.add(vatTax);
                 }

+ 1 - 1
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/mapper/CwReimbursementInfoMapper.java

@@ -67,7 +67,7 @@ public interface CwReimbursementInfoMapper extends BaseMapper<CwReimbursementInf
 
     List<String> getEffectiveDataByNumbers(@Param("invoiceNumber") List<String> invoiceNumber, @Param("id") String id);
     //根据发票号查询是否已经报销
-    List<String> getEffectiveDataByNumbers2(@Param("invoiceNumber") List<String> invoiceNumber);
+    List<String> getEffectiveDataByNumbers2(@Param("invoiceNumber") List<String> invoiceNumber, @Param("id")String id);
 
 
     Integer deleteByIdAndNumber(@Param("invoiceNumber") String invoiceNumber, @Param("id") String id);

+ 6 - 6
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/mapper/xml/CwReimbursementInfoMapper.xml

@@ -597,7 +597,7 @@
 	</select>
 
 	<select id="getEffectiveDataByNumbers2" resultType="string">
-		SELECT GROUP_CONCAT(CAST(count AS CHAR) SEPARATOR ',') AS counts
+		SELECT IFNULL(GROUP_CONCAT(CAST(count AS CHAR) SEPARATOR ','), '') AS counts
 		FROM (
 		select a.number as count from ccpm_reimbursement_amount_info a
 		left join ccpm_reimbursement_info ri on ri.id = a.info_id
@@ -608,7 +608,7 @@
 			</foreach>
 			and a.del_flag = 0
 			and ri.del_flag = 0
-			and (ri.type = '2' or ri.type = '5')
+			and (ri.type = '2' or ri.type = '5') and a.info_id != #{id}
 		</where>
 		union all
 		select a.number as count from reimbursement_amount_info a
@@ -620,7 +620,7 @@
 			</foreach>
 			and a.del_flag = 0
 			and ri.del_flag = 0
-			and (ri.type = '2' or ri.type = '5')
+			and (ri.type = '2' or ri.type = '5') and a.info_id != #{id}
 		</where>
 		union all
 		select a.number as count from cw_reimbursement_amount_info a
@@ -632,7 +632,7 @@
 			</foreach>
 			and a.del_flag = 0
 			and ri.del_flag = 0
-			and (ri.type = '2' or ri.type = '5')
+			and (ri.type = '2' or ri.type = '5') and a.info_id != #{id}
 		</where>
 		union all
 		select a.number as count from zs_reimbursement_amount_info a
@@ -644,7 +644,7 @@
 			</foreach>
 			and a.del_flag = 0
 			and ri.del_flag = 0
-			and (ri.type = '2' or ri.type = '5')
+			and (ri.type = '2' or ri.type = '5') and a.info_id != #{id}
 		</where>
 		union all
 		select a.number as count from consultancy_reimbursement_amount_info a
@@ -656,7 +656,7 @@
 			</foreach>
 			and a.del_flag = 0
 			and ri.del_flag = 0
-			and (ri.type = '2' or ri.type = '5')
+			and (ri.type = '2' or ri.type = '5') and a.info_id != #{id}
 		</where>
 		)AS result;
 

+ 2 - 2
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/service/CwReimbursementInfoService.java

@@ -1379,8 +1379,8 @@ public class CwReimbursementInfoService {
      * @param invoiceNumber
      * @return
      */
-    public List<String> getEffectiveDataByNumbers2(List<String> invoiceNumber){
-        return infoMapper.getEffectiveDataByNumbers2(invoiceNumber);
+    public List<String> getEffectiveDataByNumbers2(List<String> invoiceNumber, String id){
+        return infoMapper.getEffectiveDataByNumbers2(invoiceNumber, id);
     }
 
     /**

+ 19 - 6
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reportCancellApplyArchived/service/ReportCancellApplyArchivedService.java

@@ -1,5 +1,6 @@
 package com.jeeplus.finance.reportCancellApplyArchived.service;
 
+import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.extra.spring.SpringUtil;
 import com.alibaba.druid.sql.visitor.functions.If;
@@ -438,9 +439,15 @@ public class ReportCancellApplyArchivedService extends ServiceImpl<ReportCancell
                 i.setDelFlag(0);
                 i.setUrl(dto.getUrl());
                 //文件类型处理
-                List<String> strings = Arrays.asList(dto.getName().split("\\."));
-                if (CollectionUtils.isNotEmpty(strings)) {
-                    i.setType(strings.get(1));
+                String fileName = dto.getName();
+                List<String> strings = Arrays.asList(fileName.split("\\."));
+                // 检查文件名是否有后缀
+                if (CollectionUtil.isNotEmpty(strings) && strings.size() > 1) {
+                    // 获取最后一个部分作为文件类型
+                    i.setType(strings.get(strings.size() - 1));
+                } else {
+                    // 如果没有后缀或文件名无效,设置一个默认类型或空
+                    i.setType("");
                 }
                 i.setAttachmentId(id);
                 i.setAttachmentName(dto.getName());
@@ -480,9 +487,15 @@ public class ReportCancellApplyArchivedService extends ServiceImpl<ReportCancell
             i.setDelFlag(0);
             i.setUrl(dto.getUrl());
             //文件类型处理
-            List<String> strings = Arrays.asList(dto.getName().split("\\."));
-            if (CollectionUtils.isNotEmpty(strings)) {
-                i.setType(strings.get(1));
+            String fileName = dto.getName();
+            List<String> strings = Arrays.asList(fileName.split("\\."));
+            // 检查文件名是否有后缀
+            if (CollectionUtil.isNotEmpty(strings) && strings.size() > 1) {
+                // 获取最后一个部分作为文件类型
+                i.setType(strings.get(strings.size() - 1));
+            } else {
+                // 如果没有后缀或文件名无效,设置一个默认类型或空
+                i.setType("");
             }
             i.setAttachmentId(id);
             i.setAttachmentName(dto.getName());

+ 19 - 6
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/signatureDaily/service/SignatureDaulyOfficeWorkService.java

@@ -1,5 +1,6 @@
 package com.jeeplus.finance.signatureDaily.service;
 
+import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.extra.spring.SpringUtil;
 import com.alibaba.fastjson.JSON;
@@ -500,9 +501,15 @@ public class SignatureDaulyOfficeWorkService {
             i.setDelFlag(0);
             i.setUrl(dto.getUrl());
             //文件类型处理
-            List<String> strings = Arrays.asList(dto.getName().split("\\."));
-            if (org.flowable.editor.language.json.converter.util.CollectionUtils.isNotEmpty(strings)) {
-                i.setType(strings.get(1));
+            String fileName = dto.getName();
+            List<String> strings = Arrays.asList(fileName.split("\\."));
+            // 检查文件名是否有后缀
+            if (CollectionUtil.isNotEmpty(strings) && strings.size() > 1) {
+                // 获取最后一个部分作为文件类型
+                i.setType(strings.get(strings.size() - 1));
+            } else {
+                // 如果没有后缀或文件名无效,设置一个默认类型或空
+                i.setType("");
             }
             i.setAttachmentId(id);
             i.setAttachmentName(dto.getName());
@@ -559,9 +566,15 @@ public class SignatureDaulyOfficeWorkService {
                 i.setDelFlag(0);
                 i.setUrl(dto.getUrl());
                 //文件类型处理
-                List<String> strings = Arrays.asList(dto.getName().split("\\."));
-                if (org.flowable.editor.language.json.converter.util.CollectionUtils.isNotEmpty(strings)) {
-                    i.setType(strings.get(1));
+                String fileName = dto.getName();
+                List<String> strings = Arrays.asList(fileName.split("\\."));
+                // 检查文件名是否有后缀
+                if (CollectionUtil.isNotEmpty(strings) && strings.size() > 1) {
+                    // 获取最后一个部分作为文件类型
+                    i.setType(strings.get(strings.size() - 1));
+                } else {
+                    // 如果没有后缀或文件名无效,设置一个默认类型或空
+                    i.setType("");
                 }
                 i.setAttachmentId(id);
                 i.setAttachmentName(dto.getName());

+ 19 - 6
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/signatureDaily/service/SignatureProjectReportService.java

@@ -1,5 +1,6 @@
 package com.jeeplus.finance.signatureDaily.service;
 
+import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.extra.spring.SpringUtil;
 import com.alibaba.fastjson.JSON;
@@ -304,9 +305,15 @@ public class SignatureProjectReportService {
             i.setDelFlag(0);
             i.setUrl(dto.getUrl());
             //文件类型处理
-            List<String> strings = Arrays.asList(dto.getName().split("\\."));
-            if (org.flowable.editor.language.json.converter.util.CollectionUtils.isNotEmpty(strings)) {
-                i.setType(strings.get(1));
+            String fileName = dto.getName();
+            List<String> strings = Arrays.asList(fileName.split("\\."));
+            // 检查文件名是否有后缀
+            if (CollectionUtil.isNotEmpty(strings) && strings.size() > 1) {
+                // 获取最后一个部分作为文件类型
+                i.setType(strings.get(strings.size() - 1));
+            } else {
+                // 如果没有后缀或文件名无效,设置一个默认类型或空
+                i.setType("");
             }
             i.setAttachmentId(id);
             i.setAttachmentName(dto.getName());
@@ -363,9 +370,15 @@ public class SignatureProjectReportService {
                 i.setDelFlag(0);
                 i.setUrl(dto.getUrl());
                 //文件类型处理
-                List<String> strings = Arrays.asList(dto.getName().split("\\."));
-                if (org.flowable.editor.language.json.converter.util.CollectionUtils.isNotEmpty(strings)) {
-                    i.setType(strings.get(1));
+                String fileName = dto.getName();
+                List<String> strings = Arrays.asList(fileName.split("\\."));
+                // 检查文件名是否有后缀
+                if (CollectionUtil.isNotEmpty(strings) && strings.size() > 1) {
+                    // 获取最后一个部分作为文件类型
+                    i.setType(strings.get(strings.size() - 1));
+                } else {
+                    // 如果没有后缀或文件名无效,设置一个默认类型或空
+                    i.setType("");
                 }
                 i.setAttachmentId(id);
                 i.setAttachmentName(dto.getName());

+ 41 - 10
jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/depart/handover/service/HandoverService.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.google.common.collect.Lists;
 import com.jeeplus.common.TokenProvider;
+import com.jeeplus.flowable.feign.IAssessApi;
 import com.jeeplus.flowable.feign.IFinanceApi;
 import com.jeeplus.flowable.feign.IFlowableApi;
 import com.jeeplus.human.depart.handover.domain.*;
@@ -169,8 +170,24 @@ public class HandoverService extends ServiceImpl<HandoverMapper, Handover> {
         mapper.updateById(report);
 
         if (report.getType().equals("5")){
+            String tenantId = "";
+            //根据名称查询隶属公司部门
+            UserDTO userDTOByName = SpringUtil.getBean(IUserApi.class).getUserDTOByName(reportData.getName());
+            if(null != userDTOByName){
+                //判定申请人的隶属公司的tenantId是评估的  还是 会计的
+                tenantId = userDTOByName.getTenantDTO().getId();
+                //如果tenantId 为10001 则表示发起人是评估,如果是10003 则表示发起人是会计
+            }
+
+            if("10001".equals(tenantId)){
+                UserDTO dgSHR = SpringUtil.getBean(IUserApi.class).getUserDTOByName("芮秀琴");
+                if(null != dgSHR && StringUtils.isNotBlank(dgSHR.getId())){
+                    report.setDraftAdministrator(dgSHR.getId());
+                }
+            }
 
             //发起底稿归档检查流程
+            //根据发起人 判定如果是评估公司的,则归档人应该是评估部部门主任
             Map map = SpringUtil.getBean(IFlowableApi.class).getByNameForFen("底稿归档检查");
             String procDefId = map.get("id")+"";
             HandoverDraft draft = new HandoverDraft();
@@ -321,16 +338,30 @@ public class HandoverService extends ServiceImpl<HandoverMapper, Handover> {
 
             //将交接人添加到离职人员所有项目的项目组中
             //查出所有的项目id
-            List<String> ids = SpringUtil.getBean(IFinanceApi.class).getCwProjectData(report.getCreateById());
-
-            ids.forEach(id->{
-                //根据id查出项目组成员信息
-                List<String> membersIdList = SpringUtil.getBean(IFinanceApi.class).getMembersId(id);
-                if (!membersIdList.contains(report.getProjectManager())) {
-                    //将这个项目经理加入到项目组成员中
-                    SpringUtil.getBean(IFinanceApi.class).insertMembers(id,report.getProjectManager(),userDTO.getId());
-                }
-            });
+            //此处需要判定是会计的还是评估的,根据所属机构选择不同的项目组成员进行处理
+            if("10001".equals(tenantId)){
+                List<String> ids = SpringUtil.getBean(IAssessApi.class).getProjectData(report.getCreateById());
+                ids.forEach(id->{
+                    //根据id查出项目组成员信息
+                    List<String> membersIdList = SpringUtil.getBean(IAssessApi.class).getMembersId(id);
+                    if (!membersIdList.contains(report.getProjectManager())) {
+                        //将这个项目经理加入到项目组成员中
+                        SpringUtil.getBean(IAssessApi.class).insertMembers(id,report.getProjectManager(),userDTO.getId());
+                    }
+                });
+            }else{
+
+                List<String> ids = SpringUtil.getBean(IFinanceApi.class).getCwProjectData(report.getCreateById());
+
+                ids.forEach(id->{
+                    //根据id查出项目组成员信息
+                    List<String> membersIdList = SpringUtil.getBean(IFinanceApi.class).getMembersId(id);
+                    if (!membersIdList.contains(report.getProjectManager())) {
+                        //将这个项目经理加入到项目组成员中
+                        SpringUtil.getBean(IFinanceApi.class).insertMembers(id,report.getProjectManager(),userDTO.getId());
+                    }
+                });
+            }
 
             SpringUtil.getBean(IFlowableApi.class).startForFenNew(allMap);
 

+ 14 - 0
jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/practice/register/service/RegistrationService.java

@@ -123,6 +123,20 @@ public class RegistrationService extends ServiceImpl<InterRegistrationMapper, Re
         if (StringUtils.isNotBlank(projectReportData.getPracticeOffice())) {
             queryWrapper.eq("a.practice_office",projectReportData.getPracticeOffice());
         }
+
+        if (projectReportData.getCreateDates() != null && projectReportData.getCreateDates().length > 1) {
+            // 添加条件
+            queryWrapper.and(wrapper ->
+                    wrapper.between("practice_start_day", projectReportData.getCreateDates()[0], projectReportData.getCreateDates()[1])
+                            .or()
+                            .between("practice_complete_day", projectReportData.getCreateDates()[0], projectReportData.getCreateDates()[1])
+                            .or()
+                            .le("practice_start_day", projectReportData.getCreateDates()[0])
+                            .ge("practice_complete_day", projectReportData.getCreateDates()[1])
+            );
+
+        }
+
         if (StringUtils.isNotBlank(projectReportData.getMobilePhone())) {
             queryWrapper.like("a.mobile_phone",projectReportData.getMobilePhone());
         }

+ 2 - 0
jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/practice/register/service/dto/RegistrationDto.java

@@ -33,6 +33,8 @@ public class RegistrationDto extends BaseDTO {
     private String processDefinitionId;
     private String practiceStatus;      //实习状态
     private String userId;              //用户id
+    @TableField(exist = false)
+    private String[] createDates;
     @DateTimeFormat(pattern = "yyyy-MM-dd")
     @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
     private String practiceCompleteDay; //实习结束时间

+ 19 - 6
jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/practice/reimburseRegister/service/ReimburseSubmitAccountService.java

@@ -1,5 +1,6 @@
 package com.jeeplus.human.practice.reimburseRegister.service;
 
+import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.extra.spring.SpringUtil;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -223,9 +224,15 @@ public class ReimburseSubmitAccountService extends ServiceImpl<ReimburseSubmitAc
             i.setDelFlag(0);
             i.setUrl(dto.getUrl());
             //文件类型处理
-            List<String> strings = Arrays.asList(dto.getName().split("\\."));
-            if (org.flowable.editor.language.json.converter.util.CollectionUtils.isNotEmpty(strings)) {
-                i.setType(strings.get(1));
+            String fileName = dto.getName();
+            List<String> strings = Arrays.asList(fileName.split("\\."));
+            // 检查文件名是否有后缀
+            if (CollectionUtil.isNotEmpty(strings) && strings.size() > 1) {
+                // 获取最后一个部分作为文件类型
+                i.setType(strings.get(strings.size() - 1));
+            } else {
+                // 如果没有后缀或文件名无效,设置一个默认类型或空
+                i.setType("");
             }
             i.setAttachmentId(id);
             i.setAttachmentName(dto.getName());
@@ -282,9 +289,15 @@ public class ReimburseSubmitAccountService extends ServiceImpl<ReimburseSubmitAc
                 i.setDelFlag(0);
                 i.setUrl(dto.getUrl());
                 //文件类型处理
-                List<String> strings = Arrays.asList(dto.getName().split("\\."));
-                if (org.flowable.editor.language.json.converter.util.CollectionUtils.isNotEmpty(strings)) {
-                    i.setType(strings.get(1));
+                String fileName = dto.getName();
+                List<String> strings = Arrays.asList(fileName.split("\\."));
+                // 检查文件名是否有后缀
+                if (CollectionUtil.isNotEmpty(strings) && strings.size() > 1) {
+                    // 获取最后一个部分作为文件类型
+                    i.setType(strings.get(strings.size() - 1));
+                } else {
+                    // 如果没有后缀或文件名无效,设置一个默认类型或空
+                    i.setType("");
                 }
                 i.setAttachmentId(id);
                 i.setAttachmentName(dto.getName());

+ 18 - 6
jeeplus-modules/jeeplus-public-modules/src/main/java/com/jeeplus/pubmodules/holiday/service/HolidayService.java

@@ -243,9 +243,15 @@ public class HolidayService {
                 i.setDelFlag(0);
                 i.setUrl(dto.getUrl());
                 //文件类型处理
-                List<String> strings = Arrays.asList(dto.getName().split("\\."));
-                if (CollectionUtil.isNotEmpty(strings)) {
-                    i.setType(strings.get(1));
+                String fileName = dto.getName();
+                List<String> strings = Arrays.asList(fileName.split("\\."));
+                // 检查文件名是否有后缀
+                if (CollectionUtil.isNotEmpty(strings) && strings.size() > 1) {
+                    // 获取最后一个部分作为文件类型
+                    i.setType(strings.get(strings.size() - 1));
+                } else {
+                    // 如果没有后缀或文件名无效,设置一个默认类型或空
+                    i.setType("");
                 }
                 i.setAttachmentId(id);
                 i.setAttachmentName(dto.getName());
@@ -317,9 +323,15 @@ public class HolidayService {
             i.setDelFlag(0);
             i.setUrl(dto.getUrl());
             //文件类型处理
-            List<String> strings = Arrays.asList(dto.getName().split("\\."));
-            if (CollectionUtil.isNotEmpty(strings)) {
-                i.setType(strings.get(1));
+            String fileName = dto.getName();
+            List<String> strings = Arrays.asList(fileName.split("\\."));
+            // 检查文件名是否有后缀
+            if (CollectionUtil.isNotEmpty(strings) && strings.size() > 1) {
+                // 获取最后一个部分作为文件类型
+                i.setType(strings.get(strings.size() - 1));
+            } else {
+                // 如果没有后缀或文件名无效,设置一个默认类型或空
+                i.setType("");
             }
             i.setAttachmentId(id);
             i.setAttachmentName(dto.getName());

+ 18 - 6
jeeplus-modules/jeeplus-public-modules/src/main/java/com/jeeplus/pubmodules/oss/service/OssService.java

@@ -451,9 +451,15 @@ public class OssService extends ServiceImpl<OssServiceMapper, WorkAttachment> {
             i.setDelFlag(0);
             i.setUrl(dto.getUrl());
             //文件类型处理
-            List<String> strings = Arrays.asList(dto.getName().split("\\."));
-            if (CollectionUtil.isNotEmpty(strings)) {
-                i.setType(strings.get(1));
+            String fileName = dto.getName();
+            List<String> strings = Arrays.asList(fileName.split("\\."));
+            // 检查文件名是否有后缀
+            if (CollectionUtil.isNotEmpty(strings) && strings.size() > 1) {
+                // 获取最后一个部分作为文件类型
+                i.setType(strings.get(strings.size() - 1));
+            } else {
+                // 如果没有后缀或文件名无效,设置一个默认类型或空
+                i.setType("");
             }
             i.setAttachmentId(attachmentId);
             i.setAttachmentName(dto.getName());
@@ -521,9 +527,15 @@ public class OssService extends ServiceImpl<OssServiceMapper, WorkAttachment> {
         i.setDelFlag(0);
         i.setUrl(workAttachmentDto.getUrl());
         //文件类型处理
-        List<String> strings = Arrays.asList(workAttachmentDto.getName().split("\\."));
-        if (CollectionUtil.isNotEmpty(strings)) {
-            i.setType(strings.get(1));
+        String fileName = workAttachmentDto.getName();
+        List<String> strings = Arrays.asList(fileName.split("\\."));
+        // 检查文件名是否有后缀
+        if (CollectionUtil.isNotEmpty(strings) && strings.size() > 1) {
+            // 获取最后一个部分作为文件类型
+            i.setType(strings.get(strings.size() - 1));
+        } else {
+            // 如果没有后缀或文件名无效,设置一个默认类型或空
+            i.setType("");
         }
         i.setAttachmentId(attachmentId);
         i.setAttachmentName(workAttachmentDto.getName());

+ 18 - 6
jeeplus-modules/jeeplus-public-modules/src/main/java/com/jeeplus/pubmodules/purchase/service/MaterialService.java

@@ -448,9 +448,15 @@ public class MaterialService {
             i.setDelFlag(0);
             i.setUrl(dto.getUrl());
             //文件类型处理
-            List<String> strings = Arrays.asList(dto.getName().split("\\."));
-            if (org.flowable.editor.language.json.converter.util.CollectionUtils.isNotEmpty(strings)) {
-                i.setType(strings.get(1));
+            String fileName = dto.getName();
+            List<String> strings = Arrays.asList(fileName.split("\\."));
+            // 检查文件名是否有后缀
+            if (CollectionUtil.isNotEmpty(strings) && strings.size() > 1) {
+                // 获取最后一个部分作为文件类型
+                i.setType(strings.get(strings.size() - 1));
+            } else {
+                // 如果没有后缀或文件名无效,设置一个默认类型或空
+                i.setType("");
             }
             i.setAttachmentId(id);
             i.setAttachmentName(dto.getName());
@@ -507,9 +513,15 @@ public class MaterialService {
                 i.setDelFlag(0);
                 i.setUrl(dto.getUrl());
                 //文件类型处理
-                List<String> strings = Arrays.asList(dto.getName().split("\\."));
-                if (org.flowable.editor.language.json.converter.util.CollectionUtils.isNotEmpty(strings)) {
-                    i.setType(strings.get(1));
+                String fileName = dto.getName();
+                List<String> strings = Arrays.asList(fileName.split("\\."));
+                // 检查文件名是否有后缀
+                if (CollectionUtil.isNotEmpty(strings) && strings.size() > 1) {
+                    // 获取最后一个部分作为文件类型
+                    i.setType(strings.get(strings.size() - 1));
+                } else {
+                    // 如果没有后缀或文件名无效,设置一个默认类型或空
+                    i.setType("");
                 }
                 i.setAttachmentId(id);
                 i.setAttachmentName(dto.getName());

+ 2 - 0
jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/mapper/LogMapper.java

@@ -3,6 +3,7 @@
  */
 package com.jeeplus.sys.mapper;
 
+import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -26,5 +27,6 @@ public interface LogMapper extends BaseMapper <Log> {
      * @param queryWrapper
      * @return
      */
+    @InterceptorIgnore(tenantLine = "true")
     IPage <LogDTO> findList(Page <LogDTO> page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper);
 }

+ 1 - 1
jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/service/UserService.java

@@ -287,7 +287,7 @@ public class UserService extends ServiceImpl <UserMapper, User> {
      */
     public IPage <UserDTO> userFindPage(Page <UserDTO> page, QueryWrapper queryWrapper) {
         queryWrapper.eq ( "a.del_flag", CommonConstants.NOT_DELETED ); // 排除已经删除
-
+        queryWrapper.orderByDesc("a.id");
 
         return baseMapper.userFindPage ( page, queryWrapper );