From 2fcd97552d16718cc7997629fd637a73a5a4483f Mon Sep 17 00:00:00 2001 From: 郑永安 <zyazyz250@sina.com> Date: 星期一, 19 六月 2023 14:44:19 +0800 Subject: [PATCH] 删除 --- src/main/java/com/gk/firework/Service/ServiceImpl/EnterpriseServiceImpl.java | 1566 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 1,566 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/gk/firework/Service/ServiceImpl/EnterpriseServiceImpl.java b/src/main/java/com/gk/firework/Service/ServiceImpl/EnterpriseServiceImpl.java new file mode 100644 index 0000000..69b4bd8 --- /dev/null +++ b/src/main/java/com/gk/firework/Service/ServiceImpl/EnterpriseServiceImpl.java @@ -0,0 +1,1566 @@ +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<EnterpriseMapper, Enterprise> 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<Enterprise> selectEnterprise(Page<Enterprise> page, Map filter,UserInfo user) { + + UserInfo userInfo = userService.getById(user.getId()); + Map<String, Object> 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<Enterprise> 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<EnterpriseStaff> 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<EnterpriseStaff> staff = new ArrayList<>(); + //新增的员工 + List<EnterpriseStaff> 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<UserInfo> 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<Enterprise> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(Enterprise::getSafetysupervision, safetySupervision) + .eq(Enterprise::getValidflag, true); + return enterpriseMapper.selectCount(queryWrapper); + } + + @Override + public IPage<Enterprise> selectParentEnterprise(Page<Enterprise> page, Map filter) { + //重新赋一遍 + Map<String, Object> 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<Enterprise> 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<Enterprise> 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<Enterprise> 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<Long> 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<Enterprise> 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<String, Object> map = new HashMap<>(); + EnterpriseVo enterpriseVo = selctSimpleByNumber(enterpriseNumber); + map.put("enterprise", enterpriseVo); + //实名登记数量(入库数,销售数) + Map registerNumObj = enterpriseMapper.selectInAndOut(enterpriseNumber,startTime); + map.put("registerNum", registerNumObj); + //自检自查报告 + List<Map> 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<String, Object> params = new HashMap<>(); + params.put("enterprisename", enterpriseVo.getEnterprisename()); + params.put("starttime", starttime); + params.put("endtime", endtime); + List<Map> 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<Enterprise> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(Enterprise::getId,companyid); + return enterpriseMapper.selectOne(queryWrapper); + } + + @Override + public List<Enterprise> selectProduceEnterprise() { + LambdaQueryWrapper<Enterprise> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(Enterprise::getSafetysupervision, EnterpriseSafetySupervision.PRODUCE.getMsg()); + return enterpriseMapper.selectList(queryWrapper); + } + + @Override + public List<Enterprise> selectSaleEnterprise() { + LambdaQueryWrapper<Enterprise> 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<Enterprise> selectSaleEnterprise(Map<String, Object>param) { + LambdaQueryWrapper<Enterprise> 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<Enterprise> selectSaleEnterprise(Map<String, Object> param, Page<Enterprise> page) { + return enterpriseMapper.selectSaleEnterprise(param,page); + } + + @Override + public Enterprise selectEnterpriseByNumber(String number) { + LambdaQueryWrapper<Enterprise> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(Enterprise::getEnterprisenumber, number) + .eq(Enterprise::getValidflag,true); + return enterpriseMapper.selectOne(queryWrapper); + } + + @Override + public List<Map> getAllLocation(String city) { + return enterpriseMapper.getAllLocation(city); + } + + @Override + public List<Map> getRetailStatisticsByArea() { + Map<String, Object> params = new HashMap<>(); + params.put("province", "新疆维吾尔自治区"); + return enterpriseMapper.getRetailStatisticsByArea(params); + } + + /** + * @Description: 导出企业信息 + * @date 2021/4/19 8:51 + */ + @Override + public List<EnterpriseExportVo> selectExportEnterprise(Map filter, UserInfo user) { + + UserInfo userInfo = userService.getById(user.getId()); + Map<String, Object> 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<SaleOrderDetailInfo> getEnterpriseSaleDetail(String enterpriseNumber, String itemcode, String starttime, String endtime) { + return saleOrderInfoMapper.getEnterpriseSaleDetail(enterpriseNumber, itemcode, starttime, endtime); + } + + @Override + public Enterprise selectEnterpriseByName(String name) { + LambdaQueryWrapper<Enterprise> 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<UserInfo> 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<UserInfo> 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<Enterprise> updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.set(Enterprise::getEnterprisestatus, status) + .eq(Enterprise::getId, id); + this.update(updateWrapper); + } + + @Override + public int countAllUndoneEnterprise(UserInfo userInfo) { + Map<String, Object> 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<String, Object> 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<Enterprise> selectListUnderSupervision(Integer type,UserInfo userInfo) { + List<Enterprise> result = new ArrayList<>(); + Map<String, Object> 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<Enterprise> page, Map filter,UserInfo userInfo) { + Map<Object, Object> params = new HashMap<>(); + List<Enterprise> 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<Enterprise> selectExportUndoneList(Map filter, UserInfo userInfo) { + Map<Object, Object> params = new HashMap<>(); + List<Enterprise> 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<Enterprise> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(Enterprise::getTwobitcode, twoBit) + .eq(Enterprise::getValidflag,true); + return enterpriseMapper.selectCount(queryWrapper) > 0; + } + + @Override + public IPage selectExpiredList(Page<Enterprise> page, Map filter, UserInfo userInfo) { + Map<Object, Object> params = new HashMap<>(); + List<Enterprise> 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<Enterprise> selectExportExpiredList(Map<String, Object> filter, UserInfo userInfo) { + Map<Object, Object> params = new HashMap<>(); + List<Enterprise> 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<Enterprise> selectSubEnterprise(Long enterpriseId) { + + Enterprise parent = enterpriseService.getById(enterpriseId); + if (parent == null) throw new BusinessException("不存在企业信息"); + LambdaQueryWrapper<Enterprise> 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<Enterprise> getEnterpriseByLimit(Map<String, Object> condition) { + return enterpriseMapper.getEnterpriseByLimit(condition); + } + + @Override + public Integer getEnterpriseByLimitCount(Map<String, Object> 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<Enterprise> exportDlCompanyCode() { + LambdaQueryWrapper<Enterprise> 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<Enterprise> selectAllDlCompanyCodeIsNotNull() { + LambdaQueryWrapper<Enterprise> 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<Enterprise> selectSaleEnterpriseForUpload() { + LambdaQueryWrapper<Enterprise> 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<Enterprise> 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<Long> 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<Long> 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<Enterprise> 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<String, Object> innerMap1 = jsonObject1.getInnerMap(); + Map<String, Object> innerMap2 = jsonObject2.getInnerMap(); + for (Map.Entry<String, Object> 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(); + } + + +} -- Gitblit v1.9.2