瀏覽代碼

数电发票报销调整-报销提交时提示调整

sangwenwei 6 月之前
父節點
當前提交
9dd1421ef0
共有 24 個文件被更改,包括 624 次插入2 次删除
  1. 34 0
      jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/reimbursement/reimbursementInfo/controller/ReimbursementInfoController.java
  2. 6 1
      jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/reimbursement/reimbursementInfo/mapper/ReimbursementInfoMapper.java
  3. 66 0
      jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/reimbursement/reimbursementInfo/mapper/xml/ReimbursementInfoMapper.xml
  4. 9 0
      jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/reimbursement/reimbursementInfo/service/ReimbursementInfoService.java
  5. 33 0
      jeeplus-modules/jeeplus-ccpm/src/main/java/com/jeeplus/ccpm/approvalInfo/controller/CcpmReimbursementInfoController.java
  6. 6 1
      jeeplus-modules/jeeplus-ccpm/src/main/java/com/jeeplus/ccpm/approvalInfo/mapper/CcpmReimbursementInfoMapper.java
  7. 66 0
      jeeplus-modules/jeeplus-ccpm/src/main/java/com/jeeplus/ccpm/approvalInfo/mapper/xml/CcpmReimbursementInfoMapper.xml
  8. 8 0
      jeeplus-modules/jeeplus-ccpm/src/main/java/com/jeeplus/ccpm/approvalInfo/service/CcpmReimbursementInfoService.java
  9. 34 0
      jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/approvalInfo/controller/ZsReimbursementInfoController.java
  10. 7 0
      jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/approvalInfo/mapper/ZsReimbursementInfoMapper.java
  11. 66 0
      jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/approvalInfo/mapper/xml/ZsReimbursementInfoMapper.xml
  12. 9 0
      jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/approvalInfo/service/ZsReimbursementInfoService.java
  13. 32 0
      jeeplus-modules/jeeplus-consult/src/main/java/com/jeeplus/consultancy/approvalInfo/controller/ConsultancyReimbursementInfoController.java
  14. 7 0
      jeeplus-modules/jeeplus-consult/src/main/java/com/jeeplus/consultancy/approvalInfo/mapper/ConsultancyReimbursementInfoMapper.java
  15. 66 0
      jeeplus-modules/jeeplus-consult/src/main/java/com/jeeplus/consultancy/approvalInfo/mapper/xml/ConsultancyReimbursementInfoMapper.xml
  16. 10 0
      jeeplus-modules/jeeplus-consult/src/main/java/com/jeeplus/consultancy/approvalInfo/service/ConsultancyReimbursementInfoService.java
  17. 34 0
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/controller/CwReimbursementInfoController.java
  18. 3 0
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/mapper/CwReimbursementInfoMapper.java
  19. 66 0
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/mapper/xml/CwReimbursementInfoMapper.xml
  20. 9 0
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/service/CwReimbursementInfoService.java
  21. 11 0
      jeeplus-modules/jeeplus-public-modules/src/main/java/com/jeeplus/pubmodules/oss/controller/OssFileController.java
  22. 2 0
      jeeplus-modules/jeeplus-public-modules/src/main/java/com/jeeplus/pubmodules/oss/mapper/OssServiceMapper.java
  23. 26 0
      jeeplus-modules/jeeplus-public-modules/src/main/java/com/jeeplus/pubmodules/oss/mapper/xml/OssServiceMapper.xml
  24. 14 0
      jeeplus-modules/jeeplus-public-modules/src/main/java/com/jeeplus/pubmodules/oss/service/OssService.java

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

