From 59e91a4e9ddaf23cebb12993c774aa899ab22d16 Mon Sep 17 00:00:00 2001
From: 郑永安 <zyazyz250@sina.com>
Date: Mon, 19 Jun 2023 14:22:45 +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