Bladeren bron

合同详情、项目详情关联发票

lizhenhao 2 jaren geleden
bovenliggende
commit
2aa7f6fb7c

+ 28 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/invoice/controller/CwFinanceInvoiceController.java

@@ -251,4 +251,32 @@ public class CwFinanceInvoiceController {
         return cwFinanceInvoiceDetailDTOS;
     }
 
+    /**
+     * 根据项目id查询项目关联发票
+     * @param projectId
+     * @param cwFinanceInvoiceDTO
+     * @return
+     * @throws Exception
+     */
+    @GetMapping("getByIds")
+    @ApiOperation(value = "根据项目id查询项目关联发票")
+    public ResponseEntity<List<CwFinanceInvoiceDTO>> getByIds(String projectId,CwFinanceInvoiceDTO cwFinanceInvoiceDTO) throws Exception {
+        List<CwFinanceInvoiceDTO> cwFinanceDTO = cwFinanceInvoiceService.getByIds(projectId, cwFinanceInvoiceDTO);
+        return ResponseEntity.ok(cwFinanceDTO);
+    }
+
+    /**
+     * 根据合同id查询项目关联发票
+     * @param contractId
+     * @param cwFinanceInvoiceDTO
+     * @return
+     * @throws Exception
+     */
+    @GetMapping("getByContractId")
+    @ApiOperation(value = "根据合同id查询项目关联发票")
+    public ResponseEntity<List<CwFinanceInvoiceDTO>> getByContractId(String contractId,CwFinanceInvoiceDTO cwFinanceInvoiceDTO) throws Exception {
+        List<CwFinanceInvoiceDTO> cwFinanceDTO = cwFinanceInvoiceService.getByContractId(contractId, cwFinanceInvoiceDTO);
+        return ResponseEntity.ok(cwFinanceDTO);
+    }
+
 }

+ 8 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/invoice/mapper/CwFinanceInvoiceMapper.java

@@ -10,12 +10,20 @@ import com.jeeplus.test.cw.invoice.service.dto.CwFinanceInvoiceDTO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 @Mapper
 public interface CwFinanceInvoiceMapper extends BaseMapper<CwFinanceInvoice> {
 
     public IPage<CwFinanceInvoiceDTO> findList(Page<CwFinanceInvoiceDTO> page, @Param(Constants.WRAPPER) QueryWrapper<CwFinanceInvoice> queryWrapper);
 
     public CwFinanceInvoiceDTO queryById(@Param("id") String id);
+
+    public List<String> getIdByProjectId(@Param("id") String id);
+
+    public List<CwFinanceInvoiceDTO> getByIds(@Param(Constants.WRAPPER) QueryWrapper<CwFinanceInvoice> queryWrapper);
+
+    public List<String> getIdByContractId(@Param("id") String id);
 }
 
 

+ 34 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/invoice/mapper/xml/CwFinanceInvoiceMapper.xml

@@ -236,4 +236,38 @@
         from cw_finance_invoice fi
         where fi.del_flag = '0' and fi.id = ${id}
     </select>
+
+    <select id="getIdByProjectId" resultType="string">
+        select
+            invoice_id
+        from cw_finance_invoice_base cw_fib
+        where cw_fib.del_flag = '0' and cw_fib.program_id = #{id}
+    </select>
+
+    <select id="getByIds" resultMap="BaseResultMap">
+        select
+        <include refid="Base_Column_List"></include>,
+        su.name as operator
+        from cw_finance_invoice fi
+        left join sys_user su on fi.create_by = su.id and su.del_flag = '0'
+        ${ew.customSqlSegment}
+    </select>
+
+    <select id="getIdByContractId" resultType="string">
+        select
+        a.invoice_id
+        from
+        (select distinct
+            invoice_id
+        from cw_finance_invoice_base cw_fib
+        where cw_fib.del_flag = '0'
+        and cw_fib.program_id in (select cw_pr.id from cw_project_records cw_pr where cw_pr.contract_id = #{id} and cw_pr.del_flag = '0')
+        union
+        select distinct
+            invoice_id
+        from cw_finance_invoice_base fi
+        where program_id is null or program_id = ''
+        and contract_id = #{id}
+        AND fi.del_flag = '0') a
+    </select>
 </mapper>

+ 32 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/invoice/service/CwFinanceInvoiceService.java

@@ -485,4 +485,36 @@ public class CwFinanceInvoiceService extends ServiceImpl<CwFinanceInvoiceMapper,
         }
         return null;
     }
+
+    public List<CwFinanceInvoiceDTO> getByIds(String projectId,CwFinanceInvoiceDTO cwFinanceInvoiceDTO) throws Exception{
+        if(StringUtils.isNotBlank(projectId)){
+            List<String> idByProjectId = cwFinanceInvoiceMapper.getIdByProjectId(projectId);
+            if (CollectionUtil.isNotEmpty(idByProjectId)){
+                QueryWrapper<CwFinanceInvoice> queryWrapper = QueryWrapperGenerator.buildQueryCondition ( CwFinanceInvoiceWrapper.INSTANCE.toEntity(cwFinanceInvoiceDTO), CwFinanceInvoice.class );
+                queryWrapper.in("fi.id", idByProjectId);
+                queryWrapper.eq("fi.del_flag","0");
+                queryWrapper.eq("fi.status","5"); // 发票申请流程已通过
+                queryWrapper.orderByDesc("fi.create_date");
+                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);
+            if (CollectionUtil.isNotEmpty(idByContractId)){
+                QueryWrapper<CwFinanceInvoice> queryWrapper = QueryWrapperGenerator.buildQueryCondition ( CwFinanceInvoiceWrapper.INSTANCE.toEntity(cwFinanceInvoiceDTO), CwFinanceInvoice.class );
+                queryWrapper.in("fi.id", idByContractId);
+                queryWrapper.eq("fi.del_flag","0");
+                queryWrapper.eq("fi.status","5"); // 发票申请流程已通过
+                queryWrapper.orderByDesc("fi.create_date");
+                queryWrapper.eq("fi.invalid_status","0"); // 未作废
+                return cwFinanceInvoiceMapper.getByIds(queryWrapper);
+            }
+        }
+        return new ArrayList<>();
+    }
 }