Explorar o código

项目删除权限调整

lizhenhao %!s(int64=2) %!d(string=hai) anos
pai
achega
3bb7c91a36

+ 6 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectRecords/mapper/CwProjectRecordsMapper.java

@@ -56,4 +56,10 @@ public interface CwProjectRecordsMapper extends BaseMapper<CwProjectRecords> {
     List<CwProjectRecordsDTO> getByContractId(@Param(Constants.WRAPPER) QueryWrapper<CwProjectRecords> queryWrapper);
 
     List<String> getHaveProjectIds(@Param("currentUser") UserDTO currentUser);
+
+    List<String> isUseByReport(String[] idArray);
+
+    List<String> isUseByReim(String[] idArray);
+
+    List<String> isUseByFinance(String[] idArray);
 }

+ 32 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectRecords/mapper/xml/CwProjectRecordsMapper.xml

@@ -337,4 +337,36 @@
         from cw_project_records cw_pr
         where cw_pr.create_by = #{currentUser.id} and cw_pr.del_flag = '0') a
     </select>
+
+    <select id="isUseByReport" resultType="string">
+        select distinct cw_pro.project_name
+        from cw_project_report cw_pr
+        left join cw_project_records cw_pro on cw_pro.id = cw_pr.project_id and cw_pro.del_flag = '0'
+        where cw_pr.del_flag = '0' and cw_pr.project_id in
+        <foreach collection="idArray" open="(" close=")" separator="," item="id">
+            #{id}
+        </foreach>
+    </select>
+
+    <select id="isUseByReim" resultType="string">
+        select distinct cw_pro.project_name
+        from cw_reimbursement_detail_info cw_reim
+        inner join cw_reimbursement_info cw_info on cw_info.id = cw_reim.info_id and cw_info.del_flag = '0'
+        left join cw_project_records cw_pro on cw_pro.id = cw_reim.project_id and cw_pro.del_flag = '0'
+        where cw_reim.del_flag = '0' and cw_reim.project_id in
+        <foreach collection="idArray" open="(" close=")" separator="," item="id">
+            #{id}
+        </foreach>
+    </select>
+
+    <select id="isUseByFinance" resultType="string">
+        select distinct cw_pro.project_name
+        from cw_finance_invoice_base cw_fib
+        inner join cw_finance_invoice cw_fi on cw_fi.id = cw_fib.invoice_id and cw_fi.del_flag = '0'
+        left join cw_project_records cw_pro on cw_pro.id = cw_fib.program_id and cw_pro.del_flag = '0'
+        where cw_fib.del_flag = '0' and cw_fib.program_id in
+        <foreach collection="idArray" open="(" close=")" separator="," item="id">
+            #{id}
+        </foreach>
+    </select>
 </mapper>

+ 34 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectRecords/service/CwProjectRecordsService.java

@@ -35,6 +35,7 @@ import com.jeeplus.test.cw.workClientInfo.service.CwWorkClientContactService;
 import com.jeeplus.test.cw.workClientInfo.service.dto.CwWorkClientBaseDTO;
 import com.jeeplus.test.mould.service.SerialnumTplService;
 import com.jeeplus.test.oss.service.OssService;
+import com.mchange.lang.IntegerUtils;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -296,7 +297,40 @@ public class CwProjectRecordsService extends ServiceImpl<CwProjectRecordsMapper,
      * @return
      */
     public ResponseEntity deleteByIds(String ids) {
+        // 查询项目是否被引用(报告、报销、发票)
         String idArray[] =ids.split(",");
+        List<String> useProjects = new ArrayList<>();
+        // 查询项目是否被引用(报告)
+        List<String> useByReport = cwProjectRecordsMapper.isUseByReport(idArray);
+        if (CollectionUtil.isNotEmpty(useByReport)) {
+            useByReport.stream().forEach(item -> {
+                useProjects.add(item);
+            });
+        }
+        // 查询项目是否被引用(报销)
+        List<String> useByReim = cwProjectRecordsMapper.isUseByReim(idArray);
+        if (CollectionUtil.isNotEmpty(useByReim)) {
+            useByReim.stream().forEach(item -> {
+                useProjects.add(item);
+            });
+        }
+        // 查询项目是否被引用(发票)
+        List<String> useByFinance = cwProjectRecordsMapper.isUseByFinance(idArray);
+        if (CollectionUtil.isNotEmpty(useByFinance)) {
+            useByFinance.stream().forEach(item -> {
+                useProjects.add(item);
+            });
+        }
+        if (CollectionUtil.isNotEmpty(useProjects)) {
+            List<String> collect = useProjects.stream().distinct().filter(item -> {
+                if (StringUtils.isNotBlank(item)) {
+                    return true;
+                }
+                return false;
+            }).collect(Collectors.toList());
+            String join = StringUtils.join(collect, ",");
+            return ResponseEntity.ok ("项目: "+join+" 被引用,不可删除");
+        }
         this.removeByIds (Lists.newArrayList (idArray));
         return ResponseEntity.ok ("删除成功");
     }

+ 1 - 1
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/workClientInfo/service/CwWorkClientService.java

@@ -78,7 +78,7 @@ public class CwWorkClientService extends ServiceImpl<CwWorkClientBaseMapper, CwW
         if (ObjectUtil.isNotEmpty(cwWorkClientBaseDTO)) {
             if (StringUtils.isNotBlank(cwWorkClientBaseDTO.getIsTrue())) {
                 if ("1".equals(cwWorkClientBaseDTO.getIsTrue())){
-                    queryWrapper.eq("cw_wcb.status","0").or().eq("cw_wcb.status","5");
+                    queryWrapper.and(w -> w.eq("cw_wcb.status","0").or().eq("cw_wcb.status","5"));
                 }
             }
             if (ArrayUtil.isNotEmpty(cwWorkClientBaseDTO.getCreateDates())) {