修改下发班组任务信息

This commit is contained in:
haozq 2025-12-01 16:00:11 +08:00
parent 36310b51aa
commit 3b927d885b
6 changed files with 177 additions and 21 deletions

View File

@ -46,4 +46,33 @@ public interface UrkSendService {
*/
void delDevByProId(String deviceCode, int proId,int supId,int teamId) throws Exception;
/**
* 获取考勤机当前人员数据
* @param deviceCode
* @throws Exception
*/
void getDevUserList(String deviceCode) throws Exception;
/**
* 删除考情机人员
* @param deviceCode
* @throws Exception
*/
void delDevUser(String deviceCode,List<String> delUserId) throws Exception;
/**
* 考勤机重启
* @param deviceCode
* @throws Exception
*/
void reloadDevice(String deviceCode) throws Exception;
/**
* 下发指定人员
* @param deviceCode
* @throws Exception
*/
void addUserList(String deviceCode,List<String> addUserId) throws Exception;
}

View File

@ -200,7 +200,120 @@ public class UrkSendServiceImpl implements UrkSendService {
}
}
@Override
public void getDevUserList(String deviceCode) throws Exception {
try{
String createTime= DateUtils.getTime();
BmwKqCmdTaskVo taskVo=new BmwKqCmdTaskVo();
taskVo.setCreateTime(createTime);
taskVo.setDeviceCode(deviceCode);
taskVo.setCmdCode("GET_USER_INFO");
//等待执行
taskVo.setTransStatus(TaskStatusEnum.WAIT.ordinal());
taskVo.setCmdParam("{}");
//添加任务
mapper.insertCmdTask(taskVo);
//添加历史记录
mapper.insertCmdTaskHistory(taskVo);
}catch (Exception e){
log.error(e.toString());
throw new Exception("获取人员信息失败");
}
}
@Override
public void delDevUser(String deviceCode, List<String> delUserId) throws Exception {
try{
String createTime= DateUtils.getTime();
BmwKqCmdTaskVo taskVo=new BmwKqCmdTaskVo();
taskVo.setDeviceCode(deviceCode);
taskVo.setCreateTime(createTime);
taskVo.setCmdCode("DELETE_USER");
//等待执行
taskVo.setTransStatus(TaskStatusEnum.WAIT.ordinal());
String json= JSON.toJSONString(delUserId);
taskVo.setCmdParam(json);
//添加任务
mapper.insertCmdTask(taskVo);
//添加历史记录
mapper.insertCmdTaskHistory(taskVo);
//添加人员
mapper.insertCmdTaskUser(delUserId,taskVo);
}catch (Exception e){
log.error(e.toString());
throw new Exception("删除人员下发失败");
}
}
@Override
public void reloadDevice(String deviceCode) throws Exception {
try{
String createTime= DateUtils.getTime();
BmwKqCmdTaskVo taskVo=new BmwKqCmdTaskVo();
taskVo.setDeviceCode(deviceCode);
taskVo.setCreateTime(createTime);
taskVo.setCmdCode("RESET_FK");
//等待执行
taskVo.setTransStatus(TaskStatusEnum.WAIT.ordinal());
taskVo.setCmdParam("[]");
//添加任务
mapper.insertCmdTask(taskVo);
//添加历史记录
mapper.insertCmdTaskHistory(taskVo);
}catch (Exception e){
log.error(e.toString());
throw new Exception("重启添加失败");
}
}
@Override
public void addUserList(String deviceCode, List<String> delUserId) throws Exception {
/**
* 下发考情机人员
*/
try{
int size=SET_USER_INFO_SIZE-1;
String createTime= DateUtils.getTime();
BmwKqCmdTaskVo taskVo=new BmwKqCmdTaskVo();
taskVo.setDeviceCode(deviceCode);
taskVo.setCreateTime(createTime);
taskVo.setCmdCode("SET_USER_INFO");
//等待执行
taskVo.setTransStatus(TaskStatusEnum.WAIT.ordinal());
List<String> list=new ArrayList<>();
for (int i = 0; i <delUserId.size() ; i++) {
list.add(delUserId.get(i));
if(i%size==0){
String json= JSON.toJSONString(list);
taskVo.setCmdParam(json);
//添加任务
mapper.insertCmdTask(taskVo);
//添加历史记录
mapper.insertCmdTaskHistory(taskVo);
//添加人员
mapper.insertCmdTaskUser(list,taskVo);
list.clear();
}
}
//如果还有数据则在最下面层级
if(!list.isEmpty()){
String json= JSON.toJSONString(list);
taskVo.setCmdParam(json);
//添加任务
mapper.insertCmdTask(taskVo);
//添加历史记录
mapper.insertCmdTaskHistory(taskVo);
//添加人员
mapper.insertCmdTaskUser(list,taskVo);
}
}catch (Exception e){
log.error(e.toString());
throw new Exception("重启添加失败");
}
}
public void sendUserToDeviceList(List<Integer> userId,String key,int pageNum, int type,BmwKqCmdTaskVo taskVo){

View File

@ -59,6 +59,7 @@ public class ResultHandle {
}
}else{
boolean isClose=true;
//设备携带数据返回的
// 获得注册人员列表
switch (taskVo.getCmdCode()) {
@ -83,7 +84,7 @@ public class ResultHandle {
break;
case "GET_USER_INFO":
// 获取考勤机用户信息
service.insertUserInfo(taskVo, req, resp);
isClose=service.insertUserInfo(taskVo, req, resp);
break;
case "DELETE_USER":
// 删除人员的反馈
@ -93,23 +94,14 @@ public class ResultHandle {
taskVo.setMsg("未知命令");
break;
}
//更新 再进行删除任务记录
taskVo.setUpdateTime(DateUtils.getTime());
taskVo.setTransStatus(TaskStatusEnum.COMPLETED.ordinal());
service.updateCmdTaskStatus(taskVo);
if(isClose){
//更新 再进行删除任务记录
taskVo.setUpdateTime(DateUtils.getTime());
taskVo.setTransStatus(TaskStatusEnum.COMPLETED.ordinal());
service.updateCmdTaskStatus(taskVo);
}
}
}

View File

@ -71,4 +71,10 @@ public interface ResultMapper {
* @param list
*/
void addDeviceUserInfo(@Param("list")List<DevUserVo> list);
/**
* 删除全部人员数据
* @param deviceCode
*/
void delAllDeviceUserId(@Param("deviceCode") String deviceCode);
}

View File

@ -163,8 +163,9 @@ public class ResultService {
* @param req
* @param resp
*/
public void insertUserInfo(KqCmdTaskVo taskVo, HttpServletRequest req, HttpServletResponse resp) {
public boolean insertUserInfo(KqCmdTaskVo taskVo, HttpServletRequest req, HttpServletResponse resp) {
try {
String packageId="0";
// 解析request输入流
String jsonStr = getRequestBody(req);
log.info("获取设备用户信息:{}", jsonStr);
@ -173,6 +174,10 @@ public class ResultService {
JSONObject json=JSON.parseObject(jsonStr);
List<DevUserVo> list=new ArrayList<>();
JSONArray users=json.getJSONArray("users");
packageId=json.getString("packageId");
if("1".equals(packageId)){
mapper.delAllDeviceUserId(taskVo.getDeviceCode());
}
for (int i=0;i<users.size();i++) {
String deviceCode=taskVo.getDeviceCode();
String userId=users.getJSONObject(i).getString("userId");
@ -192,13 +197,21 @@ public class ResultService {
}
mapper.addDeviceUserInfo(list);
}
resp.addHeader(Constant.DEVICE_HEADER_RESPONSE_CODE, Constant.OK);
resp.addHeader(Constant.DEVICE_HEADER_TRANS_ID, taskVo.getId());
resp.getWriter().write("");
if("0".equals(packageId)){
resp.addHeader(Constant.DEVICE_HEADER_RESPONSE_CODE, Constant.OK);
resp.addHeader(Constant.DEVICE_HEADER_TRANS_ID, taskVo.getId());
resp.getWriter().write("");
return true;
}else{
resp.addHeader(Constant.DEVICE_HEADER_RESPONSE_CODE, Constant.OK);
resp.getWriter().write("");
}
} catch (Exception e) {
log.error(e.getMessage(), e);
}
return false;
}

View File

@ -56,6 +56,9 @@
#{userId}
</foreach>
</delete>
<delete id="delAllDeviceUserId">
delete from kq_user_list where dev_code=#{deviceCode}
</delete>
<select id="getTaskVoById" resultType="com.bonus.urk.vo.KqCmdTaskVo">
select id,cmd_code cmdCode,device_code deviceCode