Commit 9fd70e6e authored by tianyiming's avatar tianyiming

9339

parent 95cef7c1
package com.yeejoin.amos.boot.module.common.api.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
* 单位人员平台人员关系表
*
* @author system_generator
* @date 2022-09-13
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value="OrgUsrAgencyUserDto", description="单位人员平台人员关系表")
public class OrgUsrAgencyUserDto extends BaseDto {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "用户名")
private String userName;
@ApiModelProperty(value = "手机号")
private String mobile;
@ApiModelProperty(value = "用户组")
private String groupIds;
@ApiModelProperty(value = "密码")
private String password;
@ApiModelProperty(value = "人员id")
private String orgUsrId;
@ApiModelProperty(value = "平台用户id")
private String amosUserId;
}
......@@ -2,6 +2,7 @@ package com.yeejoin.amos.boot.module.common.api.dto;
import com.yeejoin.amos.boot.module.common.api.entity.Firefighters;
import com.yeejoin.amos.boot.module.common.api.entity.FirefightersContacts;
import com.yeejoin.amos.boot.module.common.api.entity.OrgUsrAgencyUser;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -18,6 +19,9 @@ public class PeopleInfoDto {
@ApiModelProperty(value = "联系人信息")
private FirefightersContacts firefightersContacts;
@ApiModelProperty(value = "账户信息")
private OrgUsrAgencyUser orgUsrAgencyUser;
@ApiModelProperty(value = "岗位页签")
private FirefightersDataDto postEduDtoObj;
......
package com.yeejoin.amos.boot.module.common.api.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* 单位人员平台人员关系表
*
* @author system_generator
* @date 2022-09-13
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("cb_org_usr_agency_user")
public class OrgUsrAgencyUser extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* 用户名
*/
@TableField("usr_name")
private String usrName;
/**
* 手机号
*/
@TableField("mobile")
private String mobile;
/**
* 用户组
*/
@TableField("group_ids")
private String groupIds;
/**
* 密码
*/
@TableField("password")
private String password;
/**
* 人员id
*/
@TableField("org_usr_id")
private String orgUsrId;
/**
* 平台用户id
*/
@TableField("amos_user_id")
private String amosUserId;
@TableField(exist = false)
private String upPassWord;
}
package com.yeejoin.amos.boot.module.common.api.mapper;
import com.yeejoin.amos.boot.module.common.api.entity.OrgUsrAgencyUser;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* 单位人员平台人员关系表 Mapper 接口
*
* @author system_generator
* @date 2022-09-13
*/
public interface OrgUsrAgencyUserMapper extends BaseMapper<OrgUsrAgencyUser> {
}
package com.yeejoin.amos.boot.module.common.api.service;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.module.common.api.entity.OrgUsrAgencyUser;
/**
* 单位人员平台人员关系表接口类
*
* @author system_generator
* @date 2022-09-13
*/
public interface IOrgUsrAgencyUserService {
OrgUsrAgencyUser getAccountDetail(String orgUsrId);
void synOrgUser(JSONObject jsonObject);
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yeejoin.amos.boot.module.common.api.mapper.OrgUsrAgencyUserMapper">
</mapper>
......@@ -392,7 +392,7 @@ public class OrgPersonController extends BaseController {
*
* @return
*/
@TycloudOperation(needAuth = true, ApiLevel = UserType.AGENCY)
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
@RequestMapping(value = "/peopleSave", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "新增人员", notes = "新增人员默认创建消防人员")
public ResponseModel<PeopleInfoDto> peopleSave(@RequestBody PeopleInfoDto peopleInfoDto) {
......
package com.yeejoin.amos.boot.module.common.biz.controller;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.module.common.api.entity.OrgUsrAgencyUser;
import com.yeejoin.amos.boot.module.common.api.service.IOrgUsrAgencyUserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
/**
* 部门信息修改
*
* @author tb
* @date 2021-06-18
*/
@RestController
@Api(tags = "人员amos账号信息Api")
@RequestMapping(value = "/org-usr-agency")
public class OrgUsrAgencyUserController extends BaseController {
@Autowired
IOrgUsrAgencyUserService orgUsrAgencyUserService;
/**
* 查询关联的amos账号信息
*
* @return OrgUsrAgencyUser
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@RequestMapping(value = "/{orgUsrId}/detail", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "查询关联的amos账号信息", notes = "查询关联的amos账号信息")
public ResponseModel<OrgUsrAgencyUser> getAccountDetail(@PathVariable String orgUsrId) {
OrgUsrAgencyUser agencyUser = orgUsrAgencyUserService.getAccountDetail(orgUsrId);
return ResponseHelper.buildResponse(agencyUser);
}
}
\ No newline at end of file
package com.yeejoin.amos.boot.module.common.biz.listener;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.module.common.api.service.IOrgUsrAgencyUserService;
import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.typroject.tyboot.component.emq.EmqxListener;
import java.nio.charset.StandardCharsets;
/**
* @author Administrator
*/
@Component
public class AmosMqttListener extends EmqxListener {
@Autowired
IOrgUsrAgencyUserService orgUsrAgencyUserService;
@Override
public void processMessage(String topic, MqttMessage mqttMessage) throws Exception {
byte[] payload = mqttMessage.getPayload();
String str = new String(payload, StandardCharsets.UTF_8);
JSONObject jsonObject = JSONObject.parseObject(str);
JSONObject result = jsonObject.getJSONObject("result");
String path = result.getString("path");
if (path.contains("agencyuser")) {
orgUsrAgencyUserService.synOrgUser(jsonObject);
}
}
}
package com.yeejoin.amos.boot.module.common.biz.service.impl;
import com.yeejoin.amos.boot.module.common.biz.listener.AmosMqttListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;
import org.typroject.tyboot.component.emq.EmqKeeper;
/**
* @author Administrator
*/
@Component
public class ApplicationRunnerImpl implements ApplicationRunner {
@Autowired
EmqKeeper emqKeeper;
@Autowired
AmosMqttListener amosMqttListener;
@Override
public void run(ApplicationArguments args) throws Exception {
emqKeeper.subscript("/amos/operation/log", 2, amosMqttListener);
}
}
......@@ -6,9 +6,10 @@ import java.util.stream.Collectors;
import com.yeejoin.amos.boot.biz.common.dao.mapper.DataDictionaryMapper;
import com.yeejoin.amos.boot.biz.common.utils.RedisKey;
import com.yeejoin.amos.boot.module.common.api.dto.*;
import com.yeejoin.amos.boot.module.common.api.entity.DynamicFormInstance;
import com.yeejoin.amos.boot.module.common.api.entity.OrgUsr;
import com.yeejoin.amos.boot.module.common.api.entity.*;
import com.yeejoin.amos.boot.module.common.api.mapper.OrgUsrAgencyUserMapper;
import com.yeejoin.amos.boot.module.common.api.mapper.OrgUsrMapper;
import com.yeejoin.amos.component.feign.model.Page;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import org.apache.commons.lang3.ObjectUtils;
......@@ -28,8 +29,6 @@ import com.yeejoin.amos.boot.biz.common.entity.DataDictionary;
import com.yeejoin.amos.boot.biz.common.service.impl.DataDictionaryServiceImpl;
import com.yeejoin.amos.boot.biz.common.utils.Menu;
import com.yeejoin.amos.boot.biz.common.utils.TreeParser;
import com.yeejoin.amos.boot.module.common.api.entity.Firefighters;
import com.yeejoin.amos.boot.module.common.api.entity.FirefightersContacts;
import com.yeejoin.amos.boot.module.common.api.mapper.FirefightersMapper;
import com.yeejoin.amos.boot.module.common.api.service.IFirefightersService;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
......@@ -61,6 +60,8 @@ public class FirefightersServiceImpl extends BaseService<FirefightersDto, Firefi
FirefightersContactsServiceImpl ifirefightersContactsService;
@Autowired
private OrgUsrMapper orgUsrMapper;
@Autowired
OrgUsrAgencyUserMapper orgUsrAgencyUserMapper;
@Override
public List<FirefightersZhDto> getFirefighters(int pageNum, int pageSize, FirefightersDto par) {
......@@ -228,19 +229,41 @@ public class FirefightersServiceImpl extends BaseService<FirefightersDto, Firefi
@Override
@Transactional(rollbackFor = Exception.class)
public PeopleInfoDto updatePeopleById(PeopleInfoDto peopleInfoDto, Long id) {
Map<String, String> map = new HashMap<>();
// 1.动态表单
OrgUsr orgUsr = orgUsrService.peopleSaveOrgUsr(peopleInfoDto.getFirefighters());
AgencyUserModel agencyUserModel = new AgencyUserModel();
if(!ValidationUtil.isEmpty(peopleInfoDto.getFirefighters().getAmosUserId())) {
AgencyUserModel amosUser = Privilege.agencyUserClient.queryByUserId(peopleInfoDto.getFirefighters().getAmosUserId()).getResult();
// OrgUsr orgUsr = orgUsrService.peopleSaveOrgUsr(peopleInfoDto.getFirefighters());
//删除之前所在用户组
OrgUsrAgencyUser orgUsrAgencyUser = orgUsrAgencyUserMapper.selectOne(new QueryWrapper<OrgUsrAgencyUser>().eq("org_usr_id", id));
String groupIds = orgUsrAgencyUser.getGroupIds();
if (!"".equals(groupIds) && null != groupIds) {
String[] ids = groupIds.split(",");
for (String gId : ids) {
Long groupId = Long.valueOf(gId);
Privilege.groupUserClient.deleteGroupUser(groupId,amosUser.getUserId());
// List<Long> result = privilegeFeign.deleteGroupUser(groupId, amosUser.getUserId()).getResult();
// System.out.println(result);
}
}
//同步更新或者创建平台用户
if(ObjectUtils.isEmpty(amosUser)){
map = orgUsrService.savePlatformUser(orgUsr,peopleInfoDto,"create");
} else {
map = orgUsrService.savePlatformUser(orgUsr,peopleInfoDto,"update");
}
peopleInfoDto.getFirefighters().setAmosName(amosUser.getRealName());
} else {
peopleInfoDto.getFirefighters().setAmosUserId(null);
peopleInfoDto.getFirefighters().setAmosName(null);
}
OrgUsr orgUsr = orgUsrService.peopleSaveOrgUsr(peopleInfoDto.getFirefighters());
OrgPersonDto orgPersonDto = new OrgPersonDto();
BeanUtils.copyProperties(orgUsr, orgPersonDto);
orgPersonDto.setAmosOrgId(map.get("orgId"));
orgPersonDto.setAmosOrgCode(map.get("orgCode"));
List<DynamicFormInstance> dynamicFormInstances = orgUsrService.dynamicFormColumn(peopleInfoDto.getFirefighters(), false);
orgPersonDto.setDynamicFormValue(dynamicFormInstances);
try {
......@@ -270,7 +293,7 @@ public class FirefightersServiceImpl extends BaseService<FirefightersDto, Firefi
@Override
public void saveFirefightersByUser(PeopleInfoDto firefighters) {
orgUsrService.saveFirefighters(firefighters);
orgUsrService.saveFirefighters(firefighters,new HashMap<>());
}
public Map<String, String> getPersonByCodes(List<String> list) {
......
package com.yeejoin.amos.boot.module.common.biz.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.yeejoin.amos.boot.module.common.api.entity.Firefighters;
import com.yeejoin.amos.boot.module.common.api.entity.OrgUsr;
import com.yeejoin.amos.boot.module.common.api.entity.OrgUsrAgencyUser;
import com.yeejoin.amos.boot.module.common.api.mapper.FirefightersMapper;
import com.yeejoin.amos.boot.module.common.api.mapper.OrgUsrAgencyUserMapper;
import com.yeejoin.amos.boot.module.common.api.mapper.OrgUsrMapper;
import com.yeejoin.amos.boot.module.common.api.service.IOrgUsrAgencyUserService;
import com.yeejoin.amos.boot.module.common.api.dto.OrgUsrAgencyUserDto;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
/**
* 单位人员平台人员关系表服务实现类
*
* @author system_generator
* @date 2022-09-13
*/
@Service
public class OrgUsrAgencyUserServiceImpl extends BaseService<OrgUsrAgencyUserDto, OrgUsrAgencyUser, OrgUsrAgencyUserMapper> implements IOrgUsrAgencyUserService {
@Autowired
OrgUsrAgencyUserMapper orgUsrAgencyUserMapper;
@Autowired
FirefightersMapper firefightersMapper;
@Autowired
OrgUsrMapper orgUsrMapper;
@Override
public OrgUsrAgencyUser getAccountDetail(String orgUsrId) {
return this.getOne(new LambdaQueryWrapper<OrgUsrAgencyUser>().eq(OrgUsrAgencyUser::getOrgUsrId, orgUsrId));
}
@Override
public void synOrgUser(JSONObject jsonObject) {
JSONObject result = jsonObject.getJSONObject("result");
String methodName = jsonObject.getString("methodName");
String userId = jsonObject.getString("userId");
// 平台添加用户
if ("update".equals(methodName)) {
// 更新cb_org_usr_agency_user
JSONObject object = result.getJSONObject("result");
OrgUsrAgencyUser orgUsrAgencyUser = orgUsrAgencyUserMapper.selectOne(new QueryWrapper<OrgUsrAgencyUser>().eq("amos_usr_id", object.getString("userId")));
// OrgUsrAgencyUser orgUsrAgencyUser = new OrgUsrAgencyUser();
orgUsrAgencyUser.setUsrName(object.getString("userName"));
orgUsrAgencyUser.setMobile(object.getString("mobile"));
orgUsrAgencyUser.setAmosUserId(object.getString("userId"));
orgUsrAgencyUserMapper.update(orgUsrAgencyUser,new QueryWrapper<OrgUsrAgencyUser>().eq("amos_usr_id",object.getString("userId")));
// 更新cb_firefighters
Firefighters firefighter = firefightersMapper.selectOne(new QueryWrapper<Firefighters>().eq("amos_usr_id", orgUsrAgencyUser.getOrgUsrId()));
if (!ObjectUtils.isEmpty(firefighter) && "0".equals(firefighter.getIsDelete())) {
// Firefighters firefighters = new Firefighters();
firefighter.setAmosUserId(object.get("userId").toString());
firefighter.setAmosName(object.getString("userName"));
firefightersMapper.update(firefighter, new QueryWrapper<Firefighters>().eq("amos_usr_id", orgUsrAgencyUser.getOrgUsrId()));
}
// 更新cb_org_usr
OrgUsr orgUsr1 = orgUsrMapper.selectById(orgUsrAgencyUser.getOrgUsrId());
orgUsrMapper.selectOne(new QueryWrapper<OrgUsr>().eq("amos_org_id",object.get("userId")));
if (!ObjectUtils.isEmpty(orgUsr1) && "0".equals(orgUsr1.getIsDelete())) {
// OrgUsr orgUsr = new OrgUsr();
orgUsr1.setAmosOrgId(object.get("userId").toString());
orgUsr1.setAmosOrgCode(object.getString("userName"));
orgUsrMapper.update(orgUsr1,new QueryWrapper<OrgUsr>().eq("sequence_nbr",orgUsrAgencyUser.getOrgUsrId()));
}
} else if ("multDeleteUser".equals(methodName)) {
JSONArray array = result.getJSONArray("result");
List<Object> userIds = array.stream().collect(Collectors.toList());
for (Object id : userIds) {
//删除cb_org_usr_agency_user中信息
OrgUsrAgencyUser orgUsrAgencyUser = orgUsrAgencyUserMapper.selectOne(new QueryWrapper<OrgUsrAgencyUser>().eq("amos_user_id", id));
if (!ObjectUtils.isEmpty(orgUsrAgencyUser)) {
orgUsrAgencyUserMapper.delete(new QueryWrapper<OrgUsrAgencyUser>().eq("amos_user_id", id));
}
// 删除cb_firefighters和用户有关字段
Firefighters firefighter = firefightersMapper.selectOne(new QueryWrapper<Firefighters>().eq("amos_user_id", id));
if (!ObjectUtils.isEmpty(firefighter)) {
firefighter.setAmosUserId("");
firefighter.setAmosName("");
firefightersMapper.update(firefighter, new QueryWrapper<Firefighters>().eq("amos_user_id", id).eq("is_delete", 0));
}
// 删除cb_org_usr与用户有关字段
OrgUsr orgUsr1 = orgUsrMapper.selectOne(new QueryWrapper<OrgUsr>().eq("amos_org_id", id));
if (!ObjectUtils.isEmpty(orgUsr1)) {
orgUsr1.setAmosOrgId("");
orgUsr1.setAmosOrgCode("");
orgUsrMapper.update(orgUsr1,new QueryWrapper<OrgUsr>().eq("amos_org_id",id).eq("is_delete",0));
}
}
}
}
}
\ No newline at end of file
......@@ -3371,6 +3371,45 @@
ADD person_of_day varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '当日驻站消防队总人数(可变)';
</sql>
</changeSet>
<changeSet author="shg" id="1663051535136-1">
<preConditions onFail="MARK_RAN">
<not>
<tableExists tableName="cb_org_usr_agency_user"/>
</not>
</preConditions>
<comment>create table cb_org_usr_agency_user 单位人员平台人员关系表</comment>
<sql>
CREATE TABLE `cb_org_usr_agency_user` (
`sequence_nbr` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`user_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '用户名',
`mobile` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '手机号',
`group_ids` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '用户组',
`password` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '密码',
`org_usr_id` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '人员id',
`amos_user_id` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '平台用户id',
`rec_user_name` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
`rec_user_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
`rec_date` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
`is_delete` bit(1) NOT NULL DEFAULT b'0',
PRIMARY KEY (`sequence_nbr`) USING BTREE,
UNIQUE KEY `uk_org_usr_id` (`org_usr_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='单位人员平台人员关系表';
</sql>
</changeSet>
<changeSet author="tianyiming" id="2022-09-18-tianyiming">
<preConditions onFail="MARK_RAN">
<tableExists tableName="cb_data_dictionary" />
<not>
<primaryKeyExists primaryKeyName="sequence_nbr" tableName="cb_data_dictionary"/>
</not>
</preConditions>
<comment>add data cb_data_dictionary</comment>
<sql>
-- INSERT INTO `cb_data_dictionary` VALUES(1152, '1152', '大面积航班延误保障', 'QTZL', NULL, NULL, NULL, NULL, NULL, 0, 1);
INSERT INTO `cb_data_dictionary` VALUES (1600, 'default', '默认角色', 'DEFAULTROLE', NULL, NULL, NULL, NULL, NULL, NULL, b'0', 1);
</sql>
</changeSet>
</databaseChangeLog>
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