| package com.doumee.service.business.impl; | 
|   | 
| import com.alibaba.fastjson.JSONObject; | 
| import com.doumee.biz.system.SystemDictDataBiz; | 
| import com.doumee.core.constants.ResponseStatus; | 
| import com.doumee.core.exception.BusinessException; | 
| import com.doumee.core.model.LoginUserInfo; | 
| import com.doumee.core.model.PageData; | 
| import com.doumee.core.model.PageWrap; | 
| import com.doumee.core.utils.Constants; | 
| import com.doumee.core.utils.Utils; | 
| import com.doumee.dao.business.*; | 
| import com.doumee.dao.business.join.CompanyJoinMapper; | 
| import com.doumee.dao.business.join.CompanySolutionJoinMapper; | 
| import com.doumee.dao.business.model.*; | 
| import com.doumee.dao.system.SystemUserMapper; | 
| import com.doumee.dao.system.model.SystemUser; | 
| import com.doumee.service.business.CompanyService; | 
| import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | 
| import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; | 
| import com.baomidou.mybatisplus.core.metadata.IPage; | 
| import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | 
| import com.doumee.service.business.third.SignService; | 
| import com.github.yulichang.wrapper.MPJLambdaWrapper; | 
| import lombok.Synchronized; | 
| import org.apache.commons.lang3.RandomStringUtils; | 
| import org.apache.commons.lang3.StringUtils; | 
| import org.apache.shiro.SecurityUtils; | 
| import org.springframework.beans.factory.annotation.Autowired; | 
| import org.springframework.beans.factory.annotation.Value; | 
| import org.springframework.scheduling.annotation.Async; | 
| import org.springframework.stereotype.Indexed; | 
| import org.springframework.stereotype.Service; | 
| import org.springframework.transaction.annotation.Transactional; | 
| import org.springframework.util.CollectionUtils; | 
|   | 
| import javax.servlet.http.HttpServletResponse; | 
| import java.io.File; | 
| import java.io.IOException; | 
| import java.lang.reflect.Array; | 
| import java.net.URI; | 
| import java.net.URLEncoder; | 
| import java.nio.charset.Charset; | 
| import java.util.*; | 
| import java.util.stream.Collectors; | 
|   | 
| /** | 
|  * 企业信息表Service实现 | 
|  * @author 江蹄蹄 | 
|  * @date 2024/01/16 10:03 | 
|  */ | 
| @Service | 
| public class CompanyServiceImpl implements CompanyService { | 
|   | 
|     @Value("${debug_model}") | 
|     private boolean debugModel; | 
|     @Autowired | 
|     private CompanyMapper companyMapper; | 
|     @Autowired | 
|     private CompanyJoinMapper companyJoinMapper; | 
|     @Autowired | 
|     private CompanyDepartmentMapper companyDepartmentMapper; | 
|     @Autowired | 
|     private SystemUserMapper systemUserMapper; | 
|     @Autowired | 
|     private SignService signService; | 
|     @Autowired | 
|     private SolutionsMapper solutionsMapper; | 
|     @Autowired | 
|     private CompanySolutionJoinMapper companySolutionJoinMapper; | 
|     @Autowired | 
|     private CompanyPermissionMapper companyPermissionMapper; | 
|     @Autowired | 
|     private MultifileMapper multifileMapper; | 
|     @Autowired | 
|     private SmsEmailMapper smsEmailMapper; | 
|     @Autowired | 
|     private SystemDictDataBiz systemDictDataBiz; | 
|     @Autowired | 
|     private NoticesMapper noticesMapper; | 
|   | 
|     @Override | 
|     @Transactional | 
|     public Company create(Company company) { | 
|         isValidCreateParam(company); | 
|         if(companyMapper.selectCount(new QueryWrapper<Company>().lambda() | 
|                 .eq(Company::getCode,company.getCode()) | 
|                .or().eq(Company::getPhone,company.getPhone()) | 
|                .or().eq(Company::getEmail,company.getEmail()) | 
|                .or().eq(Company::getUsername,company.getUsername()) | 
|                 .or().eq(Company::getName,company.getName()))>0){ | 
|             throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,该企业【名称】【统一信用代码】【邮箱】或者【手机号】已存在,请确认后重新提交!"); | 
|         } | 
|         LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); | 
|         company.setCreator(user.getId()); | 
|         company.setCreateDate(new Date()); | 
|         company.setIsdeleted(Constants.ZERO); | 
|         company.setStatus(Constants.ZERO); | 
|         company.setType(Constants.ZERO); | 
|         company.setSignStatus(Constants.ZERO); | 
|         company.setSignIdStatus(Constants.ZERO); | 
|         companyMapper.insert(company); | 
|         company.setEditDate(company.getCreateDate()); | 
|         company.setEditor(user.getId()); | 
|         //新建默认组织 | 
|         CompanyDepartment department = createDefaultDepart(company); | 
|         //处理登陆账号信息 | 
|         SystemUser sysuser = dealSystemUserData(company,department.getId()); | 
|         //处理附件信息 | 
|         dealFileData(company); | 
|         //处理关联方案 | 
|         dealSolutionsData(company); | 
|         return company; | 
|     } | 
|   | 
|     private CompanyDepartment createDefaultDepart(Company company) { | 
|         CompanyDepartment depart = new CompanyDepartment(); | 
|         depart.setCompanyId(company.getId()); | 
|         depart.setCreator(company.getCreator()); | 
|         depart.setCreateDate(company.getCreateDate()); | 
|         depart.setType(Constants.equalsInteger(company.getType(),Constants.ZERO)?Constants.ONE:Constants.TWO); | 
|         depart.setName(company.getName()); | 
|         depart.setIsdeleted(Constants.ZERO); | 
|         depart.setNamePath(company.getName()); | 
|         depart.setStatus(Constants.ZERO); | 
|         depart.setRemark("默认根组织"); | 
|         companyDepartmentMapper.insert(depart); | 
|   | 
|         depart.setIdPath(company.getId()+"/"); | 
|         companyDepartmentMapper.updateById(depart);//更新路径 | 
|   | 
|         return depart; | 
|   | 
|     } | 
|   | 
|     @Override | 
|     @Transactional | 
|     public Company createShop(Company company) { | 
|         isValidCreateParam(company); | 
|         if(companyMapper.selectCount(new QueryWrapper<Company>().lambda() | 
|                 .eq(Company::getCode,company.getCode()) | 
|                .or().eq(Company::getPhone,company.getPhone()) | 
|                .or().eq(Company::getEmail,company.getEmail()) | 
|                .or().eq(Company::getUsername,company.getUsername()) | 
|                 .or().eq(Company::getName,company.getName()))>0){ | 
|             throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,该商户【名称】【统一信用代码】【邮箱】或者【手机号】已存在,请确认后重新提交!"); | 
|         } | 
|         LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); | 
|         company.setCreator(user.getId()); | 
|         company.setCreateDate(new Date()); | 
|         company.setType(Constants.ONE); | 
|         company.setIsdeleted(Constants.ZERO); | 
|         company.setStatus(Constants.ZERO); | 
|         company.setSignStatus(Constants.ZERO); | 
|         company.setSignIdStatus(Constants.ZERO); | 
|         companyMapper.insert(company); | 
|   | 
|         company.setEditDate(company.getCreateDate()); | 
|         company.setEditor(user.getId()); | 
|         //处理登陆账号信息 | 
|         dealSystemUserData(company,createDefaultDepart(company).getId()); | 
|         //处理附件信息 | 
|         dealFileData(company); | 
|         return company; | 
|     } | 
|   | 
|   | 
|     @Override | 
|     @Transactional(rollbackFor = {Exception.class,BusinessException.class}) | 
|     public void  updateSolutions(Company company) { | 
|         if(company.getId()==null | 
|                 ||company.getSolutionList() == null | 
|                 ||company.getSolutionList().size() == 0 ){ | 
|             throw new BusinessException(ResponseStatus.BAD_REQUEST); | 
|         } | 
|         Company model = findById(company.getId()); | 
|         if(model == null  || !Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO) ){ | 
|             throw  new BusinessException(ResponseStatus.DATA_EMPTY ); | 
|         } | 
|         //处理关联方案 | 
|         dealSolutionsData(company); | 
|     } | 
|   | 
|     @Override | 
|     @Transactional | 
|     public void exportFiles(Integer id, HttpServletResponse response){ | 
|         try { | 
|             Company model = companyMapper.selectById(id); | 
|             if(model == null){ | 
|                 throw  new BusinessException(ResponseStatus.DATA_EMPTY); | 
|             } | 
|             List<File> fileList = new ArrayList<>(); | 
|             List<Multifile> multifileList = multifileMapper.selectList(new QueryWrapper<Multifile>().lambda() | 
|                     .eq(Multifile::getObjId,id) | 
|                     .isNotNull(Multifile::getFileurl) | 
|                     .in(Multifile::getObjType, Arrays.asList(new Integer[]{ | 
|                             Constants.MultiFile.COM_BUSINESS_LICENSE.getKey(), | 
|                             Constants.MultiFile.COM_IDCARD_IMG.getKey(), | 
|                     })) | 
|             ); | 
|             if(multifileList== null || multifileList.size() == 0){ | 
|                 throw  new BusinessException(ResponseStatus.DATA_EMPTY); | 
|             } | 
|             String path = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+systemDictDataBiz.queryByCode(Constants.OSS,Constants.COMPANY_FILE).getCode(); | 
|             for(Multifile l : multifileList){ | 
|                 File f = Constants.getFileByNetFile(path + l.getFileurl(),StringUtils.defaultString(l.getName(),"未命名")); | 
|                 if(f !=null && f.isFile()){ | 
|                     fileList.add(f); | 
|                 } | 
|             } | 
|             if(fileList == null || fileList.size() == 0){ | 
|                 throw  new BusinessException(ResponseStatus.DATA_EMPTY); | 
|             } | 
|   | 
|             String fileName =  model.getName() +"-企业证件-"+System.currentTimeMillis() ; | 
|             String encodeFileName =URLEncoder.encode(fileName, Charset.forName("UTF-8").toString())+".zip"; | 
|             response.setHeader("Content-Disposition","attachment;filename=" + encodeFileName); | 
|             response.setContentType("application/octet-stream"); | 
|             response.setHeader("eva-opera-type", "download"); | 
|             response.setHeader("eva-download-filename", encodeFileName); | 
|             Constants.packFilesToZip(fileList,response.getOutputStream()); | 
|         } catch (IOException e) { | 
|             throw new BusinessException(ResponseStatus.EXPORT_EXCEL_ERROR, e); | 
|         } | 
|     } | 
|   | 
|     private SystemUser dealSystemUserData(Company company, Integer departId) { | 
|         if(systemUserMapper.selectCount(new QueryWrapper<SystemUser>().lambda() | 
|                 .eq(SystemUser::getDeleted,Boolean.TRUE) | 
|                 .eq(SystemUser::getUsername,company.getUsername()))>0){ | 
|             throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,该登录账号已存在,请更新重试~"); | 
|         } | 
|         if(systemUserMapper.selectCount(new QueryWrapper<SystemUser>().lambda() | 
|                 .eq(SystemUser::getDeleted,Boolean.TRUE) | 
|                 .eq(SystemUser::getMobile,company.getPhone()))>0){ | 
|             throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,该手机号已存在,请更换重试~"); | 
|         } | 
|   | 
|         SystemUser user = new SystemUser(); | 
|         user.setUsername(company.getUsername()); | 
|         // 生成密码盐 | 
|         String salt = RandomStringUtils.randomAlphabetic(6); | 
|         // 生成密码 | 
|         user.setPassword(Utils.Secure.encryptPassword(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.DEFAULT_PASSWORD).getCode(), salt)); | 
|         user.setSalt(salt); | 
|         user.setType(Constants.equalsInteger(company.getType(),Constants.ZERO)?Constants.ONE:Constants.TWO); | 
|         user.setFixed(Boolean.TRUE); | 
|         user.setDeleted(Boolean.FALSE); | 
|         user.setCompanyId(company.getId()); | 
|         user.setRealname(company.getLegalName()); | 
|         user.setMobile(company.getPhone()); | 
|         user.setCreateUser(company.getCreator()); | 
|         user.setDepartmentId(departId); | 
|         user.setCreateTime(company.getCreateDate()); | 
|         user.setStatus(Constants.ZERO); | 
|         systemUserMapper.insert(user); | 
|         return user; | 
|     } | 
|     private void dealSystemUserDataForUpdate (Company company,String oldUserName) { | 
|         if(systemUserMapper.selectCount(new QueryWrapper<SystemUser>().lambda() | 
|                 .eq(SystemUser::getDeleted,Boolean.TRUE) | 
|                 .eq(SystemUser::getUsername,company.getUsername()))>0){ | 
|             throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,该登录账号已存在,请更新重试~"); | 
|         } | 
|         if(systemUserMapper.selectCount(new QueryWrapper<SystemUser>().lambda() | 
|                 .eq(SystemUser::getDeleted,Boolean.TRUE) | 
|                 .ne(SystemUser::getUsername,company.getUsername()) | 
|                 .eq(SystemUser::getMobile,company.getPhone()))>0){ | 
|             throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,该手机号已存在,请更新重试~"); | 
|         } | 
|         SystemUser model = systemUserMapper.selectOne(new QueryWrapper<SystemUser>().lambda() | 
|                 .eq(SystemUser::getDeleted,Boolean.TRUE) | 
|                 .eq(SystemUser::getUsername,oldUserName).last("limit 1")); | 
|         if(model  ==null){ | 
|             SystemUser user = new SystemUser(); | 
|             user.setUsername(company.getUsername()); | 
|             // 生成密码盐 | 
|             String salt = RandomStringUtils.randomAlphabetic(6); | 
|             // 生成密码 | 
|             user.setPassword(Utils.Secure.encryptPassword(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.DEFAULT_PASSWORD).getCode(), salt)); | 
|             user.setSalt(salt); | 
|             user.setType(Constants.equalsInteger(company.getType(),Constants.ZERO)?Constants.ONE:Constants.TWO); | 
|             user.setFixed(Boolean.TRUE); | 
|             user.setDeleted(Boolean.FALSE); | 
|             user.setCompanyId(company.getId()); | 
|             user.setMobile(company.getPhone()); | 
|             user.setCreateUser(company.getCreator()); | 
|             user.setRealname(company.getLegalName()); | 
|             user.setCreateTime(company.getCreateDate()); | 
|             user.setStatus(Constants.ZERO); | 
|             systemUserMapper.insert(user);//插入新的管理员账号 | 
|         }else{ | 
|             model.setMobile(company.getPhone()); | 
|             model.setUsername(company.getUsername()); | 
|             model.setCreateUser(company.getCreator()); | 
|             model.setCreateTime(company.getCreateDate()); | 
|             systemUserMapper.updateById(model);//修改原来的超级管理员账号 | 
|         } | 
|   | 
|     } | 
|   | 
|   | 
|     /** | 
|      * 新增关联方案 | 
|      * @param company | 
|      */ | 
|     private void dealSolutionsData(Company company) { | 
|         List<Integer> sIds = new ArrayList<>(); | 
|         List<CompanySolution> list = new ArrayList<>(); | 
|         int num =0; | 
|         Date date = new Date(); | 
|         List<CompanySolution> addList = new ArrayList<>(); | 
|         List<CompanySolution> delList = new ArrayList<>(); | 
|         List<CompanySolution> updList = new ArrayList<>(); | 
|         List<CompanySolution> companySolutionList = companySolutionJoinMapper.selectList(new QueryWrapper<CompanySolution>().lambda().eq(CompanySolution::getCompanyId,company.getId())); | 
|         for(CompanySolution s :company.getSolutionList()){ | 
|             if(companySolutionList.stream().filter(i->Constants.equalsInteger(i.getSolutionBaseId(),s.getSolution().getBaseId())).collect(Collectors.toList()).size()>Constants.ZERO){ | 
|                 updList.add(s); | 
|             }else{ | 
|                 addList.add(s); | 
|             } | 
|         } | 
|         for (CompanySolution s:companySolutionList) { | 
|             if( addList.stream().filter(i->Constants.equalsInteger(i.getSolution().getBaseId(),s.getSolutionBaseId())).collect(Collectors.toList()).size()>Constants.ZERO | 
|             || updList.stream().filter(i->Constants.equalsInteger(i.getSolution().getBaseId(),s.getSolutionBaseId())).collect(Collectors.toList()).size()>Constants.ZERO | 
|             ){ | 
|                 continue; | 
|             } | 
|             delList.add(s); | 
|         } | 
|         if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(delList)){ | 
|             companySolutionJoinMapper.delete(new UpdateWrapper<CompanySolution>().lambda().in(CompanySolution::getId,delList.stream().map(i->i.getId()).collect(Collectors.toList()))); | 
|         } | 
|         if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(addList)){ | 
|             for(CompanySolution s :addList){ | 
|                 if(Objects.isNull(s.getSolution())){ | 
|                     continue; | 
|                 } | 
|                 if(s.getSolution().getBaseId() == null){ | 
|                     continue; | 
|                 } | 
|                 Solutions newVersion = solutionsMapper.selectOne(new QueryWrapper<Solutions>().lambda().eq(Solutions::getBaseId,s.getSolution().getBaseId()) | 
|                         .eq(Solutions::getDataType,Constants.TWO).last("limit 1")); | 
|                 if(Objects.isNull(newVersion)){ | 
|                     throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"请添加有效的保险方案信息!"); | 
|                 } | 
|                 //查询方案的方案确认书 | 
|                 Multifile multifile = multifileMapper.selectOne(new QueryWrapper<Multifile>().lambda() | 
|                         .eq(Multifile::getObjType,Constants.MultiFile.SOLUTIONS_CONFIRMATION_LATTER.getKey()) | 
|                         .eq(Multifile::getIsdeleted,Constants.ZERO) | 
|                         .eq(Multifile::getObjId,newVersion.getId()) | 
|                 ); | 
|                 if(Objects.isNull(multifile) ||  StringUtils.isBlank(multifile.getFileurl())){ | 
|                     throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"未查询到方案确认书!"); | 
|                 } | 
|                 sIds.add(s.getSolution().getBaseId()); | 
|                 s.setCompanyId(company.getId()); | 
|                 s.setIsdeleted(Constants.ZERO); | 
|                 s.setCanAdd(Constants.formatIntegerNum(s.getCanAdd())); | 
|                 s.setCanReduce(Constants.formatIntegerNum(s.getCanReduce())); | 
|                 s.setCreateDate(date); | 
|                 s.setCreator(company.getCreator()); | 
|                 s.setSortnum(num++); | 
|                 s.setSolutionBaseId( s.getSolution().getBaseId() ); | 
|                 s.setSolutionId( newVersion.getId() ); | 
|                 s.setStatus(Constants.ZERO); | 
|                 s.setFileUrl(multifile.getFileurl()); | 
|                 s.setSignStatus(Constants.ZERO); | 
|                 s.setSolutionName(newVersion.getName()); | 
|                 list.add(s); | 
|             } | 
|             if(list.size() ==0){ | 
|                 throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"请添加有效的保险方案信息!"); | 
|             } | 
|             List<Solutions> solutionsList = solutionsMapper.selectList(new QueryWrapper<Solutions>().lambda() | 
|                     .in(Solutions::getId,sIds) | 
|                     .eq(Solutions::getIsdeleted,Constants.ZERO)); | 
|             if(solutionsList.size()!= list.size()){ | 
|                 throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"请添加有效的保险方案信息哦"); | 
|             } | 
|             for(Solutions s:solutionsList){ | 
|                 if(Constants.equalsInteger(s.getStatus(),Constants.ONE)){ | 
|                     throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"保险方案【"+s.getName()+"】已被禁用,不能进行该操作"); | 
|                 } | 
|             } | 
|             companySolutionJoinMapper.insert(list); | 
|             //存储待办信息 | 
|             Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.SOLUTIONS; | 
|             for (CompanySolution s:list) { | 
|                 Solutions newVersion = solutionsMapper.selectById(s.getSolutionId()); | 
|                 //平台待办 | 
|                 Notices notices = new Notices(noticeObjectType, | 
|                         Constants.ONE | 
|                         ,s.getId(), | 
|                         newVersion.getName() , | 
|                         company.getId() | 
|                         ,Constants.NoticeType.ZERO); | 
|                 noticesMapper.insert(notices); | 
|   | 
|             } | 
|   | 
|         } | 
|     } | 
|   | 
|     /*private void dealSolutionsData(Company company) { | 
|         List<Integer> sIds = new ArrayList<>(); | 
|         List<CompanySolution> list = new ArrayList<>(); | 
|         int num =0; | 
|         Date date = new Date(); | 
|         for(CompanySolution s :company.getSolutionList()){ | 
|             if(Objects.isNull(s.getSolution())){ | 
|                 continue; | 
|             } | 
|             if(s.getSolution().getBaseId() == null){ | 
|                 continue; | 
|             } | 
|             Solutions newVersion = solutionsMapper.selectOne(new QueryWrapper<Solutions>().lambda().eq(Solutions::getBaseId,s.getSolution().getBaseId()) | 
|                     .eq(Solutions::getDataType,Constants.TWO).last("limit 1")); | 
|             if(Objects.isNull(newVersion)){ | 
|                 throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"请添加有效的保险方案信息!"); | 
|             } | 
|             //查询方案的方案确认书 | 
|             Multifile multifile = multifileMapper.selectOne(new QueryWrapper<Multifile>().lambda() | 
|                     .eq(Multifile::getObjType,Constants.MultiFile.SOLUTIONS_CONFIRMATION_LATTER.getKey()) | 
|                     .eq(Multifile::getIsdeleted,Constants.ZERO) | 
|                     .eq(Multifile::getObjId,newVersion.getId()) | 
|             ); | 
|             if(Objects.isNull(multifile) ||  StringUtils.isBlank(multifile.getFileurl())){ | 
|                 throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"未查询到方案确认书!"); | 
|             } | 
|             sIds.add(s.getSolution().getBaseId()); | 
|             s.setCompanyId(company.getId()); | 
|             s.setIsdeleted(Constants.ZERO); | 
|             s.setCanAdd(Constants.formatIntegerNum(s.getCanAdd())); | 
|             s.setCanReduce(Constants.formatIntegerNum(s.getCanReduce())); | 
|             s.setCreateDate(date); | 
|             s.setCreator(company.getCreator()); | 
|             s.setSortnum(num++); | 
|             s.setSolutionBaseId( s.getSolution().getBaseId() ); | 
|             s.setSolutionId( newVersion.getId() ); | 
|             s.setStatus(Constants.ZERO); | 
|             s.setFileUrl(multifile.getFileurl()); | 
|             s.setSignStatus(Constants.ZERO); | 
|             list.add(s); | 
|         } | 
|         if(list.size() ==0){ | 
|             throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"请添加有效的保险方案信息!"); | 
|         } | 
|         List<Solutions> solutionsList = solutionsMapper.selectList(new QueryWrapper<Solutions>().lambda() | 
|                 .in(Solutions::getId,sIds) | 
|                 .eq(Solutions::getIsdeleted,Constants.ZERO)); | 
|         if(solutionsList.size()!= list.size()){ | 
|             throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"请添加有效的保险方案信息哦"); | 
|         } | 
|         for(Solutions s:solutionsList){ | 
|             if(Constants.equalsInteger(s.getStatus(),Constants.ONE)){ | 
|                 throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"保险方案【"+s.getName()+"】已被禁用,不能进行该操作"); | 
|             } | 
|         } | 
|         companySolutionJoinMapper.insert(list); | 
|     }*/ | 
|   | 
|   | 
|   | 
|   | 
|   | 
|   | 
|   | 
|   | 
|    /* private void dealSolutionsData(Company company) { | 
|         List<Integer> sIds = new ArrayList<>(); | 
|         List<CompanySolution> list = new ArrayList<>(); | 
|         int num =0; | 
|         for(CompanySolution s :company.getSolutionList()){ | 
|             if(s.getSolution() == null || s.getSolution().getBaseId() == null ||s.getSolution().getId()==null){ | 
|                 continue; | 
|             } | 
|             sIds.add(s.getSolution().getId() ); | 
|             s.setCompanyId(company.getId()); | 
|             s.setIsdeleted(Constants.ZERO); | 
|             s.setCanAdd(Constants.formatIntegerNum(s.getCanAdd())); | 
|             s.setCanReduce(Constants.formatIntegerNum(s.getCanReduce())); | 
|             s.setCreateDate(company.getCreateDate()); | 
|             s.setCreator(company.getCreator()); | 
|             s.setSortnum(num++); | 
|             s.setSolutionBaseId( s.getSolution().getId() ); | 
|             s.setSolutionId( s.getSolution().getBaseId() ); | 
|             s.setStatus(Constants.ZERO); | 
|             list.add(s); | 
|         } | 
|         if(list.size() ==0){ | 
|             throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"请添加有效的保险方案信息!"); | 
|         } | 
|         List<Solutions> solutionsList = solutionsMapper.selectList(new QueryWrapper<Solutions>().lambda() | 
|                 .in(Solutions::getId,sIds) | 
|                 .eq(Solutions::getIsdeleted,Constants.ZERO)); | 
|         if(solutionsList.size()!= list.size()){ | 
|             throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"请添加有效的保险方案信息哦"); | 
|         } | 
|         for(Solutions s:solutionsList){ | 
|             if(Constants.equalsInteger(s.getStatus(),Constants.ONE)){ | 
|                 throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"保险方案【"+s.getName()+"】已被禁用,不能进行该操作"); | 
|             } | 
|         } | 
|         companySolutionJoinMapper.insert(list); | 
|     }*/ | 
|     private void isValidCreateParam(Company company) { | 
|         if(StringUtils.isBlank(company.getPhone()) | 
|             ||StringUtils.isBlank(company.getName()) | 
|             ||StringUtils.isBlank(company.getUsername()) | 
|             ||StringUtils.isBlank(company.getCode()) | 
|             ||StringUtils.isBlank(company.getCaptche()) | 
|             ||StringUtils.isBlank(company.getLegalName()) | 
|             ||StringUtils.isBlank(company.getEmail()) | 
|             ||company.getSolutionList() == null | 
|             ||company.getSolutionList().size() == 0 | 
|             ||StringUtils.isBlank(company.getEmail())){ | 
|             throw new BusinessException(ResponseStatus.BAD_REQUEST); | 
|         } | 
|         String  phoneAtuh = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.COMPANY_PHONE_AUTH).getCode(); | 
|         if(!debugModel && !StringUtils.equals(phoneAtuh,Constants.ONE+"")){ | 
|             //手机验证码校验 | 
|             SmsEmailServiceImpl.isCaptcheValide(smsEmailMapper,company.getPhone(),company.getCaptche()); | 
|         } | 
|   | 
|     } | 
|   | 
|     private void dealFileData(Company company ) { | 
|   | 
|         List<Multifile> multifileList = new ArrayList<>(); | 
|         if(company.getBusinessImg()!=null && StringUtils.isNotBlank(company.getBusinessImg().getFileurl())){ | 
|             multifileList.add(initMultiFileByCompay(company,company.getBusinessImg(),Constants.MultiFile.COM_BUSINESS_LICENSE.getKey())); | 
|         }else  { | 
|             throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"请上传营业执照!"); | 
|         } | 
| //        if(company.getSignImg()!=null && StringUtils.isNotBlank(company.getSignImg().getFileurl())){ | 
| //            multifileList.add(initMultiFileByCompay(company,company.getSignImg(),Constants.MultiFile.COM_SING_IMG.getKey())); | 
| //        }else { | 
|          //   throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"请上传电子签章!"); | 
| //        } | 
|         if(company.getIdcardImgList()!=null && company.getIdcardImgList()!=null&& company.getIdcardImgList().size()>0){ | 
|             for(Multifile f : company.getIdcardImgList()){ | 
|                     multifileList.add(initMultiFileByCompay(company,f,Constants.MultiFile.COM_IDCARD_IMG.getKey())); | 
|             } | 
|         }else { | 
|             throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"请上传身份证扫描件!"); | 
|         } | 
|         multifileMapper.insert(multifileList); | 
|     } | 
|     private void dealFileDataForUpdate(Company company ) { | 
|   | 
|         List<Multifile> multifileList = new ArrayList<>(); | 
|         List<Integer> objList = new ArrayList<>(); | 
|         if(company.getBusinessImg()!=null && company.getBusinessImg().getId() ==null && StringUtils.isNotBlank(company.getBusinessImg().getFileurl())){ | 
|             multifileList.add(initMultiFileByCompay(company,company.getBusinessImg(),Constants.MultiFile.COM_BUSINESS_LICENSE.getKey())); | 
|             objList.add(Constants.MultiFile.COM_BUSINESS_LICENSE.getKey()); | 
|         } | 
|         if(company.getSignImg()!=null&& company.getSignImg().getId() ==null && StringUtils.isNotBlank(company.getSignImg().getFileurl())){ | 
|             multifileList.add(initMultiFileByCompay(company,company.getSignImg(),Constants.MultiFile.COM_SING_IMG.getKey())); | 
|             objList.add(Constants.MultiFile.COM_SING_IMG.getKey()); | 
|             company.setSignIdStatus(Constants.ZERO);//标记电子签章未上传 | 
|             if(StringUtils.isNotBlank(company.getSignId())){ | 
|                 //删除现有的签章 | 
|                 signService.deleteEntSign(company.getSignId()); | 
|             } | 
|             company.setSignId(""); | 
|         } | 
|         if(company.getIdcardImgList()!=null && company.getIdcardImgList()!=null){ | 
|             boolean isNew = false; | 
|             for(Multifile f : company.getIdcardImgList()){ | 
|                 if(f.getId() !=null){ | 
|                     continue; | 
|                 } | 
|                 isNew = true; | 
|                 multifileList.add(initMultiFileByCompay(company,f,Constants.MultiFile.COM_IDCARD_IMG.getKey())); | 
|             } | 
|             if(isNew) | 
|               objList.add(Constants.MultiFile.COM_IDCARD_IMG.getKey()); | 
|         } | 
|         if(objList.size()>0){ | 
|             multifileMapper.update(null,new UpdateWrapper<Multifile>().lambda() | 
|                     .set(Multifile::getIsdeleted,Constants.ONE) | 
|                     .set(Multifile::getEditDate,company.getEditDate()) | 
|                     .set(Multifile::getEditor,company.getEditor()) | 
|                     .eq(Multifile::getObjId,company.getId()) | 
|                     .eq(Multifile::getIsdeleted,Constants.ZERO) | 
|                     .in(Multifile::getObjType,objList) | 
|             ); | 
|             multifileMapper.insert(multifileList); | 
|         } | 
|     } | 
|   | 
|     private Multifile initMultiFileByCompay(Company company, Multifile file, int key) { | 
|         file.setCompanyId(company.getId()); | 
|         file.setIsdeleted(Constants.ZERO); | 
|         file.setCreateDate(company.getEditDate()); | 
|         file.setCreator(company.getEditor()); | 
|         file.setObjId(company.getId()); | 
|         file.setObjType(key); | 
|         file.setType(Constants.formatIntegerNum(file.getType())); | 
|         if(file.getFileurl().endsWith(".mp4")){ | 
|             file.setType(Constants.TWO); | 
|         } | 
|         return  file; | 
|     } | 
|   | 
|     @Override | 
|     public void deleteById(Integer id) { | 
|         companyMapper.deleteById(id); | 
|     } | 
|     @Override | 
|     public void updateStatus(Company company){ | 
|         if(company.getId() == null || company.getStatus()==null || company.getStatus()<0||company.getStatus()>1){ | 
|             throw  new BusinessException(ResponseStatus.BAD_REQUEST ); | 
|         } | 
|         Company model = companyMapper.selectById(company.getId()); | 
|         if(model == null  || !Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO) ){ | 
|             throw  new BusinessException(ResponseStatus.DATA_EMPTY ); | 
|         } | 
|         if(Constants.equalsInteger(model.getStatus(),company.getStatus())){ | 
|             //如果状态不发生改变,直接返回 | 
|             return; | 
|         } | 
|         LoginUserInfo user= (LoginUserInfo)SecurityUtils.getSubject().getPrincipal(); | 
|         //更新数据状态 | 
|         companyMapper.update(null,new UpdateWrapper<Company>() | 
|                 .lambda() | 
|                 .eq(Company::getId,model.getId()) | 
|                 .set(Company::getEditDate,new Date()) | 
|                 .set(Company::getEditor,user.getId()) | 
|                 .set(Company::getStatus,company.getStatus()) | 
|         ); | 
|     } | 
|     @Override | 
|     public void updatePhone(Company company){ | 
|         if(company.getId() == null ||StringUtils.isBlank(company.getPhone()) | 
|                 || StringUtils.isBlank(company.getCaptche())){ | 
|             throw  new BusinessException(ResponseStatus.BAD_REQUEST ); | 
|         } | 
|         String  phoneAtuh = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.COMPANY_PHONE_AUTH).getCode(); | 
|         if(!debugModel && !StringUtils.equals(phoneAtuh,Constants.ONE+"")){ | 
|             SmsEmailServiceImpl.isCaptcheValide(smsEmailMapper,company.getPhone(),company.getCaptche()); | 
|         } | 
|         Company model = companyMapper.selectById(company.getId()); | 
|         if(model == null  || StringUtils.equals(model.getPhone(),company.getPhone()) ){ | 
|             throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"手机号未发生改变~" ); | 
|         } | 
|   | 
|         if(companyMapper.selectCount(new QueryWrapper<Company>().lambda() | 
|                 .eq(Company::getPhone,company.getPhone()) | 
|                 .eq(Company::getIsdeleted,Constants.ZERO))>0){ | 
|             throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,该企业【手机号】已存在,请确认后重新提交!"); | 
|         } | 
|   | 
|         LoginUserInfo user= (LoginUserInfo)SecurityUtils.getSubject().getPrincipal(); | 
|         //更换手机号 | 
|         companyMapper.update(null,new UpdateWrapper<Company>() | 
|                 .lambda() | 
|                 .eq(Company::getId,model.getId()) | 
|                 .set(Company::getEditDate,new Date()) | 
|                 .set(Company::getEditor,user.getId()) | 
|                 .set(Company::getPhone,company.getPhone()) | 
|         ); | 
|     } | 
|   | 
|     @Override | 
|     public void delete(Company company) { | 
|         UpdateWrapper<Company> deleteWrapper = new UpdateWrapper<>(company); | 
|         companyMapper.delete(deleteWrapper); | 
|     } | 
|   | 
|     @Override | 
|     public void deleteByIdInBatch(List<Integer> ids) { | 
|         if (CollectionUtils.isEmpty(ids)) { | 
|             return; | 
|         } | 
|         companyMapper.deleteBatchIds(ids); | 
|     } | 
|     private void isValidUpdateParam(Company company) { | 
|         if( StringUtils.isBlank(company.getName()) | 
| //                ||StringUtils.isBlank(company.getUsername()) | 
|                 ||StringUtils.isBlank(company.getCode()) | 
|                 ||StringUtils.isBlank(company.getLegalName()) | 
|                 ||StringUtils.isBlank(company.getEmail()) ){ | 
|             throw new BusinessException(ResponseStatus.BAD_REQUEST); | 
|         } | 
|   | 
|     } | 
|     @Override | 
|     public Company updateById(Company company) { | 
|         isValidUpdateParam(company); | 
|         Company model = findById(company.getId()); | 
|         if(model == null  || !Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO) ){ | 
|             throw  new BusinessException(ResponseStatus.DATA_EMPTY ); | 
|         } | 
|         if(StringUtils.equals(company.getEmail(),model.getEmail())){ | 
|             company.setEmail(null); | 
|         } | 
|         if(StringUtils.equals(company.getUsername(),model.getUsername())){ | 
|             company.setUsername(null); | 
|         } | 
|   | 
|         if(companyMapper.selectCount(new QueryWrapper<Company>().lambda() | 
|                 .ne(Company::getId,company.getId()) | 
|                 .eq(Company::getIsdeleted,Constants.ZERO) | 
|                 .and(w->w.eq(Company::getCode,company.getCode()) | 
|                     .or().eq(Company::getEmail,company.getEmail()) | 
| //                    .or().eq(Company::getUsername,company.getUsername()) | 
|                     .or().eq(Company::getName,company.getName())) | 
|                 )>0){ | 
|             throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,该企业【名称】【统一信用代码】【邮箱】或者【企业账号】已存在,请确认后重新提交!"); | 
|         } | 
|         LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); | 
|         if(Constants.equalsInteger(model.getSignIdStatus(),Constants.ONE)){ | 
|             company.setSignId(model.getSignId()); | 
|         } | 
|         dealFileDataForUpdate(company); | 
|   | 
|         Company update = new Company(); | 
|         update.setName(company.getName()); | 
|         update.setCode(company.getCode()); | 
|         update.setEditDate(new Date()); | 
|         update.setEditor(user.getId()); | 
|         update.setUsername(company.getUsername()); | 
|         update.setTaxAccount(company.getTaxAccount()); | 
|         update.setTaxAddr(company.getTaxAddr()); | 
|         update.setTaxCode(company.getTaxCode()); | 
|         update.setTaxBank(company.getTaxBank()); | 
|         update.setEmail(company.getEmail()); | 
|         update.setId(model.getId()); | 
|         update.setLegalName(company.getLegalName()); | 
|         update.setInvoiceAddr(company.getInvoiceAddr()); | 
|         update.setSignIdStatus(company.getSignIdStatus()); | 
|         update.setInvoiceEmail(company.getInvoiceEmail()); | 
|         if(StringUtils.isNotBlank(company.getEmail()) | 
|             ||!StringUtils.equals(company.getName(),model.getName()) | 
|             ||!StringUtils.equals(company.getLegalName(),model.getLegalName()) | 
|             ||!StringUtils.equals(company.getCode(),model.getCode()) ){ | 
|             //如果邮箱发生改变 | 
|             update.setSignStatus(Constants.ZERO); | 
|         } | 
|         companyMapper.updateById(update); | 
|         company.setCreator(update.getEditor()); | 
|         company.setCreateDate(update.getEditDate()); | 
|         if(StringUtils.isNotBlank(company.getUsername())){ | 
|             //处理登陆账号信息 | 
|             company.setType(model.getType()); | 
|             dealSystemUserDataForUpdate(company,model.getUsername()); | 
|         } | 
|   | 
|         return  company; | 
|     } | 
|   | 
|     @Override | 
|     public void updateByIdInBatch(List<Company> companys) { | 
|         if (CollectionUtils.isEmpty(companys)) { | 
|             return; | 
|         } | 
|         for (Company company: companys) { | 
|             this.updateById(company); | 
|         } | 
|     } | 
|   | 
|     @Override | 
|     public Company findById(Integer id) { | 
|         Company model = companyMapper.selectById(id); | 
|         if(model == null ||Constants.equalsInteger(model.getIsdeleted(),Constants.ONE)){ | 
|             throw  new BusinessException(ResponseStatus.DATA_EMPTY); | 
|         } | 
|         /*MPJLambdaWrapper<CompanySolution> csWrapper = new MPJLambdaWrapper<>(); | 
|         csWrapper.selectAll(CompanySolution.class); | 
|         csWrapper.selectAs(Solutions::getName,CompanySolution::getSolutionName); | 
|         csWrapper.leftJoin(Solutions.class,Solutions::getId,CompanySolution::getSolutionBaseId); | 
|         csWrapper.eq(CompanySolution::getCompanyId,id); | 
|         csWrapper.eq(CompanySolution::getIsdeleted,Constants.ZERO); | 
|         csWrapper.orderByAsc(CompanySolution::getSortnum); | 
|         model.setSolutionList(companySolutionJoinMapper.selectJoinList(CompanySolution.class,csWrapper)); | 
| */ | 
|         initImgData(model); | 
|         return model; | 
|     } | 
|   | 
|     private void initImgData(Company model) { | 
|         List<Multifile> multifiles = multifileMapper.selectList(new QueryWrapper<Multifile>().lambda() | 
|                 .eq(Multifile::getCompanyId,model.getId()) | 
|                 .eq(Multifile::getIsdeleted,Constants.ZERO)); | 
|         if(multifiles!=null){ | 
|             String path = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+systemDictDataBiz.queryByCode(Constants.OSS,Constants.COMPANY_FILE).getCode(); | 
|             for(Multifile f : multifiles){ | 
|                 if(StringUtils.isBlank(f.getFileurl())){ | 
|                     continue; | 
|                 } | 
|                 f.setFileurlFull(path+f.getFileurl()); | 
|                 if(Constants.equalsInteger(f.getObjType(),Constants.MultiFile.COM_BUSINESS_LICENSE.getKey())){ | 
|                     //营业执照 | 
|                     model.setBusinessImg(f); | 
|                 }else if(Constants.equalsInteger(f.getObjType(),Constants.MultiFile.COM_SING_IMG.getKey())){ | 
|                     //企业电子章 | 
|                     model.setSignImg(f); | 
|                 }else if(Constants.equalsInteger(f.getObjType(),Constants.MultiFile.COM_IDCARD_IMG.getKey())){ | 
|                     //法人身份证 | 
|                     if(model.getIdcardImgList()==null){ | 
|                         model.setIdcardImgList(new ArrayList<>()); | 
|                     } | 
|                     model.getIdcardImgList().add(f); | 
|                 } | 
|             } | 
|         } | 
|     } | 
|   | 
|     @Override | 
|     public Company findOne(Company company) { | 
|         QueryWrapper<Company> wrapper = new QueryWrapper<>(company); | 
|         return companyMapper.selectOne(wrapper); | 
|     } | 
|     /** | 
|      * 电子签认证 | 
|      *   public boolean organizationCreate (String fullname,String creditCode,String legalName,String email,File  businessimg,String notifyUrl){ | 
|      */ | 
|     @Override | 
|     @Async | 
|     public   void startSignAuth(Integer id){ | 
|         Company company = companyMapper.selectById(id); | 
|         Multifile f = multifileMapper.selectOne(new QueryWrapper<Multifile>().lambda() | 
|                 .eq(Multifile::getIsdeleted,Constants.ZERO) | 
|                 .eq(Multifile::getObjType,Constants.MultiFile.COM_BUSINESS_LICENSE.getKey()) | 
|                 .eq(Multifile::getObjId,company.getId()) | 
|                 .last("limit 1")); | 
|         if(f == null){ | 
|             return; | 
|         } | 
|         String path = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+systemDictDataBiz.queryByCode(Constants.OSS,Constants.COMPANY_FILE).getCode(); | 
|         boolean status = signService.organizationCreate(company.getName(),company.getCode(),company.getLegalName(),company.getEmail(), path + f.getFileurl(),null); | 
|         Company update = new Company(); | 
|         update.setId(company.getId()); | 
|         update.setSignStatus(status?Constants.ONE:Constants.TWO); | 
|         update.setSignDate(new Date()); | 
|         //更新认证状态 | 
|         companyMapper.updateById(update); | 
|     } | 
|     @Override | 
|     public   void startSignAuthAuto( ){ | 
|         List<Company> companyList = companyMapper.selectList(new QueryWrapper<Company>().lambda() | 
|                 .eq(Company::getIsdeleted,Constants.ZERO) | 
|                 .eq(Company::getSignStatus,Constants.ZERO)); | 
|         if(companyList!=null && companyList.size()>0) { | 
|             for (Company company : companyList) { | 
|                 Multifile f = multifileMapper.selectOne(new QueryWrapper<Multifile>().lambda() | 
|                         .eq(Multifile::getIsdeleted,Constants.ZERO) | 
|                         .eq(Multifile::getObjType,Constants.MultiFile.COM_BUSINESS_LICENSE.getKey()) | 
|                         .eq(Multifile::getObjId,company.getId()) | 
|                         .last("limit 1")); | 
|                 if(f == null){ | 
|                     return; | 
|                 } | 
|                 String path = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+systemDictDataBiz.queryByCode(Constants.OSS,Constants.COMPANY_FILE).getCode(); | 
|                 boolean status = signService.organizationCreate(company.getName(),company.getCode(),company.getLegalName(),company.getEmail(), path + f.getFileurl(),null); | 
|                 Company update = new Company(); | 
|                 update.setId(company.getId()); | 
|                 update.setSignStatus(status?Constants.ONE:Constants.TWO); | 
|                 update.setSignDate(new Date()); | 
|                 //更新认证状态 | 
|                 companyMapper.updateById(update); | 
|             } | 
|         } | 
|   | 
|     } | 
|     /** | 
|      * 电子签认证 | 
|      *   public boolean organizationCreate (String fullname,String creditCode,String legalName,String email,File  businessimg,String notifyUrl){ | 
|      */ | 
|     @Override | 
|     @Synchronized//单例执行 | 
|     public void dealSignAuthStatus(){ | 
|         List<Company> companyList = companyMapper.selectList(new QueryWrapper<Company>().lambda() | 
|                 .eq(Company::getIsdeleted,Constants.ZERO) | 
|                 .eq(Company::getSignStatus,Constants.ONE)); | 
|         if(companyList!=null && companyList.size()>0){ | 
|             for(Company company :companyList){ | 
|                 //查询企业签约状态 审核状态,0正在申请1通过2驳回 | 
|                 int status = signService.organizationAuditStatus(company.getEmail()); | 
|                 if(status == 0){ | 
|                     continue; | 
|                 } | 
|                 if(status == 1){ | 
|                     Company update = new Company(); | 
|                     update.setId(company.getId()); | 
|                     update.setSignStatus( Constants.THREE); | 
|                     update.setSignDate(new Date()); | 
|                     //更新认证状态 | 
|                     companyMapper.updateById(update); | 
|                 }else{ | 
|                     Company update = new Company(); | 
|                     update.setId(company.getId()); | 
|                     update.setSignStatus(Constants.TWO); | 
|                     update.setSignDate(new Date()); | 
|                     //更新认证状态 | 
|                     companyMapper.updateById(update); | 
|                 } | 
|             } | 
|         } | 
|   | 
|     } | 
|     /** | 
|      * 电子印章自动上传 | 
|      *   public boolean organizationCreate (String fullname,String creditCode,String legalName,String email,File  businessimg,String notifyUrl){ | 
|      */ | 
|     @Override | 
|     @Synchronized//单例执行 | 
|     public void dealSignIdStatus(){ | 
|         List<Company> companyList = companyMapper.selectList(new QueryWrapper<Company>().lambda() | 
|                 .eq(Company::getIsdeleted,Constants.ZERO) | 
|                 .eq(Company::getSignStatus,Constants.THREE) | 
|                 .eq(Company::getSignIdStatus,Constants.ZERO)); | 
|         if(companyList!=null && companyList.size()>0){ | 
|             for(Company company :companyList){ | 
|                 //查询企业签约状态 审核状态,0正在申请1通过2驳回 | 
|                 Multifile f = multifileMapper.selectOne(new QueryWrapper<Multifile>().lambda() | 
|                         .eq(Multifile::getIsdeleted,Constants.ZERO) | 
|                         .eq(Multifile::getObjType,Constants.MultiFile.COM_SING_IMG.getKey()) | 
|                         .eq(Multifile::getObjId,company.getId()) | 
|                         .last("limit 1")); | 
|                 if(f !=null &&StringUtils.isNotBlank(f.getFileurl())){ | 
|                     String path = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+systemDictDataBiz.queryByCode(Constants.OSS,Constants.COMPANY_FILE).getCode(); | 
|                     String signId = signService.uploadEntSign(company.getName(),path+f.getFileurl(),company.getEmail()); | 
|                     Company update = new Company(); | 
|                     update.setId(company.getId()); | 
|                     if(StringUtils.isNotBlank(signId)){ | 
|                         update.setSignIdStatus( Constants.ONE); | 
|                         update.setSignId(signId); | 
|                         //更新认证状态 | 
|                         companyMapper.updateById(update); | 
|                     }else{ | 
|                         update.setSignIdStatus(Constants.TWO); | 
|                         //更新认证状态 | 
|                         companyMapper.updateById(update); | 
|                     } | 
|                 } | 
|             } | 
|         } | 
|     } | 
|   | 
| //    @Override | 
| //    public List<Company> findList(Company company) { | 
| //        QueryWrapper<Company> wrapper = new QueryWrapper<>(company); | 
| //        return companyMapper.selectList(wrapper); | 
| //    } | 
| // | 
|     @Override | 
|     public List<Company> findList(Company company) { | 
|         QueryWrapper<Company> wrapper = new QueryWrapper<>(company); | 
|         company.setIsdeleted(Constants.ZERO); | 
|         LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); | 
|         if(Constants.equalsInteger(company.getType(),Constants.ONE)){ | 
|   | 
|         }else  { | 
|             company.setType(Constants.ZERO); | 
|             if(Constants.equalsInteger(user.getType(),Constants.TWO)){ | 
|                 //如果是商户 | 
|                 wrapper.lambda().exists("select c.id from company_solution c where c.isdeleted=0 and c.company_id=company.id and  c.shop_id="+user.getCompanyId());//设置无效访问 | 
|             }else{ | 
|                 //如果查询企业数据 | 
|                 if(company.getQueryFlag() == 0){ | 
|                     //只能看权限范围内 | 
|                     if(user.getCompanyIdList() == null || user.getCompanyIdList().size() == 0){ | 
|                         wrapper.lambda().eq(Company::getId,-1);//设置无效访问 | 
|                     }else { | 
|                         wrapper.lambda().in(Company::getId, user.getCompanyIdList()); | 
|                     } | 
|                 } else if (company.getQueryFlag() == 1 && company.getUserId()!=null) { | 
|                     //查詢是否有查看權限 | 
|                     wrapper.select("*,(select count(1) from company_permission b where b.user_id="+company.getUserId()+" and b.isdeleted=0 and b.company_id=company.id) as hasPerimission"); | 
|                 } | 
|             } | 
|         } | 
|         return companyMapper.selectList(wrapper); | 
|     } | 
|   | 
|     @Override | 
|     public List<Company> findAllCompanyList() { | 
|         LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); | 
|         List<Company> companyList = companyMapper.selectList( | 
|                new QueryWrapper<Company>().lambda() | 
|                        .eq(Company::getIsdeleted,Constants.ZERO) | 
|                        .eq(Company::getType,Constants.ZERO) | 
|                        .ne(Constants.equalsInteger(user.getType(),Constants.ONE),Company::getId,user.getCompanyId()) | 
|         ); | 
|         return companyList; | 
|     } | 
|   | 
|   | 
|     @Override | 
|     public PageData<Company> findPage(PageWrap<Company> pageWrap) { | 
|         IPage<Company> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); | 
|         QueryWrapper<Company> queryWrapper = new QueryWrapper<>(); | 
|         Utils.MP.blankToNull(pageWrap.getModel()); | 
|         pageWrap.getModel().setIsdeleted(Constants.ZERO); | 
|         LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); | 
|         if(Constants.formatIntegerNum(pageWrap.getModel().getType()) == Constants.ONE||Constants.formatIntegerNum(pageWrap.getModel().getType()) == Constants.ZERO) { | 
|   | 
|         }else{ | 
|             if(Constants.equalsInteger(user.getType(),Constants.TWO)){ | 
|                 //如果是商户 | 
|                 queryWrapper.lambda().exists("select c.id from company_solution c where c.isdeleted=0 and c.shop_id=company.id");//设置无效访问 | 
|             }else{ | 
|                 //如果查询企业数据,只能看权限范围内 | 
|                 if(pageWrap.getModel().getQueryFlag() == 0){ | 
|                     //只能看权限范围内 | 
|                     if(user.getCompanyIdList() == null || user.getCompanyIdList().size() == 0){ | 
|                         queryWrapper.lambda().eq(Company::getId,-1);//设置无效访问 | 
|                     }else { | 
|                         queryWrapper.lambda().in(Company::getId, user.getCompanyIdList()); | 
|                     } | 
| //            queryWrapper.exists("select b.id from company_permission b where b.user_id="+user.getId()+" and b.isdeleted=0 and b.company_id=company.id"); | 
|                 } else if (pageWrap.getModel().getQueryFlag() == 1) { | 
|                     //查詢是否有查看權限 | 
|                     queryWrapper.select("*,(select count(1) from company_permission b where b.user_id="+user.getId()+" and b.isdeleted=0 and b.company_id=company.id) as hasPerimission"); | 
|                 } | 
|             } | 
|         } | 
|   | 
|         if (pageWrap.getModel().getId() != null) { | 
|             queryWrapper.lambda().eq(Company::getId, pageWrap.getModel().getId()); | 
|         } | 
|         if (pageWrap.getModel().getCreator() != null) { | 
|             queryWrapper.lambda().eq(Company::getCreator, pageWrap.getModel().getCreator()); | 
|         } | 
|         if (pageWrap.getModel().getCreateDate() != null) { | 
|             queryWrapper.lambda().ge(Company::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate())); | 
|             queryWrapper.lambda().le(Company::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate())); | 
|         } | 
|         if (pageWrap.getModel().getEditor() != null) { | 
|             queryWrapper.lambda().eq(Company::getEditor, pageWrap.getModel().getEditor()); | 
|         } | 
|         if (pageWrap.getModel().getEditDate() != null) { | 
|             queryWrapper.lambda().ge(Company::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate())); | 
|             queryWrapper.lambda().le(Company::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate())); | 
|         } | 
|         if (pageWrap.getModel().getIsdeleted() != null) { | 
|             queryWrapper.lambda().eq(Company::getIsdeleted, pageWrap.getModel().getIsdeleted()); | 
|         } | 
|         if (pageWrap.getModel().getName() != null) { | 
|             queryWrapper.lambda().like(Company::getName, pageWrap.getModel().getName()); | 
|         } | 
|         if (pageWrap.getModel().getRemark() != null) { | 
|             queryWrapper.lambda().eq(Company::getRemark, pageWrap.getModel().getRemark()); | 
|         } | 
|         if (pageWrap.getModel().getStatus() != null) { | 
|             queryWrapper.lambda().eq(Company::getStatus, pageWrap.getModel().getStatus()); | 
|         } | 
|         if (pageWrap.getModel().getSortnum() != null) { | 
|             queryWrapper.lambda().eq(Company::getSortnum, pageWrap.getModel().getSortnum()); | 
|         } | 
|         if (pageWrap.getModel().getType() != null) { | 
|             queryWrapper.lambda().eq(Company::getType, pageWrap.getModel().getType()); | 
|         } | 
|         if (pageWrap.getModel().getCode() != null) { | 
|             queryWrapper.lambda().eq(Company::getCode, pageWrap.getModel().getCode()); | 
|         } | 
|         if (pageWrap.getModel().getUsername() != null) { | 
|             queryWrapper.lambda().like(Company::getUsername, pageWrap.getModel().getUsername()); | 
|         } | 
|         if (pageWrap.getModel().getTaxCode() != null) { | 
|             queryWrapper.lambda().eq(Company::getTaxCode, pageWrap.getModel().getTaxCode()); | 
|         } | 
|         if (pageWrap.getModel().getTaxAccount() != null) { | 
|             queryWrapper.lambda().eq(Company::getTaxAccount, pageWrap.getModel().getTaxAccount()); | 
|         } | 
|         if (pageWrap.getModel().getTaxBank() != null) { | 
|             queryWrapper.lambda().eq(Company::getTaxBank, pageWrap.getModel().getTaxBank()); | 
|         } | 
|         if (pageWrap.getModel().getTaxAddr() != null) { | 
|             queryWrapper.lambda().eq(Company::getTaxAddr, pageWrap.getModel().getTaxAddr()); | 
|         } | 
|         if (pageWrap.getModel().getInvoiceEmail() != null) { | 
|             queryWrapper.lambda().eq(Company::getInvoiceEmail, pageWrap.getModel().getInvoiceEmail()); | 
|         } | 
|         if (pageWrap.getModel().getInvoiceAddr() != null) { | 
|             queryWrapper.lambda().eq(Company::getInvoiceAddr, pageWrap.getModel().getInvoiceAddr()); | 
|         } | 
|         if (pageWrap.getModel().getPhone() != null) { | 
|             queryWrapper.lambda().like(Company::getPhone, pageWrap.getModel().getPhone()); | 
|         } | 
|         if (pageWrap.getModel().getEmail() != null) { | 
|             queryWrapper.lambda().eq(Company::getEmail, pageWrap.getModel().getEmail()); | 
|         } | 
|         if (pageWrap.getModel().getSignStatus() != null) { | 
|             queryWrapper.lambda().eq(Company::getSignStatus, pageWrap.getModel().getSignStatus()); | 
|         } | 
|         if (pageWrap.getModel().getSignDate() != null) { | 
|             queryWrapper.lambda().ge(Company::getSignDate, Utils.Date.getStart(pageWrap.getModel().getSignDate())); | 
|             queryWrapper.lambda().le(Company::getSignDate, Utils.Date.getEnd(pageWrap.getModel().getSignDate())); | 
|         } | 
|         for(PageWrap.SortData sortData: pageWrap.getSorts()) { | 
|             if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { | 
|                 queryWrapper.orderByDesc(sortData.getProperty()); | 
|             } else { | 
|                 queryWrapper.orderByAsc(sortData.getProperty()); | 
|             } | 
|         } | 
|         return PageData.from(companyMapper.selectPage(page, queryWrapper)); | 
|     } | 
|   | 
|     @Override | 
|     public long count(Company company) { | 
|         QueryWrapper<Company> wrapper = new QueryWrapper<>(company); | 
|         return companyMapper.selectCount(wrapper); | 
|     } | 
| } |