ganzi-api/inventory-gov/src/main/java/com/rzyc/controller/DataController.java

1152 lines
45 KiB
Java

package com.rzyc.controller;
import com.alibaba.fastjson.JSONArray;
import com.common.utils.AMAP.Amap;
import com.common.utils.RandomNumber;
import com.common.utils.StringUtils;
import com.common.utils.TypeConversion;
import com.common.utils.encryption.PasswdFactory;
import com.common.utils.model.SingleResult;
import com.rzyc.enums.DelState;
import com.rzyc.model.*;
import com.rzyc.model.check.ChkBillDetailWithBLOBs;
import com.rzyc.model.ent.SysEnterprise;
import com.rzyc.model.organization.OrgBatch;
import com.rzyc.model.organization.OrgDanger;
import com.rzyc.model.user.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.poi.ss.usermodel.*;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.FileReader;
import java.util.*;
@Api(tags = "数据处理")
@Controller
@CrossOrigin("*")
@RequestMapping("data")
public class DataController extends com.rzyc.controller.BaseController {
/**
* 功能区地区用户处理
* @param multipartFile
* @return
* @throws Exception
*/
@ApiOperation(value = "功能区地区用户处理", notes = "功能区地区用户处理")
@RequestMapping(value = "/importAreaUser", method = RequestMethod.POST)
@ResponseBody
public SingleResult<String> importAreaUser(@RequestBody MultipartFile multipartFile)throws Exception{
SingleResult<String> result = new SingleResult<>();
handleAreaUser(multipartFile);
return result;
}
/**
* 街道导入驻村干部
* @param multipartFile
* @throws Exception
*/
public void handleAreaUser(MultipartFile multipartFile)throws Exception{
if(null != multipartFile){
Workbook wookbook = WorkbookFactory.create(multipartFile.getInputStream());
Sheet sheet = wookbook.getSheetAt(0);
DataFormatter dataFormatter = new DataFormatter();
//获得表头
Row rowHead = sheet.getRow(0);
System.out.println("getPhysicalNumberOfCells -> "+rowHead.getPhysicalNumberOfCells());
//判断表头是否正确
if(true){
//获得数据的总行数
int totalRowNum = sheet.getLastRowNum();
if(totalRowNum > 0){
Boolean isSubject = true;
String superId = "510114118000";
//获得所有数据
for(int i = 1 ; i <= totalRowNum ; i++) {
int index = i + 1;
//获得第i行对象
Row row = sheet.getRow(i);
if (null == row) {
break;
}
String netName = "";
String chinaNames = "";
Cell cell = row.getCell((short) 0);
if (null != cell) {
netName = dataFormatter.formatCellValue(cell);
}
cell = row.getCell((short) 1);
if (null != cell) {
chinaNames = dataFormatter.formatCellValue(cell);
}
netName = StringUtils.replaceBlank(netName);
chinaNames = StringUtils.replaceBlank(chinaNames);
System.out.println(netName + "-" + chinaNames);
SysOrg sysOrg = sysOrgMapper.findByName(netName,superId);
if(null == sysOrg){
sysOrg = new SysOrg();
sysOrg.setOrgcode(RandomNumber.getUUid());
sysOrg.setOrgname(netName);
sysOrg.setOrglevel(4);
sysOrg.setSuperiororgcode(superId);
sysOrg.setCreatedby("导入");
sysOrg.setCreatedon(new Date());
sysOrg.setModifiedby("导入");
sysOrg.setModifiedon(new Date());
sysOrgMapper.insert(sysOrg);
}
String[] strs = chinaNames.split("");
if(null != strs && strs.length > 0){
for (String str : strs){
SysUser sysUser = sysUserMapper.findByStreet(superId,str);
if(null != sysUser){
sysUserMapper.changeCommunityCode(sysUser.getSysuserid(),sysOrg.getOrgcode());
}
}
}
}
}
}
}
}
/**
* 功能区地区企业处理
* @param multipartFile
* @return
* @throws Exception
*/
@ApiOperation(value = "功能区地区企业处理", notes = "功能区地区企业处理")
@RequestMapping(value = "/importAreaEnt", method = RequestMethod.POST)
@ResponseBody
public SingleResult<String> importAreaEnt(@RequestBody MultipartFile multipartFile)throws Exception{
SingleResult<String> result = new SingleResult<>();
handleAreaEnt(multipartFile);
return result;
}
/**
* 街道导入驻村干部
* @param multipartFile
* @throws Exception
*/
public void handleAreaEnt(MultipartFile multipartFile)throws Exception{
if(null != multipartFile){
Workbook wookbook = WorkbookFactory.create(multipartFile.getInputStream());
Sheet sheet = wookbook.getSheetAt(0);
DataFormatter dataFormatter = new DataFormatter();
//获得表头
Row rowHead = sheet.getRow(0);
System.out.println("getPhysicalNumberOfCells -> "+rowHead.getPhysicalNumberOfCells());
//判断表头是否正确
if(true){
//获得数据的总行数
int totalRowNum = sheet.getLastRowNum();
if(totalRowNum > 0){
Boolean isSubject = true;
String superId = "510114118000";
//获得所有数据
for(int i = 1 ; i <= totalRowNum ; i++) {
int index = i + 1;
//获得第i行对象
Row row = sheet.getRow(i);
if (null == row) {
break;
}
String netName = "";
String entName = "";
Cell cell = row.getCell((short) 0);
if (null != cell) {
netName = dataFormatter.formatCellValue(cell);
}
cell = row.getCell((short) 1);
if (null != cell) {
entName = dataFormatter.formatCellValue(cell);
}
netName = StringUtils.replaceBlank(netName);
entName = StringUtils.replaceBlank(entName);
System.out.println(netName + "-" + entName);
SysOrg sysOrg = sysOrgMapper.findByName(netName,superId);
if(null == sysOrg){
sysOrg = new SysOrg();
sysOrg.setOrgcode(RandomNumber.getUUid());
sysOrg.setOrgname(netName);
sysOrg.setOrglevel(4);
sysOrg.setSuperiororgcode(superId);
sysOrg.setCreatedby("导入");
sysOrg.setCreatedon(new Date());
sysOrg.setModifiedby("导入");
sysOrg.setModifiedon(new Date());
sysOrgMapper.insert(sysOrg);
}
if(StringUtils.isNotBlank(entName)){
SysEnterprise enterprise = sysEnterpriseMapper.findByName(entName);
if(null != enterprise && superId.equals(enterprise.getStreetCode())){
sysEnterpriseMapper.changeCommunityCode(enterprise.getSysenterpriseid(),sysOrg.getOrgcode());
}
}
}
}
}
}
}
/**
* 石板滩用户责任树
* @param multipartFile
* @return
* @throws Exception
*/
@ApiOperation(value = "石板滩用户责任树", notes = "石板滩用户责任树")
@RequestMapping(value = "/userDutyTree", method = RequestMethod.POST)
@ResponseBody
public SingleResult<String> userDutyTree(@RequestBody MultipartFile multipartFile)throws Exception{
SingleResult<String> result = new SingleResult<>();
handleUserDutyTree(multipartFile);
return result;
}
/**
* 街道导入驻村干部
* @param multipartFile
* @throws Exception
*/
public void handleUserDutyTree(MultipartFile multipartFile)throws Exception{
if(null != multipartFile){
Workbook wookbook = WorkbookFactory.create(multipartFile.getInputStream());
Sheet sheet = wookbook.getSheetAt(0);
DataFormatter dataFormatter = new DataFormatter();
//获得表头
Row rowHead = sheet.getRow(0);
System.out.println("getPhysicalNumberOfCells -> "+rowHead.getPhysicalNumberOfCells());
//判断表头是否正确
if(true){
//获得数据的总行数
int totalRowNum = sheet.getLastRowNum();
if(totalRowNum > 0){
Boolean isSubject = true;
String superId = "510114102000";
String leaderUserName = "";
SysUser leaderUser = new SysUser();
//获得所有数据
for(int i = 1 ; i <= totalRowNum ; i++) {
int index = i + 1;
//获得第i行对象
Row row = sheet.getRow(i);
if (null == row) {
break;
}
String userName = "";
String mobile = "";
Cell cell = row.getCell((short) 0);
if (null != cell) {
String leaderStr = dataFormatter.formatCellValue(cell);
if(StringUtils.isNotBlank(leaderStr)){
leaderUserName = leaderStr;
leaderUser = sysUserMapper.findBySysUserName(leaderUserName);
}
}
cell = row.getCell((short) 1);
if (null != cell) {
userName = dataFormatter.formatCellValue(cell);
}
cell = row.getCell((short) 2);
if (null != cell) {
mobile = dataFormatter.formatCellValue(cell);
}
leaderUserName = StringUtils.replaceBlank(leaderUserName);
userName = StringUtils.replaceBlank(userName);
mobile = StringUtils.replaceBlank(mobile);
if(null != leaderUser){
System.out.println(leaderUserName + " - " + userName+" - "+mobile);
System.out.println("laader ---------------> "+leaderUser.getSysuserid());
SysUser sysUser = sysUserMapper.findByStreetAndName(superId,userName,mobile);
if(null != sysUser){
DutyTree dutyTree = new DutyTree();
dutyTree.setDutyTreeId(RandomNumber.getUUid());
dutyTree.setUserId(leaderUser.getSysuserid());
dutyTree.setTargetId(sysUser.getSysuserid());
dutyTree.setTargetType(1);
dutyTree.setModified("导入");
dutyTree.setModifyTime(new Date());
dutyTree.setCreated("导入");
dutyTree.setCreateTime(new Date());
dutyTreeMapper.insert(dutyTree);
}
}
System.out.println();
}
}
}
}
}
/**
* 石板滩企业责任树
* @param multipartFile
* @return
* @throws Exception
*/
@ApiOperation(value = "石板滩企业责任树", notes = "石板滩企业责任树")
@RequestMapping(value = "/entDutyTree", method = RequestMethod.POST)
@ResponseBody
public SingleResult<String> entDutyTree(@RequestBody MultipartFile multipartFile)throws Exception{
SingleResult<String> result = new SingleResult<>();
handleEntDutyTree(multipartFile);
return result;
}
/**
* 街道导入驻村干部
* @param multipartFile
* @throws Exception
*/
public void handleEntDutyTree(MultipartFile multipartFile)throws Exception{
if(null != multipartFile){
Workbook wookbook = WorkbookFactory.create(multipartFile.getInputStream());
Sheet sheet = wookbook.getSheetAt(0);
DataFormatter dataFormatter = new DataFormatter();
//获得表头
Row rowHead = sheet.getRow(0);
System.out.println("getPhysicalNumberOfCells -> "+rowHead.getPhysicalNumberOfCells());
//判断表头是否正确
if(true){
//获得数据的总行数
int totalRowNum = sheet.getLastRowNum();
if(totalRowNum > 0){
Boolean isSubject = true;
String superId = "510114102000";
//获得所有数据
for(int i = 1 ; i <= totalRowNum ; i++) {
int index = i + 1;
//获得第i行对象
Row row = sheet.getRow(i);
if (null == row) {
break;
}
String userName = "";
String mobile = "";
Cell cell = row.getCell((short) 1);
if (null != cell) {
userName = dataFormatter.formatCellValue(cell);
}
cell = row.getCell((short) 2);
if (null != cell) {
mobile = dataFormatter.formatCellValue(cell);
}
userName = StringUtils.replaceBlank(userName);
mobile = StringUtils.replaceBlank(mobile);
List<String> entNames = new ArrayList<>();
for (int j = 3;j<=24;j++){
cell = row.getCell((short) j);
if (null != cell) {
String entName = dataFormatter.formatCellValue(cell);
if(StringUtils.isNotBlank(entName)){
entName = StringUtils.replaceBlank(entName);
entNames.add(entName);
}
}
}
System.out.println(userName+" - "+mobile);
System.out.println("entNames -> "+JSONArray.toJSONString(entNames));
SysUser sysUser = sysUserMapper.findByStreetAndName(superId,userName,mobile);
if(null != sysUser){
for (String entName : entNames){
SysEnterprise enterprise = sysEnterpriseMapper.findByName(entName);
if(null != enterprise){
DutyTree dutyTree = new DutyTree();
dutyTree.setDutyTreeId(RandomNumber.getUUid());
dutyTree.setUserId(sysUser.getSysuserid());
dutyTree.setTargetId(enterprise.getSysenterpriseid());
dutyTree.setTargetType(2);
dutyTree.setModified("导入");
dutyTree.setModifyTime(new Date());
dutyTree.setCreated("导入");
dutyTree.setCreateTime(new Date());
dutyTreeMapper.insert(dutyTree);
}
}
}
System.out.println();
}
}
}
}
}
@ApiOperation(value = "履职处理", notes = "履职处理")
@RequestMapping(value = "/handleFactor", method = RequestMethod.POST)
@ResponseBody
public SingleResult<String> handleFactor()throws Exception{
SingleResult<String> result = new SingleResult<>();
//超级管理员
String userId = "8D35010B-EB9A-40EE-BDEB-CDAE969D5EF4";
Integer nowYear = Calendar.getInstance().get(Calendar.YEAR);
Integer lastYear = nowYear - 1;
System.out.println("nowYear -> "+nowYear);
System.out.println("lastYear -> "+lastYear);
List<ListFactor> listFactors = listFactorMapper.findBySysYear(lastYear+"");
for(ListFactor listFactor : listFactors){
listFactor.setListfactorid(RandomNumber.getUUid());
listFactor.setIsfinish("");
listFactor.setFinishProgres(0+"");
listFactor.setSysyear(nowYear+"");
listFactor.setDelState(DelState.NOT_DEL.getState());
listFactor.setCreatedby("导入");
listFactor.setCreatedon(new Date());
listFactor.setModifiedby("导入");
listFactor.setModifiedon(new Date());
listFactorMapper.insert(listFactor);
addFactorTask(listFactor,userId);
}
return result;
}
@ApiOperation(value = "三方机构隐患", notes = "三方机构隐患")
@RequestMapping(value = "/handleDanger", method = RequestMethod.POST)
@ResponseBody
public SingleResult<String> handleDanger()throws Exception{
SingleResult<String> result = new SingleResult<>();
List<OrgDanger> orgDangers = orgDangerMapper.findAll();
for(OrgDanger orgDanger : orgDangers){
System.out.println("-------------> "+orgDanger.getContent());
OrgBatch orgBatch = orgBatchMapper.findById(orgDanger.getBatchId());
if(null == orgBatch){
orgBatch = new OrgBatch();
orgBatch.setBatchId(orgDanger.getBatchId());
orgBatch.setUserId(orgDanger.getCreated());
orgBatch.setEnterpriseId(orgDanger.getEnterpriseId());
orgBatch.setOrganizationId(orgDanger.getOrganizationId());
orgBatch.setOrgType(1);
orgBatch.setCreated(orgDanger.getCreated());
orgBatch.setCreateTime(orgDanger.getCreateTime());
orgBatch.setModify(orgDanger.getCreated());
orgBatch.setModifyTime(orgDanger.getCreateTime());
orgBatchMapper.insert(orgBatch);
}
}
return result;
}
/**
* 导入模板
* @version v1.0
* @author dong
* @date 2022/8/5 13:36
*/
@ApiOperation(value = "导入模板", notes = "导入模板")
@RequestMapping(value = "/addTemp", method = RequestMethod.GET)
@ResponseBody
public SingleResult<String> addTemp()throws Exception{
SingleResult<String> result = new SingleResult<>();
String path = "C:\\mnt\\resource\\citysafexc\\documenttemp";
File file = new File(path);
File[] tempList = file.listFiles();
for (int i = 0; i < tempList.length; i++) {
if (tempList[i].isFile()) {
String name = tempList[i].getName();
String sortStr = name.substring(0,2);
SysDocumenttemp temp = new SysDocumenttemp();
temp.setTempId(RandomNumber.getUUid());
temp.setCreateTime(new Date());
temp.setModifyTime(new Date());
temp.setCreateBy("excel");
temp.setModifyBy("excel");
temp.setTempName(name);
temp.setSortId(TypeConversion.StringToInteger(sortStr));
temp.setTempPath("resource/citysafexc/documenttemp/"+name);
sysDocumenttempMapper.insert(temp);
}
}
return result;
}
/**
* 修改密码
* @version v1.0
* @author dong
* @date 2022/8/5 13:36
*/
@ApiOperation(value = "修改密码", notes = "修改密码")
@RequestMapping(value = "/changePasswd", method = RequestMethod.GET)
@ResponseBody
public SingleResult<String> changePasswd()throws Exception{
SingleResult<String> result = new SingleResult<>();
List<SysUser> sysUsers = sysUserMapper.findAll();
if(null != sysUsers && sysUsers.size() > 0){
for (SysUser sysUser : sysUsers){
sysUserMapper.changePassword(sysUser.getSysuserid(), PasswdFactory.encryptPasswd(sysUser.getSysuserid(),"",constantsConfigure.getDefaultPasswd()));
}
}
return result;
}
/**
* 地区处理
* @version v1.0
* @author dong
* @date 2022/10/28 10:49
*/
@ApiOperation(value = "地区处理", notes = "地区处理")
@RequestMapping(value = "/orgData", method = RequestMethod.GET)
@ResponseBody
public SingleResult<String> orgData(Integer level)throws Exception{
SingleResult<String> result = new SingleResult<>();
List<SysOrg> sysOrgs = sysOrgMapper.findByLevel(level);
for (SysOrg sysOrg : sysOrgs){
changePath(sysOrg.getOrgcode());
}
return result;
}
/**
* 处理地区信息
* @version v1.0
* @author dong
* @date 2022/10/28 11:01
*/
private void changePath(String orgCode)throws Exception{
SysOrg sysOrg = sysOrgMapper.selectById(orgCode);
if(null != sysOrg){
if(StringUtils.isNotBlank(sysOrg.getSuperiororgcode())){
SysOrg superOrg = sysOrgMapper.selectById(sysOrg.getSuperiororgcode());
if(null != superOrg){
sysOrg.setParentName(superOrg.getParentName()+","+sysOrg.getOrgname());
sysOrg.setParentPath(superOrg.getParentPath()+","+sysOrg.getOrgcode());
}
}else{
sysOrg.setParentName(sysOrg.getOrgname());
sysOrg.setParentPath(sysOrg.getOrgcode());
}
SysOrg org = new SysOrg();
org.setOrgcode(sysOrg.getOrgcode());
org.setParentName(sysOrg.getParentName());
org.setParentPath(sysOrg.getParentPath());
sysOrgMapper.updateById(org);
}
}
@ApiOperation(value = "导入岗位", notes = "导入岗位")
@RequestMapping(value = "/importPost", method = RequestMethod.POST)
@ResponseBody
public SingleResult<String> importPost(@RequestBody MultipartFile multipartFile)throws Exception{
SingleResult<String> result = new SingleResult<>();
Workbook wookbook = WorkbookFactory.create(multipartFile.getInputStream());
Sheet sheet = wookbook.getSheetAt(0);
//获得表头
Row rowHead = sheet.getRow(0);
System.out.println("getPhysicalNumberOfCells -> "+rowHead.getPhysicalNumberOfCells());
//判断表头是否正确
if(true){
//获得数据的总行数
int totalRowNum = sheet.getLastRowNum();
if(totalRowNum > 0){
Boolean isSubject = true;
DataFormatter dataFormatter = new DataFormatter();
Map<String,String> sortMap = new LinkedHashMap<>();
Map<String,String> workDivisionMap = new HashMap<>();
Map<String,String> performNameMap = new HashMap<>();
Map<String,List<String>> dutyMap = new HashMap<>();
Integer index = 1;
String unitNameStr = "";
String postNameStr = "";
String sortStrStr = "";
//获得所有数据
for(int i = 1 ; i <= totalRowNum ; i++){
//获得第i行对象
Row row = sheet.getRow(i);
if(null == row){
break;
}
String unitName = "";
String postName = "";
String sortStr = "";
String workDivision = "";
String dutyList = "";
String performList = "";
String performName = "";
String mapKey = "";
Cell cell = row.getCell((short)0);
unitName = dataFormatter.formatCellValue(cell);
if(StringUtils.isBlank(unitName)){
unitName = unitNameStr;
}else{
unitNameStr = unitName;
}
cell = row.getCell((short)1);
postName = dataFormatter.formatCellValue(cell);
if(StringUtils.isBlank(postName)){
postName = postNameStr;
}else{
postNameStr = postName;
}
mapKey = unitName + "---"+postName;
cell = row.getCell((short)2);
sortStr = dataFormatter.formatCellValue(cell);
if(StringUtils.isBlank(sortStr)){
sortStr = sortStrStr;
}else{
sortStrStr = sortStr;
}
mapKey = unitName + "---"+postName+"---"+sortStrStr;
sortMap.put(mapKey,sortStr);
cell = row.getCell((short)3);
workDivision = dataFormatter.formatCellValue(cell);
if(StringUtils.isNotBlank(workDivision)){
workDivisionMap.put(mapKey,workDivision);
}
cell = row.getCell((short)4);
dutyList = dataFormatter.formatCellValue(cell);
if(StringUtils.isNotBlank(dutyList)){
List<String> dutys = new LinkedList<>();
if(dutyMap.containsKey(mapKey)){
dutys = dutyMap.get(mapKey);
}
dutys.add(dutyList);
dutyMap.put(mapKey,dutys);
}
cell = row.getCell((short)5);
performList = dataFormatter.formatCellValue(cell);
cell = row.getCell((short)6);
performName = dataFormatter.formatCellValue(cell);
if(StringUtils.isNotBlank(performName)){
performNameMap.put(mapKey,performName);
}
// System.out.println("-----------------"+index);
// System.out.println(unitName);
// System.out.println(postName);
// System.out.println(sortStr);
// System.out.println(dutyList);
index++;
}
for (Map.Entry<String,String> entry : sortMap.entrySet()){
System.out.println("部门岗位 -》 "+entry.getKey());
System.out.println("排序 -》 "+entry.getValue());
System.out.println("工作分工 -》 "+workDivisionMap.get(entry.getKey()));
System.out.println("责任人 -》 "+performNameMap.get(entry.getKey()));
System.out.println("职责清单 -》 "+JSONArray.toJSONString(dutyMap.get(entry.getKey())));
String[] strs = entry.getKey().split("---");
ListPerform superPerform = listPerformMapper.findByName(strs[0],"");
if(null != superPerform){
ListPerform listPerform = new ListPerform();
listPerform.setListperformid(RandomNumber.getUUid());
listPerform.setSyslevel(superPerform.getSyslevel()+1);
listPerform.setPerformclassname(strs[1]);
listPerform.setPerformName(performNameMap.get(entry.getKey()));
listPerform.setSortid(TypeConversion.StringToInteger(entry.getValue()));
listPerform.setSupclassid(superPerform.getListperformid());
listPerform.setCompletion("0");
listPerform.setParentPath(superPerform.getParentPath()+","+listPerform.getListperformid());
listPerform.setParentName(superPerform.getParentName()+","+listPerform.getPerformclassname());
listPerform.setCreatedby("excel");
listPerform.setModifiedby("excel");
listPerform.setCreatedon(new Date());
listPerform.setModifiedon(new Date());
listPerformMapper.insert(listPerform);
List<String> dutyLists = dutyMap.get(entry.getKey());
if(null != dutyLists && dutyLists.size() > 0){
Integer sortId = 1;
for (String dutyStr : dutyLists){
ListSafeWithBLOBs listSafe = new ListSafeWithBLOBs();
listSafe.setListsafeid(RandomNumber.getUUid());
listSafe.setListperformid(listPerform.getListperformid());
listSafe.setSortid(sortId);
listSafe.setSafeduty(dutyStr);
listSafe.setCreatedby("excel");
listSafe.setModifiedby("excel");
listSafe.setCreatedon(new Date());
listSafe.setModifiedon(new Date());
listSafeMapper.insert(listSafe);
sortId++;
}
}
}
System.out.println();
}
}
}
return result;
}
@ApiOperation(value = "导入岗位履职清单", notes = "导入岗位履职清单")
@RequestMapping(value = "/importFactor", method = RequestMethod.POST)
@ResponseBody
public SingleResult<String> importFactor(@RequestBody MultipartFile multipartFile)throws Exception{
SingleResult<String> result = new SingleResult<>();
Workbook wookbook = WorkbookFactory.create(multipartFile.getInputStream());
Sheet sheet = wookbook.getSheetAt(0);
//获得表头
Row rowHead = sheet.getRow(0);
System.out.println("getPhysicalNumberOfCells -> "+rowHead.getPhysicalNumberOfCells());
//判断表头是否正确
if(true){
//获得数据的总行数
int totalRowNum = sheet.getLastRowNum();
if(totalRowNum > 0){
Boolean isSubject = true;
DataFormatter dataFormatter = new DataFormatter();
Map<String,String> sortMap = new LinkedHashMap<>();
Map<String,String> workDivisionMap = new HashMap<>();
Map<String,String> performNameMap = new HashMap<>();
Map<String,List<String>> dutyMap = new HashMap<>();
Integer index = 1;
String unitNameStr = "";
String postNameStr = "";
String sortStrStr = "";
//获得所有数据
for(int i = 1 ; i <= totalRowNum ; i++){
//获得第i行对象
Row row = sheet.getRow(i);
if(null == row){
break;
}
String unitName = "";
String postName = "";
String sortStr = "";
String workDivision = "";
String dutyList = "";
String performList = "";
String performName = "";
String checkstandardStr = "";
String frequency = "";
String mapKey = "";
Cell cell = row.getCell((short)0);
unitName = dataFormatter.formatCellValue(cell);
if(StringUtils.isBlank(unitName)){
unitName = unitNameStr;
}else{
unitNameStr = unitName;
}
cell = row.getCell((short)1);
postName = dataFormatter.formatCellValue(cell);
if(StringUtils.isBlank(postName)){
postName = postNameStr;
}else{
postNameStr = postName;
}
mapKey = unitName + "---"+postName;
cell = row.getCell((short)2);
sortStr = dataFormatter.formatCellValue(cell);
if(StringUtils.isBlank(sortStr)){
sortStr = sortStrStr;
}else{
sortStrStr = sortStr;
}
cell = row.getCell((short)3);
workDivision = dataFormatter.formatCellValue(cell);
if(StringUtils.isNotBlank(workDivision)){
workDivisionMap.put(mapKey,workDivision);
}
cell = row.getCell((short)4);
dutyList = dataFormatter.formatCellValue(cell);
cell = row.getCell((short)5);
performList = dataFormatter.formatCellValue(cell);
cell = row.getCell((short)6);
checkstandardStr = dataFormatter.formatCellValue(cell);
if(StringUtils.isBlank(checkstandardStr)){
checkstandardStr = "每年";
}
cell = row.getCell((short)7);
frequency = dataFormatter.formatCellValue(cell);
if(StringUtils.isBlank(frequency)){
frequency = 1+"";
}
if(StringUtils.isBlank(performList)){
performList = dutyList;
}
System.out.println("-----------------"+index);
System.out.println(unitName);
System.out.println(postName);
System.out.println(sortStr);
System.out.println(performList);
System.out.println(checkstandardStr);
System.out.println(frequency);
Integer checkstandard = 1;
if("每年".equals(checkstandardStr)){
checkstandard = 1;
}else if("每半年".equals(checkstandardStr)){
checkstandard = 2;
}else if("每季度".equals(checkstandardStr)){
checkstandard = 4;
}else if("每月".equals(checkstandardStr)){
checkstandard = 12;
}
System.out.println("checkstandard -------> "+checkstandard);
System.out.println("frequency -------> "+TypeConversion.StringToInteger(frequency));
ListPerform superPerform = listPerformMapper.findByName(unitName,"");
if(null != superPerform){
ListPerform listPerform = listPerformMapper.findBySortId(postName,superPerform.getListperformid(),TypeConversion.StringToInteger(sortStr));
if(null != listPerform){
ListFactor listFactor = new ListFactor();
listFactor.setListfactorid(RandomNumber.getUUid());
listFactor.setListperformid(listPerform.getListperformid());
listFactor.setListnum(1+"");
listFactor.setSortid(i);
listFactor.setSysyear("2023");
listFactor.setType(4);
listFactor.setFactorcnt(performList);
listFactor.setCheckstandard(checkstandard);
listFactor.setFrequency(TypeConversion.StringToInteger(frequency));
listFactor.setIsfinish("");
listFactor.setFinishProgres("0");
listFactor.setFactorIsFinish("");
listFactor.setRedAlert(2+"");
listFactor.setYellowAlert(5+"");
listFactor.setDelState(1);
listFactor.setCreatedon(new Date());
listFactor.setModifiedon(new Date());
listFactor.setCreatedby("excel");
listFactor.setModifiedby("excel");
listFactorMapper.insert(listFactor);
addFactorTask(listFactor,"excel");
}
}
index++;
}
}
}
return result;
}
@ApiOperation(value = "导入用户", notes = "导入用户")
@RequestMapping(value = "/importUser", method = RequestMethod.POST)
@ResponseBody
public SingleResult<String> importUser(@RequestBody MultipartFile multipartFile)throws Exception{
SingleResult<String> result = new SingleResult<>();
Workbook wookbook = WorkbookFactory.create(multipartFile.getInputStream());
Sheet sheet = wookbook.getSheetAt(0);
//获得表头
Row rowHead = sheet.getRow(0);
System.out.println("getPhysicalNumberOfCells -> "+rowHead.getPhysicalNumberOfCells());
//判断表头是否正确
if(true){
//获得数据的总行数
int totalRowNum = sheet.getLastRowNum();
if(totalRowNum > 0){
Boolean isSubject = true;
DataFormatter dataFormatter = new DataFormatter();
Integer index = 1;
String unitNameStr = "";
String postNameStr = "";
String sortStrStr = "";
//获得所有数据
for(int i = 1 ; i <= totalRowNum ; i++) {
//获得第i行对象
Row row = sheet.getRow(i);
if (null == row) {
break;
}
String unitName = "";
String postName = "";
String name = "";
String mobile = "";
Cell cell = row.getCell((short) 1);
unitName = dataFormatter.formatCellValue(cell);
if (StringUtils.isBlank(unitName)) {
unitName = unitNameStr;
} else {
unitNameStr = unitName;
}
cell = row.getCell((short) 2);
postName = dataFormatter.formatCellValue(cell);
if (StringUtils.isBlank(postName)) {
postName = postNameStr;
} else {
postNameStr = postName;
}
cell = row.getCell((short) 3);
name = dataFormatter.formatCellValue(cell);
cell = row.getCell((short) 4);
mobile = dataFormatter.formatCellValue(cell);
System.out.println("-----------------"+index);
System.out.println(unitName);
System.out.println(postName);
System.out.println(name);
System.out.println(mobile);
ListPerform superPerform = listPerformMapper.findByName(unitName,"5bd164aa-dd43-45e3-a5a2-649bb2fd9fb9");
if(null != superPerform){
ListPerform listPerform = listPerformMapper.findByPerformName(postName,superPerform.getListperformid(),name);
if(null == listPerform){
listPerform = new ListPerform();
listPerform.setListperformid(RandomNumber.getUUid());
listPerform.setSyslevel(superPerform.getSyslevel()+1);
listPerform.setPerformclassname(postName);
listPerform.setPerformName(name);
listPerform.setSortid(50);
listPerform.setSupclassid(superPerform.getListperformid());
listPerform.setCompletion("0");
listPerform.setParentPath(superPerform.getParentPath()+","+listPerform.getListperformid());
listPerform.setParentName(superPerform.getParentName()+","+listPerform.getPerformclassname());
listPerform.setCreatedby("excel");
listPerform.setModifiedby("excel");
listPerform.setCreatedon(new Date());
listPerform.setModifiedon(new Date());
listPerformMapper.insert(listPerform);
}
SysUnit sysUnit = sysUnitMapper.findByUnitName(unitName,"f618c8e4-c0ea-426a-8f91-5ef31cf70299");
SysUser sysUser = new SysUser();
sysUser.setSysuserid(RandomNumber.getUUid());
sysUser.setUsertype("政府用户");
sysUser.setAreaCode("513300");
sysUser.setAreaPath("510000,513300");
sysUser.setAreaName("四川省,甘孜藏族自治州");
if(null != sysUnit){
sysUser.setSysunitorentid(sysUnit.getSysunitid());
sysUser.setUnitPath(sysUnit.getParentPath());
sysUser.setUnitPathName(sysUnit.getParentName());
}
sysUser.setSysusername(mobile);
sysUser.setSyspassword(PasswdFactory.encryptPasswd(sysUser.getSysuserid(),"",mobile));
sysUser.setUserroles("cc89b58e-9ab4-492e-a184-82f199c75d76");
sysUser.setChinaname(name);
sysUser.setSystitle(listPerform.getListperformid());
sysUser.setPostPath(listPerform.getParentPath());
sysUser.setPostName(listPerform.getParentName());
sysUser.setMobiletel(mobile);
sysUser.setState("启用");
sysUser.setCreatedby("excel");
sysUser.setModifiedby("excel");
sysUser.setCreatedon(new Date());
sysUser.setModifiedon(new Date());
sysUserMapper.insert(sysUser);
}
index++;
}
}
}
return result;
}
@ApiOperation(value = "企业经纬度", notes = "企业经纬度")
@RequestMapping(value = "/entLonlat", method = RequestMethod.POST)
@ResponseBody
public SingleResult<String> entLonlat()throws Exception{
SingleResult<String> result = new SingleResult<>();
List<SysEnterprise> sysEnterprises = sysEnterpriseMapper.findLon();
for (SysEnterprise enterprise : sysEnterprises){
if(StringUtils.isNotBlank(enterprise.getSysaddress())){
String address = enterprise.getSysaddress();
System.out.println("address --> "+address);
address = StringUtils.replaceBlank(address);
String lonlat = Amap.getLonLat(address);
enterprise.setSysaddress(address);
String[] strs = lonlat.split(",");
if(null != strs && strs.length == 2){
enterprise.setLongitude(strs[0]);
enterprise.setLatitude(strs[1]);
sysEnterpriseMapper.changeLonLat(enterprise);
}
}
}
return result;
}
}