Jelajahi Sumber

报告导入被服务单位校验 和 开票申请编号处理

huangguoce 1 hari lalu
induk
melakukan
c8ed37211c

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

@@ -1857,12 +1857,18 @@ public class CwFinanceInvoiceService extends ServiceImpl<CwFinanceInvoiceMapper,
                 //设置发起人id
                 newMap.put("userId", userDTO.getId());
                 String procInsId = SpringUtil.getBean(IFlowableApi.class).startForFen(newMap);
+                //发票申请编号生成
+                if (StringUtils.isBlank(item.getNo())) {
+                    String serialNum = SpringUtil.getBean(IWorkAttachmentApi.class).genSerialNum(userDTO.getCompanyDTO().getId(), CwFinanceInvoiceDTO.BIZ_CODE, TokenProvider.getCurrentToken());
+                    item.setNo(serialNum);
+                }
                 //修改状态
                 UpdateWrapper<CwFinanceInvoice> updateWrapper = new UpdateWrapper<>();
                 //保存流程id和修改状态
                 updateWrapper.eq("id", item.getId())
                         .set("status", "2")
                         .set("proc_ins_id", procInsId)
+                        .set("no", item.getNo())
                         .set("process_definition_id", procDefId);
                 update(updateWrapper);
             }

+ 28 - 15
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/projectReport/service/CwProjectReportService.java

@@ -5650,13 +5650,6 @@ public class CwProjectReportService extends ServiceImpl<CwProjectReportMapper, C
                     } else {
                         item.setNextAssignee(nextAssignee);
                     }
