浏览代码

Merge remote-tracking branch 'origin/master'

peixh 4 年之前
父节点
当前提交
d29a8656cb

+ 7 - 1
sc-service/src/main/java/com/huyi/service/base/entity/SysCompanySpare.java

@@ -15,7 +15,7 @@ import lombok.experimental.Accessors;
  * </p>
  *
  * @author songqg
- * @since 2021-08-26
+ * @since 2021-09-13
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -32,6 +32,12 @@ public class SysCompanySpare implements Serializable {
     private String scpId;
 
     /**
+     * 链属关系表id(scr_id)
+     */
+    @TableField("scp_rel_id")
+    private String scpRelId;
+
+    /**
      * 录入企业
      */
     @TableField("scp_company_id")

+ 7 - 64
sc-service/src/main/java/com/huyi/service/common/report/controller/ReportCreditController.java

@@ -457,7 +457,7 @@ public class ReportCreditController extends BaseController {
      * @return
      */
     @GetMapping("/getCoreCreditLine")
-    public AjaxResult getCoreCreditLine()
+    public AjaxResult getCoreCreditLine(String zfpType)
     {
         //获取当前企业的编号
         LoginUser userInfo = tokenService.getLoginUser();
@@ -465,10 +465,15 @@ public class ReportCreditController extends BaseController {
         Map<String,String> map = new HashMap<>();
         //获取企业
         String companyId = use.getCompanyId();
+        //默认反向
+        if(CommonUtil.isEmpty(zfpType)){
+            zfpType = "1";
+        }
         //获取企业类型
         String type = use.getCompanyType();
         if(COMPANYTYPE_CORE.equals(type)){
             //核心企业
+            map.put("zfpType",zfpType);
             map.put("coreCompanyId", companyId);
         }
         //融信额度
@@ -644,8 +649,7 @@ public class ReportCreditController extends BaseController {
                 //周
                 map.put("returnDate",date);
             }
-            map.put("applyStatus","01");
-            //报销所含项目
+            //还款金额
             String amt = reportCreditService.financeRecordMonth(map);
             returnData.add(amt);
         }
@@ -661,67 +665,6 @@ public class ReportCreditController extends BaseController {
     }
 
     /**
-     * 融资开立最近30天统计 -- 柱状图
-     * @return
-     */
-    @GetMapping("/financeRecord")
-    public AjaxResult financeRecord(){
-        //获取当前企业的编号
-        LoginUser userInfo = tokenService.getLoginUser();
-        SysUser use = userInfo.getSysUser();
-        //企业id
-        String companyId = use.getCompanyId();
-        //获取企业类型
-        String type = use.getCompanyType();
-        //默认当年
-        //月份集合
-        List<String> dateList = findDaysStr(DateUtils.getPastDate(30),DateUtils.dateTimeNow("yyyy-MM-dd"));
-        //数据集合
-        List<Map> dataList = new ArrayList<>();
-        //开立额度
-        List<String> data = new ArrayList<>();
-        for (String date : dateList) {
-            Map map = new HashMap();
-            if(COMPANYTYPE_CORE.equals(type)){
-                //核心企业
-                map.put("coreCompanyId", companyId);
-            }
-            map.put("date",date);
-            //报销所含项目
-            String amt = reportCreditService.financeRecordMonth(map);
-            data.add(amt);
-        }
-        //开立额度数据对象
-        Map dataMap = new HashMap();
-        dataMap.put("name","开立额度");
-        dataMap.put("data",data);
-        dataList.add(dataMap);
-        //还款额度
-        List<String> returnData = new ArrayList<>();
-        for (String date : dateList) {
-            Map map = new HashMap();
-            if(COMPANYTYPE_CORE.equals(type)){
-                //核心企业
-                map.put("coreCompanyId", companyId);
-            }
-            map.put("returnDate",date);
-            map.put("applyStatus","01");
-            //报销所含项目
-            String amt = reportCreditService.financeRecordMonth(map);
-            returnData.add(amt);
-        }
-        //还款额度数据对象
-        Map returnDataMap = new HashMap();
-        returnDataMap.put("name","还款额度");
-        returnDataMap.put("data",returnData);
-        dataList.add(returnDataMap);
-        Map result = new HashMap();
-        result.put("dataList",dataList);
-        result.put("dateList",dateList);
-        return AjaxResult.success(result);
-    }
-
-    /**
      * 获取月份集合
      * @return
      */

+ 119 - 18
sc-service/src/main/java/com/huyi/service/rel/controller/CompanyRelImportController.java

@@ -36,6 +36,7 @@ import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletResponse;
 import java.io.*;
+import java.math.BigDecimal;
 import java.net.URLEncoder;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -179,6 +180,14 @@ public class CompanyRelImportController extends BaseController
     @PostMapping("/importData")
     public AjaxResult importData(MultipartFile file) throws Exception
     {
+        //获取文件名
+        String originalFileName = file.getOriginalFilename();
+        String fileName = originalFileName.substring(originalFileName.lastIndexOf("."));
+        //只能导入xls或xlsx
+        if(!".xlsx".equals(fileName) && !".xls".equals(fileName)){
+            return AjaxResult.error("仅允许导入“xls”或“xlsx”格式文件!");
+        }
+
         //获取当前操作人员
         LoginUser userInfo = tokenService.getLoginUser();
         SysUser use = userInfo.getSysUser();
@@ -202,6 +211,9 @@ public class CompanyRelImportController extends BaseController
             com.eq(SysCompany::getScyName,name);
             com.eq(SysCompany::getScySocialCode,code);
             List<SysCompany> list = iSysCompanyService.findSysCompanys(com);
+            if(list.size() == 0){
+                return AjaxResult.error("不存在此发起企业,不可进行导入");
+            }
             hId = list.get(0).getScyId();
             fis.close();
         } catch (Exception e) {
@@ -291,6 +303,14 @@ public class CompanyRelImportController extends BaseController
             }
             //联系人
             if(CommonUtil.isNotEmpty(scrContarct)){
+                //联系人正则校验
+                String checkNickName = "^([\\u4e00-\\u9fa5]+|[a-zA-Z0-9]+)$";
+                Pattern regeNickName = Pattern.compile(checkNickName);
+                Matcher matcherNickName = regeNickName.matcher(scrContarct);
+                boolean isMatNickName = matcherNickName.matches();
+                if (!isMatNickName) {
+                    throw new Exception("联系人格式错误,不能含有特殊字符");
+                }
                 if(scrContarct.length() <= 30){
                 }else{
                     userNameList += scyName+",";
@@ -326,16 +346,24 @@ public class CompanyRelImportController extends BaseController
             //统一社会信用代码
             queryWrapper.eq(SysCompany::getScySocialCode,scySocialCode);
             //企业名称
-            queryWrapper.like(SysCompany::getScyName,scyName);
+            queryWrapper.eq(SysCompany::getScyName,scyName);
             //状态00
-            queryWrapper.ne(SysCompany::getScyStatus,DELETE_STATE);
+            queryWrapper.eq(SysCompany::getScyStatus,NORMAL_STATE);
             List<SysCompany> list = iSysCompanyService.findSysCompanys(queryWrapper);
             //主键
             String id = IdUtils.fastSimpleUUID();
+            String scpId = IdUtils.fastSimpleUUID();
 
             String scyId = "";
             if(list.size() > 0) {
                 scyId = list.get(0).getScyId();
+                if(scyId.equals(hId)){
+                    userNameList += scyName+",";
+                    failureNum++;
+                    failureMsg.append("<br/>第" + (i+1) + "行数据导入失败,不可同自己链属");
+                    log.error("新增" + scyName + "的链属失败,不可同自己链属");
+                    continue;
+                }
                 String finalScyId = scyId;
                 //判断两者是否已经链属
                 LambdaQueryWrapper<SysCompanyRel> wrapper = new LambdaQueryWrapper<>();
@@ -345,7 +373,11 @@ public class CompanyRelImportController extends BaseController
                 wrapper.and(j->j.eq(SysCompanyRel::getScrStatus,NORMAL_STATE).or().eq(SysCompanyRel::getScrStatus,CONFIRM_STATE));
                 List<SysCompanyRel> companyRelList = iSysCompanyRelService.findSysCompanyRels(wrapper);
                 if(companyRelList.size() > 0){
-                    throw new Exception("已经和此企业链属,不得重复链属");
+                    userNameList += scyName+",";
+                    failureNum++;
+                    failureMsg.append("<br/>第" + (i+1) + "行数据导入失败,已经和此企业链属,不得重复链属");
+                    log.error("新增" + scyName + "的链属失败,已经和此企业链属,不得重复链属");
+                    continue;
                 }
                 SysCompanyRel sysCompanyRel = new SysCompanyRel();
                 //主键
@@ -370,11 +402,75 @@ public class CompanyRelImportController extends BaseController
                 //创建时间
                 sysCompanyRel.setCreateTime(DateUtils.getNowDate());
                 relList.add(sysCompanyRel);
+                //新增链属信息表
+                SysCompanySpare sysCompanySpare = new SysCompanySpare();
+                //主键
+                sysCompanySpare.setScpId(scpId);
+                //录入企业
+                sysCompanySpare.setScpCompanyId(hId);
+                //企业名称
+                sysCompanySpare.setScpName(scyName);
+                //统一社会信用代码
+                sysCompanySpare.setScpSocialCode(scySocialCode);
+                //联系人
+                sysCompanySpare.setScpContarct(scrContarct);
+                //联系电话
+                sysCompanySpare.setScpContarctPhone(scrContarctPhone);
+                //企业类型 00:供应商
+                sysCompanySpare.setScpType(NORMAL_STATE);
+                //状态 01:已认证
+                sysCompanySpare.setScpStatus(CONFIRM_STATE);
+                //创建人
+                sysCompanySpare.setCreateBy(userId);
+                //创建时间
+                sysCompanySpare.setCreateTime(DateUtils.getNowDate());
+                spareList.add(sysCompanySpare);
             }else {
+                //查询企业名称是否已经存在
+                LambdaQueryWrapper<SysCompany> companyLambdaQueryWrapper = new LambdaQueryWrapper<>();
+                //企业名称
+                companyLambdaQueryWrapper.eq(SysCompany::getScyName,scyName);
+                //除删除状态
+                companyLambdaQueryWrapper.ne(SysCompany::getScyStatus,"99");
+                List<SysCompany> companyListist = iSysCompanyService.findSysCompanys(companyLambdaQueryWrapper);
+                if(companyListist.size() > 0){
+                    userNameList += scyName+",";
+                    failureNum++;
+                    failureMsg.append("<br/>第" + (i+1) + "行数据导入失败,企业名称已存在,不可关联此企业");
+                    log.error("新增" + scyName + "的链属失败,企业名称已存在,不可关联此企业");
+                    continue;
+                }
+                LambdaQueryWrapper<SysCompanySpare> spareLambdaQueryWrapper = new LambdaQueryWrapper<>();
+                spareLambdaQueryWrapper.eq(SysCompanySpare::getScpCompanyId,hId);
+                spareLambdaQueryWrapper.ne(SysCompanySpare::getScpStatus,"99");
+                spareLambdaQueryWrapper.and(f->f.eq(SysCompanySpare::getScpName, scyName).or().eq(SysCompanySpare::getScpSocialCode, scySocialCode));
+                List<SysCompanySpare> sysCompanySpareList = iSysCompanySpareService.findSysCompanySpares(spareLambdaQueryWrapper);
+                if(sysCompanySpareList.size() > 0){
+                    String invite = sysCompanySpareList.get(0).getScpInvite();
+                    BigDecimal bigDecimal = new BigDecimal(invite);
+                    BigDecimal tow = new BigDecimal("1");
+                    if(bigDecimal.compareTo(tow) > -1){
+                        userNameList += scyName+",";
+                        failureNum++;
+                        failureMsg.append("<br/>第" + (i+1) + "行数据导入失败,此企业已邀请");
+                        log.error("新增" + scyName + "的链属失败,此企业已邀请");
+                        continue;
+                    }
+                    String status = sysCompanySpareList.get(0).getScpStatus();
+                    if("01".equals(status)){
+                        userNameList += scyName+",";
+                        failureNum++;
+                        failureMsg.append("<br/>第" + (i+1) + "行数据导入失败,与此企业已是链属关系");
+                        log.error("新增" + scyName + "的链属失败,与此企业已是链属关系");
+                        continue;
+                    }
+                }
                 //新增链属公司信息
                 SysCompanySpare sysCompanySpare = new SysCompanySpare();
+                //主键
                 sysCompanySpare.setScpId(id);
-                sysCompanySpare.setScpCompanyId(companyId);
+                //录入企业
+                sysCompanySpare.setScpCompanyId(hId);
                 //企业名称
                 sysCompanySpare.setScpName(scyName);
                 //统一社会信用代码
@@ -411,26 +507,31 @@ public class CompanyRelImportController extends BaseController
             iSysCompanySpareService.createSysCompanySpare(spare);
             //邀请操作
             String id = spare.getScpId();
-            String scyName = spare.getScpName();
-            //获取字典的阿里短信模板
-            String templateCode = "SMS_222871823";
+            //联系人
+            String scpContarct = spare.getScpContarct();
+            //联系人手机号
+            String scpContarctPhone = spare.getScpContarctPhone();
+            if(CommonUtil.isNotEmpty(scpContarct) && CommonUtil.isNotEmpty(scpContarctPhone)) {
+                //获取字典的阿里短信模板
+                String templateCode = "SMS_222871823";
 //            List<SysDictData> state = RedisUtils.getDictCache("aliyun_message_code");
 //            for (SysDictData sysDictData :state){
 //                if("yaoqing".equals(sysDictData.getDictLabel())) {
 //                    templateCode = sysDictData.getDictValue();
 //                }
 //            }
-            //获取url
-            String url = configService.selectConfigByKey("zc_spare");
-            Map msgMap = new HashMap();
-            msgMap.put("companyName",scyName);
-            msgMap.put("url",url);
-            //发送短信
-//            iMessageUtilsService.sendMessageCode(scrContarctPhone, templateCode, msgMap,null);
-            //邀请次数赋值
-            SysCompanySpare spares = iSysCompanySpareService.getById(id);
-            spares.setScpInvite("1");
-            iSysCompanySpareService.updateById(spares);
+                //获取url
+                String url = configService.selectConfigByKey("zc_spare");
+                Map msgMap = new HashMap();
+                msgMap.put("companyName", scpContarct);
+                msgMap.put("url", url);
+                //发送短信
+//            iMessageUtilsService.sendMessageCode(scpContarctPhone, templateCode, msgMap,null);
+                //邀请次数赋值
+                SysCompanySpare spares = iSysCompanySpareService.getById(id);
+                spares.setScpInvite("1");
+                iSysCompanySpareService.updateById(spares);
+            }
         }
         successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条");
         return AjaxResult.success(successMsg.toString());

+ 124 - 35
sc-service/src/main/java/com/huyi/service/rel/controller/OwnCompanyRelController.java

@@ -2,10 +2,7 @@ package com.huyi.service.rel.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.huyi.service.base.entity.SysCompany;
-import com.huyi.service.base.entity.SysCompanyRel;
-import com.huyi.service.base.entity.SysCompanySpare;
-import com.huyi.service.base.entity.SysUserCompanyRel;
+import com.huyi.service.base.entity.*;
 import com.huyi.service.base.service.*;
 import com.huyi.service.rel.service.IOwnCompanyRelService;
 import com.keao.tianhu.starter.mybatis.plus.entity.QueryRequest;
@@ -66,6 +63,9 @@ public class OwnCompanyRelController extends BaseController
     @Autowired
     private TokenService tokenService;
 
+    @Autowired
+    private IZcFinanceInfService iZcFinanceInfService;
+
     /**
      * 企业正常状态
      */
@@ -97,8 +97,8 @@ public class OwnCompanyRelController extends BaseController
      */
     @PreAuthorize(hasPermi = "service:rel:list")
     @GetMapping("/list")
-    public R list(String scyId, String scySocialCode, String companyName,
-                  String scrType, String scrStatus, String scrContarct, QueryRequest request)
+    public R list(String scyId, String scySocialCode, String companyName, String scpStatus,
+                      String scrType, String scrStatus, String scpContarct, QueryRequest request)
     {
         //获取当前操作员
         LoginUser user = tokenService.getLoginUser();
@@ -117,6 +117,9 @@ public class OwnCompanyRelController extends BaseController
             if(CommonUtil.isNotEmpty(scySocialCode)) {
                 map.put("scySocialCode", scySocialCode);
             }
+            if (CommonUtil.isNotEmpty(scpStatus)) {
+                map.put("scpStatus", scpStatus);
+            }
             if(CommonUtil.isNotEmpty(scrType)) {
                 map.put("scrType", scrType);
             }
@@ -130,17 +133,17 @@ public class OwnCompanyRelController extends BaseController
             if (CommonUtil.isNotEmpty(companyName)) {
                 map.put("name", companyName);
             }
-            if (CommonUtil.isNotEmpty(scySocialCode)) {
-                map.put("code", scySocialCode);
+            if (CommonUtil.isNotEmpty(scrStatus)) {
+                map.put("scrStatus", scrStatus);
             }
-            if (CommonUtil.isNotEmpty(scrType)) {
-                map.put("type", scrType);
+            if (CommonUtil.isNotEmpty(scpStatus)) {
+                map.put("scpStatus", scpStatus);
             }
-            if (CommonUtil.isNotEmpty(scrStatus)) {
-                map.put("status", scrStatus);
+            if(CommonUtil.isNotEmpty(scpContarct)){
+                map.put("scpContarct",scpContarct);
             }
-            if(CommonUtil.isNotEmpty(scrContarct)){
-                map.put("scrContarct",scrContarct);
+            if(CommonUtil.isNotEmpty(scrType)){
+                map.put("scrType",scrType);
             }
         }
         IPage<Map> list = iOwnCompanyRelService.selectCompanyRelList(request,map);
@@ -327,14 +330,6 @@ public class OwnCompanyRelController extends BaseController
         if(CommonUtil.isEmpty(scyName)){
             throw new Exception("企业名称不能为空");
         }
-        //企业名称正则校验
-        String checkScyName = "^([\\u4e00-\\u9fa5]+|[a-zA-Z0-9]+)$";
-        Pattern regeScyName = Pattern.compile(checkScyName);
-        Matcher matcherScyName = regeScyName.matcher(scyName);
-        boolean isMatScyName = matcherScyName.matches();
-        if(!isMatScyName){
-            throw new Exception("企业名称格式错误,不能含有特殊字符");
-        }
         //统一社会信用代码
         String scySocialCode = CommonUtil.objToString(map.get("scySocialCode"));
         if(CommonUtil.isEmpty(scySocialCode)){
@@ -390,13 +385,14 @@ public class OwnCompanyRelController extends BaseController
         }
         //创建主键
         String scrId = IdUtils.fastSimpleUUID();
+        String scpId = IdUtils.fastSimpleUUID();
         //链属企业Id
         String scyId = "";
         //查询有无企业信息
         LambdaQueryWrapper<SysCompany> companyLambdaQueryWrapper = new LambdaQueryWrapper<>();
         companyLambdaQueryWrapper.eq(SysCompany::getScyName,scyName);
         companyLambdaQueryWrapper.eq(SysCompany::getScySocialCode,scySocialCode);
-        companyLambdaQueryWrapper.eq(SysCompany::getScyStatus,"00");
+        companyLambdaQueryWrapper.eq(SysCompany::getScyStatus,NORMAL_STATE);
         List<SysCompany> companyList = iSysCompanyService.findSysCompanys(companyLambdaQueryWrapper);
         //获取企业Id
         if(companyList.size() > 0){
@@ -458,6 +454,34 @@ public class OwnCompanyRelController extends BaseController
             //创建时间
             sysCompanyRel.setCreateTime(DateUtils.getNowDate());
             iSysCompanyRelService.createSysCompanyRel(sysCompanyRel);
+            //增加链属企业信息表
+            SysCompanySpare sysCompanySpare = new SysCompanySpare();
+            //主键
+            sysCompanySpare.setScpId(scpId);
+            //企业名称
+            sysCompanySpare.setScpName(scyName);
+            //录入企业
+            sysCompanySpare.setScpCompanyId(companyId);
+            //链属关系表id
+            sysCompanySpare.setScpRelId(scrId);
+            //企业信用代码
+            sysCompanySpare.setScpSocialCode(scySocialCode);
+            //联系人
+            sysCompanySpare.setScpContarct(scrContarct);
+            //联系电话
+            sysCompanySpare.setScpContarctPhone(scrContarctPhone);
+            //邮箱
+            sysCompanySpare.setScpContarctEmail(scrContarctEmail);
+            //状态(01:已认证)
+            sysCompanySpare.setScpStatus(CONFIRM_STATE);
+            //链属类型
+            sysCompanySpare.setScpType(scrReceiveType);
+            //创建人
+            sysCompanySpare.setCreateBy(userId);
+            //创建时间
+            sysCompanySpare.setCreateTime(DateUtils.getNowDate());
+            //新增
+            iSysCompanySpareService.createSysCompanySpare(sysCompanySpare);
             //查询链属企业绑定用户
             LambdaQueryWrapper<SysUserCompanyRel> lambdaQueryWrapper = new LambdaQueryWrapper<>();
             lambdaQueryWrapper.eq(SysUserCompanyRel::getSucrCompanyId,scyId);
@@ -482,7 +506,7 @@ public class OwnCompanyRelController extends BaseController
             queryWrapper.ne(SysCompany::getScyStatus,"99");
             List<SysCompany> list = iSysCompanyService.findSysCompanys(queryWrapper);
             if(list.size() > 0){
-                throw new Exception("企业名称已存在,不可关联企业");
+                throw new Exception("企业名称已存在,不可关联企业");
             }
             LambdaQueryWrapper<SysCompanySpare> spareLambdaQueryWrapper = new LambdaQueryWrapper<>();
             spareLambdaQueryWrapper.eq(SysCompanySpare::getScpCompanyId,companyId);
@@ -526,23 +550,25 @@ public class OwnCompanyRelController extends BaseController
             iSysCompanySpareService.createSysCompanySpare(sysCompanySpare);
             //获取字典的阿里短信模板
             String templateCode = "SMS_222871823";
+            if(CommonUtil.isNotEmpty(scrContarct) && CommonUtil.isNotEmpty(scrContarctPhone)) {
 //            List<SysDictData> state = RedisUtils.getDictCache("aliyun_message_code");
 //            for (SysDictData sysDictData :state){
 //                if("yaoqing".equals(sysDictData.getDictLabel())) {
 //                    templateCode = sysDictData.getDictValue();
 //                }
 //            }
-            //获取url
-            String url = configService.selectConfigByKey("zc_spare");
-            Map msgMap = new HashMap();
-            msgMap.put("companyName",scyName);
-            msgMap.put("url",url);
-            //发送短信
+                //获取url
+                String url = configService.selectConfigByKey("zc_spare");
+                Map msgMap = new HashMap();
+                msgMap.put("companyName", scyName);
+                msgMap.put("url", url);
+                //发送短信
 //            iMessageUtilsService.sendMessageCode(scrContarctPhone, templateCode, msgMap,null);
-            //邀请次数赋值
-            SysCompanySpare spare = iSysCompanySpareService.getById(scrId);
-            spare.setScpInvite("1");
-            iSysCompanySpareService.updateById(spare);
+                //邀请次数赋值
+                SysCompanySpare spare = iSysCompanySpareService.getById(scrId);
+                spare.setScpInvite("1");
+                iSysCompanySpareService.updateById(spare);
+            }
         }
         return R.ok();
     }
@@ -582,13 +608,76 @@ public class OwnCompanyRelController extends BaseController
     @PreAuthorize(hasPermi = "service:rel:delete")
     @Log(title = "删除链属公司", businessType = BusinessType.DELETE)
     @DeleteMapping("/{launchScrId}")
-    public R remove(@PathVariable String launchScrId)
+    public R remove(@PathVariable String launchScrId) throws Exception
     {
+        SysCompanyRel rel = iSysCompanyRelService.getById(launchScrId);
+        //发起者
+        String launchCompanyId = rel.getScrLaunchCompanyId();
+        //接收方
+        String receiveCompanyId = rel.getScrReceiveCompanyId();
+        //查询发起方企业类型
+        SysCompany sysCompany = iSysCompanyService.getById(launchCompanyId);
+        String launchType = sysCompany.getScyType();
+        //查询接收方企业类型
+        SysCompany company = iSysCompanyService.getById(receiveCompanyId);
+        String receiveType = company.getScyType();
+        //如果发起方为供应商,接收方为核心企业
+        if("00".equals(launchType) && "01".equals(receiveType)){
+            //查询企业是否含有正在存在的业务(第二种情况(发起者为核心企业,接收者为供应商))
+            LambdaQueryWrapper<ZcFinanceInf> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+            lambdaQueryWrapper.eq(ZcFinanceInf::getZfiSupplierId, launchCompanyId);
+            lambdaQueryWrapper.eq(ZcFinanceInf::getZfiCoreId,receiveCompanyId);
+            lambdaQueryWrapper.ne(ZcFinanceInf::getZfiStatus,"07");
+            List<ZcFinanceInf> financeInfList = iZcFinanceInfService.findZcFinanceInfs(lambdaQueryWrapper);
+            if(financeInfList.size() > 0){
+                throw new Exception("存在进行中的业务,不可解绑");
+            }
+            //查询正向保理融信业务
+            Map map = new HashMap();
+            map.put("supplierId",launchCompanyId);
+            map.put("coreId",receiveCompanyId);
+            List<Map> list = iOwnCompanyRelService.financeRelList(map);
+            if(list.size() > 0){
+                throw new Exception("存在进行中的业务,不可解绑");
+            }
+        //如果发起方为核心企业,接收方为供应商
+        }else if("00".equals(receiveType) && "01".equals(launchType)){
+            //查询企业是否含有正在存在的业务(第二种情况(发起者为核心企业,接收者为供应商))
+            LambdaQueryWrapper<ZcFinanceInf> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+            lambdaQueryWrapper.eq(ZcFinanceInf::getZfiSupplierId, receiveCompanyId);
+            lambdaQueryWrapper.eq(ZcFinanceInf::getZfiCoreId,launchCompanyId);
+            lambdaQueryWrapper.ne(ZcFinanceInf::getZfiStatus,"07");
+            List<ZcFinanceInf> financeInfList = iZcFinanceInfService.findZcFinanceInfs(lambdaQueryWrapper);
+            if(financeInfList.size() > 0){
+                throw new Exception("存在进行中的业务,不可解绑");
+            }
+            //查询正向保理融信业务
+            Map map = new HashMap();
+            map.put("supplierId",receiveCompanyId);
+            map.put("coreId",launchCompanyId);
+            List<Map> list = iOwnCompanyRelService.financeRelList(map);
+            if(list.size() > 0){
+                throw new Exception("存在进行中的业务,不可解绑");
+            }
+        }
         SysCompanyRel sysCompanyRel = new SysCompanyRel();
         //主键
         sysCompanyRel.setScrId(launchScrId);
         //状态99
         sysCompanyRel.setScrStatus(DELETE_STATE);
+        //链属信息表
+        LambdaQueryWrapper<SysCompanySpare> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(SysCompanySpare::getScpRelId,launchScrId);
+        List<SysCompanySpare> spareList = iSysCompanySpareService.findSysCompanySpares(queryWrapper);
+        if(spareList.size() > 0) {
+            String scpId = spareList.get(0).getScpId();
+            SysCompanySpare sysCompanySpare = new SysCompanySpare();
+            //链属表id
+            sysCompanySpare.setScpId(scpId);
+            //删除状态
+            sysCompanySpare.setScpStatus(DELETE_STATE);
+            iSysCompanySpareService.updateById(sysCompanySpare);
+        }
         iSysCompanyRelService.updateById(sysCompanyRel);
         return R.ok();
     }

+ 7 - 0
sc-service/src/main/java/com/huyi/service/rel/mapper/OwnCompanyRelMapper.java

@@ -34,4 +34,11 @@ public interface OwnCompanyRelMapper extends BaseMapper<SysCompanyRel> {
      * @return
      */
     public IPage<Map> adminSpareList(Page<Map> page, @Param("paramMap")Map map);
+
+    /**
+     * 查询链属正向保理业务数据
+     * @param map
+     * @return
+     */
+    public List<Map> financeRelList(@Param("paramMap")Map map);
 }

+ 8 - 0
sc-service/src/main/java/com/huyi/service/rel/service/IOwnCompanyRelService.java

@@ -33,4 +33,12 @@ public interface IOwnCompanyRelService extends IService<SysCompanyRel> {
      * @return
      */
     public IPage<Map> adminSpareList(QueryRequest request, Map map);
+
+    /**
+     * 查询链属正向保理业务数据
+     * @param map
+     * @return
+     */
+    public List<Map> financeRelList(Map map);
+
 }

+ 5 - 0
sc-service/src/main/java/com/huyi/service/rel/service/impl/OwnCompanyRelServiceImpl.java

@@ -41,4 +41,9 @@ public class OwnCompanyRelServiceImpl extends ServiceImpl<OwnCompanyRelMapper, S
         Page page = new Page<>(request.getPageNum(), request.getPageSize());
         return ownCompanyRelMapper.adminSpareList(page,map);
     }
+
+    @Override
+    public List<Map> financeRelList(Map map) {
+        return ownCompanyRelMapper.financeRelList(map);
+    }
 }

+ 1 - 0
sc-service/src/main/resources/mapper/base/SysCompanySpareMapper.xml

@@ -5,6 +5,7 @@
     <!-- 通用查询映射结果 -->
     <resultMap id="BaseResultMap" type="com.huyi.service.base.entity.SysCompanySpare">
         <id column="scp_id" property="scpId" />
+        <result column="scp_rel_id" property="scpRelId" />
         <result column="scp_company_id" property="scpCompanyId" />
         <result column="scp_name" property="scpName" />
         <result column="scp_social_code" property="scpSocialCode" />

+ 8 - 15
sc-service/src/main/resources/mapper/common/ReportCreditMapper.xml

@@ -318,33 +318,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <select id="financeRecordMonth" parameterType="map" resultType="String">
         SELECT
         CAST(
-        ROUND(IFNULL(SUM(zfr_loan_amount), 0), 2) AS CHAR
+        ROUND(IFNULL(SUM(zfi_amount), 0), 2) AS CHAR
         ) 'allAmount'
-        FROM
-        zc_finance_record
-        LEFT JOIN zc_finance_inf
-        ON zfi_id = zfr_finance_id
+        FROM zc_finance_inf
         LEFT JOIN zc_finance_product
         ON zfp_id = zfi_product_id
-        WHERE zfr_approve_stt = '01'
-        AND zfr_status IN ('01','03')
+        WHERE zfi_status IN ('02','04','05','07')
         <if test="coreCompanyId != null  and coreCompanyId != ''">
             AND zfi_core_id = #{coreCompanyId}
         </if>
-        <if test="status != null  and status != ''">
-            AND zfr_status = #{status}
-        </if>
-        <if test="applyStatus != null  and applyStatus != ''">
-            AND zfr_apply_status = #{applyStatus}
-        </if>
         <if test="month != null  and month != ''">
             AND DATE_FORMAT(zfi_sign_date, '%Y-%m') = #{month}
         </if>
         <if test="returnMonth != null  and returnMonth != ''">
-            AND DATE_FORMAT(zfr_pay_date, '%Y-%m') = #{returnMonth}
+            AND DATE_FORMAT(zfi_expire_date, '%Y-%m') = #{returnMonth}
         </if>
         <if test="returnDate != null  and returnDate != ''">
-            AND DATE_FORMAT(zfr_pay_date, '%Y-%m-%d') = #{returnDate}
+            AND DATE_FORMAT(zfi_expire_date, '%Y-%m-%d') = #{returnDate}
         </if>
         <if test="date != null  and date != ''">
             AND DATE_FORMAT(zfi_sign_date, '%Y-%m-%d') = #{date}
@@ -355,6 +345,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <if test="productId != null  and productId != ''">
             AND zfi_product_id = #{productId}
         </if>
+        <if test="zfpType != null  and zfpType != ''">
+            AND zfp_type = #{zfpType}
+        </if>
     </select>
 
     <!--核心企业额度比例-->

+ 2 - 2
sc-service/src/main/resources/mapper/credit/OwnCreditMapper.xml

@@ -177,7 +177,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             INNER JOIN sys_company
             ON scr_launch_type = '01'
             AND scr_receive_company_id = scy_id
-            WHERE  1=1
+            WHERE  scr_status = '01'
             <if test="paramMap.companyId != null  and paramMap.companyId != ''">
                 AND scr_launch_company_id = #{paramMap.companyId}
             </if>
@@ -197,7 +197,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             INNER JOIN sys_company
             ON scr_receive_type = '01'
             AND scr_launch_company_id = scy_id
-            WHERE  1=1
+            WHERE  scr_status = '01'
             <if test="paramMap.companyId != null  and paramMap.companyId != ''">
                 AND scr_receive_company_id = #{paramMap.companyId}
             </if>

+ 140 - 21
sc-service/src/main/resources/mapper/rel/OwnCompanyRelMapper.xml

@@ -24,49 +24,149 @@
             p.scy_name		        'receiveScyName',
             p.scy_type		        'receiveScyType',
             p.scy_legal		        'receiveScyLegal',
-            p.scy_phone		        'receiveScyPhone'
-        FROM sys_company_rel r
+            p.scy_phone		        'receiveScyPhone',
+            e.scp_id                'scpId',
+            e.scp_name			    'scpName',
+            e.scp_rel_id            'scpRelId',
+            e.scp_company_id        'scpCompanyId',
+            e.scp_social_code		'scpSocialCode',
+            e.scp_contarct 		    'scpContarct',
+            e.scp_contarct_phone	'scpContarctPhone',
+            e.scp_contarct_email	'scpContarctEmail',
+            e.scp_type			    'scpType',
+            e.scp_remarks			'scpRemarks',
+            e.scp_status			'scpStatus',
+            e.scp_invite			'scpInvite',
+            n.scy_name              'spareScyName'
+        FROM sys_company_spare e
+        LEFT JOIN sys_company_rel r ON r.scr_id = e.scp_rel_id
         LEFT JOIN sys_company s ON r.scr_launch_company_id = s.scy_id
         LEFT JOIN sys_company p ON r.scr_receive_company_id = p.scy_id
+        LEFT JOIN sys_company n ON e.scp_company_id = n.scy_id
         WHERE 1=1
-            AND r.scr_status != '99'
-        <if test="paramMap.companyId != null and paramMap.companyId != '' ">
-            AND (r.scr_launch_company_id = #{paramMap.companyId} OR r.scr_receive_company_id = #{paramMap.companyId})
+        AND e.scp_status != '99'
+        <if test="paramMap.companyId != null and paramMap.companyId != ''">
+            AND (
+            ((e.scp_rel_id is null or e.scp_rel_id = '') AND e.scp_company_id = #{paramMap.companyId})
+            or
+            ((e.scp_rel_id is not null and e.scp_rel_id != '') and (r.scr_launch_company_id = #{paramMap.companyId} OR r.scr_receive_company_id = #{paramMap.companyId}))
+            )
         </if>
+        --      用户用查询条件
         <if test="paramMap.companyName != null and paramMap.companyName != '' ">
-            AND (s.scy_name LIKE CONCAT('%', #{paramMap.companyName}, '%') AND r.scr_receive_company_id = #{paramMap.companyId})
-            OR (p.scy_name LIKE CONCAT('%', #{paramMap.companyName}, '%') AND r.scr_launch_company_id = #{paramMap.companyId})
+            AND (
+            ((e.scp_rel_id is null or e.scp_rel_id = '') AND e.scp_name LIKE CONCAT('%', #{paramMap.companyName}, '%'))
+            or
+            ((e.scp_rel_id is not null and e.scp_rel_id != '') and ((s.scy_name LIKE CONCAT('%', #{paramMap.companyName}, '%') AND r.scr_receive_company_id = #{paramMap.companyId})
+            OR (p.scy_name LIKE CONCAT('%', #{paramMap.companyName}, '%') AND r.scr_launch_company_id = #{paramMap.companyId})))
+            )
         </if>
         <if test="paramMap.scySocialCode != null and paramMap.scySocialCode != '' ">
-            AND (s.scy_social_code LIKE CONCAT('%', #{paramMap.scySocialCode}, '%') AND r.scr_receive_company_id = #{paramMap.companyId})
-            OR (p.scy_social_code LIKE CONCAT('%', #{paramMap.scySocialCode}, '%') AND r.scr_launch_company_id = #{paramMap.companyId})
+            AND (
+            ((e.scp_rel_id is null or e.scp_rel_id = '') AND e.scp_social_code LIKE CONCAT('%', #{paramMap.scySocialCode}, '%'))
+            or
+            ((e.scp_rel_id is not null and e.scp_rel_id != '') and ((s.scy_social_code LIKE CONCAT('%', #{paramMap.scySocialCode}, '%') AND r.scr_receive_company_id = #{paramMap.companyId})
+            OR (p.scy_social_code LIKE CONCAT('%', #{paramMap.scySocialCode}, '%') AND r.scr_launch_company_id = #{paramMap.companyId})))
+            )
         </if>
         <if test="paramMap.scrType != null and paramMap.scrType != '' and paramMap.scrType == '00' ">
-            AND ((r.scr_launch_company_id = #{paramMap.companyId} AND r.scr_launch_type = '01')
-            OR (r.scr_receive_company_id = #{paramMap.companyId} AND r.scr_receive_type = '01'))
+            AND (
+            ((e.scp_rel_id is null or e.scp_rel_id = '') AND e.scp_type = #{paramMap.scrType})
+            or
+            ((e.scp_rel_id is not null and e.scp_rel_id != '') and ((r.scr_launch_company_id = #{paramMap.companyId} AND r.scr_launch_type = '01')
+            OR (r.scr_receive_company_id = #{paramMap.companyId} AND r.scr_receive_type = '01')))
+            )
         </if>
         <if test="paramMap.scrType != null and paramMap.scrType != '' and paramMap.scrType == '01' ">
-            AND ((r.scr_launch_company_id = #{paramMap.companyId} AND r.scr_launch_type = '00')
-            OR (r.scr_receive_company_id = #{paramMap.companyId} AND r.scr_receive_type = '00'))
+            AND (
+            ((e.scp_rel_id is null or e.scp_rel_id = '') AND e.scp_type = #{paramMap.scrType})
+            or
+            ((e.scp_rel_id is not null and e.scp_rel_id != '') and ((r.scr_launch_company_id = #{paramMap.companyId} AND r.scr_launch_type = '00')
+            OR (r.scr_receive_company_id = #{paramMap.companyId} AND r.scr_receive_type = '00')))
+            )
         </if>
         <if test="paramMap.scrStatus != null and paramMap.scrStatus != '' ">
             AND r.scr_status = #{paramMap.scrStatus}
         </if>
-        <if test="paramMap.name != null and paramMap.name != '' ">
-            AND (s.scy_name LIKE CONCAT('%', #{paramMap.name}, '%')
-            OR p.scy_name LIKE CONCAT('%', #{paramMap.name}, '%'))
+        <if test="paramMap.scpStatus != null and paramMap.scpStatus != '' ">
+            AND e.scp_status = #{paramMap.scpStatus}
         </if>
-        <if test="paramMap.scrContarct != null and paramMap.scrContarct != '' ">
-            AND r.scr_contarct LIKE CONCAT('%', #{paramMap.scrContarct}, '%')
+        --      平台用查询
+        <if test="paramMap.name != null and paramMap.name != ''">
+            AND (
+                ((e.scp_rel_id is null or e.scp_rel_id = '') AND (n.scy_name like CONCAT('%', #{paramMap.name}, '%') or e.scp_name like CONCAT('%', #{paramMap.name}, '%')))
+                or
+                ((e.scp_rel_id is not null and e.scp_rel_id != '') and (s.scy_name like CONCAT('%', #{paramMap.name}, '%') or p.scy_name like CONCAT('%', #{paramMap.name}, '%')))
+                )
         </if>
-        <if test="paramMap.status != null and paramMap.status != '' ">
-            AND r.scr_status = #{paramMap.status}
+        <if test="paramMap.scpContarct != null and paramMap.scpContarct != '' ">
+            AND e.scp_contarct LIKE CONCAT('%', #{paramMap.scpContarct}, '%')
         </if>
-        ORDER BY r.create_time DESC
+        ORDER BY r.create_time DESC, e.create_by DESC
     </select>
 
+<!--            <select id="selectCompanyRelList" parameterType="map" resultType="map">-->
+<!--        SELECT-->
+<!--            r.scr_id                'launchScrId',-->
+<!--            r.scr_launch_company_id 'launchCompanyId',-->
+<!--            r.scr_receive_company_id'launchReceiveScrCompanyId',-->
+<!--            r.scr_status		    'launchScrStatus',-->
+<!--            r.scr_contarct          'launchScrContarct',-->
+<!--            r.scr_contarct_phone    'launchScrContarctPhone',-->
+<!--            r.scr_contarct_email    'launchScrContarctEmail',-->
+<!--            r.scr_launch_type       'launchScrLaunchType',-->
+<!--            r.scr_receive_type      'launchScrReceiveType',-->
+<!--            s.scy_id		        'launchScyId',-->
+<!--            s.scy_social_code	    'launchScySocialCode',-->
+<!--            s.scy_name		        'launchScyName',-->
+<!--            s.scy_type		        'launchScyType',-->
+<!--            s.scy_legal		        'launchScyLegal',-->
+<!--            s.scy_phone		        'launchScyPhone',-->
+<!--            p.scy_id		        'receiveScyId',-->
+<!--            p.scy_social_code	    'receiveScySocialCode',-->
+<!--            p.scy_name		        'receiveScyName',-->
+<!--            p.scy_type		        'receiveScyType',-->
+<!--            p.scy_legal		        'receiveScyLegal',-->
+<!--            p.scy_phone		        'receiveScyPhone'-->
+<!--        FROM sys_company_rel r-->
+<!--        LEFT JOIN sys_company s ON r.scr_launch_company_id = s.scy_id-->
+<!--        LEFT JOIN sys_company p ON r.scr_receive_company_id = p.scy_id-->
+<!--        WHERE 1=1-->
+<!--            AND r.scr_status != '99'-->
+<!--        <if test="paramMap.companyId != null and paramMap.companyId != '' ">-->
+<!--            AND (r.scr_launch_company_id = #{paramMap.companyId} OR r.scr_receive_company_id = #{paramMap.companyId})-->
+<!--        </if>-->
+<!--&#45;&#45;      用户用查询条件-->
+<!--        <if test="paramMap.companyName != null and paramMap.companyName != '' ">-->
+<!--            AND (s.scy_name LIKE CONCAT('%', #{paramMap.companyName}, '%') AND r.scr_receive_company_id = #{paramMap.companyId})-->
+<!--            OR (p.scy_name LIKE CONCAT('%', #{paramMap.companyName}, '%') AND r.scr_launch_company_id = #{paramMap.companyId})-->
+<!--        </if>-->
+<!--        <if test="paramMap.scySocialCode != null and paramMap.scySocialCode != '' ">-->
+<!--            AND (s.scy_social_code LIKE CONCAT('%', #{paramMap.scySocialCode}, '%') AND r.scr_receive_company_id = #{paramMap.companyId})-->
+<!--            OR (p.scy_social_code LIKE CONCAT('%', #{paramMap.scySocialCode}, '%') AND r.scr_launch_company_id = #{paramMap.companyId})-->
+<!--        </if>-->
+<!--        <if test="paramMap.scrType != null and paramMap.scrType != '' and paramMap.scrType == '00' ">-->
+<!--            AND ((r.scr_launch_company_id = #{paramMap.companyId} AND r.scr_launch_type = '01')-->
+<!--            OR (r.scr_receive_company_id = #{paramMap.companyId} AND r.scr_receive_type = '01'))-->
+<!--        </if>-->
+<!--        <if test="paramMap.scrType != null and paramMap.scrType != '' and paramMap.scrType == '01' ">-->
+<!--            AND ((r.scr_launch_company_id = #{paramMap.companyId} AND r.scr_launch_type = '00')-->
+<!--            OR (r.scr_receive_company_id = #{paramMap.companyId} AND r.scr_receive_type = '00'))-->
+<!--        </if>-->
+<!--        <if test="paramMap.scrStatus != null and paramMap.scrStatus != '' ">-->
+<!--            AND r.scr_status = #{paramMap.scrStatus}-->
+<!--        </if>-->
+<!--&#45;&#45;      平台用查询-->
+<!--        <if test="paramMap.name != null and paramMap.name != '' ">-->
+<!--            AND (s.scy_name LIKE CONCAT('%', #{paramMap.name}, '%')-->
+<!--            OR p.scy_name LIKE CONCAT('%', #{paramMap.name}, '%'))-->
+<!--        </if>-->
+<!--        <if test="paramMap.scrContarct != null and paramMap.scrContarct != '' ">-->
+<!--            AND r.scr_contarct LIKE CONCAT('%', #{paramMap.scrContarct}, '%')-->
+<!--        </if>-->
+<!--        ORDER BY r.create_time DESC-->
+<!--    </select>-->
+
     <select id="adminSpareList" parameterType="map" resultType="map">
         SELECT
         s.scp_id                  'scpId',
@@ -101,4 +201,21 @@
         ORDER BY s.create_time DESC
     </select>
 
+    <select id="financeRelList" parameterType="map" resultType="map">
+        SELECT
+            zfsq_core_quota_id,
+            zfsq_company_id,
+            zfsq_status,
+            zfpcr_company_id,
+            zfpcr_product_id,
+            zfp_type
+        FROM zc_finance_supplier_quota
+        LEFT JOIN zc_finance_pro_com_rel ON zfsq_core_quota_id = zfpcr_id
+        LEFT JOIN zc_finance_product ON zfpcr_product_id = zfp_id
+        WHERE zfsq_status = '00'
+        AND zfp_type = '0'
+        AND zfsq_company_id = #{paramMap.supplierId}
+        AND zfpcr_company_id = #{paramMap.coreId}
+    </select>
+
 </mapper>