update code

dev_xd
lijun 2024-10-13 11:26:52 +08:00
parent 1cf74add92
commit 3fe8f4c6c3
9 changed files with 205 additions and 136 deletions

View File

@ -54,8 +54,8 @@ public class AttendanceUbiData extends BaseEntity
private String craftPost;
/** 进场时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "进场时间", width = 30, dateFormat = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "进场时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date inTime;
/** 进场数据 */
@ -63,8 +63,8 @@ public class AttendanceUbiData extends BaseEntity
private String inData;
/** 离场时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "离场时间", width = 30, dateFormat = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "离场时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date outTime;
/** 离场数据 */
@ -83,6 +83,26 @@ public class AttendanceUbiData extends BaseEntity
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long state;
private String comName;
public String getComName() {
return comName;
}
public void setComName(String comName) {
this.comName = comName;
}
public String getProjectName() {
return projectName;
}
public void setProjectName(String projectName) {
this.projectName = projectName;
}
private String projectName;
public void setId(Long id)
{
this.id = id;
@ -228,6 +248,15 @@ public class AttendanceUbiData extends BaseEntity
return state;
}
public String getAdmitGuid() {
return admitGuid;
}
public void setAdmitGuid(String admitGuid) {
this.admitGuid = admitGuid;
}
private String admitGuid;
private String eventGuid;
private String inPhoto;
private String outPhoto;

View File

@ -107,6 +107,15 @@ public class ProProjectInfoSubdeptsUsers extends BaseEntity
this.user = user;
}
public String getAdmitGuid() {
return admitGuid;
}
public void setAdmitGuid(String admitGuid) {
this.admitGuid = admitGuid;
}
private String admitGuid;
private SysUser user;
/** 删除标识 */

View File

