feat:相关方、临时人员门禁申请 审批

koumen
dearLin 2026-03-13 11:18:26 +08:00
parent 4cc55b5e55
commit 45c25c8c01
18 changed files with 218 additions and 17 deletions

View File

@ -5,6 +5,7 @@ import com.alibaba.cola.dto.MultiResponse;
import com.alibaba.cola.dto.PageResponse; import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.Response; import com.alibaba.cola.dto.Response;
import com.alibaba.cola.dto.SingleResponse; import com.alibaba.cola.dto.SingleResponse;
import com.alibaba.cola.exception.BizException;
import com.jjb.saas.framework.auth.model.SSOUser; import com.jjb.saas.framework.auth.model.SSOUser;
import com.jjb.saas.framework.auth.utils.AuthContext; import com.jjb.saas.framework.auth.utils.AuthContext;
import com.zcloud.primeport.api.PersonApplyServiceI; import com.zcloud.primeport.api.PersonApplyServiceI;
@ -39,23 +40,26 @@ public class PersonApplyController {
} }
@ApiOperation("待审批的相关方申请列表-同已审批记录") @ApiOperation("待审批的相关方申请列表-同已审批记录")
@PostMapping("/xgfPersonAuditList") @PostMapping("/xgfPersonAuditList")
public PageResponse<XgfPersonApplyCO> xgfPersonAuditList(@Validated @RequestBody XgfApplyPersonPageQry qry) { public PageResponse<XgfPersonApplyCO> xgfPersonAuditList(@RequestBody XgfApplyPersonPageQry qry) {
return personApplyService.xgfPersonAuditList(qry); return personApplyService.xgfPersonAuditList(qry);
} }
@ApiOperation("相关方人员入场申请列表") @ApiOperation("相关方人员入场申请列表")
@PostMapping("/xgfPersonApplyList") @PostMapping("/xgfPersonApplyList")
public PageResponse<XgfPersonApplyCO> xgfPersonApplyList(@Validated @RequestBody XgfApplyPersonPageQry qry) { public PageResponse<XgfPersonApplyCO> xgfPersonApplyList(@RequestBody XgfApplyPersonPageQry qry) {
return personApplyService.xgfPersonApplyList(qry); return personApplyService.xgfPersonApplyList(qry);
} }
@ApiOperation("临时访客人员入场申请列表-H5") @ApiOperation("临时访客人员入场申请列表-H5")
@PostMapping("/tmpPersonApplyH5List") @PostMapping("/tmpPersonApplyH5List")
public PageResponse<XgfPersonApplyCO> tmpPersonApplyH5List(@Validated @RequestBody XgfApplyPersonPageQry qry) { public PageResponse<PersonApplyCO> tmpPersonApplyH5List(@RequestBody XgfApplyPersonPageQry qry) {
return personApplyService.xgfPersonApplyList(qry); return personApplyService.tmpPersonApplyH5List(qry);
} }
@ApiOperation("相关方、临时-人员申请审批") @ApiOperation("相关方、临时-人员申请审批")
@PostMapping("/xgfPersonAudit") @PostMapping("/xgfPersonAudit")
public Response xgfPersonAudit(@Validated @RequestBody XgfPersonApplyAddCmd cmd) { public Response xgfPersonAudit(@Validated @RequestBody XgfPersonApplyAuditCmd cmd) {
personApplyService.xgfPersonSave(cmd); if (!(cmd.getAuditFlag().equals(2) || cmd.getAuditFlag().equals(3))) {
throw new BizException("审批状态必须是通过或不通过");
}
personApplyService.xgfPersonAudit(cmd);
return SingleResponse.buildSuccess(); return SingleResponse.buildSuccess();
} }

View File

@ -3,7 +3,9 @@ package com.zcloud.primeport.command;
import com.alibaba.cola.exception.BizException; import com.alibaba.cola.exception.BizException;
import com.zcloud.primeport.domain.gateway.PersonApplyGateway; import com.zcloud.primeport.domain.gateway.PersonApplyGateway;
import com.zcloud.primeport.domain.model.PersonApplyE; import com.zcloud.primeport.domain.model.PersonApplyE;
import com.zcloud.primeport.domain.model.XgfApplyPersonE;
import com.zcloud.primeport.dto.PersonApplyUpdateCmd; import com.zcloud.primeport.dto.PersonApplyUpdateCmd;
import com.zcloud.primeport.dto.XgfPersonApplyAuditCmd;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -30,5 +32,13 @@ public class PersonApplyUpdateExe {
throw new BizException("修改失败"); throw new BizException("修改失败");
} }
} }
public void xgfPersonAudit(XgfPersonApplyAuditCmd cmd) {
XgfApplyPersonE build = XgfApplyPersonE.builder()
.auditFlag(cmd.getAuditFlag())
.reasonsRefusal(cmd.getReasonsRefusal()).build();
build.setId(cmd.getId());
personApplyGateway.xgfPersonAudit(build);
}
} }

