package com.ruoyi.web.controller.station;
|
|
import java.util.ArrayList;
|
import java.util.Collections;
|
import java.util.List;
|
|
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONObject;
|
import com.ruoyi.common.constant.UrlConstant;
|
import com.ruoyi.common.utils.DateUtils;
|
import com.ruoyi.common.utils.IdUtils;
|
import com.ruoyi.common.utils.StringUtils;
|
import com.ruoyi.station.domain.*;
|
import com.ruoyi.station.model.TmpDataModel;
|
import com.ruoyi.station.model.WorkUserModel;
|
import com.ruoyi.station.service.*;
|
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.http.HttpEntity;
|
import org.springframework.http.HttpHeaders;
|
import org.springframework.http.MediaType;
|
import org.springframework.http.ResponseEntity;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.ui.ModelMap;
|
import org.springframework.util.LinkedMultiValueMap;
|
import org.springframework.util.MultiValueMap;
|
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
import com.ruoyi.common.annotation.Log;
|
import com.ruoyi.common.enums.BusinessType;
|
import com.ruoyi.common.core.controller.BaseController;
|
import com.ruoyi.common.core.domain.AjaxResult;
|
import com.ruoyi.common.utils.poi.ExcelUtil;
|
import com.ruoyi.common.core.page.TableDataInfo;
|
import org.springframework.web.client.RestTemplate;
|
|
/**
|
* 组区域关联Controller
|
*
|
* @author ruoyi
|
* @date 2020-08-27
|
*/
|
@Controller
|
@RequestMapping("/station/area")
|
public class MjTeamAreaController extends BaseController
|
{
|
private String prefix = "station/area";
|
|
@Autowired
|
private IMjTeamAreaService mjTeamAreaService;
|
@Autowired
|
private IMjAreaManagementService iMjAreaManagementService;
|
@Autowired
|
private IMjTeamService iMjTeamService;
|
@Autowired
|
private IMjFingerprintReadHeadService iMjFingerprintReadHeadService;
|
@Autowired
|
private IMjHeadsUsersService iMjHeadsUsersService;
|
@Autowired
|
private IMjTeamMemberService iMjTeamMemberService;
|
@Autowired
|
private IMjWorkUserPushService mjWorkUserPushService;
|
@Autowired
|
private IMjWorkUserService workUserService;
|
@Autowired
|
private IMjFingerprintService fingerprintService;
|
|
@RequiresPermissions("station:area:view")
|
@GetMapping()
|
public String area()
|
{
|
return prefix + "/area";
|
}
|
|
/**
|
* 查询组区域关联列表
|
*/
|
@RequiresPermissions("station:area:list")
|
@PostMapping("/list")
|
@ResponseBody
|
public TableDataInfo list(MjTeamArea mjTeamArea)
|
{
|
startPage();
|
List<MjTeamArea> list = mjTeamAreaService.selectMjTeamAreaList(mjTeamArea);
|
return getDataTable(list);
|
}
|
|
/**
|
* 导出组区域关联列表
|
*/
|
@RequiresPermissions("station:area:export")
|
@Log(title = "组区域关联", businessType = BusinessType.EXPORT)
|
@PostMapping("/export")
|
@ResponseBody
|
public AjaxResult export(MjTeamArea mjTeamArea)
|
{
|
List<MjTeamArea> list = mjTeamAreaService.selectMjTeamAreaList(mjTeamArea);
|
ExcelUtil<MjTeamArea> util = new ExcelUtil<MjTeamArea>(MjTeamArea.class);
|
return util.exportExcel(list, "area");
|
}
|
|
/**
|
* 新增组区域关联
|
*/
|
@GetMapping("/add")
|
public String add()
|
{
|
return prefix + "/add";
|
}
|
|
/**
|
* 新增保存组区域关联
|
*/
|
@RequiresPermissions("station:area:add")
|
@Log(title = "组区域关联", businessType = BusinessType.INSERT)
|
@PostMapping("/add")
|
@ResponseBody
|
public synchronized AjaxResult addSave(MjTeamArea mjTeamArea)
|
{
|
List<MjTeamArea> mjTeamAreas = mjTeamAreaService.selectMjTeamAreaList(mjTeamArea);
|
if(mjTeamAreas.size()>0){
|
// if(mjTeamAreas.get(0).getStatus()==2){
|
// MjTeamArea m2 = mjTeamAreas.get(0);
|
// m2.setStatus(0);
|
// return toAjax(mjTeamAreaService.updateMjTeamArea(m2));
|
// }
|
return error("不可重复添加");
|
}
|
mjTeamArea.setUpdateTime(DateUtils.getNowDate());
|
mjTeamArea.setId(IdUtils.fastSimpleUUID());
|
MjAreaManagement mjAreaManagement = iMjAreaManagementService.selectMjAreaManagementById(mjTeamArea.getAreaId());
|
mjTeamArea.setAreaName(mjAreaManagement.getAreaName());
|
|
updateNum(mjTeamArea.getTeamId());
|
|
MjTeam team = iMjTeamService.selectMjTeamById(mjTeamArea.getTeamId());
|
MjTeamMember teamMember = new MjTeamMember();
|
teamMember.setTeamId(team.getId());
|
teamMember.setStatus(0);
|
teamMember.setDelFlag(0);
|
List<MjTeamMember> mjTeamMembers = iMjTeamMemberService.selectMjTeamMemberList(teamMember);
|
for(MjTeamMember mtm:mjTeamMembers) {
|
MjFingerprintReadHead fingerprintReadHead = new MjFingerprintReadHead();
|
fingerprintReadHead.setAreaId(mjTeamArea.getAreaId());
|
List<MjFingerprintReadHead> hs = iMjFingerprintReadHeadService.selectMjFingerprintReadHeadList(fingerprintReadHead);
|
for (MjFingerprintReadHead rh : hs) {
|
MjHeadsUsers mjHeadsUsers = new MjHeadsUsers();
|
mjHeadsUsers.setUserId(Long.valueOf(mtm.getUserId()));
|
mjHeadsUsers.setAuthorizeName(team.getTeamName());
|
mjHeadsUsers.setAuthorizeResult(0);//未授权
|
mjHeadsUsers.setAuthorizeType(0);//组授权
|
mjHeadsUsers.setAuthorizeStatus(0);//增加授权
|
mjHeadsUsers.setHeadId(rh.getId());//读头id
|
mjHeadsUsers.setHeadType(rh.getNewOldStatus());
|
mjHeadsUsers.setMainUser(1);
|
mjHeadsUsers.setOrderId(team.getId());
|
iMjHeadsUsersService.insertMjHeadsUsers(mjHeadsUsers);
|
if(rh.getNewOldStatus()==1){
|
addPush(mjHeadsUsers);
|
}
|
}
|
}
|
return toAjax(mjTeamAreaService.insertMjTeamArea(mjTeamArea));
|
}
|
|
//更新组人数
|
public void updateNum(String teamId){
|
// MjTeamArea mjTeamMember2 = new MjTeamArea();
|
// mjTeamMember2.setTeamId(teamId);
|
// List<MjTeamArea> mjTeamMembers2 = mjTeamAreaService.selectMjTeamAreaList(mjTeamMember2);
|
MjTeam mjTeam = iMjTeamService.selectMjTeamById(teamId);
|
mjTeam.setAreaNumber(mjTeam.getAreaNumber()+1);
|
mjTeam.setEquipmentUpdateStatus(1);
|
iMjTeamService.updateMjTeam(mjTeam);
|
}
|
|
/**
|
* 修改组区域关联
|
*/
|
@GetMapping("/edit/{id}")
|
public String edit(@PathVariable("id") String id, ModelMap mmap)
|
{
|
MjTeamArea mjTeamArea = mjTeamAreaService.selectMjTeamAreaById(id);
|
mmap.put("mjTeamArea", mjTeamArea);
|
return prefix + "/edit";
|
}
|
|
/**
|
* 修改保存组区域关联
|
*/
|
@RequiresPermissions("station:area:edit")
|
@Log(title = "组区域关联", businessType = BusinessType.UPDATE)
|
@PostMapping("/edit")
|
@ResponseBody
|
public AjaxResult editSave(MjTeamArea mjTeamArea)
|
{
|
MjAreaManagement mjAreaManagement = iMjAreaManagementService.selectMjAreaManagementById(mjTeamArea.getAreaId());
|
mjTeamArea.setAreaName(mjAreaManagement.getAreaName());
|
return toAjax(mjTeamAreaService.updateMjTeamArea(mjTeamArea));
|
}
|
|
/**
|
* 删除组区域关联
|
*/
|
@RequiresPermissions("station:area:remove")
|
@Log(title = "组区域关联", businessType = BusinessType.DELETE)
|
@PostMapping( "/remove")
|
@ResponseBody
|
public AjaxResult remove(String ids)
|
{
|
|
String[] split = ids.split(",");
|
MjTeamArea mjTeamArea = mjTeamAreaService.selectMjTeamAreaById(split[0]);
|
MjTeam mjTeam = iMjTeamService.selectMjTeamById(mjTeamArea.getTeamId());
|
mjTeam.setAreaNumber(mjTeam.getAreaNumber()-split.length);
|
iMjTeamService.updateMjTeam(mjTeam);
|
//updateNum(mjTeamMember.getTeamId());
|
int i = mjTeamAreaService.deleteMjTeamAreaByIds(ids);
|
return toAjax(i);
|
}
|
|
/**
|
* 根据teamId获取组区域
|
* @param teamId
|
* @return
|
*/
|
@PostMapping( "/findByTeamId")
|
@ResponseBody
|
public Object findByTeamId(String teamId)
|
{
|
MjTeamArea mjTeamArea = new MjTeamArea();
|
mjTeamArea.setTeamId(teamId);
|
List<MjTeamArea> mjTeamMembers = mjTeamAreaService.selectMjTeamAreaList(mjTeamArea);
|
return mjTeamMembers;
|
}
|
|
/**
|
* 批量添加区域
|
* @param teamId
|
* @param arrMember 逗号分割
|
* @return
|
*/
|
@PostMapping( "/addList")
|
@ResponseBody
|
public Object addList(String teamId,String arrMember)
|
{
|
String[] split = arrMember.split(",");
|
for(String str : split){
|
MjTeamArea mjTeamArea = new MjTeamArea();
|
mjTeamArea.setTeamId(teamId);
|
mjTeamArea.setAreaId(str);
|
mjTeamArea.setStatus(0);
|
mjTeamAreaService.insertMjTeamArea(mjTeamArea);
|
}
|
return toAjax(true);
|
}
|
|
/**
|
* 区域删除,把状态更新为待删除
|
* @param id
|
* @return
|
*/
|
@PostMapping( "/updateStatus")
|
@ResponseBody
|
public Object updateStatus(String id)
|
{
|
MjTeamArea mjTeamArea = mjTeamAreaService.selectMjTeamAreaById(id);
|
if(mjTeamArea==null){
|
return toAjax(false);
|
}
|
// mjTeamArea.setStatus(2);
|
// mjTeamArea.setDelFlag(1);
|
// mjTeamAreaService.updateMjTeamArea(mjTeamArea);
|
|
MjTeam mjTeam = iMjTeamService.selectMjTeamById(mjTeamArea.getTeamId());
|
mjTeam.setAreaNumber(mjTeam.getAreaNumber()-1);
|
mjTeam.setEquipmentUpdateStatus(1);
|
iMjTeamService.updateMjTeam(mjTeam);
|
|
mjTeamAreaService.deleteMjTeamAreaById(id);
|
|
MjFingerprintReadHead fingerprintReadHead = new MjFingerprintReadHead();
|
fingerprintReadHead.setAreaId(mjTeamArea.getAreaId());
|
List<MjFingerprintReadHead> hs = iMjFingerprintReadHeadService.selectMjFingerprintReadHeadList(fingerprintReadHead);
|
for(MjFingerprintReadHead rh:hs) {
|
MjHeadsUsers hu = new MjHeadsUsers();
|
hu.setAuthorizeType(0);//组授权
|
hu.setHeadId(rh.getId());//读头id
|
List<MjHeadsUsers> mjHeadsUsers1 = iMjHeadsUsersService.selectMjHeadsUsersList(hu);
|
for(MjHeadsUsers mhu : mjHeadsUsers1){
|
iMjHeadsUsersService.deleteMjHeadsUsersById(mhu.getId());
|
quXiao(mhu);
|
}
|
}
|
return toAjax(true);
|
}
|
|
@PostMapping("/add2")
|
@ResponseBody
|
public AjaxResult addSave2(MjTeamArea mjTeamArea)
|
{
|
|
MjAreaManagement areaManagement = new MjAreaManagement();
|
areaManagement.setAreaParentId(mjTeamArea.getAreaId());
|
List<MjAreaManagement> mjAreaManagements = iMjAreaManagementService.selectMjAreaManagementList(areaManagement);
|
for(MjAreaManagement m:mjAreaManagements){
|
mjTeamArea.setAreaId(m.getId());
|
addSave(mjTeamArea);
|
}
|
addSave(mjTeamArea);
|
return toAjax(true);
|
}
|
|
// @PostMapping("/add2")
|
// @ResponseBody
|
// public AjaxResult addSave2(MjTeamArea mjTeamArea)
|
// {
|
//
|
// MjAreaManagement areaManagement = new MjAreaManagement();
|
// areaManagement.setAreaParentId(mjTeamArea.getAreaId());
|
// List<MjAreaManagement> mjAreaManagements = iMjAreaManagementService.selectMjAreaManagementList(areaManagement);
|
// for(MjAreaManagement m:mjAreaManagements){
|
// MjTeamArea mjTeamArea2 = new MjTeamArea();
|
// mjTeamArea2.setAreaId(m.getId());
|
// mjTeamArea2.setTeamId(mjTeamArea.getTeamId());
|
// mjTeamArea2.setAreaName(m.getAreaName());
|
// List<MjTeamArea> mjTeamAreas2 = mjTeamAreaService.selectMjTeamAreaList(mjTeamArea2);
|
// if(mjTeamAreas2.size()>0){
|
// if(mjTeamAreas2.get(0).getStatus()==2){
|
// MjTeamArea m2 = mjTeamAreas2.get(0);
|
// m2.setStatus(0);
|
// return toAjax(mjTeamAreaService.updateMjTeamArea(m2));
|
// }
|
// //return error("不可重复添加");
|
// continue;
|
// }
|
// mjTeamArea2.setUpdateTime(DateUtils.getNowDate());
|
// mjTeamArea2.setId(IdUtils.fastSimpleUUID());
|
//
|
//
|
// updateNum(mjTeamArea2.getTeamId());
|
// mjTeamAreaService.insertMjTeamArea(mjTeamArea2);
|
//
|
// MjTeam team = iMjTeamService.selectMjTeamById(mjTeamArea.getTeamId());
|
// MjTeamMember teamMember = new MjTeamMember();
|
// teamMember.setTeamId(team.getId());
|
// teamMember.setStatus(0);
|
// teamMember.setDelFlag(0);
|
// List<MjTeamMember> mjTeamMembers = iMjTeamMemberService.selectMjTeamMemberList(teamMember);
|
// for(MjTeamMember mtm:mjTeamMembers) {
|
// MjFingerprintReadHead fingerprintReadHead = new MjFingerprintReadHead();
|
// fingerprintReadHead.setAreaId(mjTeamArea.getAreaId());
|
// List<MjFingerprintReadHead> hs = iMjFingerprintReadHeadService.selectMjFingerprintReadHeadList(fingerprintReadHead);
|
// for (MjFingerprintReadHead rh : hs) {
|
// MjHeadsUsers mjHeadsUsers = new MjHeadsUsers();
|
// mjHeadsUsers.setUserId(Long.valueOf(mtm.getUserId()));
|
// mjHeadsUsers.setAuthorizeName(team.getTeamName());
|
// mjHeadsUsers.setAuthorizeResult(0);//未授权
|
// mjHeadsUsers.setAuthorizeType(0);//组授权
|
// mjHeadsUsers.setAuthorizeStatus(0);//增加授权
|
// mjHeadsUsers.setHeadId(rh.getId());//读头id
|
// mjHeadsUsers.setHeadType(rh.getNewOldStatus());
|
// mjHeadsUsers.setMainUser(1);
|
// mjHeadsUsers.setOrderId(team.getId());
|
// iMjHeadsUsersService.insertMjHeadsUsers(mjHeadsUsers);
|
// addPush(mjHeadsUsers);
|
// }
|
// }
|
// }
|
//
|
// List<MjTeamArea> mjTeamAreas = mjTeamAreaService.selectMjTeamAreaList(mjTeamArea);
|
// if(mjTeamAreas.size()>0){
|
// if(mjTeamAreas.get(0).getStatus()==2){
|
// mjTeamArea.setStatus(0);
|
// return toAjax(mjTeamAreaService.updateMjTeamArea(mjTeamArea));
|
// }
|
// return error("不可重复添加");
|
// }
|
// mjTeamArea.setUpdateTime(DateUtils.getNowDate());
|
// mjTeamArea.setId(IdUtils.fastSimpleUUID());
|
// MjAreaManagement mjAreaManagement = iMjAreaManagementService.selectMjAreaManagementById(mjTeamArea.getAreaId());
|
// mjTeamArea.setAreaName(mjAreaManagement.getAreaName());
|
//
|
// updateNum(mjTeamArea.getTeamId());
|
// mjTeamAreaService.insertMjTeamArea(mjTeamArea);
|
//
|
// MjTeam team = iMjTeamService.selectMjTeamById(mjTeamArea.getTeamId());
|
// MjTeamMember teamMember = new MjTeamMember();
|
// teamMember.setTeamId(team.getId());
|
// teamMember.setStatus(0);
|
// teamMember.setDelFlag(0);
|
// List<MjTeamMember> mjTeamMembers = iMjTeamMemberService.selectMjTeamMemberList(teamMember);
|
// for(MjTeamMember mtm:mjTeamMembers) {
|
// MjFingerprintReadHead fingerprintReadHead = new MjFingerprintReadHead();
|
// fingerprintReadHead.setAreaId(mjTeamArea.getAreaId());
|
// List<MjFingerprintReadHead> hs = iMjFingerprintReadHeadService.selectMjFingerprintReadHeadList(fingerprintReadHead);
|
// for (MjFingerprintReadHead rh : hs) {
|
// MjHeadsUsers mjHeadsUsers = new MjHeadsUsers();
|
// mjHeadsUsers.setUserId(Long.valueOf(mtm.getUserId()));
|
// mjHeadsUsers.setAuthorizeName(team.getTeamName());
|
// mjHeadsUsers.setAuthorizeResult(0);//未授权
|
// mjHeadsUsers.setAuthorizeType(0);//组授权
|
// mjHeadsUsers.setAuthorizeStatus(0);//增加授权
|
// mjHeadsUsers.setHeadId(rh.getId());//读头id
|
// mjHeadsUsers.setHeadType(rh.getNewOldStatus());
|
// mjHeadsUsers.setMainUser(1);
|
// mjHeadsUsers.setOrderId(team.getId());
|
// iMjHeadsUsersService.insertMjHeadsUsers(mjHeadsUsers);
|
// if(rh.getNewOldStatus()==1){
|
// addPush(mjHeadsUsers);
|
// }
|
// }
|
// }
|
// return toAjax(true);
|
// }
|
|
public void quXiao(MjHeadsUsers headsUsers){
|
Thread t = new Thread(new Runnable(){
|
public void run(){
|
MjFingerprintReadHead head = iMjFingerprintReadHeadService.selectMjFingerprintReadHeadById(headsUsers.getHeadId());
|
if(StringUtils.isNotEmpty(head.getIpOrOther()) && StringUtils.isNotEmpty(head.getPort())) {
|
mjWorkUserPushService.removeFingerTmp(headsUsers.getUserId().toString(), head.getIpOrOther(), head.getPort());
|
}
|
}
|
});
|
}
|
|
public void addPush(MjHeadsUsers headsUsers){
|
Thread t = new Thread(new Runnable(){
|
public void run(){
|
MjFingerprintReadHead head = iMjFingerprintReadHeadService.selectMjFingerprintReadHeadById(headsUsers.getHeadId());
|
List<TmpDataModel> tmpDataModels = fingerprintService.selectMjFingerprintListByUserId(headsUsers.getUserId());
|
String users = domainToModel(headsUsers, tmpDataModels);
|
|
int code = addTeamUsers(users,head);
|
if(code==0){
|
System.out.println("推送成功");
|
}else{
|
System.out.println("推送失败");
|
}
|
}
|
});
|
t.start();
|
}
|
|
//增加组用户
|
private Integer addTeamUsers(String value, MjFingerprintReadHead head) {
|
RestTemplate restTemplate = new RestTemplate();
|
HttpHeaders headers = new HttpHeaders();
|
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
|
JSONObject jsonObject = null;
|
|
MultiValueMap<String, Object> map= new LinkedMultiValueMap<>();
|
|
map.add("ip", head.getIpOrOther());
|
map.add("port", head.getPort());
|
map.add("userDatas", value);
|
|
HttpEntity<MultiValueMap<String, Object>> request = new HttpEntity<>(map, headers);
|
try {
|
ResponseEntity<String> response = restTemplate.postForEntity( UrlConstant.ZK_URL+"api/SDZ/ZktAddUserTmpByList", request , String.class );
|
jsonObject = JSONObject.parseObject(response.getBody());
|
System.out.println(response.getBody());
|
}catch (Exception e) {
|
e.printStackTrace();
|
return 1;
|
}
|
if(jsonObject != null) {
|
return (int)jsonObject.get("code");
|
}
|
return 1;
|
}
|
|
//转换为访问所需model
|
private String domainToModel(MjHeadsUsers headsUsers, List<TmpDataModel> mjFingerprintList) {
|
List<WorkUserModel> wums = new ArrayList<WorkUserModel>();
|
|
WorkUserModel workUserModel = new WorkUserModel();
|
workUserModel.setId(headsUsers.getUserId().toString().trim());
|
MjWorkUser workUser = workUserService.selectMjWorkUserById(headsUsers.getUserId());
|
workUserModel.setName(workUser.getUserName().trim());
|
workUserModel.setPass("");
|
workUserModel.setiPrivilege(0);
|
workUserModel.setFlag("a");
|
workUserModel.setTmpDatas(mjFingerprintList);
|
wums.add(workUserModel);
|
|
JSONArray jsonArray=new JSONArray(Collections.singletonList(wums));
|
String userDatas = jsonArray.toString().substring(1, jsonArray.toString().length()-1);
|
return userDatas;
|
}
|
}
|