Bladeren bron

预开票

sangwenwei 1 jaar geleden
bovenliggende
commit
34560d826c

+ 3 - 4
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/projectRecords/service/CwProjectRecordsService.java

@@ -429,7 +429,6 @@ public class CwProjectRecordsService extends ServiceImpl<CwProjectRecordsMapper,
         QueryWrapper<CwProjectRecords> queryWrapper = QueryWrapperGenerator.buildQueryCondition ( CwProjectRecordsWrapper.INSTANCE.toEntity(cwProjectRecordsDTO), CwProjectRecords.class );
         queryWrapper.eq("a.del_flag","0");
         queryWrapper.eq("a.create_by_id",userDTO.getId());
-        queryWrapper.notIn("a.is_pre_invoice","1","2");
         if (ObjectUtil.isNotEmpty(cwProjectRecordsDTO)) {
             if (ArrayUtil.isNotEmpty(cwProjectRecordsDTO.getCreateDates())) {
                 queryWrapper.between("a.create_time", cwProjectRecordsDTO.getCreateDates()[0], cwProjectRecordsDTO.getCreateDates()[1]);
@@ -476,13 +475,13 @@ public class CwProjectRecordsService extends ServiceImpl<CwProjectRecordsMapper,
             List<CwProjectReportData> reportData = cwProjectReportMapper.getByProjectId(record.getId());
             if (CollectionUtils.isNotEmpty(reportData)) {
                 for (CwProjectReportData data : reportData) {
-                    if ("2".equals(data.getIsCompleteInvoice())) {
+                    if ("2".equals(data.getIsCompleteInvoice()) || "1".equals(data.getIsCompleteInvoice()) ) {
                         // 保存到待处理的proId中
                         projectIdsWithPendingReports.add(record.getId());
                         recordsToRemove.add(record.getId());
                         continue; // 如果一个报告已完成,就跳出循环,不再检查其他报告
-                    } else if (!"5".equals(data.getApplyStatus())) {//报告号申请未完成的项目
-                            // 如果找到一个状态不是 "5" 的报告,则将该记录的ID添加到集合中
+                    } else if ("0".equals(data.getApplyStatus()) || "1".equals(data.getApplyStatus()) || StringUtils.isBlank(data.getApplyStatus())) {//报告号申请未完成的项目
+                            // 如果找到还未发起的报告,则将该记录的ID添加到集合中
                             if (ObjectUtil.isNotEmpty(record)){
                                 projectIdsWithPendingReports.add(record.getId());
                             }

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

@@ -620,4 +620,6 @@ public class CwProjectReportData extends BaseDTO {
      */
     @TableField(exist = false)
     private String realCreateName;
+
+    private String isPreInvoice;
 }

+ 2 - 4
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/projectReport/mapper/xml/CwProjectReportMapper.xml

@@ -63,6 +63,7 @@
         b.project_name as projectName,
         b.project_master_id as projectMasterId,
         b.real_header as projectMasterId2,
+        b.is_pre_invoice,
         c.name as departmentName,
         d.name as userName,
         ifnull(cw_pa.audit_money,"0") as "auditFees",
@@ -278,8 +279,7 @@
         a.register_address,
         a.business_location,
         a.security_business,
-        (case when a.invoice_number is null then fi.no
-         else a.invoice_number end) as invoiceNumber,
+        a.invoice_number,
         a.is_complete_invoice,
         cw_prs1.proc_ins_id as proc_ins_id1,
         cw_prs1.process_definition_id as process_definition_id1,
@@ -338,8 +338,6 @@
         LEFT JOIN sys_user su1 on a.signature_annotator1 = su1.id
         LEFT JOIN sys_user su2 on a.signature_annotator2 = su2.id
         LEFT JOIN sys_user su3 on a.real_create = su3.id
-        left join cw_finance_invoice_base fib on a.id = fib.program_id
-        left join cw_finance_invoice fi on fib.invoice_id = fi.id
         where a.id = #{id}
     </select>
 

+ 17 - 1
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/projectReport/service/CwProjectReportService.java

@@ -19,6 +19,7 @@ import com.jeeplus.finance.invoice.mapper.CwFinanceInvoiceMapper;
 import com.jeeplus.finance.invoice.util.SignaturePostUtil;
 import com.jeeplus.finance.projectRecords.domain.CwProjectRecords;
 import com.jeeplus.finance.projectRecords.service.CwProjectRecordsService;
+import com.jeeplus.finance.projectRecords.service.dto.CwProjectRecordsDTO;
 import com.jeeplus.finance.projectReport.domain.*;
 import com.jeeplus.finance.projectReport.mapper.*;
 import com.jeeplus.finance.projectReport.service.dto.CwProjectReportDTO;
@@ -772,7 +773,6 @@ public class CwProjectReportService extends ServiceImpl<CwProjectReportMapper, C
     public IPage<CwProjectReportData> findList2(Page<CwProjectReportData> page, CwProjectReportData projectReportData) throws Exception{
         QueryWrapper<CwProjectReportData> queryWrapper = QueryWrapperGenerator.buildQueryCondition (projectReportData,CwProjectReportData.class);
         queryWrapper.eq("a.del_flag","0");
-        queryWrapper.isNull("a.invoice_number");
 //        queryWrapper.orderByDesc("a.create_date");
         //条件
         if (StringUtils.isNotEmpty(projectReportData.getProjectNumber())) {
@@ -883,6 +883,13 @@ public class CwProjectReportService extends ServiceImpl<CwProjectReportMapper, C
         }
         ArrayList<User> users = new ArrayList<>();
         List<UserDTO> finalAllUserInfo = allUserInfo;
+        //查找预开票未关联完成的项目
+        CwProjectRecordsDTO cwProjectRecordsDTO = new CwProjectRecordsDTO();
+        Page<CwProjectRecordsDTO> dtoPage = new Page<>();
+        IPage<CwProjectRecordsDTO> preInvoiceList = cwProjectRecordsService.findPreInvoiceList(dtoPage, cwProjectRecordsDTO);
+        //用来保存待处理的报告id
+        ArrayList<String> strings = new ArrayList<>();
+
         list.getRecords().forEach(li->{
             if (StringUtils.isBlank(li.getProjectMasterName())){
                 //根据项目经理1的id去查项目经理去名称
@@ -931,7 +938,16 @@ public class CwProjectReportService extends ServiceImpl<CwProjectReportMapper, C
                 li.setRepetitionReviewFlag(getRepetitionReviewFlag(li.getAuditTime()));
             }
 
+            if (ObjectUtil.isNotEmpty(preInvoiceList)){
+                preInvoiceList.getRecords().forEach(project->{
+                    if (project.getId().equals(li.getProjectId())){
+                        strings.add(li.getId());
+                    }
+                });
+            }
+
         });
+        list.getRecords().removeIf(record -> strings.contains(record.getId()));
         return list;
 
     }