View File

@ -69,5 +69,14 @@ public class PersonApplyQueryExe {
List<XgfPersonApplyCO> examCenterCOS = xgfApplyPersonCoConvertor.converDOsToCOs(pageResponse.getData()); List<XgfPersonApplyCO> examCenterCOS = xgfApplyPersonCoConvertor.converDOsToCOs(pageResponse.getData());
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
} }
public PageResponse<PersonApplyCO> tmpPersonApplyH5List(XgfApplyPersonPageQry qry) {
Map<String, Object> parmas = PageQueryHelper.toHashMap(qry);
parmas.put("person_belong_type", 4);
PageResponse<PersonApplyDO> pageResponse = personApplyRepository.listPage(parmas);
List<PersonApplyCO> examCenterCOS = personApplyCoConvertor.converDOsToCOs(pageResponse.getData());
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
}
} }

View File

@ -69,5 +69,15 @@ public class PersonApplyServiceImpl implements PersonApplyServiceI {
public PageResponse<XgfPersonApplyCO> xgfPersonApplyList(XgfApplyPersonPageQry qry) { public PageResponse<XgfPersonApplyCO> xgfPersonApplyList(XgfApplyPersonPageQry qry) {
return personApplyQueryExe.xgfPersonApplyList(qry); return personApplyQueryExe.xgfPersonApplyList(qry);
} }
@Override
public PageResponse<PersonApplyCO> tmpPersonApplyH5List(XgfApplyPersonPageQry qry) {
return personApplyQueryExe.tmpPersonApplyH5List(qry);
}
@Override
public void xgfPersonAudit(XgfPersonApplyAuditCmd cmd) {
personApplyUpdateExe.xgfPersonAudit(cmd);
}
} }

View File

@ -28,5 +28,9 @@ public interface PersonApplyServiceI {
PageResponse<XgfPersonApplyCO> xgfPersonAuditList(XgfApplyPersonPageQry qry); PageResponse<XgfPersonApplyCO> xgfPersonAuditList(XgfApplyPersonPageQry qry);
PageResponse<XgfPersonApplyCO> xgfPersonApplyList(XgfApplyPersonPageQry qry); PageResponse<XgfPersonApplyCO> xgfPersonApplyList(XgfApplyPersonPageQry qry);
PageResponse<PersonApplyCO> tmpPersonApplyH5List(XgfApplyPersonPageQry qry);
void xgfPersonAudit(XgfPersonApplyAuditCmd cmd);
} }

View File

@ -22,5 +22,9 @@ public class XgfApplyPersonPageQry extends PageQuery {
private String applyCorpName; private String applyCorpName;
@ApiModelProperty(name = "auditFlag", value = "审核状态(1:审核中;2审核通过; 3审核驳回)") @ApiModelProperty(name = "auditFlag", value = "审核状态(1:审核中;2审核通过; 3审核驳回)")
private Integer auditFlag; private Integer auditFlag;
@ApiModelProperty(name = "userCard", value = "临时访客h5二维码用根据身份证号查询申请记录")
private String userCard;
} }

View File

@ -0,0 +1,34 @@
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 XgfPersonApplyAuditCmd extends Command {
@ApiModelProperty(value = "主键", name = "id")
@NotNull(message = "主键不能为空")
private Long id;
@ApiModelProperty(value = "审核标志2审核通过; 3审核驳回", name = "auditFlag")
@NotNull(message = "审核标志不能为空")
private Integer auditFlag;
@ApiModelProperty(value = "驳回理由", name = "reasonsRefusal")
private String reasonsRefusal;
}

View File

