Browse Source

链属问题

sqg 3 năm trước cách đây
mục cha
commit
786aa65b16

+ 222 - 33
sc-service/src/main/java/com/huyi/service/rel/controller/OwnCompanyRelController.java

@@ -276,6 +276,9 @@ public class OwnCompanyRelController extends BaseController
         sysCompanySpare.setScpId(scpId);
         //查询邀请次数
         SysCompanySpare spare = iSysCompanySpareService.getById(scpId);
+        String companyId = spare.getScpCompanyId();
+        String scrContarct = spare.getScpContarct();
+        SysCompany launchCompany = iSysCompanyService.getById(companyId);
         //邀请次数
         String invite = spare.getScpInvite();
         //邀请企业名称
@@ -297,18 +300,25 @@ public class OwnCompanyRelController extends BaseController
 //            }
 //        }
         //获取url
-        String url = configService.selectConfigByKey("zc_spare");
-        Map msgMap = new HashMap();
-        msgMap.put("companyName",scyName);
-        msgMap.put("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);
-
         BigDecimal one = new BigDecimal("1");
         //邀请后的邀请次数
         String result = String.valueOf(bigDecimal.add(one));
         sysCompanySpare.setScpInvite(result);
         iSysCompanySpareService.updateById(sysCompanySpare);
+        //平台邀请待办
+        if (CommonUtil.isNotEmpty(scrContarct) && CommonUtil.isNotEmpty(scrContarctPhone)) {
+            String name = launchCompany.getScyName();
+            String title = "【企业邀请】:" + name + "邀请" + scyName + "非平台用户,请联系" + scrContarct + scrContarctPhone + "跟进";
+            remoteSystemService.sendNotice(/*企业id*/"000000", /*表主键*/scpId, /*标题*/title,/*待办*/"00",
+                    /*消息类型*/null,/*待办类型*/"07",/*是否发送短信*/"0", /*收到信息用户id*/"1",
+                    null, "00", null);
+        }
         return R.ok();
     }
 