@@ -311,6 +311,40 @@ public class ReimbursementInfoController {
 
 
     /**
+     * 提交时根据发票号查询是否已经或正在报销
+     * @return
+     */
+    @ApiLog(value = "根据发票号查询是否已经或正在报销")
+    @GetMapping("getEffectiveDataByNumbers2")
+    @ApiOperation(value = "根据发票号查询是否已经或正在报销")
+    public Map<String,Object> getEffectiveDataByNumbers2(String invoiceNumber){
+        Map map = new HashMap();
+        map.put("success",true);
+        map.put("message","数电发票正常");
+        if(org.apache.commons.lang3.StringUtils.isNotBlank(invoiceNumber)){
+            String[] array = invoiceNumber.split(",");
+            // 将数组转换为 List
+            List<String> numberList = Arrays.asList(array);
+            Set<String> set = new HashSet<>();
+            if(numberList.size()>0){
+                List<String> repetitionMessageList = service.getEffectiveDataByNumbers2(numberList);
+                for (String vatTax : repetitionMessageList) {
+                    set.add(vatTax);
+                }
+            }
+            ArrayList<String> strings = Lists.newArrayList(set);
+            String result = String.join(",", strings);
+            if(result.length()>0){
+                map.put("success",false);
+                map.put("message","数电发票编号为:" + result + "已经发起或已完成报销,无法重复报销");
+            }
+
+        }
+        return map;
+    }
+
+
+    /**
      * 根据发票号查询是否已经或正在报销
      * @return
      */

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

@@ -88,7 +88,12 @@ public interface ReimbursementInfoMapper extends BaseMapper<ReimbursementInfo> {
      * @return
      */
     List<String> getEffectiveDataByNumbers(@Param("invoiceNumber") List<String> invoiceNumber, @Param("id") String id);
-
+    /**
+     * 提交时根据发票号查询是否已经或正在报销
+     * @param invoiceNumber
+     * @return
+     */
+    List<String> getEffectiveDataByNumbers2(@Param("invoiceNumber") List<String> invoiceNumber);
 
     Integer deleteByIdAndNumber(@Param("invoiceNumber") String invoiceNumber, @Param("id") String id);
 

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

@@ -457,6 +457,72 @@
 		</where>
 	</select>
 
+	<select id="getEffectiveDataByNumbers2" resultType="string">
+		SELECT 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
+		<where>
+			a.number in
+			<foreach collection="invoiceNumber" item="number" index="index" open="(" close=")" separator=",">
+				#{number}
+			</foreach>
+			and a.del_flag = 0
+			and ri.del_flag = 0
+			and (ri.type = '2' or ri.type = '5')
+		</where>
+		union all
+		select a.number as count from reimbursement_amount_info a
+		left join reimbursement_info ri on ri.id = a.info_id
+		<where>
+			a.number in
+			<foreach collection="invoiceNumber" item="number" index="index" open="(" close=")" separator=",">
+				#{number}
+			</foreach>
+			and a.del_flag = 0
+			and ri.del_flag = 0
+			and (ri.type = '2' or ri.type = '5')
+		</where>
+		union all
+		select a.number as count from cw_reimbursement_amount_info a
+		left join cw_reimbursement_info ri on ri.id = a.info_id
+		<where>
+			a.number in
+			<foreach collection="invoiceNumber" item="number" index="index" open="(" close=")" separator=",">
+				#{number}
+			</foreach>
+			and a.del_flag = 0
+			and ri.del_flag = 0
+			and (ri.type = '2' or ri.type = '5')
+		</where>
+		union all
+		select a.number as count from zs_reimbursement_amount_info a
+		left join zs_reimbursement_info ri on ri.id = a.info_id
+		<where>
+			a.number in
+			<foreach collection="invoiceNumber" item="number" index="index" open="(" close=")" separator=",">
+				#{number}
+			</foreach>
+			and a.del_flag = 0
+			and ri.del_flag = 0
+			and (ri.type = '2' or ri.type = '5')
+		</where>
+		union all
+		select a.number as count from consultancy_reimbursement_amount_info a
+		left join consultancy_reimbursement_info ri on ri.id = a.info_id
+		<where>
+			a.number in
+			<foreach collection="invoiceNumber" item="number" index="index" open="(" close=")" separator=",">
+				#{number}
+			</foreach>
+			and a.del_flag = 0
+			and ri.del_flag = 0
+			and (ri.type = '2' or ri.type = '5')
+		</where>
+		)AS result;
+
+	</select>
+
 	<select id="getInvoiceReimbursementAmountList" resultType="com.jeeplus.assess.reimbursement.reimbursementInfo.service.dto.ReimbursementAmountInfoDTO">
 		select
 		a.id,

+ 9 - 0
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/reimbursement/reimbursementInfo/service/ReimbursementInfoService.java

@@ -1552,6 +1552,15 @@ public class ReimbursementInfoService {
     }
 
     /**
+     * 提交时根据发票号查询是否已经或正在报销
+     * @param invoiceNumber
+     * @return
+     */
+    public List<String> getEffectiveDataByNumbers2(List<String> invoiceNumber){
+        return infoMapper.getEffectiveDataByNumbers2(invoiceNumber);
+    }
+
+    /**
      * 根据发票号查询是否已经或正在报销
      * @param invoiceNumber
      * @return

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

@@ -330,6 +330,39 @@ public class CcpmReimbursementInfoController {
 
 
     /**
+     * 提交时根据发票号查询是否已经或正在报销
+     * @return
+     */
+    @ApiLog(value = "根据发票号查询是否已经或正在报销")
+    @GetMapping("getEffectiveDataByNumbers2")
+    @ApiOperation(value = "根据发票号查询是否已经或正在报销")
+    public Map<String,Object> getEffectiveDataByNumbers2(String invoiceNumber){
+        Map map = new HashMap();
+        map.put("success",true);
+        map.put("message","数电发票正常");
+        if(org.apache.commons.lang3.StringUtils.isNotBlank(invoiceNumber)){
+            String[] array = invoiceNumber.split(",");
+            // 将数组转换为 List
+            List<String> numberList = Arrays.asList(array);
+            Set<String> set = new HashSet<>();
+            if(numberList.size()>0){
+                List<String> repetitionMessageList = service.getEffectiveDataByNumbers2(numberList);
+                for (String vatTax : repetitionMessageList) {
+                    set.add(vatTax);
+                }
+            }
+            ArrayList<String> strings = Lists.newArrayList(set);
+            String result = String.join(",", strings);
+            if(result.length()>0){
+                map.put("success",false);
+                map.put("message","数电发票编号为:" + result + "已经发起或已完成报销,无法重复报销");
+            }
+
+        }
+        return map;
+    }
+
+    /**
      * 根据发票号查询是否已经或正在报销
      * @return
      */

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

@@ -67,7 +67,12 @@ public interface CcpmReimbursementInfoMapper extends BaseMapper<CcpmReimbursemen
      * @return
      */
     List<String> getEffectiveDataByNumbers(@Param("invoiceNumber") List<String> invoiceNumber, @Param("id") String id);
-
+    /**
+     * 提交时根据发票号查询是否已经或正在报销
+     * @param invoiceNumber
+     * @return
+     */
+    List<String> getEffectiveDataByNumbers2(@Param("invoiceNumber") List<String> invoiceNumber);
     Integer deleteByIdAndNumber(@Param("invoiceNumber") String invoiceNumber, @Param("id") String id);
 
     @InterceptorIgnore(tenantLine = "true")

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

@@ -649,6 +649,72 @@
 		</where>
 	</select>
 
+	<select id="getEffectiveDataByNumbers2" resultType="string">
+		SELECT 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
+		<where>
+			a.number in
+			<foreach collection="invoiceNumber" item="number" index="index" open="(" close=")" separator=",">
+				#{number}
+			</foreach>
+			and a.del_flag = 0
+			and ri.del_flag = 0
+			and (ri.type = '2' or ri.type = '5')
+		</where>
+		union all
+		select a.number as count from reimbursement_amount_info a
+		left join reimbursement_info ri on ri.id = a.info_id
+		<where>
+			a.number in
+			<foreach collection="invoiceNumber" item="number" index="index" open="(" close=")" separator=",">
+				#{number}
+			</foreach>
+			and a.del_flag = 0
+			and ri.del_flag = 0
+			and (ri.type = '2' or ri.type = '5')
+		</where>
+		union all
+		select a.number as count from cw_reimbursement_amount_info a
+		left join cw_reimbursement_info ri on ri.id = a.info_id
+		<where>
+			a.number in
+			<foreach collection="invoiceNumber" item="number" index="index" open="(" close=")" separator=",">
+				#{number}
+			</foreach>
+			and a.del_flag = 0
+			and ri.del_flag = 0
+			and (ri.type = '2' or ri.type = '5')
+		</where>
+		union all
+		select a.number as count from zs_reimbursement_amount_info a
+		left join zs_reimbursement_info ri on ri.id = a.info_id
+		<where>
+			a.number in
+			<foreach collection="invoiceNumber" item="number" index="index" open="(" close=")" separator=",">
+				#{number}
+			</foreach>
+			and a.del_flag = 0
+			and ri.del_flag = 0
+			and (ri.type = '2' or ri.type = '5')
+		</where>
+		union all
+		select a.number as count from consultancy_reimbursement_amount_info a
+		left join consultancy_reimbursement_info ri on ri.id = a.info_id
+		<where>
+			a.number in
+			<foreach collection="invoiceNumber" item="number" index="index" open="(" close=")" separator=",">
+				#{number}
+			</foreach>
+			and a.del_flag = 0
+			and ri.del_flag = 0
+			and (ri.type = '2' or ri.type = '5')
+		</where>
+		)AS result;
+
+	</select>
+
 
 
 	<select id="getInvoiceReimbursementAmountList" resultType="com.jeeplus.ccpm.approvalInfo.service.dto.CcpmReimbursementAmountInfoDTO">

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

