Merge remote-tracking branch 'origin/main'

This commit is contained in:
wangyilin 2024-12-19 14:16:18 +08:00
commit b498335108
16 changed files with 114 additions and 6 deletions

View File

@ -2,12 +2,12 @@
<div class="root"> <div class="root">
<div class="header"> <div class="header">
<img src="@/assets/vue.svg" alt="Logo" height="33" width="33" /> <img src="@/assets/vue.svg" alt="Logo" height="33" width="33" />
<div class="logo-text">超级后台</div> <div class="logo-text">公安后台</div>
</div> </div>
<div class="container"> <div class="container">
<div class="left-banner"></div> <div class="left-banner"></div>
<div class="login-card"> <div class="login-card">
<div class="title">欢迎来到超级后台</div> <div class="title">欢迎来到公安后台</div>
<a-tabs class="account-tab" v-model:active-key="activeKey"> <a-tabs class="account-tab" v-model:active-key="activeKey">
<a-tab-pane :key="0" tab="账号登录"> <a-tab-pane :key="0" tab="账号登录">
<TelephoneLogin :account="account" :password="password" /> <TelephoneLogin :account="account" :password="password" />

View File

@ -96,6 +96,7 @@ const columns: TableProps['columns'] = [
}, },
{ {
dataIndex: 'remark', dataIndex: 'remark',
title: '备注',
width: 120, width: 120,
ellipsis: true, ellipsis: true,
}, },

View File

@ -0,0 +1,25 @@
package com.changhu.common.db.enums;
import com.baomidou.mybatisplus.annotation.IEnum;
import com.changhu.common.db.BaseEnum;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* @author 20252
* @createTime 2024/12/19 上午9:31
* @desc EducationLevel...
*/
@Getter
@AllArgsConstructor
public enum EducationLevel implements BaseEnum<String>, IEnum<String> {
PRIMARY_SCHOOL("primary_school", "小学"),
JUNIOR_SCHOOL("junior_school", "初中"),
HIGH_SCHOOL("high_school", "高中"),
COLLEGE("college", "大专"),
UNDERGRADUATE("undergraduate", "本科"),
UNDERGRADUATE_MORE("undergraduate_more", "本科以上"),
;
private final String value;
private final String label;
}

View File

@ -68,4 +68,11 @@ public class OpenController {
return openApiService.securityUserRoster(id, type); return openApiService.securityUserRoster(id, type);
} }
@Operation(summary = "单位下的安保人员花名册")
@GetMapping("/unitSecurityUserRoster")
public List<SecurityUserRosterDTO> unitSecurityUserRoster(@Schema(description = "代码") @RequestParam String code,
@Schema(description = "等级") @RequestParam Integer level) {
return openApiService.unitSecurityUserRoster(code, level);
}
} }

View File

@ -51,4 +51,9 @@ public interface OpenApiMapper {
*/ */
List<SecurityUserRosterDTO> securityUserRoster(@Param("id") Long id, List<SecurityUserRosterDTO> securityUserRoster(@Param("id") Long id,
@Param("type") EnterprisesUnitOrServiceProjectType type); @Param("type") EnterprisesUnitOrServiceProjectType type);
/**
* 单位下的服务人员花名册
*/
List<SecurityUserRosterDTO> unitSecurityUserRoster(String code, Integer level);
} }

View File

@ -1,5 +1,6 @@
package com.changhu.module.miniProgram.pojo.params; package com.changhu.module.miniProgram.pojo.params;
import com.changhu.common.db.enums.EducationLevel;
import com.changhu.common.db.enums.Sex; import com.changhu.common.db.enums.Sex;
import com.changhu.common.validator.annotation.IdCard; import com.changhu.common.validator.annotation.IdCard;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
@ -66,4 +67,8 @@ public class SecurityUserSaveOrUpdateParams {
@Schema(description = "备注") @Schema(description = "备注")
private String remark; private String remark;
@NotNull(message = "文化程度为必选")
@Schema(description = "文化程度")
private EducationLevel educationLevel;
} }

View File

@ -2,6 +2,7 @@ package com.changhu.module.miniProgram.pojo.vo;
import cn.hutool.core.util.DesensitizedUtil; import cn.hutool.core.util.DesensitizedUtil;
import com.changhu.common.annotation.Desensitized; import com.changhu.common.annotation.Desensitized;
import com.changhu.common.db.enums.EducationLevel;
import com.changhu.common.db.enums.Sex; import com.changhu.common.db.enums.Sex;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
@ -63,6 +64,9 @@ public class ServiceProjectSecurityUserPagerVo {
@Schema(description = "备注") @Schema(description = "备注")
private String remark; private String remark;
@Schema(description = "文化程度")
private EducationLevel educationLevel;
@Schema(description = "创建时间") @Schema(description = "创建时间")
private LocalDateTime createTime; private LocalDateTime createTime;
} }

View File

