提交代码
parent
5e6933cc3d
commit
56c53fb4ab
|
@ -424,23 +424,35 @@ public class LabourApiController extends BaseController {
|
|||
.validate(labourDataVo, new Class[0]);
|
||||
if(CollectionUtils.isEmpty(validateSet)){
|
||||
// 查询当前班组人员考勤是否已推送
|
||||
SurProjectAttendanceData searchModel = new SurProjectAttendanceData();
|
||||
searchModel.setAppId(sysApplyConfig.getAppId());
|
||||
searchModel.setWorkerId(surProjectAttendanceData.getWorkerId());
|
||||
searchModel.setWorkerId(surProjectAttendanceData.getServerid());
|
||||
List<SurProjectAttendanceData> list = surProjectAttendanceDataService.selectSurProjectAttendanceDataList(searchModel);
|
||||
if(CollectionUtils.isNotEmpty(list)){
|
||||
surProjectAttendanceData.setId(list.get(0).getId());
|
||||
surProjectAttendanceData.setCfgid(sysApplyConfig.getCfgId());
|
||||
surProjectAttendanceData.setAppId(sysApplyConfig.getAppId());
|
||||
surProjectAttendanceData.setCreateBy(list.get(0).getCreateBy());
|
||||
surProjectAttendanceData.setCreateTime(list.get(0).getCreateTime());
|
||||
surProjectAttendanceData.setUpdateBy(sysApplyConfig.getAppId());
|
||||
SurProjectAttendanceData findData = new SurProjectAttendanceData();
|
||||
findData.setAppId(sysApplyConfig.getAppId());
|
||||
findData.setWorkerId(surProjectAttendanceData.getWorkerId());
|
||||
findData.setAttendanceTime(labourDataVo.getAttendanceTime());
|
||||
SurProjectAttendanceData data = surProjectAttendanceDataService.findCurrentAttendanceData(findData);
|
||||
if(data!=null){
|
||||
//这里不能修改出勤时间
|
||||
surProjectAttendanceData.setAttendanceTime(null);
|
||||
surProjectAttendanceData.setAttendanceOutTime(labourDataVo.getAttendanceTime());
|
||||
surProjectAttendanceData.setUpdateBy(sysApplyConfig.getAppId()+"Api推送入场");
|
||||
surProjectAttendanceData.setUpdateTime(new Date());
|
||||
surProjectAttendanceDataService.updateSurProjectAttendanceData(surProjectAttendanceData);
|
||||
}else{
|
||||
/**
|
||||
* 查询人员考勤信息
|
||||
*/
|
||||
SurProjectAttendanceUser findUser = new SurProjectAttendanceUser();
|
||||
findUser.setCfgid(sysApplyConfig.getCfgId());
|
||||
findUser.setWorkerId(surProjectAttendanceData.getWorkerId());
|
||||
SurProjectAttendanceUser surProjectAttendanceUser = surProjectAttendanceUserService.findCurrentAttendanceUser(findUser);
|
||||
if(StringUtils.isNull(surProjectAttendanceUser)){
|
||||
throw new ServiceException("未查询到人员信息",HttpStatusEnum.DARA_EXCEPTION.getCode());
|
||||
}
|
||||
if(StringUtils.isNull(surProjectAttendanceUser.getCompanyTypeId())){
|
||||
throw new ServiceException("人员部门类型信息不完整",HttpStatusEnum.DARA_EXCEPTION.getCode());
|
||||
}
|
||||
surProjectAttendanceData.setAppId(sysApplyConfig.getAppId());
|
||||
surProjectAttendanceData.setCfgid(sysApplyConfig.getCfgId());
|
||||
surProjectAttendanceData.setCreateBy(sysApplyConfig.getAppId());
|
||||
surProjectAttendanceData.setCreateBy(sysApplyConfig.getAppId()+"Api推送离场");
|
||||
surProjectAttendanceData.setCreateTime(new Date());
|
||||
surProjectAttendanceDataService.insertSurProjectAttendanceData(surProjectAttendanceData);
|
||||
}
|
||||
|
|
|
@ -160,6 +160,10 @@ public class SurProjectAttendanceUser extends BaseEntity
|
|||
@Excel(name = "")
|
||||
private Long isDel;
|
||||
|
||||
/** 人员部门类型 */
|
||||
@Excel(name = "人员部门类型")
|
||||
private Integer companyTypeId;
|
||||
|
||||
private Date inTime;
|
||||
private Date outTime;
|
||||
|
||||
|
@ -654,6 +658,14 @@ public class SurProjectAttendanceUser extends BaseEntity
|
|||
this.appId = appId;
|
||||
}
|
||||
|
||||
public Integer getCompanyTypeId() {
|
||||
return companyTypeId;
|
||||
}
|
||||
|
||||
public void setCompanyTypeId(Integer companyTypeId) {
|
||||
this.companyTypeId = companyTypeId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
|
||||
|
|
|
@ -29,9 +29,11 @@ public class LabourDataVo extends BaseEntity
|
|||
private Long companyId;
|
||||
|
||||
/** 进门还是出门E进,L出 */
|
||||
/**
|
||||
* 新接口改造&暂不需要传入参数
|
||||
@NotBlank(message = "进出门不能为空")
|
||||
@Pattern(regexp = "E|L", message = "进出门类型格式异常,E进|L出")
|
||||
private String attendanceType;
|
||||
private String attendanceType;*/
|
||||
|
||||
/** 考勤时间yyyy-MM-dd HH:mm:ss */
|
||||
@NotBlank(message = "考勤时间不能为空")
|
||||
|
@ -72,14 +74,6 @@ public class LabourDataVo extends BaseEntity
|
|||
this.companyId = companyId;
|
||||
}
|
||||
|
||||
public String getAttendanceType() {
|
||||
return attendanceType;
|
||||
}
|
||||
|
||||
public void setAttendanceType(String attendanceType) {
|
||||
this.attendanceType = attendanceType;
|
||||
}
|
||||
|
||||
public String getAttendanceTime() {
|
||||
return attendanceTime;
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@ import java.util.List;
|
|||
import java.util.Map;
|
||||
|
||||
import com.yanzhu.jh.project.domain.SurProjectAttendanceData;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* 劳务实名制管理Mapper接口
|
||||
|
@ -29,6 +30,13 @@ public interface SurProjectAttendanceDataMapper
|
|||
*/
|
||||
public List<SurProjectAttendanceData> selectSurProjectAttendanceDataList(SurProjectAttendanceData surProjectAttendanceData);
|
||||
|
||||
/**
|
||||
* 查询考勤信息
|
||||
*
|
||||
* @param surProjectAttendanceData 劳务实名制管理
|
||||
* @return 劳务实名制管理集合
|
||||
*/
|
||||
public SurProjectAttendanceData findCurrentAttendanceData(SurProjectAttendanceData surProjectAttendanceData);
|
||||
|
||||
public List<SurProjectAttendanceData> selectSurProjectAttendanceDataListEx(SurProjectAttendanceData surProjectAttendanceData);
|
||||
/**
|
||||
|
@ -77,7 +85,7 @@ public interface SurProjectAttendanceDataMapper
|
|||
* @param SurProjectAttendanceDataList 劳务实名制考勤管理列表
|
||||
* @return 结果
|
||||
*/
|
||||
public int batchSurProjectAttendanceData(List<SurProjectAttendanceData> SurProjectAttendanceDataList);
|
||||
public int batchSurProjectAttendanceData(@Param("list") List<SurProjectAttendanceData> SurProjectAttendanceDataList, @Param("year") String year);
|
||||
|
||||
public Long getLastServerId(SurProjectAttendanceData where);
|
||||
|
||||
|
|
|
@ -22,6 +22,14 @@ public interface SurProjectAttendanceUserMapper
|
|||
*/
|
||||
public SurProjectAttendanceUser selectSurProjectAttendanceUserById(Long id);
|
||||
|
||||
/**
|
||||
* 查询考勤人员信息
|
||||
*
|
||||
* @param surProjectAttendanceUser
|
||||
* @return 考勤人员基本属性
|
||||
*/
|
||||
public SurProjectAttendanceUser findCurrentAttendanceUser(SurProjectAttendanceUser surProjectAttendanceUser);
|
||||
|
||||
/**
|
||||
* 查询考勤人员基本属性列表
|
||||
*
|
||||
|
|
|
@ -30,6 +30,14 @@ public interface ISurProjectAttendanceDataService
|
|||
*/
|
||||
public List<SurProjectAttendanceData> selectSurProjectAttendanceDataList(SurProjectAttendanceData surProjectAttendanceData);
|
||||
|
||||
/**
|
||||
* 查询考勤信息
|
||||
*
|
||||
* @param surProjectAttendanceData 劳务实名制管理
|
||||
* @return 劳务实名制管理集合
|
||||
*/
|
||||
public SurProjectAttendanceData findCurrentAttendanceData(SurProjectAttendanceData surProjectAttendanceData);
|
||||
|
||||
public List<SurProjectAttendanceData> selectSurProjectAttendanceDataListEx(SurProjectAttendanceData surProjectAttendanceData);
|
||||
|
||||
/**
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.yanzhu.jh.project.service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.yanzhu.jh.project.domain.SurProjectAttendanceCfg;
|
||||
import com.yanzhu.jh.project.domain.SurProjectAttendanceUser;
|
||||
|
@ -21,6 +22,14 @@ public interface ISurProjectAttendanceUserService
|
|||
*/
|
||||
public SurProjectAttendanceUser selectSurProjectAttendanceUserById(Long id);
|
||||
|
||||
/**
|
||||
* 查询考勤人员信息
|
||||
*
|
||||
* @param surProjectAttendanceUser
|
||||
* @return 考勤人员基本属性
|
||||
*/
|
||||
public SurProjectAttendanceUser findCurrentAttendanceUser(SurProjectAttendanceUser surProjectAttendanceUser);
|
||||
|
||||
/**
|
||||
* 查询考勤人员基本属性列表
|
||||
*
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package com.yanzhu.jh.project.service.impl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
@ -69,6 +70,18 @@ public class SurProjectAttendanceDataServiceImpl implements ISurProjectAttendanc
|
|||
return surProjectAttendanceDataMapper.selectSurProjectAttendanceDataList(surProjectAttendanceData);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询考勤信息
|
||||
*
|
||||
* @param surProjectAttendanceData 劳务实名制管理
|
||||
* @return 劳务实名制管理集合
|
||||
*/
|
||||
@Override
|
||||
public SurProjectAttendanceData findCurrentAttendanceData(SurProjectAttendanceData surProjectAttendanceData){
|
||||
return surProjectAttendanceDataMapper.findCurrentAttendanceData(surProjectAttendanceData);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SurProjectAttendanceData> selectSurProjectAttendanceDataListEx(SurProjectAttendanceData surProjectAttendanceData)
|
||||
{
|
||||
return surProjectAttendanceDataMapper.selectSurProjectAttendanceDataListEx(surProjectAttendanceData);
|
||||
|
@ -149,7 +162,7 @@ public class SurProjectAttendanceDataServiceImpl implements ISurProjectAttendanc
|
|||
*/
|
||||
@Override
|
||||
public int batchSurProjectAttendanceData(List<SurProjectAttendanceData> SurProjectAttendanceDataList) {
|
||||
return surProjectAttendanceDataMapper.batchSurProjectAttendanceData(SurProjectAttendanceDataList);
|
||||
return surProjectAttendanceDataMapper.batchSurProjectAttendanceData(SurProjectAttendanceDataList,DateUtils.dateTimeNow(DateUtils.YYYY));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -249,6 +262,7 @@ public class SurProjectAttendanceDataServiceImpl implements ISurProjectAttendanc
|
|||
|
||||
@Override
|
||||
public List<Map<String,Object>> initOtherData(Map<String,Object> data) {
|
||||
List<Map<String,Object>> dataList = new ArrayList<>();
|
||||
List<Map<String,Object>> list = surProjectAttendanceDataMapper.initOtherData(data);
|
||||
if(StringUtils.isNotEmpty(list)){
|
||||
List<String> workerIds = list.stream().map(Map -> Map.get("workerId").toString()).collect(Collectors.toList());
|
||||
|
@ -259,15 +273,17 @@ public class SurProjectAttendanceDataServiceImpl implements ISurProjectAttendanc
|
|||
if(Objects.equals(map.get("workerId").toString(),sau.getWorkerId())){
|
||||
map.put("inTime",map.get("inTime"));
|
||||
map.put("outTime",map.get("outTime"));
|
||||
dataList.add(map);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return list;
|
||||
return dataList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Map<String,Object>> initHuaZhuData(Map<String,Object> data) {
|
||||
List<Map<String,Object>> dataList = new ArrayList<>();
|
||||
List<Map<String,Object>> list = surProjectAttendanceDataMapper.initHuaZhuData(data);
|
||||
if(StringUtils.isNotEmpty(list)){
|
||||
List<String> workerIds = list.stream().map(Map -> Map.get("workerId").toString()).collect(Collectors.toList());
|
||||
|
@ -278,10 +294,11 @@ public class SurProjectAttendanceDataServiceImpl implements ISurProjectAttendanc
|
|||
if(Objects.equals(map.get("workerId").toString(),sau.getWorkerId())){
|
||||
map.put("inTime",map.get("inTime"));
|
||||
map.put("outTime",map.get("outTime"));
|
||||
dataList.add(map);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return list;
|
||||
return dataList;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,6 +3,8 @@ package com.yanzhu.jh.project.service.impl;
|
|||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.ruoyi.common.utils.DateUtils;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import com.yanzhu.jh.project.domain.SurProjectAttendanceCfg;
|
||||
|
@ -36,6 +38,17 @@ public class SurProjectAttendanceUserServiceImpl implements ISurProjectAttendanc
|
|||
return surProjectAttendanceUserMapper.selectSurProjectAttendanceUserById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询考勤人员信息
|
||||
*
|
||||
* @param surProjectAttendanceUser
|
||||
* @return 考勤人员基本属性
|
||||
*/
|
||||
@Override
|
||||
public SurProjectAttendanceUser findCurrentAttendanceUser(SurProjectAttendanceUser surProjectAttendanceUser) {
|
||||
return surProjectAttendanceUserMapper.findCurrentAttendanceUser(surProjectAttendanceUser);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询考勤人员基本属性列表
|
||||
*
|
||||
|
|
|
@ -12,6 +12,7 @@ import com.ruoyi.common.enums.PublicStateEnum;
|
|||
import com.ruoyi.common.enums.SysRoleEnum;
|
||||
import com.ruoyi.common.utils.DateUtils;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import com.ruoyi.system.domain.FlowTaskEntity;
|
||||
import com.ruoyi.system.service.ISysDeptService;
|
||||
import com.ruoyi.system.service.ISysUserService;
|
||||
|
@ -279,8 +280,8 @@ PublicsController extends BaseController {
|
|||
attendanceData.setGroupName(map.get("groupName").toString());
|
||||
attendanceData.setCompanyTypeId(Convert.toStr(map.get("companyTypeId"),"0"));
|
||||
attendanceData.setCompanyName(map.get("companyName").toString());
|
||||
attendanceData.setAttendanceTime(map.get("inTime").toString());
|
||||
attendanceData.setAttendanceOutTime(map.get("outTime").toString());
|
||||
attendanceData.setAttendanceTime(Convert.toStr(map.get("inTime")));
|
||||
attendanceData.setAttendanceOutTime(Convert.toStr(map.get("outTime")));
|
||||
attendanceData.setScanPhoto(Convert.toStr(map.get("scanPhoto")));
|
||||
attendanceData.setTeamId(Convert.toLong(map.get("teamId")));
|
||||
attendanceData.setWorkTypeCode(Convert.toStr(map.get("workTypeCode")));
|
||||
|
@ -291,9 +292,10 @@ PublicsController extends BaseController {
|
|||
attendanceData.setCreateBy("数据迁移格式化");
|
||||
attendanceData.setCreateTime(new Date());
|
||||
dataList.add(attendanceData);
|
||||
//surProjectAttendanceDataService.add(attendanceData);
|
||||
}
|
||||
redisCache.setCacheObject("PUBLICS.V1.initAttendanceData",dataList,30*24,TimeUnit.HOURS);
|
||||
if(StringUtils.isNotEmpty(dataList)){
|
||||
surProjectAttendanceDataService.batchSurProjectAttendanceData(dataList);
|
||||
}
|
||||
}
|
||||
}
|
||||
return success();
|
||||
|
|
|
@ -48,6 +48,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
select * from sur_project_attendance_data_${year}
|
||||
</sql>
|
||||
|
||||
<select id="findCurrentAttendanceData" parameterType="SurProjectAttendanceData" resultMap="SurProjectAttendanceDataResult">
|
||||
select * from sur_project_attendance_data_${year}
|
||||
<where>
|
||||
<if test="cfgid != null "> and cfgid = #{cfgid}</if>
|
||||
<if test="appId != null "> and app_id = #{appId}</if>
|
||||
<if test="workerId != null "> and workerId = #{workerId}</if>
|
||||
<if test="attendanceTime != null and attendanceTime != ''"> and date(attendance_time) = date(#{attendanceTime})</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="selectSurProjectAttendanceDataListEx" parameterType="SurProjectAttendanceData" resultMap="SurProjectAttendanceDataResult">
|
||||
select * from sur_project_attendance_data_${year}
|
||||
<where>
|
||||
|
@ -235,9 +245,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
</delete>
|
||||
|
||||
<insert id="batchSurProjectAttendanceData">
|
||||
insert into sur_project_attendance_data_${year}( id, cfgid, app_id, vendors_code, serverid, workerId, attendance_type, attendance_time, identification, teamId, workTypeCode, companyId, vendorId, projectType, device_code, work_point_id, scanPhoto, other, state, remark, is_del, create_by, create_time, update_by, update_time) values
|
||||
insert into sur_project_attendance_data_${year}( id, cfgid, app_id, projectId, projectName, deptId, deptName, vendors_code, serverid, workerId, workerName, identification, workerPhoto, workerGender, birthDate, ethnic, nativePlace, phone, workTypeName, specWorkType, groupName, companyTypeId,
|
||||
companyName, attendance_time, attendance_out_time, scanPhoto, teamId,workTypeCode, companyId, vendorId, device_code, is_del, create_by, create_time, update_by, update_time) values
|
||||
<foreach item="item" index="index" collection="list" separator=",">
|
||||
( #{item.id}, #{item.cfgid},#{item.appId}, #{item.vendorsCode}, #{item.serverid}, #{item.workerId}, #{item.attendanceType}, #{item.attendanceTime}, #{item.identification}, #{item.teamId}, #{item.workTypeCode}, #{item.companyId}, #{item.vendorId}, #{item.projectType}, #{item.deviceCode}, #{item.workPointId}, #{item.scanPhoto}, #{item.other}, #{item.state}, #{item.remark}, #{item.isDel}, #{item.createBy}, #{item.createTime}, #{item.updateBy}, #{item.updateTime})
|
||||
( #{item.id}, #{item.cfgid},#{item.appId}, #{item.projectId}, #{item.projectName}, #{item.deptId}, #{item.deptName}, #{item.vendorsCode}, #{item.serverid}, #{item.workerId}, #{item.workerName}, #{item.identification},#{item.workerPhoto}, #{item.workerGender}, #{item.birthDate},#{item.ethnic}, #{item.nativePlace}, #{item.phone}, #{item.workTypeName}, #{item.specWorkType}, #{item.groupName}, #{item.companyTypeId},
|
||||
#{item.companyName}, #{item.attendanceTime}, #{item.attendanceOutTime}, #{item.scanPhoto},#{item.teamId}, #{item.workTypeCode}, #{item.companyId}, #{item.vendorId}, #{item.deviceCode},#{item.isDel}, #{item.createBy}, #{item.createTime}, #{item.updateBy}, #{item.updateTime})
|
||||
</foreach>
|
||||
</insert>
|
||||
|
||||
|
@ -328,7 +340,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
u.workTypeName,u.specWorkType,u.groupName,g.companyTypeId,d.teamId,u.workTypeCode,d.vendorId,d.device_code,d.scanPhoto,d.is_del
|
||||
from sur_project_attendance_data d
|
||||
left JOIN sur_project_attendance_user u on d.workerId = u.workerId and d.cfgid = u.cfgid
|
||||
left join sur_project_attendance_group g on u.groupId = g.serverid and g.cfgid = u.cfgid
|
||||
left join sur_project_attendance_group g on u.companyId = g.companyId and g.cfgid = u.cfgid
|
||||
where d.cfgid=#{cfgid} and date(d.attendance_time) = #{date}
|
||||
GROUP BY d.workerId
|
||||
</select>
|
||||
|
|
|
@ -47,6 +47,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<result property="updateTime" column="update_time" />
|
||||
<result property="projectId" column="project_id"/>
|
||||
<result property="subDeptId" column="sub_dept_id"/>
|
||||
<result property="companyTypeId" column="companyTypeId"/>
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectSurProjectAttendanceUserVo">
|
||||
|
@ -104,6 +105,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
where id = #{id}
|
||||
</select>
|
||||
|
||||
<select id="findCurrentAttendanceUser" parameterType="SurProjectAttendanceUser" resultType="SurProjectAttendanceUserResult">
|
||||
select u.companyId,u.companyName,u.`name`,u.recentPhoto,u.gender,u.birthDate,u.ethnic,u.nativePlace,u.phone,
|
||||
u.workTypeName,u.specWorkType,u.groupName,g.companyTypeId,u.workTypeCode
|
||||
from sur_project_attendance_user u
|
||||
left join sur_project_attendance_group g on u.companyId = g.companyId and g.cfgid = u.cfgid
|
||||
where u.cfgid=#{cfgid} and u.workerId=#{workerId}
|
||||
</select>
|
||||
|
||||
<insert id="insertSurProjectAttendanceUser" parameterType="SurProjectAttendanceUser" useGeneratedKeys="true" keyProperty="id">
|
||||
insert into sur_project_attendance_user
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
|
|
Loading…
Reference in New Issue