feat:相关方人员门禁申请

koumen
dearLin 2026-03-12 11:21:27 +08:00
parent bc3016fe0a
commit c9a9541e96
21 changed files with 436 additions and 26 deletions

View File

@ -11,7 +11,9 @@ import com.zcloud.primeport.api.PersonApplyServiceI;
import com.zcloud.primeport.dto.PersonApplyAddCmd;
import com.zcloud.primeport.dto.PersonApplyPageQry;
import com.zcloud.primeport.dto.PersonApplyUpdateCmd;
import com.zcloud.primeport.dto.XgfPersonApplyAddCmd;
import com.zcloud.primeport.dto.clientobject.PersonApplyCO;
import com.zcloud.primeport.dto.clientobject.XgfPersonApplyCO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
@ -33,10 +35,17 @@ import java.util.ArrayList;
public class PersonApplyController {
private final PersonApplyServiceI personApplyService;
@ApiOperation("新增")
@ApiOperation("相关方-人员申请新增")
@PostMapping("/xgfPersonSave")
public Response xgfPersonSave(@Validated @RequestBody XgfPersonApplyAddCmd cmd) {
personApplyService.xgfPersonSave(cmd);
return SingleResponse.buildSuccess();
}
@ApiOperation("股份,企业-人员申请新增")
@PostMapping("/save")
public SingleResponse<PersonApplyCO> add(@Validated @RequestBody PersonApplyAddCmd cmd) {
SSOUser ssoUser = AuthContext.getCurrentUser();
return personApplyService.add(cmd);
}

View File

@ -1,14 +1,22 @@
package com.zcloud.primeport.command;
import com.alibaba.cola.dto.SingleResponse;
import com.alibaba.cola.exception.BizException;
import com.zcloud.primeport.domain.gateway.PersonApplyGateway;
import com.zcloud.primeport.domain.gateway.XgfApplyPersonGateway;
import com.zcloud.primeport.domain.model.PersonApplyE;
import com.zcloud.primeport.domain.model.XgfApplyPersonE;
import com.zcloud.primeport.dto.PersonApplyAddCmd;
import com.zcloud.primeport.dto.XgfPersonApplyAddCmd;
import com.zcloud.primeport.dto.clientobject.PersonApplyCO;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
/**
* web-app
@ -20,6 +28,7 @@ import org.springframework.transaction.annotation.Transactional;
@AllArgsConstructor
public class PersonApplyAddExe {
private final PersonApplyGateway personApplyGateway;
private final XgfApplyPersonGateway xgfApplyPersonGateway;
@Transactional(rollbackFor = Exception.class)
public boolean execute(PersonApplyAddCmd cmd) {
@ -36,5 +45,32 @@ public class PersonApplyAddExe {
}
return true;
}
public SingleResponse<PersonApplyCO> xgfPersonSave(XgfPersonApplyAddCmd cmd) {
// 先进行相关方申请的保存
XgfApplyPersonE build = XgfApplyPersonE.builder()
.gateLevelAuthArea(cmd.getGateLevelAuthArea())
.mkmjPermission(2)
.visitStartTime(cmd.getVisitStartTime())
.visitEndTime(cmd.getVisitEndTime())
.projectId(cmd.getProjectId())
.projectName(cmd.getProjectName())
.informSignId(cmd.getInformSignId()).build();
xgfApplyPersonGateway.save(build);
List<XgfPersonApplyAddCmd.PersonApplyAddCmdExt> personApplyList = cmd.getPersonApplyList();
// 相关方人员信息的保存
ArrayList<PersonApplyE> personApplyES = new ArrayList<>();
personApplyList.forEach(personApply -> {
PersonApplyE personApplyE = new PersonApplyE();
BeanUtils.copyProperties(personApply, personApplyE);
personApplyE.setXgfApplyPersonId(build.getId());
personApplyE.setPersonBelongType(3);
personApplyE.setAuditFlag(1);
personApplyE.setMkmjPermission(2);
personApplyES.add(personApplyE);
});
personApplyGateway.saveBatch(personApplyES);
return SingleResponse.buildSuccess();
}
}

View File

@ -10,6 +10,7 @@ import com.zcloud.primeport.command.query.PersonApplyQueryExe;
import com.zcloud.primeport.dto.PersonApplyAddCmd;
import com.zcloud.primeport.dto.PersonApplyPageQry;
import com.zcloud.primeport.dto.PersonApplyUpdateCmd;
import com.zcloud.primeport.dto.XgfPersonApplyAddCmd;
import com.zcloud.primeport.dto.clientobject.PersonApplyCO;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
@ -55,5 +56,10 @@ public class PersonApplyServiceImpl implements PersonApplyServiceI {
public void removeBatch(Long[] ids) {
personApplyRemoveExe.execute(ids);
}
@Override
public void xgfPersonSave(XgfPersonApplyAddCmd cmd) {
personApplyAddExe.xgfPersonSave(cmd);
}
}

View File

@ -5,6 +5,7 @@ import com.alibaba.cola.dto.SingleResponse;
import com.zcloud.primeport.dto.PersonApplyAddCmd;
import com.zcloud.primeport.dto.PersonApplyPageQry;
import com.zcloud.primeport.dto.PersonApplyUpdateCmd;
import com.zcloud.primeport.dto.XgfPersonApplyAddCmd;
import com.zcloud.primeport.dto.clientobject.PersonApplyCO;
/**
@ -23,5 +24,7 @@ public interface PersonApplyServiceI {
void remove(Long id);
void removeBatch(Long[] ids);
void xgfPersonSave(XgfPersonApplyAddCmd cmd);
}

View File

@ -10,6 +10,7 @@ import lombok.NoArgsConstructor;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;
/**
* web-client
@ -23,17 +24,11 @@ import java.util.Date;
@AllArgsConstructor
public class PersonApplyAddCmd extends Command {
@ApiModelProperty(value = "1股份2分公司3相关方4临时人员", name = "personBelongType", required = true)
@NotEmpty(message = "1股份2分公司3相关方4临时人员不能为空")
@NotNull(message = "1股份2分公司3相关方4临时人员不能为空")
private Integer personBelongType;
@ApiModelProperty(value = "授权范围港区与区域", name = "gateLevelAuthArea", required = true)
@NotEmpty(message = "授权范围港区与区域不能为空")
private String gateLevelAuthArea;
@ApiModelProperty(value = "审核状态(1:审核中;2审核通过; 3审核驳回4无需审批长期人员)", name = "auditFlag", required = true)
@NotNull(message = "审核状态(1:审核中;2审核通过; 3审核驳回4无需审批长期人员)不能为空")
private Integer auditFlag;
@ApiModelProperty(value = "进出港权限(1:有 2无)", name = "mkmjPermission", required = true)
@NotNull(message = "进出港权限(1:有 2无)不能为空")
private Integer mkmjPermission;
@ApiModelProperty(value = "访问起始时间", name = "visitStartTime", required = true)
@NotEmpty(message = "访问起始时间不能为空")
private String visitStartTime;
@ -68,14 +63,7 @@ public class PersonApplyAddCmd extends Command {
@NotEmpty(message = "身份证号码不能为空")
private String userCard;
@ApiModelProperty(value = "告知签字", name = "informSignId", required = true)
@NotNull(message = "告知签字不能为空")
private Long informSignId;
@ApiModelProperty(value = "项目id", name = "projectId", required = true)
@NotNull(message = "项目id不能为空")
private Long projectId;
@ApiModelProperty(value = "项目名称", name = "projectName", required = true)
@NotEmpty(message = "项目名称不能为空")
private String projectName;
}

View File

@ -0,0 +1,98 @@
package com.zcloud.primeport.dto;
import com.alibaba.cola.dto.Command;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* web-client
*
* @Author makejava
* @Date 2026-03-05 11:33:21
*/
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
public class XgfPersonApplyAddCmd extends Command {
@ApiModelProperty(value = "1股份2分公司3相关方4临时人员", name = "personBelongType", required = true)
@NotNull(message = "1股份2分公司3相关方4临时人员不能为空")
private Integer personBelongType;
@ApiModelProperty(value = "授权范围港区与区域", name = "gateLevelAuthArea", required = true)
@NotEmpty(message = "授权范围港区与区域不能为空")
private String gateLevelAuthArea;
@ApiModelProperty(value = "访问起始时间", name = "visitStartTime", required = true)
@NotEmpty(message = "访问起始时间不能为空")
private String visitStartTime;
@ApiModelProperty(value = "访问结束时间", name = "visitEndTime", required = true)
@NotEmpty(message = "访问结束时间不能为空")
private String visitEndTime;
@ApiModelProperty(value = "告知签字", name = "informSignId", required = true)
// @NotNull(message = "告知签字不能为空")
private Long informSignId;
@ApiModelProperty(value = "项目id", name = "projectId", required = true)
// @NotNull(message = "项目id不能为空")
private Long projectId;
@ApiModelProperty(value = "项目名称", name = "projectName", required = true)
// @NotEmpty(message = "项目名称不能为空")
private String projectName;
@ApiModelProperty(value = "审核企业", name = "auditCorpId", required = true)
private Long auditCorpId;
@ApiModelProperty(value = "审核企业名称", name = "auditCorpName", required = true)
private String auditCorpName;
@ApiModelProperty(value = "审核部门", name = "auditDeptId", required = true)
private Long auditDeptId;
@ApiModelProperty(value = "审核部门名称", name = "auditDeptName", required = true)
private String auditDeptName;
@ApiModelProperty(value = "审核用户", name = "auditUserId", required = true)
private Long auditUserId;
@ApiModelProperty(value = "审核用户名称", name = "auditUserName", required = true)
private String auditUserName;
@ApiModelProperty(value = "待审批人员列表", name = "personApplyList", required = true)
private List<PersonApplyAddCmdExt> personApplyList;
@Data
@NoArgsConstructor
@AllArgsConstructor
public static class PersonApplyAddCmdExt {
@ApiModelProperty(value = "待审批人员所属企业ID", name = "personCorpId", required = true)
@NotNull(message = "待审批人员所属企业ID不能为空")
private Long personCorpId;
@ApiModelProperty(value = "待审批人员所属企业名称", name = "personCorpName", required = true)
@NotEmpty(message = "待审批人员所属企业名称不能为空")
private String personCorpName;
@ApiModelProperty(value = "待审批人员所属部门id", name = "personDepartmentId", required = true)
@NotNull(message = "待审批人员所属部门id不能为空")
private Long personDepartmentId;
@ApiModelProperty(value = "待审批人员部门名称", name = "personDepartmentName", required = true)
@NotEmpty(message = "待审批人员部门名称不能为空")
private String personDepartmentName;
@ApiModelProperty(value = "待审批人员id", name = "employeePersonUserId", required = true)
@NotNull(message = "待审批人员id不能为空")
private Long employeePersonUserId;
@ApiModelProperty(value = "待审批人员姓名", name = "employeePersonUserName", required = true)
@NotEmpty(message = "待审批人员姓名不能为空")
private String employeePersonUserName;
@ApiModelProperty(value = "头像", name = "userFaceUrl", required = true)
@NotEmpty(message = "头像不能为空")
private String userFaceUrl;
@ApiModelProperty(value = "手机号", name = "userPhone", required = true)
@NotEmpty(message = "手机号不能为空")
private String userPhone;
@ApiModelProperty(value = "身份证号码", name = "userCard", required = true)
@NotEmpty(message = "身份证号码不能为空")
private String userCard;
}
}

View File

@ -95,15 +95,19 @@ public class VehicleAuditCO extends ClientObject {
@ApiModelProperty(value = "车辆所属类型 1-股份员工车辆2-股份单位车辆3-分公司员工车辆4-分公司单位车辆 5-相关方车辆, 6:临时车辆7检查部门车辆")
private String vehicleBelongType;
//授权范围港区与区域
@ApiModelProperty(value = "授权范围港区与区域")
@ApiModelProperty(value = "授权范围港区与区域",name = "gateLevelAuthArea")
private String gateLevelAuthArea;
@ApiModelProperty(value = "项目名称")
@ApiModelProperty(value = "项目名称",name = "projectName")
private String projectName;
@ApiModelProperty(value = "项目id")
@ApiModelProperty(value = "项目id",name = "projectId")
private Long projectId;
@ApiModelProperty(value = "currentUserCanAudit", name = "当前用户是否能审核")
@ApiModelProperty(value = "当前用户是否能审核", name = "currentUserCanAudit")
private Integer currentUserCanAudit;
@ApiModelProperty(value = "待审核信息",name = "changeAfter")
private String changeAfter;
//变更前信息
@ApiModelProperty(value = "变更前信息",name = "changeBefore")
private String changeBefore;
}

View File

@ -0,0 +1,44 @@
package com.zcloud.primeport.dto.clientobject;
import com.alibaba.cola.dto.ClientObject;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* web-client
*
* @Author makejava
* @Date 2026-03-05 11:33:21
*/
@Data
public class XgfPersonApplyCO extends ClientObject {
//id
@ApiModelProperty(value = "id")
private Long id;
//1股份2分公司3相关方4临时人员
@ApiModelProperty(value = "授权范围港区与区域",name = "gateLevelAuthArea")
private String gateLevelAuthArea;
//审核状态(1:审核中;2审核通过; 3审核驳回4无需审批长期人员)
@ApiModelProperty(value = "审核状态(1:审核中;2审核通过; 3审核驳回4无需审批长期人员)",name = "auditFlag")
private Integer auditFlag;
//进出港权限(1:有 2无)
@ApiModelProperty(value = "进出港权限(1:有 2无)",name = "mkmjPermission")
private Integer mkmjPermission;
//访问起始时间
@ApiModelProperty(value = "访问起始时间",name = "visitStartTime")
private String visitStartTime;
//访问结束时间
@ApiModelProperty(value = "访问结束时间",name = "visitEndTime")
private String visitEndTime;
//告知签字
@ApiModelProperty(value = "告知签字",name = "informSignId")
private Long informSignId;
//项目id
@ApiModelProperty(value = "项目id",name = "projectId")
private Long projectId;
//项目名称
@ApiModelProperty(value = "项目名称",name = "projectName")
private String projectName;
}

View File

@ -2,6 +2,8 @@ package com.zcloud.primeport.domain.gateway;
import com.zcloud.primeport.domain.model.PersonApplyE;
import java.util.ArrayList;
/**
* web-domain
*
@ -26,5 +28,7 @@ public interface PersonApplyGateway {
Boolean deletedPersonApplyById(Long id);
Boolean deletedPersonApplyByIds(Long[] id);
void saveBatch(ArrayList<PersonApplyE> personApplyES);
}

View File

@ -0,0 +1,16 @@
package com.zcloud.primeport.domain.gateway;
import com.zcloud.primeport.domain.model.PersonApplyE;
import com.zcloud.primeport.domain.model.XgfApplyPersonE;
/**
* web-domain
*
* @Author makejava
* @Date 2026-03-05 11:33:22
*/
public interface XgfApplyPersonGateway {
void save(XgfApplyPersonE build);
}

View File

@ -19,6 +19,7 @@ import java.util.Date;
@AllArgsConstructor
@Builder
public class PersonApplyE extends BaseE {
private Long xgfApplyPersonId;
//1股份2分公司3相关方4临时人员
private Integer personBelongType;
//授权范围港区与区域

View File

@ -0,0 +1,37 @@
package com.zcloud.primeport.domain.model;
import com.jjb.saas.framework.domain.model.BaseE;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* web-domain
*
* @Author makejava
* @Date 2026-03-05 11:33:22
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class XgfApplyPersonE extends BaseE {
//授权范围港区与区域
private String gateLevelAuthArea;
//审核状态(1:审核中;2审核通过; 3审核驳回4无需审批长期人员)
private Integer auditFlag;
//进出港权限(1:有 2无)
private Integer mkmjPermission;
//访问起始时间
private String visitStartTime;
//访问结束时间
private String visitEndTime;
//告知签字
private Long informSignId;
//项目id
private Long projectId;
//项目名称
private String projectName;
}

View File

@ -8,6 +8,7 @@ import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Collections;
/**
@ -46,5 +47,12 @@ public class PersonApplyGatewayImpl implements PersonApplyGateway {
public Boolean deletedPersonApplyByIds(Long[] ids) {
return personApplyRepository.removeByIds(Collections.singletonList(ids));
}
@Override
public void saveBatch(ArrayList<PersonApplyE> personApplyES) {
ArrayList<PersonApplyDO> d = new ArrayList<>();
BeanUtils.copyProperties(personApplyES, d);
personApplyRepository.saveBatch(d);
}
}

View File

@ -0,0 +1,31 @@
package com.zcloud.primeport.gatewayimpl;
import com.zcloud.primeport.domain.gateway.PersonApplyGateway;
import com.zcloud.primeport.domain.gateway.XgfApplyPersonGateway;
import com.zcloud.primeport.domain.model.PersonApplyE;
import com.zcloud.primeport.domain.model.XgfApplyPersonE;
import com.zcloud.primeport.persistence.dataobject.PersonApplyDO;
import com.zcloud.primeport.persistence.repository.PersonApplyRepository;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.Collections;
/**
* web-infrastructure
*
* @Author makejava
* @Date 2026-03-05 11:33:22
*/
@Service
@AllArgsConstructor
public class XgfApplyPersonGatewayImpl implements XgfApplyPersonGateway {
private final PersonApplyRepository personApplyRepository;
@Override
public void save(XgfApplyPersonE build) {
personApplyRepository.save();
}
}

View File

@ -20,7 +20,7 @@ import java.util.Date;
@TableName("person_apply")
@EqualsAndHashCode(callSuper = true)
public class PersonApplyDO extends BaseDO {
private Long xgfApplyPersonId;
//1股份2分公司3相关方4临时人员
@ApiModelProperty(value = "1股份2分公司3相关方4临时人员")
private Integer personBelongType;

View File

@ -0,0 +1,44 @@
package com.zcloud.primeport.persistence.dataobject;
import com.baomidou.mybatisplus.annotation.TableName;
import com.jjb.saas.framework.repository.basedo.BaseDO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* web-infrastructure
*
* @Author makejava
* @Date 2026-03-05 11:33:22
*/
@Data
@TableName("xgf_apply_person")
@EqualsAndHashCode(callSuper = true)
public class XgfApplyPersonDO extends BaseDO {
//授权范围港区与区域
@ApiModelProperty(value = "授权范围港区与区域")
private String gateLevelAuthArea;
//审核状态(1:审核中;2审核通过; 3审核驳回4无需审批长期人员)
@ApiModelProperty(value = "审核状态(1:审核中;2审核通过; 3审核驳回4无需审批长期人员)")
private Integer auditFlag;
//进出港权限(1:有 2无)
@ApiModelProperty(value = "进出港权限(1:有 2无)")
private Integer mkmjPermission;
//访问起始时间
@ApiModelProperty(value = "访问起始时间")
private String visitStartTime;
//访问结束时间
@ApiModelProperty(value = "访问结束时间")
private String visitEndTime;
//告知签字
@ApiModelProperty(value = "告知签字")
private Long informSignId;
//项目id
@ApiModelProperty(value = "项目id")
private Long projectId;
//项目名称
@ApiModelProperty(value = "项目名称")
private String projectName;
}

View File

@ -0,0 +1,22 @@
package com.zcloud.primeport.persistence.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zcloud.primeport.persistence.dataobject.VehicleApplyDO;
import com.zcloud.primeport.persistence.dataobject.XgfApplyPersonDO;
import org.apache.ibatis.annotations.Mapper;
import java.util.Map;
/**
* web-infrastructure
*
* @Author makejava
* @Date 2026-03-05 11:33:23
*/
@Mapper
public interface XgfApplyPersonMapper extends BaseMapper<XgfApplyPersonDO> {
}

View File

@ -0,0 +1,18 @@
package com.zcloud.primeport.persistence.repository;
import com.alibaba.cola.dto.PageResponse;
import com.jjb.saas.framework.repository.repo.BaseRepository;
import com.zcloud.primeport.persistence.dataobject.PersonApplyDO;
import com.zcloud.primeport.persistence.dataobject.XgfApplyPersonDO;
import java.util.Map;
/**
* web-infrastructure
*
* @Author makejava
* @Date 2026-03-05 11:33:22
*/
public interface XgfApplyPersonRepository extends BaseRepository<XgfApplyPersonDO> {
}

View File

@ -0,0 +1,33 @@
package com.zcloud.primeport.persistence.repository.impl;
import com.alibaba.cola.dto.PageResponse;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jjb.saas.framework.repository.common.PageHelper;
import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
import com.zcloud.gbscommon.utils.PageQueryHelper;
import com.zcloud.gbscommon.utils.Query;
import com.zcloud.primeport.persistence.dataobject.PersonApplyDO;
import com.zcloud.primeport.persistence.dataobject.XgfApplyPersonDO;
import com.zcloud.primeport.persistence.mapper.PersonApplyMapper;
import com.zcloud.primeport.persistence.mapper.XgfApplyPersonMapper;
import com.zcloud.primeport.persistence.repository.PersonApplyRepository;
import com.zcloud.primeport.persistence.repository.XgfApplyPersonRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.Map;
/**
* web-infrastructure
*
* @Author makejava
* @Date 2026-03-05 11:33:22
*/
@Service
@RequiredArgsConstructor
public class XgfApplyPersonRepositoryImpl extends BaseRepositoryImpl<XgfApplyPersonMapper, XgfApplyPersonDO> implements XgfApplyPersonRepository {
private final XgfApplyPersonMapper xgfApplyPersonMapper;
}

View File

@ -71,17 +71,17 @@
<if test="parmas.vehicleBelongType != null and parmas.vehicleBelongType != ''">
AND va.vehicle_belong_type = #{parmas.vehicleBelongType}
</if>
<if test="vehicleBelongTypeArr != null and vehicleBelongTypeArr.size() > 0">
<if test="parmas.vehicleBelongTypeArrList != null and parmas.vehicleBelongTypeArrList.size() > 0">
AND va.vehicle_belong_type in
<foreach collection="vehicleBelongTypeArr" item="item" open="(" separator="," close=")">
<foreach collection="parmas.vehicleBelongTypeArrList" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="gateLevelAuthAreaIdList != null and gateLevelAuthAreaIdList.size() > 0">
<if test="parmas.gateLevelAuthAreaIdList != null and parmas.gateLevelAuthAreaIdList.size() > 0">
and JSON_OVERLAPS(
JSON_EXTRACT(va.gate_level_auth_area, '$.area[*].bianma'),
CONCAT('[',
<foreach collection="gateLevelAuthAreaIdList" item="item" separator=",">
<foreach collection="parmas.gateLevelAuthAreaIdList" item="item" separator=",">
#{item}
</foreach>
, ']')

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zcloud.primeport.persistence.mapper.XgfApplyPersonMapper">
</mapper>