@@ -1081,6 +1081,14 @@ public class CcpmReimbursementInfoService {
     public List<String> getEffectiveDataByNumbers(List<String> invoiceNumber,String id){
         return infoMapper.getEffectiveDataByNumbers(invoiceNumber,id);
     }
+    /**
+     * 提交时根据发票号查询是否已经或正在报销
+     * @param invoiceNumber
+     * @return
+     */
+    public List<String> getEffectiveDataByNumbers2(List<String> invoiceNumber){
+        return infoMapper.getEffectiveDataByNumbers2(invoiceNumber);
+    }
 
     /**
      * 根据发票号查询是否已经或正在报销

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

@@ -328,6 +328,40 @@ public class ZsReimbursementInfoController {
 
 
     /**
+     * 提交时根据发票号查询是否已经或正在报销
+     * @return
+     */
+    @ApiLog(value = "根据发票号查询是否已经或正在报销")
+    @GetMapping("getEffectiveDataByNumbers2")
+    @ApiOperation(value = "根据发票号查询是否已经或正在报销")
+    public Map<String,Object> getEffectiveDataByNumbers2(String invoiceNumber){
+        Map map = new HashMap();
+        map.put("success",true);
+        map.put("message","数电发票正常");
+        if(org.apache.commons.lang3.StringUtils.isNotBlank(invoiceNumber)){
+            String[] array = invoiceNumber.split(",");
+            // 将数组转换为 List
+            List<String> numberList = Arrays.asList(array);
+            Set<String> set = new HashSet<>();
+            if(numberList.size()>0){
+                List<String> repetitionMessageList = service.getEffectiveDataByNumbers2(numberList);
+                for (String vatTax : repetitionMessageList) {
+                    set.add(vatTax);
+                }
+            }
+            ArrayList<String> strings = Lists.newArrayList(set);
+            String result = String.join(",", strings);
+            if(result.length()>0){
+                map.put("success",false);
+                map.put("message","数电发票编号为:" + result + "已经发起或已完成报销,无法重复报销");
+            }
+
+        }
+        return map;
+    }
+
+
+    /**
      * 根据发票号查询是否已经或正在报销
      * @return
      */

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

@@ -70,6 +70,13 @@ public interface ZsReimbursementInfoMapper extends BaseMapper<ZsReimbursementInf
      */
     List<String> getEffectiveDataByNumbers(@Param("invoiceNumber") List<String> invoiceNumber, @Param("id") String id);
 
+    /**
+     * 提交时根据发票号查询是否已经或正在报销
+     * @param invoiceNumber
+     * @return
+     */
+    List<String> getEffectiveDataByNumbers2(@Param("invoiceNumber") List<String> invoiceNumber);
+
     Integer deleteByIdAndNumber(@Param("invoiceNumber") String invoiceNumber, @Param("id") String id);
 
     @InterceptorIgnore(tenantLine = "true")

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

@@ -619,6 +619,72 @@
 		</where>
 	</select>
 
+	<select id="getEffectiveDataByNumbers2" resultType="string">
+		SELECT 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
+		<where>
+			a.number in
+			<foreach collection="invoiceNumber" item="number" index="index" open="(" close=")" separator=",">
+				#{number}
+			</foreach>
+			and a.del_flag = 0
+			and ri.del_flag = 0
+			and (ri.type = '2' or ri.type = '5')
+		</where>
+		union all
+		select a.number as count from reimbursement_amount_info a
+		left join reimbursement_info ri on ri.id = a.info_id
+		<where>
+			a.number in
+			<foreach collection="invoiceNumber" item="number" index="index" open="(" close=")" separator=",">
+				#{number}
+			</foreach>
+			and a.del_flag = 0
+			and ri.del_flag = 0
+			and (ri.type = '2' or ri.type = '5')
+		</where>
+		union all
+		select a.number as count from cw_reimbursement_amount_info a
+		left join cw_reimbursement_info ri on ri.id = a.info_id
+		<where>
+			a.number in
+			<foreach collection="invoiceNumber" item="number" index="index" open="(" close=")" separator=",">
+				#{number}
+			</foreach>
+			and a.del_flag = 0
+			and ri.del_flag = 0
+			and (ri.type = '2' or ri.type = '5')
+		</where>
+		union all
+		select a.number as count from zs_reimbursement_amount_info a
+		left join zs_reimbursement_info ri on ri.id = a.info_id
+		<where>
+			a.number in
+			<foreach collection="invoiceNumber" item="number" index="index" open="(" close=")" separator=",">
+				#{number}
+			</foreach>
+			and a.del_flag = 0
+			and ri.del_flag = 0
+			and (ri.type = '2' or ri.type = '5')
+		</where>
+		union all
+		select a.number as count from consultancy_reimbursement_amount_info a
+		left join consultancy_reimbursement_info ri on ri.id = a.info_id
+		<where>
+			a.number in
+			<foreach collection="invoiceNumber" item="number" index="index" open="(" close=")" separator=",">
+				#{number}
+			</foreach>
+			and a.del_flag = 0
+			and ri.del_flag = 0
+			and (ri.type = '2' or ri.type = '5')
+		</where>
+		)AS result;
+
+	</select>
+
 
 	<select id="getInvoiceReimbursementAmountList" resultType="com.jeeplus.centrecareful.approvalInfo.service.dto.ZsReimbursementAmountInfoDTO">
 		select

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

