Commit 41de77ea authored by ZWT's avatar ZWT

feat(能源管理系统): 组织机构管理

1.修改组织机构管理分页列表功能,优化sql查询逻辑及代码业务处理逻辑,解决组织部分信息获取错误问题,完成接口冒烟测试并添加线上接口文档;
2.开发组织机构管理模块动态列表查询功能,添加线上接口文档并完成接口冒烟测试;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent 5f887bd8
package pps.core.system.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import pps.core.system.entity.SysOrganizationEnt;
import pps.core.system.entity.SysOrganizationView;
import pps.core.system.service.data.sys_organization.GetSysOrganizationInput;
import pps.core.system.service.data.sys_organization.QuerySysOrganizationViewOutput;
import pps.core.system.service.data.sys_organization.QuerySysOrganizationViewOutputTree;
import java.util.Date;
import java.util.List;
@Repository(value="pps.core.system.mapper.SysOrganizationViewMapper")
@Repository(value = "pps.core.system.mapper.SysOrganizationViewMapper")
public interface SysOrganizationViewMapper {
SysOrganizationView selectOne(SysOrganizationView record);
......@@ -36,7 +31,7 @@ public interface SysOrganizationViewMapper {
List<SysOrganizationView> selectListByOuIds(@Param("list") List<String> list);
List<SysOrganizationView> selectCountByParentOuIds(@Param("list") List<String> list , @Param("endTime")Date endTime );
List<SysOrganizationView> selectCountByParentOuIds(@Param("list") List<String> list, @Param("endTime") Date endTime);
SysOrganizationView getSysOrganizationByOuLevelAndUserId(SysOrganizationView view);
......@@ -57,4 +52,12 @@ public interface SysOrganizationViewMapper {
List<SysOrganizationView> selectOuByOuId(SysOrganizationView record);
List<SysOrganizationView> selectOuByOuIdsAndOuName(SysOrganizationView record);
/**
* 动态查询组织列表
*
* @param record 记录
* @return {@link List}<{@link SysOrganizationView}>
*/
List<SysOrganizationView> selectOrgListDynamicQuery(SysOrganizationView record);
}
......@@ -40,6 +40,7 @@ import xstartup.data.XPageResult;
import xstartup.data.XServiceResult;
import xstartup.data.XSingleResult;
import xstartup.error.XError;
import xstartup.feature.api.annotation.XApiGet;
import xstartup.feature.api.annotation.XApiPost;
import xstartup.helper.XTransactionHelper;
......@@ -418,6 +419,35 @@ public class SysOrganizationService {
return XListResult.success(outputs);
}
/**
* 组织机构管理--动态查询列表
*
* @param context 上下文
* @param input 输入
* @return {@link XListResult}<{@link DynamicQuerySysOrganizationOutput}>
*/
@XText("组织机构管理--动态查询列表")
@XApiGet
public XListResult<DynamicQuerySysOrganizationOutput> querySysOrganizationList(XContext context, DynamicQuerySysOrganizationInput input) {
SysOrganizationViewMapper mapper = context.getBean(SysOrganizationViewMapper.class);
SysOrganizationView view;
if (StringUtils.isAllBlank(input.getId(), input.getParentOuId(), input.getOuName())) {
//如果条件都为空,则从登录信息获取条件
view = new SysOrganizationView();
PpsUserSession session = context.getSession(PpsUserSession.class);
if (UserConstant.ISSUPERADMIN_TRUE.equals(session.getIsSuperAdmin())) {
view.setParentOuId("00000000-0000-0000-0000-000000000000");
} else {
view.setId(session.getOuId());
}
} else {
view = XCopyUtils.copyNewObject(input, SysOrganizationView.class);
}
List<SysOrganizationView> viewList = mapper.selectOrgListDynamicQuery(view);
List<DynamicQuerySysOrganizationOutput> outputs = XCopyUtils.copyNewList(viewList, DynamicQuerySysOrganizationOutput.class);
return XListResult.success(outputs);
}
@XText("根据父级id查询儿子级-特殊")
@XApiPost
public XListResult<GetSysOrganizationViewOutput> selectSpecailOuInfoByParentOuId(XContext context, GetSysOrganizationRelInput input) {
......
package pps.core.system.service.data.sys_organization;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import xstartup.annotation.XText;
import java.util.Date;
import java.math.BigDecimal;
/**
* 组织机构管理
*
* @author ZWT
* @date 2023/08/30
*/
@Data
public class DynamicQuerySysOrganizationInput {
@XText("主键")
private String id;
@XText("组织机构编码")
private String ouCode;
@XText("组织机构ID")
private String id;
@XText("组织机构名称")
private String ouName;
@XText("简称")
private String shortName;
@XText("单位级别(从系统字典中来)")
private String ouLevel;
@XText("描述")
private String description;
@XText("创建人")
private String createById;
@XText("创建人名称")
private String createByName;
@XText("创建时间")
private Date createTime;
@XText("修改人")
private String modifyById;
@XText("修改人名称")
private String modifyByName;
@XText("修改时间")
private Date modifyTime;
@XText("邮编")
private String postCode;
@XText("地址")
private String postAddress;
@XText("传真")
private String faxNo;
@XText("电话")
private String phone;
@XText("国家")
private String country;
@XText("省份")
private Integer province;
public String getId() {
return this.id;
}
public void setId(String value) {
this.id = value;
}
public String getOuCode() {
return this.ouCode;
}
public void setOuCode(String value) {
this.ouCode = value;
}
public String getOuName() {
return this.ouName;
}
public void setOuName(String value) {
this.ouName = value;
}
public String getShortName() {
return this.shortName;
}
public void setShortName(String value) {
this.shortName = value;
}
public String getOuLevel() {
return this.ouLevel;
}
public void setOuLevel(String value) {
this.ouLevel = value;
}
public String getDescription() {
return this.description;
}
public void setDescription(String value) {
this.description = value;
}
public String getCreateById() {
return this.createById;
}
public void setCreateById(String value) {
this.createById = value;
}
public String getCreateByName() {
return this.createByName;
}
public void setCreateByName(String value) {
this.createByName = value;
}
public Date getCreateTime() {
return this.createTime;
}
public void setCreateTime(Date value) {
this.createTime = value;
}
public String getModifyById() {
return this.modifyById;
}
public void setModifyById(String value) {
this.modifyById = value;
}
public String getModifyByName() {
return this.modifyByName;
}
public void setModifyByName(String value) {
this.modifyByName = value;
}
public Date getModifyTime() {
return this.modifyTime;
}
public void setModifyTime(Date value) {
this.modifyTime = value;
}
public String getPostCode() {
return this.postCode;
}
public void setPostCode(String value) {
this.postCode = value;
}
public String getPostAddress() {
return this.postAddress;
}
public void setPostAddress(String value) {
this.postAddress = value;
}
public String getFaxNo() {
return this.faxNo;
}
public void setFaxNo(String value) {
this.faxNo = value;
}
public String getPhone() {
return this.phone;
}
public void setPhone(String value) {
this.phone = value;
}
public String getCountry() {
return this.country;
}
public void setCountry(String value) {
this.country = value;
}
public Integer getProvince() {
return this.province;
}
public void setProvince(Integer value) {
this.province = value;
}
@XText("上级组织机构表ID")
@TableField
private String parentOuId;
}
package pps.core.system.service.data.sys_organization;
import lombok.Data;
import xstartup.annotation.XText;
import java.util.Date;
import java.math.BigDecimal;
/**
* 组织机构管理
*
* @author ZWT
* @date 2023/08/30
*/
@Data
public class DynamicQuerySysOrganizationOutput {
@XText("主键")
private String id;
@XText("组织机构编码")
private String ouCode;
@XText("组织机构名称")
private String ouName;
@XText("简称")
private String shortName;
@XText("单位级别(从系统字典中来)")
private String ouLevel;
@XText("描述")
private String description;
@XText("创建人")
private String createById;
@XText("创建人名称")
private String createByName;
@XText("创建时间")
private Date createTime;
@XText("修改人")
private String modifyById;
@XText("修改人名称")
private String modifyByName;
@XText("修改时间")
private Date modifyTime;
@XText("邮编")
private String postCode;
@XText("地址")
private String postAddress;
@XText("传真")
private String faxNo;
@XText("电话")
private String phone;
@XText("国家")
private String country;
@XText("省份")
private Integer province;
public String getId() {
return this.id;
}
public void setId(String value) {
this.id = value;
}
public String getOuCode() {
return this.ouCode;
}
public void setOuCode(String value) {
this.ouCode = value;
}
public String getOuName() {
return this.ouName;
}
public void setOuName(String value) {
this.ouName = value;
}
public String getShortName() {
return this.shortName;
}
public void setShortName(String value) {
this.shortName = value;
}
public String getOuLevel() {
return this.ouLevel;
}
public void setOuLevel(String value) {
this.ouLevel = value;
}
public String getDescription() {
return this.description;
}
public void setDescription(String value) {
this.description = value;
}
public String getCreateById() {
return this.createById;
}
public void setCreateById(String value) {
this.createById = value;
}
public String getCreateByName() {
return this.createByName;
}
public void setCreateByName(String value) {
this.createByName = value;
}
public Date getCreateTime() {
return this.createTime;
}
public void setCreateTime(Date value) {
this.createTime = value;
}
public String getModifyById() {
return this.modifyById;
}
public void setModifyById(String value) {
this.modifyById = value;
}
public String getModifyByName() {
return this.modifyByName;
}
public void setModifyByName(String value) {
this.modifyByName = value;
}
public Date getModifyTime() {
return this.modifyTime;
}
public void setModifyTime(Date value) {
this.modifyTime = value;
}
public String getPostCode() {
return this.postCode;
}
public void setPostCode(String value) {
this.postCode = value;
}
public String getPostAddress() {
return this.postAddress;
}
public void setPostAddress(String value) {
this.postAddress = value;
}
public String getFaxNo() {
return this.faxNo;
}
public void setFaxNo(String value) {
this.faxNo = value;
}
public String getPhone() {
return this.phone;
}
public void setPhone(String value) {
this.phone = value;
}
public String getCountry() {
return this.country;
}
public void setCountry(String value) {
this.country = value;
}
public Integer getProvince() {
return this.province;
}
public void setProvince(Integer value) {
this.province = value;
}
}
......@@ -529,4 +529,27 @@
select temps.* from temps
</select>
<select id="selectOrgListDynamicQuery" parameterType="pps.core.system.entity.SysOrganizationView"
resultMap="BaseResultMap">
SELECT
o.id,
o.ou_name
FROM
sys_organization_rel r,
sys_organization o
WHERE
r.ou_id = o.id
AND o.is_deleted = 1
<if test="parentOuId != null and parentOuId != ''">
AND r.parent_ou_id = #{parentOuId}
</if>
<if test="id != null and id != ''">
AND o.id = #{id}
</if>
<if test="ouName != null and ouName != ''">
AND o.ou_name LIKE CONCAT( '%', #{ouName}, '%' )
</if>
ORDER BY
r.sort
</select>
</mapper>
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