Commit 429ba8ee authored by 赵啸非's avatar 赵啸非

添加代办人与代办记录

parent 71ee3156
......@@ -133,6 +133,9 @@ CREATE TABLE `mortals_agent_declare`
`apply_name` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '申请人名称',
`content` varchar(1024) CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT '提交诉求内容',
`submit_time` datetime DEFAULT NULL COMMENT '提交申报时间',
`agent_user_id` bigint(20) DEFAULT NULL COMMENT '代办人id',
`agent_user_name` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '代办人名称',
`assign_time` datetime DEFAULT NULL COMMENT '分派时间',
`result` varchar(1024) CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT '办理结果',
`fin_time` datetime DEFAULT NULL COMMENT '办理完结时间',
`declare_status` tinyint(2) DEFAULT '0' COMMENT '申报状态(0.草稿,1.办理中,2.完结,99.已撤回)',
......@@ -219,41 +222,6 @@ CREATE TABLE `mortals_agent_evaluation_info`
-- ----------------------------
-- 用户
-- ----------------------------
DROP TABLE IF EXISTS `mortals_agent_user`;
CREATE TABLE `mortals_agent_user`
(
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '用户ID,主键,自增长',
`loginName` varchar(50) CHARACTER SET utf8 DEFAULT NULL COMMENT '登录名',
`loginPwd` varchar(128) CHARACTER SET utf8 DEFAULT NULL COMMENT '登录密码,使用md5双次加密',
`loginPwd1` varchar(128) CHARACTER SET utf8 DEFAULT NULL COMMENT '最近一次使用密码,使用md5双次加密',
`loginPwd2` varchar(128) CHARACTER SET utf8 DEFAULT NULL COMMENT '最近二次使用密码,使用md5双次加密',
`loginPwd3` varchar(128) CHARACTER SET utf8 DEFAULT NULL COMMENT '最近三次使用密码,使用md5双次加密',
`loginLimitAddress` varchar(200) CHARACTER SET utf8 DEFAULT NULL COMMENT '登录限制地址,多个IP地址用逗号分隔,可以使用IP段匹配,如:172.17.*非空:则只能该值内的IP可以登录',
`realName` varchar(50) CHARACTER SET utf8 DEFAULT NULL COMMENT '用户名',
`mobile` varchar(21) CHARACTER SET utf8 DEFAULT NULL COMMENT '用户手机号',
`phone` varchar(21) CHARACTER SET utf8 DEFAULT NULL COMMENT '用户联系电话',
`email` varchar(50) CHARACTER SET utf8 DEFAULT NULL COMMENT '用户邮箱',
`qq` varchar(20) CHARACTER SET utf8 DEFAULT NULL COMMENT 'QQ号码',
`open_id` varchar(128) CHARACTER SET utf8 DEFAULT NULL COMMENT 'openId,绑定企业',
`company_id` bigint(20) DEFAULT NULL COMMENT '绑定公司企业id',
`userType` tinyint(2) DEFAULT NULL COMMENT '用户类型,0:系统用户 1:普通用户 2:公司企业用户,默认2',
`siteId` bigint(20) DEFAULT '0' COMMENT '站点id',
`status` tinyint(2) DEFAULT '1' COMMENT '用户状态,0:停用,1:正常,2:冻结,3:销户,4:离职,默认1',
`customerId` bigint(20) DEFAULT NULL COMMENT '客户ID',
`createTime` datetime DEFAULT NULL COMMENT '创建时间',
`createUserId` bigint(20) DEFAULT NULL COMMENT '创建用户',
`createUserName` varchar(50) CHARACTER SET utf8 DEFAULT NULL COMMENT '创建用户名称',
`lastLoginTime` datetime DEFAULT NULL COMMENT '最后一次登录时间',
`lastLoginAddress` varchar(21) CHARACTER SET utf8 DEFAULT NULL COMMENT '最后一次登录地址',
`lastModPwdTime` datetime DEFAULT NULL COMMENT '最后修改密码时间',
`lastModPwdAddr` varchar(21) CHARACTER SET utf8 DEFAULT NULL COMMENT '最后修改密码地址',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `idx_loginName` (`loginName`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=ujis ROW_FORMAT=DYNAMIC COMMENT='用户信息';
DROP TABLE IF EXISTS `mortals_agent_user`;
CREATE TABLE `mortals_agent_user` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '用户ID,主键,自增长',
......@@ -267,7 +235,8 @@ CREATE TABLE `mortals_agent_user` (
`qq` varchar(20) DEFAULT NULL COMMENT 'QQ号码',
`open_id` varchar(128) CHARACTER SET utf8 DEFAULT NULL COMMENT 'openId,绑定企业',
`company_id` bigint(20) DEFAULT NULL COMMENT '绑定公司企业id',
`userType` tinyint(2) DEFAULT NULL COMMENT '用户类型(0.系统用户,1.普通用户,2.公司企业用户)',
`customerId` bigint(20) DEFAULT null COMMENT '代办员工id',
`userType` tinyint(2) DEFAULT NULL COMMENT '用户类型(0.系统用户,1.普通用户,2.公司企业用户,3.代办帮办员工)',
`siteIds` varchar(512) DEFAULT NULL COMMENT '所属站点id,多个逗号分隔',
`areaCodes` varchar(512) DEFAULT NULL COMMENT '所属区域code,多个逗号分隔',
`status` tinyint(2) DEFAULT NULL COMMENT '用户状态(0.停用,1.正常,2.冻结,3.销户,4.离职)',
......@@ -278,3 +247,38 @@ CREATE TABLE `mortals_agent_user` (
`lastLoginAddress` varchar(21) DEFAULT NULL COMMENT '最后一次登录地址',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户信息业务';
-- ----------------------------
-- 代办帮办人员
-- ----------------------------
DROP TABLE IF EXISTS `mortals_agent_staff`;
CREATE TABLE `mortals_agent_staff` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '序号,主键,自增长',
`user_id` bigint(20) NOT NULL COMMENT 'user表外键,user.id',
`login_name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '登录名',
`login_pwd` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '登录密码',
`real_name` varchar(64) DEFAULT NULL COMMENT '真实姓名',
`photo_path` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '照片',
`phone_number` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '联系方式',
`dept_name` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '所属部门',
`total_num` int(4) DEFAULT '0' COMMENT '累计代办次数',
`total_score` int(4) DEFAULT '0' COMMENT '累计评分',
`remark` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注',
`create_user_id` bigint(20) DEFAULT NULL COMMENT '创建用户',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `idx_loginName` (`login_Name`) USING BTREE
) CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '代办帮办人员';
ALTER TABLE mortals_agent_declare ADD COLUMN `agent_user_id` bigint(20) DEFAULT NULL COMMENT '代办人id' AFTER submit_time;
ALTER TABLE mortals_agent_declare ADD COLUMN `agent_user_name` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '代办人名称' AFTER agent_user_id;
ALTER TABLE mortals_agent_declare ADD COLUMN `assign_time` datetime DEFAULT NULL COMMENT '分派时间' AFTER agent_user_name;
ALTER TABLE mortals_agent_user ADD COLUMN `customerId` bigint(20) DEFAULT null COMMENT '代办员工id' AFTER company_id;
\ No newline at end of file
......@@ -67,18 +67,14 @@ public class LoginController extends BaseCRUDJsonBodyMappingController<UserServi
UserEntity userEntity = null;
try {
loginForm.validate();
//userEntity = userService.doLogin(loginName, password, ip);
userEntity = userService.doLogin(loginName, password, ip);
UserQuery userQuery = new UserQuery();
userQuery.setLoginName(loginName);
userEntity = userService.selectOne(userQuery);
if (userEntity == null) {
throw new AppException("用户名不存在");
}
userEntity.setLastLoginAddress(ip);
recordSysLog(request, userEntity, "用户登录系统成功!");
// 返回拥有的菜单数据
Set<String> urls = resourceService.findUrlSetByUserId(userEntity.getId());
......@@ -126,8 +122,9 @@ public class LoginController extends BaseCRUDJsonBodyMappingController<UserServi
super.removeCurrUser(request);
}
@RequestMapping("index")
public String index() throws Exception {
public String index(HttpServletRequest request, HttpServletResponse response) throws Exception {
JSONObject ret = new JSONObject();
IUser user = this.getCurUser();
if (user == null) {
......@@ -151,7 +148,7 @@ public class LoginController extends BaseCRUDJsonBodyMappingController<UserServi
data.put("id", user.getId());
data.put("userType", user.getUserType());
ret.put(KEY_RESULT_DATA, data);
cacheService.hset(RedisKey.KEY_USER_MENU_CACHE, user.getId().toString(), generateMenuUrlCode(urls));
cacheService.hset(RedisKey.KEY_USER_MENU_CACHE, user.getId().toString(), MenuEncodeUtil.generateMenuUrlCode(urls));
ret.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS);
ret.put(KEY_RESULT_MSG, "用户登录系统成功!");
......
......@@ -380,7 +380,9 @@ public class UserServiceImpl extends AbstractCRUDCacheServiceImpl<UserDao, UserE
roleUserService.remove(userIds, context);
}
public static void main(String[] args) {
public static void main(String[] args) throws Exception {
System.out.println(SecurityUtil.md5DoubleEncoding("xhxADMIN8@a"));
}
}
\ No newline at end of file
......@@ -10,13 +10,13 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.declare.model.vo.DeclareVo;
import com.mortals.xhx.module.declare.model.DeclareFinImagesEntity;
import com.mortals.xhx.module.declare.model.DeclareImagesEntity;
import lombok.Data;
/**
* 企业代办申报实体对象
*
* @author zxfei
* @date 2025-04-27
* @date 2025-05-09
*/
@Data
public class DeclareEntity extends DeclareVo {
......@@ -119,15 +119,27 @@ public class DeclareEntity extends DeclareVo {
*/
private String applyOpenId;
/**
* 企业代办申报办结图片信息
* 代办人id
*/
private List<DeclareFinImagesEntity> declareFinImagesList=new ArrayList<>();;
public List<DeclareFinImagesEntity> getDeclareFinImagesList(){
return declareFinImagesList;
private Long agentUserId;
/**
* 代办人名称
*/
private String agentUserName;
/**
* 分派时间
*/
private Date assignTime;
/**
* 企业代办申报图片信息
*/
private List<DeclareImagesEntity> declareImagesList=new ArrayList<>();;
public List<DeclareImagesEntity> getDeclareImagesList(){
return declareImagesList;
}
public void setDeclareFinImagesList(List<DeclareFinImagesEntity> declareFinImagesList){
this.declareFinImagesList = declareFinImagesList;
public void setDeclareImagesList(List<DeclareImagesEntity> declareImagesList){
this.declareImagesList = declareImagesList;
}
@Override
public int hashCode() {
......@@ -170,5 +182,8 @@ public class DeclareEntity extends DeclareVo {
this.companyName = "";
this.applyId = null;
this.applyOpenId = "";
this.agentUserId = null;
this.agentUserName = "";
this.assignTime = null;
}
}
\ No newline at end of file
......@@ -8,7 +8,7 @@ import com.mortals.xhx.module.declare.model.DeclareEntity;
* 企业代办申报查询对象
*
* @author zxfei
* @date 2025-04-27
* @date 2025-05-09
*/
public class DeclareQuery extends DeclareEntity {
/** 开始 主键ID,主键,自增长 */
......@@ -255,6 +255,32 @@ public class DeclareQuery extends DeclareEntity {
/** 申请人openId排除列表 */
private List <String> applyOpenIdNotList;
/** 开始 代办人id */
private Long agentUserIdStart;
/** 结束 代办人id */
private Long agentUserIdEnd;
/** 增加 代办人id */
private Long agentUserIdIncrement;
/** 代办人id列表 */
private List <Long> agentUserIdList;
/** 代办人id排除列表 */
private List <Long> agentUserIdNotList;
/** 代办人名称 */
private List<String> agentUserNameList;
/** 代办人名称排除列表 */
private List <String> agentUserNameNotList;
/** 开始 分派时间 */
private String assignTimeStart;
/** 结束 分派时间 */
private String assignTimeEnd;
/** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */
private List<DeclareQuery> orConditionList;
......@@ -1649,6 +1675,151 @@ public class DeclareQuery extends DeclareEntity {
this.applyOpenIdNotList = applyOpenIdNotList;
}
/**
* 获取 开始 代办人id
* @return agentUserIdStart
*/
public Long getAgentUserIdStart(){
return this.agentUserIdStart;
}
/**
* 设置 开始 代办人id
* @param agentUserIdStart
*/
public void setAgentUserIdStart(Long agentUserIdStart){
this.agentUserIdStart = agentUserIdStart;
}
/**
* 获取 结束 代办人id
* @return $agentUserIdEnd
*/
public Long getAgentUserIdEnd(){
return this.agentUserIdEnd;
}
/**
* 设置 结束 代办人id
* @param agentUserIdEnd
*/
public void setAgentUserIdEnd(Long agentUserIdEnd){
this.agentUserIdEnd = agentUserIdEnd;
}
/**
* 获取 增加 代办人id
* @return agentUserIdIncrement
*/
public Long getAgentUserIdIncrement(){
return this.agentUserIdIncrement;
}
/**
* 设置 增加 代办人id
* @param agentUserIdIncrement
*/
public void setAgentUserIdIncrement(Long agentUserIdIncrement){
this.agentUserIdIncrement = agentUserIdIncrement;
}
/**
* 获取 代办人id
* @return agentUserIdList
*/
public List<Long> getAgentUserIdList(){
return this.agentUserIdList;
}
/**
* 设置 代办人id
* @param agentUserIdList
*/
public void setAgentUserIdList(List<Long> agentUserIdList){
this.agentUserIdList = agentUserIdList;
}
/**
* 获取 代办人id
* @return agentUserIdNotList
*/
public List<Long> getAgentUserIdNotList(){
return this.agentUserIdNotList;
}
/**
* 设置 代办人id
* @param agentUserIdNotList
*/
public void setAgentUserIdNotList(List<Long> agentUserIdNotList){
this.agentUserIdNotList = agentUserIdNotList;
}
/**
* 获取 代办人名称
* @return agentUserNameList
*/
public List<String> getAgentUserNameList(){
return this.agentUserNameList;
}
/**
* 设置 代办人名称
* @param agentUserNameList
*/
public void setAgentUserNameList(List<String> agentUserNameList){
this.agentUserNameList = agentUserNameList;
}
/**
* 获取 代办人名称
* @return agentUserNameNotList
*/
public List<String> getAgentUserNameNotList(){
return this.agentUserNameNotList;
}
/**
* 设置 代办人名称
* @param agentUserNameNotList
*/
public void setAgentUserNameNotList(List<String> agentUserNameNotList){
this.agentUserNameNotList = agentUserNameNotList;
}
/**
* 获取 开始 分派时间
* @return assignTimeStart
*/
public String getAssignTimeStart(){
return this.assignTimeStart;
}
/**
* 设置 开始 分派时间
* @param assignTimeStart
*/
public void setAssignTimeStart(String assignTimeStart){
this.assignTimeStart = assignTimeStart;
}
/**
* 获取 结束 分派时间
* @return assignTimeEnd
*/
public String getAssignTimeEnd(){
return this.assignTimeEnd;
}
/**
* 设置 结束 分派时间
* @param assignTimeEnd
*/
public void setAssignTimeEnd(String assignTimeEnd){
this.assignTimeEnd = assignTimeEnd;
}
/**
* 设置 主键ID,主键,自增长
* @param id
......@@ -2459,6 +2630,80 @@ public class DeclareQuery extends DeclareEntity {
return this;
}
/**
* 设置 代办人id
* @param agentUserId
*/
public DeclareQuery agentUserId(Long agentUserId){
setAgentUserId(agentUserId);
return this;
}
/**
* 设置 开始 代办人id
* @param agentUserIdStart
*/
public DeclareQuery agentUserIdStart(Long agentUserIdStart){
this.agentUserIdStart = agentUserIdStart;
return this;
}
/**
* 设置 结束 代办人id
* @param agentUserIdEnd
*/
public DeclareQuery agentUserIdEnd(Long agentUserIdEnd){
this.agentUserIdEnd = agentUserIdEnd;
return this;
}
/**
* 设置 增加 代办人id
* @param agentUserIdIncrement
*/
public DeclareQuery agentUserIdIncrement(Long agentUserIdIncrement){
this.agentUserIdIncrement = agentUserIdIncrement;
return this;
}
/**
* 设置 代办人id
* @param agentUserIdList
*/
public DeclareQuery agentUserIdList(List<Long> agentUserIdList){
this.agentUserIdList = agentUserIdList;
return this;
}
/**
* 设置 代办人id
* @param agentUserIdNotList
*/
public DeclareQuery agentUserIdNotList(List<Long> agentUserIdNotList){
this.agentUserIdNotList = agentUserIdNotList;
return this;
}
/**
* 设置 代办人名称
* @param agentUserName
*/
public DeclareQuery agentUserName(String agentUserName){
setAgentUserName(agentUserName);
return this;
}
/**
* 设置 代办人名称
* @param agentUserNameList
*/
public DeclareQuery agentUserNameList(List<String> agentUserNameList){
this.agentUserNameList = agentUserNameList;
return this;
}
/**
* 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @return orConditionList
......
......@@ -26,4 +26,24 @@ public interface DeclareService extends ICRUDService<DeclareEntity,Long>{
*/
Rest<String> declareCancel(DeclareQuery query, Context context);
/**
* 分派工作
* @param query
* @param context
* @return
*/
Rest<String> doAssignWork(DeclareQuery query, Context context);
/**
* 办结工作
* @param query
* @param context
* @return
*/
Rest<String> doFinWork(DeclareQuery query, Context context);
}
\ No newline at end of file
......@@ -19,6 +19,8 @@ import com.mortals.xhx.module.evaluation.model.EvaluationInfoQuery;
import com.mortals.xhx.module.evaluation.service.EvaluationInfoService;
import com.mortals.xhx.module.park.model.ParkEntity;
import com.mortals.xhx.module.park.service.ParkService;
import com.mortals.xhx.module.staff.model.StaffEntity;
import com.mortals.xhx.module.staff.service.StaffService;
import org.springframework.beans.BeanUtils;
import java.util.Map;
......@@ -66,6 +68,8 @@ public class DeclareServiceImpl extends AbstractCRUDServiceImpl<DeclareDao, Decl
private CompanyService companyService;
@Autowired
private UserService userService;
@Autowired
private StaffService staffService;
@Override
......@@ -167,7 +171,7 @@ public class DeclareServiceImpl extends AbstractCRUDServiceImpl<DeclareDao, Decl
if (!ObjectUtils.isEmpty(entity.getCompanyId())) {
int count = this.count(new DeclareQuery().companyId(entity.getCompanyId()), context);
CompanyEntity companyEntity = companyService.get(entity.getCompanyId());
if(!ObjectUtils.isEmpty(companyEntity)){
if (!ObjectUtils.isEmpty(companyEntity)) {
companyEntity.setDeclarationCount(count);
companyService.update(companyEntity, context);
}
......@@ -232,4 +236,64 @@ public class DeclareServiceImpl extends AbstractCRUDServiceImpl<DeclareDao, Decl
this.update(declareEntity, context);
return Rest.ok("取消申报成功!");
}
@Override
public Rest<String> doAssignWork(DeclareQuery query, Context context) {
//校验取消申报时间
DeclareEntity declareEntity = this.get(query.getId(), context);
if (ObjectUtils.isEmpty(declareEntity)) throw new AppException("申报信息不存在!id:" + query.getId());
if (ObjectUtils.isEmpty(query.getAgentUserId())) throw new AppException("请选择代办人!");
StaffEntity staffEntity = staffService.get(query.getAgentUserId(), context);
if (ObjectUtils.isEmpty(staffEntity))
throw new AppException("当前代办人不存在!agentUserID:" + query.getAgentUserId());
if (declareEntity.getDeclareStatus() != DeclareStatusEnum.草稿.getValue())
throw new AppException("当前申报处于" + DeclareStatusEnum.getByValue(declareEntity.getDeclareStatus()).getDesc() + "状态,不能分派代办工作!");
declareEntity.setAgentUserId(staffEntity.getUserId());
declareEntity.setAgentUserName(staffEntity.getRealName());
declareEntity.setAssignTime(new Date());
declareEntity.setDeclareStatus(DeclareStatusEnum.办理中.getValue());
declareEntity.setUpdateTime(new Date());
declareEntity.setUpdateUserId(this.getContextUserId(context));
this.update(declareEntity, context);
return Rest.ok("分配工作成功!");
}
@Override
public Rest<String> doFinWork(DeclareQuery query, Context context) {
//校验信息
DeclareEntity declareEntity = this.get(query.getId(), context);
if (ObjectUtils.isEmpty(declareEntity)) throw new AppException("申报信息不存在!id:" + query.getId());
if (declareEntity.getDeclareStatus() != DeclareStatusEnum.办理中.getValue())
throw new AppException("当前申报处于" + DeclareStatusEnum.getByValue(declareEntity.getDeclareStatus()).getDesc() + "状态,不能办结代办工作!");
declareEntity.setDeclareStatus(DeclareStatusEnum.完结.getValue());
declareEntity.setResult(query.getResult());
declareEntity.setFinTime(new Date());
declareEntity.setUpdateTime(new Date());
declareEntity.setUpdateUserId(this.getContextUserId(context));
this.update(declareEntity, context);
query.getDeclareFinImagesList();
//先删除 再添加
Long[] delIds = declareFinImagesService.find(new DeclareFinImagesQuery().declareId(declareEntity.getId()))
.stream().map(i -> i.getId()).toArray(Long[]::new);
if (!ObjectUtils.isEmpty(delIds)) {
declareFinImagesService.remove(delIds, context);
}
if (!ObjectUtils.isEmpty(query.getDeclareFinImagesList())) {
for (DeclareFinImagesEntity declareFinImagesEntity : query.getDeclareFinImagesList()) {
declareFinImagesEntity.setDeclareId(declareEntity.getId());
declareFinImagesEntity.setCreateTime(new Date());
declareFinImagesEntity.setCreateUserId(this.getContextUserId(context));
}
declareFinImagesService.save(query.getDeclareFinImagesList());
}
return Rest.ok("办结工作成功!");
}
}
\ No newline at end of file
......@@ -54,6 +54,15 @@ public class DeclareController extends BaseCRUDJsonBodyMappingController<Declare
}
@Override
protected void doListBefore(DeclareEntity query, Map<String, Object> model, Context context) throws AppException {
//如果是管理员,如果参数中有代办人查询 删除
if (context.getUser() != null && context.getUser().isAdmin()) {
query.setAgentUserId(null);
}
super.doListBefore(query, model, context);
}
@Override
protected int infoAfter(Long id, Map<String, Object> model, DeclareEntity entity, Context context) throws AppException {
List<DeclareImagesEntity> declareImagesEntities = declareImagesService.find(new DeclareImagesQuery().declareId(id));
......@@ -91,4 +100,51 @@ public class DeclareController extends BaseCRUDJsonBodyMappingController<Declare
}
return jsonObject.toJSONString();
}
/**
* 分派工作
*/
@PostMapping(value = "assignWork")
public String assignWork(@RequestBody DeclareQuery query) {
JSONObject jsonObject = new JSONObject();
String busiDesc = "分派工作" + this.getModuleDesc();
try {
Rest<String> rest = this.service.doAssignWork(query, getContext());
if (YesNoEnum.NO.getValue() == rest.getCode()) {
throw new AppException(rest.getMsg());
}
jsonObject.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS);
jsonObject.put(KEY_RESULT_MSG, rest.getMsg());
} catch (Exception e) {
log.error("获取异常", e);
jsonObject.put(KEY_RESULT_CODE, VALUE_RESULT_FAILURE);
jsonObject.put(KEY_RESULT_MSG, super.convertException(e));
}
return jsonObject.toJSONString();
}
/**
* 办结工作
*/
@PostMapping(value = "finWork")
public String finWork(@RequestBody DeclareQuery query) {
JSONObject jsonObject = new JSONObject();
String busiDesc = "办结工作" + this.getModuleDesc();
try {
Rest<String> rest = this.service.doFinWork(query, getContext());
if (YesNoEnum.NO.getValue() == rest.getCode()) {
throw new AppException(rest.getMsg());
}
jsonObject.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS);
jsonObject.put(KEY_RESULT_MSG, rest.getMsg());
} catch (Exception e) {
log.error("获取异常", e);
jsonObject.put(KEY_RESULT_CODE, VALUE_RESULT_FAILURE);
jsonObject.put(KEY_RESULT_MSG, super.convertException(e));
}
return jsonObject.toJSONString();
}
}
\ No newline at end of file
package com.mortals.xhx.module.staff.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.staff.model.StaffEntity;
import java.util.List;
/**
* 代办帮办人员Dao
* 代办帮办人员 DAO接口
*
* @author zxfei
* @date 2025-05-08
*/
public interface StaffDao extends ICRUDDao<StaffEntity,Long>{
}
package com.mortals.xhx.module.staff.dao.ibatis;
import org.springframework.stereotype.Repository;
import com.mortals.xhx.module.staff.dao.StaffDao;
import com.mortals.xhx.module.staff.model.StaffEntity;
import java.util.Date;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import java.util.List;
/**
* 代办帮办人员DaoImpl DAO接口
*
* @author zxfei
* @date 2025-05-08
*/
@Repository("staffDao")
public class StaffDaoImpl extends BaseCRUDDaoMybatis<StaffEntity,Long> implements StaffDao {
}
package com.mortals.xhx.module.staff.model;
import java.util.List;
import java.util.ArrayList;
import java.math.BigDecimal;
import cn.hutool.core.date.DateUtil;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.staff.model.vo.StaffVo;
import lombok.Data;
/**
* 代办帮办人员实体对象
*
* @author zxfei
* @date 2025-05-08
*/
@Data
public class StaffEntity extends StaffVo {
private static final long serialVersionUID = 1L;
/**
* user表外键,user.id
*/
private Long userId;
/**
* 登录名
*/
private String loginName;
/**
* 登录密码
*/
private transient String loginPwd;
/**
* 真实姓名
*/
private String realName;
/**
* 照片
*/
private String photoPath;
/**
* 联系方式
*/
private String phoneNumber;
/**
* 所属部门
*/
private String deptName;
/**
* 累计代办次数
*/
private Integer totalNum;
/**
* 累计评分
*/
private Integer totalScore;
/**
* 备注
*/
private String remark;
@Override
public int hashCode() {
return this.getId().hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null) return false;
if (obj instanceof StaffEntity) {
StaffEntity tmp = (StaffEntity) obj;
if (this.getId() == tmp.getId()) {
return true;
}
}
return false;
}
public void initAttrValue(){
this.userId = null;
this.loginName = "";
this.loginPwd = "";
this.realName = "";
this.photoPath = "";
this.phoneNumber = "";
this.deptName = "";
this.totalNum = 0;
this.totalScore = 0;
this.remark = "";
}
}
\ No newline at end of file
package com.mortals.xhx.module.staff.model.vo;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.staff.model.StaffEntity;
import java.util.ArrayList;
import java.util.List;
import lombok.Data;
import com.mortals.framework.annotation.Excel;
import java.math.BigDecimal;
import java.util.Date;
/**
* 代办帮办人员视图对象
*
* @author zxfei
* @date 2025-05-08
*/
@Data
public class StaffVo extends BaseEntityLong {
/** 序号,主键,自增长列表 */
private List <Long> idList;
}
\ No newline at end of file
package com.mortals.xhx.module.staff.service;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.staff.model.StaffEntity;
import com.mortals.xhx.module.staff.dao.StaffDao;
/**
* StaffService
*
* 代办帮办人员 service接口
*
* @author zxfei
* @date 2025-05-08
*/
public interface StaffService extends ICRUDService<StaffEntity,Long>{
StaffDao getDao();
}
\ No newline at end of file
package com.mortals.xhx.module.staff.service.impl;
import com.mortals.framework.model.PageInfo;
import com.mortals.framework.util.SecurityUtil;
import com.mortals.xhx.base.system.user.model.UserEntity;
import com.mortals.xhx.base.system.user.service.UserService;
import org.springframework.beans.BeanUtils;
import java.util.function.Function;
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;
import com.mortals.framework.model.Context;
import com.mortals.xhx.module.staff.dao.StaffDao;
import com.mortals.xhx.module.staff.model.StaffEntity;
import com.mortals.xhx.module.staff.service.StaffService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.util.ObjectUtils;
/**
* StaffService
* 代办帮办人员 service实现
*
* @author zxfei
* @date 2025-05-08
*/
@Service("staffService")
@Slf4j
public class StaffServiceImpl extends AbstractCRUDServiceImpl<StaffDao, StaffEntity, Long> implements StaffService {
@Autowired
private UserService userService;
@Override
protected void saveBefore(StaffEntity entity, Context context) throws AppException {
//查询登录名是否存在
boolean bool = userService.existUser(entity.getLoginName(), this.getContextUserId(context));
if (bool) throw new AppException("登录名已存在!");
// userService.doCheckUser(entity.getLoginName(), entity.getLoginPwd());
super.saveBefore(entity, context);
}
@Override
protected void saveAfter(StaffEntity entity, Context context) throws AppException {
//创建用户
UserEntity userEntity = new UserEntity();
userEntity.initAttrValue();
userEntity.setLoginName(entity.getLoginName());
String password = null;
try {
password = SecurityUtil.md5DoubleEncoding(entity.getLoginPwd());
} catch (Exception e) {
throw new RuntimeException(e);
}
userEntity.setLoginPwd(password);
userEntity.setRealName(entity.getRealName());
userEntity.setMobile(entity.getPhoneNumber());
userEntity.setPhone(entity.getPhoneNumber());
userEntity.setCustomerId(entity.getId());
userService.getUserDao().insert(userEntity);
entity.setUserId(userEntity.getId());
super.saveAfter(entity, context);
}
@Override
protected void updateBefore(StaffEntity entity, Context context) throws AppException {
//查询登录名是否存在
boolean bool = userService.existUser(entity.getLoginName(), entity.getUserId());
if (bool) throw new AppException("登录名已存在!");
super.updateBefore(entity, context);
}
@Override
protected void updateAfter(StaffEntity entity, Context context) throws AppException {
//更新用户
UserEntity userEntity = userService.get(entity.getUserId(), context);
if(!ObjectUtils.isEmpty(userEntity)){
userEntity.setLoginName(entity.getLoginName());
String password = null;
try {
password = SecurityUtil.md5DoubleEncoding(entity.getLoginPwd());
} catch (Exception e) {
throw new RuntimeException(e);
}
userEntity.setLoginPwd(password);
userEntity.setRealName(entity.getRealName());
userEntity.setMobile(entity.getPhoneNumber());
userEntity.setPhone(entity.getPhoneNumber());
userService.getUserDao().update(userEntity);
}
super.updateAfter(entity, context);
}
}
\ No newline at end of file
package com.mortals.xhx.module.staff.web;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.base.system.param.service.ParamService;
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.staff.model.StaffEntity;
import com.mortals.xhx.module.staff.service.StaffService;
import org.apache.commons.lang3.ArrayUtils;
import com.mortals.framework.util.StringUtils;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import com.alibaba.fastjson.JSONObject;
import java.util.Arrays;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import static com.mortals.framework.ap.SysConstains.*;
import com.mortals.xhx.common.code.*;
/**
*
* 代办帮办人员
*
* @author zxfei
* @date 2025-05-08
*/
@RestController
@RequestMapping("staff")
public class StaffController extends BaseCRUDJsonBodyMappingController<StaffService,StaffEntity,Long> {
@Autowired
private ParamService paramService;
public StaffController(){
super.setModuleDesc( "代办帮办人员");
}
@Override
protected void init(Map<String, Object> model, Context context) {
super.init(model, context);
}
}
\ No newline at end of file
###登录
POST {{baseUrl}}/login/login
Content-Type: application/json
{
"loginName":"admin",
"password":"admin",
"securityCode":"8888"
}
> {%
client.global.set("SmsSet_id", JSON.parse(response.body).data.id);
client.global.set("authToken", JSON.parse(response.body).data.token);
%}
###代办帮办人员列表
POST {{baseUrl}}/staff/list
Content-Type: application/json
{
"page":1,
"size":10
}
###代办帮办人员更新与保存
POST {{baseUrl}}/staff/save
Authorization: {{authToken}}
Content-Type: application/json
{
"userId":954,
"loginName":"XuBnNj",
"loginPwd":"f2gcal",
"realName":"brNc5c",
"photoPath":"DPouJo",
"phoneNumber":"E0GXn2",
"deptName":"MH6Wyn",
"totalNum":0,
"totalScore":0,
"remark":"pbtals",
}
> {%
client.global.set("Staff_id", JSON.parse(response.body).data.id);
%}
###代办帮办人员查看
GET {{baseUrl}}/staff/info?id=1
###代办帮办人员编辑
GET {{baseUrl}}/staff/edit?id=1
Accept: application/json
###代办帮办人员删除
GET {{baseUrl}}/staff/delete?id=1
Authorization: {{authToken}}
Accept: application/json
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