@@ -1112,6 +1112,15 @@ public class ZsReimbursementInfoService {
     }
 
     /**
+     * 提交时根据发票号查询是否已经或正在报销
+     * @param invoiceNumber
+     * @return
+     */
+    public List<String> getEffectiveDataByNumbers2(List<String> invoiceNumber){
+        return infoMapper.getEffectiveDataByNumbers2(invoiceNumber);
+    }
+
+    /**
      * 根据发票号查询是否已经或正在报销
      * @param invoiceNumber
      * @return

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

@@ -328,6 +328,38 @@ public class ConsultancyReimbursementInfoController {
 
 
     /**
+     * 提交时根据发票号查询是否已经或正在报销
+     * @return
+     */
+    @ApiLog(value = "根据发票号查询是否已经或正在报销")
+    @GetMapping("getEffectiveDataByNumbers2")
+    @ApiOperation(value = "根据发票号查询是否已经或正在报销")
+    public Map<String,Object> getEffectiveDataByNumbers2(String invoiceNumber){
+        Map map = new HashMap();
+        map.put("success",true);
+        map.put("message","数电发票正常");
+        if(org.apache.commons.lang3.StringUtils.isNotBlank(invoiceNumber)){
+            String[] array = invoiceNumber.split(",");
+            // 将数组转换为 List
+            List<String> numberList = Arrays.asList(array);
+            Set<String> set = new HashSet<>();
+            if(numberList.size()>0){
+                List<String> repetitionMessageList = service.getEffectiveDataByNumbers2(numberList);
+                for (String vatTax : repetitionMessageList) {
+                    set.add(vatTax);
+                }
+            }
+            ArrayList<String> strings = Lists.newArrayList(set);
+            String result = String.join(",", strings);
+            if(result.length()>0){
+                map.put("success",false);
+                map.put("message","数电发票编号为:" + result + "已经发起或已完成报销,无法重复报销");
+            }
+
+        }
+        return map;
+    }
+    /**
      * 根据发票号查询是否已经或正在报销
      * @return
      */

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

