package com.fzzy.igds.service;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.fzzy.igds.constant.Constant;
|
import com.fzzy.igds.domain.Company;
|
import com.fzzy.igds.domain.PledgeContract;
|
import com.fzzy.igds.mapper.CoreCompanyMapper;
|
import com.fzzy.igds.utils.ContextUtil;
|
import com.ruoyi.common.core.domain.entity.SysDept;
|
import com.ruoyi.common.core.domain.entity.SysUser;
|
import com.ruoyi.common.utils.StringUtils;
|
import org.springframework.stereotype.Service;
|
import javax.annotation.Resource;
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
|
/**
|
* @Description service层
|
* @Author CZT
|
* @Date 2025/11/26 15:48
|
*/
|
@Service
|
public class CoreCompanyService {
|
|
@Resource
|
private CoreCompanyMapper coreCompanyMapper;
|
|
|
/**
|
* 根据用户类型获取对应公司列表信息
|
* @return
|
*/
|
public List<Company> getCompanyByUserType() {
|
|
//获取当前登录人
|
SysUser user = ContextUtil.getLoginUser();
|
if (Constant.USER_TYPE_10.equals(user.getUserType())) {
|
//监管用户,直接查询组织下所有公司
|
return this.listCompany(null,user.getCompanyId(),null);
|
}
|
if (Constant.USER_TYPE_20.equals(user.getUserType())) {
|
//银行用户,根据合同查询银行下所有库区
|
return this.getCompanyByContract(user.getUserData());
|
}
|
if (Constant.USER_TYPE_30.equals(user.getUserType())) {
|
//库区用户
|
List<Company> companies = new ArrayList<>();
|
if (user.getDeptId() != null && StringUtils.isNotBlank(user.getDeptId().toString())) {
|
String substring = user.getDeptId().toString().substring(0, user.getDeptId().toString().length() - 3);
|
companies = this.listCompany(substring, null, null);
|
}
|
return companies;
|
}
|
return this.listCompany(null,user.getCompanyId(),null);
|
}
|
|
/**
|
* 根据银行id,关联合同表查询公司列表
|
* @param bankId
|
* @return
|
*/
|
public List<Company> getCompanyByContract(String bankId) {
|
|
if (StringUtils.isBlank(bankId)){
|
return null;
|
}
|
|
QueryWrapper<PledgeContract> queryWrapper = new QueryWrapper<>();
|
queryWrapper.eq("c.pledge_bank", bankId);
|
|
return coreCompanyMapper.selectCompanyByBankId(queryWrapper);
|
}
|
|
/**
|
* 根据条件查询公司信息
|
* @param id
|
* @param companyId
|
* @param parentId
|
* @return
|
*/
|
public List<Company> listCompany(String id, String companyId, String parentId) {
|
|
QueryWrapper<Company> queryWrapper = new QueryWrapper<>();
|
|
if(StringUtils.isNotBlank(id)){
|
queryWrapper.eq("id", id);
|
}
|
if(StringUtils.isNotBlank(companyId)){
|
queryWrapper.eq("company_id", companyId);
|
}
|
if(StringUtils.isNotBlank(parentId)){
|
queryWrapper.likeRight("id", parentId);
|
}
|
|
return coreCompanyMapper.selectList(queryWrapper);
|
}
|
|
/**
|
* 查询公司数量
|
* @param companyId
|
* @return
|
*/
|
public Integer getCompanyNum(String companyId) {
|
|
QueryWrapper<Company> queryWrapper = new QueryWrapper<>();
|
|
if(StringUtils.isNotBlank(companyId)){
|
queryWrapper.eq("company_id", companyId);
|
}
|
|
return coreCompanyMapper.selectCount(queryWrapper);
|
}
|
|
/**
|
* 更新或保存公司信息
|
* @param sysDept
|
* @param isAdd
|
* @return
|
*/
|
public void saveOrUpdate(SysDept sysDept, Boolean isAdd) {
|
if (null == sysDept) {
|
return;
|
}
|
Company company = new Company();
|
company.setId(sysDept.getDeptId() + "");
|
company.setDwmc(sysDept.getDeptName());
|
company.setQylxr(sysDept.getLeader());
|
company.setFrlxfs(sysDept.getPhone());
|
company.setDzyx(sysDept.getEmail());
|
company.setDwzt(sysDept.getStatus());
|
company.setCompanyId(sysDept.getCompanyId());
|
|
if (isAdd) {
|
this.save(company);
|
}else {
|
this.update(company);
|
}
|
}
|
|
/**
|
* 新增公司信息
|
* @param data
|
*/
|
public void save(Company data) {
|
if (StringUtils.isEmpty(data.getCompanyId())) {
|
data.setCompanyId(ContextUtil.getCompanyId());
|
}
|
//新增信息
|
data.setCreateBy(ContextUtil.getLoginUserName());
|
data.setCreateTime(new Date());
|
|
coreCompanyMapper.insert(data);
|
}
|
|
/**
|
* 更新公司信息
|
* @param data
|
*/
|
public void update(Company data) {
|
if (StringUtils.isEmpty(data.getCompanyId())) {
|
data.setCompanyId(ContextUtil.getCompanyId());
|
}
|
//更新信息
|
data.setUpdateBy(ContextUtil.getLoginUserName());
|
data.setUpdateTime(new Date());
|
|
coreCompanyMapper.updateById( data);
|
}
|
|
/**
|
* 删除公司信息
|
* @param deptId
|
* @return
|
*/
|
public void delData(String deptId) {
|
coreCompanyMapper.deleteById(deptId);
|
}
|
}
|