@ -18,6 +18,8 @@ public class PersonApplyCO extends ClientObject {
//id //id
@ApiModelProperty(value = "id") @ApiModelProperty(value = "id")
private Long id; private Long id;
@ApiModelProperty(value = "相关方申请id",name = "xgfApplyPersonId")
private Long xgfApplyPersonId;
//1股份2分公司3相关方4临时人员 //1股份2分公司3相关方4临时人员
@ApiModelProperty(value = "1股份2分公司3相关方4临时人员") @ApiModelProperty(value = "1股份2分公司3相关方4临时人员")
private Integer personBelongType; private Integer personBelongType;
@ -63,8 +65,10 @@ public class PersonApplyCO extends ClientObject {
//项目名称 //项目名称
@ApiModelProperty(value = "项目名称") @ApiModelProperty(value = "项目名称")
private String projectName; private String projectName;
//来访事由 驳回原因
@ApiModelProperty(value = "来访事由") @ApiModelProperty(value = "访问口门id",name = "mkmjId")
private String remarks; private Long mkmjId;
@ApiModelProperty(value = "访问口门名称",name = "mkmjId")
private String mkmjName;
} }

View File

@ -100,7 +100,5 @@ public class VehicleApplyCO extends ClientObject {
private Long auditUserId; private Long auditUserId;
@ApiModelProperty(value = "currentUserId", name = "当前用户") @ApiModelProperty(value = "currentUserId", name = "当前用户")
private Long currentUserId; private Long currentUserId;
} }

View File

@ -40,6 +40,10 @@ public class XgfPersonApplyCO extends ClientObject {
//项目id //项目id
@ApiModelProperty(value = "项目id",name = "projectId") @ApiModelProperty(value = "项目id",name = "projectId")
private Long projectId; private Long projectId;
@ApiModelProperty(value = "访问口门id",name = "mkmjId")
private Long mkmjId;
@ApiModelProperty(value = "访问口门名称",name = "mkmjId")
private String mkmjName;
//项目名称 //项目名称
@ApiModelProperty(value = "项目名称",name = "projectName") @ApiModelProperty(value = "项目名称",name = "projectName")
private String projectName; private String projectName;

View File

@ -1,6 +1,7 @@
package com.zcloud.primeport.domain.gateway; package com.zcloud.primeport.domain.gateway;
import com.zcloud.primeport.domain.model.PersonApplyE; import com.zcloud.primeport.domain.model.PersonApplyE;
import com.zcloud.primeport.domain.model.XgfApplyPersonE;
import java.util.ArrayList; import java.util.ArrayList;
@ -30,5 +31,7 @@ public interface PersonApplyGateway {
Boolean deletedPersonApplyByIds(Long[] id); Boolean deletedPersonApplyByIds(Long[] id);
void saveBatch(ArrayList<PersonApplyE> personApplyES); void saveBatch(ArrayList<PersonApplyE> personApplyES);
void xgfPersonAudit(XgfApplyPersonE build);
} }

View File

@ -43,5 +43,7 @@ public class XgfApplyPersonE extends BaseE {
private String auditDeptName; private String auditDeptName;
private Long auditUserId; private Long auditUserId;
private String auditUserName; private String auditUserName;
private String reasonsRefusal;
private String reasonVisit;
} }

View File