@@ -548,36 +558,163 @@ public class OwnCompanyRelController extends BaseController
                 remoteSystemService.sendNotice(scyId, scrId,title,"01","03",null,"0",use.toString(),null,null,null);
             }
         } else {
-            //查询企业名称或企业名称是否已经存在
-            LambdaQueryWrapper<SysCompany> queryWrapper = new LambdaQueryWrapper<>();
+            addCompanySpare(map);
+        }
+        return R.ok();
+    }
+
+    /**
+     * 新增链属(未认证)
+     */
+    @Log(title = "新增链属信息(未认证)", businessType = BusinessType.INSERT)
+    private R addCompanySpare(@RequestBody Map<String,Object> map) throws Exception {
+        //获取当前操作员
+        LoginUser user = tokenService.getLoginUser();
+        String companyId = user.getSysUser().getCompanyId();
+        SysCompany launchCompany = iSysCompanyService.getById(companyId);
+        String userId = String.valueOf(user.getSysUser().getUserId());
+
+        //链属关系(00:供应商 01:核心企业)
+        String scrReceiveType = CommonUtil.objToString(map.get("scrReceiveType"));
+        //链属企业名称
+        String scyName = CommonUtil.objToString(map.get("scyName"));
+        //统一社会信用代码
+        String scySocialCode = CommonUtil.objToString(map.get("scySocialCode"));
+        //链属联系人
+        String scrContarct = CommonUtil.objToString(map.get("scrContarct"));
+        //链属联系人手机号
+        String scrContarctPhone = CommonUtil.objToString(map.get("scrContarctPhone"));
+        //链属联系人邮箱
+        String scrContarctEmail = CommonUtil.objToString(map.get("scrContarctEmail"));
+
+        //创建主键
+        String scrId = IdUtils.fastSimpleUUID();
+        String scpId = IdUtils.fastSimpleUUID();
+        //链属企业Id
+        String scyId = "";
+
+        //查询企业名称或企业名称是否已经存在
+        LambdaQueryWrapper<SysCompany> queryWrapper = new LambdaQueryWrapper<>();
+        //企业统一代码
+        queryWrapper.eq(SysCompany::getScySocialCode, scySocialCode);
+        //除删除状态
+        queryWrapper.ne(SysCompany::getScyStatus, "99");
+        List<SysCompany> list = iSysCompanyService.findSysCompanys(queryWrapper);
+        if (list.size() > 0) {
+            LambdaQueryWrapper<SysCompanySpare> spareLambdaQueryWrapper = new LambdaQueryWrapper<>();
+            spareLambdaQueryWrapper.eq(SysCompanySpare::getScpCompanyId, companyId);
+            spareLambdaQueryWrapper.ne(SysCompanySpare::getScpStatus, "99");
+            spareLambdaQueryWrapper.eq(SysCompanySpare::getScpSocialCode, scySocialCode);
+            List<SysCompanySpare> spareList = iSysCompanySpareService.findSysCompanySpares(spareLambdaQueryWrapper);
+            if (spareList.size() > 0) {
+                String invite = spareList.get(0).getScpInvite();
+                BigDecimal bigDecimal = new BigDecimal(invite);
+                BigDecimal tow = new BigDecimal("1");
+                if (bigDecimal.compareTo(tow) > -1) {
+                    throw new Exception("该企业已邀请");
+                }
+                String status = spareList.get(0).getScpStatus();
+                if ("01".equals(status)) {
+                    throw new Exception("与该企业已是链属关系");
+                }
+            }
+            //获取链属企业Id
+            scyId = list.get(0).getScyId();
+            String scyType = list.get(0).getScyType();
+            SysCompanyRel sysCompanyRel = new SysCompanyRel();
+            sysCompanyRel.setScrId(scrId);
+            sysCompanyRel.setScrLaunchCompanyId(companyId);
+            sysCompanyRel.setScrReceiveCompanyId(scyId);
+            //链属关系为供应商
+            if (NORMAL_STATE.equals(scrReceiveType)) {
+                //发起方为核心企业01
+                sysCompanyRel.setScrLaunchType(CONFIRM_STATE);
+                //接收方为供应商00
+                sysCompanyRel.setScrReceiveType(NORMAL_STATE);
+            } else if (CONFIRM_STATE.equals(scrReceiveType)) {
+                //发起方为供应商00
+                sysCompanyRel.setScrLaunchType(NORMAL_STATE);
+                //接收方为核心企业01
+                sysCompanyRel.setScrReceiveType(CONFIRM_STATE);
+            }
+            //如果接收方为核心企业,为待链属;接收方为供应商,为正常
+            if(CONFIRM_STATE.equals(scyType)){
+                //状态 00:待链属
+                sysCompanyRel.setScrStatus(NORMAL_STATE);
+            }else if(REFUSE_STATE.equals(scyType)){
+                //状态 01:正常
+                sysCompanyRel.setScrStatus(CONFIRM_STATE);
+            }
+            sysCompanyRel.setScrContarct(scrContarct);
+            sysCompanyRel.setScrContarctPhone(scrContarctPhone);
+            sysCompanyRel.setScrContarctEmail(scrContarctEmail);
+            sysCompanyRel.setCreateBy(userId);
+            sysCompanyRel.setCreateTime(DateUtils.getNowDate());
+            iSysCompanyRelService.createSysCompanyRel(sysCompanyRel);
+            //新增链属公司信息
+            SysCompanySpare sysCompanySpare = new SysCompanySpare();
+            sysCompanySpare.setScpId(scpId);
+            sysCompanySpare.setScpCompanyId(companyId);
+            sysCompanySpare.setScpRelId(scrId);
             //企业名称
-            queryWrapper.and(f->f.eq(SysCompany::getScyName, scyName).or().eq(SysCompany::getScySocialCode, scySocialCode));
-            //除删除状态
-            queryWrapper.ne(SysCompany::getScyStatus,"99");
-            List<SysCompany> list = iSysCompanyService.findSysCompanys(queryWrapper);
-            if(list.size() > 0){
-                throw new Exception("企业名称与统一代码不匹配,不可关联此企业");
+            sysCompanySpare.setScpName(scyName);
+            //统一社会信用代码
+            sysCompanySpare.setScpSocialCode(scySocialCode);
+            //联系人
+            sysCompanySpare.setScpContarct(scrContarct);
+            //联系电话
+            sysCompanySpare.setScpContarctPhone(scrContarctPhone);
+            //邮箱
+            sysCompanySpare.setScpContarctEmail(scrContarctEmail);
+            //企业类型 00:供应商,01:核心企业
+            sysCompanySpare.setScpType(scrReceiveType);
+            //状态 00:正常
+            sysCompanySpare.setScpStatus(NORMAL_STATE);
+            //创建人
+            sysCompanySpare.setCreateBy(userId);
+            //创建时间
+            sysCompanySpare.setCreateTime(DateUtils.getNowDate());
+            iSysCompanySpareService.createSysCompanySpare(sysCompanySpare);
+            if (CommonUtil.isNotEmpty(scrContarct) && CommonUtil.isNotEmpty(scrContarctPhone)) {
+                String name = launchCompany.getScyName();
+                String title = "【企业邀请】:" + name + "邀请" + scyName + "非平台用户,请联系" + scrContarct + scrContarctPhone + "跟进";
+                remoteSystemService.sendNotice(/*企业id*/"000000", /*表主键*/scpId, /*标题*/title,/*待办*/"00",
+                        /*消息类型*/null,/*待办类型*/"07",/*是否发送短信*/"0", /*收到信息用户id*/"1",
+                        null, "00", null);
+                //邀请次数赋值
+                SysCompanySpare spare = iSysCompanySpareService.getById(scpId);
+                spare.setScpInvite("1");
+                iSysCompanySpareService.updateById(spare);
+            }
+        } else {
+            //判重
+            LambdaQueryWrapper<SysCompany> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+            lambdaQueryWrapper.and(f -> f.eq(SysCompany::getScyName, scyName).or().eq(SysCompany::getScySocialCode, scySocialCode));
+            lambdaQueryWrapper.ne(SysCompany::getScyStatus, "99");
+            List<SysCompany> sysCompanyList = iSysCompanyService.findSysCompanys(lambdaQueryWrapper);
+            if (sysCompanyList.size() > 0) {
+                throw new Exception("企业名称与统一代码不匹配,不可链属此企业");
             }
             LambdaQueryWrapper<SysCompanySpare> spareLambdaQueryWrapper = new LambdaQueryWrapper<>();
-            spareLambdaQueryWrapper.eq(SysCompanySpare::getScpCompanyId,companyId);
-            spareLambdaQueryWrapper.ne(SysCompanySpare::getScpStatus,"99");
+            spareLambdaQueryWrapper.eq(SysCompanySpare::getScpCompanyId, companyId);
+            spareLambdaQueryWrapper.ne(SysCompanySpare::getScpStatus, "99");
             spareLambdaQueryWrapper.eq(SysCompanySpare::getScpSocialCode, scySocialCode);
             List<SysCompanySpare> spareList = iSysCompanySpareService.findSysCompanySpares(spareLambdaQueryWrapper);
-            if(spareList.size() > 0){
+            if (spareList.size() > 0) {
                 String invite = spareList.get(0).getScpInvite();
                 BigDecimal bigDecimal = new BigDecimal(invite);
                 BigDecimal tow = new BigDecimal("1");
-                if(bigDecimal.compareTo(tow) > -1){
+                if (bigDecimal.compareTo(tow) > -1) {
                     throw new Exception("该企业已邀请");
                 }
                 String status = spareList.get(0).getScpStatus();
-                if("01".equals(status)){
+                if ("01".equals(status)) {
                     throw new Exception("与该企业已是链属关系");
                 }
             }
             //新增链属公司信息
             SysCompanySpare sysCompanySpare = new SysCompanySpare();
-            sysCompanySpare.setScpId(scrId);
+            sysCompanySpare.setScpId(scpId);
             sysCompanySpare.setScpCompanyId(companyId);
             //企业名称
             sysCompanySpare.setScpName(scyName);
@@ -598,32 +735,32 @@ public class OwnCompanyRelController extends BaseController
             //创建时间
             sysCompanySpare.setCreateTime(DateUtils.getNowDate());
             iSysCompanySpareService.createSysCompanySpare(sysCompanySpare);
-            //获取字典的阿里短信模板
+        }
+        //获取字典的阿里短信模板
 //            String templateCode = "SMS_222871823";
-            if(CommonUtil.isNotEmpty(scrContarct) && CommonUtil.isNotEmpty(scrContarctPhone)) {
-                String name = launchCompany.getScyName();
-                String title = "【企业邀请】:"+ name +"邀请"+ scyName +"非平台用户,请联系"+ scrContarct + scrContarctPhone +"跟进";
-                remoteSystemService.sendNotice(/*企业id*/"000000", /*表主键*/scrId, /*标题*/title,/*待办*/"00",
-                        /*消息类型*/null,/*待办类型*/"03",/*是否发送短信*/"0", /*收到信息用户id*/"1",
-                        null, null, null);
+        if (CommonUtil.isNotEmpty(scrContarct) && CommonUtil.isNotEmpty(scrContarctPhone)) {
+            String name = launchCompany.getScyName();
+            String title = "【企业邀请】:" + name + "邀请" + scyName + "非平台用户,请联系" + scrContarct + scrContarctPhone + "跟进";
+            remoteSystemService.sendNotice(/*企业id*/"000000", /*表主键*/scpId, /*标题*/title,/*待办*/"00",
+                    /*消息类型*/null,/*待办类型*/"03",/*是否发送短信*/"0", /*收到信息用户id*/"1",
+                    null, "00", null);
 //            List<SysDictData> state = RedisUtils.getDictCache("aliyun_message_code");
 //            for (SysDictData sysDictData :state){
 //                if("yaoqing".equals(sysDictData.getDictLabel())) {
 //                    templateCode = sysDictData.getDictValue();
 //                }
 //            }
-                //获取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(scpId);
+            spare.setScpInvite("1");
+            iSysCompanySpareService.updateById(spare);
         }
         return R.ok();
     }
@@ -666,6 +803,58 @@ public class OwnCompanyRelController extends BaseController
     }
 
     /**
+     * 重邀拒绝的链属
+     * @param map
+     * @return
+     */
+    @PreAuthorize(hasPermi = "service:rel:again")
+    @Log(title = "拒绝与同意链属关系", businessType = BusinessType.UPDATE)
+    @PutMapping("/againRel")
+    public R againRel(@RequestBody Map<String,Object> map) throws Exception
+    {
+        String scrId = CommonUtil.objToString(map.get("launchScrId"));
+        if(CommonUtil.isEmpty(scrId)){
+            throw new Exception("要执行信息的主键为空");
+        }
+        String state = CommonUtil.objToString(map.get("state"));
+        if(CommonUtil.isEmpty(state)){
+            throw new Exception("要执行信息的状态为空");
+        }
+        SysCompanyRel sysCompanyRel = new SysCompanyRel();
+        //主键
+        sysCompanyRel.setScrId(scrId);
+        //状态01:同意 02:拒绝链属
+        sysCompanyRel.setScrStatus(state);
+        iSysCompanyRelService.updateById(sysCompanyRel);
+
+        SysCompanyRel companyRel = iSysCompanyRelService.getById(scrId);
+        String companyId = companyRel.getScrLaunchCompanyId();
+        SysCompany launchCompany = iSysCompanyService.getById(companyId);
+
+        String scyId = companyRel.getScrReceiveCompanyId();
+        SysCompany sysCompany = iSysCompanyService.getById(scyId);
+        String scyType = sysCompany.getScyType();
+        //查询链属企业绑定用户
+        LambdaQueryWrapper<SysUserCompanyRel> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+        lambdaQueryWrapper.eq(SysUserCompanyRel::getSucrCompanyId, scyId);
+        lambdaQueryWrapper.eq(SysUserCompanyRel::getSucrHandler, "1");
+        List<SysUserCompanyRel> list = iSysUserCompanyRelService.findSysUserCompanyRels(lambdaQueryWrapper);
+        Long use = list.get(0).getSucrUserId();
+        //接收方为核心企业时,发送待办
+        if (CONFIRM_STATE.equals(scyType)) {
+            String title = launchCompany.getScyName() + "邀请您成为链属企业,请及时处理";
+            remoteSystemService.sendNotice(scyId, scrId, title, "00", null, "09", "0", use.toString(), null, "00", null);
+        }
+        //接收方为供应商时,发送消息
+        if (REFUSE_STATE.equals(scyType)) {
+            String title = launchCompany.getScyName() + "与您成为了链属企业";
+            remoteSystemService.sendNotice(scyId, scrId, title, "01", "03", null, "0", use.toString(), null, null, null);
+        }
+        return R.ok();
+    }
+
+
+    /**
      * 删除链属
      * @param launchScrId
      * @return

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

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.huyi.service.base.entity.SysCompanyRel;
 import com.keao.tianhu.starter.mybatis.plus.entity.QueryRequest;
+import com.tianhu.common.core.domain.R;
 
 import java.util.List;
 import java.util.Map;
@@ -41,4 +42,7 @@ public interface IOwnCompanyRelService extends IService<SysCompanyRel> {
      */
     public List<Map> financeRelList(Map map);
 
+    //新增链属(未认证)
+    public R addCompanySpare(Map map) throws Exception;
+
 }

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

@@ -1,17 +1,30 @@
 package com.huyi.service.rel.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+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.service.*;
 import com.huyi.service.rel.mapper.OwnCompanyRelMapper;
 import com.huyi.service.rel.service.IOwnCompanyRelService;
 import com.keao.tianhu.starter.mybatis.plus.entity.QueryRequest;
+import com.tianhu.common.core.domain.R;
+import com.tianhu.common.core.utils.CommonUtil;
+import com.tianhu.common.core.utils.DateUtils;
+import com.tianhu.common.core.utils.IdUtils;
+import com.tianhu.common.security.service.TokenService;
+import com.tianhu.system.api.RemoteSystemService;
+import com.tianhu.system.api.model.LoginUser;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.RequestBody;
 
+import java.math.BigDecimal;
 import java.util.List;
 import java.util.Map;
 
@@ -29,6 +42,40 @@ public class OwnCompanyRelServiceImpl extends ServiceImpl<OwnCompanyRelMapper, S
 
     @Autowired
     private OwnCompanyRelMapper ownCompanyRelMapper;
+    @Autowired
+    private RemoteSystemService remoteSystemService;
+
+    @Autowired
+    private ISysCompanyRelService iSysCompanyRelService;
+
+    @Autowired
+    private ISysCompanyService iSysCompanyService;
+
+    @Autowired
+    private ISysCompanySpareService iSysCompanySpareService;
+
+    @Autowired
+    private TokenService tokenService;
+
+    /**
+     * 企业正常状态
+     */
+    private String NORMAL_STATE = "00";
+
+    /**
+     * 停用状态
+     */
+    private String CONFIRM_STATE = "01";
+
+    /**
+     * 拒绝链属
+     */
+    private String REFUSE_STATE = "02";
+
+    /**
+     * 删除状态
+     */
+    private String DELETE_STATE = "99";
 
     @Override
     public IPage<Map> selectCompanyRelList(QueryRequest request, Map map) {
@@ -46,4 +93,178 @@ public class OwnCompanyRelServiceImpl extends ServiceImpl<OwnCompanyRelMapper, S
     public List<Map> financeRelList(Map map) {
         return ownCompanyRelMapper.financeRelList(map);
     }
+
+    @Override
+    @Transactional(rollbackFor=Exception.class)
+    public R addCompanySpare(@RequestBody Map map){
+        //获取当前操作员
+        LoginUser user = tokenService.getLoginUser();
+        String companyId = user.getSysUser().getCompanyId();
+        String userId = String.valueOf(user.getSysUser().getUserId());
+
+        //创建主键
+        String scrId = IdUtils.fastSimpleUUID();
+        String scpId = IdUtils.fastSimpleUUID();
+        //链属企业Id
+        String scyId = "";
+
+        //链属企业名称
+        String scyName = CommonUtil.objToString(map.get("scyName"));
+        //统一社会信用代码
+        String scySocialCode = CommonUtil.objToString(map.get("scySocialCode"));
+        //链属联系人
+        String scrContarct = CommonUtil.objToString(map.get("scrContarct"));
+        //链属联系人手机号
+        String scrContarctPhone = CommonUtil.objToString(map.get("scrContarctPhone"));
+
+        //查询企业是否已经存在
+        LambdaQueryWrapper<SysCompany> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+        //企业名称
+        lambdaQueryWrapper.eq(SysCompany::getScyName, scyName);
+        //企业统一代码
+        lambdaQueryWrapper.eq(SysCompany::getScySocialCode, scySocialCode);
+        //除删除状态
+        lambdaQueryWrapper.ne(SysCompany::getScyStatus, "99");
+        List<SysCompany> list = iSysCompanyService.findSysCompanys(lambdaQueryWrapper);
+        if (list.size() > 0) {
+            LambdaQueryWrapper<SysCompanySpare> spareLambdaQueryWrapper = new LambdaQueryWrapper<>();
+            spareLambdaQueryWrapper.eq(SysCompanySpare::getScpCompanyId, companyId);
+            spareLambdaQueryWrapper.ne(SysCompanySpare::getScpStatus, "99");
+            spareLambdaQueryWrapper.eq(SysCompanySpare::getScpSocialCode, scySocialCode);
+            List<SysCompanySpare> spareList = iSysCompanySpareService.findSysCompanySpares(spareLambdaQueryWrapper);
+            if (spareList.size() > 0) {
+                String invite = spareList.get(0).getScpInvite();
+                BigDecimal bigDecimal = new BigDecimal(invite);
+                BigDecimal tow = new BigDecimal("1");
+                if (bigDecimal.compareTo(tow) > -1) {
+                    return R.fail("该企业已邀请");
+                }
+                String status = spareList.get(0).getScpStatus();
+                if ("01".equals(status)) {
+                    return R.fail("与该企业已是链属关系");
+                }
+            }
+            //获取链属企业Id
+            scyId = list.get(0).getScyId();
+            SysCompanyRel sysCompanyRel = new SysCompanyRel();
+            sysCompanyRel.setScrId(scrId);
+            sysCompanyRel.setScrLaunchCompanyId(companyId);
+            sysCompanyRel.setScrReceiveCompanyId(scyId);
+            //发起方为核心企业01
+            sysCompanyRel.setScrLaunchType(CONFIRM_STATE);
+            //接收方为供应商00
+            sysCompanyRel.setScrReceiveType(NORMAL_STATE);
+            sysCompanyRel.setScrStatus(NORMAL_STATE);
+            sysCompanyRel.setScrContarct(scrContarct);
+            sysCompanyRel.setScrContarctPhone(scrContarctPhone);
+            sysCompanyRel.setCreateBy(userId);
+            sysCompanyRel.setCreateTime(DateUtils.getNowDate());
+            iSysCompanyRelService.createSysCompanyRel(sysCompanyRel);
+            //新增链属公司信息
+            SysCompanySpare sysCompanySpare = new SysCompanySpare();
+            sysCompanySpare.setScpId(scpId);
+            sysCompanySpare.setScpCompanyId(companyId);
+            sysCompanySpare.setScpRelId(scrId);
+            //企业名称
+            sysCompanySpare.setScpName(scyName);
+            //统一社会信用代码
+            sysCompanySpare.setScpSocialCode(scySocialCode);
+            //联系人
+            sysCompanySpare.setScpContarct(scrContarct);
+            //联系电话
+            sysCompanySpare.setScpContarctPhone(scrContarctPhone);
+            //企业类型 00:供应商,01:核心企业
+            sysCompanySpare.setScpType(NORMAL_STATE);
+            //状态 00:正常
+            sysCompanySpare.setScpStatus(NORMAL_STATE);
+            //创建人
+            sysCompanySpare.setCreateBy(userId);
+            //创建时间
+            sysCompanySpare.setCreateTime(DateUtils.getNowDate());
+            iSysCompanySpareService.createSysCompanySpare(sysCompanySpare);
+            if (CommonUtil.isNotEmpty(scrContarct) && CommonUtil.isNotEmpty(scrContarctPhone)) {
+                //邀请次数赋值
+                SysCompanySpare spare = iSysCompanySpareService.getById(scpId);
+                spare.setScpInvite("1");
+                iSysCompanySpareService.updateById(spare);
+            }
+            return R.ok();
+        }else {
+            companySpare(map);
+            return R.ok();
+        }
+    }
+
+    @Transactional(rollbackFor=Exception.class)
+    public R companySpare(@RequestBody Map map) {
+        //获取当前操作员
+        LoginUser user = tokenService.getLoginUser();
+        String companyId = user.getSysUser().getCompanyId();
+        String userId = String.valueOf(user.getSysUser().getUserId());
+
+        //链属企业名称
+        String scyName = CommonUtil.objToString(map.get("scyName"));
+        //统一社会信用代码
+        String scySocialCode = CommonUtil.objToString(map.get("scySocialCode"));
+        //链属联系人
+        String scrContarct = CommonUtil.objToString(map.get("scrContarct"));
+        //链属联系人手机号
+        String scrContarctPhone = CommonUtil.objToString(map.get("scrContarctPhone"));
+
+        //创建主键
+        String scpId = IdUtils.fastSimpleUUID();
+        //判重
+        LambdaQueryWrapper<SysCompany> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+        lambdaQueryWrapper.and(f -> f.eq(SysCompany::getScyName, scyName).or().eq(SysCompany::getScySocialCode, scySocialCode));
+        lambdaQueryWrapper.ne(SysCompany::getScyStatus, "99");
+        List<SysCompany> sysCompanyList = iSysCompanyService.findSysCompanys(lambdaQueryWrapper);
+        if (sysCompanyList.size() > 0) {
+            return R.fail("企业名称与统一代码不匹配,不可链属此企业");
+        }
+        LambdaQueryWrapper<SysCompanySpare> spareLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        spareLambdaQueryWrapper.eq(SysCompanySpare::getScpCompanyId, companyId);
+        spareLambdaQueryWrapper.ne(SysCompanySpare::getScpStatus, "99");
+        spareLambdaQueryWrapper.eq(SysCompanySpare::getScpSocialCode, scySocialCode);
+        List<SysCompanySpare> spareList = iSysCompanySpareService.findSysCompanySpares(spareLambdaQueryWrapper);
+        if (spareList.size() > 0) {
+            String invite = spareList.get(0).getScpInvite();
+            BigDecimal bigDecimal = new BigDecimal(invite);
+            BigDecimal tow = new BigDecimal("1");
+            if (bigDecimal.compareTo(tow) > -1) {
+                return R.fail("该企业已邀请");
+            }
+            String status = spareList.get(0).getScpStatus();
+            if ("01".equals(status)) {
+                return R.fail("与该企业已是链属关系");
+            }
+        }
+        //新增链属公司信息
+        SysCompanySpare sysCompanySpare = new SysCompanySpare();
+        sysCompanySpare.setScpId(scpId);
+        sysCompanySpare.setScpCompanyId(companyId);
+        //企业名称
+        sysCompanySpare.setScpName(scyName);
+        //统一社会信用代码
+        sysCompanySpare.setScpSocialCode(scySocialCode);
+        //联系人
+        sysCompanySpare.setScpContarct(scrContarct);
+        //联系电话
+        sysCompanySpare.setScpContarctPhone(scrContarctPhone);
+        //企业类型 00:供应商,01:核心企业
+        sysCompanySpare.setScpType(NORMAL_STATE);
+        //状态 00:正常
+        sysCompanySpare.setScpStatus(NORMAL_STATE);
+        //创建人
+        sysCompanySpare.setCreateBy(userId);
+        //创建时间
+        sysCompanySpare.setCreateTime(DateUtils.getNowDate());
+        iSysCompanySpareService.createSysCompanySpare(sysCompanySpare);
+        if (CommonUtil.isNotEmpty(scrContarct) && CommonUtil.isNotEmpty(scrContarctPhone)) {
+        //邀请次数赋值
+        SysCompanySpare spare = iSysCompanySpareService.getById(scpId);
+        spare.setScpInvite("1");
+        iSysCompanySpareService.updateById(spare);
+    }
+        return R.ok();
+    }
 }