@ -27,6 +27,7 @@ public interface AttendanceUbiDataMapper
*/
public List<AttendanceUbiData> selectAttendanceUbiDataList(AttendanceUbiData attendanceUbiData);
public List<AttendanceUbiData> queryAttendaceInfo(AttendanceUbiData where);
/**
*
*

View File

@ -7,8 +7,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<resultMap type="AttendanceUbiData" id="AttendanceUbiDataResult">
<result property="id" column="id" />
<result property="comId" column="comId" />
<result property="comName" column="comName"/>
<result property="projectName" column="projectName"/>
<result property="projectId" column="projectId" />
<result property="userId" column="userId" />
<result property="admitGuid" column="admitGuid" />
<result property="userName" column="userName" />
<result property="subDeptGroup" column="sub_dept_group" />
<result property="subDeptGroupName" column="sub_dept_group_name" />
@ -31,12 +34,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap>
<sql id="selectAttendanceUbiDataVo">
select id, comId, projectId, userId, userName, sub_dept_group, sub_dept_group_name, craft_type, craft_post,
eventGuid,inPhoto,outPhoto,
inTime, inData, outTime, outData, deviceNo, is_del, state, remark, create_by, create_time, update_by, update_time from attendance_ubi_data
select id, comId, projectId, userId, userName, sub_dept_group, sub_dept_group_name, craft_type, craft_post,admitGuid,
eventGuid,inPhoto,outPhoto,comName,projectName,
inTime, outTime, deviceNo, is_del, state, remark, create_by, create_time, update_by, update_time from attendance_ubi_data
</sql>
<select id="selectAttendanceUbiDataList" parameterType="AttendanceUbiData" resultMap="AttendanceUbiDataResult">
<sql id="selectAttendanceUbiDataAllVo">
select id, comId, projectId, userId, userName, sub_dept_group, sub_dept_group_name, craft_type, craft_post,admitGuid,
eventGuid,inPhoto,outPhoto,inData,outData,comName,projectName,
inTime, outTime, deviceNo, is_del, state, remark, create_by, create_time, update_by, update_time from attendance_ubi_data
</sql> <select id="selectAttendanceUbiDataList" parameterType="AttendanceUbiData" resultMap="AttendanceUbiDataResult">
<include refid="selectAttendanceUbiDataVo"/>
<where>
<if test="comId != null "> and comId = #{comId}</if>
@ -56,6 +62,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="state != null "> and state = #{state}</if>
</where>
</select>
<select id="queryAttendaceInfo" parameterType="AttendanceUbiData" resultMap="AttendanceUbiDataResult">
<include refid="selectAttendanceUbiDataVo"/>
<where>
<if test="comId != null "> and comId = #{comId}</if>
<if test="projectId != null "> and projectId = #{projectId}</if>
<if test="userId != null "> and userId = #{userId}</if>
<if test="admitGuid != null and admitGuid != ''"> and admitGuid = #{admitGuid}</if>
<if test="userName != null and userName != ''"> and userName like concat('%', #{userName}, '%')</if>
<if test="inTime != null "> and date(inTime) = date(#{inTime})</if>
<if test="outTime != null "> and date(outTime) = date(#{outTime})</if>
<if test="deviceNo != null and deviceNo != ''"> and deviceNo = #{deviceNo}</if>
</where>
</select>
<select id="selectAttendanceUbiDataById" parameterType="Long" resultMap="AttendanceUbiDataResult">
<include refid="selectAttendanceUbiDataVo"/>
@ -79,6 +99,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="outData != null">outData,</if>
<if test="deviceNo != null">deviceNo,</if>
<if test="isDel != null">is_del,</if>
<if test="comName != null">comName,</if>
<if test="projectName != null">projectName,</if>
<if test="admitGuid != null">admitGuid,</if>
<if test="eventGuid != null">eventGuid,</if>
<if test="inPhoto != null">inPhoto,</if>
<if test="outPhoto != null">outPhoto,</if>
@ -104,6 +127,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="outData != null">#{outData},</if>
<if test="deviceNo != null">#{deviceNo},</if>
<if test="isDel != null">#{isDel},</if>
<if test="comName != null">#{comName},</if>
<if test="projectName != null">#{projectName},</if>
<if test="admitGuid != null">#{admitGuid},</if>
<if test="eventGuid != null">#{eventGuid},</if>
<if test="inPhoto != null">#{inPhoto},</if>
<if test="outPhoto != null">#{outPhoto},</if>
@ -133,9 +159,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="outData != null">outData = #{outData},</if>
<if test="deviceNo != null">deviceNo = #{deviceNo},</if>
<if test="isDel != null">is_del = #{isDel},</if>
<if test="eventGuid != null">is_del = #{eventGuid},</if>
<if test="inPhoto != null">is_del = #{inPhoto},</if>
<if test="outPhoto != null">is_del = #{outPhoto},</if>
<if test="comName != null">comName = #{comName},</if>
<if test="projectName != null">projectName = #{projectName},</if>
<if test="admitGuid != null">admitGuid = #{admitGuid},</if>
<if test="eventGuid != null">eventGuid = #{eventGuid},</if>
<if test="inPhoto != null">inPhoto = #{inPhoto},</if>
<if test="outPhoto != null">outPhoto = #{outPhoto},</if>
<if test="state != null">state = #{state},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="createBy != null">create_by = #{createBy},</if>

View File

@ -24,7 +24,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="useStatus" column="use_status" />
<result property="subStep" column="sub_step" />
<result property="illnessStatus" column="illness_status" />
<result property="admitGuid" column="admitGuid"/>
<result property="supIllnessStatus" column="sup_illness_status" />
<result property="isDel" column="is_del" />
<result property="createBy" column="create_by" />
@ -84,6 +84,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="eduFilePath != null and eduFilePath != ''"> and psu.edu_file_path = #{eduFilePath}</if>
<if test="eduSignPath != null and eduSignPath != ''"> and psu.edu_sign_path = #{eduSignPath}</if>
<if test="eduDate != null "> and psu.edu_date = #{eduDate}</if>
<if test="admitGuid!=null and admitGuid!=''">and su.admitGuid=#{admitGuid}</if>
<if test="approveStatus != null "> and psu.approve_status = #{approveStatus}</if>
<if test="useStatus != null and useStatus != ''"> and psu.use_status = #{useStatus}</if>
<if test="subStep != null "> and psu.sub_step = #{subStep}</if>

View File

@ -1,17 +1,29 @@
package com.yanzhu.manage.controller;
import com.alibaba.fastjson2.JSONObject;
import com.yanzhu.common.core.utils.DateUtils;
import com.yanzhu.common.core.web.domain.AjaxResult;
import com.yanzhu.manage.domain.AttendanceUbiData;
import com.yanzhu.manage.domain.ProProjectInfoSubdeptsUsers;
import com.yanzhu.manage.service.IAttendanceUbiDataService;
import com.yanzhu.manage.service.IProProjectInfoSubdeptsUsersService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.Date;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping("/uni/callback")
public class UniCallBackController {
@Autowired
private IAttendanceUbiDataService attendanceUbiDataService;
@Autowired
private IProProjectInfoSubdeptsUsersService proProjectInfoSubdeptsUsersService;
/**
*
* @param jo
@ -29,9 +41,80 @@ public class UniCallBackController {
String deviceNo=json.getString("deviceNo");
String filePath=json.getString("filePath");
Date showTime=new Date(json.getLong("showTime"));
AttendanceUbiData where=new AttendanceUbiData();
where.setAdmitGuid(admitGuid);
where.setInTime(showTime);
List<AttendanceUbiData> list= attendanceUbiDataService.queryAttendaceInfo(where);
if(list.size()==0){
//增加操作
ProProjectInfoSubdeptsUsers userWhere=new ProProjectInfoSubdeptsUsers();
userWhere.setProjectId(projectId);
userWhere.setAdmitGuid(admitGuid);
List<ProProjectInfoSubdeptsUsers> userList=proProjectInfoSubdeptsUsersService.selectProProjectInfoSubdeptsUsersList(userWhere);
if(userList.size()>0){
ProProjectInfoSubdeptsUsers proUser=userList.get(0);
if(proUser!=null && proUser.getUser()!=null){
AttendanceUbiData addData=new AttendanceUbiData();
addData.setAdmitGuid(admitGuid);
addData.setComName(proUser.getActiveComName());
addData.setProjectName(proUser.getProjectName());
addData.setComId(proUser.getComId());
addData.setUserId(proUser.getUserId());
addData.setProjectId(projectId);
addData.setEventGuid(eventGuid);
addData.setUserName(proUser.getUser().getUserName());
addData.setSubDeptGroup(proUser.getSubDeptGroup());
addData.setSubDeptGroupName(proUser.getSubDeptGroupName());
addData.setCraftPost(proUser.getCraftPost());
addData.setCraftType(proUser.getCraftType());
addData.setInTime(showTime);
addData.setInData(data);
addData.setInPhoto(filePath);
addData.setDeviceNo(deviceNo);
attendanceUbiDataService.insertAttendanceUbiData(addData);
return AjaxResult.success("增加成功");
}
}
}else{
//修改操作
AttendanceUbiData upData= list.get(0);
if(upData.getEventGuid().equals(eventGuid)){
return AjaxResult.error("此记录已入库!");
}
Date dt1=upData.getInTime();
Date dt2=upData.getOutTime();
if(dt1!=null && dt2!=null){
if(showTime.getTime()<dt1.getTime()){
upData.setInPhoto(filePath);
upData.setInData(data);
upData.setInTime(showTime);
}
if(showTime.getTime()>dt2.getTime()){
upData.setOutData(data);
upData.setOutPhoto(filePath);
upData.setOutTime(showTime);
}
}else{
if(showTime.getTime()<dt1.getTime()){
upData.setOutTime(upData.getInTime());
upData.setOutData(upData.getInData());
upData.setOutPhoto(upData.getInPhoto());
upData.setInPhoto(filePath);
upData.setInData(data);
upData.setInTime(showTime);
}
if(showTime.getTime()>dt1.getTime()){
upData.setOutData(data);
upData.setOutPhoto(filePath);
upData.setOutTime(showTime);
}
}
attendanceUbiDataService.updateAttendanceUbiData(upData);
return AjaxResult.success("更新成功");
}
}
return AjaxResult.success("--ok--");
return AjaxResult.error("同步失败");
}
/**

View File

@ -27,6 +27,7 @@ public interface IAttendanceUbiDataService
*/
public List<AttendanceUbiData> selectAttendanceUbiDataList(AttendanceUbiData attendanceUbiData);
public List<AttendanceUbiData> queryAttendaceInfo(AttendanceUbiData where);
/**
*
*

View File

@ -46,6 +46,11 @@ public class AttendanceUbiDataServiceImpl implements IAttendanceUbiDataService
return attendanceUbiDataMapper.selectAttendanceUbiDataList(attendanceUbiData);
}
@Override
public List<AttendanceUbiData> queryAttendaceInfo(AttendanceUbiData where) {
return attendanceUbiDataMapper.queryAttendaceInfo(where);
}
/**
*
*

View File

@ -2,100 +2,44 @@
<div class="app-container">
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="公司ID" prop="comId">
<el-input
v-model="queryParams.comId"
placeholder="请输入公司ID"
clearable
@keyup.enter="handleQuery"
/>
<el-input v-model="queryParams.comId" placeholder="请输入公司ID" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="项目ID" prop="projectId">
<el-input
v-model="queryParams.projectId"
placeholder="请输入项目ID"
clearable
@keyup.enter="handleQuery"
/>
<el-input v-model="queryParams.projectId" placeholder="请输入项目ID" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="用户ID" prop="userId">
<el-input
v-model="queryParams.userId"
placeholder="请输入用户ID"
clearable
@keyup.enter="handleQuery"
/>
<el-input v-model="queryParams.userId" placeholder="请输入用户ID" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="${comment}" prop="userName">
<el-input
v-model="queryParams.userName"
placeholder="请输入${comment}"
clearable
@keyup.enter="handleQuery"
/>
<el-input v-model="queryParams.userName" placeholder="请输入${comment}" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="班组编号(外键)" prop="subDeptGroup">
<el-input
v-model="queryParams.subDeptGroup"
placeholder="请输入班组编号(外键)"
clearable
@keyup.enter="handleQuery"
/>
<el-input v-model="queryParams.subDeptGroup" placeholder="请输入班组编号(外键)" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="班组名称" prop="subDeptGroupName">
<el-input
v-model="queryParams.subDeptGroupName"
placeholder="请输入班组名称"
clearable
@keyup.enter="handleQuery"
/>
<el-input v-model="queryParams.subDeptGroupName" placeholder="请输入班组名称" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="工种岗位" prop="craftPost">
<el-input
v-model="queryParams.craftPost"
placeholder="请输入工种岗位"
clearable
@keyup.enter="handleQuery"
/>
<el-input v-model="queryParams.craftPost" placeholder="请输入工种岗位" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="进场时间" prop="inTime">
<el-date-picker clearable
v-model="queryParams.inTime"
type="date"
value-format="YYYY-MM-DD"
<el-date-picker clearable v-model="queryParams.inTime" type="date" value-format="YYYY-MM-DD"
placeholder="请选择进场时间">
</el-date-picker>
</el-form-item>
<el-form-item label="离场时间" prop="outTime">
<el-date-picker clearable
v-model="queryParams.outTime"
type="date"
value-format="YYYY-MM-DD"
<el-date-picker clearable v-model="queryParams.outTime" type="date" value-format="YYYY-MM-DD"
placeholder="请选择离场时间">
</el-date-picker>
</el-form-item>
<el-form-item label="设备NO" prop="deviceNo">
<el-input
v-model="queryParams.deviceNo"
placeholder="请输入设备NO"
clearable
@keyup.enter="handleQuery"
/>
<el-input v-model="queryParams.deviceNo" placeholder="请输入设备NO" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="${comment}" prop="isDel">
<el-input
v-model="queryParams.isDel"
placeholder="请输入${comment}"
clearable
@keyup.enter="handleQuery"
/>
<el-input v-model="queryParams.isDel" placeholder="请输入${comment}" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="${comment}" prop="state">
<el-input
v-model="queryParams.state"
placeholder="请输入${comment}"
clearable
@keyup.enter="handleQuery"
/>
<el-input v-model="queryParams.state" placeholder="请输入${comment}" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="Search" @click="handleQuery"></el-button>
@ -105,42 +49,20 @@
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="Plus"
@click="handleAdd"
v-hasPermi="['manage:attendanceUbiData:add']"
>新增</el-button>
<el-button type="primary" plain icon="Plus" @click="handleAdd"
v-hasPermi="['manage:attendanceUbiData:add']">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="Edit"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['manage:attendanceUbiData:edit']"
>修改</el-button>
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate"
v-hasPermi="['manage:attendanceUbiData:edit']">修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="Delete"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['manage:attendanceUbiData:remove']"
>删除</el-button>
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete"
v-hasPermi="['manage:attendanceUbiData:remove']">删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="Download"
@click="handleExport"
v-hasPermi="['manage:attendanceUbiData:export']"
>导出</el-button>
<el-button type="warning" plain icon="Download" @click="handleExport"
v-hasPermi="['manage:attendanceUbiData:export']">导出</el-button>
</el-col>
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
@ -158,13 +80,13 @@
<el-table-column label="工种岗位" align="center" prop="craftPost" />
<el-table-column label="进场时间" align="center" prop="inTime" width="180">
<template #default="scope">
<span>{{ parseTime(scope.row.inTime, '{y}-{m}-{d}') }}</span>
<span>{{ parseTime(scope.row.inTime)}}</span>
</template>
</el-table-column>
<el-table-column label="进场数据" align="center" prop="inData" />
<el-table-column label="离场时间" align="center" prop="outTime" width="180">
<template #default="scope">
<span>{{ parseTime(scope.row.outTime, '{y}-{m}-{d}') }}</span>
<span>{{ parseTime(scope.row.outTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
</template>
</el-table-column>
<el-table-column label="离场数据" align="center" prop="outData" />
@ -174,19 +96,16 @@
<el-table-column label="${comment}" align="center" prop="remark" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template #default="scope">
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['manage:attendanceUbiData:edit']"></el-button>
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['manage:attendanceUbiData:remove']"></el-button>
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)"
v-hasPermi="['manage:attendanceUbiData:edit']">修改</el-button>
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)"
v-hasPermi="['manage:attendanceUbiData:remove']">删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
v-model:page="queryParams.pageNum"
v-model:limit="queryParams.pageSize"
@pagination="getList"
/>
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize"
@pagination="getList" />
<!-- 添加或修改考勤管理对话框 -->
<el-dialog :title="title" v-model="open" width="500px" append-to-body>
@ -213,19 +132,11 @@
<el-input v-model="form.craftPost" placeholder="请输入工种岗位" />
</el-form-item>
<el-form-item label="进场时间" prop="inTime">
<el-date-picker clearable
v-model="form.inTime"
type="date"
value-format="YYYY-MM-DD"
placeholder="请选择进场时间">
<el-date-picker clearable v-model="form.inTime" type="date" value-format="YYYY-MM-DD" placeholder="请选择进场时间">
</el-date-picker>
</el-form-item>
<el-form-item label="离场时间" prop="outTime">
<el-date-picker clearable
v-model="form.outTime"
type="date"
value-format="YYYY-MM-DD"
placeholder="请选择离场时间">
<el-date-picker clearable v-model="form.outTime" type="date" value-format="YYYY-MM-DD" placeholder="请选择离场时间">
</el-date-picker>
</el-form-item>
<el-form-item label="设备NO" prop="deviceNo">
@ -398,12 +309,12 @@ function submitForm() {
/** 删除按钮操作 */
function handleDelete(row) {
const _ids = row.id || ids.value;
proxy.$modal.confirm('是否确认删除考勤管理编号为"' + _ids + '"的数据项?').then(function() {
proxy.$modal.confirm('是否确认删除考勤管理编号为"' + _ids + '"的数据项?').then(function () {
return delAttendanceUbiData(_ids);
}).then(() => {
getList();
proxy.$modal.msgSuccess("删除成功");
}).catch(() => {});
}).catch(() => { });
}
/** 导出按钮操作 */