@ -1,15 +1,22 @@
package com.zcloud.primeport.gatewayimpl; package com.zcloud.primeport.gatewayimpl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zcloud.primeport.domain.gateway.PersonApplyGateway; import com.zcloud.primeport.domain.gateway.PersonApplyGateway;
import com.zcloud.primeport.domain.model.PersonApplyE; 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.dataobject.PersonApplyDO;
import com.zcloud.primeport.persistence.dataobject.PersonMessageDO;
import com.zcloud.primeport.persistence.dataobject.XgfApplyPersonDO;
import com.zcloud.primeport.persistence.repository.PersonApplyRepository; import com.zcloud.primeport.persistence.repository.PersonApplyRepository;
import com.zcloud.primeport.persistence.repository.PersonMessageRepository;
import com.zcloud.primeport.persistence.repository.XgfApplyPersonRepository;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.List;
/** /**
* web-infrastructure * web-infrastructure
@ -21,6 +28,8 @@ import java.util.Collections;
@AllArgsConstructor @AllArgsConstructor
public class PersonApplyGatewayImpl implements PersonApplyGateway { public class PersonApplyGatewayImpl implements PersonApplyGateway {
private final PersonApplyRepository personApplyRepository; private final PersonApplyRepository personApplyRepository;
private final XgfApplyPersonRepository xgfApplyPersonRepository;
private final PersonMessageRepository personMessageRepository;
@Override @Override
public Boolean add(PersonApplyE personApplyE) { public Boolean add(PersonApplyE personApplyE) {
@ -58,5 +67,33 @@ public class PersonApplyGatewayImpl implements PersonApplyGateway {
}); });
personApplyRepository.saveBatch(d); personApplyRepository.saveBatch(d);
} }
@Override
public void xgfPersonAudit(XgfApplyPersonE build) {
XgfApplyPersonDO d = new XgfApplyPersonDO();
BeanUtils.copyProperties(build, d);
xgfApplyPersonRepository.updateById(d);
if (build.getAuditFlag().equals(2)) {
// 审核通过后添加人员信息
XgfApplyPersonDO byId = xgfApplyPersonRepository.getById(d.getId());
QueryWrapper<PersonApplyDO> personApplyDOQueryWrapper = new QueryWrapper<>();
personApplyDOQueryWrapper.eq("xgf_apply_person_id", d.getId());
List<PersonApplyDO> list = personApplyRepository.list(personApplyDOQueryWrapper);
ArrayList<PersonMessageDO> personMessageDOS = new ArrayList<>();
list.forEach( item ->{
PersonMessageDO messageDO = new PersonMessageDO();
messageDO.setPersonBelongType(byId.getPersonBelongType());
messageDO.setPersonApplyId(d.getId());
messageDO.setSyncStatus(2);
messageDO.setGateLevelAuthArea(byId.getGateLevelAuthArea());
messageDO.setUserFaceUrl(item.getUserFaceUrl());
messageDO.setUserCard(item.getUserCard());
messageDO.setVisitStartTime(byId.getVisitStartTime());
messageDO.setVisitEndTime(byId.getVisitEndTime());
personMessageDOS.add(messageDO);
});
personMessageRepository.saveBatch(personMessageDOS);
}
}
} }

View File

@ -1,6 +1,7 @@
package com.zcloud.primeport.persistence.dataobject; package com.zcloud.primeport.persistence.dataobject;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.jjb.saas.framework.repository.basedo.BaseDO; import com.jjb.saas.framework.repository.basedo.BaseDO;
@ -47,5 +48,20 @@ public class PersonApplyDO extends BaseDO {
//身份证号码 //身份证号码
@ApiModelProperty(value = "身份证号码") @ApiModelProperty(value = "身份证号码")
private String userCard; private String userCard;
@TableField(exist = false)
private String reasonsRefusal;
@TableField(exist = false)
private String reasonVisit;
@TableField(exist = false)
private String visitStartTime;
//访问结束时间
@TableField(exist = false)
private String visitEndTime;
@TableField(exist = false)
private Long mkmjId;
@TableField(exist = false)
private Long mkmjName;
@TableField(exist = false)
private Integer personBelongType;
} }

View File

@ -1,5 +1,6 @@
package com.zcloud.primeport.persistence.dataobject; package com.zcloud.primeport.persistence.dataobject;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.jjb.saas.framework.repository.basedo.BaseDO; import com.jjb.saas.framework.repository.basedo.BaseDO;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
@ -36,6 +37,8 @@ public class XgfApplyPersonDO extends BaseDO {
@ApiModelProperty(value = "告知签字") @ApiModelProperty(value = "告知签字")
private Long informSignId; private Long informSignId;
private Long mkmjId; private Long mkmjId;
@TableField(exist = false)
private Long mkmjName;
//项目id //项目id
@ApiModelProperty(value = "项目id") @ApiModelProperty(value = "项目id")
private Long projectId; private Long projectId;
@ -49,5 +52,7 @@ public class XgfApplyPersonDO extends BaseDO {
private String auditDeptName; private String auditDeptName;
private Long auditUserId; private Long auditUserId;
private String auditUserName; private String auditUserName;
private String reasonsRefusal;
private String reasonVisit;
} }

View File

@ -1,9 +1,13 @@
package com.zcloud.primeport.persistence.mapper; package com.zcloud.primeport.persistence.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; 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.PersonApplyDO; import com.zcloud.primeport.persistence.dataobject.PersonApplyDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import java.util.Map;
/** /**
* web-infrastructure * web-infrastructure
* *
@ -13,5 +17,6 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper @Mapper
public interface PersonApplyMapper extends BaseMapper<PersonApplyDO> { public interface PersonApplyMapper extends BaseMapper<PersonApplyDO> {
IPage<PersonApplyDO> listPage(Page<Map<String, Object>> page, Map<String, Object> parmas, String menuPerms);
} }

View File

@ -3,8 +3,11 @@ package com.zcloud.primeport.persistence.repository.impl;
import com.alibaba.cola.dto.PageResponse; import com.alibaba.cola.dto.PageResponse;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl; import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
import com.zcloud.gbscommon.utils.PageQueryHelper; import com.zcloud.gbscommon.utils.PageQueryHelper;
import com.zcloud.primeport.domain.enums.MenuEnum;
import com.zcloud.primeport.persistence.dataobject.MkmjDO;
import com.zcloud.primeport.persistence.dataobject.PersonApplyDO; import com.zcloud.primeport.persistence.dataobject.PersonApplyDO;
import com.zcloud.primeport.persistence.mapper.PersonApplyMapper; import com.zcloud.primeport.persistence.mapper.PersonApplyMapper;
import com.zcloud.primeport.persistence.repository.PersonApplyRepository; import com.zcloud.primeport.persistence.repository.PersonApplyRepository;
@ -12,8 +15,10 @@ import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Map; import java.util.Map;
import com.zcloud.gbscommon.utils.Query; import com.zcloud.gbscommon.utils.Query;
import com.jjb.saas.framework.repository.common.PageHelper; import com.jjb.saas.framework.repository.common.PageHelper;
/** /**
* web-infrastructure * web-infrastructure
* *
@ -27,12 +32,15 @@ public class PersonApplyRepositoryImpl extends BaseRepositoryImpl<PersonApplyMap
@Override @Override
public PageResponse<PersonApplyDO> listPage(Map<String, Object> parmas) { public PageResponse<PersonApplyDO> listPage(Map<String, Object> parmas) {
IPage<PersonApplyDO> iPage = new Query<PersonApplyDO>().getPage(parmas);
QueryWrapper<PersonApplyDO> queryWrapper = new QueryWrapper<>(); Page<Map<String, Object>> page = new Page<>(Integer.parseInt(parmas.get("pageIndex").toString()),
queryWrapper = PageQueryHelper.createPageQueryWrapper(queryWrapper, parmas); Integer.parseInt(parmas.get("pageSize").toString()));
queryWrapper.orderByDesc("create_time"); String menuPerms = "";
IPage<PersonApplyDO> result = personApplyMapper.selectPage(iPage, queryWrapper); if (!org.springframework.util.ObjectUtils.isEmpty(parmas.get("menuPath"))) {
return PageHelper.pageToResponse(result, result.getRecords()); menuPerms = MenuEnum.getMenuKeyByPath(parmas.get("menuPath").toString());
}
IPage<PersonApplyDO> iPage = personApplyMapper.listPage(page, parmas, menuPerms);
return PageHelper.pageToResponse(iPage, iPage.getRecords());
} }
} }

View File

@ -4,5 +4,49 @@
<mapper namespace="com.zcloud.primeport.persistence.mapper.PersonApplyMapper"> <mapper namespace="com.zcloud.primeport.persistence.mapper.PersonApplyMapper">
<select id="listPage" resultType="com.zcloud.primeport.persistence.dataobject.PersonApplyDO">
SELECT
p.id,
p.xgf_apply_person_id,
p.person_corp_name,
p.person_corp_id,
p.person_department_id,
p.person_department_name,
p.employee_person_user_id,
p.employee_person_user_name,
p.user_face_url,
p.user_phone,
p.user_card,
ap.mkmj_id,
m.mkmj_name,
ap.audit_flag,
ap.reasons_refusal,
ap.reason_visit,
ap.mkmj_permission,
ap.visit_start_time,
ap.visit_end_time,
ap.inform_sign_id,
ap.project_id,
ap.project_name,
ap.audit_user_id,
ap.audit_user_name,
ap.audit_dept_id,
ap.audit_dept_name,
ap.audit_corp_id,
ap.audit_corp_name,
ap.person_belong_type
FROM
person_apply AS p
LEFT JOIN xgf_apply_person AS ap ON p.xgf_apply_person_id = ap.id
LEFT JOIN mkmj AS m ON m.id = ap.mkmj_id
WHERE
p.delete_enum = 'FALSE'
<if test="parmas.userCard != null and parmas.userCard != ''">
AND p.user_card = #{parmas.userCard}
</if>
<if test="parmas.personBelongType != null and parmas.personBelongType != ''">
AND ap.person_belong_type = #{parmas.personBelongType}
</if>
</select>
</mapper> </mapper>