提交代码

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;
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 lombok.Data;
import lombok.extern.slf4j.Slf4j;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
@ -15,6 +18,7 @@ import javax.validation.constraints.Size;
* @date: 2024/01/13 10:17
*/
@Data
@Slf4j
public class TokenReqVo {
/**
@ -37,15 +41,25 @@ public class TokenReqVo {
@NotNull(message = "时间戳不能为空")
private Long timestamp;
/**
*
*
* @author: JiangYuQi
* @date: 2024/01/13 10:17
*/
public Boolean getLoginSign(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);
if (StringUtils.equals(appId + timestamp, decryptByPrivateKey) && checkTimestamp()) {
if (StringUtils.equals(appId + timestamp, decryptByPrivateKey)) {
signFlag = true;
}
} catch (Exception e) {
throw new RuntimeException("签名解密异常");
log.error(e.getMessage());
throw new ServiceException(HttpStatusEnum.SINGET_EXCEPTION.getInfo(),HttpStatusEnum.SINGET_EXCEPTION.getCode());
}
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.UserTypeEnum;
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.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.ISurProjectAttendanceUserService;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
@ -48,6 +48,7 @@ import java.util.List;
* @author JiangYuQi
* @date 2024-01-13
*/
@Slf4j
@RestController
@RequestMapping("/api/labour")
public class LabourApiController extends BaseController {
@ -86,17 +87,17 @@ public class LabourApiController extends BaseController {
if(sysApplyConfig==null){
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());
}
AjaxResult ajax = AjaxResult.success();
String systemToken = "";
String Authorization = "";
if (req.getLoginSign(sysApplyConfig.getPrivateKey())) {
systemToken = this.getAppIdLoginToken(req.getAppId(),sysApplyConfig);
Authorization = this.getAppIdLoginToken(req.getAppId(),sysApplyConfig);
} else {
throw new ServiceException(HttpStatusEnum.SINGET_ERROR.getInfo(),HttpStatusEnum.SINGET_ERROR.getCode());
}
ajax.put("systemToken", systemToken);
ajax.put("Authorization", Authorization);
return ajax;
}
@ -140,13 +141,12 @@ public class LabourApiController extends BaseController {
@PostMapping("/v1/pushLabourGroup")
public AjaxResult pushLabourGroup(@Validated @RequestBody LabourSignetVo req) {
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 {
if(StringUtils.equals(ShiFouEnum.SHI.getCode()+"",sysApplyConfig.getIsDel())){
throw new ServiceException(HttpStatusEnum.DISABLE.getInfo(),HttpStatusEnum.DISABLE.getCode());
}
String result = AuthRsaUtils.decryptByPrivateKey(sysApplyConfig.getPrivateKey(),req.getSign());
SurProjectAttendanceGroup surProjectAttendanceGroup = JSONObject.parseObject(result, SurProjectAttendanceGroup.class);
SurProjectAttendanceGroup surProjectAttendanceGroup = JSONObject.parseObject(req.getData(), SurProjectAttendanceGroup.class);
if(StringUtils.isNotEmpty(surProjectAttendanceGroup.getServerid())){
// 查询当前班组是否已推送
SurProjectAttendanceGroup searchModel = new SurProjectAttendanceGroup();
@ -155,12 +155,13 @@ public class LabourApiController extends BaseController {
List<SurProjectAttendanceGroup> list = surProjectAttendanceGroupService.selectSurProjectAttendanceGroupList(searchModel);
if(CollectionUtils.isNotEmpty(list)){
surProjectAttendanceGroup.setId(list.get(0).getId());
surProjectAttendanceGroup.setAppId(sysApplyConfig.getAppId());
surProjectAttendanceGroup.setCreateBy(list.get(0).getCreateBy());
surProjectAttendanceGroup.setCreateTime(list.get(0).getCreateTime());
surProjectAttendanceGroup.setUpdateBy(sysApplyConfig.getAppId());
surProjectAttendanceGroup.setUpdateTime(new Date());
surProjectAttendanceGroupService.updateSurProjectAttendanceGroup(surProjectAttendanceGroup);
}else{
surProjectAttendanceGroup.setAppId(sysApplyConfig.getAppId());
surProjectAttendanceGroup.setCreateBy(sysApplyConfig.getAppId());
surProjectAttendanceGroup.setCreateTime(new Date());
surProjectAttendanceGroupService.insertSurProjectAttendanceGroup(surProjectAttendanceGroup);
@ -169,6 +170,7 @@ public class LabourApiController extends BaseController {
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());
}
}else{
@ -191,15 +193,14 @@ public class LabourApiController extends BaseController {
// 失败集合
List<Integer> failServiceIdList = new ArrayList<>();
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 {
if(StringUtils.equals(ShiFouEnum.SHI.getCode()+"",sysApplyConfig.getIsDel())){
throw new ServiceException(HttpStatusEnum.DISABLE.getInfo(),HttpStatusEnum.DISABLE.getCode());
}
// 保存集合
List<SurProjectAttendanceGroup> saveList = new ArrayList<>();
String result = AuthRsaUtils.decryptByPrivateKey(sysApplyConfig.getPrivateKey(),req.getSign());
List<SurProjectAttendanceGroup> surProjectAttendanceGroupList = JSON.parseArray(result,SurProjectAttendanceGroup.class);
List<SurProjectAttendanceGroup> surProjectAttendanceGroupList = JSON.parseArray(req.getData(),SurProjectAttendanceGroup.class);
if(CollectionUtils.isNotEmpty(surProjectAttendanceGroupList)){
// 批量删除已保存数据
List<String> params = new ArrayList<>();
@ -210,6 +211,7 @@ public class LabourApiController extends BaseController {
for(int i=0;i<surProjectAttendanceGroupList.size();i++){
SurProjectAttendanceGroup surProjectAttendanceGroup = surProjectAttendanceGroupList.get(i);
if(StringUtils.isNotEmpty(surProjectAttendanceGroup.getServerid())){
surProjectAttendanceGroup.setAppId(sysApplyConfig.getAppId());
surProjectAttendanceGroup.setCreateBy(sysApplyConfig.getAppId());
surProjectAttendanceGroup.setCreateTime(new Date());
saveList.add(surProjectAttendanceGroup);
@ -222,6 +224,7 @@ public class LabourApiController extends BaseController {
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());
}
}else{
@ -242,14 +245,13 @@ public class LabourApiController extends BaseController {
@PostMapping("/v1/pushLabourUser")
public AjaxResult pushLabourUser(@Validated @RequestBody LabourSignetVo req) {
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 {
if(StringUtils.equals(ShiFouEnum.SHI.getCode()+"",sysApplyConfig.getIsDel())){
throw new ServiceException(HttpStatusEnum.DISABLE.getInfo(),HttpStatusEnum.DISABLE.getCode());
}
String result = AuthRsaUtils.decryptByPrivateKey(sysApplyConfig.getPrivateKey(),req.getSign());
SurProjectAttendanceUser surProjectAttendanceUser = JSONObject.parseObject(result, SurProjectAttendanceUser.class);
if(StringUtils.isNotEmpty(surProjectAttendanceUser.getWorkerId())){
SurProjectAttendanceUser surProjectAttendanceUser = JSONObject.parseObject(req.getData(), SurProjectAttendanceUser.class);
if(StringUtils.isNotEmpty(surProjectAttendanceUser.getWorkerId()) && StringUtils.isNotEmpty(surProjectAttendanceUser.getPhone())){
// 查询当前人员是否已推送
SurProjectAttendanceUser searchModel = new SurProjectAttendanceUser();
searchModel.setAppId(sysApplyConfig.getAppId());
@ -257,12 +259,13 @@ public class LabourApiController extends BaseController {
List<SurProjectAttendanceUser> list = surProjectAttendanceUserService.selectSurProjectAttendanceUserList(searchModel);
if(CollectionUtils.isNotEmpty(list)){
surProjectAttendanceUser.setId(list.get(0).getId());
surProjectAttendanceUser.setAppId(sysApplyConfig.getAppId());
surProjectAttendanceUser.setCreateBy(list.get(0).getCreateBy());
surProjectAttendanceUser.setCreateTime(list.get(0).getCreateTime());
surProjectAttendanceUser.setUpdateBy(sysApplyConfig.getAppId());
surProjectAttendanceUser.setUpdateTime(new Date());
surProjectAttendanceUserService.updateSurProjectAttendanceUser(surProjectAttendanceUser);
}else{
surProjectAttendanceUser.setAppId(sysApplyConfig.getAppId());
surProjectAttendanceUser.setCreateBy(sysApplyConfig.getAppId());
surProjectAttendanceUser.setCreateTime(new Date());
surProjectAttendanceUserService.insertSurProjectAttendanceUser(surProjectAttendanceUser);
@ -271,6 +274,7 @@ public class LabourApiController extends BaseController {
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());
}
}else{
@ -293,15 +297,14 @@ public class LabourApiController extends BaseController {
// 失败集合
List<Integer> failServiceIdList = new ArrayList<>();
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 {
if(StringUtils.equals(ShiFouEnum.SHI.getCode()+"",sysApplyConfig.getIsDel())){
throw new ServiceException(HttpStatusEnum.DISABLE.getInfo(),HttpStatusEnum.DISABLE.getCode());
}
// 保存集合
List<SurProjectAttendanceUser> saveList = new ArrayList<>();
String result = AuthRsaUtils.decryptByPrivateKey(sysApplyConfig.getPrivateKey(),req.getSign());
List<SurProjectAttendanceUser> surProjectAttendanceUserList = JSON.parseArray(result,SurProjectAttendanceUser.class);
List<SurProjectAttendanceUser> surProjectAttendanceUserList = JSON.parseArray(req.getData(),SurProjectAttendanceUser.class);
if(CollectionUtils.isNotEmpty(surProjectAttendanceUserList)){
// 批量删除已保存数据
List<String> params = new ArrayList<>();
@ -311,7 +314,8 @@ public class LabourApiController extends BaseController {
surProjectAttendanceUserService.deleteSurProjectAttendanceUserByParams(params);
for(int i=0;i<surProjectAttendanceUserList.size();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.setCreateTime(new Date());
saveList.add(surProjectAttendanceUser);
@ -324,6 +328,7 @@ public class LabourApiController extends BaseController {
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());
}
}else{
@ -344,13 +349,12 @@ public class LabourApiController extends BaseController {
@PostMapping("/v1/pushLabourData")
public AjaxResult pushLabourData(@Validated @RequestBody LabourSignetVo req) {
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 {
if(StringUtils.equals(ShiFouEnum.SHI.getCode()+"",sysApplyConfig.getIsDel())){
throw new ServiceException(HttpStatusEnum.DISABLE.getInfo(),HttpStatusEnum.DISABLE.getCode());
}
String result = AuthRsaUtils.decryptByPrivateKey(sysApplyConfig.getPrivateKey(),req.getSign());
SurProjectAttendanceData surProjectAttendanceData = JSONObject.parseObject(result, SurProjectAttendanceData.class);
SurProjectAttendanceData surProjectAttendanceData = JSONObject.parseObject(req.getData(), SurProjectAttendanceData.class);
if(StringUtils.isNotEmpty(surProjectAttendanceData.getWorkerId()) && StringUtils.isNotEmpty(surProjectAttendanceData.getServerid())){
// 查询当前班组人员考勤是否已推送
SurProjectAttendanceData searchModel = new SurProjectAttendanceData();
@ -360,12 +364,13 @@ public class LabourApiController extends BaseController {
List<SurProjectAttendanceData> list = surProjectAttendanceDataService.selectSurProjectAttendanceDataList(searchModel);
if(CollectionUtils.isNotEmpty(list)){
surProjectAttendanceData.setId(list.get(0).getId());
surProjectAttendanceData.setAppId(sysApplyConfig.getAppId());
surProjectAttendanceData.setCreateBy(list.get(0).getCreateBy());
surProjectAttendanceData.setCreateTime(list.get(0).getCreateTime());
surProjectAttendanceData.setUpdateBy(sysApplyConfig.getAppId());
surProjectAttendanceData.setUpdateTime(new Date());
surProjectAttendanceDataService.updateSurProjectAttendanceData(surProjectAttendanceData);
}else{
surProjectAttendanceData.setAppId(sysApplyConfig.getAppId());
surProjectAttendanceData.setCreateBy(sysApplyConfig.getAppId());
surProjectAttendanceData.setCreateTime(new Date());
surProjectAttendanceDataService.insertSurProjectAttendanceData(surProjectAttendanceData);
@ -374,6 +379,7 @@ public class LabourApiController extends BaseController {
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());
}
}else{
@ -396,15 +402,14 @@ public class LabourApiController extends BaseController {
// 失败集合
List<Integer> failServiceIdList = new ArrayList<>();
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 {
if(StringUtils.equals(ShiFouEnum.SHI.getCode()+"",sysApplyConfig.getIsDel())){
throw new ServiceException(HttpStatusEnum.DISABLE.getInfo(),HttpStatusEnum.DISABLE.getCode());
}
// 保存集合
List<SurProjectAttendanceData> saveList = new ArrayList<>();
String result = AuthRsaUtils.decryptByPrivateKey(sysApplyConfig.getPrivateKey(),req.getSign());
List<SurProjectAttendanceData> surProjectAttendanceDataList = JSON.parseArray(result,SurProjectAttendanceData.class);
List<SurProjectAttendanceData> surProjectAttendanceDataList = JSON.parseArray(req.getData(),SurProjectAttendanceData.class);
if(CollectionUtils.isNotEmpty(surProjectAttendanceDataList)){
// 批量删除已保存数据
List<String> params = new ArrayList<>();
@ -415,6 +420,7 @@ public class LabourApiController extends BaseController {
for(int i=0;i<surProjectAttendanceDataList.size();i++){
SurProjectAttendanceData surProjectAttendanceData = surProjectAttendanceDataList.get(i);
if(StringUtils.isNotEmpty(surProjectAttendanceData.getWorkerId()) && StringUtils.isNotEmpty(surProjectAttendanceData.getServerid())){
surProjectAttendanceData.setAppId(sysApplyConfig.getAppId());
surProjectAttendanceData.setCreateBy(sysApplyConfig.getAppId());
surProjectAttendanceData.setCreateTime(new Date());
saveList.add(surProjectAttendanceData);
@ -427,6 +433,7 @@ public class LabourApiController extends BaseController {
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());
}
}else{

View File

@ -1,6 +1,12 @@
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.extern.slf4j.Slf4j;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
@ -13,28 +19,61 @@ import javax.validation.constraints.Size;
* @date: 2024/01/13 12:21
*/
@Data
@Slf4j
public class LabourSignetVo {
/**
*
* RSA( + )
* RSA(dataMd5 + )
*/
@NotBlank(message = "签名不能为空")
private String sign;
/**
*
*
*/
@NotBlank(message = "签名不能为空")
private String data;
/**
*
*/
@NotNull(message = "时间戳不能为空")
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() {
boolean timestampFlag = false;
long timePoor = Math.abs(timestamp - System.currentTimeMillis());
if (timePoor < 1000 * 60 * 3) {
if (timePoor < 10000 * 60 * 3) {
timestampFlag = true;
}
return timestampFlag;

View File

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

View File

@ -3,6 +3,8 @@
*/
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 javax.crypto.Cipher;
@ -11,6 +13,10 @@ import java.security.interfaces.RSAPrivateKey;
import java.security.interfaces.RSAPublicKey;
import java.security.spec.PKCS8EncodedKeySpec;
import java.security.spec.X509EncodedKeySpec;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* RSA
@ -18,20 +24,10 @@ import java.security.spec.X509EncodedKeySpec;
public class AuthRsaUtils {
// Rsa 私钥
public static String privateKey = "MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAIcMS8aHgaLNdkABhwxcgsdAGu" +
"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=";
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=";
// Rsa 公钥
public static String publicKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCHDEvGh4GizXZAAYcMXILHQBrmdV+2SoOBI7I" +
"TON++qoeMN5p48Z2OGiQnb0FWVYS6S/HBPaY3u73mdegWy0xQEwdPyt+A2lLXqxlVL+6dTX8FMUiCymiGRwMkafTYy8hQVSGNn50" +
"/tWU/S+wIOg9dOvQCMSHEMN1UbfB1DXdJQQIDAQAB";
public static String publicKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDMIBL0C+sN2oZEaCscc8gaEjXv87F/Ggml4XcjFmWaw8xQ0vfwGzY6wdG6eTMLW0FV3GSSxs2lsVJnrjkHNAnqFoMGn3RHcHnrIlAm4+ALt8S4rQ1TIgqzuasuVykUkGunTDYzAEcObTkZ70ZToj8qQwRCkskfgbUIiw4XpXqS2QIDAQAB";
/**
*
@ -158,9 +154,35 @@ public class AuthRsaUtils {
// }
try {
String timestamp = String.valueOf(System.currentTimeMillis());
String str = "oacsry" + timestamp;
//String timestamp = String.valueOf(System.currentTimeMillis());
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);
str = Md5Utils.hash(str)+timestamp;
// 公钥加密->私钥解密
String encryptByPublicKeyStr = encryptByPublicKey(publicKey, str);
System.out.println("公钥加密:" + encryptByPublicKeyStr);

View File

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

View File

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

View File

@ -89,16 +89,16 @@
<el-table v-loading="loading" :data="applyConfigList" @selection-change="handleSelectionChange">
<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="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">
<template slot-scope="scope">
<dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.isDel"/>
</template>
</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">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d} {h}:{i}') }}</span>
@ -147,6 +147,7 @@
<el-form-item label="项目信息" prop="projectId">
<el-select
v-model="form.projectId"
:disabled="getDisabled()"
filterable
clearable
placeholder="请选择所属项目"
@ -168,6 +169,7 @@
<el-form-item label="单位信息" prop="deptId">
<el-select
v-model="form.deptId"
:disabled="getDisabled()"
clearable
placeholder="请选择所属单位"
style="width: 100%"
@ -244,6 +246,22 @@ export default {
form: {},
//
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: [],
deptOptions :[],
@ -293,6 +311,13 @@ export default {
this.projectOptions = response.rows;
});
},
getDisabled(){
if(this.form && this.form.id){
return true;
}else{
return false;
}
},
//
cancel() {
this.open = false;
@ -345,10 +370,19 @@ export default {
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getApplyConfig(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "系统应用修改";
this.$api.publics
.queryUnitList({
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)
{
startPage();
List<SurProjectAttendanceGroup> list = surProjectAttendanceGroupService.selectSurProjectAttendanceGroupList(surProjectAttendanceGroup);
List<SurProjectAttendanceGroup> list = surProjectAttendanceGroupService.selectSurProjectAttendanceGroupViewList(surProjectAttendanceGroup);
return getDataTable(list);
}
@ -54,7 +54,7 @@ public class SurProjectAttendanceGroupController extends BaseController
@PostMapping("/export")
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);
util.exportExcel(response, list, "广联达班组信息数据");
}

View File

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

View File

@ -25,6 +25,14 @@ public interface SurProjectAttendanceGroupMapper
* @param surProjectAttendanceGroup 广
* @return 广
*/
public List<SurProjectAttendanceGroup> selectSurProjectAttendanceGroupViewList(SurProjectAttendanceGroup surProjectAttendanceGroup);
/**
* 广
*
* @param surProjectAttendanceGroup 广
* @return 广
*/
public List<SurProjectAttendanceGroup> selectSurProjectAttendanceGroupList(SurProjectAttendanceGroup surProjectAttendanceGroup);
/**

View File

@ -25,6 +25,14 @@ public interface ISurProjectAttendanceGroupService
* @param surProjectAttendanceGroup 广
* @return 广
*/
public List<SurProjectAttendanceGroup> selectSurProjectAttendanceGroupViewList(SurProjectAttendanceGroup surProjectAttendanceGroup);
/**
* 广
*
* @param surProjectAttendanceGroup 广
* @return 广
*/
public List<SurProjectAttendanceGroup> selectSurProjectAttendanceGroupList(SurProjectAttendanceGroup surProjectAttendanceGroup);
/**

View File

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

View File

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

View File

@ -2,6 +2,7 @@ package com.yanzhu.jh.project.service.impl;
import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import com.yanzhu.jh.project.domain.SurProjectAttendanceCfg;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -54,8 +55,10 @@ public class SurProjectAttendanceUserServiceImpl implements ISurProjectAttendanc
@Override
public int insertSurProjectAttendanceUser(SurProjectAttendanceUser surProjectAttendanceUser)
{
surProjectAttendanceUser.setCreateBy("task");
surProjectAttendanceUser.setCreateTime(DateUtils.getNowDate());
if(StringUtils.isEmpty(surProjectAttendanceUser.getCreateBy())){
surProjectAttendanceUser.setCreateBy("task");
surProjectAttendanceUser.setCreateTime(DateUtils.getNowDate());
}
return surProjectAttendanceUserMapper.insertSurProjectAttendanceUser(surProjectAttendanceUser);
}
@ -68,8 +71,9 @@ public class SurProjectAttendanceUserServiceImpl implements ISurProjectAttendanc
@Override
public int updateSurProjectAttendanceUser(SurProjectAttendanceUser surProjectAttendanceUser)
{
surProjectAttendanceUser.setUpdateBy("task");
if(StringUtils.isEmpty(surProjectAttendanceUser.getCreateBy())){
surProjectAttendanceUser.setUpdateBy("task");
}
surProjectAttendanceUser.setUpdateTime(DateUtils.getNowDate());
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="leaderId" column="leaderId" />
<result property="deleted" column="deleted" />
<result property="createTime" column="createTime" />
<result property="createTimestamp" column="createTimestamp" />
<result property="platformGroupId" column="platformGroupId" />
<result property="platformTeamId" column="platformTeamId" />
<result property="enterDate" column="enterDate" />
@ -37,11 +37,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap>
<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
</sql>
<select id="selectSurProjectAttendanceGroupList" parameterType="SurProjectAttendanceGroup" resultMap="SurProjectAttendanceGroupResult">
<select id="selectSurProjectAttendanceGroupViewList" parameterType="SurProjectAttendanceGroup" resultMap="SurProjectAttendanceGroupResult">
<include refid="selectSurProjectAttendanceGroupVo"/>
<where>
<if test="cfgid != null "> and cfgid = #{cfgid}</if>
@ -69,6 +69,36 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="isDel != null "> and is_del = #{isDel}</if>
</where>
</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">
<include refid="selectSurProjectAttendanceGroupVo"/>
@ -95,7 +125,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="type != null">type,</if>
<if test="leaderId != null">leaderId,</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="platformTeamId != null">platformTeamId,</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="leaderId != null">#{leaderId},</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="platformTeamId != null">#{platformTeamId},</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="leaderId != null">leaderId = #{leaderId},</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="platformTeamId != null">platformTeamId = #{platformTeamId},</if>
<if test="enterDate != null">enterDate = #{enterDate},</if>
@ -193,9 +223,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</delete>
<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=",">
(#{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})
</foreach>
</insert>