-                    //被服务单位处理
-                    String servedUnitName = item.getServedUnitName();
-                    CwWorkClientBaseDTO cwWorkClientBaseDTO = cwWorkClientBaseMapper.queryByName(servedUnitName);
-                    if (cwWorkClientBaseDTO == null) {
-                        result.add("第" + (actualIndex) + "条,报告名为" + item.getReportName() + "的数据存在以下问题:被服务单位未找到");
-                        continue;
-                    }
                     //现场负责人若没填写,则默认为上传人
                     if (StringUtils.isBlank(item.getRealCreate())) {
                         item.setRealCreate(userDTO.getId());
@@ -5683,8 +5676,8 @@ public class CwProjectReportService extends ServiceImpl<CwProjectReportMapper, C
                         String realHeader = item.getRealHeader();
 
                         if (
-                                !projectMasterId.equals(signatureAnnotator1)
-                                        && !projectMasterId.equals(signatureAnnotator2)
+                                !Objects.equals(projectMasterId, signatureAnnotator1)
+                                        && !Objects.equals(projectMasterId, signatureAnnotator2)
                                         && !Objects.equals(realHeader, signatureAnnotator1)
                                         && !Objects.equals(realHeader, signatureAnnotator2)
                         ) {
@@ -5716,15 +5709,36 @@ public class CwProjectReportService extends ServiceImpl<CwProjectReportMapper, C
                         String projectMasterId = project.getProjectMasterId();
                         String realHeader = project.getRealHeader();
                         if (
-                                !projectMasterId.equals(signatureAnnotator1)
-                                        && !projectMasterId.equals(signatureAnnotator2)
-                                        && !realHeader.equals(signatureAnnotator1)
-                                        && !realHeader.equals(signatureAnnotator2)
+                                        !Objects.equals(projectMasterId, signatureAnnotator1)
+                                        && !Objects.equals(projectMasterId, signatureAnnotator2)
+                                        && !Objects.equals(realHeader, signatureAnnotator1)
+                                        && !Objects.equals(realHeader, signatureAnnotator2)
                         ) {
                             result.add("第" + (actualIndex) + "条,报告名为" + item.getReportName() + "的数据存在以下问题:签字注师1和签字注师2至少有一个与项目的项目经理一致");
                             continue;
                         }
                     }
+                    //被服务单位处理
+                    String servedUnitName = item.getServedUnitName();
+                    String servedUnitId= "";
+                    List<CwWorkClientBase> cwWorkClientBases = cwWorkClientBaseMapper.queryByProjectId(item.getProjectId());
+                    if (cwWorkClientBases == null && cwWorkClientBases.isEmpty()) {
+                        result.add("第" + (actualIndex) + "条,报告名为" + item.getReportName() + "的数据存在以下问题:被服务单位未找到");
+                        continue;
+                    }else{
+                        boolean servedUnitFlag = false;
+                        for (CwWorkClientBase clientBase : cwWorkClientBases) {
+                            if (clientBase != null && clientBase.getName() != null && clientBase.getName().equals(servedUnitName)) {
+                                servedUnitId = clientBase.getId();
+                                servedUnitFlag = true;
+                                break;
+                            }
+                        }
+                        if(!servedUnitFlag){
+                            result.add("第" + (actualIndex) + "条,报告名为" + item.getReportName() + "的数据存在以下问题:被服务单位未找到");
+                            continue;
+                        }
+                    }
 
                     CwProjectReportData cwProjectReportData = new CwProjectReportData();
                     BeanUtils.copyProperties(item, cwProjectReportData);
@@ -5737,11 +5751,10 @@ public class CwProjectReportService extends ServiceImpl<CwProjectReportMapper, C
                     cwProjectReportData.setBusinessType(item.getBusinessType());
                     cwProjectReportData.setAuditBusinessType(item.getAuditBusinessType());
                     cwProjectReportData.setSecurityBusiness(item.getSecurityBusiness());
-                    cwProjectReportData.setServedUnitId(cwWorkClientBaseDTO.getId());
+                    cwProjectReportData.setServedUnitId(servedUnitId);
                     cwProjectReportData.setTakeNumberType(item.getTakeNumberType());
                     cwProjectReportData.setProjectId(item.getProjectId());
                     cwProjectReportData.setIsBatchImport("1");
-
                     //下一节点审核人
                     cwProjectReportData.setReviewBy(item.getNextAssignee());
                     //保存

+ 1 - 1
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/workClientInfo/mapper/CwWorkClientBaseMapper.java

@@ -26,7 +26,7 @@ import java.util.List;
 public interface CwWorkClientBaseMapper extends BaseMapper<CwWorkClientBase> {
     public IPage<CwWorkClientBaseDTO> findList(Page<CwWorkClientBaseDTO> page, @Param(Constants.WRAPPER) QueryWrapper<CwWorkClientBase> queryWrapper);
     public CwWorkClientBaseDTO queryById(@Param("id") String id);
-    public CwWorkClientBaseDTO queryByName(@Param("name") String name);
+    public List<CwWorkClientBase>  queryByProjectId(@Param("projectId") String projectId);
 
     public List<CwWorkClientTempDTO>  queryUpdateLogList (@Param(Constants.WRAPPER) QueryWrapper<CwWorkClientTemp> queryWrapper);
 

+ 4 - 17
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/workClientInfo/mapper/xml/CwWorkClientBaseMapper.xml

@@ -460,22 +460,9 @@
         ORDER BY update_time DESC
     </select>
 
-    <select id="queryByName" resultMap="BaseResultMap">
-        select
-        <include refid="Base_Column_List"></include>,
-        wcb.name as one_up_company_name,
-        su.name as user_name,
-        cw_wct.is_listed as is_listed,
-        cw_wct.ownership_type as ownership_type,
-        cw_wct.final_status_type as final_status_type,
-        cw_mlt.name as manage_level_type_name,
-        cw_ot.name as organization_type_name
-        from cw_work_client_base cw_wcb
-        left join cw_work_client_base wcb on cw_wcb.one_up_company = wcb.id and wcb.del_flag = '0'
-        left join sys_user su on su.id = cw_wcb.create_by_id
-        left join cw_work_client_type cw_wct on cw_wct.client_id = cw_wcb.id and cw_wct.del_flag = '0'
-        left join cw_manage_level_type cw_mlt on cw_mlt.id = cw_wcb.manage_level_type and cw_mlt.del_flag = '0'
-        left join cw_organization_type cw_ot on cw_ot.id = cw_wcb.organization_type and cw_ot.del_flag = '0'
-        where cw_wcb.del_flag = '0' and cw_wcb.name = #{name}
+    <select id="queryByProjectId" resultType="com.jeeplus.finance.workClientInfo.domain.CwWorkClientBase">
+        select cwcb.* from cw_work_client_base cwcb
+        left join cw_project_client_info cpci  on cwcb.id = cpci.client_id
+        where cpci.project_id = #{projectId}
     </select>
 </mapper>