提交代码

dev_xds
姜玉琦 2024-01-22 02:47:36 +08:00
parent f845d6e42f
commit ca300ff472
13 changed files with 632 additions and 81 deletions

View File

@ -21,6 +21,7 @@ import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.AuthRsaUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.bean.BeanUtils;
import com.ruoyi.common.utils.http.HttpClientUtil;
import com.ruoyi.common.utils.sign.Md5Utils;
import com.ruoyi.framework.web.service.SysLoginService;
@ -29,6 +30,9 @@ import com.ruoyi.system.service.ISysUserService;
import com.yanzhu.jh.project.domain.SurProjectAttendanceData;
import com.yanzhu.jh.project.domain.SurProjectAttendanceGroup;
import com.yanzhu.jh.project.domain.SurProjectAttendanceUser;
import com.yanzhu.jh.project.domain.vo.LabourDataVo;
import com.yanzhu.jh.project.domain.vo.LabourGroupVO;
import com.yanzhu.jh.project.domain.vo.LabourUserVO;
import com.yanzhu.jh.project.service.ISurProjectAttendanceDataService;
import com.yanzhu.jh.project.service.ISurProjectAttendanceGroupService;
import com.yanzhu.jh.project.service.ISurProjectAttendanceUserService;
@ -42,6 +46,9 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.ConstraintViolation;
import javax.validation.Valid;
import javax.validation.Validation;
import java.util.*;
/**
@ -149,7 +156,13 @@ public class LabourApiController extends BaseController {
if(req.getDataSign(sysApplyConfig.getPrivateKey())){
try {
SurProjectAttendanceGroup surProjectAttendanceGroup = JSONObject.parseObject(req.getData(), SurProjectAttendanceGroup.class);
if(StringUtils.isNotEmpty(surProjectAttendanceGroup.getServerid()) && surProjectAttendanceGroup.getCompanyId()!=null && StringUtils.isNotEmpty(surProjectAttendanceGroup.getCompanyTypeId()) && StringUtils.isNotEmpty(surProjectAttendanceGroup.getCompanyName()) && StringUtils.isNotEmpty(surProjectAttendanceGroup.getName())){
LabourGroupVO labourGroupVO = new LabourGroupVO();
BeanUtils.copyBeanProp(labourGroupVO,surProjectAttendanceGroup);
// 手动检测转换后的实体
Set<ConstraintViolation<@Valid Object>> validateSet = Validation.buildDefaultValidatorFactory()
.getValidator()
.validate(labourGroupVO, new Class[0]);
if(CollectionUtils.isEmpty(validateSet)){
// 查询当前班组是否已推送
SurProjectAttendanceGroup searchModel = new SurProjectAttendanceGroup();
searchModel.setAppId(sysApplyConfig.getAppId());
@ -171,11 +184,14 @@ public class LabourApiController extends BaseController {
surProjectAttendanceGroupService.insertSurProjectAttendanceGroup(surProjectAttendanceGroup);
}
}else{
throw new ServiceException(HttpStatusEnum.DARA_EXCEPTION.getInfo(),HttpStatusEnum.DARA_EXCEPTION.getCode());
String messages = validateSet.stream()
.map(ConstraintViolation::getMessage)
.reduce((m1, m2) -> m1 + "" + m2)
.orElse("参数输入有误!");
throw new Exception(messages);
}
}catch (Exception e){
log.error(e.getMessage());
throw new ServiceException(HttpStatusEnum.SINGET_EXCEPTION.getInfo(),HttpStatusEnum.SINGET_EXCEPTION.getCode());
throw new ServiceException(e.getMessage(),HttpStatusEnum.DARA_EXCEPTION.getCode());
}
}else{
throw new ServiceException(HttpStatusEnum.SINGET_TIMEOUT.getInfo(),HttpStatusEnum.SINGET_TIMEOUT.getCode());
@ -194,8 +210,6 @@ public class LabourApiController extends BaseController {
@RateLimiter(time = 30, count = 10, limitType = LimitType.IP)
@PostMapping("/v1/pushLabourGroupList")
public AjaxResult pushLabourGroupList(@Validated @RequestBody LabourSignetVo req) {
// 失败集合
List<Integer> failServiceIdList = new ArrayList<>();
SysApplyConfig sysApplyConfig = redisCache.getCacheObject(CacheConstants.YANZHU_SYSTEM_CONFIG+super.getUsername());
if(StringUtils.equals(ShiFouEnum.SHI.getCode(),sysApplyConfig.getIsDel())){
throw new ServiceException(HttpStatusEnum.DISABLE.getInfo(),HttpStatusEnum.DISABLE.getCode());
@ -206,36 +220,43 @@ public class LabourApiController extends BaseController {
List<SurProjectAttendanceGroup> saveList = new ArrayList<>();
List<SurProjectAttendanceGroup> surProjectAttendanceGroupList = JSON.parseArray(req.getData(),SurProjectAttendanceGroup.class);
if(CollectionUtils.isNotEmpty(surProjectAttendanceGroupList)){
// 批量删除已保存数据
List<String> params = new ArrayList<>();
for(SurProjectAttendanceGroup surProjectAttendanceGroup:surProjectAttendanceGroupList){
params.add(sysApplyConfig.getAppId()+"-"+surProjectAttendanceGroup.getServerid());
}
surProjectAttendanceGroupService.deleteSurProjectAttendanceGroupByParams(params);
for(int i=0;i<surProjectAttendanceGroupList.size();i++){
SurProjectAttendanceGroup surProjectAttendanceGroup = surProjectAttendanceGroupList.get(i);
if(StringUtils.isNotEmpty(surProjectAttendanceGroup.getServerid()) && surProjectAttendanceGroup.getCompanyId()!=null && StringUtils.isNotEmpty(surProjectAttendanceGroup.getCompanyTypeId()) && StringUtils.isNotEmpty(surProjectAttendanceGroup.getCompanyName()) && StringUtils.isNotEmpty(surProjectAttendanceGroup.getName())){
LabourGroupVO labourGroupVO = new LabourGroupVO();
BeanUtils.copyBeanProp(labourGroupVO,surProjectAttendanceGroup);
// 手动检测转换后的实体
Set<ConstraintViolation<@Valid Object>> validateSet = Validation.buildDefaultValidatorFactory()
.getValidator()
.validate(labourGroupVO, new Class[0]);
if(CollectionUtils.isEmpty(validateSet)){
surProjectAttendanceGroup.setAppId(sysApplyConfig.getAppId());
surProjectAttendanceGroup.setCfgid(sysApplyConfig.getCfgId());
surProjectAttendanceGroup.setCreateBy(sysApplyConfig.getAppId());
surProjectAttendanceGroup.setCreateTime(new Date());
saveList.add(surProjectAttendanceGroup);
}else{
failServiceIdList.add(i);
String messages = validateSet.stream()
.map(ConstraintViolation::getMessage)
.reduce((m1, m2) -> m1 + "" + m2)
.orElse("参数输入有误!");
throw new Exception("["+i+"]"+messages);
}
}
// 批量删除已保存数据
List<String> params = new ArrayList<>();
for(SurProjectAttendanceGroup surProjectAttendanceGroup:surProjectAttendanceGroupList){
params.add(sysApplyConfig.getAppId()+"-"+surProjectAttendanceGroup.getServerid());
}
surProjectAttendanceGroupService.deleteSurProjectAttendanceGroupByParams(params);
surProjectAttendanceGroupService.batchSurProjectAttendanceGroup(saveList);
}else{
throw new ServiceException(HttpStatusEnum.DARA_EXCEPTION.getInfo(),HttpStatusEnum.DARA_EXCEPTION.getCode());
}
}catch (Exception e){
log.error(e.getMessage());
throw new ServiceException(HttpStatusEnum.SINGET_EXCEPTION.getInfo(),HttpStatusEnum.SINGET_EXCEPTION.getCode());
throw new ServiceException(e.getMessage(),HttpStatusEnum.DARA_EXCEPTION.getCode());
}
}else{
throw new ServiceException(HttpStatusEnum.SINGET_TIMEOUT.getInfo(),HttpStatusEnum.SINGET_TIMEOUT.getCode());
}
return success(failServiceIdList);
return success();
}
/**
@ -256,8 +277,13 @@ public class LabourApiController extends BaseController {
if(req.getDataSign(sysApplyConfig.getPrivateKey())){
try {
SurProjectAttendanceUser surProjectAttendanceUser = JSONObject.parseObject(req.getData(), SurProjectAttendanceUser.class);
if(StringUtils.isNotEmpty(surProjectAttendanceUser.getWorkerId()) && StringUtils.isNotEmpty(surProjectAttendanceUser.getName()) && StringUtils.isNotEmpty(surProjectAttendanceUser.getPhone()) && surProjectAttendanceUser.getGroupId()!=null && surProjectAttendanceUser.getCompanyId()!=null
&& StringUtils.isNotEmpty(surProjectAttendanceUser.getGroupName()) && StringUtils.isNotEmpty(surProjectAttendanceUser.getWorkTypeName()) && surProjectAttendanceUser.getGender()!=null && StringUtils.isNotEmpty(surProjectAttendanceUser.getRecentPhoto()) && StringUtils.isNotEmpty(surProjectAttendanceUser.getNativePlace()) && StringUtils.isNotEmpty(surProjectAttendanceUser.getEnterDate()) && surProjectAttendanceUser.getState()!=null){
LabourUserVO labourUserVO = new LabourUserVO();
BeanUtils.copyBeanProp(labourUserVO,surProjectAttendanceUser);
// 手动检测转换后的实体
Set<ConstraintViolation<@Valid Object>> validateSet = Validation.buildDefaultValidatorFactory()
.getValidator()
.validate(labourUserVO, new Class[0]);
if(CollectionUtils.isEmpty(validateSet)){
// 查询当前人员是否已推送
SurProjectAttendanceUser searchModel = new SurProjectAttendanceUser();
searchModel.setAppId(sysApplyConfig.getAppId());
@ -279,11 +305,14 @@ public class LabourApiController extends BaseController {
surProjectAttendanceUserService.insertSurProjectAttendanceUser(surProjectAttendanceUser);
}
}else{
throw new ServiceException(HttpStatusEnum.DARA_EXCEPTION.getInfo(),HttpStatusEnum.DARA_EXCEPTION.getCode());
String messages = validateSet.stream()
.map(ConstraintViolation::getMessage)
.reduce((m1, m2) -> m1 + "" + m2)
.orElse("参数输入有误!");
throw new Exception(messages);
}
}catch (Exception e){
log.error(e.getMessage());
throw new ServiceException(HttpStatusEnum.SINGET_EXCEPTION.getInfo(),HttpStatusEnum.SINGET_EXCEPTION.getCode());
throw new ServiceException(e.getMessage(),HttpStatusEnum.DARA_EXCEPTION.getCode());
}
}else{
throw new ServiceException(HttpStatusEnum.SINGET_TIMEOUT.getInfo(),HttpStatusEnum.SINGET_TIMEOUT.getCode());
@ -302,8 +331,6 @@ public class LabourApiController extends BaseController {
@RateLimiter(time = 30, count = 10, limitType = LimitType.IP)
@PostMapping("/v1/pushLabourUserList")
public AjaxResult pushLabourUserList(@Validated @RequestBody LabourSignetVo req) {
// 失败集合
List<Integer> failServiceIdList = new ArrayList<>();
SysApplyConfig sysApplyConfig = redisCache.getCacheObject(CacheConstants.YANZHU_SYSTEM_CONFIG+super.getUsername());
if(StringUtils.equals(ShiFouEnum.SHI.getCode(),sysApplyConfig.getIsDel())){
throw new ServiceException(HttpStatusEnum.DISABLE.getInfo(),HttpStatusEnum.DISABLE.getCode());
@ -314,36 +341,43 @@ public class LabourApiController extends BaseController {
List<SurProjectAttendanceUser> saveList = new ArrayList<>();
List<SurProjectAttendanceUser> surProjectAttendanceUserList = JSON.parseArray(req.getData(),SurProjectAttendanceUser.class);
if(CollectionUtils.isNotEmpty(surProjectAttendanceUserList)){
// 批量删除已保存数据
List<String> params = new ArrayList<>();
for(SurProjectAttendanceUser surProjectAttendanceUser:surProjectAttendanceUserList){
params.add(sysApplyConfig.getAppId()+"-"+surProjectAttendanceUser.getWorkerId());
}
surProjectAttendanceUserService.deleteSurProjectAttendanceUserByParams(params);
for(int i=0;i<surProjectAttendanceUserList.size();i++){
SurProjectAttendanceUser surProjectAttendanceUser = surProjectAttendanceUserList.get(i);
if(StringUtils.isNotEmpty(surProjectAttendanceUser.getWorkerId()) && StringUtils.isNotEmpty(surProjectAttendanceUser.getName()) && StringUtils.isNotEmpty(surProjectAttendanceUser.getPhone()) && surProjectAttendanceUser.getGroupId()!=null && surProjectAttendanceUser.getCompanyId()!=null
&& StringUtils.isNotEmpty(surProjectAttendanceUser.getGroupName()) && StringUtils.isNotEmpty(surProjectAttendanceUser.getWorkTypeName()) && surProjectAttendanceUser.getGender()!=null && StringUtils.isNotEmpty(surProjectAttendanceUser.getRecentPhoto()) && StringUtils.isNotEmpty(surProjectAttendanceUser.getNativePlace()) && StringUtils.isNotEmpty(surProjectAttendanceUser.getEnterDate()) && surProjectAttendanceUser.getState()!=null){ surProjectAttendanceUser.setAppId(sysApplyConfig.getAppId());
LabourUserVO labourUserVO = new LabourUserVO();
BeanUtils.copyBeanProp(labourUserVO,surProjectAttendanceUser);
// 手动检测转换后的实体
Set<ConstraintViolation<@Valid Object>> validateSet = Validation.buildDefaultValidatorFactory()
.getValidator()
.validate(labourUserVO, new Class[0]);
if(CollectionUtils.isEmpty(validateSet)){
surProjectAttendanceUser.setCfgid(sysApplyConfig.getCfgId());
surProjectAttendanceUser.setCreateBy(sysApplyConfig.getAppId());
surProjectAttendanceUser.setCreateTime(new Date());
saveList.add(surProjectAttendanceUser);
}else{
failServiceIdList.add(i);
String messages = validateSet.stream()
.map(ConstraintViolation::getMessage)
.reduce((m1, m2) -> m1 + "" + m2)
.orElse("参数输入有误!");
throw new Exception("["+i+"]"+messages);
}
}
// 批量删除已保存数据
List<String> params = new ArrayList<>();
for(SurProjectAttendanceUser surProjectAttendanceUser:surProjectAttendanceUserList){
params.add(sysApplyConfig.getAppId()+"-"+surProjectAttendanceUser.getWorkerId());
}
//删除后新增
surProjectAttendanceUserService.deleteSurProjectAttendanceUserByParams(params);
surProjectAttendanceUserService.batchSurProjectAttendanceUser(saveList);
}else{
throw new ServiceException(HttpStatusEnum.DARA_EXCEPTION.getInfo(),HttpStatusEnum.DARA_EXCEPTION.getCode());
}
}catch (Exception e){
log.error(e.getMessage());
throw new ServiceException(HttpStatusEnum.SINGET_EXCEPTION.getInfo(),HttpStatusEnum.SINGET_EXCEPTION.getCode());
throw new ServiceException(e.getMessage(),HttpStatusEnum.DARA_EXCEPTION.getCode());
}
}else{
throw new ServiceException(HttpStatusEnum.SINGET_TIMEOUT.getInfo(),HttpStatusEnum.SINGET_TIMEOUT.getCode());
}
return success(failServiceIdList);
return success();
}
/**
@ -364,7 +398,13 @@ public class LabourApiController extends BaseController {
if(req.getDataSign(sysApplyConfig.getPrivateKey())){
try {
SurProjectAttendanceData surProjectAttendanceData = JSONObject.parseObject(req.getData(), SurProjectAttendanceData.class);
if(StringUtils.isNotEmpty(surProjectAttendanceData.getWorkerId()) && StringUtils.isNotEmpty(surProjectAttendanceData.getServerid()) && StringUtils.isNotEmpty(surProjectAttendanceData.getAttendanceType()) && surProjectAttendanceData.getAttendanceTime()!=null){
LabourDataVo labourDataVo = new LabourDataVo();
BeanUtils.copyBeanProp(labourDataVo,surProjectAttendanceData);
// 手动检测转换后的实体
Set<ConstraintViolation<@Valid Object>> validateSet = Validation.buildDefaultValidatorFactory()
.getValidator()
.validate(labourDataVo, new Class[0]);
if(CollectionUtils.isEmpty(validateSet)){
// 查询当前班组人员考勤是否已推送
SurProjectAttendanceData searchModel = new SurProjectAttendanceData();
searchModel.setAppId(sysApplyConfig.getAppId());
@ -387,11 +427,15 @@ public class LabourApiController extends BaseController {
surProjectAttendanceDataService.insertSurProjectAttendanceData(surProjectAttendanceData);
}
}else{
throw new ServiceException(HttpStatusEnum.DARA_EXCEPTION.getInfo(),HttpStatusEnum.DARA_EXCEPTION.getCode());
String messages = validateSet.stream()
.map(ConstraintViolation::getMessage)
.reduce((m1, m2) -> m1 + "" + m2)
.orElse("参数输入有误!");
throw new Exception(messages);
}
}catch (Exception e){
log.error(e.getMessage());
throw new ServiceException(HttpStatusEnum.SINGET_EXCEPTION.getInfo(),HttpStatusEnum.SINGET_EXCEPTION.getCode());
throw new ServiceException(e.getMessage(),HttpStatusEnum.DARA_EXCEPTION.getCode());
}
}else{
throw new ServiceException(HttpStatusEnum.SINGET_TIMEOUT.getInfo(),HttpStatusEnum.SINGET_TIMEOUT.getCode());
@ -410,8 +454,6 @@ public class LabourApiController extends BaseController {
@RateLimiter(time = 30, count = 10, limitType = LimitType.IP)
@PostMapping("/v1/pushLabourDataList")
public AjaxResult pushLabourDataList(@Validated @RequestBody LabourSignetVo req) {
// 失败集合
List<Integer> failServiceIdList = new ArrayList<>();
SysApplyConfig sysApplyConfig = redisCache.getCacheObject(CacheConstants.YANZHU_SYSTEM_CONFIG+super.getUsername());
if(StringUtils.equals(ShiFouEnum.SHI.getCode(),sysApplyConfig.getIsDel())){
throw new ServiceException(HttpStatusEnum.DISABLE.getInfo(),HttpStatusEnum.DISABLE.getCode());
@ -422,41 +464,48 @@ public class LabourApiController extends BaseController {
List<SurProjectAttendanceData> saveList = new ArrayList<>();
List<SurProjectAttendanceData> surProjectAttendanceDataList = JSON.parseArray(req.getData(),SurProjectAttendanceData.class);
if(CollectionUtils.isNotEmpty(surProjectAttendanceDataList)){
// 批量删除已保存数据
List<String> params = new ArrayList<>();
for(SurProjectAttendanceData surProjectAttendanceData:surProjectAttendanceDataList){
params.add(sysApplyConfig.getAppId()+"-"+surProjectAttendanceData.getServerid()+"-"+surProjectAttendanceData.getWorkerId());
}
surProjectAttendanceDataService.deleteSurProjectAttendanceDataByParams(params);
for(int i=0;i<surProjectAttendanceDataList.size();i++){
SurProjectAttendanceData surProjectAttendanceData = surProjectAttendanceDataList.get(i);
if(StringUtils.isNotEmpty(surProjectAttendanceData.getWorkerId()) && StringUtils.isNotEmpty(surProjectAttendanceData.getServerid()) && StringUtils.isNotEmpty(surProjectAttendanceData.getAttendanceType()) && surProjectAttendanceData.getAttendanceTime()!=null){
LabourDataVo labourDataVo = new LabourDataVo();
BeanUtils.copyBeanProp(labourDataVo,surProjectAttendanceData);
// 手动检测转换后的实体
Set<ConstraintViolation<@Valid Object>> validateSet = Validation.buildDefaultValidatorFactory()
.getValidator()
.validate(labourDataVo, new Class[0]);
if(CollectionUtils.isEmpty(validateSet)){
surProjectAttendanceData.setAppId(sysApplyConfig.getAppId());
surProjectAttendanceData.setCfgid(sysApplyConfig.getCfgId());
surProjectAttendanceData.setCreateBy(sysApplyConfig.getAppId());
surProjectAttendanceData.setCreateTime(new Date());
saveList.add(surProjectAttendanceData);
}else{
failServiceIdList.add(i);
String messages = validateSet.stream()
.map(ConstraintViolation::getMessage)
.reduce((m1, m2) -> m1 + "" + m2)
.orElse("参数输入有误!");
throw new Exception("["+i+"]"+messages);
}
}
// 批量删除已保存数据
List<String> params = new ArrayList<>();
for(SurProjectAttendanceData surProjectAttendanceData:surProjectAttendanceDataList){
params.add(sysApplyConfig.getAppId()+"-"+surProjectAttendanceData.getServerid()+"-"+surProjectAttendanceData.getWorkerId());
}
surProjectAttendanceDataService.deleteSurProjectAttendanceDataByParams(params);
surProjectAttendanceDataService.batchSurProjectAttendanceData(saveList);
}else{
throw new ServiceException(HttpStatusEnum.DARA_EXCEPTION.getInfo(),HttpStatusEnum.DARA_EXCEPTION.getCode());
}
}catch (Exception e){
log.error(e.getMessage());
throw new ServiceException(HttpStatusEnum.SINGET_EXCEPTION.getInfo(),HttpStatusEnum.SINGET_EXCEPTION.getCode());
throw new ServiceException(e.getMessage(),HttpStatusEnum.DARA_EXCEPTION.getCode());
}
}else{
throw new ServiceException(HttpStatusEnum.SINGET_TIMEOUT.getInfo(),HttpStatusEnum.SINGET_TIMEOUT.getCode());
}
return success(failServiceIdList);
return success();
}
private static final String publicKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDMIBL0C+sN2oZEaCscc8gaEjXv87F/Ggml4XcjFmWaw8xQ0vfwGzY6wdG6eTMLW0FV3GSSxs2lsVJnrjkHNAnqFoMGn3RHcHnrIlAm4+ALt8S4rQ1TIgqzuasuVykUkGunTDYzAEcObTkZ70ZToj8qQwRCkskfgbUIiw4XpXqS2QIDAQAB";
private static final String baseUrl = "http://62.234.3.186:8090/jhapi";
private static final String token = "eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6Ijk1OWIwODAzLTU3NjEtNDBlOS1iYWUxLWJhNzQ0NjkyNmNkMCJ9.BKEaL5vGknNX6aVwYqG1xlJqv9haByoCD4Qo5alXXPWY3PkQsyKuLCN-Iw2ZHM3B4MX9XahrS2sT9Y3RjmuWXA";
private static final String baseUrl = "http://127.0.0.1:8090/jhapi";
private static final String token = "eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjMyZTJlYmY2LTE1NjktNDk1OS1iZDY4LTM1NWZhZGQxNjNiMyJ9.TM1mm-Nxr3g5HkUNt5gaDdN_nHKcQ8OiZYX6K1M5K8odLounSBxXzFlBzy3BndyhzkUmPbSIAO8yMD9up-FTYQ";
/**
* ,
@ -494,6 +543,11 @@ public class LabourApiController extends BaseController {
public static void pushLabourGroup(){
Map<String,Object> map = new HashMap<>();
map.put("serverid","1");
map.put("companyId",123);
map.put("companyName","1222222222222222222222222");
map.put("companyTypeId","1");
map.put("name","12");
map.put("isDel",1);
String jsonString = JSONObject.toJSONString(map);
String timestamp = String.valueOf(System.currentTimeMillis());
try {
@ -522,13 +576,29 @@ public class LabourApiController extends BaseController {
*
*/
public static void pushLabourGroupList(List<Map<String,Object>> datas){
Map<String,Object> map = new HashMap<>();
map.put("serverid","1");
map.put("companyId",123);
map.put("companyName","1222222222222222222222222");
map.put("companyTypeId","1");
map.put("name","12");
map.put("isDel",1);
datas.add(map);
Map<String,Object> map1 = new HashMap<>();
map1.put("serverid","1");
map1.put("companyId",123);
map1.put("companyName","1222222222222222222222222");
map1.put("companyTypeId","1");
map1.put("name","12");
map1.put("isDel",1);
datas.add(map1);
String jsonString = JSONObject.toJSONString(datas);
String timestamp = String.valueOf(System.currentTimeMillis());
try {
// 明文信息->公钥加密
String encryptByPublicKeyStr = AuthRsaUtils.encryptByPublicKey(publicKey, Md5Utils.hash(jsonString)+timestamp);
log.info("公钥加密...{}" , encryptByPublicKeyStr);
String url = baseUrl + "/api/labour/v1/pushLabourGroup";
String url = baseUrl + "/api/labour/v1/pushLabourGroupList";
Map<String, Object> body = new HashMap<>();
body.put("sign",encryptByPublicKeyStr);
body.put("data",jsonString);
@ -554,11 +624,27 @@ public class LabourApiController extends BaseController {
Map<String,Object> map = new HashMap<>();
map.put("workerId","1");
map.put("name","张三");
map.put("phone","张三");
map.put("groupId",1);
map.put("companyId",1);
map.put("groupName","张三112");
map.put("workTypeName","张三112");
map.put("specWorkType",1);
map.put("typeName",1);
map.put("ethnic","1213");
map.put("gender",1);
map.put("recentPhoto","http:///api/labour/v1/pushLabourUser/123");
map.put("nativePlace","张三111");
map.put("enterDate",1);
map.put("state",1);
map.put("isDel",1);
String jsonString = JSONObject.toJSONString(map);
String timestamp = String.valueOf(System.currentTimeMillis());
try {
String s = Md5Utils.hash(jsonString)+timestamp;
log.info("签名明文...{}" , s);
// 明文信息->公钥加密
String encryptByPublicKeyStr = AuthRsaUtils.encryptByPublicKey(publicKey, Md5Utils.hash(jsonString)+timestamp);
String encryptByPublicKeyStr = AuthRsaUtils.encryptByPublicKey(publicKey, s);
log.info("公钥加密...{}" , encryptByPublicKeyStr);
String url = baseUrl + "/api/labour/v1/pushLabourUser";
Map<String, Object> body = new HashMap<>();
@ -582,6 +668,42 @@ public class LabourApiController extends BaseController {
*
*/
public static void pushLabourUserList(List<Map<String,Object>> datas){
Map<String,Object> map = new HashMap<>();
map.put("workerId","1");
map.put("name","张三");
map.put("phone","张三");
map.put("groupId",1);
map.put("companyId",1);
map.put("groupName","张三112");
map.put("workTypeName","张三112");
map.put("specWorkType",1);
map.put("typeName",1);
map.put("ethnic","1213");
map.put("gender",1);
map.put("recentPhoto","http:///api/labour/v1/pushLabourUser/123");
map.put("nativePlace","张三111");
map.put("enterDate",1);
map.put("state",1);
map.put("isDel",1);
datas.add(map);
Map<String,Object> map1 = new HashMap<>();
map1.put("workerId","1");
map1.put("name","张三");
map1.put("phone","张三");
map1.put("groupId",1);
map1.put("companyId",1);
map1.put("groupName","张三112");
map1.put("workTypeName","张三112");
map1.put("specWorkType",1);
map1.put("typeName",1);
map1.put("ethnic","1213");
map1.put("gender",1);
map1.put("recentPhoto","http:///api/labour/v1/pushLabourUser/123");
map1.put("nativePlace","张三111");
map1.put("enterDate",1);
map1.put("state",1);
map1.put("isDel",1);
datas.add(map1);
String jsonString = JSONObject.toJSONString(datas);
String timestamp = String.valueOf(System.currentTimeMillis());
try {
@ -614,6 +736,11 @@ public class LabourApiController extends BaseController {
Map<String,Object> map = new HashMap<>();
map.put("serverid","1");
map.put("workerId","1");
map.put("companyId",1);
map.put("attendanceType","E");
map.put("attendanceTime","2022-11-22 11:11:11");
map.put("identification","11231231232132");
map.put("isDel",1);
String jsonString = JSONObject.toJSONString(map);
String timestamp = String.valueOf(System.currentTimeMillis());
try {
@ -642,11 +769,31 @@ public class LabourApiController extends BaseController {
*
*/
public static void pushLabourDataList(List<Map<String,Object>> datas){
Map<String,Object> map = new HashMap<>();
map.put("serverid","1");
map.put("workerId","1");
map.put("companyId",1);
map.put("attendanceType","E");
map.put("attendanceTime","2022-11-22 11:11:11");
map.put("identification","11231231232132");
map.put("isDel",1);
datas.add(map);
Map<String,Object> map1 = new HashMap<>();
map1.put("serverid","1");
map1.put("workerId","1");
map1.put("companyId",1);
map1.put("attendanceType","E");
map1.put("attendanceTime","2022-11-22 11:11:11");
map1.put("identification","11231231232132");
map1.put("isDel",1);
datas.add(map1);
String jsonString = JSONObject.toJSONString(datas);
String timestamp = String.valueOf(System.currentTimeMillis());
try {
// 明文信息->公钥加密
String encryptByPublicKeyStr = AuthRsaUtils.encryptByPublicKey(publicKey, Md5Utils.hash(jsonString)+timestamp);
String s = Md5Utils.hash(jsonString)+timestamp;
log.info("签名明文...{}" , s);
String encryptByPublicKeyStr = AuthRsaUtils.encryptByPublicKey(publicKey, s);
log.info("公钥加密...{}" , encryptByPublicKeyStr);
String url = baseUrl + "/api/labour/v1/pushLabourDataList";
Map<String, Object> body = new HashMap<>();
@ -668,7 +815,7 @@ public class LabourApiController extends BaseController {
}
public static void main(String[] args) {
getToken();
pushLabourUser();
}
}

View File

@ -56,6 +56,7 @@ public class LabourSignetVo {
String decryptByPrivateKey = AuthRsaUtils.decryptByPrivateKey(privateKey,sign);
String privateDataStr = Md5Utils.hash(data) + timestamp;
log.info("签名值...{}",privateDataStr);
log.info("解密值...{}",decryptByPrivateKey);
if (StringUtils.equals(privateDataStr, decryptByPrivateKey)) {
signFlag = true;
}

View File

@ -102,7 +102,7 @@ spring:
# 数据库索引
database: 1
# 密码
password: 123456
password: sadklfasjfdlui_290sad^&F@&#&&*@^&*$
# 连接超时时间
timeout: 10s
lettuce:

View File

@ -647,7 +647,8 @@ export default {
},
methods: {
setDataTypeLvl1(row, val){
updateProjectChecking({id:row.id,dataTypeLvl1:val});
row.dataTypeLvl2=null;
updateProjectChecking({id:row.id,dataTypeLvl1:val,dataTypeLvl2:null});
},
setDataTypeLvl2(row, val){
updateProjectChecking({id:row.id,dataTypeLvl2:val});

View File

@ -280,7 +280,7 @@
>
<el-option
v-for="dict in dict.type.project_checking_data_type_lvl2"
v-show="form.dataTypeLvl1 == dict.raw.cssClass"
v-show="form.dataTypeLvl1 == dict.raw.remark"
:key="dict.value"
:label="dict.label"
:value="dict.value"

View File

@ -457,6 +457,7 @@ export default {
});
} else {
this.form.trainType = 1;
this.form.deptId = this.activeName;
this.form.isDel = 0;
addWorkTrain(this.form).then((response) => {
this.$modal.msgSuccess("添加成功");

View File

@ -457,6 +457,7 @@ export default {
});
} else {
this.form.trainType = 0;
this.form.deptId = this.activeName;
this.form.isDel = 0;
addWorkTrain(this.form).then((response) => {
this.$modal.msgSuccess("添加成功");

View File

@ -89,11 +89,11 @@ public class SurProjectAttendanceData extends BaseEntity
private String other;
/** */
@Excel(name = "")
@Excel(name = "数据状态")
private Long state;
/** */
@Excel(name = "")
@Excel(name = "数据是否有效")
private Long isDel;
private Long projectId;

View File

@ -16,11 +16,11 @@ public class SurProjectAttendanceGroup extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** $column.columnComment */
/** id */
private Long id;
/** $column.columnComment */
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
/** cfgid */
@Excel(name = "cfgid")
private Long cfgid;
/** 注册应用ID */
@ -104,7 +104,7 @@ public class SurProjectAttendanceGroup extends BaseEntity
private Long exitDate;
/** 是否有效 */
@Excel(name = "是否有效", readConverterExp = "$column.readConverterExp()")
@Excel(name = "是否有效")
private Long isDel;
/** 时间戳 */

View File

@ -0,0 +1,106 @@
package com.yanzhu.jh.project.domain.vo;
import com.ruoyi.common.core.domain.BaseEntity;
import javax.validation.constraints.*;
/**
*
*
* @author JiangYuQi
* @date 2024-01-22
*/
public class LabourDataVo extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 数据id */
@NotBlank(message = "考勤数据ID不能为空")
@Size(max = 64, message = "考勤数据ID最大长度64位")
private String serverid;
/** 工人Id */
@NotBlank(message = "工人ID不能为空")
@Size(max = 64, message = "工人ID最大长度64位")
private String workerId;
/** 分包商id */
@NotNull(message = "分包商ID不能为空")
private Long companyId;
/** 进门还是出门E进L出 */
@NotBlank(message = "进出门不能为空")
@Pattern(regexp = "E|L", message = "进出门类型格式异常E进|L出")
private String attendanceType;
/** 考勤时间yyyy-MM-dd HH:mm:ss */
@NotBlank(message = "考勤时间不能为空")
@Size(min = 18,max = 20, message = "考勤时间格式异常YYYY-MM-dd HH:mm:ss")
private String attendanceTime;
/** 身份证号 */
@NotBlank(message = "身份证号不能为空")
@Size(max = 32, message = "身份证号最大长度为32位")
private String identification;
/** 数据是否有效 */
@NotNull(message = "数据是否有效不能为空")
@Max(value = 1, message = "数据是否有效格式异常0有效|1无效")
private Long isDel;
public String getServerid() {
return serverid;
}
public void setServerid(String serverid) {
this.serverid = serverid;
}
public String getWorkerId() {
return workerId;
}
public void setWorkerId(String workerId) {
this.workerId = workerId;
}
public Long getCompanyId() {
return companyId;
}
public void setCompanyId(Long companyId) {
this.companyId = companyId;
}
public String getAttendanceType() {
return attendanceType;
}
public void setAttendanceType(String attendanceType) {
this.attendanceType = attendanceType;
}
public String getAttendanceTime() {
return attendanceTime;
}
public void setAttendanceTime(String attendanceTime) {
this.attendanceTime = attendanceTime;
}
public String getIdentification() {
return identification;
}
public void setIdentification(String identification) {
this.identification = identification;
}
public Long getIsDel() {
return isDel;
}
public void setIsDel(Long isDel) {
this.isDel = isDel;
}
}

View File

@ -0,0 +1,85 @@
package com.yanzhu.jh.project.domain.vo;
import javax.validation.constraints.*;
public class LabourGroupVO {
private static final long serialVersionUID = 1L;
/** 工人id */
@NotBlank(message = "班组主键ID不能为空")
@Size(max = 64, message = "班组主键最大64位")
private String serverid;
/** 分包商id */
@NotNull(message = "分包商ID不能为空")
private Long companyId;
/** 分包商名称 */
@NotBlank(message = "分包商名称不能为空")
@Size(max = 64, message = "分包商名称最大64位")
private String companyName;
/** 分包商类型不能为空 */
@NotBlank(message = "分包商类型不能为空")
@Pattern(regexp = "1|2|3|4|5|6|7|8", message = "分包商类型错误1总包|2劳务分包|8监理")
private String companyTypeId;
/** 班组名称 */
@NotBlank(message = "班组名称不能为空")
@Size(max = 64, message = "班组名称最大64位")
private String name;
/** 数据是否有效 */
@NotNull(message = "数据是否有效不能为空")
@Max(value = 1, message = "数据是否有效格式异常0有效|1无效")
private Long isDel;
public String getServerid() {
return serverid;
}
public void setServerid(String serverid) {
this.serverid = serverid;
}
public Long getCompanyId() {
return companyId;
}
public void setCompanyId(Long companyId) {
this.companyId = companyId;
}
public String getCompanyName() {
return companyName;
}
public void setCompanyName(String companyName) {
this.companyName = companyName;
}
public String getCompanyTypeId() {
return companyTypeId;
}
public void setCompanyTypeId(String companyTypeId) {
this.companyTypeId = companyTypeId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Long getIsDel() {
return isDel;
}
public void setIsDel(Long isDel) {
this.isDel = isDel;
}
}

View File

@ -0,0 +1,216 @@
package com.yanzhu.jh.project.domain.vo;
import javax.validation.constraints.Max;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
public class LabourUserVO {
private static final long serialVersionUID = 1L;
/** 工人id */
@NotBlank(message = "工人ID不能为空")
@Size(max = 64, message = "工人ID最大长度64位")
private String workerId;
/** 姓名 */
@NotBlank(message = "工人姓名不能为空")
@Size(max = 32, message = "工人ID最大长度32位")
private String name;
/** 民族 */
@NotBlank(message = "工人民族不能为空")
@Size(max = 32, message = "工人民族最大长度32位")
private String ethnic;
/** 籍贯 */
@NotBlank(message = "工人籍贯不能为空")
@Size(max = 128, message = "工人籍贯最大长度128位")
private String nativePlace;
/** 性别0:男 1:女 */
@NotNull(message = "工人性别不能为空")
@Max(value = 1, message = "工人性别格式异常")
private Long gender;
/** 联系电话 */
@NotBlank(message = "联系电话不能为空")
@Size(max = 32, message = "联系电话最大32位")
private String phone;
/** 近照 */
@NotBlank(message = "工人近照不能为空")
@Size(max = 255, message = "工人近照URL最大255位")
private String recentPhoto;
/** 所属班组ID */
@NotNull(message = "所属班组ID不能为空")
private Long groupId;
/** 所属班组 */
@NotBlank(message = "所属班组不能为空")
@Size(max = 64, message = "所属名称最大64位")
private String groupName;
/** 工种名称 */
@NotBlank(message = "工种名称不能为空")
@Size(max = 64, message = "工种名称最大64位")
private String workTypeName;
/** 是否特殊工种 */
@NotNull(message = "是否特殊工种不能为空")
@Max(value = 1, message = "是否特殊工种格式异常0否|1是")
private Integer specWorkType;
/** 进退场状态0:进场1:退场 */
@NotNull(message = "进退场状态不能为空")
@Max(value = 1, message = "进退场状态格式异常0进场|1退场")
private Long state;
/** 进场日期 */
@NotBlank(message = "进场日期不能为空")
@Size(max = 32, message = "进场日期格式异常")
private String enterDate;
/** 分包商id */
@NotNull(message = "分包商ID不能为空")
private Long companyId;
/** 分包商名称 */
@Size(max = 64, message = "分包商名称最大64位")
private String companyName;
/** 数据是否有效 */
@NotNull(message = "数据是否有效不能为空")
@Max(value = 1, message = "数据是否有效格式异常0有效|1无效")
private Long isDel;
public String getWorkerId() {
return workerId;
}
public void setWorkerId(String workerId) {
this.workerId = workerId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEthnic() {
return ethnic;
}
public void setEthnic(String ethnic) {
this.ethnic = ethnic;
}
public String getNativePlace() {
return nativePlace;
}
public void setNativePlace(String nativePlace) {
this.nativePlace = nativePlace;
}
public Long getGender() {
return gender;
}
public void setGender(Long gender) {
this.gender = gender;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getRecentPhoto() {
return recentPhoto;
}
public void setRecentPhoto(String recentPhoto) {
this.recentPhoto = recentPhoto;
}
public Long getGroupId() {
return groupId;
}
public void setGroupId(Long groupId) {
this.groupId = groupId;
}
public String getGroupName() {
return groupName;
}
public void setGroupName(String groupName) {
this.groupName = groupName;
}
public String getWorkTypeName() {
return workTypeName;
}
public void setWorkTypeName(String workTypeName) {
this.workTypeName = workTypeName;
}
public Integer getSpecWorkType() {
return specWorkType;
}
public void setSpecWorkType(Integer specWorkType) {
this.specWorkType = specWorkType;
}
public Long getState() {
return state;
}
public void setState(Long state) {
this.state = state;
}
public String getEnterDate() {
return enterDate;
}
public void setEnterDate(String enterDate) {
this.enterDate = enterDate;
}
public Long getCompanyId() {
return companyId;
}
public void setCompanyId(Long companyId) {
this.companyId = companyId;
}
public String getCompanyName() {
return companyName;
}
public void setCompanyName(String companyName) {
this.companyName = companyName;
}
public Long getIsDel() {
return isDel;
}
public void setIsDel(Long isDel) {
this.isDel = isDel;
}
}

View File

@ -194,14 +194,7 @@ public class WorkTrainServiceImpl implements IWorkTrainService
}else{
deptid = SecurityUtils.getDeptId();
}
SysDept sysDept = sysDeptMapper.selectDeptById(deptid);
if(DeptTypeEnum.JTGS.getCode().equals(sysDept.getTypeFlag()) || DeptTypeEnum.ZGS.getCode().equals(sysDept.getTypeFlag())){
SurProject surProject = surProjectMapper.selectSurProjectById(workTrain.getProjectId());
dept.setDeptId(surProject.getDeptId());
}else{
dept.setDeptId(sysDept.getDeptId());
}
dept.setDeptId(deptid);
dept.setIsMain(PublicStateEnum.YES.getCode());
workTrainDeptList.add(dept);