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; package com.mortals.xhx.feign.device;
import com.mortals.framework.common.Rest; 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.RespData;
import com.mortals.xhx.common.pdu.device.DevicePdu; import com.mortals.xhx.common.pdu.device.DevicePdu;
import com.mortals.xhx.common.pdu.device.DeviceReq;
import com.mortals.xhx.feign.IFeign; import com.mortals.xhx.feign.IFeign;
import feign.hystrix.FallbackFactory; import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -11,8 +13,10 @@ import org.springframework.stereotype.Component; ...@@ -11,8 +13,10 @@ import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.List; import java.util.List;
/** /**
* 设备 Feign接口 * 设备 Feign接口
*
* @author zxfei * @author zxfei
* @date 2023-02-25 * @date 2023-02-25
*/ */
...@@ -47,9 +51,28 @@ public interface IDeviceFeign extends IFeign { ...@@ -47,9 +51,28 @@ public interface IDeviceFeign extends IFeign {
* @return * @return
*/ */
@PostMapping(value = "/device/save") @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);
} }
...@@ -73,6 +96,16 @@ class DeviceFeignFallbackFactory implements FallbackFactory<IDeviceFeign> { ...@@ -73,6 +96,16 @@ class DeviceFeignFallbackFactory implements FallbackFactory<IDeviceFeign> {
public Rest<RespData<DevicePdu>> save(DevicePdu devicePdu, String authorization) { public Rest<RespData<DevicePdu>> save(DevicePdu devicePdu, String authorization) {
return Rest.fail("暂时无法保存设备,请稍后再试!"); 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( ...@@ -57,8 +57,10 @@ CREATE TABLE mortals_xhx_room(
`createTime` datetime NOT NULL COMMENT '创建时间', `createTime` datetime NOT NULL COMMENT '创建时间',
`updateUserId` bigint(20) COMMENT '更新用户', `updateUserId` bigint(20) COMMENT '更新用户',
`updateTime` datetime COMMENT '更新时间', `updateTime` datetime COMMENT '更新时间',
`deviceCode` varchar(64) COMMENT '绑定的设备编码',
PRIMARY KEY (`id`) PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='房间管理'; ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='房间管理';
-- ---------------------------- -- ----------------------------
-- 房间工作人员信息表 -- 房间工作人员信息表
-- ---------------------------- -- ----------------------------
...@@ -96,8 +98,11 @@ CREATE TABLE mortals_xhx_workman( ...@@ -96,8 +98,11 @@ CREATE TABLE mortals_xhx_workman(
`createTime` datetime COMMENT '创建时间', `createTime` datetime COMMENT '创建时间',
`createUserId` bigint(20) COMMENT '创建用户', `createUserId` bigint(20) COMMENT '创建用户',
`updateTime` datetime COMMENT '修改时间', `updateTime` datetime COMMENT '修改时间',
`loginName` varchar(64) COMMENT '登录用户名',
`loginPwd` varchar(64) COMMENT '密码',
PRIMARY KEY (`id`) PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='工作人员'; ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='工作人员';
-- ---------------------------- -- ----------------------------
-- 设备管理表 -- 设备管理表
-- ---------------------------- -- ----------------------------
......
...@@ -2370,6 +2370,74 @@ msg|String|消息|- ...@@ -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 **请求URL:** workman/list
...@@ -2382,16 +2450,19 @@ msg|String|消息|- ...@@ -2382,16 +2450,19 @@ msg|String|消息|-
**请求参数:** **请求参数:**
参数名称|类型|必填|描述 参数名称| 类型 |必填|描述
:---|:---|:---|:------ :---|:--------|:---|:------
page|Integer|否|当前页 page| Integer |否|当前页
size|Integer|否|每页条数,值为-1,查询所有记录 size| Integer |否|每页条数,值为-1,查询所有记录
deviceCode| String |否|设备编码
**请求样例:** **请求样例:**
``` ```
{ {
"page":1, "page":1,
"size":10 "size":10,
"deviceCode":"123123"
} }
``` ```
...@@ -2515,12 +2586,14 @@ data| object |数据对象 ...@@ -2515,12 +2586,14 @@ data| object |数据对象
:---|:---|:---|:------ :---|:---|:---|:------
page|Integer|否|当前页 page|Integer|否|当前页
size|Integer|否|每页条数,值为-1,查询所有记录 size|Integer|否|每页条数,值为-1,查询所有记录
deviceCode| String |否|设备编码
**请求样例:** **请求样例:**
``` ```
{ {
"page":1, "page":1,
"size":10 "size":10,
"deviceCode","adfdd"
} }
``` ```
......
...@@ -7,8 +7,10 @@ ...@@ -7,8 +7,10 @@
size="50%"> size="50%">
<el-form ref="form" :model="form" :rules="rules" label-width="120px"> <el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row> <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="deptName" v-model="form.deptName" placeholder="请输入所属部门"/>
<Field :span="20" label="姓名" prop="name" v-model="form.name" 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="请选择性别"/> <Field :span="20" label="性别" prop="sex" v-model="form.sex" type="select" :enumData="dict.sex" placeholder="请选择性别"/>
...@@ -62,6 +64,22 @@ ...@@ -62,6 +64,22 @@
], ],
// 表单校验 // 表单校验
rules: { 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: [ workStatus: [
{required: true,message: "请输入工作状态,来源基础设置", trigger: "blur" }, {required: true,message: "请输入工作状态,来源基础设置", trigger: "blur" },
{max: 64,message: "最多只能录入64个字符",trigger: "blur",}, {max: 64,message: "最多只能录入64个字符",trigger: "blur",},
......
...@@ -176,6 +176,7 @@ ...@@ -176,6 +176,7 @@
{label: "职位", prop: "userPost"}, {label: "职位", prop: "userPost"},
{label: "电话", prop: "phone"}, {label: "电话", prop: "phone"},
{label: "手机", prop: "mobile"},
{label: "工作状态", prop: "workStatus"}, {label: "工作状态", prop: "workStatus"},
......
package com.mortals.xhx.module.device.service.impl; 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 org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl; import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.framework.exception.AppException; import com.mortals.framework.exception.AppException;
...@@ -7,24 +14,35 @@ import com.mortals.xhx.module.device.dao.DeviceDao; ...@@ -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.model.DeviceEntity;
import com.mortals.xhx.module.device.service.DeviceService; import com.mortals.xhx.module.device.service.DeviceService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
/** /**
* DeviceService * DeviceService
* 设备管理 service实现 * 设备管理 service实现
* *
* @author zxfei * @author zxfei
* @date 2023-05-22 * @date 2023-05-22
*/ */
@Service("deviceService") @Service("deviceService")
@Slf4j @Slf4j
public class DeviceServiceImpl extends AbstractCRUDServiceImpl<DeviceDao, DeviceEntity, Long> implements DeviceService { public class DeviceServiceImpl extends AbstractCRUDServiceImpl<DeviceDao, DeviceEntity, Long> implements DeviceService {
@Autowired
private IDeviceFeign deviceFeign;
@Override @Override
protected void saveAfter(DeviceEntity entity, Context context) throws AppException { protected void saveAfter(DeviceEntity entity, Context context) throws AppException {
super.saveAfter(entity, context); super.saveAfter(entity, context);
//todo 通知设备管理系统 //todo 通知设备管理系统
String token = getToken();
DeviceReq deviceReq = new DeviceReq();
deviceReq.setReceiveMethod(1);
deviceFeign.deviceCall(deviceReq,token);
} }
@Override @Override
protected void updateAfter(DeviceEntity entity, Context context) throws AppException { protected void updateAfter(DeviceEntity entity, Context context) throws AppException {
super.updateAfter(entity, context); super.updateAfter(entity, context);
...@@ -40,4 +58,13 @@ public class DeviceServiceImpl extends AbstractCRUDServiceImpl<DeviceDao, Device ...@@ -40,4 +58,13 @@ public class DeviceServiceImpl extends AbstractCRUDServiceImpl<DeviceDao, Device
public void deviceEnabled(Long id, Integer status, Context context) { 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 ...@@ -56,8 +56,6 @@ public class DeviceController extends BaseCRUDJsonBodyMappingController<DeviceSe
this.addDict(model, "deviceInFloor", paramService.getParamBySecondOrganize("Device","deviceInFloor")); this.addDict(model, "deviceInFloor", paramService.getParamBySecondOrganize("Device","deviceInFloor"));
this.addDict(model, "deviceStatus", paramService.getParamBySecondOrganize("Device","deviceStatus")); this.addDict(model, "deviceStatus", paramService.getParamBySecondOrganize("Device","deviceStatus"));
this.addDict(model, "enabled", paramService.getParamBySecondOrganize("Device","enabled")); 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))); 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); super.init(model, context);
......
...@@ -22,4 +22,6 @@ public class MettingRecordVo extends BaseEntityLong { ...@@ -22,4 +22,6 @@ public class MettingRecordVo extends BaseEntityLong {
/** 结束 会议日期 */ /** 结束 会议日期 */
private String meetDateEnd; private String meetDateEnd;
private String deviceCode;
} }
\ No newline at end of file
...@@ -7,8 +7,10 @@ import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; ...@@ -7,8 +7,10 @@ import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.base.system.param.service.ParamService; import com.mortals.xhx.base.system.param.service.ParamService;
import com.mortals.xhx.module.metting.model.MettingRecordEntity; import com.mortals.xhx.module.metting.model.MettingRecordEntity;
import com.mortals.xhx.module.metting.service.MettingRecordService; 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.model.RoomQuery;
import com.mortals.xhx.module.room.service.RoomService; import com.mortals.xhx.module.room.service.RoomService;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
...@@ -51,5 +53,13 @@ public class MettingRecordController extends BaseCRUDJsonBodyMappingController<M ...@@ -51,5 +53,13 @@ public class MettingRecordController extends BaseCRUDJsonBodyMappingController<M
protected void doListBefore(MettingRecordEntity query, Map<String, Object> model, Context context) throws AppException { protected void doListBefore(MettingRecordEntity query, Map<String, Object> model, Context context) throws AppException {
super.doListBefore(query, model, context); super.doListBefore(query, model, context);
query.setOrderColList(Arrays.asList(new OrderCol("createTime", OrderCol.DESCENDING))); 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; package com.mortals.xhx.module.room.model;
import java.util.List; import java.util.List;
import java.util.ArrayList; import java.util.ArrayList;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.mortals.framework.annotation.Excel; import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong; import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.room.model.vo.RoomVo; import com.mortals.xhx.module.room.model.vo.RoomVo;
import lombok.Data; import lombok.Data;
/** /**
* 房间管理实体对象 * 房间管理实体对象
* *
* @author zxfei * @author zxfei
* @date 2023-05-22 * @date 2023-05-25
*/ */
@Data @Data
public class RoomEntity extends RoomVo { public class RoomEntity extends RoomVo {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
...@@ -44,10 +47,16 @@ public class RoomEntity extends RoomVo { ...@@ -44,10 +47,16 @@ public class RoomEntity extends RoomVo {
* 备注 * 备注
*/ */
private String remark; private String remark;
/**
* 绑定的设备编码
*/
private String deviceCode;
@Override @Override
public int hashCode() { public int hashCode() {
return this.getId().hashCode(); return this.getId().hashCode();
} }
@Override @Override
public boolean equals(Object obj) { public boolean equals(Object obj) {
if (obj == null) return false; if (obj == null) return false;
...@@ -60,7 +69,7 @@ public class RoomEntity extends RoomVo { ...@@ -60,7 +69,7 @@ public class RoomEntity extends RoomVo {
return false; return false;
} }
public void initAttrValue(){ public void initAttrValue() {
this.roomName = ""; this.roomName = "";
...@@ -71,9 +80,12 @@ public class RoomEntity extends RoomVo { ...@@ -71,9 +80,12 @@ public class RoomEntity extends RoomVo {
this.deviceId = null; this.deviceId = null;
this.deviceName = ""; this.deviceName = "";
this.deviceCode = "";
this.countPerson = 0L; this.countPerson = 0L;
this.remark = ""; this.remark = "";
this.deviceCode = "";
} }
} }
\ No newline at end of file
...@@ -3,11 +3,11 @@ package com.mortals.xhx.module.room.model; ...@@ -3,11 +3,11 @@ package com.mortals.xhx.module.room.model;
import java.util.List; import java.util.List;
import com.mortals.xhx.module.room.model.RoomEntity; import com.mortals.xhx.module.room.model.RoomEntity;
/** /**
* 房间管理查询对象 * 房间管理查询对象
* *
* @author zxfei * @author zxfei
* @date 2023-05-22 * @date 2023-05-25
*/ */
public class RoomQuery extends RoomEntity { public class RoomQuery extends RoomEntity {
/** 开始 主键ID,主键,自增长 */ /** 开始 主键ID,主键,自增长 */
private Long idStart; private Long idStart;
...@@ -131,6 +131,11 @@ public class RoomQuery extends RoomEntity { ...@@ -131,6 +131,11 @@ public class RoomQuery extends RoomEntity {
/** 结束 更新时间 */ /** 结束 更新时间 */
private String updateTimeEnd; private String updateTimeEnd;
/** 绑定的设备编码 */
private List<String> deviceCodeList;
/** 绑定的设备编码排除列表 */
private List <String> deviceCodeNotList;
/** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */ /** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */
private List<RoomQuery> orConditionList; private List<RoomQuery> orConditionList;
...@@ -817,6 +822,38 @@ public class RoomQuery extends RoomEntity { ...@@ -817,6 +822,38 @@ public class RoomQuery extends RoomEntity {
this.updateTimeEnd = updateTimeEnd; this.updateTimeEnd = updateTimeEnd;
} }
/**
* 获取 绑定的设备编码
* @return deviceCodeList
*/
public List<String> getDeviceCodeList(){
return this.deviceCodeList;
}
/**
* 设置 绑定的设备编码
* @param deviceCodeList
*/
public void setDeviceCodeList(List<String> deviceCodeList){
this.deviceCodeList = deviceCodeList;
}
/**
* 获取 绑定的设备编码
* @return deviceCodeNotList
*/
public List<String> getDeviceCodeNotList(){
return this.deviceCodeNotList;
}
/**
* 设置 绑定的设备编码
* @param deviceCodeNotList
*/
public void setDeviceCodeNotList(List<String> deviceCodeNotList){
this.deviceCodeNotList = deviceCodeNotList;
}
/** /**
* 设置 主键ID,主键,自增长 * 设置 主键ID,主键,自增长
* @param id * @param id
...@@ -1219,6 +1256,25 @@ public class RoomQuery extends RoomEntity { ...@@ -1219,6 +1256,25 @@ public class RoomQuery extends RoomEntity {
} }
/**
* 设置 绑定的设备编码
* @param deviceCode
*/
public RoomQuery deviceCode(String deviceCode){
setDeviceCode(deviceCode);
return this;
}
/**
* 设置 绑定的设备编码
* @param deviceCodeList
*/
public RoomQuery deviceCodeList(List<String> deviceCodeList){
this.deviceCodeList = deviceCodeList;
return this;
}
/** /**
* 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) * 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @return orConditionList * @return orConditionList
......
package com.mortals.xhx.module.room.service.impl; 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 org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl; import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.framework.exception.AppException; import com.mortals.framework.exception.AppException;
...@@ -7,6 +10,8 @@ import com.mortals.xhx.module.room.dao.RoomDao; ...@@ -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.model.RoomEntity;
import com.mortals.xhx.module.room.service.RoomService; import com.mortals.xhx.module.room.service.RoomService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.util.ObjectUtils;
/** /**
* RoomService * RoomService
* 房间管理 service实现 * 房间管理 service实现
...@@ -18,4 +23,19 @@ import lombok.extern.slf4j.Slf4j; ...@@ -18,4 +23,19 @@ import lombok.extern.slf4j.Slf4j;
@Slf4j @Slf4j
public class RoomServiceImpl extends AbstractCRUDServiceImpl<RoomDao, RoomEntity, Long> implements RoomService { 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,11 +7,11 @@ import com.mortals.framework.model.BaseEntityLong; ...@@ -7,11 +7,11 @@ import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.workman.model.vo.WorkmanVo; import com.mortals.xhx.module.workman.model.vo.WorkmanVo;
import lombok.Data; import lombok.Data;
/** /**
* 工作人员实体对象 * 工作人员实体对象
* *
* @author zxfei * @author zxfei
* @date 2023-05-22 * @date 2023-05-25
*/ */
@Data @Data
public class WorkmanEntity extends WorkmanVo { public class WorkmanEntity extends WorkmanVo {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
...@@ -60,6 +60,14 @@ public class WorkmanEntity extends WorkmanVo { ...@@ -60,6 +60,14 @@ public class WorkmanEntity extends WorkmanVo {
* 工作状态,来源基础设置 * 工作状态,来源基础设置
*/ */
private String workStatus; private String workStatus;
/**
* 登录用户名
*/
private String loginName;
/**
* 密码
*/
private String loginPwd;
@Override @Override
public int hashCode() { public int hashCode() {
return this.getId().hashCode(); return this.getId().hashCode();
...@@ -78,7 +86,7 @@ public class WorkmanEntity extends WorkmanVo { ...@@ -78,7 +86,7 @@ public class WorkmanEntity extends WorkmanVo {
public void initAttrValue(){ public void initAttrValue(){
this.roomId = -1L; this.roomId = null;
this.roomName = ""; this.roomName = "";
...@@ -99,5 +107,9 @@ public class WorkmanEntity extends WorkmanVo { ...@@ -99,5 +107,9 @@ public class WorkmanEntity extends WorkmanVo {
this.photoPath = ""; this.photoPath = "";
this.workStatus = ""; this.workStatus = "";
this.loginName = "";
this.loginPwd = "";
} }
} }
\ No newline at end of file
...@@ -3,11 +3,11 @@ package com.mortals.xhx.module.workman.model; ...@@ -3,11 +3,11 @@ package com.mortals.xhx.module.workman.model;
import java.util.List; import java.util.List;
import com.mortals.xhx.module.workman.model.WorkmanEntity; import com.mortals.xhx.module.workman.model.WorkmanEntity;
/** /**
* 工作人员查询对象 * 工作人员查询对象
* *
* @author zxfei * @author zxfei
* @date 2023-05-22 * @date 2023-05-25
*/ */
public class WorkmanQuery extends WorkmanEntity { public class WorkmanQuery extends WorkmanEntity {
/** 开始 序号,主键,自增长 */ /** 开始 序号,主键,自增长 */
private Long idStart; private Long idStart;
...@@ -126,6 +126,16 @@ public class WorkmanQuery extends WorkmanEntity { ...@@ -126,6 +126,16 @@ public class WorkmanQuery extends WorkmanEntity {
/** 结束 修改时间 */ /** 结束 修改时间 */
private String updateTimeEnd; private String updateTimeEnd;
/** 登录用户名 */
private List<String> loginNameList;
/** 登录用户名排除列表 */
private List <String> loginNameNotList;
/** 密码 */
private List<String> loginPwdList;
/** 密码排除列表 */
private List <String> loginPwdNotList;
/** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */ /** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */
private List<WorkmanQuery> orConditionList; private List<WorkmanQuery> orConditionList;
...@@ -810,6 +820,70 @@ public class WorkmanQuery extends WorkmanEntity { ...@@ -810,6 +820,70 @@ public class WorkmanQuery extends WorkmanEntity {
this.updateTimeEnd = updateTimeEnd; this.updateTimeEnd = updateTimeEnd;
} }
/**
* 获取 登录用户名
* @return loginNameList
*/
public List<String> getLoginNameList(){
return this.loginNameList;
}
/**
* 设置 登录用户名
* @param loginNameList
*/
public void setLoginNameList(List<String> loginNameList){
this.loginNameList = loginNameList;
}
/**
* 获取 登录用户名
* @return loginNameNotList
*/
public List<String> getLoginNameNotList(){
return this.loginNameNotList;
}
/**
* 设置 登录用户名
* @param loginNameNotList
*/
public void setLoginNameNotList(List<String> loginNameNotList){
this.loginNameNotList = loginNameNotList;
}
/**
* 获取 密码
* @return loginPwdList
*/
public List<String> getLoginPwdList(){
return this.loginPwdList;
}
/**
* 设置 密码
* @param loginPwdList
*/
public void setLoginPwdList(List<String> loginPwdList){
this.loginPwdList = loginPwdList;
}
/**
* 获取 密码
* @return loginPwdNotList
*/
public List<String> getLoginPwdNotList(){
return this.loginPwdNotList;
}
/**
* 设置 密码
* @param loginPwdNotList
*/
public void setLoginPwdNotList(List<String> loginPwdNotList){
this.loginPwdNotList = loginPwdNotList;
}
/** /**
* 设置 序号,主键,自增长 * 设置 序号,主键,自增长
* @param id * @param id
...@@ -1199,6 +1273,44 @@ public class WorkmanQuery extends WorkmanEntity { ...@@ -1199,6 +1273,44 @@ public class WorkmanQuery extends WorkmanEntity {
} }
/**
* 设置 登录用户名
* @param loginName
*/
public WorkmanQuery loginName(String loginName){
setLoginName(loginName);
return this;
}
/**
* 设置 登录用户名
* @param loginNameList
*/
public WorkmanQuery loginNameList(List<String> loginNameList){
this.loginNameList = loginNameList;
return this;
}
/**
* 设置 密码
* @param loginPwd
*/
public WorkmanQuery loginPwd(String loginPwd){
setLoginPwd(loginPwd);
return this;
}
/**
* 设置 密码
* @param loginPwdList
*/
public WorkmanQuery loginPwdList(List<String> loginPwdList){
this.loginPwdList = loginPwdList;
return this;
}
/** /**
* 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) * 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @return orConditionList * @return orConditionList
......
...@@ -19,15 +19,6 @@ public class WorkmanVo extends BaseEntityLong { ...@@ -19,15 +19,6 @@ public class WorkmanVo extends BaseEntityLong {
private String oldPwd; private String oldPwd;
private String newPwd; private String newPwd;
/** private String deviceCode;
* 登录用户名
*/
@Excel(name = "用户名")
private String loginName;
/**
* 密码
*/
@Excel(name = "密码")
private String loginPwd;
} }
\ No newline at end of file
...@@ -2,6 +2,7 @@ package com.mortals.xhx.module.workman.service.impl; ...@@ -2,6 +2,7 @@ package com.mortals.xhx.module.workman.service.impl;
import com.mortals.framework.common.Rest; import com.mortals.framework.common.Rest;
import com.mortals.framework.util.SecurityUtil; 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.model.GocomeRecordEntity;
import com.mortals.xhx.module.gocome.service.GocomeRecordService; import com.mortals.xhx.module.gocome.service.GocomeRecordService;
import com.mortals.xhx.module.room.model.RoomQuery; import com.mortals.xhx.module.room.model.RoomQuery;
...@@ -37,6 +38,25 @@ public class WorkmanServiceImpl extends AbstractCRUDServiceImpl<WorkmanDao, Work ...@@ -37,6 +38,25 @@ public class WorkmanServiceImpl extends AbstractCRUDServiceImpl<WorkmanDao, Work
private RoomService roomService; 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 @Override
protected void saveAfter(WorkmanEntity entity, Context context) throws AppException { protected void saveAfter(WorkmanEntity entity, Context context) throws AppException {
super.saveAfter(entity, context); super.saveAfter(entity, context);
...@@ -64,9 +84,6 @@ public class WorkmanServiceImpl extends AbstractCRUDServiceImpl<WorkmanDao, Work ...@@ -64,9 +84,6 @@ public class WorkmanServiceImpl extends AbstractCRUDServiceImpl<WorkmanDao, Work
} catch (Exception e) { } catch (Exception e) {
throw new AppException("密码验认出错!", e); throw new AppException("密码验认出错!", e);
} }
// WorkmanEntity update = new WorkmanEntity();
// update.setId(workmanEntity.getId());
// this.dao.update(update);
return workmanEntity; return workmanEntity;
} }
...@@ -146,7 +163,12 @@ public class WorkmanServiceImpl extends AbstractCRUDServiceImpl<WorkmanDao, Work ...@@ -146,7 +163,12 @@ public class WorkmanServiceImpl extends AbstractCRUDServiceImpl<WorkmanDao, Work
recordEntity.setCreateUserId(this.getContextUserId(context)); recordEntity.setCreateUserId(this.getContextUserId(context));
gocomeRecordService.save(recordEntity, context); gocomeRecordService.save(recordEntity, context);
return Rest.ok(); 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; package com.mortals.xhx.module.workman.web;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.mortals.framework.annotation.UnAuth; import com.mortals.framework.annotation.UnAuth;
import com.mortals.framework.common.Rest; import com.mortals.framework.common.Rest;
...@@ -8,16 +9,20 @@ import com.mortals.xhx.base.system.param.service.ParamService; ...@@ -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.model.BasicStatusQuery;
import com.mortals.xhx.module.basic.service.BasicStatusService; import com.mortals.xhx.module.basic.service.BasicStatusService;
import com.mortals.xhx.module.device.model.DeviceEntity; 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.model.RoomQuery;
import com.mortals.xhx.module.room.service.RoomService; import com.mortals.xhx.module.room.service.RoomService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import com.mortals.framework.model.Context; import com.mortals.framework.model.Context;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.module.workman.model.WorkmanEntity; import com.mortals.xhx.module.workman.model.WorkmanEntity;
import com.mortals.xhx.module.workman.service.WorkmanService; import com.mortals.xhx.module.workman.service.WorkmanService;
...@@ -26,21 +31,23 @@ import com.mortals.framework.util.StringUtils; ...@@ -26,21 +31,23 @@ import com.mortals.framework.util.StringUtils;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import static com.mortals.framework.ap.SysConstains.*; import static com.mortals.framework.ap.SysConstains.*;
/** /**
* * 工作人员
* 工作人员 *
* * @author zxfei
* @author zxfei * @date 2023-05-22
* @date 2023-05-22 */
*/
@RestController @RestController
@RequestMapping("workman") @RequestMapping("workman")
@Slf4j @Slf4j
public class WorkmanController extends BaseCRUDJsonBodyMappingController<WorkmanService,WorkmanEntity,Long> { public class WorkmanController extends BaseCRUDJsonBodyMappingController<WorkmanService, WorkmanEntity, Long> {
@Autowired @Autowired
private ParamService paramService; private ParamService paramService;
...@@ -50,32 +57,46 @@ public class WorkmanController extends BaseCRUDJsonBodyMappingController<Workman ...@@ -50,32 +57,46 @@ public class WorkmanController extends BaseCRUDJsonBodyMappingController<Workman
private BasicStatusService statusService; private BasicStatusService statusService;
public WorkmanController(){ public WorkmanController() {
super.setModuleDesc( "工作人员"); super.setModuleDesc("工作人员");
} }
@Override @Override
protected void init(Map<String, Object> model, Context context) { 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, "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))); 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); 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") @PostMapping(value = "change/status")
@UnAuth
public Rest<Void> changeStatus(@RequestBody WorkmanEntity workmanEntity) { public Rest<Void> changeStatus(@RequestBody WorkmanEntity workmanEntity) {
String busiDesc = this.getModuleDesc() + "设备激活"; String busiDesc = this.getModuleDesc() + "更新状态";
Rest<Void> rest = Rest.ok(busiDesc + " 【成功】"); Rest<Void> rest = Rest.ok(busiDesc + " 【成功】");
try { try {
this.service.changeStatus(workmanEntity, getContext()); this.service.changeStatus(workmanEntity, getContext());
recordSysLog(request, busiDesc + " 【成功】"); recordSysLog(request, busiDesc + " 【成功】");
} catch (Exception e) { } catch (Exception e) {
log.error("设备激活消息", e); log.error("工作人员更新状态消息", e);
rest = Rest.fail(super.convertException(e)); rest = Rest.fail(super.convertException(e));
} }
return rest; return rest;
...@@ -93,7 +114,6 @@ public class WorkmanController extends BaseCRUDJsonBodyMappingController<Workman ...@@ -93,7 +114,6 @@ public class WorkmanController extends BaseCRUDJsonBodyMappingController<Workman
try { try {
String ip = super.getRequestIP(request); String ip = super.getRequestIP(request);
WorkmanEntity workmanEntity = this.service.doLogin(query.getLoginName(), query.getLoginPwd(), ip); 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_CODE, VALUE_RESULT_SUCCESS);
ret.put(KEY_RESULT_MSG, "工作人员登录成功!"); ret.put(KEY_RESULT_MSG, "工作人员登录成功!");
ret.put(KEY_RESULT_DATA, workmanEntity); ret.put(KEY_RESULT_DATA, workmanEntity);
...@@ -149,5 +169,18 @@ public class WorkmanController extends BaseCRUDJsonBodyMappingController<Workman ...@@ -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
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"mybatis-3-mapper.dtd"> "mybatis-3-mapper.dtd">
<mapper namespace="com.mortals.xhx.module.room.dao.ibatis.RoomDaoImpl"> <mapper namespace="com.mortals.xhx.module.room.dao.ibatis.RoomDaoImpl">
<!-- 字段和属性映射 --> <!-- 字段和属性映射 -->
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
<result property="createTime" column="createTime" /> <result property="createTime" column="createTime" />
<result property="updateUserId" column="updateUserId" /> <result property="updateUserId" column="updateUserId" />
<result property="updateTime" column="updateTime" /> <result property="updateTime" column="updateTime" />
<result property="deviceCode" column="deviceCode" />
</resultMap> </resultMap>
...@@ -60,23 +61,26 @@ ...@@ -60,23 +61,26 @@
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('updateTime') or colPickMode == 1 and data.containsKey('updateTime')))"> <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('updateTime') or colPickMode == 1 and data.containsKey('updateTime')))">
a.updateTime, a.updateTime,
</if> </if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('deviceCode') or colPickMode == 1 and data.containsKey('deviceCode')))">
a.deviceCode,
</if>
</trim> </trim>
</sql> </sql>
<!-- 新增 区分主键自增加还是业务插入 --> <!-- 新增 区分主键自增加还是业务插入 -->
<insert id="insert" parameterType="RoomEntity" useGeneratedKeys="true" keyProperty="id"> <insert id="insert" parameterType="RoomEntity" useGeneratedKeys="true" keyProperty="id">
insert into mortals_xhx_room insert into mortals_xhx_room
(roomName,roomCode,roomType,deviceId,deviceName,countPerson,remark,createUserId,createTime,updateUserId,updateTime) (roomName,roomCode,roomType,deviceId,deviceName,countPerson,remark,createUserId,createTime,updateUserId,updateTime,deviceCode)
VALUES VALUES
(#{roomName},#{roomCode},#{roomType},#{deviceId},#{deviceName},#{countPerson},#{remark},#{createUserId},#{createTime},#{updateUserId},#{updateTime}) (#{roomName},#{roomCode},#{roomType},#{deviceId},#{deviceName},#{countPerson},#{remark},#{createUserId},#{createTime},#{updateUserId},#{updateTime},#{deviceCode})
</insert> </insert>
<!-- 批量新增 --> <!-- 批量新增 -->
<insert id="insertBatch" parameterType="paramDto"> <insert id="insertBatch" parameterType="paramDto">
insert into mortals_xhx_room insert into mortals_xhx_room
(roomName,roomCode,roomType,deviceId,deviceName,countPerson,remark,createUserId,createTime,updateUserId,updateTime) (roomName,roomCode,roomType,deviceId,deviceName,countPerson,remark,createUserId,createTime,updateUserId,updateTime,deviceCode)
VALUES VALUES
<foreach collection="data.dataList" item="item" index="index" separator="," > <foreach collection="data.dataList" item="item" index="index" separator="," >
(#{item.roomName},#{item.roomCode},#{item.roomType},#{item.deviceId},#{item.deviceName},#{item.countPerson},#{item.remark},#{item.createUserId},#{item.createTime},#{item.updateUserId},#{item.updateTime}) (#{item.roomName},#{item.roomCode},#{item.roomType},#{item.deviceId},#{item.deviceName},#{item.countPerson},#{item.remark},#{item.createUserId},#{item.createTime},#{item.updateUserId},#{item.updateTime},#{item.deviceCode})
</foreach> </foreach>
</insert> </insert>
...@@ -134,6 +138,9 @@ ...@@ -134,6 +138,9 @@
<if test="(colPickMode==0 and data.containsKey('updateTime')) or (colPickMode==1 and !data.containsKey('updateTime'))"> <if test="(colPickMode==0 and data.containsKey('updateTime')) or (colPickMode==1 and !data.containsKey('updateTime'))">
a.updateTime=#{data.updateTime}, a.updateTime=#{data.updateTime},
</if> </if>
<if test="(colPickMode==0 and data.containsKey('deviceCode')) or (colPickMode==1 and !data.containsKey('deviceCode'))">
a.deviceCode=#{data.deviceCode},
</if>
</trim> </trim>
<trim suffixOverrides="where" suffix=""> <trim suffixOverrides="where" suffix="">
where where
...@@ -248,6 +255,13 @@ ...@@ -248,6 +255,13 @@
</if> </if>
</foreach> </foreach>
</trim> </trim>
<trim prefix="deviceCode=(case" suffix="ELSE deviceCode end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('deviceCode')) or (colPickMode==1 and !item.containsKey('deviceCode'))">
when a.id=#{item.id} then #{item.deviceCode}
</if>
</foreach>
</trim>
</trim> </trim>
where id in where id in
<foreach collection="data.dataList" item="item" index="index" open="(" separator="," close=")"> <foreach collection="data.dataList" item="item" index="index" open="(" separator="," close=")">
...@@ -640,6 +654,27 @@ ...@@ -640,6 +654,27 @@
<if test="conditionParamRef.containsKey('updateTimeEnd') and conditionParamRef.updateTimeEnd != null and conditionParamRef.updateTimeEnd!=''"> <if test="conditionParamRef.containsKey('updateTimeEnd') and conditionParamRef.updateTimeEnd != null and conditionParamRef.updateTimeEnd!=''">
${_conditionType_} a.updateTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.updateTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s') ${_conditionType_} a.updateTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.updateTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
</if> </if>
<if test="conditionParamRef.containsKey('deviceCode')">
<if test="conditionParamRef.deviceCode != null and conditionParamRef.deviceCode != ''">
${_conditionType_} a.deviceCode like #{${_conditionParam_}.deviceCode}
</if>
<if test="conditionParamRef.deviceCode == null">
${_conditionType_} a.deviceCode is null
</if>
</if>
<if test="conditionParamRef.containsKey('deviceCodeList') and conditionParamRef.deviceCodeList.size() > 0">
${_conditionType_} a.deviceCode in
<foreach collection="conditionParamRef.deviceCodeList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('deviceCodeNotList') and conditionParamRef.deviceCodeNotList.size() > 0">
${_conditionType_} a.deviceCode not in
<foreach collection="conditionParamRef.deviceCodeNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
</sql> </sql>
<sql id="_orderCols_"> <sql id="_orderCols_">
<if test="orderColList != null and !orderColList.isEmpty()"> <if test="orderColList != null and !orderColList.isEmpty()">
...@@ -713,6 +748,11 @@ ...@@ -713,6 +748,11 @@
<if test='orderCol.updateTime != null and "DESC".equalsIgnoreCase(orderCol.updateTime)'>DESC</if> <if test='orderCol.updateTime != null and "DESC".equalsIgnoreCase(orderCol.updateTime)'>DESC</if>
, ,
</if> </if>
<if test="orderCol.containsKey('deviceCode')">
a.deviceCode
<if test='orderCol.deviceCode != null and "DESC".equalsIgnoreCase(orderCol.deviceCode)'>DESC</if>
,
</if>
</trim> </trim>
</if> </if>
</sql> </sql>
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"mybatis-3-mapper.dtd"> "mybatis-3-mapper.dtd">
<mapper namespace="com.mortals.xhx.module.workman.dao.ibatis.WorkmanDaoImpl"> <mapper namespace="com.mortals.xhx.module.workman.dao.ibatis.WorkmanDaoImpl">
<!-- 字段和属性映射 --> <!-- 字段和属性映射 -->
...@@ -20,6 +20,8 @@ ...@@ -20,6 +20,8 @@
<result property="createTime" column="createTime" /> <result property="createTime" column="createTime" />
<result property="createUserId" column="createUserId" /> <result property="createUserId" column="createUserId" />
<result property="updateTime" column="updateTime" /> <result property="updateTime" column="updateTime" />
<result property="loginName" column="loginName" />
<result property="loginPwd" column="loginPwd" />
</resultMap> </resultMap>
...@@ -72,23 +74,29 @@ ...@@ -72,23 +74,29 @@
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('updateTime') or colPickMode == 1 and data.containsKey('updateTime')))"> <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('updateTime') or colPickMode == 1 and data.containsKey('updateTime')))">
a.updateTime, a.updateTime,
</if> </if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('loginName') or colPickMode == 1 and data.containsKey('loginName')))">
a.loginName,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('loginPwd') or colPickMode == 1 and data.containsKey('loginPwd')))">
a.loginPwd,
</if>
</trim> </trim>
</sql> </sql>
<!-- 新增 区分主键自增加还是业务插入 --> <!-- 新增 区分主键自增加还是业务插入 -->
<insert id="insert" parameterType="WorkmanEntity" useGeneratedKeys="true" keyProperty="id"> <insert id="insert" parameterType="WorkmanEntity" useGeneratedKeys="true" keyProperty="id">
insert into mortals_xhx_workman insert into mortals_xhx_workman
(roomId,roomName,deptName,name,sex,userPost,phone,mobile,summary,photoPath,workStatus,createTime,createUserId,updateTime) (roomId,roomName,deptName,name,sex,userPost,phone,mobile,summary,photoPath,workStatus,createTime,createUserId,updateTime,loginName,loginPwd)
VALUES VALUES
(#{roomId},#{roomName},#{deptName},#{name},#{sex},#{userPost},#{phone},#{mobile},#{summary},#{photoPath},#{workStatus},#{createTime},#{createUserId},#{updateTime}) (#{roomId},#{roomName},#{deptName},#{name},#{sex},#{userPost},#{phone},#{mobile},#{summary},#{photoPath},#{workStatus},#{createTime},#{createUserId},#{updateTime},#{loginName},#{loginPwd})
</insert> </insert>
<!-- 批量新增 --> <!-- 批量新增 -->
<insert id="insertBatch" parameterType="paramDto"> <insert id="insertBatch" parameterType="paramDto">
insert into mortals_xhx_workman insert into mortals_xhx_workman
(roomId,roomName,deptName,name,sex,userPost,phone,mobile,summary,photoPath,workStatus,createTime,createUserId,updateTime) (roomId,roomName,deptName,name,sex,userPost,phone,mobile,summary,photoPath,workStatus,createTime,createUserId,updateTime,loginName,loginPwd)
VALUES VALUES
<foreach collection="data.dataList" item="item" index="index" separator="," > <foreach collection="data.dataList" item="item" index="index" separator="," >
(#{item.roomId},#{item.roomName},#{item.deptName},#{item.name},#{item.sex},#{item.userPost},#{item.phone},#{item.mobile},#{item.summary},#{item.photoPath},#{item.workStatus},#{item.createTime},#{item.createUserId},#{item.updateTime}) (#{item.roomId},#{item.roomName},#{item.deptName},#{item.name},#{item.sex},#{item.userPost},#{item.phone},#{item.mobile},#{item.summary},#{item.photoPath},#{item.workStatus},#{item.createTime},#{item.createUserId},#{item.updateTime},#{item.loginName},#{item.loginPwd})
</foreach> </foreach>
</insert> </insert>
...@@ -149,6 +157,12 @@ ...@@ -149,6 +157,12 @@
<if test="(colPickMode==0 and data.containsKey('updateTime')) or (colPickMode==1 and !data.containsKey('updateTime'))"> <if test="(colPickMode==0 and data.containsKey('updateTime')) or (colPickMode==1 and !data.containsKey('updateTime'))">
a.updateTime=#{data.updateTime}, a.updateTime=#{data.updateTime},
</if> </if>
<if test="(colPickMode==0 and data.containsKey('loginName')) or (colPickMode==1 and !data.containsKey('loginName'))">
a.loginName=#{data.loginName},
</if>
<if test="(colPickMode==0 and data.containsKey('loginPwd')) or (colPickMode==1 and !data.containsKey('loginPwd'))">
a.loginPwd=#{data.loginPwd},
</if>
</trim> </trim>
<trim suffixOverrides="where" suffix=""> <trim suffixOverrides="where" suffix="">
where where
...@@ -274,6 +288,20 @@ ...@@ -274,6 +288,20 @@
</if> </if>
</foreach> </foreach>
</trim> </trim>
<trim prefix="loginName=(case" suffix="ELSE loginName end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('loginName')) or (colPickMode==1 and !item.containsKey('loginName'))">
when a.id=#{item.id} then #{item.loginName}
</if>
</foreach>
</trim>
<trim prefix="loginPwd=(case" suffix="ELSE loginPwd end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('loginPwd')) or (colPickMode==1 and !item.containsKey('loginPwd'))">
when a.id=#{item.id} then #{item.loginPwd}
</if>
</foreach>
</trim>
</trim> </trim>
where id in where id in
<foreach collection="data.dataList" item="item" index="index" open="(" separator="," close=")"> <foreach collection="data.dataList" item="item" index="index" open="(" separator="," close=")">
...@@ -717,6 +745,48 @@ ...@@ -717,6 +745,48 @@
<if test="conditionParamRef.containsKey('updateTimeEnd') and conditionParamRef.updateTimeEnd != null and conditionParamRef.updateTimeEnd!=''"> <if test="conditionParamRef.containsKey('updateTimeEnd') and conditionParamRef.updateTimeEnd != null and conditionParamRef.updateTimeEnd!=''">
${_conditionType_} a.updateTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.updateTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s') ${_conditionType_} a.updateTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.updateTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
</if> </if>
<if test="conditionParamRef.containsKey('loginName')">
<if test="conditionParamRef.loginName != null and conditionParamRef.loginName != ''">
${_conditionType_} a.loginName like #{${_conditionParam_}.loginName}
</if>
<if test="conditionParamRef.loginName == null">
${_conditionType_} a.loginName is null
</if>
</if>
<if test="conditionParamRef.containsKey('loginNameList') and conditionParamRef.loginNameList.size() > 0">
${_conditionType_} a.loginName in
<foreach collection="conditionParamRef.loginNameList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('loginNameNotList') and conditionParamRef.loginNameNotList.size() > 0">
${_conditionType_} a.loginName not in
<foreach collection="conditionParamRef.loginNameNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('loginPwd')">
<if test="conditionParamRef.loginPwd != null and conditionParamRef.loginPwd != ''">
${_conditionType_} a.loginPwd like #{${_conditionParam_}.loginPwd}
</if>
<if test="conditionParamRef.loginPwd == null">
${_conditionType_} a.loginPwd is null
</if>
</if>
<if test="conditionParamRef.containsKey('loginPwdList') and conditionParamRef.loginPwdList.size() > 0">
${_conditionType_} a.loginPwd in
<foreach collection="conditionParamRef.loginPwdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('loginPwdNotList') and conditionParamRef.loginPwdNotList.size() > 0">
${_conditionType_} a.loginPwd not in
<foreach collection="conditionParamRef.loginPwdNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
</sql> </sql>
<sql id="_orderCols_"> <sql id="_orderCols_">
<if test="orderColList != null and !orderColList.isEmpty()"> <if test="orderColList != null and !orderColList.isEmpty()">
...@@ -805,6 +875,16 @@ ...@@ -805,6 +875,16 @@
<if test='orderCol.updateTime != null and "DESC".equalsIgnoreCase(orderCol.updateTime)'>DESC</if> <if test='orderCol.updateTime != null and "DESC".equalsIgnoreCase(orderCol.updateTime)'>DESC</if>
, ,
</if> </if>
<if test="orderCol.containsKey('loginName')">
a.loginName
<if test='orderCol.loginName != null and "DESC".equalsIgnoreCase(orderCol.loginName)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('loginPwd')">
a.loginPwd
<if test='orderCol.loginPwd != null and "DESC".equalsIgnoreCase(orderCol.loginPwd)'>DESC</if>
,
</if>
</trim> </trim>
</if> </if>
</sql> </sql>
......
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