package com.gk.firework.Service.ServiceImpl; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; 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.gk.firework.Domain.*; import com.gk.firework.Domain.Enum.*; import com.gk.firework.Domain.Exception.BusinessException; import com.gk.firework.Domain.Utils.*; import com.gk.firework.Domain.Utils.Properties; import com.gk.firework.Domain.Vo.EnterpriseExportVo; import com.gk.firework.Domain.Vo.EnterpriseVo; import com.gk.firework.Mapper.EnterpriseMapper; import com.gk.firework.Mapper.HiddenDangerReportMapper; import com.gk.firework.Mapper.SaleOrderInfoMapper; import com.gk.firework.Service.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import java.io.*; import java.lang.reflect.Field; import java.text.SimpleDateFormat; import java.util.*; import java.util.regex.Pattern; @Service("enterpriseService") public class EnterpriseServiceImpl extends ServiceImpl implements EnterpriseService { @Autowired EnterpriseMapper enterpriseMapper; @Autowired EnterpriseApplyService enterpriseApplyService; @Autowired EnterpriseService enterpriseService; @Autowired EnterpriseStaffService enterpriseStaffService; @Autowired UserService userService; @Autowired UserRolesService userRolesService; @Autowired RoleService roleService; @Autowired ProductService productService; @Autowired HiddenDangerReportMapper hiddenDangerReportMapper; @Autowired HiddenDangerReportDetailService hiddenDangerReportDetailService; @Autowired ExcelExportService excelExportService; @Autowired SaleOrderInfoMapper saleOrderInfoMapper; /** * @Description: 新增申请,根据前端提交状态commitStatus来判断增加还是删除 parentId为编辑对象id * @date 2021/3/17 15:57 */ @Override @Transactional public void addApply(EnterpriseApply enterpriseApply,UserInfo user) throws IllegalAccessException { if (enterpriseApply.getCommitstatus() == CommitStatus.MOD) { //新建一个修改给过后的数据 Enterprise enp2 = new Enterprise(); //ParentId为修改企业的id enp2.setId(enterpriseApply.getParentid()); //以下是页面可以修改的值 enp2.setSafetysupervision(enterpriseApply.getSafetysupervision()); enp2.setEconomicindustry(enterpriseApply.getEconomicindustry()); enp2.setEnterprisenumber(enterpriseApply.getEnterprisenumber()); enp2.setEnterprisename(enterpriseApply.getEnterprisename()); enp2.setEnterpriseemail(enterpriseApply.getEnterpriseemail()); enp2.setEnterprisesize(enterpriseApply.getEnterprisesize()); enp2.setEnterprisestatus(enterpriseApply.getEnterprisestatus()); enp2.setDepartment(enterpriseApply.getDepartment()); enp2.setDevicenumber(enterpriseApply.getDevicenumber()); enp2.setOfficeaddress(enterpriseApply.getOfficeaddress()); enp2.setProvince(enterpriseApply.getProvince()); enp2.setCity(enterpriseApply.getCity()); enp2.setDistrict(enterpriseApply.getDistrict()); enp2.setStreet(enterpriseApply.getStreet()); enp2.setCommittee(enterpriseApply.getCommittee()); enp2.setSecuritysupervisory(enterpriseApply.getSecuritysupervisory()); enp2.setOfficephone(enterpriseApply.getOfficephone()); enp2.setFaxphone(enterpriseApply.getFaxphone()); enp2.setRegisteraddress(enterpriseApply.getRegisteraddress()); enp2.setRegistertype(enterpriseApply.getRegistertype()); enp2.setEstablishtime(enterpriseApply.getEstablishtime()); enp2.setQqnumber(enterpriseApply.getQqnumber()); enp2.setPostcode(enterpriseApply.getPostcode()); enp2.setRoomnumber(enterpriseApply.getRoomnumber()); enp2.setEconomictype(enterpriseApply.getEconomictype()); enp2.setProductioncontent(enterpriseApply.getProductioncontent()); enp2.setBusinessregisternumber(enterpriseApply.getBusinessregisternumber()); enp2.setOrganizationstructurecode(enterpriseApply.getOrganizationstructurecode()); enp2.setValidstarttime(enterpriseApply.getValidstarttime()); enp2.setValidendtime(enterpriseApply.getValidendtime()); enp2.setEmployeenumber(enterpriseApply.getEmployeenumber()); enp2.setIspaysafetyinsurance(enterpriseApply.getIspaysafetyinsurance()); enp2.setInsurancecontractnumber(enterpriseApply.getInsurancecontractnumber()); enp2.setInsurestarttime(enterpriseApply.getInsurestarttime()); enp2.setInsureendtime(enterpriseApply.getInsureendtime()); enp2.setIsmajorhazard(enterpriseApply.getIsmajorhazard()); enp2.setIsspecialequipment(enterpriseApply.getIsspecialequipment()); enp2.setIsoccupationalhealthinfo(enterpriseApply.getIsoccupationalhealthinfo()); enp2.setIsspecialpersonnel(enterpriseApply.getIsspecialpersonnel()); enp2.setSelfrecordingcycle(enterpriseApply.getSelfrecordingcycle()); enp2.setIsparententerprise(enterpriseApply.getIsparententerprise()); enp2.setParententerpriseid(enterpriseApply.getParententerpriseid()); enp2.setParententerprisename(enterpriseApply.getParententerprisename()); //密码 enp2.setPassword(enterpriseApply.getPassword()); Enterprise enp1 = this.getById(enterpriseApply.getParentid()); if (enp1 == null) { } //以下是非对比内容;设置对比内容相同 assert enp1 != null; enp2.setInfocreatetime(enp1.getInfocreatetime()); enp2.setInfoupdatetime(enp1.getInfoupdatetime()); enp2.setInfoupdateby(enp1.getInfoupdateby()); enp2.setInfocreateby(enp1.getInfocreateby()); enp2.setValidflag(enp1.getValidflag()); enp2.setInfocreatebyname(enp1.getInfocreatebyname()); enp2.setInfoupdatebyname(enp1.getInfoupdatebyname()); //两个对象差 String updateFields = compareObj(Enterprise.class, enp1, enp2); //提出时间 enterpriseApply.setApplytime(new Date()); //等待审批 enterpriseApply.setApplystatus(ApplyStatus.APPROVING); enterpriseApply.setValidflag(true); //更新字段 enterpriseApply.setUpdatefields(updateFields); { enterpriseApply.setSafetysupervision(enp1.getSafetysupervision()); enterpriseApply.setEconomicindustry(enp1.getEconomicindustry()); enterpriseApply.setEnterprisenumber(enp1.getEnterprisenumber()); enterpriseApply.setEnterprisename(enp1.getEnterprisename()); enterpriseApply.setEnterpriseemail(enp1.getEnterpriseemail()); enterpriseApply.setEnterprisesize(enp1.getEnterprisesize()); enterpriseApply.setEnterprisestatus(enp1.getEnterprisestatus()); enterpriseApply.setDepartment(enp1.getDepartment()); enterpriseApply.setDevicenumber(enp1.getDevicenumber()); enterpriseApply.setOfficeaddress(enp1.getOfficeaddress()); enterpriseApply.setProvince(enp1.getProvince()); enterpriseApply.setCity(enp1.getCity()); enterpriseApply.setDistrict(enp1.getDistrict()); enterpriseApply.setStreet(enp1.getStreet()); enterpriseApply.setCommittee(enp1.getCommittee()); enterpriseApply.setSecuritysupervisory(enp1.getSecuritysupervisory()); enterpriseApply.setOfficephone(enp1.getOfficephone()); enterpriseApply.setFaxphone(enp1.getFaxphone()); enterpriseApply.setRegisteraddress(enp1.getRegisteraddress()); enterpriseApply.setRegistertype(enp1.getRegistertype()); enterpriseApply.setEstablishtime(enp1.getEstablishtime()); enterpriseApply.setQqnumber(enp1.getQqnumber()); enterpriseApply.setPostcode(enp1.getPostcode()); enterpriseApply.setRoomnumber(enp1.getRoomnumber()); enterpriseApply.setEconomictype(enp1.getEconomictype()); enterpriseApply.setProductioncontent(enp1.getProductioncontent()); enterpriseApply.setBusinessregisternumber(enp1.getBusinessregisternumber()); enterpriseApply.setOrganizationstructurecode(enp1.getOrganizationstructurecode()); enterpriseApply.setValidstarttime(enp1.getValidstarttime()); enterpriseApply.setValidendtime(enp1.getValidendtime()); enterpriseApply.setEmployeenumber(enp1.getEmployeenumber()); enterpriseApply.setIspaysafetyinsurance(enp1.getIspaysafetyinsurance()); enterpriseApply.setInsurancecontractnumber(enp1.getInsurancecontractnumber()); enterpriseApply.setInsurestarttime(enp1.getInsurestarttime()); enterpriseApply.setInsureendtime(enp1.getInsureendtime()); enterpriseApply.setIsmajorhazard(enp1.getIsmajorhazard()); enterpriseApply.setIsspecialequipment(enp1.getIsspecialequipment()); enterpriseApply.setIsoccupationalhealthinfo(enp1.getIsoccupationalhealthinfo()); enterpriseApply.setIsspecialpersonnel(enp1.getIsspecialpersonnel()); enterpriseApply.setSelfrecordingcycle(enp1.getSelfrecordingcycle()); enterpriseApply.setIsparententerprise(enp1.getIsparententerprise()); enterpriseApply.setParententerprisename(enp1.getParententerprisename()); enterpriseApply.setApplypersonname(user.getUsername()); enterpriseApply.setApplypersonid(user.getId()); UserInfo userInfo = userService.selectOneByCompanyId(enp1.getId()); enterpriseApply.setPassword(userInfo.getPassword()); } //新增审批 enterpriseApplyService.save(enterpriseApply); //修改企业信息状态 Enterprise updateEp = new Enterprise(); updateEp.setId(enp1.getId()); enterpriseService.updateById(updateEp); } if (enterpriseApply.getCommitstatus() == CommitStatus.DEL) { //提出时间 enterpriseApply.setApplytime(new Date()); //等待审批 enterpriseApply.setApplystatus(ApplyStatus.APPROVING); Enterprise enp = this.getById(enterpriseApply.getParentid()); enterpriseApply.setSafetysupervision(enp.getSafetysupervision()); enterpriseApply.setEconomicindustry(enp.getEconomicindustry()); enterpriseApply.setEnterprisenumber(enp.getEnterprisenumber()); enterpriseApply.setEnterprisename(enp.getEnterprisename()); enterpriseApply.setEnterpriseemail(enp.getEnterpriseemail()); enterpriseApply.setEnterprisesize(enp.getEnterprisesize()); enterpriseApply.setEnterprisestatus(enp.getEnterprisestatus()); enterpriseApply.setDepartment(enp.getDepartment()); enterpriseApply.setDevicenumber(enp.getDevicenumber()); enterpriseApply.setOfficeaddress(enp.getOfficeaddress()); enterpriseApply.setProvince(enp.getProvince()); enterpriseApply.setCity(enp.getCity()); enterpriseApply.setDistrict(enp.getCity()); enterpriseApply.setStreet(enp.getStreet()); enterpriseApply.setCommittee(enp.getCommittee()); enterpriseApply.setSecuritysupervisory(enp.getSecuritysupervisory()); enterpriseApply.setOfficephone(enp.getOfficephone()); enterpriseApply.setFaxphone(enp.getFaxphone()); enterpriseApply.setRegisteraddress(enp.getRegisteraddress()); enterpriseApply.setRegistertype(enp.getRegistertype()); enterpriseApply.setEstablishtime(enp.getEstablishtime()); enterpriseApply.setQqnumber(enp.getQqnumber()); enterpriseApply.setPostcode(enp.getPostcode()); enterpriseApply.setRoomnumber(enp.getRoomnumber()); enterpriseApply.setEconomictype(enp.getEconomictype()); enterpriseApply.setProductioncontent(enp.getProductioncontent()); enterpriseApply.setBusinessregisternumber(enp.getBusinessregisternumber()); enterpriseApply.setOrganizationstructurecode(enp.getOrganizationstructurecode()); enterpriseApply.setValidstarttime(enp.getValidstarttime()); enterpriseApply.setValidendtime(enp.getValidendtime()); enterpriseApply.setEmployeenumber(enp.getEmployeenumber()); enterpriseApply.setIspaysafetyinsurance(enp.getIspaysafetyinsurance()); enterpriseApply.setInsurancecontractnumber(enp.getInsurancecontractnumber()); enterpriseApply.setInsurestarttime(enp.getInsurestarttime()); enterpriseApply.setInsureendtime(enp.getInsureendtime()); enterpriseApply.setIsmajorhazard(enp.getIsmajorhazard()); enterpriseApply.setIsspecialequipment(enp.getIsspecialequipment()); enterpriseApply.setIsoccupationalhealthinfo(enp.getIsoccupationalhealthinfo()); enterpriseApply.setIsspecialpersonnel(enp.getIsspecialpersonnel()); enterpriseApply.setSelfrecordingcycle(enp.getSelfrecordingcycle()); enterpriseApply.setIsparententerprise(enp.getIsparententerprise()); enterpriseApply.setParententerprisename(enp.getParententerprisename()); enterpriseApply.setValidflag(true); enterpriseApply.setApplypersonid(user.getId()); enterpriseApply.setApplypersonname(user.getUsername()); enterpriseApply.setPassword(enp.getPassword()); enterpriseApply.setParententerpriseid(enp.getParententerpriseid()); enterpriseApplyService.save(enterpriseApply); //修改企业信息状态 Enterprise updateEp = new Enterprise(); updateEp.setId(enp.getId()); enterpriseService.updateById(updateEp); } } /** * @Description: 查询企业信息 * @date 2021/3/31 9:31 */ @Override public IPage selectEnterprise(Page page, Map filter,UserInfo user) { UserInfo userInfo = userService.getById(user.getId()); Map params = new HashMap<>(); //四类人 params.put("leagalrepresentative", Constants.LEGAL_REPRESENTATIVE); params.put("mainprincipal", Constants.MAIN_PRINCIPAL); params.put("securityofficer", Constants.SECURITY_OFFICER); params.put("informationofficer", Constants.INFORMATION_OFFICER); //监管部门 根据 地区看所有 params.put("province", userInfo.getProvince()); params.put("city", userInfo.getCity()); params.put("district", userInfo.getArea()); params.put("street", userInfo.getTown()); params.put("committee", userInfo.getCommunity()); //企业用户 params.put("enterprisenumber", userInfo.getCompanynumber()); //过滤条件 { //企业类型 params.put("safetySupervision", filter.get("safetysupervision")); //经济类型 params.put("economicIndustry", filter.get("economicindustry")); //许可证有效|过期 params.put("valid", filter.get("valid")); //登录有效 loginvalid 1 就是有效 params.put("loginValid",filter.get("loginValid")); //地区 params.put("filterProvince", filter.get("province")); params.put("filterCity", filter.get("city")); params.put("filterDistrict", filter.get("district")); params.put("filterStreet", filter.get("street")); params.put("filterCommittee", filter.get("committee")); //企业名称 params.put("enterprisename", filter.get("enterprisename")); } List list = enterpriseMapper.selectPages(page, params); return page.setRecords(list); } /** * @Description: 新建企业信息 * @date 2021/3/31 10:49 */ @Override @Transactional public void addEnterprise(Enterprise enterprise,UserInfo userInfo) { UserInfo userInfo2 = userService.getById(userInfo.getId()); if (userInfo2.getCompanynumber() != null) { throw new BusinessException("没有新增权限"); } //计算安全监管分类个数 { int i = countBySafetySupervision(enterprise.getSafetysupervision()); enterprise.setDivideflag((byte) (DivideFlagUtil.enterpriseDivideFlagGenerate(i))); } //新建企业信息 { enterprise.setInfocreatetime(new Date()); enterprise.setInfocreateby(userInfo.getId()); enterprise.setInfocreatebyname(userInfo.getUsername()); enterprise.setInfoupdatetime(new Date()); enterprise.setValidflag(true); String randomStr = Element.random(Element.class).getValue().toString()+Element.random(Element.class).getValue().toString(); while (enterpriseService.isDuplicate2BitCode(randomStr)) { randomStr = Element.random(Element.class).getValue().toString()+Element.random(Element.class).getValue().toString(); } enterprise.setTwobitcode(randomStr); //执行 this.save(enterprise); } //新建企业关联staff { List staff = new ArrayList<>(); if (enterprise.getLegalrepresentative() != null) { enterprise.getLegalrepresentative().setId(null); enterprise.getLegalrepresentative().setType(Constants.LEGAL_REPRESENTATIVE); enterprise.getLegalrepresentative().setBelongid(enterprise.getId()); enterprise.getLegalrepresentative().setBelongname(enterprise.getEnterprisename()); staff.add(enterprise.getLegalrepresentative()); } if (enterprise.getInformationofficer() != null) { enterprise.getInformationofficer().setId(null); enterprise.getInformationofficer().setType(Constants.INFORMATION_OFFICER); enterprise.getInformationofficer().setBelongid(enterprise.getId()); enterprise.getInformationofficer().setBelongname(enterprise.getEnterprisename()); staff.add(enterprise.getInformationofficer()); } if (enterprise.getSecurityofficer() != null) { enterprise.getSecurityofficer().setId(null); enterprise.getSecurityofficer().setType(Constants.SECURITY_OFFICER); enterprise.getSecurityofficer().setBelongid(enterprise.getId()); enterprise.getSecurityofficer().setBelongname(enterprise.getEnterprisename()); staff.add(enterprise.getSecurityofficer()); } if (enterprise.getMainprincipal() != null) { enterprise.getMainprincipal().setId(null); enterprise.getMainprincipal().setType(Constants.MAIN_PRINCIPAL); enterprise.getMainprincipal().setBelongid(enterprise.getId()); enterprise.getMainprincipal().setBelongname(enterprise.getEnterprisename()); staff.add(enterprise.getMainprincipal()); } if (staff.size()>0) enterpriseStaffService.saveBatch(staff); } //保存信息两份到用户表 { UserInfo user = new UserInfo(); user.setIsdel((byte) 0); user.setUsername(enterprise.getEnterprisename()); user.setCompany(enterprise.getEnterprisename()); user.setEmail(enterprise.getEnterpriseemail()); user.setDepartment(enterprise.getDepartment()); user.setIssale((byte) 0); //普通用户 user.setType(3); user.setProvince(enterprise.getProvince()); user.setPhone(enterprise.getOfficephone()); user.setCity(enterprise.getCity()); user.setArea(enterprise.getDistrict()); user.setTown(enterprise.getStreet()); user.setCommunity(enterprise.getCommittee()); //提出人为创建人 user.setCreatedby(user.getUsername()); user.setCompanyid(enterprise.getId()); user.setCreateddate(new Date()); //设置密码 user.setPassword(Base64Encrypt.encode(enterprise.getPassword().getBytes())); user.setCompanynumber(enterprise.getEnterprisenumber()); //执行 userService.save(user); //如果有企业角色设置用户角色为企业 UserRolesInfo uri = new UserRolesInfo(); uri.setUserid(user.getId()); if (enterprise.getSafetysupervision().equals(EnterpriseSafetySupervision.PRODUCE.getMsg())){ uri.setRoleid((long) 3); }else { uri.setRoleid((long) 2); } userRolesService.save(uri); //终端机 user.setId(null); user.setIssale((byte) 1); user.setStatus((byte) 1); Calendar instance = Calendar.getInstance(); instance.setTime(enterprise.getValidendtime()); instance.set(Calendar.HOUR_OF_DAY, 23); instance.set(Calendar.MINUTE, 59); instance.set(Calendar.SECOND, 59); user.setExpiredate(instance.getTime()); userService.save(user); //终端机角色不需要 } } /** * @Description: 修改企业信息 * @date 2021/3/31 10:48 */ @Override @Transactional public void modEnterprise(Enterprise enterprise,UserInfo user) { //修改企业信息 { enterprise.setInfoupdatetime(new Date()); enterprise.setInfoupdateby(user.getId()); enterprise.setInfoupdatebyname(user.getUsername()); //企业名称和企业编号 不会修改 enterprise.setEnterprisenumber(null); enterprise.setEnterprisename(null); this.updateById(enterprise); } //修改企业关联staff { ///更新的员工 List staff = new ArrayList<>(); //新增的员工 List adds = new ArrayList<>(); if (enterprise.getSecurityofficer() != null) { if (enterprise.getSecurityofficer().getId() != null) { enterprise.getSecurityofficer().setBelongname(enterprise.getEnterprisename()); staff.add(enterprise.getSecurityofficer()); }else{ enterprise.getSecurityofficer().setType(Constants.SECURITY_OFFICER); enterprise.getSecurityofficer().setBelongid(enterprise.getId()); enterprise.getSecurityofficer().setBelongname(enterprise.getEnterprisename()); adds.add(enterprise.getSecurityofficer()); } } if (enterprise.getLegalrepresentative() != null) { if (enterprise.getLegalrepresentative().getId() != null) { enterprise.getLegalrepresentative().setBelongname(enterprise.getEnterprisename()); staff.add(enterprise.getLegalrepresentative()); }else{ enterprise.getLegalrepresentative().setType(Constants.LEGAL_REPRESENTATIVE); enterprise.getLegalrepresentative().setBelongid(enterprise.getId()); enterprise.getLegalrepresentative().setBelongname(enterprise.getEnterprisename()); adds.add(enterprise.getLegalrepresentative()); } } if (enterprise.getMainprincipal() != null) { if (enterprise.getMainprincipal().getId() != null) { enterprise.getMainprincipal().setBelongname(enterprise.getEnterprisename()); staff.add(enterprise.getMainprincipal()); }else{ enterprise.getMainprincipal().setType(Constants.MAIN_PRINCIPAL); enterprise.getMainprincipal().setBelongid(enterprise.getId()); enterprise.getMainprincipal().setBelongname(enterprise.getEnterprisename()); adds.add(enterprise.getMainprincipal()); } } if (enterprise.getInformationofficer() != null) { if (enterprise.getInformationofficer().getId() != null) { enterprise.getInformationofficer().setBelongname(enterprise.getEnterprisename()); staff.add(enterprise.getInformationofficer()); }else{ enterprise.getInformationofficer().setType(Constants.INFORMATION_OFFICER); enterprise.getInformationofficer().setBelongid(enterprise.getId()); enterprise.getInformationofficer().setBelongname(enterprise.getEnterprisename()); adds.add(enterprise.getInformationofficer()); } } if (staff.size()>0) enterpriseStaffService.updateBatchById(staff); if (adds.size() > 0) { enterpriseStaffService.saveBatch(adds); } } //修改人员 { //修改用户和终端机 List userList = userService.selectByCompanyId(enterprise.getId(),0); if (userList.size() != 2) { throw new BusinessException("发生错误,请联系管理员"); } for (UserInfo info : userList) { if (StringUtils.isNotBlank(enterprise.getPassword())) { info.setPassword(Base64Encrypt.encode(enterprise.getPassword().getBytes())); } info.setEmail(enterprise.getEnterpriseemail()); info.setCompany(enterprise.getEnterprisename()); info.setDepartment(enterprise.getDepartment()); info.setProvince(enterprise.getProvince()); info.setPhone(enterprise.getOfficephone()); info.setCity(enterprise.getCity()); info.setArea(enterprise.getDistrict()); info.setTown(enterprise.getStreet()); info.setCommunity(enterprise.getCommittee()); //修改许可证 同时修改issale=1的用户有效期 if (info.getIssale() == (byte) 1) { //设置过期时间为选择当日的23:59:59 if (enterprise.getValidendtime() != null) { Calendar instance = Calendar.getInstance(); instance.setTime(enterprise.getValidendtime()); instance.set(Calendar.HOUR_OF_DAY, 23); instance.set(Calendar.MINUTE, 59); instance.set(Calendar.SECOND, 59); info.setExpiredate(instance.getTime()); } } userService.updateById(info); } } } @Override public int countBySafetySupervision(String safetySupervision) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(Enterprise::getSafetysupervision, safetySupervision) .eq(Enterprise::getValidflag, true); return enterpriseMapper.selectCount(queryWrapper); } @Override public IPage selectParentEnterprise(Page page, Map filter) { //重新赋一遍 Map params = new HashMap<>(); params.put("safetysupervision", filter.get("safetysupervision")); params.put("enterprisename", filter.get("enterprisename")); params.put("province", filter.get("province")); params.put("city", filter.get("city")); params.put("district", filter.get("district")); params.put("street", filter.get("street")); List list = enterpriseMapper.selectParentPage(page, params); return page.setRecords(list); } @Override @Transactional public void delEnterprise(Long id, UserInfo user) { UserInfo userInfo = userService.getById(user.getId()); Integer type = userInfo.getType(); if (type != 1 && type != 2) { throw new BusinessException("没有权限删除"); } //企业信息删除 Enterprise enterprise = this.getById(id); if (enterprise == null) { throw new BusinessException("企业信息发生改变,请联系管理员"); } enterprise.setInfoupdatebyname(user.getUsername()); enterprise.setInfoupdatetime(new Date()); enterprise.setValidflag(false); this.updateById(enterprise); //删除用户 userService.deleteOneByCompanyId(id); //根据企业名称去删除所有产品 productService.deleteByEnterpriseName(enterprise.getEnterprisename(),user.getUsername()); } /** * @Description: 企业信息新增的校验 * @date 2021/4/2 16:54 */ @Override public void checkAddEnterprise(Enterprise enterprise, Boolean flag) { if (StringUtils.isBlank(enterprise.getSafetysupervision())) { throw new BusinessException("安全监管分类不能为空"); } if (StringUtils.isBlank(enterprise.getEconomicindustry())) { throw new BusinessException("国民经济行业分类不能为空"); } if (StringUtils.isBlank(enterprise.getDepartment())) { throw new BusinessException("行政主管部门不能为空"); } if (flag) { if (StringUtils.isBlank(enterprise.getPassword())) { throw new BusinessException("密码不能为空"); } String PW_PATTERN = "(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[~!@#$%^&*_.]).{8,}"; if (!enterprise.getPassword().matches(PW_PATTERN)){ throw new BusinessException("密码必须8位以上,并且包含大小写字母、数字、特殊符号三种以上"); } } if (StringUtils.isBlank(enterprise.getEnterprisenumber())) { throw new BusinessException("单位编号不能为空"); } //编号格式判断-不能有特殊字符 String regEx= "[`~!@#$%^&*()+=|{}':;,\\[\\].<>/?!¥…()—【】‘;:”“’。,、?\\\\]"; Pattern p = Pattern.compile(regEx); if (p.matcher(enterprise.getEnterprisenumber()).find()) { throw new BusinessException("单位编号不能包含特殊字符"); } //单位编号判断重复 if (this.isDuplicateNumber(enterprise.getEnterprisenumber(),enterprise.getId())) { throw new BusinessException("单位编号已经存在"); } if (StringUtils.isBlank(enterprise.getEnterprisename())) { throw new BusinessException("企业名称不能为空"); } //单位名称不能重复 if (this.isDuplicateEnterpriseName(enterprise.getEnterprisename(), enterprise.getId())) { throw new BusinessException("企业名称已经存在"); } if (!enterprise.getSafetysupervision().contains("长期") && StringUtils.isBlank(enterprise.getRegisteraddress())) { throw new BusinessException("单位注册地址不能为空"); } if (!enterprise.getSafetysupervision().contains("短期") && StringUtils.isBlank(enterprise.getOfficeaddress())) { throw new BusinessException("单位办公地址不能为空"); } if (StringUtils.isBlank(enterprise.getProvince())) { throw new BusinessException("所属省不能为空"); } if (StringUtils.isBlank(enterprise.getCity())) { throw new BusinessException("所属市不能为空"); } if (StringUtils.isBlank(enterprise.getOfficephone())) { throw new BusinessException("办公电话不能为空"); } if (!enterprise.getSafetysupervision().contains("短期") && !enterprise.getSafetysupervision().contains("长期") && StringUtils.isBlank(enterprise.getFaxphone())) { throw new BusinessException("传真电话不能为空"); } if (StringUtils.isBlank(enterprise.getDistrict())) { throw new BusinessException("所属区不能为空"); } if (StringUtils.isBlank(enterprise.getBusinessregisternumber())) { throw new BusinessException("工商注册号不能为空"); } if (StringUtils.isBlank(enterprise.getOrganizationstructurecode())) { throw new BusinessException("组织结构代码不能为空"); } if (StringUtils.isBlank(enterprise.getProductioncontent())) { throw new BusinessException("生产经营项目不能为空"); } if (enterprise.getEstablishtime() == null) { throw new BusinessException("成立时间不能为空"); } if (StringUtils.isBlank(enterprise.getInsurancecompany())) { throw new BusinessException("保险公司名称不能为空,没有请填写无"); } //非临时,有投必填 if (!enterprise.getSafetysupervision().contains("临时")) { if (enterprise.getIspaysafetyinsurance()) { if (StringUtils.isBlank(enterprise.getInsurancecontractnumber())) { throw new BusinessException("保单号不能为空"); } if (enterprise.getInsureamount() == null) { throw new BusinessException("投保金额不能为空"); } } } //法定负责人 if (enterprise.getLegalrepresentative() != null) { if (StringUtils.isBlank(enterprise.getLegalrepresentative().getName())) { throw new BusinessException("法定负责人姓名不能为空"); } if (StringUtils.isBlank(enterprise.getLegalrepresentative().getPost())) { throw new BusinessException("法定负责人职务不能为空"); } if (StringUtils.isBlank(enterprise.getLegalrepresentative().getIdentify())) { throw new BusinessException("法定负责人身份证号不能为空"); } if (StringUtils.isBlank(enterprise.getLegalrepresentative().getPhone())) { throw new BusinessException("法定负责人手机号不能为空"); } if (StringUtils.isBlank(enterprise.getLegalrepresentative().getOfficephone())) { throw new BusinessException("法定负责人办公室电话不能为空"); } if (StringUtils.isBlank(enterprise.getLegalrepresentative().getNumber())) { throw new BusinessException("法定负责人合格证编号不能为空"); } if (enterprise.getLegalrepresentative().getValidendtime() == null ||enterprise.getLegalrepresentative().getValidstarttime() == null ) { throw new BusinessException("法定负责人有效期不能为空"); } } //主要负责人 if (enterprise.getMainprincipal() != null) { if (StringUtils.isBlank(enterprise.getMainprincipal().getName())) { throw new BusinessException("主要负责人姓名不能为空"); } if (StringUtils.isBlank(enterprise.getMainprincipal().getPost())) { throw new BusinessException("主要负责人职务不能为空"); } if (StringUtils.isBlank(enterprise.getMainprincipal().getPhone())) { throw new BusinessException("主要负责人手机号不能为空"); } if (StringUtils.isBlank(enterprise.getMainprincipal().getOfficephone())) { throw new BusinessException("主要负责人办公室电话不能为空"); } if (StringUtils.isBlank(enterprise.getMainprincipal().getNumber())) { throw new BusinessException("主要负责人合格证编号不能为空"); } if (enterprise.getMainprincipal().getValidendtime() == null ||enterprise.getMainprincipal().getValidstarttime() == null ) { throw new BusinessException("主要负责人有效期不能为空"); } } } /** * @Description: 企业信息修改的校验 * @date 2021/4/6 10:15 */ @Override public void checkModEnterprise(Enterprise enterprise) { if (enterprise.getId() == null) { throw new BusinessException("修改企业信息时发生错误,请联系管理员"); } Enterprise theOne = this.getById(enterprise.getId()); if (theOne == null) { throw new BusinessException("修改企业信息已发生变化,请联系管理员"); } if (StringUtils.isBlank(enterprise.getSafetysupervision())) { throw new BusinessException("安全监管分类不能为空"); } assert theOne.getSafetysupervision() != null; if (theOne.getSafetysupervision().equals(enterprise.getSafetysupervision())) { //接下来和新增判断一样 this.checkAddEnterprise(enterprise,false); } } /** * @Description: 判断企业编号是否重复 * @date 2021/4/20 16:18 */ @Override public boolean isDuplicateNumber(String enterpriseNumber, Long id) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(Enterprise::getEnterprisenumber, enterpriseNumber) .eq(Enterprise::getValidflag, true); //修改时:除自己以外是否还有重复 if (id != null) { queryWrapper.ne(Enterprise::getId, id); } return enterpriseMapper.selectCount(queryWrapper) > 0; } /** * @Description: 判断企业名是否重复 * @date 2021/4/20 16:16 */ @Override public boolean isDuplicateEnterpriseName(String enterpriseName, Long id) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(Enterprise::getEnterprisename, enterpriseName) .eq(Enterprise::getValidflag, true); //修改时:除自己以外是否还有重复 if (id != null) { queryWrapper.ne(Enterprise::getId, id); } return enterpriseMapper.selectCount(queryWrapper) > 0; } @Override public List findEnterpriseIdsByLocation(String province, String city, String district, String street, String committee) { if(province == null || province.isEmpty()){ return null; } if(province == null && city == null && district == null && street == null && committee == null){ return null; } return enterpriseMapper.selectEnterpriseIdsByLocation(province,city,district,street,committee); } @Override public List findEnterpriseListByLocation(String province, String city, String district, String street, String committee) { return enterpriseMapper.selectEnterpriseListByLocation(province,city,district,street,committee); } /** * @Description: 根据企业单位编号获取企业信息和实名登记和自查自改 * @date 2021/4/14 8:25 */ @Override public Map getEnterpriseDetail(String enterpriseNumber, Integer days, String starttime, String endtime) { if (StringUtils.isBlank(enterpriseNumber)) { throw new BusinessException("企业单位编号为空"); } Calendar calendar = new GregorianCalendar(); calendar.setTime(new Date()); //当前日期往前推days天 calendar.add(Calendar.DATE, -days); Date startTime = calendar.getTime(); Map map = new HashMap<>(); EnterpriseVo enterpriseVo = selctSimpleByNumber(enterpriseNumber); map.put("enterprise", enterpriseVo); //实名登记数量(入库数,销售数) Map registerNumObj = enterpriseMapper.selectInAndOut(enterpriseNumber,startTime); map.put("registerNum", registerNumObj); //自检自查报告 List reports= hiddenDangerReportMapper.getReportList(enterpriseNumber, startTime); if (reports.size() > 0) { for (Map report : reports) { int overduenum = hiddenDangerReportDetailService.countOverdueByReportCode((String) report.get("code")); //过期并且未处理 report.put("overduenum",overduenum); } } map.put("reports", reports); Map params = new HashMap<>(); params.put("enterprisename", enterpriseVo.getEnterprisename()); params.put("starttime", starttime); params.put("endtime", endtime); List saleRecord = saleOrderInfoMapper.selectSaleRecord3(params); map.put("saleRecord",saleRecord); return map; } @Override public EnterpriseVo selctSimpleByNumber(String enterprisenumber) { return enterpriseMapper.selctSimpleByNumber(enterprisenumber); } @Override public Enterprise selectEnterpriseByCompanyId(Long companyid) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(Enterprise::getId,companyid); return enterpriseMapper.selectOne(queryWrapper); } @Override public List selectProduceEnterprise() { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(Enterprise::getSafetysupervision, EnterpriseSafetySupervision.PRODUCE.getMsg()); return enterpriseMapper.selectList(queryWrapper); } @Override public List selectSaleEnterprise() { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.ne(Enterprise::getSafetysupervision, EnterpriseSafetySupervision.PRODUCE.getMsg()); queryWrapper.eq(Enterprise::getValidflag,1); queryWrapper.eq(Enterprise::getEnterprisestatus ,"ON"); return enterpriseMapper.selectList(queryWrapper); } @Override public List selectSaleEnterprise(Mapparam) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); if (StringUtils.isNotBlank(param.get("filterProvince").toString())){ queryWrapper.eq(Enterprise::getProvince,param.get("filterProvince")); } if (StringUtils.isNotBlank(param.get("filterCity").toString())){ queryWrapper.eq(Enterprise::getCity,param.get("filterCity")); } if (StringUtils.isNotBlank(param.get("filterDistrict").toString())){ queryWrapper.eq(Enterprise::getDistrict,param.get("filterDistrict")); } if (StringUtils.isNotBlank(param.get("filterStreet").toString())){ queryWrapper.eq(Enterprise::getStreet,param.get("filterStreet")); } if (StringUtils.isNotBlank(param.get("filterCommittee").toString())){ queryWrapper.eq(Enterprise::getCommittee,param.get("filterCommittee")); } if (StringUtils.isNotBlank(param.get("safetysupervision").toString())){ queryWrapper.eq(Enterprise::getSafetysupervision,param.get("safetysupervision")); } if (StringUtils.isNotBlank(param.get("parententerprisename").toString())){ queryWrapper.like(Enterprise::getParententerprisename,param.get("parententerprisename")); } queryWrapper.ne(Enterprise::getSafetysupervision, EnterpriseSafetySupervision.PRODUCE.getMsg()); queryWrapper.eq(Enterprise::getEnterprisestatus, EnterpriseStatus.ON); queryWrapper.eq(Enterprise::getValidflag, true); return enterpriseMapper.selectList(queryWrapper); } @Override public List selectSaleEnterprise(Map param, Page page) { return enterpriseMapper.selectSaleEnterprise(param,page); } @Override public Enterprise selectEnterpriseByNumber(String number) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(Enterprise::getEnterprisenumber, number) .eq(Enterprise::getValidflag,true); return enterpriseMapper.selectOne(queryWrapper); } @Override public List getAllLocation(String city) { return enterpriseMapper.getAllLocation(city); } @Override public List getRetailStatisticsByArea() { Map params = new HashMap<>(); params.put("province", "新疆维吾尔自治区"); return enterpriseMapper.getRetailStatisticsByArea(params); } /** * @Description: 导出企业信息 * @date 2021/4/19 8:51 */ @Override public List selectExportEnterprise(Map filter, UserInfo user) { UserInfo userInfo = userService.getById(user.getId()); Map params = new HashMap<>(); //监管部门 根据 地区看所有 params.put("enterprisenumber", userInfo.getCompanynumber()); params.put("province", userInfo.getProvince()); params.put("city", userInfo.getCity()); params.put("district", userInfo.getArea()); params.put("street", userInfo.getTown()); params.put("committee", userInfo.getCommunity()); //企业用户 params.put("companyId", userInfo.getCompanyid()); //过滤条件 { //企业类型 params.put("safetySupervision", filter.get("safetysupervision")); //经济类型 params.put("economicIndustry", filter.get("economicindustry")); //许可证有效|过期 params.put("valid", filter.get("valid")); //地区 params.put("filterProvince", filter.get("province")); params.put("filterCity", filter.get("city")); params.put("filterDistrict", filter.get("district")); params.put("filterStreet", filter.get("street")); params.put("filterCommittee", filter.get("committee")); //企业名称 params.put("enterprisename", filter.get("enterprisename")); } return enterpriseMapper.selectExportEnterprise(params); } /** * @Description: 企业信息导入 * @date 2021/4/19 9:08 */ @Override public BooleanReason importEnterprise(MultipartFile file,UserInfo userInfo) { UserInfo user = userService.getById(userInfo.getId()); if (user.getCompanynumber() != null) { throw new BusinessException("没有导入权限"); } if(!FileOptUtils.isDirExists(Properties.filePath)){ throw new BusinessException("发生错误或不为目录"); } if (file == null || file.getSize() == 0) { throw new BusinessException("上传文件或者请求出现问题"); } if(!FileOptUtils.isDirExists(Properties.filePath)){ throw new BusinessException("发生错误或不为目录"); } SimpleDateFormat sdf = new SimpleDateFormat( "yyyyMMddHHmmssSSS" ); String fileSave = Properties.filePath + userInfo.getUsername() + "_" + sdf.format(new Date()) +".xlsx"; try { file.transferTo(new File(fileSave)); InputStream in = new FileInputStream(fileSave); String name = file.getOriginalFilename(); assert name != null; Boolean isExcel2007 = name.substring(name.lastIndexOf(".") + 1).endsWith("xlsx"); return excelExportService.importEnterpriseExcel(in, userInfo, isExcel2007); } catch (FileNotFoundException e) { e.printStackTrace(); throw new BusinessException("找不到文件"); } catch (IOException e) { e.printStackTrace(); throw new BusinessException("发生错误,请联系管理员"); } } @Override public int getSaleNum() { return enterpriseMapper.getSaleNum(Collections.singletonMap("safetysupervision",EnterpriseSafetySupervision.PRODUCE.getMsg())); } @Override public List getEnterpriseSaleDetail(String enterpriseNumber, String itemcode, String starttime, String endtime) { return saleOrderInfoMapper.getEnterpriseSaleDetail(enterpriseNumber, itemcode, starttime, endtime); } @Override public Enterprise selectEnterpriseByName(String name) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(Enterprise::getEnterprisename, name) .eq(Enterprise::getValidflag,true); return enterpriseMapper.selectOne(queryWrapper); } /** * @Description: 停用企业 * @date 2021/5/28 15:58 */ @Override @Transactional public void deactivateEnterprise(Long id,String enterprisenumber, UserInfo user) { Enterprise enterprise = null; if (id == null && StringUtils.isBlank(enterprisenumber)) throw new BusinessException("参数传递错误"); if (id != null) enterprise = this.getById(id); if (enterprise == null) enterprise = this.selectEnterpriseByNumber(enterprisenumber); if (enterprise == null) { throw new BusinessException("没有该企业"); } //1.修改企业状态为 停止 this.setEnterpriseStatus(EnterpriseStatus.OFF, enterprise.getId()); //2.修改企业用户isdel=1 3.修改终端用户isdel=1 List userList = userService.selectByCompanyId(enterprise.getId(),0); if (userList.size() != 2) { throw new BusinessException("发生错误,请联系管理员"); } for (UserInfo info : userList) { userService.deleteById(info.getId()); } } @Override @Transactional public void activateEnterprise(Long id,String enterprisenumber, UserInfo user) { Enterprise enterprise = null; if (id == null && StringUtils.isBlank(enterprisenumber)) throw new BusinessException("参数传递错误"); if (id != null) enterprise = this.getById(id); if (enterprise == null) enterprise = this.selectEnterpriseByNumber(enterprisenumber); if (enterprise == null) { throw new BusinessException("没有该企业"); } //1.修改企业状态为 启用 this.setEnterpriseStatus(EnterpriseStatus.ON, enterprise.getId()); //2.修改企业用户isdel 0 //3.修改终端用户isdel 0 List userList = userService.selectByCompanyId(enterprise.getId(),1); if (userList.size() != 2) { throw new BusinessException("发生错误,请联系管理员"); } for (UserInfo info : userList) { userService.recoverOneById(info.getId()); } } @Override public void setEnterpriseStatus(EnterpriseStatus status, Long id) { if (id == null) { throw new BusinessException("参数传递不能为空"); } LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); updateWrapper.set(Enterprise::getEnterprisestatus, status) .eq(Enterprise::getId, id); this.update(updateWrapper); } @Override public int countAllUndoneEnterprise(UserInfo userInfo) { Map params = new HashMap<>(); params.put("province", userInfo.getProvince()); params.put("city", userInfo.getCity()); params.put("district", userInfo.getArea()); params.put("street", userInfo.getTown()); params.put("committee", userInfo.getCommunity()); return enterpriseMapper.countAllUndoneEnterprise(params); } @Override public int countAllEnterpriseExpired(UserInfo userInfo) { Map params = new HashMap<>(); params.put("province", userInfo.getProvince()); params.put("city", userInfo.getCity()); params.put("district", userInfo.getArea()); params.put("street", userInfo.getTown()); params.put("committee", userInfo.getCommunity()); return enterpriseMapper.countAllEnterpriseExpired(params); } @Override public void addEnterpriseByRegister(RegisterInfo registerInfo, UserInfo userInfo) { Enterprise enterprise = new Enterprise(); enterprise.setSafetysupervision(registerInfo.getType()); enterprise.setEnterprisenumber(registerInfo.getEnterprisenumber()); enterprise.setEnterprisename(registerInfo.getEnterprisename()); enterprise.setProvince(registerInfo.getProvince()); enterprise.setCity(registerInfo.getCity()); enterprise.setDistrict(registerInfo.getDistrict()); enterprise.setStreet(registerInfo.getStreet()); enterprise.setCommittee(registerInfo.getCommittee()); enterprise.setRegisteraddress(registerInfo.getAddress()); enterprise.setPassword(Base64Encrypt.encode(registerInfo.getPassword().getBytes())); int i = enterpriseService.countBySafetySupervision(enterprise.getSafetysupervision()); enterprise.setDivideflag((byte) (DivideFlagUtil.enterpriseDivideFlagGenerate(i))); enterprise.setInfocreatebyname(userInfo.getUsername()); enterprise.setInfocreateby(userInfo.getId()); enterprise.setInfoupdatetime(new Date()); enterprise.setValidflag(true); enterpriseService.save(enterprise); //保存用户 UserInfo user = new UserInfo(); user.setIsdel((byte) 0); user.setProvince(enterprise.getProvince()); user.setCity(enterprise.getCity()); user.setArea(enterprise.getDistrict()); user.setUsername(enterprise.getEnterprisename()); user.setCompany(enterprise.getEnterprisename()); user.setIssale((byte) 0); //普通用户 user.setType(3); user.setCreatedby(user.getUsername()); user.setCompanyid(enterprise.getId()); user.setCreateddate(new Date()); //设置密码 user.setPassword(enterprise.getPassword()); user.setCompanynumber(enterprise.getEnterprisenumber()); //执行 userService.save(user); //如果有企业角色设置用户角色为企业 UserRolesInfo uri = new UserRolesInfo(); uri.setUserid(user.getId()); if (enterprise.getSafetysupervision().equals(EnterpriseSafetySupervision.PRODUCE.getMsg())){ uri.setRoleid((long) 3); }else { uri.setRoleid((long) 2); } userRolesService.save(uri); //终端机 user.setId(null); user.setUsername(enterprise.getEnterprisenumber()); user.setIssale((byte) 1); user.setStatus((byte) 1); userService.save(user); } @Override public List selectListUnderSupervision(Integer type,UserInfo userInfo) { List result = new ArrayList<>(); Map params = new HashMap<>(); UserInfo user = userService.getById(userInfo); if (StringUtils.isBlank(user.getCompanynumber())) { params.put("province", user.getProvince()); params.put("city", user.getCity()); params.put("district", user.getArea()); params.put("street", user.getTown()); params.put("committee", user.getCommunity()); params.put("safetysupervision", EnterpriseSafetySupervision.PRODUCE.getMsg()); //1生产企业,2销售企业 params.put("type", type); result= enterpriseMapper.selectListUnderSupervision(params); } return result; } @Override public IPage selectUndoneList(Page page, Map filter,UserInfo userInfo) { Map params = new HashMap<>(); List undoneList = null; UserInfo user = userService.getById(userInfo); //可见度 if (StringUtils.isBlank(user.getCompanynumber())) { params.put("province", user.getProvince()); params.put("city", user.getCity()); params.put("district", user.getArea()); params.put("street", user.getTown()); params.put("committee", user.getCommunity()); //过滤条件 params.put("enterprisename", filter.get("enterprisename")); params.put("filterProvince", filter.get("province")); params.put("filterCity", filter.get("city")); params.put("filterDistrict", filter.get("district")); params.put("filterStreet", filter.get("street")); params.put("filterCommittee", filter.get("committee")); undoneList = enterpriseMapper.selectUndoneList(page,params); } return page.setRecords(undoneList); } @Override public List selectExportUndoneList(Map filter, UserInfo userInfo) { Map params = new HashMap<>(); List undoneList = null; UserInfo user = userService.getById(userInfo); //可见度 if (StringUtils.isBlank(user.getCompanynumber())) { params.put("province", user.getProvince()); params.put("city", user.getCity()); params.put("district", user.getArea()); params.put("street", user.getTown()); params.put("committee", user.getCommunity()); //过滤条件 params.put("enterprisename", filter.get("enterprisename")); params.put("filterProvince", filter.get("province")); params.put("filterCity", filter.get("city")); params.put("filterDistrict", filter.get("district")); params.put("filterStreet", filter.get("street")); params.put("filterCommittee", filter.get("committee")); undoneList = enterpriseMapper.selectUndoneList(params); } return undoneList; } @Override public boolean isDuplicate2BitCode(String twoBit) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(Enterprise::getTwobitcode, twoBit) .eq(Enterprise::getValidflag,true); return enterpriseMapper.selectCount(queryWrapper) > 0; } @Override public IPage selectExpiredList(Page page, Map filter, UserInfo userInfo) { Map params = new HashMap<>(); List expiredList = null; UserInfo user = userService.getById(userInfo); //可见度 if (StringUtils.isBlank(user.getCompanynumber())) { params.put("province", user.getProvince()); params.put("city", user.getCity()); params.put("district", user.getArea()); params.put("street", user.getTown()); params.put("committee", user.getCommunity()); //过滤条件 params.put("enterprisename", filter.get("enterprisename")); params.put("filterProvince", filter.get("province")); params.put("filterCity", filter.get("city")); params.put("filterDistrict", filter.get("district")); params.put("filterStreet", filter.get("street")); params.put("filterCommittee", filter.get("committee")); expiredList = enterpriseMapper.selectExpiredList(page,params); } return page.setRecords(expiredList); } @Override public List selectExportExpiredList(Map filter, UserInfo userInfo) { Map params = new HashMap<>(); List expiredList = null; UserInfo user = userService.getById(userInfo); //可见度 if (StringUtils.isBlank(user.getCompanynumber())) { params.put("province", user.getProvince()); params.put("city", user.getCity()); params.put("district", user.getArea()); params.put("street", user.getTown()); params.put("committee", user.getCommunity()); //过滤条件 params.put("enterprisename", filter.get("enterprisename")); params.put("filterProvince", filter.get("province")); params.put("filterCity", filter.get("city")); params.put("filterDistrict", filter.get("district")); params.put("filterStreet", filter.get("street")); params.put("filterCommittee", filter.get("committee")); expiredList = enterpriseMapper.selectExpiredList(params); } return expiredList; } @Override public List selectSubEnterprise(Long enterpriseId) { Enterprise parent = enterpriseService.getById(enterpriseId); if (parent == null) throw new BusinessException("不存在企业信息"); LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(Enterprise::getParententerprisename, parent.getEnterprisename()) .eq(Enterprise::getValidflag,true) .eq(Enterprise::getEnterprisestatus,EnterpriseStatus.ON); return enterpriseMapper.selectList(queryWrapper); } @Override public List getEnterpriseByLimit(Map condition) { return enterpriseMapper.getEnterpriseByLimit(condition); } @Override public Integer getEnterpriseByLimitCount(Map condition) { return enterpriseMapper.getEnterpriseByLimitCount(condition); } @Override public BooleanReason importDlCompanyCode(MultipartFile file, UserInfo userInfo) { UserInfo user = userService.getById(userInfo.getId()); if (user.getCompanynumber() != null) throw new BusinessException("没有导入权限"); if (file == null || file.getSize() == 0) throw new BusinessException("上传文件或者请求出现问题"); try { String name = file.getOriginalFilename(); InputStream in = file.getInputStream(); assert name != null; boolean isExcel2007 = name.substring(name.lastIndexOf(".") + 1).endsWith("xlsx"); return excelExportService.importDLCompanyCodeExcel(in, userInfo, isExcel2007); } catch (BusinessException e) { throw new BusinessException(e.getMessage()); } catch (Exception e) { e.printStackTrace(); throw new BusinessException("导入失败,请联系管理员"); } } @Override public List exportDlCompanyCode() { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper .select(Enterprise::getEnterprisename, Enterprise::getDlcompanycode, Enterprise::getDeviceid) .eq(Enterprise::getValidflag, true) .isNotNull(Enterprise::getDlcompanycode); return enterpriseMapper.selectList(queryWrapper); } @Override public List selectAllDlCompanyCodeIsNotNull() { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper .select(Enterprise::getId, Enterprise::getEnterprisenumber, Enterprise::getDlcompanycode) .eq(Enterprise::getValidflag,true) .isNull(Enterprise::getDeviceid) .isNotNull(Enterprise::getDlcompanycode); return enterpriseMapper.selectList(queryWrapper); } @Override public void updateCompanyCode(Enterprise e) { enterpriseMapper.updateCompanyCodeAndSetDeviceIdNull(e); } @Override public List selectSaleEnterpriseForUpload() { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.ne(Enterprise::getSafetysupervision, EnterpriseSafetySupervision.PRODUCE.getMsg()); queryWrapper.eq(Enterprise::getValidflag,1); queryWrapper.eq(Enterprise::getEnterprisestatus ,"ON"); queryWrapper.isNotNull(Enterprise::getDlcompanycode); queryWrapper.isNotNull(Enterprise::getDeviceid); return enterpriseMapper.selectList(queryWrapper); } /* 判断是否注销 true 注销,flase 正常 */ @Override public boolean isLogOut(String companynumber) { boolean flag = false; if (StringUtils.isBlank(companynumber)) throw new BusinessException("企业编号为空"); LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); Enterprise enterprise = enterpriseMapper.selectOne( queryWrapper.select(Enterprise::getEnterprisename,Enterprise::getLoginvalidflag) .eq(Enterprise::getEnterprisenumber, companynumber)); if (enterprise == null) throw new BusinessException("企业不存在"); if ( enterprise.getLoginvalidflag() != null && !enterprise.getLoginvalidflag()) flag = true; return flag; } @Override @Transactional public void logout(List ids, UserInfo user) { if (user.getType() != 1) throw new BusinessException("没有权限"); if (ids == null || ids.size() < 1) throw new BusinessException("参数为空"); for (Long id : ids) { enterpriseMapper.updateLoginValidFlag(id,false); } } @Override public void recoverLogin(Long id, UserInfo user) { if (user.getType() != 1) throw new BusinessException("没有权限"); if(id == null) throw new BusinessException("参数为空"); enterpriseMapper.updateLoginValidFlag(id,true); } @Override @Transactional public void recoverLoginBatch(List ids, UserInfo user) { if (user.getType() != 1) throw new BusinessException("没有权限"); if (ids == null || ids.size() < 1) throw new BusinessException("参数为空"); for (Long id : ids) { enterpriseMapper.updateLoginValidFlag(id,true); } } @Override public List selectEnterpriseListByNameLike(String name) { if(name == null || name.isEmpty()){ return null; }else { return enterpriseMapper.selectEnterpriseListByNameLike(name); } } private String compareObj(Class clazz,Object obj1,Object obj2) throws IllegalAccessException { Class class1 = obj1.getClass(); Class class2 = obj2.getClass(); Field[] fields = clazz.getDeclaredFields(); JSONObject jo = new JSONObject(); if (fields.length> 0) { for (Field field : fields) { field.setAccessible(true); String name = field.getName(); if (!name.equals("serialVersionUID")&& !name.equals("divideflag") && !Objects.equals(field.get(obj1),field.get(obj2))) { if (field.get(obj1) != null && field.get(obj2) == null){ jo.put(name, ""); }else{ if (name.equals("legalrepresentative") || name.equals("mainprincipal")|| name.equals("securityofficer")|| name.equals("informationofficer")){ String o1 = (String) field.get(obj1); String o2 = (String) field.get(obj2); JSONObject jsonObject1 = JSONObject.parseObject(o1); JSONObject jsonObject2 = JSONObject.parseObject(o2); Map innerMap1 = jsonObject1.getInnerMap(); Map innerMap2 = jsonObject2.getInnerMap(); for (Map.Entry entry : innerMap1.entrySet()) { String f = entry.getKey(); Object value1 = innerMap1.get(f); Object value2= innerMap2.get(f); if (!Objects.equals(value1, value2)) { jo.put(f, value2); } } } jo.put(name, field.get(obj2)); } } } } return jo.isEmpty()?null:jo.toJSONString(); } }