@@ -68,6 +68,13 @@ public interface ConsultancyReimbursementInfoMapper extends BaseMapper<Consultan
      */
     List<String> getEffectiveDataByNumbers(@Param("invoiceNumber") List<String> invoiceNumber, @Param("id") String id);
 
+    /**
+     * 提交时根据发票号查询是否已经或正在报销
+     * @param invoiceNumber
+     * @return
+     */
+    List<String> getEffectiveDataByNumbers2(@Param("invoiceNumber") List<String> invoiceNumber);
+
     Integer deleteByIdAndNumber(@Param("invoiceNumber") String invoiceNumber, @Param("id") String id);
 
     @InterceptorIgnore(tenantLine = "true")

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

@@ -631,6 +631,72 @@
 		</where>
 	</select>
 
+	<select id="getEffectiveDataByNumbers2" resultType="string">
+		SELECT 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
+		<where>
+			a.number in
+			<foreach collection="invoiceNumber" item="number" index="index" open="(" close=")" separator=",">
+				#{number}
+			</foreach>
+			and a.del_flag = 0
+			and ri.del_flag = 0
+			and (ri.type = '2' or ri.type = '5')
+		</where>
+		union all
+		select a.number as count from reimbursement_amount_info a
+		left join reimbursement_info ri on ri.id = a.info_id
+		<where>
+			a.number in
+			<foreach collection="invoiceNumber" item="number" index="index" open="(" close=")" separator=",">
+				#{number}
+			</foreach>
+			and a.del_flag = 0
+			and ri.del_flag = 0
+			and (ri.type = '2' or ri.type = '5')
+		</where>
+		union all
+		select a.number as count from cw_reimbursement_amount_info a
+		left join cw_reimbursement_info ri on ri.id = a.info_id
+		<where>
+			a.number in
+			<foreach collection="invoiceNumber" item="number" index="index" open="(" close=")" separator=",">
+				#{number}
+			</foreach>
+			and a.del_flag = 0
+			and ri.del_flag = 0
+			and (ri.type = '2' or ri.type = '5')
+		</where>
+		union all
+		select a.number as count from zs_reimbursement_amount_info a
+		left join zs_reimbursement_info ri on ri.id = a.info_id
+		<where>
+			a.number in
+			<foreach collection="invoiceNumber" item="number" index="index" open="(" close=")" separator=",">
+				#{number}
+			</foreach>
+			and a.del_flag = 0
+			and ri.del_flag = 0
+			and (ri.type = '2' or ri.type = '5')
+		</where>
+		union all
+		select a.number as count from consultancy_reimbursement_amount_info a
+		left join consultancy_reimbursement_info ri on ri.id = a.info_id
+		<where>
+			a.number in
+			<foreach collection="invoiceNumber" item="number" index="index" open="(" close=")" separator=",">
+				#{number}
+			</foreach>
+			and a.del_flag = 0
+			and ri.del_flag = 0
+			and (ri.type = '2' or ri.type = '5')
+		</where>
+		)AS result;
+
+	</select>
+
 
 
 	<select id="getInvoiceReimbursementAmountList" resultType="com.jeeplus.consultancy.approvalInfo.service.dto.ConsultancyReimbursementAmountInfoDTO">

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

