Commit dd973057 authored by dll's avatar dll
parents 01e90fb6 6ed18014
package com.mortals.xhx.base.framework.config;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Map;
/**
* @author djx
* @date 2023年04月10日 11:53
*/
@Component
public class JsonUtils {
@Autowired
private ObjectMapper objectMapper;
public String bean2Json(Object data) {
try {
String result = objectMapper.writeValueAsString(data);
return result;
} catch (JsonProcessingException e) {
e.printStackTrace();
}
return null;
}
public <T> T json2Bean(String jsonData, Class<T> beanType) {
try {
T result = objectMapper.readValue(jsonData, beanType);
return result;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public <T> List<T> json2List(String jsonData, Class<T> beanType) {
JavaType javaType = objectMapper.getTypeFactory().constructParametricType(List.class, beanType);
try {
List<T> resultList = objectMapper.readValue(jsonData, javaType);
return resultList;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public <K, V> Map<K, V> json2Map(String jsonData, Class<K> keyType, Class<V> valueType) {
JavaType javaType = objectMapper.getTypeFactory().constructMapType(Map.class, keyType, valueType);
try {
Map<K, V> resultMap = objectMapper.readValue(jsonData, javaType);
return resultMap;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
......@@ -83,7 +83,7 @@ public class ArtemisPostTest {
final String getCamsApi = ARTEMIS_PATH + "/api/resource/v1/person/personList";
Map<String, String> paramMap = new HashMap<String, String>();// post请求Form表单参数
paramMap.put("pageNo", "1");
paramMap.put("pageSize", "10");
paramMap.put("pageSize", "1000");
String body = JSON.toJSON(paramMap).toString();
Map<String, String> path = new HashMap<String, String>(2) {
{
......@@ -106,7 +106,7 @@ public class ArtemisPostTest {
final String getCamsApi = ARTEMIS_PATH + "/api/resource/v1/person/personList";
Map<String, String> paramMap = new HashMap<String, String>();// post请求Form表单参数
paramMap.put("pageNo", "1");
paramMap.put("pageSize", "10");
paramMap.put("pageSize", "1000");
String body = JSON.toJSON(paramMap).toString();
Map<String, String> path = new HashMap<String, String>(2) {
{
......
package com.mortals.xhx.daemon.task;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.service.ITask;
import com.mortals.framework.service.ITaskExcuteService;
import com.mortals.xhx.base.framework.config.JsonUtils;
import com.mortals.xhx.busiz.hik.ArtemisPostTest;
import com.mortals.xhx.busiz.rsp.DeptHikData;
import com.mortals.xhx.busiz.rsp.ListDept;
......@@ -17,6 +18,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
......@@ -28,8 +30,6 @@ import java.util.Objects;
@Service("SyncUserTask")
public class SyncUserTaskImpl implements ITaskExcuteService {
@Autowired
private JsonUtils jsonUtils;
@Autowired
private StaffDaoImpl staffDao;
......@@ -42,30 +42,37 @@ public class SyncUserTaskImpl implements ITaskExcuteService {
log.info("同步用户--部门");
try {
String resultPerson = ArtemisPostTest.callPostApiGetPersonList();
PersonHikData personHikData = jsonUtils.json2Bean(resultPerson, PersonHikData.class);
JSONObject jsonObject = JSON.parseObject(resultPerson);
JSONObject jsonObject1 = jsonObject.getJSONObject("data");
PersonHikData personHikData = JSONObject.parseObject(jsonObject1.toJSONString(), PersonHikData.class);
if (Objects.nonNull(personHikData)) {
for (ListItem list : personHikData.getList()) {
//根据id获取本地数据
StaffEntity staffEntity1 = staffDao.get(Long.valueOf(list.getPersonId()));
List<StaffEntity> staffEntitieList = staffDao.queryAllList();
StaffEntity staffEntity1 = staffDao.queryHik(list.getPersonId());
List<StaffEntity> staffEntitieList = new ArrayList<>();
//判断本地数据是否为空
if (Objects.isNull(staffEntity1)) {
//如果为空则将数据存入数据库
staffEntity1.setName(list.getPersonName());
staffEntity1.setRemark(list.getPersonId());
staffEntity1.setPhotoPath(list.getPersonPhoto().getPicUri());
staffEntity1.setDeptName(list.getOrgName());
staffEntity1.setDeptId(Long.valueOf(list.getOrgIndexCode()));
staffEntity1.setDeptName(list.getOrgName());
staffEntity1.setSource(1);
if (list.getBirthday()!=null){
staffEntity1.setBirthday((Date) list.getBirthday());
StaffEntity staffEntity= new StaffEntity();
System.out.println(list.getPersonName());
staffEntity.setName(list.getPersonName());
staffEntity.setRemark(list.getPersonId());
staffEntity.setPhotoPath(list.getPersonPhoto().getPicUri());
staffEntity.setDeptName(list.getOrgName());
staffEntity.setSource(1);
staffEntity.setCreateUserId(Long.valueOf(1));
staffEntity.setCreateTime(new Date());
if (list.getBirthday() != null) {
staffEntity.setBirthday((Date) list.getBirthday());
}
if (list.getPhoneNo()!=null){
staffEntity1.setPhoneNumber(String.valueOf(list.getPhoneNo()));
if (list.getPhoneNo() != null) {
staffEntity.setPhoneNumber(String.valueOf(list.getPhoneNo()));
}
staffDao.insert(staffEntity1);
System.out.println("111" + staffEntity);
staffDao.insert(staffEntity);
}
//本地数据不为空
else {
//本地数据遍历数据
......@@ -84,8 +91,9 @@ public class SyncUserTaskImpl implements ITaskExcuteService {
staffEntity.setBirthday(staffEntity.getBirthday());
}
if (list.getPhoneNo()!=null && staffEntity.getPhoneNumber()!=null){
staffEntity1.setPhoneNumber(staffEntity.getPhoneNumber());
staffEntity.setPhoneNumber(staffEntity.getPhoneNumber());
}
log.info("修改人员信息"+staffEntity);
staffDao.update(staffEntity);
}
for (ListItem item :personHikData.getList()){
......@@ -102,7 +110,10 @@ public class SyncUserTaskImpl implements ITaskExcuteService {
}
}
String resultDept = ArtemisPostTest.callPostApiGetDeptList();
DeptHikData deptHikData = jsonUtils.json2Bean(resultDept,DeptHikData.class);
JSONObject jsonObjectDept = JSON.parseObject(resultDept);
JSONObject jsonObjectDept1 = jsonObject.getJSONObject("data");
DeptHikData deptHikData =JSONObject.parseObject(jsonObject1.toJSONString(),DeptHikData.class);
log.info("海康部门信息"+resultDept);
if (Objects.isNull(deptHikData)){
for (ListDept listDept:deptHikData.getList()){
DeptEntity deptEntity = deptDao.get(Long.valueOf(listDept.getOrgIndexCode()));
......@@ -111,12 +122,14 @@ public class SyncUserTaskImpl implements ITaskExcuteService {
deptEntity.setDeptName(listDept.getOrgName());
deptEntity.setParentId(Long.valueOf(listDept.getParentOrgIndexCode()));
deptEntity.setAncestors(listDept.getOrgPath());
log.info("新增部门信息"+deptEntity);
deptDao.insert(deptEntity);
}else {
for (DeptEntity deptEntity1 :deptEntityList){
if (!deptEntity1.getParentId().equals(listDept.getOrgIndexCode())){
deptEntity1.setAncestors(listDept.getOrgPath());
deptEntity1.setDeptName(listDept.getOrgName());
log.info("修改部门信息"+deptEntity);
deptDao.update(deptEntity1);
}
for (ListDept dept : deptHikData.getList()){
......
package com.mortals.xhx.module.attendance.web;
import com.mortals.framework.model.Context;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.base.system.param.service.ParamService;
import com.mortals.xhx.module.attendance.model.AttendanceLeaveRecordEntity;
import com.mortals.xhx.module.attendance.service.AttendanceLeaveRecordService;
import com.mortals.xhx.module.dept.model.DeptQuery;
import com.mortals.xhx.module.dept.service.DeptService;
import com.mortals.xhx.module.workman.model.WorkmanQuery;
import com.mortals.xhx.module.workman.service.WorkmanService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import com.mortals.framework.model.Context;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.module.attendance.model.AttendanceLeaveRecordEntity;
import com.mortals.xhx.module.attendance.service.AttendanceLeaveRecordService;
import org.apache.commons.lang3.ArrayUtils;
import com.mortals.framework.util.StringUtils;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import com.alibaba.fastjson.JSONObject;
import java.util.Arrays;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import static com.mortals.framework.ap.SysConstains.*;
/**
*
* 请假记录信息
......@@ -35,6 +28,10 @@ public class AttendanceLeaveRecordController extends BaseCRUDJsonBodyMappingCont
@Autowired
private ParamService paramService;
@Autowired
private DeptService deptService;
@Autowired
private WorkmanService workmanService;
public AttendanceLeaveRecordController(){
super.setModuleDesc( "请假记录信息");
......@@ -42,6 +39,8 @@ public class AttendanceLeaveRecordController extends BaseCRUDJsonBodyMappingCont
@Override
protected void init(Map<String, Object> model, Context context) {
this.addDict(model, "deptId", deptService.find(new DeptQuery()).stream().collect(Collectors.toMap(x->x.getId().toString(), y->y.getDeptName(),(o, n)->n)));
this.addDict(model, "approverId", workmanService.find(new WorkmanQuery()).stream().collect(Collectors.toMap(x->x.getId().toString(), y->y.getName(),(o, n)->n)));
this.addDict(model, "leaveType", paramService.getParamBySecondOrganize("AttendanceLeaveRecord","leaveType"));
super.init(model, context);
}
......
package com.mortals.xhx.module.attendance.web;
import com.mortals.framework.model.Context;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.base.system.param.service.ParamService;
import com.mortals.xhx.module.attendance.model.AttendanceVacationBalanceEntity;
import com.mortals.xhx.module.attendance.service.AttendanceVacationBalanceService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import com.mortals.framework.model.Context;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.module.attendance.model.AttendanceVacationBalanceEntity;
import com.mortals.xhx.module.attendance.service.AttendanceVacationBalanceService;
import org.apache.commons.lang3.ArrayUtils;
import com.mortals.framework.util.StringUtils;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import com.alibaba.fastjson.JSONObject;
import java.util.Arrays;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import static com.mortals.framework.ap.SysConstains.*;
/**
*
* 员工假期余额信息
......
package com.mortals.xhx.module.attendance.web;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.base.system.param.service.ParamService;
import com.mortals.xhx.module.attendance.model.AttendanceVacationBalanceEntity;
import com.mortals.xhx.module.attendance.model.AttendanceVacationRecordEntity;
import com.mortals.xhx.module.attendance.service.AttendanceVacationBalanceService;
import com.mortals.xhx.module.attendance.service.AttendanceVacationRecordService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import com.mortals.framework.model.Context;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.module.attendance.model.AttendanceVacationRecordEntity;
import com.mortals.xhx.module.attendance.service.AttendanceVacationRecordService;
import org.apache.commons.lang3.ArrayUtils;
import com.mortals.framework.util.StringUtils;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import com.alibaba.fastjson.JSONObject;
import java.util.Arrays;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import static com.mortals.framework.ap.SysConstains.*;
/**
*
* 员工假期记录信息
......@@ -35,6 +25,8 @@ public class AttendanceVacationRecordController extends BaseCRUDJsonBodyMappingC
@Autowired
private ParamService paramService;
@Autowired
private AttendanceVacationBalanceService attendanceVacationBalanceService;
public AttendanceVacationRecordController(){
super.setModuleDesc( "员工假期记录信息");
......@@ -47,5 +39,10 @@ public class AttendanceVacationRecordController extends BaseCRUDJsonBodyMappingC
super.init(model, context);
}
@Override
protected void saveBefore(AttendanceVacationRecordEntity entity, Map<String, Object> model, Context context) throws AppException {
AttendanceVacationBalanceEntity attendanceVacationBalanceEntity=attendanceVacationBalanceService.get(entity.getStaffId());
model.put("allHoliday",attendanceVacationBalanceEntity);
super.saveBefore(entity, model, context);
}
}
\ No newline at end of file
......@@ -10,6 +10,7 @@ import com.mortals.xhx.module.dept.model.DeptEntity;
import com.mortals.xhx.module.dept.model.DeptQuery;
import com.mortals.xhx.module.dept.model.DeptTreeSelect;
import com.mortals.xhx.module.dept.service.DeptService;
import com.mortals.xhx.module.staff.service.StaffService;
import com.mortals.xhx.module.workman.model.WorkmanQuery;
import com.mortals.xhx.module.workman.service.WorkmanService;
import org.apache.commons.lang3.ArrayUtils;
......@@ -39,6 +40,8 @@ public class DeptController extends BaseCRUDJsonBodyMappingController<DeptServic
private DeptService deptService;
@Autowired
private WorkmanService workmanService;
@Autowired
private StaffService staffService;
public DeptController() {
......@@ -48,8 +51,8 @@ public class DeptController extends BaseCRUDJsonBodyMappingController<DeptServic
@Override
protected void init(Map<String, Object> model, Context context) {
this.addDict(model, "deptStatus", paramService.getParamBySecondOrganize("Dept", "deptStatus"));
this.addDict(model, "id", deptService.find(new DeptQuery()).stream().collect(Collectors.toMap(x->x.getId().toString(), y->y.getDeptName(),(o, n)->n)));
this.addDict(model, "remark", workmanService.find(new WorkmanQuery()).stream().collect(Collectors.toMap(x->x.getId().toString(), y->y.getName(),(o, n)->n)));
this.addDict(model, "deptName", deptService.find(new DeptQuery()).stream().collect(Collectors.toMap(x->x.getId().toString(), y->y.getDeptName(),(o, n)->n)));
this.addDict(model, "workName", workmanService.find(new WorkmanQuery()).stream().collect(Collectors.toMap(x->x.getId().toString(), y->y.getName(),(o, n)->n)));
super.init(model, context);
}
......@@ -129,6 +132,8 @@ public class DeptController extends BaseCRUDJsonBodyMappingController<DeptServic
@Override
protected int doListAfter(DeptEntity query, Map<String, Object> model, Context context) throws AppException {
int Allperson =staffService.queryAllPerson();
model.put("AllPerson",Allperson);
return super.doListAfter(query, model, context);
}
}
\ No newline at end of file
package com.mortals.xhx.module.job.web;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.base.system.param.service.ParamService;
import com.mortals.xhx.module.job.model.JobEntity;
import com.mortals.xhx.module.job.service.JobService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import com.mortals.framework.model.Context;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.module.job.model.JobEntity;
import com.mortals.xhx.module.job.service.JobService;
import org.apache.commons.lang3.ArrayUtils;
import com.mortals.framework.util.StringUtils;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import com.alibaba.fastjson.JSONObject;
import java.util.Arrays;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import static com.mortals.framework.ap.SysConstains.*;
/**
*
* 职位信息
......@@ -43,6 +31,7 @@ public class JobController extends BaseCRUDJsonBodyMappingController<JobService,
@Override
protected void init(Map<String, Object> model, Context context) {
this.addDict(model, "type", paramService.getParamBySecondOrganize("Job", "type"));
super.init(model, context);
}
......
......@@ -53,7 +53,13 @@ public interface StaffDao extends ICRUDDao<StaffEntity,Long>{
int queryConcurrently();
/**
* 查询职位
* 统计部门
* */
List<StaffEntity> queryDetp();
int queryPersonNum(Long deptId);
/**
*
* */
StaffEntity queryHik(String remark);
}
......@@ -54,10 +54,14 @@ public class StaffDaoImpl extends BaseCRUDDaoMybatis<StaffEntity,Long> implement
}
@Override
public List<StaffEntity> queryDetp(){
return this.getSqlSession().selectList(this.getSqlId("queryDetp"));
public int queryPersonNum(Long deptId) {
return this.getSqlSession().selectOne(this.getSqlId("queryPersonNum"),deptId);
}
@Override
public StaffEntity queryHik(String remark) {
return this.getSqlSession().selectOne(this.getSqlId("queryHik"),remark);
}
}
......@@ -17,4 +17,6 @@ public class StaffVo extends BaseEntityLong {
private List<HolidayListVo> holidayLists;
private List<StaffInfoVo>staffInfoVos;
private Integer personNum;
}
\ No newline at end of file
......@@ -3,8 +3,6 @@ import com.mortals.framework.service.ICRUDCacheService;
import com.mortals.xhx.module.staff.model.StaffEntity;
import com.mortals.xhx.module.staff.model.vo.StaffInfoVo;
import java.util.List;
/**
* StaffService
*
......@@ -17,5 +15,7 @@ public interface StaffService extends ICRUDCacheService<StaffEntity,Long> {
StaffInfoVo queryAll();
List<StaffEntity> queryDept();
int queryDeptNum(Long deptId);
int queryAllPerson();
}
\ No newline at end of file
......@@ -10,8 +10,6 @@ import com.mortals.xhx.module.staff.service.StaffService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* StaffService
* 员工基本信息 service实现
......@@ -57,8 +55,14 @@ public class StaffServiceImpl extends AbstractCRUDCacheServiceImpl<StaffDao, Sta
}
@Override
public List<StaffEntity> queryDept() {
public int queryDeptNum(Long deptId) {
return staffDao.queryPersonNum(deptId);
}
return staffDao.queryDetp();
@Override
public int queryAllPerson() {
return staffDao.queryInWork();
}
}
\ No newline at end of file
......@@ -4,6 +4,8 @@ import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.base.system.param.service.ParamService;
import com.mortals.xhx.module.dept.model.DeptEntity;
import com.mortals.xhx.module.dept.service.DeptService;
import com.mortals.xhx.module.job.model.JobQuery;
import com.mortals.xhx.module.job.service.JobService;
import com.mortals.xhx.module.staff.model.StaffEntity;
......@@ -35,6 +37,8 @@ public class StaffController extends BaseCRUDJsonBodyMappingController<StaffServ
private ParamService paramService;
@Autowired
private JobService jobService;
@Autowired
private DeptService deptService;
public StaffController(){
super.setModuleDesc( "员工基本信息");
......@@ -100,7 +104,10 @@ public class StaffController extends BaseCRUDJsonBodyMappingController<StaffServ
@Override
protected int saveAfter(StaffEntity entity, Map<String, Object> model, Context context) throws AppException {
int personNum = service.queryDeptNum(entity.getDeptId());
DeptEntity deptEntity = deptService.get(entity.getDeptId());
deptEntity.setPersonNum(personNum);
deptService.update(deptEntity);
return super.saveAfter(entity, model, context);
}
......
......@@ -47,7 +47,7 @@ public class WorkmanController extends BaseCRUDJsonBodyMappingController<Workman
@Override
protected int saveAfter(WorkmanEntity entity, Map<String, Object> model, Context context) throws AppException {
DeptEntity deptEntity = new DeptEntity();
deptEntity.setRemark(entity.getName());
deptEntity.setWorkName(entity.getName());
return super.saveAfter(entity, model, context);
}
}
\ No newline at end of file
......@@ -1337,7 +1337,11 @@
select count(1) pricateStaff from mortals_xhx_staff where staffType = 3
</select>
<select id="queryDetp" resultType="com.mortals.xhx.module.staff.model.StaffEntity">
select deptName from mortals_xhx_staff group by deptName
<select id="queryPersonNum" resultType="integer">
select count(1) personNum from mortals_xhx_staff where deptId = #{deptId}
</select>
<select id="queryHik" resultType="com.mortals.xhx.module.staff.model.StaffEntity">
select * from mortals_xhx_staff where remark = #{remark}
</select>
</mapper>
\ No newline at end of file
......@@ -19,16 +19,6 @@ Authorization: {{authToken}}
Content-Type: application/json
{
"staffId":89,
"staffName":"7kltos",
"deptId":609,
"deptName":"6476z6",
"entryTime":"1680796800000",
"personalLeaveDays":0,
"compensatedLeaveDays":0,
"sickLeaveDays":0,
"annualLeaveDays":0,
"marriageLeaveDays":0,
"page":1,
"size":10
}
......@@ -58,7 +48,7 @@ client.global.set("AttendanceVacationBalance_id", JSON.parse(response.body).data
%}
###员工假期余额信息查看
GET {{baseUrl}}/attendance/vacation/balance/info?id={{AttendanceVacationBalance_id}}
GET {{baseUrl}}/attendance/vacation/balance/info?id=1
Authorization: {{authToken}}
Accept: application/json
......
......@@ -47,7 +47,7 @@ client.global.set("AttendanceVacationRecord_id", JSON.parse(response.body).data.
%}
###员工假期记录信息查看
GET {{baseUrl}}/attendance/vacation/record/info?id={{AttendanceVacationRecord_id}}
GET {{baseUrl}}/attendance/vacation/record/info?id=1
Authorization: {{authToken}}
Accept: application/json
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment