From 3c607f075990d6d3238daa7db1c68eaae8126424 Mon Sep 17 00:00:00 2001
From: zhongrj <123456>
Date: Mon, 22 Aug 2022 15:05:47 +0800
Subject: [PATCH] 新增数据同步方式及配置,当选择为sql时则为数据库直连同步,全局替换所有的同步方法,用户修改,离职,注销修改调整,文件上传去除同步推送上传
---
src/main/java/org/springblade/modules/information/controller/InformationController.java | 368 +++++++++++++++++++++++++++++++++++++--------------
1 files changed, 265 insertions(+), 103 deletions(-)
diff --git a/src/main/java/org/springblade/modules/information/controller/InformationController.java b/src/main/java/org/springblade/modules/information/controller/InformationController.java
index 00c0ea7..0c836cb 100644
--- a/src/main/java/org/springblade/modules/information/controller/InformationController.java
+++ b/src/main/java/org/springblade/modules/information/controller/InformationController.java
@@ -17,33 +17,49 @@
package org.springblade.modules.information.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import com.alibaba.fastjson.JSON;
import org.springblade.common.cache.DictCache;
-import org.springblade.common.constant.FtpConstant;
+import org.springblade.common.config.FtpConfig;
import org.springblade.common.enums.DictEnum;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.cache.utils.CacheUtil;
import org.springblade.core.excel.util.ExcelUtil;
+import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.support.Kv;
+import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.core.tool.utils.DigestUtil;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.StringUtil;
import org.springblade.modules.FTP.FtpUtil;
import org.springblade.modules.FTP.OutJson;
import org.springblade.modules.information.entity.Information;
+import org.springblade.modules.information.excel.ExportInformationExcel;
+import org.springblade.modules.information.excel.ExportInformationSecurityStatistics;
import org.springblade.modules.information.excel.InforExcel;
import org.springblade.modules.information.excel.InforImporter;
import org.springblade.modules.information.service.IInformationService;
import org.springblade.modules.information.vo.InformationVO;
import org.springblade.modules.system.entity.Dept;
+import org.springblade.modules.system.entity.Role;
+import org.springblade.modules.system.entity.User;
import org.springblade.modules.system.service.IDeptService;
+import org.springblade.modules.system.service.IRoleService;
+import org.springblade.modules.system.service.IUserService;
+import org.springblade.modules.system.service.MyAsyncService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
+import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.*;
import java.text.DateFormat;
@@ -77,6 +93,12 @@
private final IInformationService informationService;
private final IDeptService iDeptService;
+
+
+ private final IUserService userService;
+
+ private final IRoleService roleService;
+ private final MyAsyncService myAsyncService;
/**
* 详情
@@ -128,53 +150,38 @@
@PostMapping("/save")
@ApiOperationSupport(order = 4)
@ApiOperation(value = "新增", notes = "传入information")
- public R save(@Valid @RequestBody Information information) throws Exception {
+ @Transactional(rollbackFor = Exception.class)
+ public R save(@Valid @RequestBody Information information) {
Dept dept = new Dept();
//自招保安公司
if (information.getStats().equals("0")) {
- Long i = 1420222768149966850L;
- dept.setParentId(i);
- dept.setTenantId("000000");
- dept.setDeptName(information.getEnterprisename());
+ dept.setParentId(1420222768149966850L);
dept.setAncestors("0,1420222768149966850");
- dept.setDeptCategory(1);
}
//保安培训公司
if (information.getStats().equals("1")) {
- Long i = 1418458374477549569L;
- dept.setParentId(i);
- dept.setTenantId("000000");
- dept.setDeptName(information.getEnterprisename());
+ dept.setParentId(1418458374477549569L);
dept.setAncestors("0,1418458374477549569");
- dept.setDeptCategory(1);
}
//保安服务公司
if (information.getStats().equals("2")) {
- Long i = 1413470343230877697L;
- dept.setParentId(i);
- dept.setTenantId("000000");
- dept.setDeptName(information.getEnterprisename());
+ dept.setParentId(1413470343230877697L);
dept.setAncestors("0,1413470343230877697");
- dept.setDeptCategory(1);
}
//武装守押公司
if (information.getStats().equals("3")) {
- Long i = 1420222961377357825L;
- dept.setParentId(i);
- dept.setTenantId("000000");
- dept.setDeptName(information.getEnterprisename());
+ dept.setParentId(1420222961377357825L);
dept.setAncestors("0,1420222961377357825");
- dept.setDeptCategory(1);
}
//跨区域保安公司
if (information.getStats().equals("4")) {
- Long i = 1425366663452196865L;
- dept.setParentId(i);
- dept.setTenantId("000000");
- dept.setDeptName(information.getEnterprisename());
+ dept.setParentId(1425366663452196865L);
dept.setAncestors("0,1425366663452196865");
- dept.setDeptCategory(1);
}
+ dept.setTenantId("000000");
+ dept.setDeptName(information.getEnterprisename());
+ dept.setDeptCategory(1);
+
if (iDeptService.submit(dept)) {
CacheUtil.clear(SYS_CACHE);
// 返回懒加载树更新节点所需字段
@@ -183,21 +190,90 @@
String id = kv.get("id").toString();
information.setDepartmentid(id);
}
- informationService.save(information);
- String formatStr = new SimpleDateFormat("yyyy-MM-dd").format(information.getEstablishtime());
- //Integer id = information.getId();
- String s = "insert into sys_information(id,creditCode,enterpriseName,representative,establishTime," +
- "registeredCapital,organizationCode,registrationNumber, enterprises, address," +
- " business,region,registration,industry,departmentid,stats,jurisdiction,representativecell,contacts,contactscell) " +
- "values(" + "'" + information.getId() + "'" + "," + "'" + information.getCreditcode() + "'" + "," + "'" + information.getEnterprisename() + "'" + "," + "'" + information.getRepresentative() + "'" + "," +
- "'" + formatStr + "'" + "," + "'" + information.getRegisteredcapital() + "'" + "," + "'" + information.getOrganizationcode() + "'" + "," + "'" + information.getRegistrationnumber() + "'" + "," + "'" + information.getEnterprises() + "'" + "," + "'" +
- information.getAddress() + "'" + "," + "'" + information.getBusiness() + "'" + "," + "'" +
- information.getRegion() + "'" + "," + "'" + information.getRegistration() + "'" + "," + "'" + information.getIndustry() + "'" + "," + "'" + information.getDepartmentid() + "'" + "," +
- "'" + information.getStats() + "'" + "," + "'" + information.getJurisdiction() + "'" + "," + "'" + information.getRepresentativecell() + "'" + "," +
- "'" + information.getContacts() + "'" + "," + "'" + information.getContactscell() + "'" + ");" +
- "insert into blade_dept(id,parent_id,tenant_id,dept_name,ancestors,dept_category) values(" + "'" + information.getDepartmentid() + "'" + "," + "'" + dept.getParentId() + "'" + ","
- + "'" + dept.getTenantId() + "'" + "," + "'" + information.getEnterprisename() + "'" + "," + "'" + dept.getAncestors() + "'" + "," + "'" + dept.getDeptCategory() + "'" + ")";
- FtpUtil.sqlFileUpload(s);
+
+ information.setCreateTime(new Date());
+
+ //公司新增
+ boolean status = informationService.save(information);
+
+ //公司新增成功则创建默认账户,公司名即为账号名,默认密码为 123456
+ if (status) {
+ User user = new User();
+ user.setAccount(information.getEnterprisename());
+ user.setPassword(DigestUtil.encrypt("123456"));
+ Integer userCount = userService.selectCount(information.getEnterprisename());
+ if (userCount > 0 && Func.isEmpty(user.getId())) {
+ throw new ServiceException(StringUtil.format("当前用户 [{}] 已存在!", user.getAccount()));
+ }
+ user.setDeptId(information.getDepartmentid());
+ user.setTenantId("000000");
+ user.setCreateUser(Long.parseLong(information.getCreateUserId()));
+ user.setCreateTime(new Date());
+ user.setUpdateTime(new Date());
+ user.setStatus(1);
+ user.setIsDeleted(0);
+ //分配保安角色
+ //如果是本市保安公司,分公司,自招保安公司,分配保安公司管理员角色,如果是培训学校,则分配的是培训公司管理员角色
+ Role role = new Role();
+ if (information.getStats().equals("1")) {
+ role.setRoleAlias("培训公司管理员");
+ } else {
+ role.setRoleAlias("保安公司管理员");
+ }
+ Role oneRole = roleService.getOne(Condition.getQueryWrapper(role));
+ user.setRoleId(oneRole.getId().toString());
+ //插入用户数据
+ boolean save = userService.save(user);
+ if (save) {
+ Integer isDeleted = 0;
+ String s = "insert into sys_information(id,creditCode,enterpriseName,representative" +
+ ",registeredCapital,organizationCode,registrationNumber, enterprises, address," +
+ " business,region,registration,industry,departmentid,stats,jurisdiction,representativecell," +
+ "contacts,contactscell,create_time,create_user_id) " +
+ "values(" + "'" + information.getId() + "'" +
+ "," + "'" + information.getCreditcode() + "'" +
+ "," + "'" + information.getEnterprisename() + "'" +
+ "," + "'" + information.getRepresentative() + "'" +
+ "," + "'" + information.getRegisteredcapital() + "'" +
+ "," + "'" + information.getOrganizationcode() + "'" +
+ "," + "'" + information.getRegistrationnumber() + "'" +
+ "," + "'" + information.getEnterprises() + "'" +
+ "," + "'" + information.getAddress() + "'" +
+ "," + "'" + information.getBusiness() + "'" +
+ "," + "'" + information.getRegion() + "'" +
+ "," + "'" + information.getRegistration() + "'" +
+ "," + "'" + information.getIndustry() + "'" +
+ "," + "'" + information.getDepartmentid() + "'" +
+ "," + "'" + information.getStats() + "'" +
+ "," + "'" + information.getJurisdiction() + "'" +
+ "," + "'" + information.getRepresentativecell() + "'" +
+ "," + "'" + information.getContacts() + "'" +
+ "," + "'" + information.getContactscell() + "'" +
+ "," + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(information.getCreateTime()) + "'" +
+ "," + "'" + information.getCreateUserId() + "'" + ");" +
+ "insert into blade_dept(id,parent_id,tenant_id,dept_name,ancestors,dept_category,is_deleted) values(" + "'" + information.getDepartmentid() + "'" + "," + "'" + dept.getParentId() + "'" + ","
+ + "'" + dept.getTenantId() + "'" +
+ "," + "'" + information.getEnterprisename() + "'" +
+ "," + "'" + dept.getAncestors() + "'" +
+ "," + "'" + dept.getDeptCategory() + "'" +
+ "," + "'" + isDeleted + "'" + ");" +
+ "insert into blade_user(id,tenant_id,account,password,dept_id,create_user,create_time,update_time,status,is_deleted,role_id) " +
+ "values(" + "'" + user.getId() + "'" +
+ "," + "'" + user.getTenantId() + "'"
+ + "," + "'" + user.getAccount() + "'" +
+ "," + "'" + user.getPassword() + "'" +
+ "," + "'" + user.getDeptId() + "'" +
+ "," + "'" + user.getCreateUser() + "'" +
+ "," + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(user.getCreateTime()) + "'" +
+ "," + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(user.getUpdateTime()) + "'" +
+ "," + "'" + user.getStatus() + "'" +
+ "," + "'" + user.getIsDeleted() + "'" +
+ "," + "'" + user.getRoleId() + "'" + ")";
+ //FtpUtil.sqlFileUpload(s);
+ myAsyncService.dataSync(s);
+
+ }
+ }
return R.success("成功");
}
@@ -208,49 +284,52 @@
@ApiOperationSupport(order = 5)
@ApiOperation(value = "修改", notes = "传入information")
public R update(@Valid @RequestBody Information information) throws Exception {
- informationService.updateById(information);
- String businessLicense = null;
- String businessLicenses = null;
- String licence = null;
- String licences = null;
- String format = "";
- if (information.getBusinessLicense() != null && !"".equals(information.getBusinessLicense())) {
- businessLicense = information.getBusinessLicense().substring(26, information.getBusinessLicense().length());
- businessLicenses = FtpConstant.ip + businessLicense;
- } else {
- businessLicenses = "";
+ boolean b = informationService.updateById(information);
+ if (b) {
+ String businessLicense = null;
+ String businessLicenses = null;
+ String licence = null;
+ String licences = null;
+ String format = "";
+ if (information.getBusinessLicense() != null && !"".equals(information.getBusinessLicense())) {
+ businessLicense = information.getBusinessLicense().substring(26, information.getBusinessLicense().length());
+ businessLicenses = FtpConfig.ip + businessLicense;
+ } else {
+ businessLicenses = "";
+ }
+ if (information.getLicence() != null && !"".equals(information.getLicence())) {
+ licence = information.getLicence().substring(26, information.getLicence().length());
+ licences = FtpConfig.ip + licence;
+ } else {
+ licences = "";
+ }
+ if (information.getEstablishtime() != null && !"".equals(information.getEstablishtime())) {
+ format = new SimpleDateFormat("yyyy-MM-dd").format(information.getEstablishtime());
+ }
+ //内网同步
+ String s1 = "update sys_information set creditCode = " + "'" + information.getCreditcode() + "'" +
+ ",enterpriseName = " + "'" + information.getEnterprisename() + "'" +
+ ",representative = " + "'" + information.getRepresentative() + "'" +
+ ",establishTime = " + "'" + format + "'" +
+ ",registeredCapital = " + "'" + information.getRegisteredcapital() + "'" +
+ ",jurisdiction = " + "'" + information.getJurisdiction() + "'" +
+ ",enterprises = " + "'" + information.getEnterprises() + "'" +
+ ",address = " + "'" + information.getAddress() + "'" +
+ ",business = " + "'" + information.getBusiness() + "'" +
+ ",region = " + "'" + information.getRegion() + "'" +
+ ",registration = " + "'" + information.getRegistration() + "'" +
+ ",industry = " + "'" + information.getIndustry() + "'" +
+ ",departmentid = " + "'" + information.getDepartmentid() + "'" +
+ ",stats = " + "'" + information.getStats() + "'" +
+ ",representativecell = " + "'" + information.getRepresentativecell() + "'" +
+ ",contacts = " + "'" + information.getContacts() + "'" +
+ ",contactscell = " + "'" + information.getContactscell() + "'" +
+ ",business_License = " + "'" + businessLicenses + "'" +
+ ",licence = " + "'" + licences + "'" +
+ " " + "where id = " + "'" + information.getId() + "'";
+ //FtpUtil.sqlFileUpload(s1);
+ myAsyncService.dataSync(s1);
}
- if (information.getLicence() != null && !"".equals(information.getLicence())) {
- licence = information.getLicence().substring(26, information.getLicence().length());
- licences = FtpConstant.ip + licence;
- } else {
- licences = "";
- }
- if (information.getEstablishtime() != null && !"".equals(information.getEstablishtime())) {
- format = new SimpleDateFormat("yyyy-MM-dd").format(information.getEstablishtime());
- }
- //内网同步
- String s1 = "update sys_information set creditCode = " + "'" + information.getCreditcode() + "'" +
- ",enterpriseName = " + "'" + information.getEnterprisename() + "'" +
- ",representative = " + "'" + information.getRepresentative() + "'" +
- ",establishTime = " + "'" + format + "'" +
- ",registeredCapital = " + "'" + information.getRegisteredcapital() + "'" +
- ",jurisdiction = " + "'" + information.getJurisdiction() + "'" +
- ",enterprises = " + "'" + information.getEnterprises() + "'" +
- ",address = " + "'" + information.getAddress() + "'" +
- ",business = " + "'" + information.getBusiness() + "'" +
- ",region = " + "'" + information.getRegion() + "'" +
- ",registration = " + "'" + information.getRegistration() + "'" +
- ",industry = " + "'" + information.getIndustry() + "'" +
- ",departmentid = " + "'" + information.getDepartmentid() + "'" +
- ",stats = " + "'" + information.getStats() + "'" +
- ",representativecell = " + "'" + information.getRepresentativecell() + "'" +
- ",contacts = " + "'" + information.getContacts() + "'" +
- ",contactscell = " + "'" + information.getContactscell() + "'" +
- ",business_License = " + "'" + businessLicenses + "'" +
- ",licence = " + "'" + licences + "'" +
- " " + "where id = " + "'" + information.getId() + "'";
- FtpUtil.sqlFileUpload(s1);
return R.success("修改成功");
}
@@ -272,26 +351,40 @@
@ApiOperationSupport(order = 8)
@ApiOperation(value = "删除", notes = "传入ids")
public R remove(String creditcode, String departmentid) throws Exception {
- String[] strArray = creditcode.split(",");
- String[] strArrays = departmentid.split(",");
- for (int i = 0; i < strArray.length; i++) {
- informationService.deleteIn(strArray[i]);
- informationService.deleteSh(strArray[i]);
- informationService.deleteMe(strArray[i]);
- String s1 = "delete from sys_information where creditCode = " + "'" + strArray[i] + "'";
- FtpUtil.sqlFileUpload(s1);
- String s2 = "delete from sys_shareholder where creditCode = " + "'" + strArray[i] + "'";
- FtpUtil.sqlFileUpload(s2);
- String s3 = "delete from sys_member where creditCode = " + "'" + strArray[i] + "'";
- FtpUtil.sqlFileUpload(s3);
- }
- for (int j = 0; j < strArrays.length; j++) {
+ List<String> list = Arrays.asList(departmentid.split(","));
+ list.forEach(s -> {
+ //公司信息删除
+ informationService.deleteIn(s);
+ //主要管理人员信息删除
+ informationService.deleteSh(s);
+ //出资人信息删除
+ informationService.deleteMe(s);
//机构删除
- informationService.deleteDept(strArrays[j]);
- String s4 = "delete from blade_dept where id = " + "'" + strArrays[j] + "'";
- FtpUtil.sqlFileUpload(s4);
- }
-
+ informationService.deleteDept(s);
+ //当前公司下人员逻辑删除
+ informationService.deleteUserByDeptId(s);
+ //保安公司信息
+ String s1 = "delete from sys_information where departmentid = " + "'" + s + "'";
+ //FtpUtil.sqlFileUpload(s1);
+ myAsyncService.dataSync(s1);
+ //主要管理人
+ String s2 = "delete from sys_shareholder where dept_id = " + "'" + s + "'";
+ //FtpUtil.sqlFileUpload(s2);
+ myAsyncService.dataSync(s2);
+ //出资人
+ String s3 = "delete from sys_member where dept_id = " + "'" + s + "'";
+ //FtpUtil.sqlFileUpload(s3);
+ myAsyncService.dataSync(s3);
+ //组织机构信息逻辑删除
+ String s4 = "update blade_dept set is_deleted = 1 where id = " + "'" + s + "'";
+ //FtpUtil.sqlFileUpload(s4);
+ myAsyncService.dataSync(s4);
+ //保安公司人员信息删除
+ String s5 = "update blade_user set is_deleted = 1 where dept_id " + "'" + s + "'";
+ //FtpUtil.sqlFileUpload(s5);
+ myAsyncService.dataSync(s5);
+ });
+ //返回
return R.success("删除成功");
}
@@ -352,6 +445,7 @@
return R.data(list);
}
+
/**
* 导入单位信息
*/
@@ -410,4 +504,72 @@
return sortedMap;
}
+ /**
+ * 业务统计情况
+ */
+ @GetMapping("/selectBusinessStatistics")
+ public R<IPage> selectBusinessStatistics(InformationVO information, Query query) {
+ IPage list = informationService.selectBusinessStatistics(Condition.getPage(query), information);
+ return R.data(list);
+ }
+
+ /**
+ * 保安员情况统计
+ */
+ @GetMapping("/selectSecurityStatistics")
+ public R<IPage> selectSecurityStatistics(InformationVO information, Query query) {
+ IPage list = informationService.selectSecurityStatistics(Condition.getPage(query), information);
+ return R.data(list);
+ }
+
+ /**
+ * 业务统计情况导出
+ */
+ @GetMapping("/export-business-statis")
+ public void exportBusinessStatis(HttpServletResponse response, InformationVO information) {
+ List<ExportInformationExcel> list = informationService.exportBusinessStatis(information);
+ ExcelUtil.export(response, "业务统计数据" + DateUtil.time(), "业务统计数据表", list, ExportInformationExcel.class);
+ }
+
+ /**
+ * 保安员情况统计导出
+ */
+ @GetMapping("/export-security-statis-info")
+ public void exportSecurityStatisInfo(HttpServletResponse response, InformationVO information) {
+ List<ExportInformationSecurityStatistics> list = informationService.exportSecurityStatisInfo(information);
+ ExcelUtil.export(response, "保安员统计数据" + DateUtil.time(), "保安员统计数据表", list, ExportInformationSecurityStatistics.class);
+ }
+
+ /**
+ * 保安员详情
+ */
+ @PostMapping("/selectUIn")
+ public R<IPage> selectUIn(String deptid, String name, String hold, String photo, String examinationtype, String dispatch, String soil, Query query) {
+ IPage list = informationService.selectUIn(Condition.getPage(query), deptid, name, hold, photo, examinationtype, dispatch, soil);
+ return R.data(list);
+ }
+
+ /**
+ * 查询学历统计信息
+ *
+ * @param deptid 部门id
+ * @param jurisdiction 辖区
+ * @return
+ */
+ @PostMapping("/getEducationStatistics")
+ public R getEducationStatistics(String deptid, String jurisdiction) {
+ return R.data(informationService.getEducationStatistics(deptid, jurisdiction));
+ }
+
+ /**
+ * 获取部门信息()
+ *
+ * @param information
+ * @return
+ */
+ @GetMapping("/getInformationDetails")
+ public R getInformationDetails(InformationVO information) {
+ return R.data(informationService.getInformationDetails(information));
+ }
+
}
--
Gitblit v1.9.3