格式化代码

master
ShiChangzhou 2 weeks ago
parent db6b4fb84d
commit 7631f44dec

@ -1,27 +1,20 @@
package com.op.system.service.impl; package com.op.system.service.impl;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.*; import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.validation.Validator; import javax.validation.Validator;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
import com.op.common.core.domain.R;
import com.op.common.core.utils.DateUtils;
import com.op.common.core.utils.http.HttpUtils;
import com.op.common.core.web.domain.AjaxResult;
import com.op.system.api.RemoteOpenService;
import com.op.system.api.domain.quality.HRInfo;
import com.op.system.domain.*;
import com.op.system.mapper.*;
import org.apache.commons.lang3.time.DateFormatUtils; import org.apache.commons.lang3.time.DateFormatUtils;
import org.apache.ibatis.session.ExecutorType; import org.apache.ibatis.session.ExecutorType;
import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSession;
@ -33,20 +26,41 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import com.op.common.core.constant.UserConstants;
import com.op.common.core.exception.ServiceException;
import com.op.common.core.utils.SpringUtils;
import com.op.common.core.utils.StringUtils;
import com.op.common.core.utils.bean.BeanValidators;
import com.op.common.datascope.annotation.DataScope;
import com.op.common.security.utils.SecurityUtils;
import com.op.system.api.domain.SysRole;
import com.op.system.api.domain.SysUser;
import com.op.system.service.ISysConfigService;
import com.op.system.service.ISysUserService;
import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes; import org.springframework.web.context.request.ServletRequestAttributes;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
import com.op.common.core.constant.UserConstants;
import com.op.common.core.domain.R;
import com.op.common.core.exception.ServiceException;
import com.op.common.core.utils.DateUtils;
import com.op.common.core.utils.SpringUtils;
import com.op.common.core.utils.StringUtils;
import com.op.common.core.utils.bean.BeanValidators;
import com.op.common.core.utils.http.HttpUtils;
import com.op.common.core.web.domain.AjaxResult;
import com.op.common.datascope.annotation.DataScope;
import com.op.common.security.utils.SecurityUtils;
import com.op.system.api.RemoteOpenService;
import com.op.system.api.domain.SysRole;
import com.op.system.api.domain.SysUser;
import com.op.system.api.domain.quality.HRInfo;
import com.op.system.domain.MesClockRecord;
import com.op.system.domain.SysDatasource;
import com.op.system.domain.SysPost;
import com.op.system.domain.SysUserPost;
import com.op.system.domain.SysUserRole;
import com.op.system.mapper.MesClockRecordMapper;
import com.op.system.mapper.SysDatasourceMapper;
import com.op.system.mapper.SysPostMapper;
import com.op.system.mapper.SysRoleMapper;
import com.op.system.mapper.SysUserMapper;
import com.op.system.mapper.SysUserPostMapper;
import com.op.system.mapper.SysUserRoleMapper;
import com.op.system.service.ISysConfigService;
import com.op.system.service.ISysUserService;
/** /**
* *
@ -270,21 +284,23 @@ public class SysUserServiceImpl implements ISysUserService {
// 新增用户与角色管理 // 新增用户与角色管理
insertUserRole(user); insertUserRole(user);
// 加工厂数据权限 // 加工厂数据权限
//工厂号 // 工厂号
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes())
.getRequest();
String key = "#header.poolName"; String key = "#header.poolName";
user.setDeptId(Long.parseLong(request.getHeader(key.substring(8)).replace("ds_",""))); user.setDeptId(Long.parseLong(request.getHeader(key.substring(8)).replace("ds_", "")));
insertUserDB(user); insertUserDB(user);
return rows; return rows;
} }
public void insertUserDB(SysUser user) { public void insertUserDB(SysUser user) {
// 新增用户与园区数据源 // 新增用户与园区数据源
SysDatasource qo = new SysDatasource(); SysDatasource qo = new SysDatasource();
qo.setDeptId(user.getDeptId()); qo.setDeptId(user.getDeptId());
//先删掉 // 先删掉
sysDatasourceMapper.deletUserDB(user.getUserId().toString()); sysDatasourceMapper.deletUserDB(user.getUserId().toString());
//再添加 // 再添加
List<SysDatasource> dbs = sysDatasourceMapper.selectDBListByDept(qo); List<SysDatasource> dbs = sysDatasourceMapper.selectDBListByDept(qo);
List<SysDatasource> list = new ArrayList<SysDatasource>(); List<SysDatasource> list = new ArrayList<SysDatasource>();
for (SysDatasource db : dbs) { for (SysDatasource db : dbs) {
@ -295,6 +311,7 @@ public class SysUserServiceImpl implements ISysUserService {
} }
sysDatasourceMapper.batchUserDB(list); sysDatasourceMapper.batchUserDB(list);
} }
/** /**
* *
* *
@ -544,6 +561,7 @@ public class SysUserServiceImpl implements ISysUserService {
} }
return successMsg.toString(); return successMsg.toString();
} }
@Override @Override
public List<Map<String, String>> getPoolNameList(SysUser user) { public List<Map<String, String>> getPoolNameList(SysUser user) {
return userMapper.getPoolNameList(user); return userMapper.getPoolNameList(user);
@ -552,44 +570,42 @@ public class SysUserServiceImpl implements ISysUserService {
@Override @Override
public R syncUserInfoTask() { public R syncUserInfoTask() {
DynamicDataSourceContextHolder.push("master");// 这是数据源的key DynamicDataSourceContextHolder.push("master");// 这是数据源的key
try{ try {
//Date maxTime0 = userMapper.getMaxTime(); // Date maxTime0 = userMapper.getMaxTime();
//if(maxTime0 != null){ // if(maxTime0 != null){
Calendar calendar = Calendar.getInstance(); Calendar calendar = Calendar.getInstance();
//calendar.setTime(maxTime0); // calendar.setTime(maxTime0);
calendar.add(Calendar.DAY_OF_YEAR, -1); calendar.add(Calendar.DAY_OF_YEAR, -1);
Date maxTime = calendar.getTime(); Date maxTime = calendar.getTime();
//Date maxTime = DateUtils.getNowDate(); // Date maxTime = DateUtils.getNowDate();
String ymd = DateFormatUtils.format(maxTime, "yyyy-MM-dd");//yyyy-MM-dd String ymd = DateFormatUtils.format(maxTime, "yyyy-MM-dd");// yyyy-MM-dd
log.info("更新人力-参数:"+ ymd); log.info("更新人力-参数:" + ymd);
//AjaxResult hrR = remoteOpenService.GetHrUserInfo("2024-05-01"); // AjaxResult hrR = remoteOpenService.GetHrUserInfo("2024-05-01");
AjaxResult hrR = remoteOpenService.GetHrUserInfo(ymd); AjaxResult hrR = remoteOpenService.GetHrUserInfo(ymd);
List<HRInfo> infoList = new ArrayList<>(); List<HRInfo> infoList = new ArrayList<>();
if((int)hrR.get("code")==200 && hrR.get("data")!=null){ if ((int) hrR.get("code") == 200 && hrR.get("data") != null) {
infoList=JSONArray.parseArray(JSONObject.toJSONString(hrR.get("data")),HRInfo.class); infoList = JSONArray.parseArray(JSONObject.toJSONString(hrR.get("data")), HRInfo.class);
log.info("更新人力-结果:"+ JSONObject.toJSONString(infoList)); log.info("更新人力-结果:" + JSONObject.toJSONString(infoList));
if(!CollectionUtils.isEmpty(infoList)){ if (!CollectionUtils.isEmpty(infoList)) {
this.syncUserInfoFunc(infoList); this.syncUserInfoFunc(infoList);
} }
}else{ } else {
return R.fail("无最新需要更新的人力数据"); return R.fail("无最新需要更新的人力数据");
} }
}finally { } finally {
DynamicDataSourceContextHolder.poll(); DynamicDataSourceContextHolder.poll();
} }
return R.ok(); return R.ok();
} }
protected int syncUserInfoFunc(List<HRInfo> dtos) {
log.info("人力信息同步:" + JSONObject.toJSONString(dtos));
protected int syncUserInfoFunc(List<HRInfo> dtos){
log.info("人力信息同步:"+ JSONObject.toJSONString(dtos));
Date nowDate = DateUtils.getNowDate(); Date nowDate = DateUtils.getNowDate();
String createBy = "job"; String createBy = "job";
for(HRInfo dto:dtos){ for (HRInfo dto : dtos) {
dto.setCreateTime(nowDate); dto.setCreateTime(nowDate);
dto.setCreateBy(createBy); dto.setCreateBy(createBy);
dto.setUpdateBy(createBy); dto.setUpdateBy(createBy);
@ -597,76 +613,76 @@ public class SysUserServiceImpl implements ISysUserService {
dto.setUserName(dto.getPeWorkID()); dto.setUserName(dto.getPeWorkID());
dto.setNickName(dto.getPeName()); dto.setNickName(dto.getPeName());
dto.setSex(dto.getPeSex().equals("F")?"1":"0");//1女 dto.setSex(dto.getPeSex().equals("F") ? "1" : "0");// 1女
dto.setStatus("0"); dto.setStatus("0");
dto.setPeSnr(dto.getWorkCard()); dto.setPeSnr(dto.getWorkCard());
String[] delArrays = {"30","31","32","33","99"}; String[] delArrays = { "30", "31", "32", "33", "99" };
if(Arrays.asList(delArrays).contains(dto.getPeDocStatus())){ if (Arrays.asList(delArrays).contains(dto.getPeDocStatus())) {
dto.setDelFlag("1"); dto.setDelFlag("1");
}else{ } else {
dto.setDelFlag("0"); dto.setDelFlag("0");
} }
dto.setPhonenumber(dto.getPeMobilePhone()); dto.setPhonenumber(dto.getPeMobilePhone());
dto.setPost(dto.getPoscd()); dto.setPost(dto.getPoscd());
if(StringUtils.isNotBlank(dto.getOucod())){ if (StringUtils.isNotBlank(dto.getOucod())) {
dto.setDeptId(Long.parseLong(dto.getOucod())); dto.setDeptId(Long.parseLong(dto.getOucod()));
} }
} }
//sap返回的编码 // sap返回的编码
List<String> codes = dtos.stream().map(HRInfo::getUserName).collect(Collectors.toList()); List<String> codes = dtos.stream().map(HRInfo::getUserName).collect(Collectors.toList());
//sap返回的工作中心编码-本地已存在 // sap返回的工作中心编码-本地已存在
List<String> exsitCodes = userMapper.getExsitCodes(codes); List<String> exsitCodes = userMapper.getExsitCodes(codes);
//sap返回的工作中心编码-本地不存在// 差集 (list2 - list1) // sap返回的工作中心编码-本地不存在// 差集 (list2 - list1)
List<String> noExsitCodes = codes.stream().filter(item -> !exsitCodes.contains(item)).collect(Collectors.toList()); List<String> noExsitCodes = codes.stream().filter(item -> !exsitCodes.contains(item))
List<HRInfo> updates = dtos.stream()
.filter(item -> exsitCodes.contains(item.getUserName()))
.collect(Collectors.toList()); .collect(Collectors.toList());
if(!CollectionUtils.isEmpty(updates)){ List<HRInfo> updates = dtos.stream().filter(item -> exsitCodes.contains(item.getUserName()))
.collect(Collectors.toList());
if (!CollectionUtils.isEmpty(updates)) {
int allsize = updates.size(); int allsize = updates.size();
int inserttimes = allsize/100+1; int inserttimes = allsize / 100 + 1;
for(int m=0;m<inserttimes;m++){ for (int m = 0; m < inserttimes; m++) {
List<HRInfo> everyList; List<HRInfo> everyList;
if(m<(inserttimes-1)){ if (m < (inserttimes - 1)) {
everyList = updates.subList(m*100,(m+1)*100); everyList = updates.subList(m * 100, (m + 1) * 100);
}else{ } else {
everyList = updates.subList(m*100,allsize); everyList = updates.subList(m * 100, allsize);
} }
if(everyList.size()>0){ if (everyList.size() > 0) {
int snum = userMapper.updateUserBatchs(everyList); int snum = userMapper.updateUserBatchs(everyList);
if(snum == 1){ if (snum == 1) {
log.info("人员编辑成功条数:"+ everyList.size()); log.info("人员编辑成功条数:" + everyList.size());
}else{ } else {
log.info("人员编辑失败条数:"+ everyList.size()); log.info("人员编辑失败条数:" + everyList.size());
} }
} }
} }
} }
List<HRInfo> adds = dtos.stream() List<HRInfo> adds = dtos.stream().filter(item -> noExsitCodes.contains(item.getUserName()))
.filter(item -> noExsitCodes.contains(item.getUserName()))
.collect(Collectors.toList()); .collect(Collectors.toList());
if(!CollectionUtils.isEmpty(adds)){ if (!CollectionUtils.isEmpty(adds)) {
int allsize = adds.size(); int allsize = adds.size();
int inserttimes = allsize/100+1; int inserttimes = allsize / 100 + 1;
for(int m=0;m<inserttimes;m++){ for (int m = 0; m < inserttimes; m++) {
List<HRInfo> everyList; List<HRInfo> everyList;
if(m<(inserttimes-1)){ if (m < (inserttimes - 1)) {
everyList = adds.subList(m*100,(m+1)*100); everyList = adds.subList(m * 100, (m + 1) * 100);
}else{ } else {
everyList = adds.subList(m*100,allsize); everyList = adds.subList(m * 100, allsize);
} }
if(everyList.size()>0){ if (everyList.size() > 0) {
int nnum = userMapper.addUserBatchs(everyList); int nnum = userMapper.addUserBatchs(everyList);
log.info("人员新增成功条数:"+ nnum); log.info("人员新增成功条数:" + nnum);
} }
} }
} }
return 1; return 1;
} }
@Override @Override
public R syncClockInRecord() { public R syncClockInRecord() {
@ -674,14 +690,14 @@ public class SysUserServiceImpl implements ISysUserService {
DynamicDataSourceContextHolder.push("ds_1000"); DynamicDataSourceContextHolder.push("ds_1000");
// 调用 sendPost 方法(确保此方法内部使用 POST 方法发送数据) // 调用 sendPost 方法(确保此方法内部使用 POST 方法发送数据)
Map param=new HashMap(); Map param = new HashMap();
LocalDate yesterdayDate = LocalDate.now().minusDays(1); LocalDate yesterdayDate = LocalDate.now().minusDays(1);
param.put("day",yesterdayDate); param.put("day", yesterdayDate);
String result = HttpUtils.sendPostForm(attendanceRecordUrl, param); String result = HttpUtils.sendPostForm(attendanceRecordUrl, param);
List<MesClockRecord> mesClockRecordList =JSONArray.parseArray(result,MesClockRecord.class); List<MesClockRecord> mesClockRecordList = JSONArray.parseArray(result, MesClockRecord.class);
SimpleDateFormat sdfs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat sdfs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
List<MesClockRecord> clockRecordList = mesClockRecordList.stream().map(mesClockRecord -> { List<MesClockRecord> clockRecordList = mesClockRecordList.stream().map(mesClockRecord -> {
String ClockTime=mesClockRecord.getDay()+ " " +mesClockRecord.getTime(); String ClockTime = mesClockRecord.getDay() + " " + mesClockRecord.getTime();
try { try {
Date clockTime = sdfs.parse(ClockTime); Date clockTime = sdfs.parse(ClockTime);
mesClockRecord.setClockTime(clockTime); mesClockRecord.setClockTime(clockTime);
@ -694,39 +710,36 @@ public class SysUserServiceImpl implements ISysUserService {
batchInsert(clockRecordList); batchInsert(clockRecordList);
System.out.println("服务器响应: " + clockRecordList); System.out.println("服务器响应: " + clockRecordList);
return R.ok(result); return R.ok(result);
}catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
return R.fail(e.getMessage()); return R.fail(e.getMessage());
}finally { } finally {
DynamicDataSourceContextHolder.poll(); DynamicDataSourceContextHolder.poll();
} }
} }
@Autowired // 关键:注入 SqlSessionFactory @Autowired // 关键:注入 SqlSessionFactory
private SqlSessionFactory sqlSessionFactory; private SqlSessionFactory sqlSessionFactory;
public void batchInsert(List<MesClockRecord> records) { public void batchInsert(List<MesClockRecord> records) {
SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH); SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH);
try { try {
MesClockRecordMapper mapper = sqlSession.getMapper(MesClockRecordMapper.class); MesClockRecordMapper mapper = sqlSession.getMapper(MesClockRecordMapper.class);
int batchSize = 500; int batchSize = 500;
for (int i = 0; i < records.size(); i += batchSize) { for (int i = 0; i < records.size(); i += batchSize) {
int end = Math.min(i + batchSize, records.size()); int end = Math.min(i + batchSize, records.size());
List<MesClockRecord> subList = records.subList(i, end); List<MesClockRecord> subList = records.subList(i, end);
mapper.insertMesClockRecordList(subList); mapper.insertMesClockRecordList(subList);
sqlSession.flushStatements(); // 批处理执行 sqlSession.flushStatements(); // 批处理执行
} }
sqlSession.commit(); // 提交事务 sqlSession.commit(); // 提交事务
} catch (Exception e) { } catch (Exception e) {
sqlSession.rollback(); sqlSession.rollback();
throw new RuntimeException("批量插入失败", e); throw new RuntimeException("批量插入失败", e);
} finally { } finally {
sqlSession.close(); sqlSession.close();
} }
} }
} }

Loading…
Cancel
Save