提交代码

dev_xds
姜玉琦 2024-01-14 02:33:46 +08:00
parent de7301d3d2
commit 287d860c8f
16 changed files with 300 additions and 107 deletions

View File

@ -1,8 +1,11 @@
package com.ruoyi.api.base; package com.ruoyi.api.base;
import com.ruoyi.common.enums.HttpStatusEnum;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.AuthRsaUtils; import com.ruoyi.common.utils.AuthRsaUtils;
import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.StringUtils;
import lombok.Data; import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
@ -15,6 +18,7 @@ import javax.validation.constraints.Size;
* @date: 2024/01/13 10:17 * @date: 2024/01/13 10:17
*/ */
@Data @Data
@Slf4j
public class TokenReqVo { public class TokenReqVo {
/** /**
@ -37,15 +41,25 @@ public class TokenReqVo {
@NotNull(message = "时间戳不能为空") @NotNull(message = "时间戳不能为空")
private Long timestamp; private Long timestamp;
/**
*
*
* @author: JiangYuQi
* @date: 2024/01/13 10:17
*/
public Boolean getLoginSign(String privateKey) { public Boolean getLoginSign(String privateKey) {
boolean signFlag = false; boolean signFlag = false;
try { try {
if(!checkTimestamp()){
throw new ServiceException(HttpStatusEnum.SINGET_TIMEOUT.getInfo(),HttpStatusEnum.SINGET_TIMEOUT.getCode());
}
String decryptByPrivateKey = AuthRsaUtils.decryptByPrivateKey(privateKey,sign); String decryptByPrivateKey = AuthRsaUtils.decryptByPrivateKey(privateKey,sign);
if (StringUtils.equals(appId + timestamp, decryptByPrivateKey) && checkTimestamp()) { if (StringUtils.equals(appId + timestamp, decryptByPrivateKey)) {
signFlag = true; signFlag = true;
} }
} catch (Exception e) { } catch (Exception e) {
throw new RuntimeException("签名解密异常"); log.error(e.getMessage());
throw new ServiceException(HttpStatusEnum.SINGET_EXCEPTION.getInfo(),HttpStatusEnum.SINGET_EXCEPTION.getCode());
} }
return signFlag; return signFlag;
} }

View File

@ -17,7 +17,6 @@ import com.ruoyi.common.enums.LimitType;
import com.ruoyi.common.enums.ShiFouEnum; import com.ruoyi.common.enums.ShiFouEnum;
import com.ruoyi.common.enums.UserTypeEnum; import com.ruoyi.common.enums.UserTypeEnum;
import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.AuthRsaUtils;
import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.framework.web.service.SysLoginService; import com.ruoyi.framework.web.service.SysLoginService;
@ -30,6 +29,7 @@ import com.yanzhu.jh.project.service.ISurProjectAttendanceDataService;
import com.yanzhu.jh.project.service.ISurProjectAttendanceGroupService; import com.yanzhu.jh.project.service.ISurProjectAttendanceGroupService;
import com.yanzhu.jh.project.service.ISurProjectAttendanceUserService; import com.yanzhu.jh.project.service.ISurProjectAttendanceUserService;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@ -48,6 +48,7 @@ import java.util.List;
* @author JiangYuQi * @author JiangYuQi
* @date 2024-01-13 * @date 2024-01-13
*/ */
@Slf4j
@RestController @RestController
@RequestMapping("/api/labour") @RequestMapping("/api/labour")
public class LabourApiController extends BaseController { public class LabourApiController extends BaseController {
@ -86,17 +87,17 @@ public class LabourApiController extends BaseController {
if(sysApplyConfig==null){ if(sysApplyConfig==null){
throw new ServiceException(HttpStatusEnum.ERROR.getInfo(),HttpStatusEnum.ERROR.getCode()); throw new ServiceException(HttpStatusEnum.ERROR.getInfo(),HttpStatusEnum.ERROR.getCode());
} }
if(StringUtils.equals(ShiFouEnum.SHI.getCode()+"",sysApplyConfig.getIsDel())){ if(StringUtils.equals(ShiFouEnum.SHI.getCode(),sysApplyConfig.getIsDel())){
throw new ServiceException(HttpStatusEnum.DISABLE.getInfo(),HttpStatusEnum.DISABLE.getCode()); throw new ServiceException(HttpStatusEnum.DISABLE.getInfo(),HttpStatusEnum.DISABLE.getCode());
} }
AjaxResult ajax = AjaxResult.success(); AjaxResult ajax = AjaxResult.success();
String systemToken = ""; String Authorization = "";
if (req.getLoginSign(sysApplyConfig.getPrivateKey())) { if (req.getLoginSign(sysApplyConfig.getPrivateKey())) {
systemToken = this.getAppIdLoginToken(req.getAppId(),sysApplyConfig); Authorization = this.getAppIdLoginToken(req.getAppId(),sysApplyConfig);
} else { } else {
throw new ServiceException(HttpStatusEnum.SINGET_ERROR.getInfo(),HttpStatusEnum.SINGET_ERROR.getCode()); throw new ServiceException(HttpStatusEnum.SINGET_ERROR.getInfo(),HttpStatusEnum.SINGET_ERROR.getCode());
} }
ajax.put("systemToken", systemToken); ajax.put("Authorization", Authorization);
return ajax; return ajax;
} }
@ -140,13 +141,12 @@ public class LabourApiController extends BaseController {
@PostMapping("/v1/pushLabourGroup") @PostMapping("/v1/pushLabourGroup")
public AjaxResult pushLabourGroup(@Validated @RequestBody LabourSignetVo req) { public AjaxResult pushLabourGroup(@Validated @RequestBody LabourSignetVo req) {
SysApplyConfig sysApplyConfig = redisCache.getCacheObject(CacheConstants.YANZHU_SYSTEM_CONFIG+super.getUsername()); SysApplyConfig sysApplyConfig = redisCache.getCacheObject(CacheConstants.YANZHU_SYSTEM_CONFIG+super.getUsername());
if(req.checkTimestamp()){ if(StringUtils.equals(ShiFouEnum.SHI.getCode(),sysApplyConfig.getIsDel())){
throw new ServiceException(HttpStatusEnum.DISABLE.getInfo(),HttpStatusEnum.DISABLE.getCode());
}
if(req.getDataSign(sysApplyConfig.getPrivateKey())){
try { try {
if(StringUtils.equals(ShiFouEnum.SHI.getCode()+"",sysApplyConfig.getIsDel())){ SurProjectAttendanceGroup surProjectAttendanceGroup = JSONObject.parseObject(req.getData(), SurProjectAttendanceGroup.class);
throw new ServiceException(HttpStatusEnum.DISABLE.getInfo(),HttpStatusEnum.DISABLE.getCode());
}
String result = AuthRsaUtils.decryptByPrivateKey(sysApplyConfig.getPrivateKey(),req.getSign());
SurProjectAttendanceGroup surProjectAttendanceGroup = JSONObject.parseObject(result, SurProjectAttendanceGroup.class);
if(StringUtils.isNotEmpty(surProjectAttendanceGroup.getServerid())){ if(StringUtils.isNotEmpty(surProjectAttendanceGroup.getServerid())){
// 查询当前班组是否已推送 // 查询当前班组是否已推送
SurProjectAttendanceGroup searchModel = new SurProjectAttendanceGroup(); SurProjectAttendanceGroup searchModel = new SurProjectAttendanceGroup();
@ -155,12 +155,13 @@ public class LabourApiController extends BaseController {
List<SurProjectAttendanceGroup> list = surProjectAttendanceGroupService.selectSurProjectAttendanceGroupList(searchModel); List<SurProjectAttendanceGroup> list = surProjectAttendanceGroupService.selectSurProjectAttendanceGroupList(searchModel);
if(CollectionUtils.isNotEmpty(list)){ if(CollectionUtils.isNotEmpty(list)){
surProjectAttendanceGroup.setId(list.get(0).getId()); surProjectAttendanceGroup.setId(list.get(0).getId());
surProjectAttendanceGroup.setAppId(sysApplyConfig.getAppId());
surProjectAttendanceGroup.setCreateBy(list.get(0).getCreateBy()); surProjectAttendanceGroup.setCreateBy(list.get(0).getCreateBy());
surProjectAttendanceGroup.setCreateTime(list.get(0).getCreateTime()); surProjectAttendanceGroup.setCreateTime(list.get(0).getCreateTime());
surProjectAttendanceGroup.setUpdateBy(sysApplyConfig.getAppId()); surProjectAttendanceGroup.setUpdateBy(sysApplyConfig.getAppId());
surProjectAttendanceGroup.setUpdateTime(new Date());
surProjectAttendanceGroupService.updateSurProjectAttendanceGroup(surProjectAttendanceGroup); surProjectAttendanceGroupService.updateSurProjectAttendanceGroup(surProjectAttendanceGroup);
}else{ }else{
surProjectAttendanceGroup.setAppId(sysApplyConfig.getAppId());
surProjectAttendanceGroup.setCreateBy(sysApplyConfig.getAppId()); surProjectAttendanceGroup.setCreateBy(sysApplyConfig.getAppId());
surProjectAttendanceGroup.setCreateTime(new Date()); surProjectAttendanceGroup.setCreateTime(new Date());
surProjectAttendanceGroupService.insertSurProjectAttendanceGroup(surProjectAttendanceGroup); surProjectAttendanceGroupService.insertSurProjectAttendanceGroup(surProjectAttendanceGroup);
@ -169,6 +170,7 @@ public class LabourApiController extends BaseController {
throw new ServiceException(HttpStatusEnum.DARA_EXCEPTION.getInfo(),HttpStatusEnum.DARA_EXCEPTION.getCode()); throw new ServiceException(HttpStatusEnum.DARA_EXCEPTION.getInfo(),HttpStatusEnum.DARA_EXCEPTION.getCode());
} }
}catch (Exception e){ }catch (Exception e){
log.error(e.getMessage());
throw new ServiceException(HttpStatusEnum.SINGET_EXCEPTION.getInfo(),HttpStatusEnum.SINGET_EXCEPTION.getCode()); throw new ServiceException(HttpStatusEnum.SINGET_EXCEPTION.getInfo(),HttpStatusEnum.SINGET_EXCEPTION.getCode());
} }
}else{ }else{
@ -191,15 +193,14 @@ public class LabourApiController extends BaseController {
// 失败集合 // 失败集合
List<Integer> failServiceIdList = new ArrayList<>(); List<Integer> failServiceIdList = new ArrayList<>();
SysApplyConfig sysApplyConfig = redisCache.getCacheObject(CacheConstants.YANZHU_SYSTEM_CONFIG+super.getUsername()); SysApplyConfig sysApplyConfig = redisCache.getCacheObject(CacheConstants.YANZHU_SYSTEM_CONFIG+super.getUsername());
if(req.checkTimestamp()){ if(StringUtils.equals(ShiFouEnum.SHI.getCode(),sysApplyConfig.getIsDel())){
throw new ServiceException(HttpStatusEnum.DISABLE.getInfo(),HttpStatusEnum.DISABLE.getCode());
}
if(req.getDataSign(sysApplyConfig.getPrivateKey())){
try { try {
if(StringUtils.equals(ShiFouEnum.SHI.getCode()+"",sysApplyConfig.getIsDel())){
throw new ServiceException(HttpStatusEnum.DISABLE.getInfo(),HttpStatusEnum.DISABLE.getCode());
}
// 保存集合 // 保存集合
List<SurProjectAttendanceGroup> saveList = new ArrayList<>(); List<SurProjectAttendanceGroup> saveList = new ArrayList<>();
String result = AuthRsaUtils.decryptByPrivateKey(sysApplyConfig.getPrivateKey(),req.getSign()); List<SurProjectAttendanceGroup> surProjectAttendanceGroupList = JSON.parseArray(req.getData(),SurProjectAttendanceGroup.class);
List<SurProjectAttendanceGroup> surProjectAttendanceGroupList = JSON.parseArray(result,SurProjectAttendanceGroup.class);
if(CollectionUtils.isNotEmpty(surProjectAttendanceGroupList)){ if(CollectionUtils.isNotEmpty(surProjectAttendanceGroupList)){
// 批量删除已保存数据 // 批量删除已保存数据
List<String> params = new ArrayList<>(); List<String> params = new ArrayList<>();
@ -210,6 +211,7 @@ public class LabourApiController extends BaseController {
for(int i=0;i<surProjectAttendanceGroupList.size();i++){ for(int i=0;i<surProjectAttendanceGroupList.size();i++){
SurProjectAttendanceGroup surProjectAttendanceGroup = surProjectAttendanceGroupList.get(i); SurProjectAttendanceGroup surProjectAttendanceGroup = surProjectAttendanceGroupList.get(i);
if(StringUtils.isNotEmpty(surProjectAttendanceGroup.getServerid())){ if(StringUtils.isNotEmpty(surProjectAttendanceGroup.getServerid())){
surProjectAttendanceGroup.setAppId(sysApplyConfig.getAppId());
surProjectAttendanceGroup.setCreateBy(sysApplyConfig.getAppId()); surProjectAttendanceGroup.setCreateBy(sysApplyConfig.getAppId());
surProjectAttendanceGroup.setCreateTime(new Date()); surProjectAttendanceGroup.setCreateTime(new Date());
saveList.add(surProjectAttendanceGroup); saveList.add(surProjectAttendanceGroup);
@ -222,6 +224,7 @@ public class LabourApiController extends BaseController {
throw new ServiceException(HttpStatusEnum.DARA_EXCEPTION.getInfo(),HttpStatusEnum.DARA_EXCEPTION.getCode()); throw new ServiceException(HttpStatusEnum.DARA_EXCEPTION.getInfo(),HttpStatusEnum.DARA_EXCEPTION.getCode());
} }
}catch (Exception e){ }catch (Exception e){
log.error(e.getMessage());
throw new ServiceException(HttpStatusEnum.SINGET_EXCEPTION.getInfo(),HttpStatusEnum.SINGET_EXCEPTION.getCode()); throw new ServiceException(HttpStatusEnum.SINGET_EXCEPTION.getInfo(),HttpStatusEnum.SINGET_EXCEPTION.getCode());
} }
}else{ }else{
@ -242,14 +245,13 @@ public class LabourApiController extends BaseController {
@PostMapping("/v1/pushLabourUser") @PostMapping("/v1/pushLabourUser")
public AjaxResult pushLabourUser(@Validated @RequestBody LabourSignetVo req) { public AjaxResult pushLabourUser(@Validated @RequestBody LabourSignetVo req) {
SysApplyConfig sysApplyConfig = redisCache.getCacheObject(CacheConstants.YANZHU_SYSTEM_CONFIG+super.getUsername()); SysApplyConfig sysApplyConfig = redisCache.getCacheObject(CacheConstants.YANZHU_SYSTEM_CONFIG+super.getUsername());
if(req.checkTimestamp()){ if(StringUtils.equals(ShiFouEnum.SHI.getCode(),sysApplyConfig.getIsDel())){
throw new ServiceException(HttpStatusEnum.DISABLE.getInfo(),HttpStatusEnum.DISABLE.getCode());
}
if(req.getDataSign(sysApplyConfig.getPrivateKey())){
try { try {
if(StringUtils.equals(ShiFouEnum.SHI.getCode()+"",sysApplyConfig.getIsDel())){ SurProjectAttendanceUser surProjectAttendanceUser = JSONObject.parseObject(req.getData(), SurProjectAttendanceUser.class);
throw new ServiceException(HttpStatusEnum.DISABLE.getInfo(),HttpStatusEnum.DISABLE.getCode()); if(StringUtils.isNotEmpty(surProjectAttendanceUser.getWorkerId()) && StringUtils.isNotEmpty(surProjectAttendanceUser.getPhone())){
}
String result = AuthRsaUtils.decryptByPrivateKey(sysApplyConfig.getPrivateKey(),req.getSign());
SurProjectAttendanceUser surProjectAttendanceUser = JSONObject.parseObject(result, SurProjectAttendanceUser.class);
if(StringUtils.isNotEmpty(surProjectAttendanceUser.getWorkerId())){
// 查询当前人员是否已推送 // 查询当前人员是否已推送
SurProjectAttendanceUser searchModel = new SurProjectAttendanceUser(); SurProjectAttendanceUser searchModel = new SurProjectAttendanceUser();
searchModel.setAppId(sysApplyConfig.getAppId()); searchModel.setAppId(sysApplyConfig.getAppId());
@ -257,12 +259,13 @@ public class LabourApiController extends BaseController {
List<SurProjectAttendanceUser> list = surProjectAttendanceUserService.selectSurProjectAttendanceUserList(searchModel); List<SurProjectAttendanceUser> list = surProjectAttendanceUserService.selectSurProjectAttendanceUserList(searchModel);
if(CollectionUtils.isNotEmpty(list)){ if(CollectionUtils.isNotEmpty(list)){
surProjectAttendanceUser.setId(list.get(0).getId()); surProjectAttendanceUser.setId(list.get(0).getId());
surProjectAttendanceUser.setAppId(sysApplyConfig.getAppId());
surProjectAttendanceUser.setCreateBy(list.get(0).getCreateBy()); surProjectAttendanceUser.setCreateBy(list.get(0).getCreateBy());
surProjectAttendanceUser.setCreateTime(list.get(0).getCreateTime()); surProjectAttendanceUser.setCreateTime(list.get(0).getCreateTime());
surProjectAttendanceUser.setUpdateBy(sysApplyConfig.getAppId()); surProjectAttendanceUser.setUpdateBy(sysApplyConfig.getAppId());
surProjectAttendanceUser.setUpdateTime(new Date());
surProjectAttendanceUserService.updateSurProjectAttendanceUser(surProjectAttendanceUser); surProjectAttendanceUserService.updateSurProjectAttendanceUser(surProjectAttendanceUser);
}else{ }else{
surProjectAttendanceUser.setAppId(sysApplyConfig.getAppId());
surProjectAttendanceUser.setCreateBy(sysApplyConfig.getAppId()); surProjectAttendanceUser.setCreateBy(sysApplyConfig.getAppId());
surProjectAttendanceUser.setCreateTime(new Date()); surProjectAttendanceUser.setCreateTime(new Date());
surProjectAttendanceUserService.insertSurProjectAttendanceUser(surProjectAttendanceUser); surProjectAttendanceUserService.insertSurProjectAttendanceUser(surProjectAttendanceUser);
@ -271,6 +274,7 @@ public class LabourApiController extends BaseController {
throw new ServiceException(HttpStatusEnum.DARA_EXCEPTION.getInfo(),HttpStatusEnum.DARA_EXCEPTION.getCode()); throw new ServiceException(HttpStatusEnum.DARA_EXCEPTION.getInfo(),HttpStatusEnum.DARA_EXCEPTION.getCode());
} }
}catch (Exception e){ }catch (Exception e){
log.error(e.getMessage());
throw new ServiceException(HttpStatusEnum.SINGET_EXCEPTION.getInfo(),HttpStatusEnum.SINGET_EXCEPTION.getCode()); throw new ServiceException(HttpStatusEnum.SINGET_EXCEPTION.getInfo(),HttpStatusEnum.SINGET_EXCEPTION.getCode());
} }
}else{ }else{
@ -293,15 +297,14 @@ public class LabourApiController extends BaseController {
// 失败集合 // 失败集合
List<Integer> failServiceIdList = new ArrayList<>(); List<Integer> failServiceIdList = new ArrayList<>();
SysApplyConfig sysApplyConfig = redisCache.getCacheObject(CacheConstants.YANZHU_SYSTEM_CONFIG+super.getUsername()); SysApplyConfig sysApplyConfig = redisCache.getCacheObject(CacheConstants.YANZHU_SYSTEM_CONFIG+super.getUsername());
if(req.checkTimestamp()){ if(StringUtils.equals(ShiFouEnum.SHI.getCode(),sysApplyConfig.getIsDel())){
throw new ServiceException(HttpStatusEnum.DISABLE.getInfo(),HttpStatusEnum.DISABLE.getCode());
}
if(req.getDataSign(sysApplyConfig.getPrivateKey())){
try { try {
if(StringUtils.equals(ShiFouEnum.SHI.getCode()+"",sysApplyConfig.getIsDel())){
throw new ServiceException(HttpStatusEnum.DISABLE.getInfo(),HttpStatusEnum.DISABLE.getCode());
}
// 保存集合 // 保存集合
List<SurProjectAttendanceUser> saveList = new ArrayList<>(); List<SurProjectAttendanceUser> saveList = new ArrayList<>();
String result = AuthRsaUtils.decryptByPrivateKey(sysApplyConfig.getPrivateKey(),req.getSign()); List<SurProjectAttendanceUser> surProjectAttendanceUserList = JSON.parseArray(req.getData(),SurProjectAttendanceUser.class);
List<SurProjectAttendanceUser> surProjectAttendanceUserList = JSON.parseArray(result,SurProjectAttendanceUser.class);
if(CollectionUtils.isNotEmpty(surProjectAttendanceUserList)){ if(CollectionUtils.isNotEmpty(surProjectAttendanceUserList)){
// 批量删除已保存数据 // 批量删除已保存数据
List<String> params = new ArrayList<>(); List<String> params = new ArrayList<>();
@ -311,7 +314,8 @@ public class LabourApiController extends BaseController {
surProjectAttendanceUserService.deleteSurProjectAttendanceUserByParams(params); surProjectAttendanceUserService.deleteSurProjectAttendanceUserByParams(params);
for(int i=0;i<surProjectAttendanceUserList.size();i++){ for(int i=0;i<surProjectAttendanceUserList.size();i++){
SurProjectAttendanceUser surProjectAttendanceUser = surProjectAttendanceUserList.get(i); SurProjectAttendanceUser surProjectAttendanceUser = surProjectAttendanceUserList.get(i);
if(StringUtils.isNotEmpty(surProjectAttendanceUser.getWorkerId())){ if(StringUtils.isNotEmpty(surProjectAttendanceUser.getWorkerId()) && StringUtils.isNotEmpty(surProjectAttendanceUser.getPhone())){
surProjectAttendanceUser.setAppId(sysApplyConfig.getAppId());
surProjectAttendanceUser.setCreateBy(sysApplyConfig.getAppId()); surProjectAttendanceUser.setCreateBy(sysApplyConfig.getAppId());
surProjectAttendanceUser.setCreateTime(new Date()); surProjectAttendanceUser.setCreateTime(new Date());
saveList.add(surProjectAttendanceUser); saveList.add(surProjectAttendanceUser);
@ -324,6 +328,7 @@ public class LabourApiController extends BaseController {
throw new ServiceException(HttpStatusEnum.DARA_EXCEPTION.getInfo(),HttpStatusEnum.DARA_EXCEPTION.getCode()); throw new ServiceException(HttpStatusEnum.DARA_EXCEPTION.getInfo(),HttpStatusEnum.DARA_EXCEPTION.getCode());
} }
}catch (Exception e){ }catch (Exception e){
log.error(e.getMessage());
throw new ServiceException(HttpStatusEnum.SINGET_EXCEPTION.getInfo(),HttpStatusEnum.SINGET_EXCEPTION.getCode()); throw new ServiceException(HttpStatusEnum.SINGET_EXCEPTION.getInfo(),HttpStatusEnum.SINGET_EXCEPTION.getCode());
} }
}else{ }else{
@ -344,13 +349,12 @@ public class LabourApiController extends BaseController {
@PostMapping("/v1/pushLabourData") @PostMapping("/v1/pushLabourData")
public AjaxResult pushLabourData(@Validated @RequestBody LabourSignetVo req) { public AjaxResult pushLabourData(@Validated @RequestBody LabourSignetVo req) {
SysApplyConfig sysApplyConfig = redisCache.getCacheObject(CacheConstants.YANZHU_SYSTEM_CONFIG+super.getUsername()); SysApplyConfig sysApplyConfig = redisCache.getCacheObject(CacheConstants.YANZHU_SYSTEM_CONFIG+super.getUsername());
if(req.checkTimestamp()){ if(StringUtils.equals(ShiFouEnum.SHI.getCode(),sysApplyConfig.getIsDel())){
throw new ServiceException(HttpStatusEnum.DISABLE.getInfo(),HttpStatusEnum.DISABLE.getCode());
}
if(req.getDataSign(sysApplyConfig.getPrivateKey())){
try { try {
if(StringUtils.equals(ShiFouEnum.SHI.getCode()+"",sysApplyConfig.getIsDel())){ SurProjectAttendanceData surProjectAttendanceData = JSONObject.parseObject(req.getData(), SurProjectAttendanceData.class);
throw new ServiceException(HttpStatusEnum.DISABLE.getInfo(),HttpStatusEnum.DISABLE.getCode());
}
String result = AuthRsaUtils.decryptByPrivateKey(sysApplyConfig.getPrivateKey(),req.getSign());
SurProjectAttendanceData surProjectAttendanceData = JSONObject.parseObject(result, SurProjectAttendanceData.class);
if(StringUtils.isNotEmpty(surProjectAttendanceData.getWorkerId()) && StringUtils.isNotEmpty(surProjectAttendanceData.getServerid())){ if(StringUtils.isNotEmpty(surProjectAttendanceData.getWorkerId()) && StringUtils.isNotEmpty(surProjectAttendanceData.getServerid())){
// 查询当前班组人员考勤是否已推送 // 查询当前班组人员考勤是否已推送
SurProjectAttendanceData searchModel = new SurProjectAttendanceData(); SurProjectAttendanceData searchModel = new SurProjectAttendanceData();
@ -360,12 +364,13 @@ public class LabourApiController extends BaseController {
List<SurProjectAttendanceData> list = surProjectAttendanceDataService.selectSurProjectAttendanceDataList(searchModel); List<SurProjectAttendanceData> list = surProjectAttendanceDataService.selectSurProjectAttendanceDataList(searchModel);
if(CollectionUtils.isNotEmpty(list)){ if(CollectionUtils.isNotEmpty(list)){
surProjectAttendanceData.setId(list.get(0).getId()); surProjectAttendanceData.setId(list.get(0).getId());
surProjectAttendanceData.setAppId(sysApplyConfig.getAppId());
surProjectAttendanceData.setCreateBy(list.get(0).getCreateBy()); surProjectAttendanceData.setCreateBy(list.get(0).getCreateBy());
surProjectAttendanceData.setCreateTime(list.get(0).getCreateTime()); surProjectAttendanceData.setCreateTime(list.get(0).getCreateTime());
surProjectAttendanceData.setUpdateBy(sysApplyConfig.getAppId()); surProjectAttendanceData.setUpdateBy(sysApplyConfig.getAppId());
surProjectAttendanceData.setUpdateTime(new Date());
surProjectAttendanceDataService.updateSurProjectAttendanceData(surProjectAttendanceData); surProjectAttendanceDataService.updateSurProjectAttendanceData(surProjectAttendanceData);
}else{ }else{
surProjectAttendanceData.setAppId(sysApplyConfig.getAppId());
surProjectAttendanceData.setCreateBy(sysApplyConfig.getAppId()); surProjectAttendanceData.setCreateBy(sysApplyConfig.getAppId());
surProjectAttendanceData.setCreateTime(new Date()); surProjectAttendanceData.setCreateTime(new Date());
surProjectAttendanceDataService.insertSurProjectAttendanceData(surProjectAttendanceData); surProjectAttendanceDataService.insertSurProjectAttendanceData(surProjectAttendanceData);
@ -374,6 +379,7 @@ public class LabourApiController extends BaseController {
throw new ServiceException(HttpStatusEnum.DARA_EXCEPTION.getInfo(),HttpStatusEnum.DARA_EXCEPTION.getCode()); throw new ServiceException(HttpStatusEnum.DARA_EXCEPTION.getInfo(),HttpStatusEnum.DARA_EXCEPTION.getCode());
} }
}catch (Exception e){ }catch (Exception e){
log.error(e.getMessage());
throw new ServiceException(HttpStatusEnum.SINGET_EXCEPTION.getInfo(),HttpStatusEnum.SINGET_EXCEPTION.getCode()); throw new ServiceException(HttpStatusEnum.SINGET_EXCEPTION.getInfo(),HttpStatusEnum.SINGET_EXCEPTION.getCode());
} }
}else{ }else{
@ -396,15 +402,14 @@ public class LabourApiController extends BaseController {
// 失败集合 // 失败集合
List<Integer> failServiceIdList = new ArrayList<>(); List<Integer> failServiceIdList = new ArrayList<>();
SysApplyConfig sysApplyConfig = redisCache.getCacheObject(CacheConstants.YANZHU_SYSTEM_CONFIG+super.getUsername()); SysApplyConfig sysApplyConfig = redisCache.getCacheObject(CacheConstants.YANZHU_SYSTEM_CONFIG+super.getUsername());
if(req.checkTimestamp()){ if(StringUtils.equals(ShiFouEnum.SHI.getCode(),sysApplyConfig.getIsDel())){
throw new ServiceException(HttpStatusEnum.DISABLE.getInfo(),HttpStatusEnum.DISABLE.getCode());
}
if(req.getDataSign(sysApplyConfig.getPrivateKey())){
try { try {
if(StringUtils.equals(ShiFouEnum.SHI.getCode()+"",sysApplyConfig.getIsDel())){
throw new ServiceException(HttpStatusEnum.DISABLE.getInfo(),HttpStatusEnum.DISABLE.getCode());
}
// 保存集合 // 保存集合
List<SurProjectAttendanceData> saveList = new ArrayList<>(); List<SurProjectAttendanceData> saveList = new ArrayList<>();
String result = AuthRsaUtils.decryptByPrivateKey(sysApplyConfig.getPrivateKey(),req.getSign()); List<SurProjectAttendanceData> surProjectAttendanceDataList = JSON.parseArray(req.getData(),SurProjectAttendanceData.class);
List<SurProjectAttendanceData> surProjectAttendanceDataList = JSON.parseArray(result,SurProjectAttendanceData.class);
if(CollectionUtils.isNotEmpty(surProjectAttendanceDataList)){ if(CollectionUtils.isNotEmpty(surProjectAttendanceDataList)){
// 批量删除已保存数据 // 批量删除已保存数据
List<String> params = new ArrayList<>(); List<String> params = new ArrayList<>();
@ -415,6 +420,7 @@ public class LabourApiController extends BaseController {
for(int i=0;i<surProjectAttendanceDataList.size();i++){ for(int i=0;i<surProjectAttendanceDataList.size();i++){
SurProjectAttendanceData surProjectAttendanceData = surProjectAttendanceDataList.get(i); SurProjectAttendanceData surProjectAttendanceData = surProjectAttendanceDataList.get(i);
if(StringUtils.isNotEmpty(surProjectAttendanceData.getWorkerId()) && StringUtils.isNotEmpty(surProjectAttendanceData.getServerid())){ if(StringUtils.isNotEmpty(surProjectAttendanceData.getWorkerId()) && StringUtils.isNotEmpty(surProjectAttendanceData.getServerid())){
surProjectAttendanceData.setAppId(sysApplyConfig.getAppId());
surProjectAttendanceData.setCreateBy(sysApplyConfig.getAppId()); surProjectAttendanceData.setCreateBy(sysApplyConfig.getAppId());
surProjectAttendanceData.setCreateTime(new Date()); surProjectAttendanceData.setCreateTime(new Date());
saveList.add(surProjectAttendanceData); saveList.add(surProjectAttendanceData);
@ -427,6 +433,7 @@ public class LabourApiController extends BaseController {
throw new ServiceException(HttpStatusEnum.DARA_EXCEPTION.getInfo(),HttpStatusEnum.DARA_EXCEPTION.getCode()); throw new ServiceException(HttpStatusEnum.DARA_EXCEPTION.getInfo(),HttpStatusEnum.DARA_EXCEPTION.getCode());
} }
}catch (Exception e){ }catch (Exception e){
log.error(e.getMessage());
throw new ServiceException(HttpStatusEnum.SINGET_EXCEPTION.getInfo(),HttpStatusEnum.SINGET_EXCEPTION.getCode()); throw new ServiceException(HttpStatusEnum.SINGET_EXCEPTION.getInfo(),HttpStatusEnum.SINGET_EXCEPTION.getCode());
} }
}else{ }else{

View File

@ -1,6 +1,12 @@
package com.ruoyi.api.labour.domain; package com.ruoyi.api.labour.domain;
import com.ruoyi.common.enums.HttpStatusEnum;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.AuthRsaUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.sign.Md5Utils;
import lombok.Data; import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
@ -13,28 +19,61 @@ import javax.validation.constraints.Size;
* @date: 2024/01/13 12:21 * @date: 2024/01/13 12:21
*/ */
@Data @Data
@Slf4j
public class LabourSignetVo { public class LabourSignetVo {
/** /**
* *
* RSA( + ) * RSA(dataMd5 + )
*/ */
@NotBlank(message = "签名不能为空") @NotBlank(message = "签名不能为空")
private String sign; private String sign;
/**
*
*
*/
@NotBlank(message = "签名不能为空")
private String data;
/** /**
* *
*/ */
@NotNull(message = "时间戳不能为空") @NotNull(message = "时间戳不能为空")
private Long timestamp; private Long timestamp;
/**
*
*
* @author: JiangYuQi
* @date: 2024/01/13 10:17
*/
public Boolean getDataSign(String privateKey) {
boolean signFlag = false;
try {
if(!checkTimestamp()){
throw new ServiceException(HttpStatusEnum.SINGET_TIMEOUT.getInfo(),HttpStatusEnum.SINGET_TIMEOUT.getCode());
}
String decryptByPrivateKey = AuthRsaUtils.decryptByPrivateKey(privateKey,sign);
String privateDataStr = Md5Utils.hash(data) + timestamp;
log.info("签名值...{}",privateDataStr);
if (StringUtils.equals(privateDataStr, decryptByPrivateKey)) {
signFlag = true;
}
} catch (Exception e) {
log.error(e.getMessage());
throw new ServiceException(HttpStatusEnum.SINGET_EXCEPTION.getInfo(),HttpStatusEnum.SINGET_EXCEPTION.getCode());
}
return signFlag;
}
/** /**
* *
*/ */
public Boolean checkTimestamp() { public Boolean checkTimestamp() {
boolean timestampFlag = false; boolean timestampFlag = false;
long timePoor = Math.abs(timestamp - System.currentTimeMillis()); long timePoor = Math.abs(timestamp - System.currentTimeMillis());
if (timePoor < 1000 * 60 * 3) { if (timePoor < 10000 * 60 * 3) {
timestampFlag = true; timestampFlag = true;
} }
return timestampFlag; return timestampFlag;

View File

@ -9,18 +9,18 @@ import com.ruoyi.common.core.text.Convert;
*/ */
public enum ShiFouEnum { public enum ShiFouEnum {
FOU(0, "否"), SHI(1, "是"); FOU("0", "否"), SHI("1", "是");
private final Integer code; private final String code;
private final String info; private final String info;
ShiFouEnum(Integer code, String info) ShiFouEnum(String code, String info)
{ {
this.code = code; this.code = code;
this.info = info; this.info = info;
} }
public Integer getCode() public String getCode()
{ {
return code; return code;
} }

View File

@ -3,6 +3,8 @@
*/ */
package com.ruoyi.common.utils; package com.ruoyi.common.utils;
import com.alibaba.fastjson.JSON;
import com.ruoyi.common.utils.sign.Md5Utils;
import org.apache.commons.codec.binary.Base64; import org.apache.commons.codec.binary.Base64;
import javax.crypto.Cipher; import javax.crypto.Cipher;
@ -11,6 +13,10 @@ import java.security.interfaces.RSAPrivateKey;
import java.security.interfaces.RSAPublicKey; import java.security.interfaces.RSAPublicKey;
import java.security.spec.PKCS8EncodedKeySpec; import java.security.spec.PKCS8EncodedKeySpec;
import java.security.spec.X509EncodedKeySpec; import java.security.spec.X509EncodedKeySpec;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/** /**
* RSA * RSA
@ -18,20 +24,10 @@ import java.security.spec.X509EncodedKeySpec;
public class AuthRsaUtils { public class AuthRsaUtils {
// Rsa 私钥 // Rsa 私钥
public static String privateKey = "MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAIcMS8aHgaLNdkABhwxcgsdAGu" + public static String privateKey = "MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAMwgEvQL6w3ahkRoKxxzyBoSNe/zsX8aCaXhdyMWZZrDzFDS9/AbNjrB0bp5MwtbQVXcZJLGzaWxUmeuOQc0CeoWgwafdEdweesiUCbj4Au3xLitDVMiCrO5qy5XKRSQa6dMNjMARw5tORnvRlOiPypDBEKSyR+BtQiLDhelepLZAgMBAAECgYBO9nleft3G1inqfIFw2DkoHLNQx2x6RpBE4xs7L4bOf7+h5HqVH3Gy+Rcwk4HzerGjjUY6oT0cQ6QlB3h4GOFcQq/fN79eOKd8KwgPq+e0l/dFXDI4TAJJ61nY40zwl/KlzdRRKF4KIrM8YmA74YhjG92p6KyxBdx8QMM7NkshIQJBAP+5AXa35n/9aoENfCGr5IDoCIqOUoaOEoNGQ+DcvEW2Z443gHZ6B4QLZcMhtvn+7YQHXXjUhAw4A23dIG83ZvsCQQDMWL5lvbETU6iXhhfbF08LHqI0g83QIYckvt1ndMcTgDKR3b+T6CUJCI2VHR3kOrJ77jcIHd65nP0QRXG+ZdU7AkEAnYml4zNL5xGBaVubW0sADIHlsSYYpRglQ4YoDwEtY20Jws1icJqgwrIa0OmWRdDNFgdLiEKzzqs7QZV2g82HvQJAZLgA8Ei09J+xYy3WqEguz35D2Lp2QPWllLj2i72FOdlgE4FGofIz/uXWUv7M8ubzfh4FxdxjIP19xf1UeNHcbQJBAN53AtJB671xNU+4WBfC/hX/L45Y+kc2zkxFXDFopdbIXzoVoC2pA9urze2B8+azWWTPfqv6i620SSflHEvls2Q=";
"Z1X7ZKg4EjshM4376qh4w3mnjxnY4aJCdvQVZVhLpL8cE9pje7veZ16BbLTFATB0/K34DaUterGVUv7p1NfwUxSILKaIZHAyRp9N" +
"jLyFBVIY2fnT+1ZT9L7Ag6D1069AIxIcQw3VRt8HUNd0lBAgMBAAECgYBLPoOd2vRU5EuFgBRhw82t/L7ANxeb9spskpnucdrgXh" +
"1l97ket+iEO3Z3blqmIsHwFs5dT98j4Hv/QySMRrt+dkI2WKUY5ZNKVvpbbZJoNJXd1mF3SyfsRTM73l8fRgJLfhvE+ufV2+dBFM" +
"Nd8LsH8uTJo0aowHwgEXQ3ErZAAQJBAMh/FDQe/9Ku+1U67ABdifYl4CskfKNdd9srjYBBjw6NFmTZp3OEHxoWvTWDJMMC0uUBt5" +
"BV3Sx3+230dBeAQkECQQCsbvm+iQYMYpVkHe0RGU3nEckaehrqCJXlviH7c6kM4l/taV495mCxwvNwNUizV5uBeLEyKB2RPLAj7U" +
"b/10cBAkEAwIFrl6PQA60o+qupX6xwQ5wYQbQ1y/F5nEGUCnpn7hO/VbO52OsZpcYBg7jYejli3qkoY/hddU36ZpeZQ9tNQQJBAI" +
"JJP661fbpx6orBCdS3l+MVzyuQQzG91vTGGosRsxOnH/AUgz6mCT2HHcUUnZ/UfAzxkoFhSiXpAvXCXLkGggECQCWKhootNjqoz6" +
"txZheR5cpZTHNpAUwSSuqpFxK+rnv9PkEADZyaJKgsW4pHHtcUqUTBYQElDsSWOia86MubuyI=";
// Rsa 公钥 // Rsa 公钥
public static String publicKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCHDEvGh4GizXZAAYcMXILHQBrmdV+2SoOBI7I" + public static String publicKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDMIBL0C+sN2oZEaCscc8gaEjXv87F/Ggml4XcjFmWaw8xQ0vfwGzY6wdG6eTMLW0FV3GSSxs2lsVJnrjkHNAnqFoMGn3RHcHnrIlAm4+ALt8S4rQ1TIgqzuasuVykUkGunTDYzAEcObTkZ70ZToj8qQwRCkskfgbUIiw4XpXqS2QIDAQAB";
"TON++qoeMN5p48Z2OGiQnb0FWVYS6S/HBPaY3u73mdegWy0xQEwdPyt+A2lLXqxlVL+6dTX8FMUiCymiGRwMkafTYy8hQVSGNn50" +
"/tWU/S+wIOg9dOvQCMSHEMN1UbfB1DXdJQQIDAQAB";
/** /**
* *
@ -158,9 +154,35 @@ public class AuthRsaUtils {
// } // }
try { try {
String timestamp = String.valueOf(System.currentTimeMillis()); //String timestamp = String.valueOf(System.currentTimeMillis());
String str = "oacsry" + timestamp; String timestamp = "1705165273935";
//String str = "jhcf170515993052073qrDFKJmk001" + timestamp;
// Map<String,Object> map = new HashMap<>();
// map.put("serverid","123");
// map.put("companyName","测试名称");
// String str = JSON.toJSONString(map);
List<Object> list = new ArrayList<>();
Map<String,Object> map1 = new HashMap<>();
map1.put("serverid","1231");
map1.put("companyName","测试名称1");
list.add(map1);
Map<String,Object> map2 = new HashMap<>();
map2.put("serverid","1232");
map2.put("companyName","测试名称2");
list.add(map2);
Map<String,Object> map3 = new HashMap<>();
map3.put("serverid","1233");
map3.put("companyName","测试名称3");
list.add(map3);
Map<String,Object> map4 = new HashMap<>();
map4.put("serverid","1234");
map4.put("companyName","测试名称4");
list.add(map4);
String str = JSON.toJSONString(list);
System.out.println("明文信息:" + str); System.out.println("明文信息:" + str);
str = Md5Utils.hash(str)+timestamp;
// 公钥加密->私钥解密 // 公钥加密->私钥解密
String encryptByPublicKeyStr = encryptByPublicKey(publicKey, str); String encryptByPublicKeyStr = encryptByPublicKey(publicKey, str);
System.out.println("公钥加密:" + encryptByPublicKeyStr); System.out.println("公钥加密:" + encryptByPublicKeyStr);

View File

@ -64,7 +64,7 @@ public final class RSAUtil {
*/ */
public static KeyPair getKeyPair() throws NoSuchAlgorithmException { public static KeyPair getKeyPair() throws NoSuchAlgorithmException {
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance(RSA); KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance(RSA);
keyPairGenerator.initialize(2048); keyPairGenerator.initialize(1024);
return keyPairGenerator.generateKeyPair(); return keyPairGenerator.generateKeyPair();
} }

View File

@ -103,4 +103,5 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{id} #{id}
</foreach> </foreach>
</delete> </delete>
</mapper> </mapper>

View File

@ -89,16 +89,16 @@
<el-table v-loading="loading" :data="applyConfigList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="applyConfigList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column label="AppId" align="center" prop="appId" />
<el-table-column label="AppSecret" align="center" prop="publicKey" width="250"/>
<el-table-column label="项目信息" align="center" prop="projectName" /> <el-table-column label="项目信息" align="center" prop="projectName" />
<el-table-column label="部门信息" align="center" prop="deptName" /> <el-table-column label="部门信息" align="center" prop="deptName" />
<el-table-column label="AppId" align="center" prop="appId" />
<el-table-column label="AppSecret" align="center" prop="publicKey" width="500"/>
<el-table-column label="是否有效" align="center" prop="isDel"> <el-table-column label="是否有效" align="center" prop="isDel">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.isDel"/> <dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.isDel"/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="创建人" align="center" prop="createBy" /> <el-table-column label="创建人" align="center" prop="createBy" width="100"/>
<el-table-column label="创建时间" align="center" prop="createTime" width="180"> <el-table-column label="创建时间" align="center" prop="createTime" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d} {h}:{i}') }}</span> <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d} {h}:{i}') }}</span>
@ -147,6 +147,7 @@
<el-form-item label="项目信息" prop="projectId"> <el-form-item label="项目信息" prop="projectId">
<el-select <el-select
v-model="form.projectId" v-model="form.projectId"
:disabled="getDisabled()"
filterable filterable
clearable clearable
placeholder="请选择所属项目" placeholder="请选择所属项目"
@ -168,6 +169,7 @@
<el-form-item label="单位信息" prop="deptId"> <el-form-item label="单位信息" prop="deptId">
<el-select <el-select
v-model="form.deptId" v-model="form.deptId"
:disabled="getDisabled()"
clearable clearable
placeholder="请选择所属单位" placeholder="请选择所属单位"
style="width: 100%" style="width: 100%"
@ -244,6 +246,22 @@ export default {
form: {}, form: {},
// //
rules: { rules: {
projectId: [
{ required: true, message: "请选择所属项目信息", trigger: "blur" },
],
deptId: [
{ required: true, message: "请选择所属单位信息", trigger: "blur" },
],
appId: [
{ required: true, message: "请输入应用主键信息", trigger: "blur" },
],
isDel: [
{ required: true, message: "请选择应用状态", trigger: "blur" },
],
remark: [
{ required: false, message: "请输入申请说明", trigger: "blur" },
{ maxlength: 200, message: "申请说明最多200字符", trigger: "blur" },
],
}, },
projectOptions: [], projectOptions: [],
deptOptions :[], deptOptions :[],
@ -293,6 +311,13 @@ export default {
this.projectOptions = response.rows; this.projectOptions = response.rows;
}); });
}, },
getDisabled(){
if(this.form && this.form.id){
return true;
}else{
return false;
}
},
// //
cancel() { cancel() {
this.open = false; this.open = false;
@ -345,10 +370,19 @@ export default {
handleUpdate(row) { handleUpdate(row) {
this.reset(); this.reset();
const id = row.id || this.ids const id = row.id || this.ids
getApplyConfig(id).then(response => { getApplyConfig(id).then(response => {
this.form = response.data; this.$api.publics
this.open = true; .queryUnitList({
this.title = "系统应用修改"; projectId: response.data.projectId,
unitType: 2
})
.then((d) => {
this.deptOptions = d.rows;
this.form = response.data;
this.open = true;
this.title = "系统应用修改";
});
}); });
}, },
/** 提交按钮 */ /** 提交按钮 */

View File

@ -42,7 +42,7 @@ public class SurProjectAttendanceGroupController extends BaseController
public TableDataInfo list(SurProjectAttendanceGroup surProjectAttendanceGroup) public TableDataInfo list(SurProjectAttendanceGroup surProjectAttendanceGroup)
{ {
startPage(); startPage();
List<SurProjectAttendanceGroup> list = surProjectAttendanceGroupService.selectSurProjectAttendanceGroupList(surProjectAttendanceGroup); List<SurProjectAttendanceGroup> list = surProjectAttendanceGroupService.selectSurProjectAttendanceGroupViewList(surProjectAttendanceGroup);
return getDataTable(list); return getDataTable(list);
} }
@ -54,7 +54,7 @@ public class SurProjectAttendanceGroupController extends BaseController
@PostMapping("/export") @PostMapping("/export")
public void export(HttpServletResponse response, SurProjectAttendanceGroup surProjectAttendanceGroup) public void export(HttpServletResponse response, SurProjectAttendanceGroup surProjectAttendanceGroup)
{ {
List<SurProjectAttendanceGroup> list = surProjectAttendanceGroupService.selectSurProjectAttendanceGroupList(surProjectAttendanceGroup); List<SurProjectAttendanceGroup> list = surProjectAttendanceGroupService.selectSurProjectAttendanceGroupViewList(surProjectAttendanceGroup);
ExcelUtil<SurProjectAttendanceGroup> util = new ExcelUtil<SurProjectAttendanceGroup>(SurProjectAttendanceGroup.class); ExcelUtil<SurProjectAttendanceGroup> util = new ExcelUtil<SurProjectAttendanceGroup>(SurProjectAttendanceGroup.class);
util.exportExcel(response, list, "广联达班组信息数据"); util.exportExcel(response, list, "广联达班组信息数据");
} }

View File

@ -1,13 +1,10 @@
package com.yanzhu.jh.project.domain; package com.yanzhu.jh.project.domain;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONObject;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity; import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import java.util.Date; import org.apache.commons.lang3.builder.ToStringStyle;
/** /**
* 广 sur_project_attendance_group * 广 sur_project_attendance_group
@ -106,10 +103,22 @@ public class SurProjectAttendanceGroup extends BaseEntity
@Excel(name = "企业退场日期") @Excel(name = "企业退场日期")
private Long exitDate; private Long exitDate;
/** $column.columnComment */ /** 是否有效 */
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") @Excel(name = "是否有效", readConverterExp = "$column.readConverterExp()")
private Long isDel; private Long isDel;
/** 时间戳 */
@Excel(name = "时间戳")
private Long createTimestamp;
public Long getCreateTimestamp() {
return createTimestamp;
}
public void setCreateTimestamp(Long createTimestamp) {
this.createTimestamp = createTimestamp;
}
public static SurProjectAttendanceGroup create(JSONObject json) { public static SurProjectAttendanceGroup create(JSONObject json) {
SurProjectAttendanceGroup g=new SurProjectAttendanceGroup(); SurProjectAttendanceGroup g=new SurProjectAttendanceGroup();
g.serverid=json.getString("id"); g.serverid=json.getString("id");
@ -363,7 +372,7 @@ public class SurProjectAttendanceGroup extends BaseEntity
.append("type", getType()) .append("type", getType())
.append("leaderId", getLeaderId()) .append("leaderId", getLeaderId())
.append("deleted", getDeleted()) .append("deleted", getDeleted())
.append("createTime", getCreateTime()) .append("createTimestamp", getCreateTimestamp())
.append("platformGroupId", getPlatformGroupId()) .append("platformGroupId", getPlatformGroupId())
.append("platformTeamId", getPlatformTeamId()) .append("platformTeamId", getPlatformTeamId())
.append("enterDate", getEnterDate()) .append("enterDate", getEnterDate())

View File

@ -19,6 +19,14 @@ public interface SurProjectAttendanceGroupMapper
*/ */
public SurProjectAttendanceGroup selectSurProjectAttendanceGroupById(Long id); public SurProjectAttendanceGroup selectSurProjectAttendanceGroupById(Long id);
/**
* 广
*
* @param surProjectAttendanceGroup 广
* @return 广
*/
public List<SurProjectAttendanceGroup> selectSurProjectAttendanceGroupViewList(SurProjectAttendanceGroup surProjectAttendanceGroup);
/** /**
* 广 * 广
* *

View File

@ -19,6 +19,14 @@ public interface ISurProjectAttendanceGroupService
*/ */
public SurProjectAttendanceGroup selectSurProjectAttendanceGroupById(Long id); public SurProjectAttendanceGroup selectSurProjectAttendanceGroupById(Long id);
/**
* 广
*
* @param surProjectAttendanceGroup 广
* @return 广
*/
public List<SurProjectAttendanceGroup> selectSurProjectAttendanceGroupViewList(SurProjectAttendanceGroup surProjectAttendanceGroup);
/** /**
* 广 * 广
* *

View File

@ -2,6 +2,7 @@ package com.yanzhu.jh.project.service.impl;
import java.util.List; import java.util.List;
import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.yanzhu.jh.project.mapper.SurProjectAttendanceDataMapper; import com.yanzhu.jh.project.mapper.SurProjectAttendanceDataMapper;
@ -53,9 +54,10 @@ public class SurProjectAttendanceDataServiceImpl implements ISurProjectAttendanc
@Override @Override
public int insertSurProjectAttendanceData(SurProjectAttendanceData surProjectAttendanceData) public int insertSurProjectAttendanceData(SurProjectAttendanceData surProjectAttendanceData)
{ {
if(StringUtils.isEmpty(surProjectAttendanceData.getCreateBy())){
surProjectAttendanceData.setCreateBy("task"); surProjectAttendanceData.setCreateBy("task");
surProjectAttendanceData.setCreateTime(DateUtils.getNowDate()); surProjectAttendanceData.setCreateTime(DateUtils.getNowDate());
}
return surProjectAttendanceDataMapper.insertSurProjectAttendanceData(surProjectAttendanceData); return surProjectAttendanceDataMapper.insertSurProjectAttendanceData(surProjectAttendanceData);
} }
@ -68,7 +70,9 @@ public class SurProjectAttendanceDataServiceImpl implements ISurProjectAttendanc
@Override @Override
public int updateSurProjectAttendanceData(SurProjectAttendanceData surProjectAttendanceData) public int updateSurProjectAttendanceData(SurProjectAttendanceData surProjectAttendanceData)
{ {
surProjectAttendanceData.setUpdateBy("task"); if(StringUtils.isEmpty(surProjectAttendanceData.getCreateBy())){
surProjectAttendanceData.setUpdateBy("task");
}
surProjectAttendanceData.setUpdateTime(DateUtils.getNowDate()); surProjectAttendanceData.setUpdateTime(DateUtils.getNowDate());
return surProjectAttendanceDataMapper.updateSurProjectAttendanceData(surProjectAttendanceData); return surProjectAttendanceDataMapper.updateSurProjectAttendanceData(surProjectAttendanceData);
} }

View File

@ -2,6 +2,7 @@ package com.yanzhu.jh.project.service.impl;
import java.util.List; import java.util.List;
import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.yanzhu.jh.project.mapper.SurProjectAttendanceGroupMapper; import com.yanzhu.jh.project.mapper.SurProjectAttendanceGroupMapper;
@ -39,11 +40,20 @@ public class SurProjectAttendanceGroupServiceImpl implements ISurProjectAttendan
* @return 广 * @return 广
*/ */
@Override @Override
public List<SurProjectAttendanceGroup> selectSurProjectAttendanceGroupList(SurProjectAttendanceGroup surProjectAttendanceGroup) public List<SurProjectAttendanceGroup> selectSurProjectAttendanceGroupViewList(SurProjectAttendanceGroup surProjectAttendanceGroup)
{ {
return surProjectAttendanceGroupMapper.selectSurProjectAttendanceGroupList(surProjectAttendanceGroup); return surProjectAttendanceGroupMapper.selectSurProjectAttendanceGroupViewList(surProjectAttendanceGroup);
} }
/**
* 广
*
* @param surProjectAttendanceGroup 广
* @return 广
*/
public List<SurProjectAttendanceGroup> selectSurProjectAttendanceGroupList(SurProjectAttendanceGroup surProjectAttendanceGroup) {
return surProjectAttendanceGroupMapper.selectSurProjectAttendanceGroupList(surProjectAttendanceGroup);
}
/** /**
* 广 * 广
* *
@ -53,8 +63,9 @@ public class SurProjectAttendanceGroupServiceImpl implements ISurProjectAttendan
@Override @Override
public int insertSurProjectAttendanceGroup(SurProjectAttendanceGroup surProjectAttendanceGroup) public int insertSurProjectAttendanceGroup(SurProjectAttendanceGroup surProjectAttendanceGroup)
{ {
if(StringUtils.isEmpty(surProjectAttendanceGroup.getCreateBy())){
surProjectAttendanceGroup.setCreateBy("task"); surProjectAttendanceGroup.setCreateBy("task");
}
return surProjectAttendanceGroupMapper.insertSurProjectAttendanceGroup(surProjectAttendanceGroup); return surProjectAttendanceGroupMapper.insertSurProjectAttendanceGroup(surProjectAttendanceGroup);
} }
@ -67,7 +78,9 @@ public class SurProjectAttendanceGroupServiceImpl implements ISurProjectAttendan
@Override @Override
public int updateSurProjectAttendanceGroup(SurProjectAttendanceGroup surProjectAttendanceGroup) public int updateSurProjectAttendanceGroup(SurProjectAttendanceGroup surProjectAttendanceGroup)
{ {
surProjectAttendanceGroup.setUpdateBy("task"); if(StringUtils.isEmpty(surProjectAttendanceGroup.getCreateBy())){
surProjectAttendanceGroup.setUpdateBy("task");
}
surProjectAttendanceGroup.setUpdateTime(DateUtils.getNowDate()); surProjectAttendanceGroup.setUpdateTime(DateUtils.getNowDate());
return surProjectAttendanceGroupMapper.updateSurProjectAttendanceGroup(surProjectAttendanceGroup); return surProjectAttendanceGroupMapper.updateSurProjectAttendanceGroup(surProjectAttendanceGroup);
} }
@ -122,7 +135,7 @@ public class SurProjectAttendanceGroupServiceImpl implements ISurProjectAttendan
public void add(SurProjectAttendanceGroup group) { public void add(SurProjectAttendanceGroup group) {
SurProjectAttendanceGroup where=new SurProjectAttendanceGroup(); SurProjectAttendanceGroup where=new SurProjectAttendanceGroup();
where.setServerid(group.getServerid()); where.setServerid(group.getServerid());
List<SurProjectAttendanceGroup> list=selectSurProjectAttendanceGroupList(where); List<SurProjectAttendanceGroup> list=selectSurProjectAttendanceGroupViewList(where);
if(list.size()==0){ if(list.size()==0){
insertSurProjectAttendanceGroup(group); insertSurProjectAttendanceGroup(group);
}else{ }else{

View File

@ -2,6 +2,7 @@ package com.yanzhu.jh.project.service.impl;
import java.util.List; import java.util.List;
import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import com.yanzhu.jh.project.domain.SurProjectAttendanceCfg; import com.yanzhu.jh.project.domain.SurProjectAttendanceCfg;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -54,8 +55,10 @@ public class SurProjectAttendanceUserServiceImpl implements ISurProjectAttendanc
@Override @Override
public int insertSurProjectAttendanceUser(SurProjectAttendanceUser surProjectAttendanceUser) public int insertSurProjectAttendanceUser(SurProjectAttendanceUser surProjectAttendanceUser)
{ {
surProjectAttendanceUser.setCreateBy("task"); if(StringUtils.isEmpty(surProjectAttendanceUser.getCreateBy())){
surProjectAttendanceUser.setCreateTime(DateUtils.getNowDate()); surProjectAttendanceUser.setCreateBy("task");
surProjectAttendanceUser.setCreateTime(DateUtils.getNowDate());
}
return surProjectAttendanceUserMapper.insertSurProjectAttendanceUser(surProjectAttendanceUser); return surProjectAttendanceUserMapper.insertSurProjectAttendanceUser(surProjectAttendanceUser);
} }
@ -68,8 +71,9 @@ public class SurProjectAttendanceUserServiceImpl implements ISurProjectAttendanc
@Override @Override
public int updateSurProjectAttendanceUser(SurProjectAttendanceUser surProjectAttendanceUser) public int updateSurProjectAttendanceUser(SurProjectAttendanceUser surProjectAttendanceUser)
{ {
if(StringUtils.isEmpty(surProjectAttendanceUser.getCreateBy())){
surProjectAttendanceUser.setUpdateBy("task"); surProjectAttendanceUser.setUpdateBy("task");
}
surProjectAttendanceUser.setUpdateTime(DateUtils.getNowDate()); surProjectAttendanceUser.setUpdateTime(DateUtils.getNowDate());
return surProjectAttendanceUserMapper.updateSurProjectAttendanceUser(surProjectAttendanceUser); return surProjectAttendanceUserMapper.updateSurProjectAttendanceUser(surProjectAttendanceUser);
} }

View File

@ -23,7 +23,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="type" column="type" /> <result property="type" column="type" />
<result property="leaderId" column="leaderId" /> <result property="leaderId" column="leaderId" />
<result property="deleted" column="deleted" /> <result property="deleted" column="deleted" />
<result property="createTime" column="createTime" /> <result property="createTimestamp" column="createTimestamp" />
<result property="platformGroupId" column="platformGroupId" /> <result property="platformGroupId" column="platformGroupId" />
<result property="platformTeamId" column="platformTeamId" /> <result property="platformTeamId" column="platformTeamId" />
<result property="enterDate" column="enterDate" /> <result property="enterDate" column="enterDate" />
@ -37,11 +37,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap> </resultMap>
<sql id="selectSurProjectAttendanceGroupVo"> <sql id="selectSurProjectAttendanceGroupVo">
select id, cfgid, app_id, serverid, bizLicense, companyCode, companyId, companyName, companyTypeId, vendorId, name, leaderName, leaderPhone, teamId, teamName, type, leaderId, deleted, createTime, platformGroupId, platformTeamId, enterDate, exitDate, remark, is_del, create_by, create_time, update_by, update_time select id, cfgid, app_id, serverid, bizLicense, companyCode, companyId, companyName, companyTypeId, vendorId, name, leaderName, leaderPhone, teamId, teamName, type, leaderId, deleted, createTimestamp, platformGroupId, platformTeamId, enterDate, exitDate, remark, is_del, create_by, create_time, update_by, update_time
from vw_sur_project_attendance_group from vw_sur_project_attendance_group
</sql> </sql>
<select id="selectSurProjectAttendanceGroupList" parameterType="SurProjectAttendanceGroup" resultMap="SurProjectAttendanceGroupResult"> <select id="selectSurProjectAttendanceGroupViewList" parameterType="SurProjectAttendanceGroup" resultMap="SurProjectAttendanceGroupResult">
<include refid="selectSurProjectAttendanceGroupVo"/> <include refid="selectSurProjectAttendanceGroupVo"/>
<where> <where>
<if test="cfgid != null "> and cfgid = #{cfgid}</if> <if test="cfgid != null "> and cfgid = #{cfgid}</if>
@ -70,6 +70,36 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</where> </where>
</select> </select>
<select id="selectSurProjectAttendanceGroupList" parameterType="SurProjectAttendanceGroup" resultMap="SurProjectAttendanceGroupResult">
select id, cfgid, app_id, serverid, bizLicense, companyCode, companyId, companyName, companyTypeId, vendorId, name, leaderName, leaderPhone, teamId, teamName, type, leaderId, deleted, createTimestamp, platformGroupId, platformTeamId, enterDate, exitDate, remark, is_del, create_by, create_time, update_by, update_time
from sur_project_attendance_group
<where>
<if test="cfgid != null "> and cfgid = #{cfgid}</if>
<if test="appId != null "> and app_id = #{appId}</if>
<if test="serverid != null "> and serverid = #{serverid}</if>
<if test="bizLicense != null and bizLicense != ''"> and bizLicense = #{bizLicense}</if>
<if test="companyCode != null and companyCode != ''"> and companyCode = #{companyCode}</if>
<if test="companyId != null "> and companyId = #{companyId}</if>
<if test="companyName != null and companyName != ''"> and companyName like concat('%', #{companyName}, '%')</if>
<if test="companyTypeId != null and companyTypeId != ''"> and companyTypeId = #{companyTypeId}</if>
<if test="vendorId != null "> and vendorId = #{vendorId}</if>
<if test="name != null and name != ''"> and name like concat('%', #{name}, '%')</if>
<if test="leaderName != null and leaderName != ''"> and leaderName like concat('%', #{leaderName}, '%')</if>
<if test="leaderPhone != null and leaderPhone != ''"> and leaderPhone = #{leaderPhone}</if>
<if test="teamId != null "> and teamId = #{teamId}</if>
<if test="teamName != null and teamName != ''"> and teamName like concat('%', #{teamName}, '%')</if>
<if test="type != null "> and type = #{type}</if>
<if test="leaderId != null "> and leaderId = #{leaderId}</if>
<if test="deleted != null "> and deleted = #{deleted}</if>
<if test="createTime != null "> and createTime = #{createTime}</if>
<if test="platformGroupId != null "> and platformGroupId = #{platformGroupId}</if>
<if test="platformTeamId != null "> and platformTeamId = #{platformTeamId}</if>
<if test="enterDate != null "> and enterDate = #{enterDate}</if>
<if test="exitDate != null "> and exitDate = #{exitDate}</if>
<if test="isDel != null "> and is_del = #{isDel}</if>
</where>
</select>
<select id="selectSurProjectAttendanceGroupById" parameterType="Long" resultMap="SurProjectAttendanceGroupResult"> <select id="selectSurProjectAttendanceGroupById" parameterType="Long" resultMap="SurProjectAttendanceGroupResult">
<include refid="selectSurProjectAttendanceGroupVo"/> <include refid="selectSurProjectAttendanceGroupVo"/>
where id = #{id} where id = #{id}
@ -95,7 +125,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="type != null">type,</if> <if test="type != null">type,</if>
<if test="leaderId != null">leaderId,</if> <if test="leaderId != null">leaderId,</if>
<if test="deleted != null">deleted,</if> <if test="deleted != null">deleted,</if>
<if test="createTime != null">createTime,</if> <if test="createTimestamp != null">createTimestamp,</if>
<if test="platformGroupId != null">platformGroupId,</if> <if test="platformGroupId != null">platformGroupId,</if>
<if test="platformTeamId != null">platformTeamId,</if> <if test="platformTeamId != null">platformTeamId,</if>
<if test="enterDate != null">enterDate,</if> <if test="enterDate != null">enterDate,</if>
@ -125,7 +155,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="type != null">#{type},</if> <if test="type != null">#{type},</if>
<if test="leaderId != null">#{leaderId},</if> <if test="leaderId != null">#{leaderId},</if>
<if test="deleted != null">#{deleted},</if> <if test="deleted != null">#{deleted},</if>
<if test="createTime != null">#{createTime},</if> <if test="createTimestamp != null">#{createTimestamp},</if>
<if test="platformGroupId != null">#{platformGroupId},</if> <if test="platformGroupId != null">#{platformGroupId},</if>
<if test="platformTeamId != null">#{platformTeamId},</if> <if test="platformTeamId != null">#{platformTeamId},</if>
<if test="enterDate != null">#{enterDate},</if> <if test="enterDate != null">#{enterDate},</if>
@ -159,7 +189,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="type != null">type = #{type},</if> <if test="type != null">type = #{type},</if>
<if test="leaderId != null">leaderId = #{leaderId},</if> <if test="leaderId != null">leaderId = #{leaderId},</if>
<if test="deleted != null">deleted = #{deleted},</if> <if test="deleted != null">deleted = #{deleted},</if>
<if test="createTime != null">createTime = #{createTime},</if> <if test="createTimestamp != null">createTimestamp = #{createTimestamp},</if>
<if test="platformGroupId != null">platformGroupId = #{platformGroupId},</if> <if test="platformGroupId != null">platformGroupId = #{platformGroupId},</if>
<if test="platformTeamId != null">platformTeamId = #{platformTeamId},</if> <if test="platformTeamId != null">platformTeamId = #{platformTeamId},</if>
<if test="enterDate != null">enterDate = #{enterDate},</if> <if test="enterDate != null">enterDate = #{enterDate},</if>
@ -193,9 +223,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</delete> </delete>
<insert id="batchSurProjectAttendanceGroup"> <insert id="batchSurProjectAttendanceGroup">
insert into sur_project_attendance_data(id,cfgid,app_id,serverid,bizLicense,companyCode,companyId,companyName,companyTypeId,vendorId,name,leaderName,leaderPhone,teamId,teamName,type,leaderId,deleted,createTime,platformGroupId,platformTeamId,enterDate,exitDate,remark,create_by,create_time,update_by,update_time) values insert into sur_project_attendance_group(id,cfgid,app_id,serverid,bizLicense,companyCode,companyId,companyName,companyTypeId,vendorId,name,leaderName,leaderPhone,teamId,teamName,type,leaderId,deleted,createTimestamp,platformGroupId,platformTeamId,enterDate,exitDate,remark,create_by,create_time,update_by,update_time) values
<foreach item="item" index="index" collection="list" separator=","> <foreach item="item" index="index" collection="list" separator=",">
(#{item.id}, #{item.cfgid}, #{item.appId}, #{item.serverid}, #{item.bizLicense}, #{item.companyCode}, #{item.companyId}, #{item.companyName},#{item.companyTypeId}, #{item.vendorId}, #{item.name}, #{item.leaderName}, #{item.leaderPhone}, #{item.teamId}, #{item.teamName}, #{item.type}, #{item.leaderId}, #{item.deleted}, #{item.createTime}, #{item.platformGroupId}, #{item.platformTeamId}, #{item.enterDate}, (#{item.id}, #{item.cfgid}, #{item.appId}, #{item.serverid}, #{item.bizLicense}, #{item.companyCode}, #{item.companyId}, #{item.companyName},#{item.companyTypeId}, #{item.vendorId}, #{item.name}, #{item.leaderName}, #{item.leaderPhone}, #{item.teamId}, #{item.teamName}, #{item.type}, #{item.leaderId}, #{item.deleted}, #{item.createTimestamp}, #{item.platformGroupId}, #{item.platformTeamId}, #{item.enterDate},
#{item.exitDate}, #{item.remark}, #{item.createBy}, #{item.createTime}, #{item.updateBy}, #{item.updateTime}) #{item.exitDate}, #{item.remark}, #{item.createBy}, #{item.createTime}, #{item.updateBy}, #{item.updateTime})
</foreach> </foreach>
</insert> </insert>