diff --git a/policeSecurityServer/src/main/java/com/changhu/module/management/controller/EnterprisesUnitController.java b/policeSecurityServer/src/main/java/com/changhu/module/management/controller/EnterprisesUnitController.java index 21227ce..6b6131d 100644 --- a/policeSecurityServer/src/main/java/com/changhu/module/management/controller/EnterprisesUnitController.java +++ b/policeSecurityServer/src/main/java/com/changhu/module/management/controller/EnterprisesUnitController.java @@ -1,9 +1,25 @@ package com.changhu.module.management.controller; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.changhu.common.annotation.JsonBody; +import com.changhu.common.pojo.vo.TreeNodeVo; +import com.changhu.common.utils.JavaClassToTsUtil; +import com.changhu.mapper.AdministrativeDivisionMapper; +import com.changhu.module.management.pojo.params.EnterprisesUnitSaveOrUpdateParams; +import com.changhu.module.management.pojo.queryParams.EnterprisesUnitPagerQueryParams; +import com.changhu.module.management.pojo.vo.EnterprisesUnitPagerVo; +import com.changhu.module.management.service.EnterprisesUnitService; +import com.changhu.support.mybatisplus.pojo.params.PageParams; +import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; +import java.util.List; + /** * @author 20252 * @createTime 2024/9/3 上午10:17 @@ -13,4 +29,24 @@ import org.springframework.web.bind.annotation.RequestMapping; @JsonBody @RequestMapping("/enterprisesUnit") public class EnterprisesUnitController { + + @Autowired + private EnterprisesUnitService enterprisesUnitService; + + @Operation(summary = "分页查询") + @PostMapping("/pager") + public Page pager(@RequestBody @Valid PageParams queryParams) { + return enterprisesUnitService.pager(queryParams); + } + + @Operation(summary = "新增或保存") + @PostMapping("/saveOrUpdate") + public void saveOrUpdate(@RequestBody @Valid EnterprisesUnitSaveOrUpdateParams params) { + enterprisesUnitService.saveOrUpdate(params); + } + + public static void main(String[] args) { + System.out.println(JavaClassToTsUtil.parse(EnterprisesUnitSaveOrUpdateParams.class)); + } + } diff --git a/policeSecurityServer/src/main/java/com/changhu/module/management/controller/ManagementSecurityUnitUserController.java b/policeSecurityServer/src/main/java/com/changhu/module/management/controller/ManagementSecurityUnitUserController.java index e0a071a..8c427e8 100644 --- a/policeSecurityServer/src/main/java/com/changhu/module/management/controller/ManagementSecurityUnitUserController.java +++ b/policeSecurityServer/src/main/java/com/changhu/module/management/controller/ManagementSecurityUnitUserController.java @@ -1,8 +1,14 @@ package com.changhu.module.management.controller; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.changhu.common.annotation.JsonBody; import com.changhu.module.management.pojo.params.ManagementSecurityUnitUserSaveOrUpdateParams; +import com.changhu.module.management.pojo.queryParams.ManagementSecurityUnitUserPagerQueryParams; +import com.changhu.module.management.pojo.vo.ManagementSecurityUnitUserPagerVo; import com.changhu.module.management.service.ManagementSecurityUnitUserService; +import com.changhu.support.mybatisplus.pojo.params.PageParams; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; @@ -14,6 +20,7 @@ import org.springframework.web.bind.annotation.RequestMapping; * @createTime 2024/9/3 上午10:22 * @desc ManagementSecurityUnitUserController... */ +@Tag(name = "后台-保安用户") @JsonBody @RequestMapping("/managementSecurityUnitUser") public class ManagementSecurityUnitUserController { @@ -21,8 +28,15 @@ public class ManagementSecurityUnitUserController { @Autowired private ManagementSecurityUnitUserService managementSecurityUnitUserService; + @Operation(summary = "新增或修改") @PostMapping("/saveOrUpdate") public void saveOrUpdate(@RequestBody @Valid ManagementSecurityUnitUserSaveOrUpdateParams saveOrUpdateParams) { managementSecurityUnitUserService.saveOrUpdate(saveOrUpdateParams); } + + @Operation(summary = "分页查询") + @PostMapping("/pager") + public Page pager(@RequestBody PageParams queryParams) { + return managementSecurityUnitUserService.pager(queryParams); + } } diff --git a/policeSecurityServer/src/main/java/com/changhu/module/management/mapper/EnterprisesUnitMapper.java b/policeSecurityServer/src/main/java/com/changhu/module/management/mapper/EnterprisesUnitMapper.java index d2c52c2..191d5a4 100644 --- a/policeSecurityServer/src/main/java/com/changhu/module/management/mapper/EnterprisesUnitMapper.java +++ b/policeSecurityServer/src/main/java/com/changhu/module/management/mapper/EnterprisesUnitMapper.java @@ -1,8 +1,12 @@ package com.changhu.module.management.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.changhu.module.management.pojo.entity.EnterprisesUnit; +import com.changhu.module.management.pojo.queryParams.EnterprisesUnitPagerQueryParams; +import com.changhu.module.management.pojo.vo.EnterprisesUnitPagerVo; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; /** * enterprises_unit (企事业单位) 固化类 @@ -12,4 +16,13 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface EnterprisesUnitMapper extends BaseMapper { + /** + * 分页查询 + * + * @param page 分页参数 + * @param params 查询参数 + * @return 结果 + */ + Page pager(@Param("page") Page page, + @Param("params") EnterprisesUnitPagerQueryParams params); } diff --git a/policeSecurityServer/src/main/java/com/changhu/module/management/mapper/ManagementSecurityUnitUserMapper.java b/policeSecurityServer/src/main/java/com/changhu/module/management/mapper/ManagementSecurityUnitUserMapper.java index 5b4f93e..c700da8 100644 --- a/policeSecurityServer/src/main/java/com/changhu/module/management/mapper/ManagementSecurityUnitUserMapper.java +++ b/policeSecurityServer/src/main/java/com/changhu/module/management/mapper/ManagementSecurityUnitUserMapper.java @@ -1,8 +1,14 @@ package com.changhu.module.management.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.changhu.module.management.pojo.entity.ManagementSecurityUnitUser; +import com.changhu.module.management.pojo.queryParams.ManagementSecurityUnitUserPagerQueryParams; +import com.changhu.module.management.pojo.vo.ManagementSecurityUnitUserPagerVo; +import com.changhu.support.mybatisplus.annotation.DataScope; +import com.changhu.support.mybatisplus.handler.permission.management.ManagementSecurityUnitUserPagerPermissionHandler; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; /** * management_security_unit_user (后台-保安单位用户表) 固化类 @@ -12,4 +18,14 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface ManagementSecurityUnitUserMapper extends BaseMapper { + /** + * 分页查询 + * + * @param page 分页参数 + * @param params 查询参数 + * @return 结果 + */ + @DataScope(permissionHandler = ManagementSecurityUnitUserPagerPermissionHandler.class) + Page pager(@Param("page") Page page, + @Param("params") ManagementSecurityUnitUserPagerQueryParams params); } diff --git a/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/params/EnterprisesUnitSaveOrUpdateParams.java b/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/params/EnterprisesUnitSaveOrUpdateParams.java new file mode 100644 index 0000000..94a6ed6 --- /dev/null +++ b/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/params/EnterprisesUnitSaveOrUpdateParams.java @@ -0,0 +1,43 @@ +package com.changhu.module.management.pojo.params; + +import com.changhu.module.management.pojo.model.ContactPersonInfo; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +import java.util.List; + +/** + * @author 20252 + * @createTime 2024/9/3 下午4:06 + * @desc EnterprisesUnitSaveOrUpdateParams... + */ +@Data +public class EnterprisesUnitSaveOrUpdateParams { + + @Schema(description = "id") + private Long snowFlakeId; + + @Schema(description = "公安单位id") + @NotNull(message = "公安单位不能为空") + private Long policeUnitId; + + @Schema(description = "名称") + @NotBlank(message = "名称不能为空") + private String name; + + @Schema(description = "行政区划编码") + @NotEmpty(message = "行政区划不能为空") + private List administrativeDivisionCodes; + + @Schema(description = "详细地址") + private String address; + + @Schema(description = "联系人") + private ContactPersonInfo contactPersonInfo; + + @Schema(description = "备注") + private String remark; +} diff --git a/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/queryParams/EnterprisesUnitPagerQueryParams.java b/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/queryParams/EnterprisesUnitPagerQueryParams.java new file mode 100644 index 0000000..90a28aa --- /dev/null +++ b/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/queryParams/EnterprisesUnitPagerQueryParams.java @@ -0,0 +1,18 @@ +package com.changhu.module.management.pojo.queryParams; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +/** + * @author 20252 + * @createTime 2024/9/3 下午3:27 + * @desc EnterprisesUnitPagerQueryParams... + */ +@Data +public class EnterprisesUnitPagerQueryParams { + + @NotNull(message = "公安单位id不能为空") + @Schema(description = "公安单位id") + private Long policeUnitId; +} diff --git a/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/queryParams/ManagementSecurityUnitUserPagerQueryParams.java b/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/queryParams/ManagementSecurityUnitUserPagerQueryParams.java new file mode 100644 index 0000000..4d7b2cd --- /dev/null +++ b/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/queryParams/ManagementSecurityUnitUserPagerQueryParams.java @@ -0,0 +1,20 @@ +package com.changhu.module.management.pojo.queryParams; + +import com.changhu.common.db.enums.Sex; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * @author 20252 + * @createTime 2024/9/3 上午11:02 + * @desc ManagementSecurityUnitUserPagerQueryParams... + */ +@Data +public class ManagementSecurityUnitUserPagerQueryParams { + @Schema(description = "名字") + private String name; + @Schema(description = "手机号") + private String telephone; + @Schema(description = "性别") + private Sex sex; +} diff --git a/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/vo/EnterprisesUnitPagerVo.java b/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/vo/EnterprisesUnitPagerVo.java new file mode 100644 index 0000000..29a3406 --- /dev/null +++ b/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/vo/EnterprisesUnitPagerVo.java @@ -0,0 +1,54 @@ +package com.changhu.module.management.pojo.vo; + +import com.changhu.module.management.pojo.model.ContactPersonInfo; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * @author 20252 + * @createTime 2024/9/3 下午3:22 + * @desc EnterprisesUnitPagerVo... + */ +@Data +public class EnterprisesUnitPagerVo { + @Schema(description = "id") + private Long snowFlakeId; + @Schema(description = "名字") + private String name; + + @Schema(description = "公安单位id") + private Long policeUnitId; + + @Schema(description = "省编码") + private String province; + @Schema(description = "省名称") + private String provinceName; + + @Schema(description = "市编码") + private String city; + @Schema(description = "市名称") + private String cityName; + + @Schema(description = "区编码") + private String districts; + @Schema(description = "区名称") + private String districtsName; + + @Schema(description = "街编码") + private String street; + @Schema(description = "街名称") + private String streetName; + + @Schema(description = "地址") + private String address; + + @Schema(description = "联系方式") + private ContactPersonInfo contactPersonInfo; + + @Schema(description = "备注") + private String remark; + + @Schema(description = "创建时间") + private String createTime; + +} diff --git a/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/vo/ManagementSecurityUnitUserPagerVo.java b/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/vo/ManagementSecurityUnitUserPagerVo.java new file mode 100644 index 0000000..ec21300 --- /dev/null +++ b/policeSecurityServer/src/main/java/com/changhu/module/management/pojo/vo/ManagementSecurityUnitUserPagerVo.java @@ -0,0 +1,49 @@ +package com.changhu.module.management.pojo.vo; + +import com.changhu.common.db.enums.IsEnable; +import com.changhu.common.db.enums.IsOrNot; +import com.changhu.common.db.enums.Sex; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * @author 20252 + * @createTime 2024/9/3 上午10:59 + * @desc ManagementSecurityUnitUserPagerVo... + */ +@Data +public class ManagementSecurityUnitUserPagerVo { + + @Schema(description = "id") + private Long snowFlakeId; + + @Schema(description = "名称") + private String name; + + @Schema(description = "性别") + private Sex sex; + + @Schema(description = "性别") + private String account; + + @Schema(description = "手机号") + private String telephone; + + + @Schema(description = "是否启用") + private IsEnable isEnable; + + @Schema(description = "是否是超管") + private IsOrNot isAdmin; + + @Schema(description = "备注") + private String remark; + + @Schema(description = "创建人") + private String createUserName; + + @Schema(description = "创建时间") + private LocalDateTime createTime; +} diff --git a/policeSecurityServer/src/main/java/com/changhu/module/management/service/EnterprisesUnitService.java b/policeSecurityServer/src/main/java/com/changhu/module/management/service/EnterprisesUnitService.java index d95b852..8e90ab7 100644 --- a/policeSecurityServer/src/main/java/com/changhu/module/management/service/EnterprisesUnitService.java +++ b/policeSecurityServer/src/main/java/com/changhu/module/management/service/EnterprisesUnitService.java @@ -1,13 +1,32 @@ package com.changhu.module.management.service; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.changhu.module.management.pojo.entity.EnterprisesUnit; +import com.changhu.module.management.pojo.params.EnterprisesUnitSaveOrUpdateParams; +import com.changhu.module.management.pojo.queryParams.EnterprisesUnitPagerQueryParams; +import com.changhu.module.management.pojo.vo.EnterprisesUnitPagerVo; +import com.changhu.support.mybatisplus.pojo.params.PageParams; /** * enterprises_unit (企事业单位) 服务类 * author: luozhun * desc 由groovy脚本自动生成 */ -public interface EnterprisesUnitService extends IService{ +public interface EnterprisesUnitService extends IService { + /** + * 分页查询 + * + * @param queryParams 查询参数 + * @return 结果 + */ + Page pager(PageParams queryParams); + + /** + * 新增或保存 + * + * @param params 参数 + */ + void saveOrUpdate(EnterprisesUnitSaveOrUpdateParams params); } diff --git a/policeSecurityServer/src/main/java/com/changhu/module/management/service/ManagementSecurityUnitUserService.java b/policeSecurityServer/src/main/java/com/changhu/module/management/service/ManagementSecurityUnitUserService.java index cd0d63d..000b0d5 100644 --- a/policeSecurityServer/src/main/java/com/changhu/module/management/service/ManagementSecurityUnitUserService.java +++ b/policeSecurityServer/src/main/java/com/changhu/module/management/service/ManagementSecurityUnitUserService.java @@ -1,8 +1,12 @@ package com.changhu.module.management.service; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.changhu.module.management.pojo.entity.ManagementSecurityUnitUser; import com.changhu.module.management.pojo.params.ManagementSecurityUnitUserSaveOrUpdateParams; +import com.changhu.module.management.pojo.queryParams.ManagementSecurityUnitUserPagerQueryParams; +import com.changhu.module.management.pojo.vo.ManagementSecurityUnitUserPagerVo; +import com.changhu.support.mybatisplus.pojo.params.PageParams; /** * management_security_unit_user (后台-保安单位用户表) 服务类 @@ -17,4 +21,12 @@ public interface ManagementSecurityUnitUserService extends IService pager(PageParams queryParams); } diff --git a/policeSecurityServer/src/main/java/com/changhu/module/management/service/impl/EnterprisesUnitServiceImpl.java b/policeSecurityServer/src/main/java/com/changhu/module/management/service/impl/EnterprisesUnitServiceImpl.java index 462314e..81d1000 100644 --- a/policeSecurityServer/src/main/java/com/changhu/module/management/service/impl/EnterprisesUnitServiceImpl.java +++ b/policeSecurityServer/src/main/java/com/changhu/module/management/service/impl/EnterprisesUnitServiceImpl.java @@ -1,11 +1,20 @@ package com.changhu.module.management.service.impl; +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.changhu.common.exception.MessageException; import com.changhu.module.management.mapper.EnterprisesUnitMapper; import com.changhu.module.management.pojo.entity.EnterprisesUnit; +import com.changhu.module.management.pojo.params.EnterprisesUnitSaveOrUpdateParams; +import com.changhu.module.management.pojo.queryParams.EnterprisesUnitPagerQueryParams; +import com.changhu.module.management.pojo.vo.EnterprisesUnitPagerVo; import com.changhu.module.management.service.EnterprisesUnitService; +import com.changhu.support.mybatisplus.pojo.params.PageParams; import org.springframework.stereotype.Service; +import java.util.Optional; + /** * enterprises_unit (企事业单位) 服务实现类 * author: luozhun @@ -14,4 +23,32 @@ import org.springframework.stereotype.Service; @Service public class EnterprisesUnitServiceImpl extends ServiceImpl implements EnterprisesUnitService { + @Override + public Page pager(PageParams queryParams) { + return baseMapper.pager(queryParams.getPage(), queryParams.getParams()); + } + + @Override + public void saveOrUpdate(EnterprisesUnitSaveOrUpdateParams params) { + EnterprisesUnit enterprisesUnit = BeanUtil.copyProperties(params, EnterprisesUnit.class); + Optional.ofNullable(params.getAdministrativeDivisionCodes()) + .ifPresent(codes -> { + if (!codes.isEmpty()) { + enterprisesUnit.setProvince(codes.get(0)); + } + if (codes.size() >= 2) { + enterprisesUnit.setCity(codes.get(1)); + } + if (codes.size() >= 3) { + enterprisesUnit.setDistricts(codes.get(2)); + } + if (codes.size() >= 4) { + enterprisesUnit.setStreet(codes.get(3)); + } + }); + boolean b = this.saveOrUpdate(enterprisesUnit); + if (!b) { + throw new MessageException(); + } + } } diff --git a/policeSecurityServer/src/main/java/com/changhu/module/management/service/impl/ManagementSecurityUnitUserServiceImpl.java b/policeSecurityServer/src/main/java/com/changhu/module/management/service/impl/ManagementSecurityUnitUserServiceImpl.java index 351660f..9d4d7be 100644 --- a/policeSecurityServer/src/main/java/com/changhu/module/management/service/impl/ManagementSecurityUnitUserServiceImpl.java +++ b/policeSecurityServer/src/main/java/com/changhu/module/management/service/impl/ManagementSecurityUnitUserServiceImpl.java @@ -3,13 +3,17 @@ package com.changhu.module.management.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.changhu.common.exception.MessageException; import com.changhu.common.utils.UserUtil; import com.changhu.module.management.mapper.ManagementSecurityUnitUserMapper; import com.changhu.module.management.pojo.entity.ManagementSecurityUnitUser; import com.changhu.module.management.pojo.params.ManagementSecurityUnitUserSaveOrUpdateParams; +import com.changhu.module.management.pojo.queryParams.ManagementSecurityUnitUserPagerQueryParams; +import com.changhu.module.management.pojo.vo.ManagementSecurityUnitUserPagerVo; import com.changhu.module.management.service.ManagementSecurityUnitUserService; +import com.changhu.support.mybatisplus.pojo.params.PageParams; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -53,4 +57,9 @@ public class ManagementSecurityUnitUserServiceImpl extends ServiceImpl pager(PageParams queryParams) { + return baseMapper.pager(queryParams.getPage(), queryParams.getParams()); + } } diff --git a/policeSecurityServer/src/main/java/com/changhu/module/management/service/impl/SecurityUnitServiceImpl.java b/policeSecurityServer/src/main/java/com/changhu/module/management/service/impl/SecurityUnitServiceImpl.java index c6563a5..2da4d9b 100644 --- a/policeSecurityServer/src/main/java/com/changhu/module/management/service/impl/SecurityUnitServiceImpl.java +++ b/policeSecurityServer/src/main/java/com/changhu/module/management/service/impl/SecurityUnitServiceImpl.java @@ -40,10 +40,10 @@ public class SecurityUnitServiceImpl extends ServiceImpl= 3) { - securityUnit.setCity(codes.get(2)); + securityUnit.setDistricts(codes.get(2)); } if (codes.size() >= 4) { - securityUnit.setCity(codes.get(3)); + securityUnit.setStreet(codes.get(3)); } }); this.saveOrUpdate(securityUnit); diff --git a/policeSecurityServer/src/main/java/com/changhu/support/mybatisplus/handler/permission/management/ManagementSecurityUnitUserPagerPermissionHandler.java b/policeSecurityServer/src/main/java/com/changhu/support/mybatisplus/handler/permission/management/ManagementSecurityUnitUserPagerPermissionHandler.java new file mode 100644 index 0000000..e28d3a8 --- /dev/null +++ b/policeSecurityServer/src/main/java/com/changhu/support/mybatisplus/handler/permission/management/ManagementSecurityUnitUserPagerPermissionHandler.java @@ -0,0 +1,40 @@ +package com.changhu.support.mybatisplus.handler.permission.management; + +import com.baomidou.mybatisplus.extension.toolkit.Db; +import com.changhu.common.enums.ResultCode; +import com.changhu.common.exception.MessageException; +import com.changhu.common.utils.UserUtil; +import com.changhu.module.management.pojo.entity.ManagementSecurityUnitUser; +import com.changhu.support.mybatisplus.handler.permission.AbstractDataPermissionHandler; +import com.changhu.support.mybatisplus.pojo.entity.BaseEntity; +import net.sf.jsqlparser.expression.Expression; +import net.sf.jsqlparser.expression.LongValue; +import net.sf.jsqlparser.expression.operators.relational.EqualsTo; +import net.sf.jsqlparser.schema.Column; +import net.sf.jsqlparser.schema.Table; + +/** + * @author 20252 + * @createTime 2024/9/3 上午11:11 + * @desc 后台安保人员分页权限 + */ +public class ManagementSecurityUnitUserPagerPermissionHandler implements AbstractDataPermissionHandler { + @Override + public Expression apply(Table table, Expression where, String mappedStatementId) { + if ("msuu".equals(table.getAlias().getName())) { + return sqlFragment(); + } + return null; + } + + @Override + public Expression sqlFragment() { + //查出当前用户 + ManagementSecurityUnitUser managementSecurityUnitUser = Db.lambdaQuery(ManagementSecurityUnitUser.class) + .select(BaseEntity::getSnowFlakeId, ManagementSecurityUnitUser::getSecurityUnitId) + .eq(BaseEntity::getSnowFlakeId, UserUtil.getUserId()) + .oneOpt() + .orElseThrow(() -> new MessageException(ResultCode.USER_NOT_FOUND)); + return new EqualsTo(new Column("msuu.security_unit_id"), new LongValue(managementSecurityUnitUser.getSecurityUnitId())); + } +} diff --git a/policeSecurityServer/src/main/resources/mapper/EnterprisesUnitMapper.xml b/policeSecurityServer/src/main/resources/mapper/EnterprisesUnitMapper.xml new file mode 100644 index 0000000..8474262 --- /dev/null +++ b/policeSecurityServer/src/main/resources/mapper/EnterprisesUnitMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + \ No newline at end of file diff --git a/policeSecurityServer/src/main/resources/mapper/ManagementSecurityUnitUserMapper.xml b/policeSecurityServer/src/main/resources/mapper/ManagementSecurityUnitUserMapper.xml new file mode 100644 index 0000000..7693317 --- /dev/null +++ b/policeSecurityServer/src/main/resources/mapper/ManagementSecurityUnitUserMapper.xml @@ -0,0 +1,23 @@ + + + + + diff --git a/superManagement/src/components/tsx/ModalPro.tsx b/superManagement/src/components/tsx/ModalPro.tsx new file mode 100644 index 0000000..64466b0 --- /dev/null +++ b/superManagement/src/components/tsx/ModalPro.tsx @@ -0,0 +1,54 @@ +import {h, Ref, ref, VNode} from "vue"; +import {Modal} from "ant-design-vue"; +import {FormExpose} from "ant-design-vue/es/form/Form"; +import {ExclamationCircleOutlined} from "@ant-design/icons-vue"; +import FormProMax from "@/components/form/FormProMax.vue"; +import {FormProMaxItemOptions, FormProMaxProps} from "@/types/components/form"; + +export function submitSimpleFormModal(props: { + title: string, + formParams?: T & Record, + formProps?: Omit, 'formItemOptions'>, + formOptions: FormProMaxItemOptions + submit: (params: T) => Promise, + cancel?: (params: T) => Promise, + icon?: () => VNode, + maskClosable?: boolean, + width?: string | number +}) { + if (!props.formParams) props.formParams = {} as T + if (!props.width) props.width = 520 + + const formRef = ref(null) + const _formParams = ref({ + ...props.formParams + }) as Ref + + Modal.confirm({ + icon: props.icon ? props.icon() : ' ', + width: props.width, + maskClosable: props.maskClosable ?? true, + title: props.title, + content: () => , + onOk: async () => { + await formRef.value?.validate() + await props.submit(_formParams.value); + }, + onCancel: async () => props.cancel && await props.cancel(_formParams.value) + }) +} + +export const deleteDataModal = (name: string, submit: () => Promise, cancel?: () => Promise) => { + Modal.confirm({ + title: `确认删除【${name}】吗?`, + icon: h(ExclamationCircleOutlined), + content: h('div', {style: 'color:red;'}, '此操作将删除数据,且无法找回!'), + onOk: async () => await submit(), + onCancel: async () => cancel && await cancel() + }); +} diff --git a/superManagement/src/config/index.ts b/superManagement/src/config/index.ts index 50e7862..afd0533 100644 --- a/superManagement/src/config/index.ts +++ b/superManagement/src/config/index.ts @@ -32,12 +32,6 @@ export const SYSTEM_MENUS: SystemMenu[] = [ path: '/securityUnit', type: 'menu', component: () => import('@/views/unitManage/securityUnit/index.vue') - }, { - title: '企事业单位', - name: 'enterprisesUnit', - path: '/enterprisesUnit', - type: 'menu', - component: () => import('@/views/unitManage/enterprisesUnit/index.vue') } ] } diff --git a/superManagement/src/hooks/useSelectAndTreeNodeVos.ts b/superManagement/src/hooks/useSelectAndTreeNodeVos.ts new file mode 100644 index 0000000..aab41a1 --- /dev/null +++ b/superManagement/src/hooks/useSelectAndTreeNodeVos.ts @@ -0,0 +1,36 @@ +import {onMounted, reactive, toRefs} from "vue"; +import api from "@/axios"; + + +interface SelectAndTreeNodeType { + administrativeDivisionTree: TreeNodeVo[]; +} + +export const callbackResult: { [key in keyof SelectAndTreeNodeType]: (params?: Record) => Promise } = { + administrativeDivisionTree: async (params = {level: 4}) => (await api.get[]>('/common/administrativeDivisionTree', params)).data, +} + +export default (type?: keyof SelectAndTreeNodeType | (keyof SelectAndTreeNodeType)[], params?: { [key in keyof SelectAndTreeNodeType]?: Record }) => { + const allData = reactive({ + administrativeDivisionTree: [], + }) + + const refreshData = (type: keyof SelectAndTreeNodeType | (keyof SelectAndTreeNodeType)[]) => { + if (typeof type === "string") { + //@ts-ignore + callbackResult[type](params?.[type]).then(data => allData[type] = data) + } else { + //@ts-ignore + type.forEach(t => callbackResult[t](params?.[t]).then(data => allData[t] = data)) + } + } + + onMounted(() => type && refreshData(type)) + + return { + refreshData, + ...toRefs(allData), + callbackResult + } + +} diff --git a/superManagement/src/types/views/unitManage/policeUnit.ts b/superManagement/src/types/views/unitManage/policeUnit.ts index e992fe8..ce0e7ec 100644 --- a/superManagement/src/types/views/unitManage/policeUnit.ts +++ b/superManagement/src/types/views/unitManage/policeUnit.ts @@ -46,3 +46,60 @@ export interface PoliceUnitPagerVo extends BaseTableRowRecord { /** 审核状态 **/ checkStatus?: BaseEnum; } + +export interface EnterprisesUnitPagerQueryParams { + /** 公安单位id **/ + policeUnitId: string; +} + +export interface EnterprisesUnitPagerVo extends BaseTableRowRecord { + /** 名字 **/ + name?: string; + /** 公安单位id **/ + policeUnitId: string; + /** 省编码 **/ + province?: string; + /** 省名称 **/ + provinceName?: string; + /** 市编码 **/ + city?: string; + /** 市名称 **/ + cityName?: string; + /** 区编码 **/ + districts?: string; + /** 区名称 **/ + districtsName?: string; + /** 街编码 **/ + street?: string; + /** 街名称 **/ + streetName?: string; + /** 地址 **/ + address?: string; + /** 联系方式 **/ + contactPersonInfo?: { + name: string; + telephone: string; + }; + /** 备注 **/ + remark?: string; +} + +export interface EnterprisesUnitSaveOrUpdateParams { + /** id **/ + snowFlakeId?: string; + /** 公安单位id **/ + policeUnitId: string; + /** 名称 **/ + name: string; + /** 行政区划编码 **/ + administrativeDivisionCodes: string[]; + /** 详细地址 **/ + address?: string; + /** 联系人 **/ + contactPersonInfo?: { + name: string; + telephone: string; + }; + /** 备注 **/ + remark?: string; +} diff --git a/superManagement/src/views/unitManage/enterprisesUnit/index.vue b/superManagement/src/views/unitManage/enterprisesUnit/index.vue deleted file mode 100644 index 9ff5f85..0000000 --- a/superManagement/src/views/unitManage/enterprisesUnit/index.vue +++ /dev/null @@ -1,13 +0,0 @@ - - - - - diff --git a/superManagement/src/views/unitManage/policeUnit/index.vue b/superManagement/src/views/unitManage/policeUnit/index.vue index 4603349..d2cf4af 100644 --- a/superManagement/src/views/unitManage/policeUnit/index.vue +++ b/superManagement/src/views/unitManage/policeUnit/index.vue @@ -13,15 +13,24 @@ import TableProMax from "@/components/table/TableProMax.vue"; import {ref} from "vue"; import {ComponentExposed} from "vue-component-type-helpers"; -import {TableProMaxProps} from "@/types/components/table"; -import {PoliceUnitPagerQueryParams, PoliceUnitPagerVo} from "@/types/views/unitManage/policeUnit.ts"; +import {TableProMaxProps, TableProMaxSlots} from "@/types/components/table"; +import { + EnterprisesUnitPagerQueryParams, EnterprisesUnitPagerVo, EnterprisesUnitSaveOrUpdateParams, + PoliceUnitPagerQueryParams, + PoliceUnitPagerVo +} from "@/types/views/unitManage/policeUnit.ts"; import api from "@/axios"; import {dictSelectNodes} from "@/config/dict.ts"; -import {message} from "ant-design-vue"; +import {message, Modal} from "ant-design-vue"; import {UNIT_TYPE} from "@/config"; +import {PageParams} from "@/types/hooks/useTableProMax.ts"; +import {submitSimpleFormModal} from "@/components/tsx/ModalPro.tsx"; +import useSelectAndTreeNodeVos from "@/hooks/useSelectAndTreeNodeVos.ts"; type TableProps = TableProMaxProps +const {administrativeDivisionTree} = useSelectAndTreeNodeVos('administrativeDivisionTree') + const tableRef = ref>(null!) const reqApi: TableProps['requestApi'] = (params) => api.post('/policeUnit/pager', params) const columns: TableProps['columns'] = [ @@ -56,21 +65,29 @@ const columns: TableProps['columns'] = [ dataIndex: 'opt', title: '操作', customRender({record}) { + if (record.checkStatus.value === 1) { + return + { + const resp = await api.post('/management/checkPass', { + checkDataId: record.snowFlakeId, + unitOptType: UNIT_TYPE.police + }) + message.success(resp.message) + await tableRef.value?.requestGetTableData() + }}> + 审核通过 + + + + } return - {record.checkStatus.value === 1 && { - const resp = await api.post('/management/checkPass', { - checkDataId: record.snowFlakeId, - unitOptType: UNIT_TYPE.police - }) - message.success(resp.message) - await tableRef.value?.requestGetTableData() - }}> - 审核通过 - - - } + showEnterprisesUnit(record)} + >企事业单位 + { @@ -114,6 +131,135 @@ const searchFormOptions: TableProps["searchFormOptions"] = { } } +type _TableProps = TableProMaxProps; +const showEnterprisesUnit = (policeUnitPagerVo: PoliceUnitPagerVo) => { + const saveOrUpdateEnterprisesUnit = (data?: EnterprisesUnitSaveOrUpdateParams & { + contactPersonInfoName?: string; + contactPersonInfoTelephone?: string + }) => { + submitSimpleFormModal({ + title: data.snowFlakeId ? `【${data.name}】 信息编辑` : '新增企事业单位', + formOptions: { + name: { + type: 'input', + label: '单位名称', + required: true + }, + administrativeDivisionCodes: { + type: 'cascader', + label: '行政区划', + required: true, + options: administrativeDivisionTree.value, + componentsProps: { + showSearch: true + } + }, + address: { + type: 'inputTextArea', + label: '详细地址' + }, + contactPersonInfoName: { + type: 'input', + label: '联系人名称' + }, + contactPersonInfoTelephone: { + type: 'input', + label: '联系人电话' + }, + remark: { + type: 'inputTextArea', + label: '备注' + } + }, + formParams: data, + submit: async (params) => { + params.contactPersonInfo = { + name: params.contactPersonInfoName, + telephone: params.contactPersonInfoTelephone + } + const resp = await api.post('/enterprisesUnit/saveOrUpdate', params) + message.success(resp.message) + await _tableRef.value?.requestGetTableData() + } + }) + } + const _tableRef = ref>(null) + const _columns: _TableProps['columns'] = [ + { + dataIndex: 'name', + title: '名称' + }, { + dataIndex: 'contactPersonInfo', + title: '联系人', + customRender: ({text}) => text?.name + "/" + text.telephone + }, { + dataIndex: 'province', + title: '行政区划', + customRender: ({record}) => [record.provinceName, record.cityName, record.districtsName, record.streetName].filter(Boolean).join("/") + }, { + dataIndex: 'address', + title: '详细地址' + }, { + dataIndex: 'remark', + title: '备注' + }, { + dataIndex: 'createTime', + title: '创建时间' + }, { + dataIndex: 'opt', + title: '操作', + customRender: ({record}) => + saveOrUpdateEnterprisesUnit({ + snowFlakeId: record.snowFlakeId, + policeUnitId: record.policeUnitId, + name: record.name, + administrativeDivisionCodes: [record.province, record.city, record.districts, record.street].filter(Boolean), + address: record.address, + contactPersonInfoName: record.contactPersonInfo?.name, + contactPersonInfoTelephone: record.contactPersonInfo?.telephone, + remark: record.remark + })} + >编辑 + + + } + ] + const _reqApi: _TableProps["requestApi"] = (params) => { + (params as PageParams).params.policeUnitId = policeUnitPagerVo.snowFlakeId + return api.post('/enterprisesUnit/pager', params) + } + Modal.info({ + title: `【${policeUnitPagerVo.name}】 管辖企事业单位`, + width: '80%', + content: () => { + return + saveOrUpdateEnterprisesUnit({ + name: undefined, + policeUnitId: policeUnitPagerVo.snowFlakeId, + administrativeDivisionCodes: [policeUnitPagerVo.province, policeUnitPagerVo.city, policeUnitPagerVo.districts, policeUnitPagerVo.street].filter(Boolean) + })} + >新增 + + 导入 + + } + } as TableProMaxSlots} + /> + }) +} +