浏览代码

3.0.0-bug修改

xiaof 3 年之前
父节点
当前提交
18bf3750c7

+ 18 - 13
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicPrintConfigServiceImpl.java

@@ -93,14 +93,14 @@ public class BasicPrintConfigServiceImpl extends ServiceImpl<BasicPrintConfigMap
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
 
         boolean isSuccess;
+
         // 新增
         if (Objects.isNull(basicPrintConfig.getId())) {
-            // 同一个考试下,一个学院只能对应一个印品配置方案
-            Long[] orgIds = basicPrintConfig.getOrgIds();
             QueryWrapper<BasicPrintConfig> queryWrapper = new QueryWrapper<>();
             queryWrapper.lambda().eq(BasicPrintConfig::getSchoolId, schoolId).eq(BasicPrintConfig::getExamId, basicPrintConfig.getExamId());
             List<BasicPrintConfig> basicPrintConfigs = this.list(queryWrapper);
-
+            // 同一个考试下,一个学院只能对应一个印品配置方案
+            Long[] orgIds = basicPrintConfig.getOrgIds();
             if (basicPrintConfigs != null && basicPrintConfigs.size() > 0) {
                 List<Long> printConfigIds = basicPrintConfigs.stream().map(BasicPrintConfig::getId).collect(Collectors.toList());
                 QueryWrapper<BasicTemplateOrg> basicTemplateOrgQueryWrapper = new QueryWrapper<>();
@@ -108,8 +108,6 @@ public class BasicPrintConfigServiceImpl extends ServiceImpl<BasicPrintConfigMap
                         .in(BasicTemplateOrg::getOrgId, orgIds);
                 List<BasicTemplateOrg> basicTemplateOrgList = basicTemplateOrgService.list(basicTemplateOrgQueryWrapper);
                 if (basicTemplateOrgList != null && basicTemplateOrgList.size() > 0) {
-//                List<Long> useOrgIds = basicTemplateOrgList.stream().map(BasicTemplateOrg::getOrgId).collect(Collectors.toList());
-//                List<SysOrg> sysOrgList = sysOrgService.findByOrgIds(useOrgIds);
                     throw ExceptionResultEnum.ERROR.exception("有" + basicTemplateOrgList.size() + "个机构已经设置了印品,不能重复设置");
                 }
             }
@@ -121,16 +119,23 @@ public class BasicPrintConfigServiceImpl extends ServiceImpl<BasicPrintConfigMap
         }
         // 修改
         else {
+            QueryWrapper<BasicPrintConfig> queryWrapper = new QueryWrapper<>();
+            queryWrapper.lambda().eq(BasicPrintConfig::getSchoolId, schoolId)
+                    .eq(BasicPrintConfig::getExamId, basicPrintConfig.getExamId())
+                    .ne(BasicPrintConfig::getId, basicPrintConfig.getId());
+            List<BasicPrintConfig> basicPrintConfigs = this.list(queryWrapper);
             // 一个学院只能对应一个印品配置方案
             Long[] orgIds = basicPrintConfig.getOrgIds();
-            QueryWrapper<BasicTemplateOrg> queryWrapper = new QueryWrapper<>();
-            queryWrapper.lambda().eq(BasicTemplateOrg::getType, TemplateTypeEnum.PRINT_CONFIG)
-                    .in(BasicTemplateOrg::getOrgId, orgIds).ne(BasicTemplateOrg::getRuleId, basicPrintConfig.getId());
-            List<BasicTemplateOrg> basicTemplateOrgList = basicTemplateOrgService.list(queryWrapper);
-            if (basicTemplateOrgList != null && basicTemplateOrgList.size() > 0) {
-//                List<Long> useOrgIds = basicTemplateOrgList.stream().map(BasicTemplateOrg::getOrgId).collect(Collectors.toList());
-//                List<SysOrg> sysOrgList = sysOrgService.findByOrgIds(useOrgIds);
-                throw ExceptionResultEnum.ERROR.exception("有" + basicTemplateOrgList.size() + "个机构已经设置了印品,不能重复设置");
+            if(basicPrintConfigs!= null && basicPrintConfigs.size()>0) {
+                List<Long> printConfigIds = basicPrintConfigs.stream().map(BasicPrintConfig::getId).collect(Collectors.toList());
+                QueryWrapper<BasicTemplateOrg> basicTemplateOrgQueryWrapper = new QueryWrapper<>();
+                basicTemplateOrgQueryWrapper.lambda().in(BasicTemplateOrg::getRuleId, printConfigIds)
+                        .eq(BasicTemplateOrg::getType, TemplateTypeEnum.PRINT_CONFIG)
+                        .in(BasicTemplateOrg::getOrgId, orgIds);
+                List<BasicTemplateOrg> basicTemplateOrgList = basicTemplateOrgService.list(basicTemplateOrgQueryWrapper);
+                if (basicTemplateOrgList != null && basicTemplateOrgList.size() > 0) {
+                    throw ExceptionResultEnum.ERROR.exception("有" + basicTemplateOrgList.size() + "个机构已经设置了印品,不能重复设置");
+                }
             }
 
             basicPrintConfig.setUpdateId(sysUser.getId());