@@ -1063,6 +1063,16 @@ public class ConsultancyReimbursementInfoService {
         return infoMapper.getEffectiveDataByNumbers(invoiceNumber,id);
     }
 
+
+    /**
+     * 提交时根据发票号查询是否已经或正在报销
+     * @param invoiceNumber
+     * @return
+     */
+    public List<String> getEffectiveDataByNumbers2(List<String> invoiceNumber){
+        return infoMapper.getEffectiveDataByNumbers2(invoiceNumber);
+    }
+
     /**
      * 根据发票号查询是否已经或正在报销
      * @param invoiceNumber

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

@@ -434,6 +434,40 @@ public class CwReimbursementInfoController {
         return map;
     }
 
+
+    /**
+     * 提交时根据发票号查询是否已经或正在报销
+     * @return
+     */
+    @ApiLog(value = "根据发票号查询是否已经或正在报销")
+    @GetMapping("getEffectiveDataByNumbers2")
+    @ApiOperation(value = "根据发票号查询是否已经或正在报销")
+    public Map<String,Object> getEffectiveDataByNumbers2(String invoiceNumber){
+        Map map = new HashMap();
+        map.put("success",true);
+        map.put("message","数电发票正常");
+        if(StringUtils.isNotBlank(invoiceNumber)){
+            String[] array = invoiceNumber.split(",");
+            // 将数组转换为 List
+            List<String> numberList = Arrays.asList(array);
+            Set<String> set = new HashSet<>();
+            if(numberList.size()>0){
+                List<String> repetitionMessageList = service.getEffectiveDataByNumbers2(numberList);
+                for (String vatTax : repetitionMessageList) {
+                    set.add(vatTax);
+                }
+            }
+            ArrayList<String> strings = Lists.newArrayList(set);
+            String result = String.join(",", strings);
+            if(result.length()>0){
+                map.put("success",false);
+                map.put("message","数电发票编号为:" + result + "已经发起或已完成报销,无法重复报销");
+            }
+
+        }
+        return map;
+    }
+
     /**
      * 根据发票号查询是否已经或正在报销
      * @return

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

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

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

@@ -596,6 +596,72 @@
 		</where>
 	</select>
 
+	<select id="getEffectiveDataByNumbers2" resultType="string">
+		SELECT 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
+		<where>
+			a.number in
+			<foreach collection="invoiceNumber" item="number" index="index" open="(" close=")" separator=",">
+				#{number}
+			</foreach>
+			and a.del_flag = 0
+			and ri.del_flag = 0
+			and (ri.type = '2' or ri.type = '5')
+		</where>
+		union all
+		select a.number as count from reimbursement_amount_info a
+		left join reimbursement_info ri on ri.id = a.info_id
+		<where>
+			a.number in
+			<foreach collection="invoiceNumber" item="number" index="index" open="(" close=")" separator=",">
+				#{number}
+			</foreach>
+			and a.del_flag = 0
+			and ri.del_flag = 0
+			and (ri.type = '2' or ri.type = '5')
+		</where>
+		union all
+		select a.number as count from cw_reimbursement_amount_info a
+		left join cw_reimbursement_info ri on ri.id = a.info_id
+		<where>
+			a.number in
+			<foreach collection="invoiceNumber" item="number" index="index" open="(" close=")" separator=",">
+				#{number}
+			</foreach>
+			and a.del_flag = 0
+			and ri.del_flag = 0
+			and (ri.type = '2' or ri.type = '5')
+		</where>
+		union all
+		select a.number as count from zs_reimbursement_amount_info a
+		left join zs_reimbursement_info ri on ri.id = a.info_id
+		<where>
+			a.number in
+			<foreach collection="invoiceNumber" item="number" index="index" open="(" close=")" separator=",">
+				#{number}
+			</foreach>
+			and a.del_flag = 0
+			and ri.del_flag = 0
+			and (ri.type = '2' or ri.type = '5')
+		</where>
+		union all
+		select a.number as count from consultancy_reimbursement_amount_info a
+		left join consultancy_reimbursement_info ri on ri.id = a.info_id
+		<where>
+			a.number in
+			<foreach collection="invoiceNumber" item="number" index="index" open="(" close=")" separator=",">
+				#{number}
+			</foreach>
+			and a.del_flag = 0
+			and ri.del_flag = 0
+			and (ri.type = '2' or ri.type = '5')
+		</where>
+		)AS result;
+
+	</select>
+
 	<delete id="deleteByIdAndNumber">
 		delete from cw_reimbursement_amount_info
 		<where>

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

@@ -1375,6 +1375,15 @@ public class CwReimbursementInfoService {
     }
 
     /**
+     * 提交时根据发票号查询是否已经或正在报销
+     * @param invoiceNumber
+     * @return
+     */
+    public List<String> getEffectiveDataByNumbers2(List<String> invoiceNumber){
+        return infoMapper.getEffectiveDataByNumbers2(invoiceNumber);
+    }
+
+    /**
      * 根据发票号查询是否已经或正在报销
      * @param invoiceNumber
      * @return

+ 11 - 0
jeeplus-modules/jeeplus-public-modules/src/main/java/com/jeeplus/pubmodules/oss/controller/OssFileController.java

@@ -679,4 +679,15 @@ public class OssFileController {
 
         return map;
     }
+
+    /**
+     * 根据发票号查询是否已经被报销
+     */
+    @ApiOperation("根据发票号查询是否已经被报销")
+    @GetMapping("/isUsedByInvoiceNumber")
+    public Boolean isUsedByInvoiceNumber(@RequestParam String invoiceNumber){
+        Boolean data = ossService.isUsedByInvoiceNumber(invoiceNumber);
+        return data;
+    }
+
 }

