提交代码

dev_xds
姜玉琦 2024-03-23 02:29:43 +08:00
parent 5e6933cc3d
commit 56c53fb4ab
12 changed files with 138 additions and 34 deletions

View File

@ -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);
}

View File

@ -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)

View File

@ -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;
}

View File

@ -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);

View File

@ -22,6 +22,14 @@ public interface SurProjectAttendanceUserMapper
*/
public SurProjectAttendanceUser selectSurProjectAttendanceUserById(Long id);
/**
*
*
* @param surProjectAttendanceUser
* @return
*/
public SurProjectAttendanceUser findCurrentAttendanceUser(SurProjectAttendanceUser surProjectAttendanceUser);
/**
*
*

View File

@ -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);
/**

View File

@ -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);
/**
*
*

View File

@ -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;
}
}

View File

@ -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);
}
/**
*
*

View File

@ -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();

View File

@ -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>

View File

@ -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=",">