@ -1,8 +1,11 @@
package com.changhu.pojo.dto; package com.changhu.pojo.dto;
import cn.hutool.core.util.DesensitizedUtil; import cn.hutool.core.util.DesensitizedUtil;
import com.alibaba.fastjson2.annotation.JSONField;
import com.changhu.common.annotation.Desensitized; import com.changhu.common.annotation.Desensitized;
import com.changhu.common.db.enums.EducationLevel;
import com.changhu.common.db.enums.Sex; import com.changhu.common.db.enums.Sex;
import com.changhu.support.fastjson2.serializer.MinioPrefixSerializer;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
@ -15,6 +18,9 @@ import lombok.Data;
public class SecurityUserRosterDTO { public class SecurityUserRosterDTO {
@Schema(description = "id") @Schema(description = "id")
private Long snowFlakeId; private Long snowFlakeId;
@Schema(description = "照片")
@JSONField(serializeUsing = MinioPrefixSerializer.class)
private String photo;
@Schema(description = "名称") @Schema(description = "名称")
private String name; private String name;
@Schema(description = "性别") @Schema(description = "性别")
@ -33,4 +39,6 @@ public class SecurityUserRosterDTO {
private String securityUnitName; private String securityUnitName;
@Schema(description = "保安证号") @Schema(description = "保安证号")
private String securityNumber; private String securityNumber;
@Schema(description = "文化程度")
private EducationLevel educationLevel;
} }

View File

@ -1,6 +1,7 @@
package com.changhu.pojo.entity; package com.changhu.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.changhu.common.db.enums.EducationLevel;
import com.changhu.common.db.enums.Sex; import com.changhu.common.db.enums.Sex;
import com.changhu.support.mybatisplus.pojo.entity.BaseEntity; import com.changhu.support.mybatisplus.pojo.entity.BaseEntity;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@ -99,5 +100,9 @@ public class SecurityUser extends BaseEntity implements Serializable {
*/ */
private String remark; private String remark;
/**
* 文化程度
*/
private EducationLevel educationLevel;
} }

View File

@ -56,4 +56,9 @@ public interface OpenApiService {
* @return 花名册 * @return 花名册
*/ */
List<SecurityUserRosterDTO> securityUserRoster(Long id, EnterprisesUnitOrServiceProjectType type); List<SecurityUserRosterDTO> securityUserRoster(Long id, EnterprisesUnitOrServiceProjectType type);
/**
* 单位下的安保人员花名册
*/
List<SecurityUserRosterDTO> unitSecurityUserRoster(String code, Integer level);
} }

View File

@ -123,4 +123,10 @@ public class OpenApiServiceImpl implements OpenApiService {
public List<SecurityUserRosterDTO> securityUserRoster(Long id, EnterprisesUnitOrServiceProjectType type) { public List<SecurityUserRosterDTO> securityUserRoster(Long id, EnterprisesUnitOrServiceProjectType type) {
return openApiMapper.securityUserRoster(id, type); return openApiMapper.securityUserRoster(id, type);
} }
@Override
public List<SecurityUserRosterDTO> unitSecurityUserRoster(String code, Integer level) {
return openApiMapper.unitSecurityUserRoster(code, level);
}
} }

View File

@ -166,6 +166,7 @@
select su.snow_flake_id, select su.snow_flake_id,
su.name, su.name,
su.sex, su.sex,
su.photo,
TIMESTAMPDIFF(YEAR, su.date_of_birth, CURDATE()) AS 'age', TIMESTAMPDIFF(YEAR, su.date_of_birth, CURDATE()) AS 'age',
su.id_card, su.id_card,
su.telephone, su.telephone,
@ -190,4 +191,40 @@
</choose> </choose>
order by su.create_time desc order by su.create_time desc
</select> </select>
<select id="unitSecurityUserRoster" resultType="com.changhu.pojo.dto.SecurityUserRosterDTO">
select su.snow_flake_id,
su.name,
su.sex,
su.photo,
TIMESTAMPDIFF(YEAR, su.date_of_birth, CURDATE()) AS 'age',
su.id_card,
su.telephone,
eu.name as 'enterprisesUnitName',
suu.name as 'securityUnitName',
su.security_number
from enterprises_unit eu
LEFT JOIN service_project sp ON sp.enterprises_unit_id = eu.snow_flake_id AND sp.delete_flag = 0
JOIN security_user su ON su.service_project_id = sp.snow_flake_id AND su.delete_flag = 0
LEFT JOIN security_unit suu ON su.security_unit_id = suu.snow_flake_id AND suu.delete_flag = 0
where eu.delete_flag = 0
<choose>
<when test="level==1">
and eu.province = #{code}
</when>
<when test="level==2">
and eu.city = #{code}
</when>
<when test="level==3">
and eu.districts = #{code}
</when>
<when test="level==4">
and eu.street = #{code}
</when>
<when test="level==5">
and pu.code = #{code}
</when>
<otherwise>and eu.snow_flake_id = -1</otherwise>
</choose>
order by su.create_time desc
</select>
</mapper> </mapper>

View File

@ -1,4 +1,4 @@
VITE_APP_NAME=保安管理 VITE_APP_NAME=超级管理
VITE_APP_ENV=development VITE_APP_ENV=development
VITE_APP_PORT=1000 VITE_APP_PORT=1000
VITE_DROP_CONSOLE=false VITE_DROP_CONSOLE=false

View File

@ -1,4 +1,4 @@
VITE_APP_NAME=保安管理 VITE_APP_NAME=超级管理
VITE_APP_ENV=production VITE_APP_ENV=production
VITE_APP_PORT=1001 VITE_APP_PORT=1001
VITE_DROP_CONSOLE=true VITE_DROP_CONSOLE=true

View File

@ -6,7 +6,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"/> <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<script type="module" src="/src/assets/iconfont/iconfont.js"></script> <script type="module" src="/src/assets/iconfont/iconfont.js"></script>
<title>保安管理</title> <title>超级管理</title>
</head> </head>
<body> <body>
<div id="app"></div> <div id="app"></div>

View File

@ -1,6 +1,6 @@
{ {
"name": "super_management", "name": "super_management",
"appName": "保安管理", "appName": "超级管理后台",
"private": true, "private": true,
"version": "1.0.0", "version": "1.0.0",
"type": "module", "type": "module",