+ 2 - 0
jeeplus-modules/jeeplus-public-modules/src/main/java/com/jeeplus/pubmodules/oss/mapper/OssServiceMapper.java

@@ -70,4 +70,6 @@ public interface OssServiceMapper extends BaseMapper<WorkAttachment> {
      * @return
      */
     List<WorkAttachmentInfo> getElectronicEngineeringInvoiceAttachmentList(@Param("attachmentIdList")List<String> attachmentIdList, @Param("attachmentFlag")String attachmentFlag);
+
+    Integer isUsedByInvoiceNumber(@Param("invoiceNumber") String invoiceNumber);
 }

+ 26 - 0
jeeplus-modules/jeeplus-public-modules/src/main/java/com/jeeplus/pubmodules/oss/mapper/xml/OssServiceMapper.xml

@@ -139,4 +139,30 @@
             </if>
         </where>
     </select>
+
+
+    <select id="isUsedByInvoiceNumber" resultType="int">
+        select  MAX(counts)
+        from(select count(a.number) as counts from reimbursement_amount_info a
+        left join reimbursement_info ri on ri.id = a.info_id
+        where a.number  = #{invoiceNumber} and a.del_flag = 0 and ri.del_flag = 0  and (ri.type = '2' or ri.type = '5')
+        union all
+        select count(a.number) as counts from cw_reimbursement_amount_info a
+        left join cw_reimbursement_info ri on ri.id = a.info_id
+        where a.number  = #{invoiceNumber} and a.del_flag = 0 and ri.del_flag = 0  and (ri.type = '2' or ri.type = '5')
+        union all
+        select count(a.number) as counts from ccpm_reimbursement_amount_info a
+        left join ccpm_reimbursement_info ri on ri.id = a.info_id
+        where a.number  = #{invoiceNumber} and a.del_flag = 0 and ri.del_flag = 0  and (ri.type = '2' or ri.type = '5')
+        union all
+        select count(a.number) as counts from zs_reimbursement_amount_info a
+        left join zs_reimbursement_info ri on ri.id = a.info_id
+        where a.number  = #{invoiceNumber} and a.del_flag = 0 and ri.del_flag = 0  and (ri.type = '2' or ri.type = '5')
+        union all
+        select count(a.number) as counts from consultancy_reimbursement_amount_info a
+        left join consultancy_reimbursement_info ri on ri.id = a.info_id
+        where a.number  = #{invoiceNumber} and a.del_flag = 0 and ri.del_flag = 0  and (ri.type = '2' or ri.type = '5')
+        ) as result
+    </select>
+
 </mapper>

+ 14 - 0
jeeplus-modules/jeeplus-public-modules/src/main/java/com/jeeplus/pubmodules/oss/service/OssService.java

@@ -753,4 +753,18 @@ public class OssService extends ServiceImpl<OssServiceMapper, WorkAttachment> {
         }
         return map;
     }
+
+    /**
+     * 根据发票号查询该发票是否已经被报销
+     * @param invoiceNumber
+     * @return
+     */
+    public Boolean isUsedByInvoiceNumber(String invoiceNumber) {
+        Integer data = ossServiceMapper.isUsedByInvoiceNumber(invoiceNumber);
+        if (data != 0){
+            //被报销
+            return true;
+        }
+        return false;
+    }
 }