修改bug

This commit is contained in:
haozq 2025-08-18 17:17:46 +08:00
parent e963e526a5
commit b1c52d5722
6 changed files with 121 additions and 2 deletions

View File

@ -2,9 +2,12 @@ package com.bonus.system.api;
import com.bonus.common.core.constant.SecurityConstants;
import com.bonus.common.core.constant.ServiceNameConstants;
import com.bonus.system.api.domain.FileVo;
import com.bonus.system.api.domain.SystemParamsVo;
import com.bonus.system.api.factory.RemoteUrkUtilsFallbackFactory;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestParam;
@ -58,5 +61,12 @@ public interface RemoteUrkUtilsService {
public void delUserByDevice(@RequestParam(value = "userId") int userId, @RequestParam(value = "proId")int proId,
@RequestHeader(SecurityConstants.FROM_SOURCE) String source);
/**
* 批量人员出厂
* @param paramsVo
* @param source
*/
@PostMapping(value = "/sedTask/delUserByDeviceList")
public void delUserByDeviceList(@RequestBody SystemParamsVo paramsVo, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
}

View File

@ -0,0 +1,16 @@
package com.bonus.system.api.domain;
import lombok.Data;
import java.util.List;
/**
* @author 黑子
*/
@Data
public class SystemParamsVo {
private List<Integer> userId;
private List<Integer> proId;
}

View File

@ -1,10 +1,12 @@
package com.bonus.urk.controller;
import com.bonus.system.api.domain.SystemParamsVo;
import com.bonus.urk.service.SendUserService;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@ -79,7 +81,15 @@ public class SendUserController {
@PostMapping("delUserByDeviceList")
public void delUserByDeviceList(@RequestBody SystemParamsVo vo) {
try {
service.delUserByDeviceList(vo.getUserId(),vo.getProId());
}
catch (Exception e) {
log.error(e.toString(),e);
}
}

View File

@ -43,6 +43,8 @@ public interface SendUserMapper {
void insertCmdTaskUser(@Param("list") List<String> list,@Param("param") KqCmdTaskVo taskVo);
void insertCmdTaskUserByInteger(@Param("list") List<Integer> list,@Param("param") KqCmdTaskVo taskVo);
/**
* 批量插入 设备任务记录
* @param list

View File

@ -1,9 +1,11 @@
package com.bonus.urk.service;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.nacos.shaded.com.google.common.collect.Maps;
import com.bonus.common.core.utils.DateUtils;
import com.bonus.common.core.utils.StringUtils;
import com.bonus.urk.config.TaskStatusEnum;
import com.bonus.urk.mapper.SendUserMapper;
import com.bonus.urk.vo.DeviceVo;
@ -159,6 +161,9 @@ public class SendUserService {
}
}
/**
* 人员 出场 --删除人员
*
@ -172,8 +177,9 @@ public class SendUserService {
KqCmdTaskVo taskVo=new KqCmdTaskVo();
userList.add(userId);
String json= JSON.toJSONString(userList);
taskVo.setProId(String.valueOf(proId));
taskVo.setCmdParam(json);
taskVo.setProId(String.valueOf(proId));
taskVo.setCreateTime(createTime);
taskVo.setCmdCode("DELETE_USER");
//等待执行
@ -185,6 +191,72 @@ public class SendUserService {
}
}
public void delUserByDeviceList(List<Integer> userId ,List<Integer> proId) {
try{
Map<Integer,List<Integer>> map=Maps.newHashMap();
//按照工程给人员分组
for (int i = 0; i < proId.size(); i++) {
List<Integer> list=map.get(proId.get(i));
if(StringUtils.isEmpty(list)){
list=new ArrayList<>();
list.add(userId.get(i));
map.put(proId.get(i),list);
}else{
list.add(userId.get(i));
map.replace(proId.get(i),list);
}
}
//循环
map.forEach((key, value) -> {
String createTime= DateUtils.getTime();
KqCmdTaskVo taskVo=new KqCmdTaskVo();
String json= JSON.toJSONString(value);
taskVo.setProId(String.valueOf(key));
taskVo.setCmdParam(json);
taskVo.setCreateTime(createTime);
taskVo.setCmdCode("DELETE_USER");
//等待执行
taskVo.setTransStatus(TaskStatusEnum.WAIT.ordinal());
//分页查询
sendUserToDeviceList(value,key,1,taskVo);
});
}catch (Exception e){
log.error(e.toString(),e);
}
}
public void sendUserToDeviceList(List<Integer> userId,int proId,int pageNum, KqCmdTaskVo taskVo){
Integer isSh=mapper.getProType(proId);
List<DeviceVo> list;
PageHelper.startPage(pageNum, PAGE_SIZE);
//是上海的工程
if(isSh!=null && isSh==1){
list=mapper.getDeviceVoByProBySh();
}else{
list=mapper.getDeviceVoByProId(proId);
}
PageInfo<DeviceVo> pageInfo =new PageInfo<DeviceVo>(list);
//分页查询+
if (!list.isEmpty()){
for (DeviceVo vo:list){
taskVo.setDeviceCode(vo.getDevCode());
String json= JSON.toJSONString(userId);
taskVo.setCmdParam(json);
// 下发
mapper.insertCmdTask(taskVo);
mapper.insertCmdTaskHistory(taskVo);
//添加人员
mapper.insertCmdTaskUserByInteger(userId,taskVo);
}
int pageSize=pageInfo.getPageNum();
int pageTotal=pageInfo.getPages();
if(pageSize<pageTotal){
pageNum++;
sendUserToDeviceList(userId,proId,pageNum,taskVo);
}
}
}
/**
* 考勤机解绑工程
* @param deviceCode

View File

@ -39,6 +39,15 @@
)
</foreach>
</insert>
<insert id="insertCmdTaskUserByInteger">
insert into kq_task_user_list(
task_id,user_id )values
<foreach collection="list" item="item" separator=",">(
#{param.id}, #{item}
)
</foreach>
</insert>
<!--任务批量插入-->
<insert id="insertCmdTaskByDevice" keyProperty="id" useGeneratedKeys="true">
insert into kq_cmd_task (