Commit ea6ad660 authored by 赵啸非's avatar 赵啸非

修改同步用户

parent 483058fb
package com.mortals.xhx.common.pdu;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.web.BaseForm;
public class LoginForm extends BaseForm {
private String loginName;
private String password;
private String securityCode;
public String getLoginName() {
return loginName;
}
public void setLoginName(String loginName) {
this.loginName = loginName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getSecurityCode() {
return securityCode;
}
public void setSecurityCode(String securityCode) {
this.securityCode = securityCode;
}
@Override
public String toString() {
return "loginName:" + this.loginName + " password:" + this.password;
}
@Override
public boolean validate() throws AppException {
if (loginName == null || loginName.trim().length() == 0) {
throw new AppException("帐号不能为空!");
}
if (password == null || password.trim().length() == 0) {
throw new AppException("密码不能为空!");
}
// if (securityCode == null || securityCode.trim().length() == 0) {
// throw new AppException("验证码不能为空!");
// }
return super.validate();
}
}
package com.mortals.xhx.common.pdu.device;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
@Data
public class DeviceReq implements Serializable {
/**
* 1:新增,2:修改,3:删除,4:激活,5:启用,6:停用
*/
private Integer receiveMethod;
/**
* 产品id
*/
private Long productId;
/**
* 产品编码
*/
private String productCode;
/**
* 设备生产厂商ID
*/
private Long deviceFirmId;
/**
* 设备生产厂商名称
*/
private String deviceFirmname;
/**
* 设备名称
*/
private String deviceName;
/**
* 设备编码(暂定mac地址)
*/
private String deviceCode;
/**
* 设备Mac
*/
private String deviceMac;
/**
* 所属站点Id
*/
private Long siteId;
/**
* 所属站点编码
*/
private String siteCode;
/**
* 所属站点名称
*/
private String siteName;
/**
* 设备备注信息
*/
private String deviceRemark;
/**
* 设备
*/
private String homeUrl;
/**
* 设备访问ip
*/
private String ip;
/**
* 中心设备编码
*/
private String centernum;
/**
* 端口
*/
private String port;
/**
* 经度
*/
private String lon;
/**
* 纬度
*/
private String lati;
/**
* 楼层
*/
private Integer deviceInBuilding;
/**
* 所属楼栋
*/
private Integer deviceInFloor;
/**
* 负责人
*/
private String leadingOfficial;
/**
* 联系电话
*/
private String leadingOfficialTelephone;
/**
* 保修期至
*/
private Date defectsLiabilityPeriod;
/**
* 设备状态 (0.未激活,1.离线,2.在线)
*/
private Integer deviceStatus;
/**
* 设备来源(0.旧设备,1.新设备)
*/
private Integer source;
/**
* 激活(0.否,1.是)
*/
private Integer active;
/**
* 设备版本信息
*/
private String deviceVersion;
}
package com.mortals.xhx.feign.device;
import com.mortals.framework.common.Rest;
import com.mortals.xhx.common.pdu.LoginForm;
import com.mortals.xhx.common.pdu.RespData;
import com.mortals.xhx.common.pdu.device.DevicePdu;
import com.mortals.xhx.common.pdu.device.DeviceReq;
import com.mortals.xhx.feign.IFeign;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
......@@ -11,8 +13,10 @@ import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 设备 Feign接口
*
* @author zxfei
* @date 2023-02-25
*/
......@@ -47,9 +51,28 @@ public interface IDeviceFeign extends IFeign {
* @return
*/
@PostMapping(value = "/device/save")
Rest<RespData<DevicePdu>> save(@RequestBody DevicePdu devicePdu,@RequestHeader("Authorization") String authorization);
Rest<RespData<DevicePdu>> save(@RequestBody DevicePdu devicePdu, @RequestHeader("Authorization") String authorization);
/**
* 获取token
*
* @param loginForm
* @return
*/
@PostMapping(value = "/api/getToken")
Rest<String> getToken(@RequestBody LoginForm loginForm);
/**
* 设备回调
*
* @param deviceReq
* @return
*/
@PostMapping(value = "/api/receive")
Rest<String> deviceCall(@RequestBody DeviceReq deviceReq, @RequestHeader("Authorization") String authorization);
}
......@@ -61,18 +84,28 @@ class DeviceFeignFallbackFactory implements FallbackFactory<IDeviceFeign> {
return new IDeviceFeign() {
@Override
public Rest<RespData<List<DevicePdu>>> list(DevicePdu devicePdu) {
return Rest.fail("暂时无法获取设备列表,请稍后再试!");
return Rest.fail("暂时无法获取设备列表,请稍后再试!");
}
@Override
public Rest<DevicePdu> info(Long id) {
return Rest.fail("暂时无法获取设备详细,请稍后再试!");
return Rest.fail("暂时无法获取设备详细,请稍后再试!");
}
@Override
public Rest<RespData<DevicePdu>> save(DevicePdu devicePdu, String authorization) {
return Rest.fail("暂时无法保存设备,请稍后再试!");
}
@Override
public Rest<String> getToken(LoginForm loginForm) {
return Rest.fail("暂时无法获取token,请稍后再试!");
}
@Override
public Rest<String> deviceCall(DeviceReq deviceReq, String authorization) {
return Rest.fail("暂时无法保存设备,请稍后再试!");
}
};
}
}
......
......@@ -57,8 +57,10 @@ CREATE TABLE mortals_xhx_room(
`createTime` datetime NOT NULL COMMENT '创建时间',
`updateUserId` bigint(20) COMMENT '更新用户',
`updateTime` datetime COMMENT '更新时间',
`deviceCode` varchar(64) COMMENT '绑定的设备编码',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='房间管理';
-- ----------------------------
-- 房间工作人员信息表
-- ----------------------------
......@@ -96,8 +98,11 @@ CREATE TABLE mortals_xhx_workman(
`createTime` datetime COMMENT '创建时间',
`createUserId` bigint(20) COMMENT '创建用户',
`updateTime` datetime COMMENT '修改时间',
`loginName` varchar(64) COMMENT '登录用户名',
`loginPwd` varchar(64) COMMENT '密码',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='工作人员';
-- ----------------------------
-- 设备管理表
-- ----------------------------
......
......@@ -2370,6 +2370,74 @@ msg|String|消息|-
```
## 终端服务
### 工作人员登录
**请求URL:** workman/doLogin
**请求方式:** POST
**内容类型:** application/json;charset=utf-8
**简要描述:**
**请求参数:**
参数名称|类型|备注|必填|其它
---|---|---|---|---
loginName|String|用户名|是|-
loginPwd|String|密码|是|-
**请求样例:**
```
```
**响应参数:**
参数名称 |参数类型|备注|其它
---|---|---|---
code|Integer|结果码(-1.失败,1.成功)|-
msg|String|消息|-
data|object|数据对象|-
**响应消息样例:**
```
```
### 工作人员密码修改
**请求URL:** workman/change/password
**请求方式:** POST
**内容类型:** application/json;charset=utf-8
**简要描述:**
**请求参数:**
参数名称|类型|备注|必填|其它
---|---|---|---|---
loginName|String|用户名|是|-
oldPwd|String|旧密码|是|-
newPwd|String|新密码|是|-
**请求样例:**
```
```
**响应参数:**
参数名称 |参数类型|备注|其它
---|---|---|---
code|Integer|结果码(-1.失败,1.成功)|-
msg|String|消息|-
### 工作人员列表
**请求URL:** workman/list
......@@ -2382,16 +2450,19 @@ msg|String|消息|-
**请求参数:**
参数名称|类型|必填|描述
:---|:---|:---|:------
page|Integer|否|当前页
size|Integer|否|每页条数,值为-1,查询所有记录
参数名称| 类型 |必填|描述
:---|:--------|:---|:------
page| Integer |否|当前页
size| Integer |否|每页条数,值为-1,查询所有记录
deviceCode| String |否|设备编码
**请求样例:**
```
{
"page":1,
"size":10
"size":10,
"deviceCode":"123123"
}
```
......@@ -2515,12 +2586,14 @@ data| object |数据对象
:---|:---|:---|:------
page|Integer|否|当前页
size|Integer|否|每页条数,值为-1,查询所有记录
deviceCode| String |否|设备编码
**请求样例:**
```
{
"page":1,
"size":10
"size":10,
"deviceCode","adfdd"
}
```
......
......@@ -7,8 +7,10 @@
size="50%">
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<Field :span="20" label="所属房间" prop="roomId" v-model="form.roomId" :enumData="dict.roomId" type="select" placeholder="请输入所属房间"/>
<Field :span="20" :disabled="pageInfo.type=='edit'" label="登录名" prop="loginName" v-model="form.loginName" placeholder="请输入登录名"/>
<Field :span="20" :disabled="pageInfo.type=='edit'" label="登录密码" prop="loginPwd" type="password" v-model="form.loginPwd" placeholder="请输入密码"/>
<Field :span="20" label="所属房间" prop="roomId" v-model="form.roomId" :enumData="dict.roomId" type="select" placeholder="请输入所属房间"/>
<Field :span="20" label="所属部门" prop="deptName" v-model="form.deptName" placeholder="请输入所属部门"/>
<Field :span="20" label="姓名" prop="name" v-model="form.name" placeholder="请输入姓名"/>
<Field :span="20" label="性别" prop="sex" v-model="form.sex" type="select" :enumData="dict.sex" placeholder="请选择性别"/>
......@@ -62,6 +64,22 @@
],
// 表单校验
rules: {
loginName: [
{required: true,message: "请输入登录名称", trigger: "blur" },
{max: 64,message: "最多只能录入64个字符",trigger: "blur",},
],
loginPwd: [
{required: true,message: "请输入登录密码", trigger: "blur" },
{max: 64,message: "最多只能录入64个字符",trigger: "blur",},
],
roomId: [
{required: true,message: "请选择人员所属房间", trigger: "blur" }
],
mobile: [
{required: true,message: "请输入手机号码", trigger: "blur" },
{max: 64,message: "最多只能录入64个字符",trigger: "blur",},
],
workStatus: [
{required: true,message: "请输入工作状态,来源基础设置", trigger: "blur" },
{max: 64,message: "最多只能录入64个字符",trigger: "blur",},
......
......@@ -176,6 +176,7 @@
{label: "职位", prop: "userPost"},
{label: "电话", prop: "phone"},
{label: "手机", prop: "mobile"},
{label: "工作状态", prop: "workStatus"},
......
package com.mortals.xhx.module.device.service.impl;
import com.mortals.framework.common.Rest;
import com.mortals.xhx.common.pdu.LoginForm;
import com.mortals.xhx.common.pdu.device.DeviceReq;
import com.mortals.xhx.feign.device.IDeviceFeign;
import lombok.Data;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.framework.exception.AppException;
......@@ -7,24 +14,35 @@ import com.mortals.xhx.module.device.dao.DeviceDao;
import com.mortals.xhx.module.device.model.DeviceEntity;
import com.mortals.xhx.module.device.service.DeviceService;
import lombok.extern.slf4j.Slf4j;
/**
* DeviceService
* 设备管理 service实现
*
* @author zxfei
* @date 2023-05-22
*/
* DeviceService
* 设备管理 service实现
*
* @author zxfei
* @date 2023-05-22
*/
@Service("deviceService")
@Slf4j
public class DeviceServiceImpl extends AbstractCRUDServiceImpl<DeviceDao, DeviceEntity, Long> implements DeviceService {
@Autowired
private IDeviceFeign deviceFeign;
@Override
protected void saveAfter(DeviceEntity entity, Context context) throws AppException {
super.saveAfter(entity, context);
//todo 通知设备管理系统
String token = getToken();
DeviceReq deviceReq = new DeviceReq();
deviceReq.setReceiveMethod(1);
deviceFeign.deviceCall(deviceReq,token);
}
@Override
protected void updateAfter(DeviceEntity entity, Context context) throws AppException {
super.updateAfter(entity, context);
......@@ -40,4 +58,13 @@ public class DeviceServiceImpl extends AbstractCRUDServiceImpl<DeviceDao, Device
public void deviceEnabled(Long id, Integer status, Context context) {
}
private String getToken() {
LoginForm loginForm = new LoginForm();
loginForm.setLoginName("admin");
loginForm.setPassword("xhx@yb123");
Rest<String> rest = deviceFeign.getToken(loginForm);
String token = rest.getData();
return token;
}
}
\ No newline at end of file
......@@ -56,8 +56,6 @@ public class DeviceController extends BaseCRUDJsonBodyMappingController<DeviceSe
this.addDict(model, "deviceInFloor", paramService.getParamBySecondOrganize("Device","deviceInFloor"));
this.addDict(model, "deviceStatus", paramService.getParamBySecondOrganize("Device","deviceStatus"));
this.addDict(model, "enabled", paramService.getParamBySecondOrganize("Device","enabled"));
this.addDict(model, "roomId", roomService.find(new RoomQuery()).stream().collect(Collectors.toMap(x -> x.getId().toString(), y -> y.getRoomName(), (o, n) -> n)));
super.init(model, context);
......
......@@ -22,4 +22,6 @@ public class MettingRecordVo extends BaseEntityLong {
/** 结束 会议日期 */
private String meetDateEnd;
private String deviceCode;
}
\ No newline at end of file
......@@ -7,8 +7,10 @@ import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.base.system.param.service.ParamService;
import com.mortals.xhx.module.metting.model.MettingRecordEntity;
import com.mortals.xhx.module.metting.service.MettingRecordService;
import com.mortals.xhx.module.room.model.RoomEntity;
import com.mortals.xhx.module.room.model.RoomQuery;
import com.mortals.xhx.module.room.service.RoomService;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
......@@ -51,5 +53,13 @@ public class MettingRecordController extends BaseCRUDJsonBodyMappingController<M
protected void doListBefore(MettingRecordEntity query, Map<String, Object> model, Context context) throws AppException {
super.doListBefore(query, model, context);
query.setOrderColList(Arrays.asList(new OrderCol("createTime", OrderCol.DESCENDING)));
if (!ObjectUtils.isEmpty(query.getDeviceCode())) {
//根据设备编码 查询房间room
RoomEntity roomEntity = roomService.selectOne(new RoomQuery().deviceCode(query.getDeviceCode()));
if (!ObjectUtils.isEmpty(roomEntity)) {
query.setRoomId(roomEntity.getId());
}
}
}
}
\ No newline at end of file
package com.mortals.xhx.module.room.model;
import java.util.List;
import java.util.ArrayList;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.room.model.vo.RoomVo;
import lombok.Data;
/**
* 房间管理实体对象
*
* @author zxfei
* @date 2023-05-22
*/
* 房间管理实体对象
*
* @author zxfei
* @date 2023-05-25
*/
@Data
public class RoomEntity extends RoomVo {
private static final long serialVersionUID = 1L;
/**
* 房间名称
*/
* 房间名称
*/
private String roomName;
/**
* 房间编码
*/
* 房间编码
*/
private String roomCode;
/**
* 房间类型(0.会议室,1.办公室)
*/
* 房间类型(0.会议室,1.办公室)
*/
private Integer roomType;
/**
* 绑定的电子门牌的设备ID
*/
* 绑定的电子门牌的设备ID
*/
private Long deviceId;
/**
* 绑定的设备名称
*/
* 绑定的设备名称
*/
private String deviceName;
/**
* 员工人数
*/
* 员工人数
*/
private Long countPerson;
/**
* 备注
*/
* 备注
*/
private String remark;
/**
* 绑定的设备编码
*/
private String deviceCode;
@Override
public int hashCode() {
return this.getId().hashCode();
return this.getId().hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null) return false;
if (obj instanceof RoomEntity) {
RoomEntity tmp = (RoomEntity) obj;
if (this.getId() == tmp.getId()) {
return true;
return true;
}
}
return false;
}
public void initAttrValue(){
public void initAttrValue() {
this.roomName = "";
this.roomName = "";
this.roomCode = "";
this.roomCode = "";
this.roomType = 0;
this.roomType = 0;
this.deviceId = null;
this.deviceId = null;
this.deviceName = "";
this.deviceCode = "";
this.deviceName = "";
this.countPerson = 0L;
this.countPerson = 0L;
this.remark = "";
this.remark = "";
this.deviceCode = "";
}
}
\ No newline at end of file
package com.mortals.xhx.module.room.service.impl;
import com.mortals.xhx.module.device.model.DeviceEntity;
import com.mortals.xhx.module.device.service.DeviceService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.framework.exception.AppException;
......@@ -7,6 +10,8 @@ import com.mortals.xhx.module.room.dao.RoomDao;
import com.mortals.xhx.module.room.model.RoomEntity;
import com.mortals.xhx.module.room.service.RoomService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.util.ObjectUtils;
/**
* RoomService
* 房间管理 service实现
......@@ -17,5 +22,20 @@ import lombok.extern.slf4j.Slf4j;
@Service("roomService")
@Slf4j
public class RoomServiceImpl extends AbstractCRUDServiceImpl<RoomDao, RoomEntity, Long> implements RoomService {
@Autowired
private DeviceService deviceService;
@Override
protected void validData(RoomEntity entity, Context context) throws AppException {
super.validData(entity, context);
if(!ObjectUtils.isEmpty(entity.getDeviceId())){
DeviceEntity deviceEntity = deviceService.get(entity.getDeviceId(), context);
if(!ObjectUtils.isEmpty(deviceEntity)){
entity.setDeviceCode(deviceEntity.getDeviceCode());
entity.setDeviceName(deviceEntity.getDeviceName());
}
}
}
}
\ No newline at end of file
......@@ -7,62 +7,70 @@ import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.workman.model.vo.WorkmanVo;
import lombok.Data;
/**
* 工作人员实体对象
*
* @author zxfei
* @date 2023-05-22
*/
* 工作人员实体对象
*
* @author zxfei
* @date 2023-05-25
*/
@Data
public class WorkmanEntity extends WorkmanVo {
private static final long serialVersionUID = 1L;
/**
* 所属房间id
*/
* 所属房间id
*/
private Long roomId;
/**
* 所属房间名称
*/
* 所属房间名称
*/
private String roomName;
/**
* 所属部门
*/
* 所属部门
*/
private String deptName;
/**
* 姓名
*/
* 姓名
*/
private String name;
/**
* 性别(0.男,1.女)
*/
* 性别(0.男,1.女)
*/
private Integer sex;
/**
* 职务
*/
* 职务
*/
private String userPost;
/**
* 电话
*/
* 电话
*/
private String phone;
/**
* 手机
*/
* 手机
*/
private String mobile;
/**
* 简介
*/
* 简介
*/
private String summary;
/**
* 照片
*/
* 照片
*/
private String photoPath;
/**
* 工作状态,来源基础设置
*/
* 工作状态,来源基础设置
*/
private String workStatus;
/**
* 登录用户名
*/
private String loginName;
/**
* 密码
*/
private String loginPwd;
@Override
public int hashCode() {
return this.getId().hashCode();
return this.getId().hashCode();
}
@Override
public boolean equals(Object obj) {
......@@ -70,7 +78,7 @@ public class WorkmanEntity extends WorkmanVo {
if (obj instanceof WorkmanEntity) {
WorkmanEntity tmp = (WorkmanEntity) obj;
if (this.getId() == tmp.getId()) {
return true;
return true;
}
}
return false;
......@@ -78,26 +86,30 @@ public class WorkmanEntity extends WorkmanVo {
public void initAttrValue(){
this.roomId = -1L;
this.roomId = null;
this.roomName = "";
this.deptName = "";
this.roomName = "";
this.name = "";
this.deptName = "";
this.sex = 0;
this.name = "";
this.userPost = "";
this.sex = 0;
this.phone = "";
this.userPost = "";
this.mobile = "";
this.phone = "";
this.summary = "";
this.mobile = "";
this.photoPath = "";
this.summary = "";
this.workStatus = "";
this.photoPath = "";
this.loginName = "";
this.workStatus = "";
this.loginPwd = "";
}
}
\ No newline at end of file
......@@ -19,15 +19,6 @@ public class WorkmanVo extends BaseEntityLong {
private String oldPwd;
private String newPwd;
/**
* 登录用户名
*/
@Excel(name = "用户名")
private String loginName;
/**
* 密码
*/
@Excel(name = "密码")
private String loginPwd;
private String deviceCode;
}
\ No newline at end of file
......@@ -2,6 +2,7 @@ package com.mortals.xhx.module.workman.service.impl;
import com.mortals.framework.common.Rest;
import com.mortals.framework.util.SecurityUtil;
import com.mortals.framework.util.StringUtils;
import com.mortals.xhx.module.gocome.model.GocomeRecordEntity;
import com.mortals.xhx.module.gocome.service.GocomeRecordService;
import com.mortals.xhx.module.room.model.RoomQuery;
......@@ -37,6 +38,25 @@ public class WorkmanServiceImpl extends AbstractCRUDServiceImpl<WorkmanDao, Work
private RoomService roomService;
@Override
protected void saveBefore(WorkmanEntity entity, Context context) throws AppException {
super.saveBefore(entity, context);
if (StringUtils.isNotEmpty(entity.getLoginPwd())) {
try {
entity.setLoginPwd(SecurityUtil.md5DoubleEncoding(entity.getLoginPwd()));
} catch (Exception e) {
throw new AppException("密码转换异常");
}
} else {
entity.setLoginPwd(null);
}
WorkmanEntity workmanEntity = this.selectOne(new WorkmanQuery().loginName(entity.getLoginName()));
if(!ObjectUtils.isEmpty(workmanEntity)){
throw new AppException("当前登录用户名已存在!");
}
}
@Override
protected void saveAfter(WorkmanEntity entity, Context context) throws AppException {
super.saveAfter(entity, context);
......@@ -64,9 +84,6 @@ public class WorkmanServiceImpl extends AbstractCRUDServiceImpl<WorkmanDao, Work
} catch (Exception e) {
throw new AppException("密码验认出错!", e);
}
// WorkmanEntity update = new WorkmanEntity();
// update.setId(workmanEntity.getId());
// this.dao.update(update);
return workmanEntity;
}
......@@ -146,7 +163,12 @@ public class WorkmanServiceImpl extends AbstractCRUDServiceImpl<WorkmanDao, Work
recordEntity.setCreateUserId(this.getContextUserId(context));
gocomeRecordService.save(recordEntity, context);
return Rest.ok();
}
@Override
protected void removeAfter(Long[] ids, Context context, int result) throws AppException {
super.removeAfter(ids, context, result);
}
}
\ No newline at end of file
package com.mortals.xhx.module.workman.web;
import com.alibaba.fastjson.JSON;
import com.mortals.framework.annotation.UnAuth;
import com.mortals.framework.common.Rest;
......@@ -8,16 +9,20 @@ import com.mortals.xhx.base.system.param.service.ParamService;
import com.mortals.xhx.module.basic.model.BasicStatusQuery;
import com.mortals.xhx.module.basic.service.BasicStatusService;
import com.mortals.xhx.module.device.model.DeviceEntity;
import com.mortals.xhx.module.room.model.RoomEntity;
import com.mortals.xhx.module.room.model.RoomQuery;
import com.mortals.xhx.module.room.service.RoomService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import com.mortals.framework.model.Context;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.module.workman.model.WorkmanEntity;
import com.mortals.xhx.module.workman.service.WorkmanService;
......@@ -26,21 +31,23 @@ import com.mortals.framework.util.StringUtils;
import java.util.*;
import java.util.stream.Collectors;
import com.alibaba.fastjson.JSONObject;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import static com.mortals.framework.ap.SysConstains.*;
/**
*
* 工作人员
*
* @author zxfei
* @date 2023-05-22
*/
* 工作人员
*
* @author zxfei
* @date 2023-05-22
*/
@RestController
@RequestMapping("workman")
@Slf4j
public class WorkmanController extends BaseCRUDJsonBodyMappingController<WorkmanService,WorkmanEntity,Long> {
public class WorkmanController extends BaseCRUDJsonBodyMappingController<WorkmanService, WorkmanEntity, Long> {
@Autowired
private ParamService paramService;
......@@ -50,32 +57,46 @@ public class WorkmanController extends BaseCRUDJsonBodyMappingController<Workman
private BasicStatusService statusService;
public WorkmanController(){
super.setModuleDesc( "工作人员");
public WorkmanController() {
super.setModuleDesc("工作人员");
}
@Override
protected void init(Map<String, Object> model, Context context) {
this.addDict(model, "sex", paramService.getParamBySecondOrganize("Workman","sex"));
this.addDict(model, "sex", paramService.getParamBySecondOrganize("Workman", "sex"));
this.addDict(model, "roomId", roomService.find(new RoomQuery()).stream().collect(Collectors.toMap(x -> x.getId().toString(), y -> y.getRoomName(), (o, n) -> n)));
this.addDict(model, "workStatus", statusService.find(new BasicStatusQuery()).stream().collect(Collectors.toMap(x -> x.getStatusName(), y -> y.getStatusName(), (o, n) -> n)));
super.init(model, context);
}
@Override
protected void doListBefore(WorkmanEntity query, Map<String, Object> model, Context context) throws AppException {
super.doListBefore(query, model, context);
if (!ObjectUtils.isEmpty(query.getDeviceCode())) {
//根据设备编码 查询房间room
RoomEntity roomEntity = roomService.selectOne(new RoomQuery().deviceCode(query.getDeviceCode()));
if (!ObjectUtils.isEmpty(roomEntity)) {
query.setRoomId(roomEntity.getId());
}
}
}
/**
* 工作人员更新状态
*/
@PostMapping(value = "change/status")
@UnAuth
public Rest<Void> changeStatus(@RequestBody WorkmanEntity workmanEntity) {
String busiDesc = this.getModuleDesc() + "设备激活";
String busiDesc = this.getModuleDesc() + "更新状态";
Rest<Void> rest = Rest.ok(busiDesc + " 【成功】");
try {
this.service.changeStatus(workmanEntity, getContext());
recordSysLog(request, busiDesc + " 【成功】");
} catch (Exception e) {
log.error("设备激活消息", e);
log.error("工作人员更新状态消息", e);
rest = Rest.fail(super.convertException(e));
}
return rest;
......@@ -93,7 +114,6 @@ public class WorkmanController extends BaseCRUDJsonBodyMappingController<Workman
try {
String ip = super.getRequestIP(request);
WorkmanEntity workmanEntity = this.service.doLogin(query.getLoginName(), query.getLoginPwd(), ip);
this.service.getDao().update(workmanEntity);
ret.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS);
ret.put(KEY_RESULT_MSG, "工作人员登录成功!");
ret.put(KEY_RESULT_DATA, workmanEntity);
......@@ -149,5 +169,18 @@ public class WorkmanController extends BaseCRUDJsonBodyMappingController<Workman
}
@Override
protected void deleteBefore(Long[] ids, Context context) throws AppException {
super.deleteBefore(ids, context);
List<WorkmanEntity> workmanEntities = this.service.get(ids, context);
for (WorkmanEntity workmanEntity : workmanEntities) {
RoomQuery roomQuery = new RoomQuery();
roomQuery.setId(workmanEntity.getRoomId());
RoomEntity roomEntity = roomService.selectOne(roomQuery, context);
if(!ObjectUtils.isEmpty(roomEntity)){
roomEntity.setCountPerson(roomEntity.getCountPerson()-1);
roomService.update(roomEntity);
}
}
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment