diff --git a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/institution/controller/InstitutionAreaController.java b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/institution/controller/InstitutionAreaController.java deleted file mode 100644 index bc17cd6..0000000 --- a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/institution/controller/InstitutionAreaController.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.nu.modules.institution.controller; - -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.nu.modules.institution.entity.InstitutionArea; -import com.nu.modules.institution.model.InstitutionAreaTreeModel; -import com.nu.modules.institution.service.IInstitutionAreaService; -import lombok.extern.slf4j.Slf4j; -import org.jeecg.common.api.vo.Result; -import org.jeecg.common.system.util.JwtUtil; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; -import javax.servlet.http.HttpServletRequest; -import java.util.*; - -/** - *

- * 机构表 前端控制器 - *

- * - * @Author: 曹磊 @Since: 2025-03-25 - */ -@RestController -@RequestMapping("/admin/institutionArea") -@Slf4j -public class InstitutionAreaController { - - @Autowired - private IInstitutionAreaService service; - - /** - * 异步查询机构list - * @param parentId 父节点 异步加载时传递 - * @param primaryKey 主键字段(id或者orgCode) - * @return - */ - @RequestMapping(value = "/queryTreeSync", method = RequestMethod.GET) - public Result> queryTreeSync(@RequestParam(name = "pid", required = false) String parentId, @RequestParam(name = "primaryKey", required = false) String primaryKey) { - Result> result = new Result<>(); - try { - List list = service.queryTreeListByPid(parentId,primaryKey); - result.setResult(list); - result.setSuccess(true); - } catch (Exception e) { - log.error(e.getMessage(),e); - result.setSuccess(false); - result.setMessage("查询失败"); - } - return result; - } - - /** - * 添加新数据 添加用户新建的机构对象数据,并保存到数据库 - * - * @param InstitutionArea - * @return - */ - @RequestMapping(value = "/add", method = RequestMethod.POST) - public Result add(@RequestBody InstitutionArea InstitutionArea, HttpServletRequest request) { - Result result = new Result(); - String username = JwtUtil.getUserNameByToken(request); - try { - InstitutionArea.setCreateBy(username); - service.saveInstData(InstitutionArea, username); - result.success("添加成功!"); - } catch (Exception e) { - log.error(e.getMessage(),e); - result.error500("操作失败"); - } - return result; - } - - /** - * 编辑数据 编辑机构的部分数据,并保存到数据库 - * - * @param InstitutionArea - * @return - */ - @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) - public Result edit(@RequestBody InstitutionArea InstitutionArea, HttpServletRequest request) { - String username = JwtUtil.getUserNameByToken(request); - InstitutionArea.setUpdateBy(username); - Result result = new Result(); - InstitutionArea InstitutionAreaEntity = service.getById(InstitutionArea.getId()); - if (InstitutionAreaEntity == null) { - result.error500("未找到对应实体"); - } else { - boolean ok = service.updateInstDataById(InstitutionArea, username); - if (ok) { - result.success("修改成功!"); - } - } - return result; - } - - /** - * 删除 - * @param institutionArea - * @return - */ - @PostMapping(value = "/delete") - public Result delete(@RequestBody InstitutionArea institutionArea){ - InstitutionArea entity = service.getById(institutionArea.getId()); - if(entity==null) { - return Result.error("未找到对应实体"); - }else { - return service.deleteInst(entity); - } - } - - /** - *

- * 机构搜索功能方法,根据关键字模糊搜索相关机构 - *

- * - * @param keyWord - * @return - */ - @RequestMapping(value = "/searchBy", method = RequestMethod.GET) - public Result> searchBy(@RequestParam(name = "keyWord", required = true) String keyWord) { - Result> result = new Result>(); - List treeList = this.service.searchByKeyWord(keyWord); - if (treeList == null || treeList.size() == 0) { - result.setSuccess(false); - result.setMessage("未查询匹配数据!"); - return result; - } - result.setResult(treeList); - return result; - } - - /** - * 查询所有子区域信息 - * @return - */ - @GetMapping("queryChildrenByParentId") - public Result> queryChildrenByParentId(@RequestParam(name = "pid", required = false) String parentId) { - Result> result = new Result<>(); - LambdaQueryWrapper query = new LambdaQueryWrapper(); - query.orderByAsc(InstitutionArea::getInstName); - query.eq(InstitutionArea::getParentId,parentId); - List ls = this.service.list(query); - result.setSuccess(true); - result.setResult(ls); - return result; - } - -} diff --git a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/institution/entity/InstitutionArea.java b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/institution/entity/InstitutionArea.java deleted file mode 100644 index 1b0dad1..0000000 --- a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/institution/entity/InstitutionArea.java +++ /dev/null @@ -1,86 +0,0 @@ -package com.nu.modules.institution.entity; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import com.fasterxml.jackson.annotation.JsonFormat; -import lombok.Data; -import org.jeecg.common.aspect.annotation.Dict; -import org.jeecgframework.poi.excel.annotation.Excel; -import org.springframework.format.annotation.DateTimeFormat; - -import java.io.Serializable; -import java.util.Date; -import java.util.Objects; - -/** - *

- * 机构区域表 - *

- * - * @Author 曹磊 - * @Since 2025-03-25 - */ -@Data -@TableName("nu_admin_institution_area") -public class InstitutionArea implements Serializable { - private static final long serialVersionUID = 1L; - - /**ID*/ - @TableId(type = IdType.ASSIGN_ID) - private String id; - /**父机构ID*/ - private String parentId; - /**机构/部门名称*/ - @Excel(name="机构/区域名称",width=15) - private String instName; - /**英文名*/ - @Excel(name="英文名",width=15) - private String instNameEn; - /**缩写*/ - private String instNameAbbr; - /**排序*/ - @Excel(name="排序",width=15) - private Integer instOrder; - /**描述*/ - @Excel(name="描述",width=15) - private String description; - /**机构类别 1=机构,2=区域*/ - @Excel(name="机构区域类别",width=15,dicCode="inst_category") - private String orgCategory; - /**机构类型 1一级部门 2子部门*/ - private String orgType; - /**机构编码*/ - @Excel(name="机构编码",width=15) - private String orgCode; - /**手机号*/ - @Excel(name="手机号",width=15) - private String mobile; - /**地址*/ - @Excel(name="地址",width=15) - private String address; - /**状态(1启用,0不启用)*/ - @Dict(dicCode = "depart_status") - private String status; - /**删除状态(0,正常,1已删除)*/ - @Dict(dicCode = "del_flag") - private String delFlag; - /**创建人*/ - private String createBy; - /**创建日期*/ - @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") - @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") - private Date createTime; - /**更新人*/ - private String updateBy; - /**更新日期*/ - @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") - @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") - private Date updateTime; - /**租户ID*/ - private Integer tenantId; - /**是否有叶子节点: 1是0否*/ - private Integer izLeaf; - -} diff --git a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/institution/mapper/InstitutionAreaMapper.java b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/institution/mapper/InstitutionAreaMapper.java deleted file mode 100644 index 6f1a22f..0000000 --- a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/institution/mapper/InstitutionAreaMapper.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.nu.modules.institution.mapper; - -import com.baomidou.mybatisplus.annotation.InterceptorIgnore; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.nu.modules.institution.entity.InstitutionArea; -import org.apache.ibatis.annotations.Select; -import org.apache.ibatis.annotations.Update; -import org.springframework.data.repository.query.Param; - -import java.util.List; - -/** - *

- * 机构 Mapper 接口 - *

- * - * @Author: 曹磊 - * @Since: 2025-03-25 - */ -public interface InstitutionAreaMapper extends BaseMapper { - - - /** - * 根据parent_id查询下级区域 - * @param parentId 父id - * @return List - */ - List queryTreeListByPid(@Param("parentId") String parentId); - - /** - * 根据id下级区域数量 - * @param parentId - * @return - */ - @Select("SELECT count(*) FROM nu_admin_institution_area where del_flag ='0' AND parent_id = #{parentId,jdbcType=VARCHAR}") - Integer queryCountByPid(@Param("parentId")String parentId); - - @InterceptorIgnore(tenantLine = "true") - @Select("SELECT * FROM nu_admin_institution_area where id = #{id,jdbcType=VARCHAR}") - InstitutionArea getInstById(@Param("id") String id); - - @InterceptorIgnore(tenantLine = "true") - List getMaxCodeInst(@Param("page") Page page, @Param("parentId") String parentId); - - /** - * 修改部门状态字段: 是否子节点 - * @param id 部门id - * @param leaf 叶子节点 - * @return int - */ - @Update("UPDATE nu_admin_institution_area SET iz_leaf=#{leaf} WHERE id = #{id}") - int setMainLeaf(@Param("id") String id, @Param("leaf") Integer leaf); - -} diff --git a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/institution/mapper/xml/InstitutionAreaMapper.xml b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/institution/mapper/xml/InstitutionAreaMapper.xml deleted file mode 100644 index 712ac58..0000000 --- a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/institution/mapper/xml/InstitutionAreaMapper.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - diff --git a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/institution/model/InstitutionAreaIdModel.java b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/institution/model/InstitutionAreaIdModel.java deleted file mode 100644 index 7d87514..0000000 --- a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/institution/model/InstitutionAreaIdModel.java +++ /dev/null @@ -1,98 +0,0 @@ -package com.nu.modules.institution.model; - -import com.nu.modules.institution.entity.InstitutionArea; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.List; - -/** - *

- * 机构表 封装树结构的机构的名称的实体类 - *

- * - * @Author Steve - * @Since 2019-01-22 - * - */ -public class InstitutionAreaIdModel implements Serializable { - - private static final long serialVersionUID = 1L; - - /** - * 主键ID - */ - private String key; - - /** - * 主键ID - */ - private String value; - - /** - * 机构名称 - */ - private String title; - - List children = new ArrayList<>(); - - /** - * 将SysDepartTreeModel的部分数据放在该对象当中 - * @param treeModel - * @return - */ - public InstitutionAreaIdModel convert(InstitutionAreaTreeModel treeModel) { - this.key = treeModel.getId(); - this.value = treeModel.getId(); - this.title = treeModel.getInstName(); - return this; - } - - /** - * 该方法为用户机构的实现类所使用 - * @param inst - * @return - */ - public InstitutionAreaIdModel convertByUserDepart(InstitutionArea inst) { - this.key = inst.getId(); - this.value = inst.getId(); - this.title = inst.getInstName(); - return this; - } - - public List getChildren() { - return children; - } - - public void setChildren(List children) { - this.children = children; - } - - public static long getSerialVersionUID() { - return serialVersionUID; - } - - public String getKey() { - return key; - } - - public void setKey(String key) { - this.key = key; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - - public String getTitle() { - return title; - } - - public void setTitle(String title) { - this.title = title; - } -} diff --git a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/institution/model/InstitutionAreaTreeModel.java b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/institution/model/InstitutionAreaTreeModel.java deleted file mode 100644 index ca9de01..0000000 --- a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/institution/model/InstitutionAreaTreeModel.java +++ /dev/null @@ -1,357 +0,0 @@ -package com.nu.modules.institution.model; - -import com.nu.modules.institution.entity.InstitutionArea; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Objects; - -/** - *

- * 机构表 存储树结构数据的实体类 - *

- * - * @Author 曹磊 - * @Since 2025-03-25 - */ -public class InstitutionAreaTreeModel implements Serializable{ - - private static final long serialVersionUID = 1L; - - /** 对应InstitutionArea中的id字段,前端数据树中的key*/ - private String key; - - /** 对应InstitutionArea中的id字段,前端数据树中的value*/ - private String value; - - /** 对应inst_name字段,前端数据树中的title*/ - private String title; - - - private boolean isLeaf; - // 以下所有字段均与InstitutionArea相同 - - private String id; - - private String parentId; - - private String instName; - - private String instNameEn; - - private String instNameAbbr; - - private Integer instOrder; - - private String description; - - private String orgCategory; - - private String orgType; - - private String orgCode; - - private String mobile; - - private String address; - - private String status; - - private String delFlag; - - private String createBy; - - private Date createTime; - - private String updateBy; - - private Date updateTime; - - //update-begin---author:wangshuai ---date:20200308 for:[JTC-119]在部门管理菜单下设置部门负责人,新增字段部门负责人ids - /**部门负责人ids*/ - private String directorUserIds; - //update-end---author:wangshuai ---date:20200308 for:[JTC-119]在部门管理菜单下设置部门负责人,新增字段部门负责人ids - - private List children = new ArrayList<>(); - - - /** - * 将InstitutionArea对象转换成InstitutionAreaTreeModel对象 - * @param inst - */ - public InstitutionAreaTreeModel(InstitutionArea inst) { - this.key = inst.getId(); - this.value = inst.getId(); - this.title = inst.getInstName(); - this.id = inst.getId(); - this.parentId = inst.getParentId(); - this.instName = inst.getInstName(); - this.instNameEn = inst.getInstNameEn(); - this.instNameAbbr = inst.getInstNameAbbr(); - this.instOrder = inst.getInstOrder(); - this.description = inst.getDescription(); - this.orgCategory = inst.getOrgCategory(); - this.orgType = inst.getOrgType(); - this.orgCode = inst.getOrgCode(); - this.mobile = inst.getMobile(); - this.address = inst.getAddress(); - this.status = inst.getStatus(); - this.delFlag = inst.getDelFlag(); - this.createBy = inst.getCreateBy(); - this.createTime = inst.getCreateTime(); - this.updateBy = inst.getUpdateBy(); - this.updateTime = inst.getUpdateTime(); - if(0 == inst.getIzLeaf()){ - this.isLeaf = false; - }else{ - this.isLeaf = true; - } - } - - public boolean getIsLeaf() { - return isLeaf; - } - - public void setIsLeaf(boolean isleaf) { - this.isLeaf = isleaf; - } - - public String getKey() { - return key; - } - - - public void setKey(String key) { - this.key = key; - } - - - public String getValue() { - return value; - } - - - public void setValue(String value) { - this.value = value; - } - - - public String getTitle() { - return title; - } - - - public void setTitle(String title) { - this.title = title; - } - - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public List getChildren() { - return children; - } - - public void setChildren(List children) { - if (children==null){ - this.isLeaf=true; - } - this.children = children; - } - - public String getParentId() { - return parentId; - } - - public void setParentId(String parentId) { - this.parentId = parentId; - } - - public static long getSerialVersionUID() { - return serialVersionUID; - } - - public String getInstName() { - return instName; - } - - public void setInstName(String instName) { - this.instName = instName; - } - - public String getOrgCategory() { - return orgCategory; - } - - public void setOrgCategory(String orgCategory) { - this.orgCategory = orgCategory; - } - - public String getOrgType() { - return orgType; - } - - public void setOrgType(String orgType) { - this.orgType = orgType; - } - - public String getOrgCode() { - return orgCode; - } - - public void setOrgCode(String orgCode) { - this.orgCode = orgCode; - } - - public String getMobile() { - return mobile; - } - - public void setMobile(String mobile) { - this.mobile = mobile; - } - - public String getAddress() { - return address; - } - - public void setAddress(String address) { - this.address = address; - } - - public String getInstNameEn() { - return instNameEn; - } - - public void setInstNameEn(String instNameEn) { - this.instNameEn = instNameEn; - } - - public String getInstNameAbbr() { - return instNameAbbr; - } - - public void setInstNameAbbr(String instNameAbbr) { - this.instNameAbbr = instNameAbbr; - } - - public Integer getInstOrder() { - return instOrder; - } - - public void setInstOrder(Integer instOrder) { - this.instOrder = instOrder; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } - - public String getDelFlag() { - return delFlag; - } - - public void setDelFlag(String delFlag) { - this.delFlag = delFlag; - } - - public String getCreateBy() { - return createBy; - } - - public void setCreateBy(String createBy) { - this.createBy = createBy; - } - - public Date getCreateTime() { - return createTime; - } - - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - - public String getUpdateBy() { - return updateBy; - } - - public void setUpdateBy(String updateBy) { - this.updateBy = updateBy; - } - - public Date getUpdateTime() { - return updateTime; - } - - public void setUpdateTime(Date updateTime) { - this.updateTime = updateTime; - } - - public InstitutionAreaTreeModel() { } - - /** - * 重写equals方法 - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - InstitutionAreaTreeModel model = (InstitutionAreaTreeModel) o; - return Objects.equals(id, model.id) && - Objects.equals(parentId, model.parentId) && - Objects.equals(instName, model.instName) && - Objects.equals(instNameEn, model.instNameEn) && - Objects.equals(instNameAbbr, model.instNameAbbr) && - Objects.equals(instOrder, model.instOrder) && - Objects.equals(description, model.description) && - Objects.equals(orgCategory, model.orgCategory) && - Objects.equals(orgType, model.orgType) && - Objects.equals(orgCode, model.orgCode) && - Objects.equals(mobile, model.mobile) && - Objects.equals(address, model.address) && - Objects.equals(status, model.status) && - Objects.equals(delFlag, model.delFlag) && - Objects.equals(createBy, model.createBy) && - Objects.equals(createTime, model.createTime) && - Objects.equals(updateBy, model.updateBy) && - Objects.equals(updateTime, model.updateTime) && - Objects.equals(children, model.children); - } - - /** - * 重写hashCode方法 - */ - @Override - public int hashCode() { - - return Objects.hash(id, parentId, instName, instNameEn, instNameAbbr, - instOrder, description, orgCategory, orgType, orgCode, mobile, address, - status, delFlag, createBy, createTime, updateBy, updateTime, - children); - } - -} diff --git a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/institution/service/IInstitutionAreaService.java b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/institution/service/IInstitutionAreaService.java deleted file mode 100644 index 4566506..0000000 --- a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/institution/service/IInstitutionAreaService.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.nu.modules.institution.service; - -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.baomidou.mybatisplus.extension.service.IService; -import com.nu.modules.institution.entity.InstitutionArea; -import com.nu.modules.institution.model.InstitutionAreaTreeModel; -import org.jeecg.common.api.vo.Result; - -import java.util.List; - -/** - *

- * 机构表 服务实现类 - *

- * - * @Author 曹磊 - * @Since 2025-03-25 - */ -public interface IInstitutionAreaService extends IService{ - - /** - * 保存部门数据 - * @param InstitutionArea - * @param username 用户名 - */ - void saveInstData(InstitutionArea InstitutionArea,String username); - - /** - * 更新Inst数据 - * @param InstitutionArea - * @param username 用户名 - * @return - */ - Boolean updateInstDataById(InstitutionArea InstitutionArea,String username); - - /** - * 根据关键字搜索相关的部门数据 - * @param keyWord - * @return - */ - List searchByKeyWord(String keyWord); - - /** - * 根据部门id删除并删除其可能存在的子级部门 - * @param id - * @return - */ - boolean delete(String id); - - /** - * 获取我的部门下级所有部门 - * @param parentId 父id - * @param primaryKey 主键字段(id或者orgCode) - * @return - */ - List queryTreeListByPid(String parentId,String primaryKey); - - /** - * 根据id查询机构信息 - * @param parentId - * @return - */ - IPage getMaxCodeInst(Page page, String parentId); - - /** - * 删除部门 - * @param id - */ - Result deleteInst(InstitutionArea institutionArea); - - /** - * 根据id查询部门信息 - * @param parentId - * @return - */ - InstitutionArea getInstById(String parentId); - - -} diff --git a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/institution/service/impl/InstitutionAreaServiceImpl.java b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/institution/service/impl/InstitutionAreaServiceImpl.java deleted file mode 100644 index 6d75016..0000000 --- a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/institution/service/impl/InstitutionAreaServiceImpl.java +++ /dev/null @@ -1,201 +0,0 @@ -package com.nu.modules.institution.service.impl; - -import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.core.toolkit.IdWorker; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.nu.modules.institution.entity.InstitutionArea; -import com.nu.modules.institution.mapper.InstitutionAreaMapper; -import com.nu.modules.institution.model.InstitutionAreaTreeModel; -import com.nu.modules.institution.service.IInstitutionAreaService; -import com.nu.modules.institution.utils.OrgCodeRule; -import org.jeecg.common.api.vo.Result; -import org.jeecg.common.constant.CommonConstant; -import org.jeecg.common.util.oConvertUtils; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import java.util.*; -import java.util.function.Consumer; - -/** - *

- * 机构表 服务实现类 - *

- * - * @Author 曹磊 - * @Since 2025-03-25 - */ -@Service -public class InstitutionAreaServiceImpl extends ServiceImpl implements IInstitutionAreaService { - - /** - * 根据parentId查询机构树 - * @param parentId - * @param primaryKey 主键字段(id或者orgCode) - * @return - */ - @Override - public List queryTreeListByPid(String parentId,String primaryKey) { - Consumer> square = i -> { - if(oConvertUtils.isEmpty(parentId)){ - i.and(q->q.isNull(true,InstitutionArea::getParentId).or().eq(true,InstitutionArea::getParentId,"")); - }else{ - i.eq(true,InstitutionArea::getParentId,parentId); - } - }; - LambdaQueryWrapper lqw=new LambdaQueryWrapper<>(); - lqw.eq(true,InstitutionArea::getDelFlag,CommonConstant.DEL_FLAG_0.toString()); - lqw.func(square); - lqw.orderByAsc(InstitutionArea::getInstOrder); - List list = list(lqw); - List records = new ArrayList<>(); - for (int i = 0; i < list.size(); i++) { - InstitutionArea inst = list.get(i); - InstitutionAreaTreeModel treeModel = new InstitutionAreaTreeModel(inst); - records.add(treeModel); - } - return records; - } - - /** - * 根据id查询机构信息 - * @param parentId - * @return - */ - @Override - public IPage getMaxCodeInst(Page page, String parentId) { - return page.setRecords(baseMapper.getMaxCodeInst(page,parentId)); - } - /** - * saveInstData 对应 add 保存用户在页面添加的新的机构对象数据 - */ - @Override - @Transactional(rollbackFor = Exception.class) - public void saveInstData(InstitutionArea institutionArea, String username) { - if (institutionArea != null && username != null) { - //给机构表加个是否有子节点------------ - if (oConvertUtils.isEmpty(institutionArea.getParentId())) { - institutionArea.setParentId(""); - }else{ - //将父机构的设成不是叶子结点 - baseMapper.setMainLeaf(institutionArea.getParentId(),CommonConstant.NOT_LEAF); - } - //给机构表加个是否有子节点------------ - institutionArea.setId(IdWorker.getIdStr(institutionArea)); - // 先判断该对象有无父级ID,有则意味着不是最高级,否则意味着是最高级 - // 获取父级ID - String parentId = institutionArea.getParentId(); - //begin--机构编码规则生成器做成公用配置 - JSONObject formData = new JSONObject(); - formData.put("parentId",parentId); - String[] codeArray = OrgCodeRule.getOrgCode(formData); - //end--机构编码规则生成器做成公用配置 - institutionArea.setOrgCode(codeArray[0]); - String orgType = codeArray[1]; - institutionArea.setOrgType(String.valueOf(orgType)); - institutionArea.setCreateTime(new Date()); - institutionArea.setDelFlag(CommonConstant.DEL_FLAG_0.toString()); - //新添加的机构是叶子节点 - institutionArea.setIzLeaf(CommonConstant.IS_LEAF); - if (oConvertUtils.isEmpty(institutionArea.getOrgCategory())) { - if (oConvertUtils.isEmpty(institutionArea.getParentId())) { - institutionArea.setOrgCategory("1"); - } else { - institutionArea.setOrgCategory("2"); - } - } - this.save(institutionArea); - } - } - - /** - * updateInstDataById 对应 edit 根据机构主键来更新对应的机构数据 - */ - @Override - @Transactional(rollbackFor = Exception.class) - public Boolean updateInstDataById(InstitutionArea institutionArea, String username) { - if (institutionArea != null && username != null) { - institutionArea.setUpdateTime(new Date()); - institutionArea.setUpdateBy(username); - this.updateById(institutionArea); - return true; - } else { - return false; - } - } - - /** - *

- * 根据关键字搜索相关的机构数据 - *

- */ - @Override - public List searchByKeyWord(String keyWord) { - LambdaQueryWrapper query = new LambdaQueryWrapper(); - List newList = new ArrayList<>(); - query.like(InstitutionArea::getInstName, keyWord); - InstitutionAreaTreeModel model = new InstitutionAreaTreeModel(); - List instList = this.list(query); - if(instList.size() > 0) { - for(InstitutionArea inst : instList) { - model = new InstitutionAreaTreeModel(inst); - model.setChildren(null); - newList.add(model); - } - return newList; - } - return null; - } - - @Override - public InstitutionArea getInstById(String id) { - return baseMapper.getInstById(id); - } - - @Override - public Result deleteInst(InstitutionArea institutionArea) { - //判断是否有字节点 - int childrenCount = baseMapper.queryCountByPid(institutionArea.getId()); - if(childrenCount>0){ - if(institutionArea.getOrgCategory().equals("1")){ - return Result.error("此机构存在子区域,请将子区域全部删除后再来删除此机构!"); - }else{ - return Result.error("此区域存在子区域,请将子区域全部删除后再来删除此区域!"); - } - } - //删除机构设置父级的叶子结点 - this.setIzLeaf(institutionArea.getId()); - this.delete(institutionArea.getId()); - return Result.OK("机构删除成功!"); - } - - /** - * 设置父级节点是否存在叶子结点 - * @param id - */ - private void setIzLeaf(String id) { - InstitutionArea inst = this.getInstById(id); - String parentId = inst.getParentId(); - if(oConvertUtils.isNotEmpty(parentId)){ - Long count = this.count(new QueryWrapper().lambda().eq(InstitutionArea::getParentId, parentId)); - if(count == 1){ - //若父节点无其他子节点,则该父节点是叶子节点 - baseMapper.setMainLeaf(parentId, CommonConstant.IS_LEAF); - } - } - } - - /** - * 根据机构id删除并且删除其可能存在的子级任何机构 - */ - @Override - @Transactional(rollbackFor = Exception.class) - public boolean delete(String id) { - boolean ok = this.removeById(id); - return ok; - } - -} diff --git a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/institution/utils/FindOrgCodeUtil.java b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/institution/utils/FindOrgCodeUtil.java deleted file mode 100644 index c8e68f3..0000000 --- a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/institution/utils/FindOrgCodeUtil.java +++ /dev/null @@ -1,180 +0,0 @@ -package com.nu.modules.institution.utils; - -import io.netty.util.internal.StringUtil; -import org.jeecg.common.util.oConvertUtils; - -/** - * 流水号生成规则(按默认规则递增,数字从1-999开始递增,数字到999,递增字母;位数不够增加位数) - * A001 - * A001A002 - * @Author 曹磊 - * - */ -public class FindOrgCodeUtil { - - // 数字位数(默认生成3位的数字) - - /**代表数字位数*/ - private static final int NUM_LENGTH = 3; - - public static final int ZHANWEI_LENGTH = 1+ NUM_LENGTH; - - public static final char LETTER= 'Z'; - - /** - * 根据前一个code,获取同级下一个code - * 例如:当前最大code为A001A004,下一个code为:A001A005 - * - * @param code - * @return - */ - public static synchronized String getNextOrgCode(String code) { - String newcode = ""; - if (oConvertUtils.isEmpty(code)) { - String zimu = "A"; - String num = getStrNum(1); - newcode = zimu + num; - } else { - String beforeCode = code.substring(0, code.length() - 1- NUM_LENGTH); - String afterCode = code.substring(code.length() - 1 - NUM_LENGTH,code.length()); - char afterCodeZimu = afterCode.substring(0, 1).charAt(0); - Integer afterCodeNum = Integer.parseInt(afterCode.substring(1)); - - String nextNum = ""; - char nextZimu = 'A'; - // 先判断数字等于999*,则计数从1重新开始,递增 - if (afterCodeNum == getMaxNumByLength(NUM_LENGTH)) { - nextNum = getNextStrNum(0); - } else { - nextNum = getNextStrNum(afterCodeNum); - } - // 先判断数字等于999*,则字母从A重新开始,递增 - if(afterCodeNum == getMaxNumByLength(NUM_LENGTH)) { - nextZimu = getNextZiMu(afterCodeZimu); - }else{ - nextZimu = afterCodeZimu; - } - - // 例如Z99,下一个code就是Z99A01 - if (LETTER == afterCodeZimu && getMaxNumByLength(NUM_LENGTH) == afterCodeNum) { - newcode = code + (nextZimu + nextNum); - } else { - newcode = beforeCode + (nextZimu + nextNum); - } - } - return newcode; - } - - /** - * 根据父亲code,获取下级的下一个code - * - * 例如:父亲CODE:A001 - * 当前CODE:A001B003 - * 获取的code:A001B004 - * - * @param parentCode 上级code - * @param localCode 同级code - * @return - */ - public static synchronized String getSubOrgCode(String parentCode,String localCode) { - if(localCode!=null && localCode!=""){ - - return getNextOrgCode(localCode); - - }else{ - parentCode = parentCode + "A"+ getNextStrNum(0); - } - return parentCode; - } - - - - /** - * 将数字前面位数补零 - * - * @param num - * @return - */ - private static String getNextStrNum(int num) { - return getStrNum(getNextNum(num)); - } - - /** - * 将数字前面位数补零 - * - * @param num - * @return - */ - private static String getStrNum(int num) { - String s = String.format("%0" + NUM_LENGTH + "d", num); - return s; - } - - /** - * 递增获取下个数字 - * - * @param num - * @return - */ - private static int getNextNum(int num) { - num++; - return num; - } - - /** - * 递增获取下个字母 - * - * @param zimu - * @return - */ - private static char getNextZiMu(char zimu) { - if (zimu == LETTER) { - return 'A'; - } - zimu++; - return zimu; - } - - /** - * 根据数字位数获取最大值 - * @param length - * @return - */ - private static int getMaxNumByLength(int length){ - if(length==0){ - return 0; - } - StringBuilder maxNum = new StringBuilder(); - for (int i=0;i - * 对应机构的表,处理并查找树级数据 - *

- * - * @Author: 曹磊 - * @Date: 2025-03-25 - */ -public class FindsInstChildrenUtil { - - /** - * queryTreeList的子方法 ====1===== - * 该方法是s将InstitutionArea类型的list集合转换成InstitutionAreaTreeModel类型的集合 - */ - public static List wrapTreeDataToTreeList(List recordList) { - List idList = new ArrayList(); - List records = new ArrayList<>(); - for (int i = 0; i < recordList.size(); i++) { - InstitutionArea inst = recordList.get(i); - records.add(new InstitutionAreaTreeModel(inst)); - } - List tree = findChildren(records, idList); - setEmptyChildrenAsNull(tree); - return tree; - } - - /** - * 获取 InstitutionAreaIdModel - * @param recordList - * @return - */ - public static List wrapTreeDataToInstIdTreeList(List recordList) { - List idList = new ArrayList(); - List records = new ArrayList<>(); - for (int i = 0; i < recordList.size(); i++) { - InstitutionArea inst = recordList.get(i); - records.add(new InstitutionAreaTreeModel(inst)); - } - findChildren(records, idList); - return idList; - } - - /** - * queryTreeList的子方法 ====2===== - * 该方法是找到并封装顶级父类的节点到TreeList集合 - */ - private static List findChildren(List recordList, List instIdList) { - List treeList = new ArrayList<>(); - for (int i = 0; i < recordList.size(); i++) { - InstitutionAreaTreeModel branch = recordList.get(i); - if (oConvertUtils.isEmpty(branch.getParentId())) { - treeList.add(branch); - InstitutionAreaIdModel InstitutionAreaIdModel = new InstitutionAreaIdModel().convert(branch); - instIdList.add(InstitutionAreaIdModel); - } - } - getGrandChildren(treeList,recordList,instIdList); - return treeList; - } - - /** - * queryTreeList的子方法====3==== - *该方法是找到顶级父类下的所有子节点集合并封装到TreeList集合 - */ - private static void getGrandChildren(List treeList,List recordList,List idList) { - for (int i = 0; i < treeList.size(); i++) { - InstitutionAreaTreeModel model = treeList.get(i); - InstitutionAreaIdModel idModel = idList.get(i); - for (int i1 = 0; i1 < recordList.size(); i1++) { - InstitutionAreaTreeModel m = recordList.get(i1); - if (m.getParentId()!=null && m.getParentId().equals(model.getId())) { - model.getChildren().add(m); - InstitutionAreaIdModel dim = new InstitutionAreaIdModel().convert(m); - idModel.getChildren().add(dim); - } - } - getGrandChildren(treeList.get(i).getChildren(), recordList, idList.get(i).getChildren()); - } - } - - /** - * queryTreeList的子方法 ====4==== - * 该方法是将子节点为空的List集合设置为Null值 - */ - private static void setEmptyChildrenAsNull(List treeList) { - - for (int i = 0; i < treeList.size(); i++) { - InstitutionAreaTreeModel model = treeList.get(i); - if (model.getChildren().size() == 0) { - model.setChildren(null); - model.setIsLeaf(true); - }else{ - setEmptyChildrenAsNull(model.getChildren()); - model.setIsLeaf(false); - } - } - } -} diff --git a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/institution/utils/OrgCodeRule.java b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/institution/utils/OrgCodeRule.java deleted file mode 100644 index b85f307..0000000 --- a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/institution/utils/OrgCodeRule.java +++ /dev/null @@ -1,78 +0,0 @@ -package com.nu.modules.institution.utils; - -import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.nu.modules.institution.entity.InstitutionArea; -import com.nu.modules.institution.service.impl.InstitutionAreaServiceImpl; -import io.netty.util.internal.StringUtil; -import org.jeecg.common.util.SpringContextUtils; -import java.util.List; - -/** - * @Author scott - * @Date 2019/12/9 11:33 - * @Description: 机构编码生成规则 - */ -public class OrgCodeRule{ - - public static String[] getOrgCode(JSONObject params) { - InstitutionAreaServiceImpl institutionAreaService = (InstitutionAreaServiceImpl) SpringContextUtils.getBean("institutionAreaServiceImpl"); - - String[] strArray = new String[2]; - //定义机构类型 - String orgType = ""; - // 定义新编码字符串 - String newOrgCode = ""; - // 定义旧编码字符串 - String oldOrgCode = ""; - String parentId = null; - Object obj = params.get("parentId"); - if (obj != null) { - parentId = obj.toString(); - } - //如果是最高级,则查询出同级的org_code, 调用工具类生成编码并返回 - if (StringUtil.isNullOrEmpty(parentId)) { - // 线判断数据库中的表是否为空,空则直接返回初始编码 - //获取最大值code的机构信息 - Page page = new Page<>(1,1); - IPage pageList = institutionAreaService.getMaxCodeInst(page,""); - List records = pageList.getRecords(); - if (null==records || records.size()==0) { - strArray[0] = FindOrgCodeUtil.getNextOrgCode(null); - strArray[1] = "1"; - return strArray; - } else { - InstitutionArea depart = records.get(0); - oldOrgCode = depart.getOrgCode(); - orgType = depart.getOrgType(); - newOrgCode = FindOrgCodeUtil.getNextOrgCode(oldOrgCode); - } - } else {//反之则查询出所有同级的机构,获取结果后有两种情况,有同级和没有同级 - //获取自己机构最大值orgCode机构信息 - Page page = new Page<>(1,1); - IPage pageList = institutionAreaService.getMaxCodeInst(page,parentId); - List records = pageList.getRecords(); - // 查询出父级机构 - InstitutionArea depart = institutionAreaService.getInstById(parentId); - // 获取父级机构的Code - String parentCode = depart.getOrgCode(); - // 根据父级机构类型算出当前机构的类型 - orgType = String.valueOf(Integer.valueOf(depart.getOrgType()) + 1); - // 处理同级机构为null的情况 - if (null == records || records.size()==0) { - // 直接生成当前的机构编码并返回 - newOrgCode = FindOrgCodeUtil.getSubOrgCode(parentCode, null); - } else { //处理有同级机构的情况 - // 获取同级机构的编码,利用工具类 - String subCode = records.get(0).getOrgCode(); - // 返回生成的当前机构编码 - newOrgCode = FindOrgCodeUtil.getSubOrgCode(parentCode, subCode); - } - } - // 返回最终封装了机构编码和机构类型的数组 - strArray[0] = newOrgCode; - strArray[1] = orgType; - return strArray; - } -} diff --git a/nursing-unit-api/src/main/java/com/nu/modules/NuBizNuCustomerServer/entity/NuBizNuCustomerServer.java b/nursing-unit-api/src/main/java/com/nu/modules/NuBizNuCustomerServer/entity/NuBizNuCustomerServer.java index 95ac196..37cf5cd 100644 --- a/nursing-unit-api/src/main/java/com/nu/modules/NuBizNuCustomerServer/entity/NuBizNuCustomerServer.java +++ b/nursing-unit-api/src/main/java/com/nu/modules/NuBizNuCustomerServer/entity/NuBizNuCustomerServer.java @@ -27,10 +27,10 @@ import lombok.experimental.Accessors; * @Version: V1.0 */ @Data -@TableName("nu_biz_nu_customer_server") +@TableName("nu_biz_nu_customer_server_care") @Accessors(chain = true) @EqualsAndHashCode(callSuper = false) -@ApiModel(value="nu_biz_nu_customer_server对象", description="护理单元客户配置服务指令") +@ApiModel(value="nu_biz_nu_customer_server_care对象", description="护理单元客户配置服务指令") public class NuBizNuCustomerServer implements Serializable { private static final long serialVersionUID = 1L; diff --git a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/ConfigMaterial/service/impl/ConfigMaterialCategoryServiceImpl.java b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/ConfigMaterial/service/impl/ConfigMaterialCategoryServiceImpl.java index 47e5a7f..ebcadd3 100644 --- a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/ConfigMaterial/service/impl/ConfigMaterialCategoryServiceImpl.java +++ b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/ConfigMaterial/service/impl/ConfigMaterialCategoryServiceImpl.java @@ -162,7 +162,7 @@ public class ConfigMaterialCategoryServiceImpl extends ServiceImpl @@ -92,7 +92,7 @@ from nu_base_info b - AND b.nu_id = #{params.nuId} + AND b.id = #{params.nuId} AND b.nu_name LIKE concat('%',#{params.nuName},'%') @@ -125,7 +125,7 @@ protocol as protocol, a.nu_id as nuId, b.nu_name as nuName - from nu_iot_tplink_camera a left join nu_base_info b on a.nu_id = b.nu_id + from nu_iot_tplink_camera a left join nu_base_info b on a.nu_id = b.id where device_index = #{deviceIndex} diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/service/impl/CameraInfoServiceImpl.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/service/impl/CameraInfoServiceImpl.java index 6dbd07f..d0f2804 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/service/impl/CameraInfoServiceImpl.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/service/impl/CameraInfoServiceImpl.java @@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.fasterxml.jackson.databind.ObjectMapper; import com.nu.modules.tplink.common.entity.TumsConfig; -import com.nu.modules.tplink.common.service.ITumsConfigService; +import com.nu.modules.tplink.common.mapper.TumsConfigMapper; import org.apache.commons.compress.utils.Lists; import org.apache.shiro.SecurityUtils; import org.jeecg.common.api.vo.Result; @@ -42,7 +42,7 @@ public class CameraInfoServiceImpl extends ServiceImpl chnList = (List)chnMap.get("data"); if(chnList!=null&&chnList.size()>0){ LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - TumsConfig tumsConfig = tumsConfigService.getByCode(sysUser.getOrgCode()); + TumsConfig tumsConfig = tumsConfigMapper.getByCode(sysUser.getOrgCode()); for(int j=0;j playbackMap = getPlaybackUrl(chn,1); @@ -2014,7 +2014,7 @@ public class CameraInfoServiceImpl extends ServiceImpl getUser(TumsConfig tumsConfig) { + return tumsConfigService.getUser(tumsConfig); + } + + /** + * 添加和编辑图门系统用户 + * @return + */ + @PostMapping(value = "/saveUser") + public Result saveUser(@RequestBody TumsConfig tumsConfig) { + return tumsConfigService.saveUser(tumsConfig); + } + } diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/common/entity/TumsConfig.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/common/entity/TumsConfig.java index d75fe1c..929f3de 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/common/entity/TumsConfig.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/common/entity/TumsConfig.java @@ -1,7 +1,11 @@ package com.nu.modules.tplink.common.entity; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -21,9 +25,18 @@ import java.io.Serializable; @ApiModel(value="nu_iot_tplink_tums_base", description="护理单元-物联管理-TPLINK图门系统配置信息") public class TumsConfig implements Serializable { private static final long serialVersionUID = 1L; + /**ID*/ + @TableId(type = IdType.AUTO) + @ApiModelProperty(value = "ID") + private Integer id; private String tumsUrl; //获取图门系统地址 + private String tumsProjectId; //图门系统登录项目ID + @TableField(exist = false) + private String tumsProjectName; //图门系统登录项目ID + private String tumsUserId; // 图门系统登录用户ID private String tumsUsername; // 获取图门系统用户 private String tumsPassword; //获取图门系统密码 + private String tumsRoleId; //图门系统角色ID private String ftpIp; //回放视频转FTP上传IP private String ftpPort; //回放视频转FTP上传端口 private String ftpUsername; //回放视频转FTP上传用户 diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/common/mapper/TumsConfigMapper.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/common/mapper/TumsConfigMapper.java index 9eace62..3a8620d 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/common/mapper/TumsConfigMapper.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/common/mapper/TumsConfigMapper.java @@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.nu.modules.tplink.common.entity.TumsConfig; import org.apache.ibatis.annotations.Mapper; +import java.util.Map; + /** * @Description: 护理单元-物联管理-错误码 * @Author: jeecg-boot @@ -14,4 +16,7 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface TumsConfigMapper extends BaseMapper { TumsConfig getByCode(String orgCode); + TumsConfig findProjectByCodeOrId(TumsConfig tumsConfig); + void addUser(Map map); + void updateUser(Map map); } diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/common/mapper/xml/TumsConfigMapper.xml b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/common/mapper/xml/TumsConfigMapper.xml index 6168032..6ba6303 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/common/mapper/xml/TumsConfigMapper.xml +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/common/mapper/xml/TumsConfigMapper.xml @@ -6,8 +6,11 @@ select id, tums_url as tumsUrl, + tums_project_id as tumsProjectId, + tums_userId as tumsUserId, tums_username as tumsUsername, tums_password as tumsPassword, + tums_roleId as tumsRoleId, ftp_ip as ftpIp, ftp_port as ftpPort, ftp_username as ftpUsername, @@ -27,4 +30,135 @@ limit 1 + + + + insert into nu_iot_tplink_tums_base( + + tums_url, + + + tums_project_id, + + + tums_userId, + + + tums_username, + + + tums_password, + + + tums_roleId, + + + ftp_ip, + + + ftp_port, + + + ftp_username, + + + ftp_password, + + + ftp_uploadpath, + + org_code + ) + values( + + #{tumsUrl}, + + + #{tumsProjectId}, + + + #{tumsUserId}, + + + #{tumsUsername}, + + + #{tumsPassword}, + + + #{tumsRoleId}, + + + #{ftpIp}, + + + #{ftpPort}, + + + #{ftpUsername}, + + + #{ftpPassword}, + + + #{ftpUploadpath}, + + #{orgCode} + ) + + + + update nu_iot_tplink_tums_base + set + + tums_url = #{tumsUrl}, + + + tums_project_id = #{tumsProjectId}, + + + tums_userId = #{tumsUserId}, + + + tums_username = #{tumsUsername}, + + + tums_password = #{tumsPassword}, + + + tums_roleId = #{tumsRoleId}, + + + ftp_ip = #{ftpIp}, + + + ftp_port = #{ftpPort}, + + + ftp_username = #{ftpUsername}, + + + ftp_password = #{ftpPassword}, + + + ftp_uploadpath = #{ftpUploadpath}, + + org_code = #{orgCode} + where org_code = #{orgCode} + + \ No newline at end of file diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/common/service/ITumsConfigService.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/common/service/ITumsConfigService.java index bc8119d..e1db723 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/common/service/ITumsConfigService.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/common/service/ITumsConfigService.java @@ -2,6 +2,7 @@ package com.nu.modules.tplink.common.service; import com.baomidou.mybatisplus.extension.service.IService; import com.nu.modules.tplink.common.entity.TumsConfig; +import org.jeecg.common.api.vo.Result; /** * @Description: 护理单元-物联管理-图门系统配置 @@ -11,4 +12,6 @@ import com.nu.modules.tplink.common.entity.TumsConfig; */ public interface ITumsConfigService extends IService { TumsConfig getByCode(String orgCode); + Result getUser(TumsConfig tumsConfig); + Result saveUser(TumsConfig tumsConfig); } diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/common/service/impl/TumsConfigServiceImpl.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/common/service/impl/TumsConfigServiceImpl.java index ef3eb81..f025379 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/common/service/impl/TumsConfigServiceImpl.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/common/service/impl/TumsConfigServiceImpl.java @@ -1,10 +1,17 @@ package com.nu.modules.tplink.common.service.impl; +import cn.hutool.json.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.nu.modules.tplink.common.entity.TumsConfig; import com.nu.modules.tplink.common.mapper.TumsConfigMapper; import com.nu.modules.tplink.common.service.ITumsConfigService; +import com.nu.modules.tplink.utils.TumsApi; +import org.jeecg.common.api.vo.Result; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.HashMap; +import java.util.Map; + /** * @Description: 护理单元-物联管理-图门系统配置 @@ -15,9 +22,157 @@ import org.springframework.stereotype.Service; @Service public class TumsConfigServiceImpl extends ServiceImpl implements ITumsConfigService { + @Autowired + private TumsApi tumsApi; + @Override public TumsConfig getByCode(String orgCode){ return baseMapper.getByCode(orgCode); } + @Override + public Result getUser(TumsConfig tumsConfig){ + TumsConfig entity = baseMapper.getByCode(tumsConfig.getOrgCode()); + if(entity == null){ + entity = new TumsConfig(); + entity.setOrgCode(tumsConfig.getOrgCode()); + } + TumsConfig project = baseMapper.findProjectByCodeOrId(entity); + if(project!=null){ + entity.setTumsProjectId(project.getTumsProjectId()); + entity.setTumsProjectName(project.getTumsProjectName()); + } + return Result.OK(entity); + } + + @Override + public Result saveUser(TumsConfig tumsConfig){ + TumsConfig entity = baseMapper.getByCode(tumsConfig.getOrgCode()); + if(entity!=null){ + String errorMsg = ""; + Map map = new HashMap<>(); + if(!entity.getTumsPassword().equals(tumsConfig.getTumsPassword())){ + //调用修改密码接口 + StringBuffer sbp = new StringBuffer(); + sbp.append("{"); + sbp.append("\"userId\"").append(":").append("\"").append(tumsConfig.getTumsUserId()).append("\","); + sbp.append("\"oldPassword\"").append(":").append("\"").append(entity.getTumsPassword()).append("\","); + sbp.append("\"newPassword\"").append(":").append("\"").append(tumsConfig.getTumsPassword()).append("\""); + sbp.append("}"); + String jsonResponsep = tumsApi.changePassword(sbp.toString()); + JSONObject jsonObjectp = new JSONObject(jsonResponsep); + String errorCodep = jsonObjectp.getStr("error_code"); + if(errorCodep.equals("0")){ + map.put("tumsPassword",tumsConfig.getTumsPassword()); + }else{ + if(errorCodep.equals("-82400")){ + errorMsg = "修改密码:密码格式错误!"; + }else{ + errorMsg = "修改密码:"+jsonObjectp.getStr("msg"); + } + } + } + if(!entity.getTumsRoleId().equals(tumsConfig.getTumsRoleId())){ + //调用修改角色接口 + StringBuffer sb = new StringBuffer(); + sb.append("{"); + sb.append("\"userId\"").append(":").append("\"").append(tumsConfig.getTumsUserId()).append("\","); + sb.append("\"roleList\"").append(":[").append(tumsConfig.getTumsRoleId()).append("]"); + sb.append("}"); + String jsonResponse = tumsApi.editUser(sb.toString()); + JSONObject jsonObject = new JSONObject(jsonResponse); + String errorCode = jsonObject.getStr("error_code"); + if(errorCode.equals("0")){ + map.put("tumsRoleId",tumsConfig.getTumsRoleId()); + }else{ + if(!errorMsg.equals("")){ + errorMsg = errorMsg + "\n" + "修改角色:"+jsonObject.getStr("msg"); + }else{ + errorMsg = "修改角色:"+jsonObject.getStr("msg"); + } + } + } + if(tumsConfig.getTumsUrl()!=null&&!tumsConfig.getTumsUrl().equals("")){ + map.put("tumsUrl",tumsConfig.getTumsUrl()); + } + if(tumsConfig.getTumsProjectId()!=null&&!tumsConfig.getTumsProjectId().equals("")){ + map.put("tumsProjectId",tumsConfig.getTumsProjectId()); + } + if(tumsConfig.getFtpIp()!=null&&!tumsConfig.getFtpIp().equals("")){ + map.put("ftpIp",tumsConfig.getFtpIp()); + } + if(tumsConfig.getFtpPort()!=null&&!tumsConfig.getFtpPort().equals("")){ + map.put("ftpPort",tumsConfig.getFtpPort()); + } + if(tumsConfig.getFtpUsername()!=null&&!tumsConfig.getFtpUsername().equals("")){ + map.put("ftpUsername",tumsConfig.getFtpUsername()); + } + if(tumsConfig.getFtpPassword()!=null&&!tumsConfig.getFtpPassword().equals("")){ + map.put("ftpPassword",tumsConfig.getFtpPassword()); + } + if(tumsConfig.getFtpUploadpath()!=null&&!tumsConfig.getFtpUploadpath().equals("")){ + map.put("ftpUploadpath",tumsConfig.getFtpUploadpath()); + } + if(tumsConfig.getOrgCode()!=null&&!tumsConfig.getOrgCode().equals("")){ + map.put("orgCode",tumsConfig.getOrgCode()); + } + baseMapper.updateUser(map); + if(!errorMsg.equals("")){ + return Result.error(errorMsg); + }else{ + return Result.OK("编辑用户成功!"); + } + }else { + StringBuffer sb = new StringBuffer(); + sb.append("{"); + sb.append("\"projectId\"").append(":").append("\"").append(tumsConfig.getTumsProjectId()).append("\","); + sb.append("\"username\"").append(":").append("\"").append(tumsConfig.getTumsUsername()).append("\","); + sb.append("\"password\"").append(":").append("\"").append(tumsConfig.getTumsPassword()).append("\","); + sb.append("\"roleList\"").append(":[").append(tumsConfig.getTumsRoleId()).append("]"); + sb.append("}"); + String jsonResponse = tumsApi.addUser(sb.toString()); + JSONObject jsonObject = new JSONObject(jsonResponse); + String errorCode = jsonObject.getStr("error_code"); + if(errorCode.equals("0")){ + JSONObject result = (JSONObject)jsonObject.get("result"); + Map map = new HashMap<>(); + map.put("tumsUserId",result.getStr("userId")); + map.put("tumsUsername",result.getStr("username")); + map.put("tumsPassword",tumsConfig.getTumsPassword()); + map.put("tumsRoleId",tumsConfig.getTumsRoleId()); + if(tumsConfig.getTumsUrl()!=null&&!tumsConfig.getTumsUrl().equals("")){ + map.put("tumsUrl",tumsConfig.getTumsUrl()); + } + if(tumsConfig.getTumsProjectId()!=null&&!tumsConfig.getTumsProjectId().equals("")){ + map.put("tumsProjectId",tumsConfig.getTumsProjectId()); + } + if(tumsConfig.getFtpIp()!=null&&!tumsConfig.getFtpIp().equals("")){ + map.put("ftpIp",tumsConfig.getFtpIp()); + } + if(tumsConfig.getFtpPort()!=null&&!tumsConfig.getFtpPort().equals("")){ + map.put("ftpPort",tumsConfig.getFtpPort()); + } + if(tumsConfig.getFtpUsername()!=null&&!tumsConfig.getFtpUsername().equals("")){ + map.put("ftpUsername",tumsConfig.getFtpUsername()); + } + if(tumsConfig.getFtpPassword()!=null&&!tumsConfig.getFtpPassword().equals("")){ + map.put("ftpPassword",tumsConfig.getFtpPassword()); + } + if(tumsConfig.getFtpUploadpath()!=null&&!tumsConfig.getFtpUploadpath().equals("")){ + map.put("ftpUploadpath",tumsConfig.getFtpUploadpath()); + } + if(tumsConfig.getOrgCode()!=null&&!tumsConfig.getOrgCode().equals("")){ + map.put("orgCode",tumsConfig.getOrgCode()); + } + baseMapper.addUser(map); + return Result.OK("添加用户成功!"); + }else{ + if(errorCode.equals("-82400")){ + return Result.error("密码格式错误"); + }else{ + return Result.error(jsonObject.getStr("msg")); + } + } + } + } } diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/enums/ApiEnum.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/enums/ApiEnum.java index 3ec8a4c..309c99f 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/enums/ApiEnum.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/enums/ApiEnum.java @@ -21,6 +21,9 @@ public enum ApiEnum { GET_ENCRYPT_KEY_FOR_LOGIN("/tums/account/v1/getEncryptKeyForLogin","获取登录公钥"), LOGIN("/tums/account/v2/login","登录"), LOGOUT("/tums/account/v1/logout","注销"), + ADD_USER("/tums/account/v2/customCreateAccount","添加自定义用户"), + EDIT_USER("/tums/account/v2/editUser","编辑用户"), + CHANGE_PASSWORD("/tums/account/v2/changePassword","修改密码"), SET_CURRENT_PROJECT("/tums/resource/v2/setCurrentProject","设置当前项目"), GET_ALL_PROJECT_INFO("/tums/resource/v2/getAllProjectInfo","获取所有项目信息"), ADD_PROJECT("/tums/resource/v2/addProject","添加项目信息"), diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/project/entity/ProjectInfo.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/project/entity/ProjectInfo.java index 2f9be9d..49bf57f 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/project/entity/ProjectInfo.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/project/entity/ProjectInfo.java @@ -47,7 +47,7 @@ public class ProjectInfo implements Serializable { /**机构ID*/ @Excel(name = "机构ID", width = 15) @ApiModelProperty(value = "机构ID") - @Dict(dicCode = "id" , dictTable = "nu_admin_institution_area" , dicText = "inst_name") + @Dict(dicCode = "id" , dictTable = "sys_depart" , dicText = "depart_name") private String institutionId; /**创建时间戳,单位秒*/ @ApiModelProperty(value = "创建时间戳,单位秒") diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/region/entity/RegionInfo.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/region/entity/RegionInfo.java index f87abd7..aa8f246 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/region/entity/RegionInfo.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/region/entity/RegionInfo.java @@ -44,11 +44,11 @@ public class RegionInfo implements Serializable { /**机构ID*/ @Excel(name = "区域ID", width = 15) @ApiModelProperty(value = "区域ID") - @Dict(dicCode = "id" , dictTable = "nu_admin_institution_area" , dicText = "inst_name") + @Dict(dicCode = "id" , dictTable = "sys_depart" , dicText = "depart_name") private String areaId; @Excel(name = "机构ID", width = 15) @ApiModelProperty(value = "机构ID") - @Dict(dicCode = "id" , dictTable = "nu_admin_institution_area" , dicText = "inst_name") + @Dict(dicCode = "id" , dictTable = "sys_depart" , dicText = "depart_name") private String institutionId; /**分组层级*/ @Excel(name = "分组层级", width = 15) diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/utils/TumsApi.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/utils/TumsApi.java index 1e3d43d..551e2a4 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/utils/TumsApi.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/utils/TumsApi.java @@ -1,7 +1,7 @@ package com.nu.modules.tplink.utils; import com.nu.modules.tplink.common.entity.TumsConfig; -import com.nu.modules.tplink.common.service.ITumsConfigService; +import com.nu.modules.tplink.common.mapper.TumsConfigMapper; import com.tplink.ignite.libs.developersdk.api.TumsClient; import com.tplink.ignite.libs.developersdk.vo.ResultVO; import lombok.extern.slf4j.Slf4j; @@ -18,8 +18,9 @@ public class TumsApi { TumsClient tumsClient; TumsConfig tumsConfig; + @Autowired - private ITumsConfigService tumsConfigService; + private TumsConfigMapper tumsConfigMapper; /** * 创建tumsClient @@ -44,10 +45,15 @@ public class TumsApi { private void initTumsConfig(){ if(tumsConfig==null){ LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - tumsConfig = tumsConfigService.getByCode(sysUser.getOrgCode()); + tumsConfig = tumsConfigMapper.getByCode(sysUser.getOrgCode()); } } + public String getRsaKey(){ + login(); + return tumsClient.getRsaKey(); + } + /** * 登录 * @return @@ -84,6 +90,45 @@ public class TumsApi { } } + /** + * 添加自定义用户 + * @param jsonRequest + * @return + */ + public String addUser(String jsonRequest){ + this.createTumsClient(); + log.info("addUser:request:{}",jsonRequest); + String jsonResponse = tumsClient.requestEncryptedApi(jsonRequest, ApiEnum.ADD_USER.getValue()); + log.info("addUser:response:{}",jsonResponse); + return jsonResponse; + } + + /** + * 编辑用户 + * @param jsonRequest + * @return + */ + public String editUser(String jsonRequest){ + this.createTumsClient(); + log.info("editUser:request:{}",jsonRequest); + String jsonResponse = tumsClient.requestEncryptedApi(jsonRequest, ApiEnum.EDIT_USER.getValue()); + log.info("editUser:response:{}",jsonResponse); + return jsonResponse; + } + + /** + * 编辑用户 + * @param jsonRequest + * @return + */ + public String changePassword(String jsonRequest){ + this.createTumsClient(); + log.info("changePassword:request:{}",jsonRequest); + String jsonResponse = tumsClient.requestEncryptedApi(jsonRequest, ApiEnum.CHANGE_PASSWORD.getValue()); + log.info("changePassword:response:{}",jsonResponse); + return jsonResponse; + } + /** * 设置当前项目 * @param jsonRequest diff --git a/nursing-unit-system/nu-system-biz/src/main/java/org/jeecg/modules/system/controller/SysDepartController.java b/nursing-unit-system/nu-system-biz/src/main/java/org/jeecg/modules/system/controller/SysDepartController.java index e701c95..a10a886 100644 --- a/nursing-unit-system/nu-system-biz/src/main/java/org/jeecg/modules/system/controller/SysDepartController.java +++ b/nursing-unit-system/nu-system-biz/src/main/java/org/jeecg/modules/system/controller/SysDepartController.java @@ -2,6 +2,7 @@ package org.jeecg.modules.system.controller; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; @@ -683,4 +684,44 @@ public class SysDepartController { return Result.error("文件导入失败!"); } + + /** + * 人员入住可选择的机构 + * @return + */ + @RequestMapping(value = "/queryInstitutionsList", method = RequestMethod.GET) + public List> queryInstitutionsList() { + List> result = new ArrayList<>(); + QueryWrapper query = new QueryWrapper<>(); + query.eq("del_flag","0"); + query.eq("org_category","1"); + query.eq("org_type","1"); + query.isNotNull("server_url"); + List list = sysDepartService.list(query); + for(SysDepart depart : list){ + Map map = new HashMap<>(); + map.put("id",depart.getId()); + map.put("departName",depart.getDepartName()); + map.put("serverUrl",depart.getServerUrl()); + result.add(map); + } + return result; + } + + /** + * 查询所有子区域信息 + * @return + */ + @GetMapping("queryChildrenByParentId") + public Result> queryChildrenByParentId(@RequestParam(name = "pid", required = false) String parentId) { + Result> result = new Result<>(); + LambdaQueryWrapper query = new LambdaQueryWrapper(); + query.orderByAsc(SysDepart::getDepartName); + query.eq(SysDepart::getParentId,parentId); + List ls = this.sysDepartService.list(query); + result.setSuccess(true); + result.setResult(ls); + return result; + } + } diff --git a/nursing-unit-system/nu-system-biz/src/main/java/org/jeecg/modules/system/entity/SysDepart.java b/nursing-unit-system/nu-system-biz/src/main/java/org/jeecg/modules/system/entity/SysDepart.java index 35e4fc9..39f8ae7 100644 --- a/nursing-unit-system/nu-system-biz/src/main/java/org/jeecg/modules/system/entity/SysDepart.java +++ b/nursing-unit-system/nu-system-biz/src/main/java/org/jeecg/modules/system/entity/SysDepart.java @@ -94,6 +94,9 @@ public class SysDepart implements Serializable { /**是否有叶子节点: 1是0否*/ private Integer izLeaf; + /**各机构服务器后台接口地址*/ + private String serverUrl; + //update-begin---author:wangshuai ---date:20200308 for:[JTC-119]在部门管理菜单下设置部门负责人,新增字段负责人ids和旧的负责人ids /**部门负责人的ids*/ @TableField(exist = false) diff --git a/nursing-unit-system/nu-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysDepartMapper.xml b/nursing-unit-system/nu-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysDepartMapper.xml index 888ef99..2eb154f 100644 --- a/nursing-unit-system/nu-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysDepartMapper.xml +++ b/nursing-unit-system/nu-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysDepartMapper.xml @@ -170,7 +170,23 @@