Jelajahi Sumber

会计项目查看优化

徐滕 4 minggu lalu
induk
melakukan
74cd4735f4

+ 14 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/invoice/controller/CwFinanceInvoiceController.java

@@ -376,6 +376,20 @@ public class CwFinanceInvoiceController {
     }
 
     /**
+     * 根据报告id查询报告关联发票
+     * @param reportId
+     * @param cwFinanceInvoiceDTO
+     * @return
+     * @throws Exception
+     */
+    @GetMapping("getByReportId")
+    @ApiOperation(value = "根据报告id查询报告关联发票")
+    public ResponseEntity<List<CwFinanceInvoiceDTO>> getByReportId(String reportId,CwFinanceInvoiceDTO cwFinanceInvoiceDTO) throws Exception {
+        List<CwFinanceInvoiceDTO> cwFinanceDTO = cwFinanceInvoiceService.getByReportId(reportId, cwFinanceInvoiceDTO);
+        return ResponseEntity.ok(cwFinanceDTO);
+    }
+
+    /**
      * 根据合同id查询项目关联发票
      * @param contractId
      * @param cwFinanceInvoiceDTO

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

@@ -42,6 +42,8 @@ public interface CwFinanceInvoiceMapper extends BaseMapper<CwFinanceInvoice> {
 
     public List<CwFinanceInvoiceDTO> getByIds(@Param(Constants.WRAPPER) QueryWrapper<CwFinanceInvoice> queryWrapper);
 
+    public List<String> getIdByReportId(@Param("id") String id);
+
     public List<String> getIdByContractId(@Param("id") String id);
 
     public List<String> getIdByClientId(@Param("id") String id);

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

@@ -458,6 +458,13 @@
         ${ew.customSqlSegment}
     </select>
 
+    <select id="getIdByReportId" resultType="string">
+        select
+            invoice_id
+        from cw_finance_invoice_base cw_fib
+        where cw_fib.del_flag = '0' and cw_fib.program_id = #{id} and cw_fib.type = '2'
+    </select>
+
     <select id="getIdByContractId" resultType="string">
         select
         a.invoice_id

+ 16 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/invoice/service/CwFinanceInvoiceService.java

@@ -1164,6 +1164,22 @@ public class CwFinanceInvoiceService extends ServiceImpl<CwFinanceInvoiceMapper,
         return new ArrayList<>();
     }
 
+    public List<CwFinanceInvoiceDTO> getByReportId(String reportId, CwFinanceInvoiceDTO cwFinanceInvoiceDTO) throws Exception {
+        if (StringUtils.isNotBlank(reportId)) {
+            List<String> idByReportId = cwFinanceInvoiceMapper.getIdByReportId(reportId);
+            if (CollectionUtil.isNotEmpty(idByReportId)) {
+                QueryWrapper<CwFinanceInvoice> queryWrapper = QueryWrapperGenerator.buildQueryCondition(CwFinanceInvoiceWrapper.INSTANCE.toEntity(cwFinanceInvoiceDTO), CwFinanceInvoice.class);
+                queryWrapper.in("fi.id", idByReportId);
+                queryWrapper.eq("fi.del_flag", "0");
+                queryWrapper.eq("fi.status", "5"); // 发票申请流程已通过
+                queryWrapper.orderByDesc("fi.create_time");
+                queryWrapper.eq("fi.invalid_status", "0"); // 未作废
+                return cwFinanceInvoiceMapper.getByIds(queryWrapper);
+            }
+        }
+        return new ArrayList<>();
+    }
+
     public List<CwFinanceInvoiceDTO> getByContractId(String contractId, CwFinanceInvoiceDTO cwFinanceInvoiceDTO) throws Exception {
         if (StringUtils.isNotBlank(contractId)) {
             List<String> idByContractId = cwFinanceInvoiceMapper.getIdByContractId(contractId);

+ 6 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/projectReport/domain/CwProjectReportData.java

@@ -203,6 +203,12 @@ public class CwProjectReportData extends BaseDTO {
     private String signatureContractId;
 
     /**
+     * 关联合同id(来自项目表)
+     */
+    @TableField(exist = false)
+    private String contractId;
+
+    /**
      * 流程通过所需参数DTO
      */
     private CommitParamDTO<CwProjectReportData> CommitParamDTO;

+ 1 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/projectReport/mapper/xml/CwProjectReportMapper.xml

@@ -459,6 +459,7 @@
             a.signature_annotator_status,
             b.project_number as projectNumber,
             b.project_name as projectName,
+            b.contract_id as contractId,
             c.name as departmentName,
             d.name as userName,
             a.create_time,