feat(closedArea): refactor ClosedAreaCarApplyRepositoryImpl listPage with menuPerms

koumen
dearLin 2026-03-20 10:53:40 +08:00
parent 87d6e2fb97
commit 211b07cdff
33 changed files with 3008 additions and 19 deletions

8
.idea/.gitignore vendored Normal file
View File

@ -0,0 +1,8 @@
# 默认忽略的文件
/shelf/
/workspace.xml
# 基于编辑器的 HTTP 客户端请求
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

8
.idea/ProjectStorage.xml Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectStorage">
<option name="folderId" value="19905a0ab9f26f" />
<option name="path" value="海神女的私有团队-&gt;Gbs港务局-&gt;口门门禁" />
<option name="projectId" value="35be46" />
</component>
</project>

17
.idea/dataSources.xml Normal file
View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DataSourceManagerImpl" format="xml" multifile-model="true">
<data-source source="LOCAL" name="@nlb-kd2xz70qhllfet2koj.cn-beijing.nlb.aliyuncsslb.com" uuid="bae719c6-3357-4872-a8b5-26488c89acf2">
<driver-ref>mysql.8</driver-ref>
<synchronize>true</synchronize>
<jdbc-driver>com.mysql.cj.jdbc.Driver</jdbc-driver>
<jdbc-url>jdbc:mysql://nlb-kd2xz70qhllfet2koj.cn-beijing.nlb.aliyuncsslb.com:33068</jdbc-url>
<jdbc-additional-properties>
<property name="com.intellij.clouds.kubernetes.db.host.port" />
<property name="com.intellij.clouds.kubernetes.db.enabled" value="false" />
<property name="com.intellij.clouds.kubernetes.db.container.port" />
</jdbc-additional-properties>
<working-dir>$ProjectFileDir$</working-dir>
</data-source>
</component>
</project>

View File

@ -0,0 +1,585 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="EasyCodeTableSetting">
<option name="tableInfoMap">
<map>
<entry key="integrated_yjb.tb_iron_monitoring_target">
<value>
<TableInfoDTO>
<option name="comment" value="监控指标表" />
<option name="fullColumn">
<list>
<ColumnInfoDTO>
<option name="comment" value="主键" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="monitoringId" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="指标编码" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="targetCode" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="所属设备编码" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="equipCode" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="设备id" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="equipmentId" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="指标名称" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="targetName" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="指标类别" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="targetType" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="指标采集点位置" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="targetPlace" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="计量单位 模拟量必填" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="targetUnit" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="高报阈值" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="thresholdUpLimit" />
<option name="type" value="java.lang.Double" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="高高报阈值" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="thresholdUpUpLimit" />
<option name="type" value="java.lang.Double" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="低报阈值" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="thresholdDownLimit" />
<option name="type" value="java.lang.Double" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="低低报阈值" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="thresholdDownDownLimit" />
<option name="type" value="java.lang.Double" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="量程上限 模拟量指标需要填写" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="rangeUp" />
<option name="type" value="java.lang.Double" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="量程下限 模拟量指标需要填写" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="rangeDown" />
<option name="type" value="java.lang.Double" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="描述" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="targetDescription" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="位号" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="bitNo" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="信号类型1:模拟量; 2:开关量" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="signalType" />
<option name="type" value="java.lang.Integer" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="开关量报警值" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="alarmValue" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="指标停用状态0:停用 ;1 正常使用" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="targetStatus" />
<option name="type" value="java.lang.Integer" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="企业id" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="corpinfoId" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="添加人" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="creator" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="添加时间" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="creattime" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="修改人" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="operator" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="修改时间" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="operattime" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="是否删除(0:有效 1删除)" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="isdelete" />
<option name="type" value="java.lang.Integer" />
</ColumnInfoDTO>
</list>
</option>
<option name="name" value="TbIronMonitoringTarget" />
<option name="preName" value="" />
<option name="saveModelName" value="integrated_yjb" />
<option name="savePackageName" value="com.zcloud" />
<option name="savePath" value="./src/main/java/com/zcloud/e2myBatisP" />
<option name="templateGroupName" value="zcloud" />
</TableInfoDTO>
</value>
</entry>
<entry key="new_template.sys_user2">
<value>
<TableInfoDTO>
<option name="fullColumn">
<list>
<ColumnInfoDTO>
<option name="comment" value="用户ID" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="userId" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="用户名" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="username" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="密码" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="password" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="姓名" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="name" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="角色ID" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="roleId" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="最近登录时间" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="lastLogin" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="IP" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="ip" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="状态0.正常 99.锁定 2密码错误次数超过当天限制" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="status" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="备注" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="bz" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="皮肤" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="skin" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="邮箱" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="email" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="编码" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="number" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="电话" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="phone" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="副职角色ID组" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="roleIds" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="部门ID" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="departmentId" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="企业" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="corpinfoId" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="小程序菜单ID组" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="funIds" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="微信码" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="appid" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="岗位" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="postId" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="是否主账号" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="ismain" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="登录错误次数" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="errorCount" />
<option name="type" value="java.lang.Integer" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="人员在部门中的排序" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="sort" />
<option name="type" value="java.lang.Integer" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="在线学习人员类别" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="learnercategory" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="人员头像数据前缀" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="useravatarprefix" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="人员头像数据" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="useravatarurl" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="倒班类型-1级" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="shiftdutyone" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="倒班类型-2级" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="shiftdutytwo" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="工作状态持续时间(天)(上班或休班)" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="duration" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="工作状态 1-上班 2-休班" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="workstatus" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="当前工作周期数" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="workperiod" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="isRecorder" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="人员类型" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="personnelType" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="是否为隐患确认人0否1是" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="isHazardconfirmer" />
<option name="type" value="java.lang.Integer" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="是否为临时访问审核人(01是)" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="isAccessauditor" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="是否在线学习人员" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="isOnlinelearning" />
<option name="type" value="java.lang.Integer" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="人员类型" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="personType" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="emis对接人员" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="jcr" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="推送id" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="pushCid" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="工号(人员定位使用)" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="empno" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="曹妃甸数据人员状态 0企业端 1监管端 此字段用于港务局给曹妃甸发起安全环保检查选择人员 只选曹妃甸该字段值为1的人员" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="cfdStatus" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="卡号(人员定位使用)" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="cardno" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="人员标识用作手机app登录12.15新加如需删除请联系王轩)" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="userIdentity" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="baseimgpath" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="backendaddr" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="门口门禁人员编号(门口门禁使用)" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="mkmjcard" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="是否推送到中台" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="ispush" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="1监管2企业3相关方" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="userType" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="是否在人资系统存在(0未确认1通过姓名和手机号确认2用户已手动确认3人资修改人员)" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="inHrUser" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="是否删除0否1是" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="isDelete" />
<option name="type" value="java.lang.Integer" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="创建人" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="creator" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="创建时间" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="createTime" />
<option name="type" value="java.util.Date" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="修改人" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="operat" />
<option name="type" value="java.lang.String" />
</ColumnInfoDTO>
<ColumnInfoDTO>
<option name="comment" value="修改时间" />
<option name="custom" value="false" />
<option name="ext" value="{}" />
<option name="name" value="operatTime" />
<option name="type" value="java.util.Date" />
</ColumnInfoDTO>
</list>
</option>
<option name="name" value="SysUser2" />
<option name="preName" value="" />
<option name="saveModelName" value="regulatory_gwj_2.0" />
<option name="savePackageName" value="com.zcloud.modules.sys.entity" />
<option name="savePath" value="./src/main/java/com/zcloud/modules/sys/entity" />
<option name="templateGroupName" value="zcloud" />
</TableInfoDTO>
</value>
</entry>
</map>
</option>
</component>
</project>

15
.idea/encodings.xml Normal file
View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" native2AsciiForPropertiesFiles="true" defaultCharsetForPropertiesFiles="UTF-8">
<file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/start/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/start/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/web-adapter/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/web-app/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/web-client/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/web-domain/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/web-infrastructure/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/web-infrastructure/src/main/resources" charset="UTF-8" />
</component>
</project>

View File

@ -0,0 +1,70 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="AliAccessStaticViaInstance" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AliArrayNamingShouldHaveBracket" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AliControlFlowStatementWithoutBraces" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AliDeprecation" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AliEqualsAvoidNull" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AliLongLiteralsEndingWithLowercaseL" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AliMissingOverrideAnnotation" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AliWrapperTypeEquality" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaAbstractClassShouldStartWithAbstractNaming" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaAbstractMethodOrInterfaceMethodMustUseJavadoc" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaAvoidApacheBeanUtilsCopy" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaAvoidCallStaticSimpleDateFormat" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaAvoidCommentBehindStatement" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaAvoidComplexCondition" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaAvoidConcurrentCompetitionRandom" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaAvoidDoubleOrFloatEqualCompare" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaAvoidManuallyCreateThread" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaAvoidMissUseOfMathRandom" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaAvoidNegationOperator" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaAvoidNewDateGetTime" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaAvoidPatternCompileInMethod" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaAvoidReturnInFinally" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaAvoidStartWithDollarAndUnderLineNaming" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaAvoidUseTimer" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaBigDecimalAvoidDoubleConstructor" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaBooleanPropertyShouldNotStartWithIs" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaClassCastExceptionWithSubListToArrayList" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaClassCastExceptionWithToArray" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaClassMustHaveAuthor" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaClassNamingShouldBeCamel" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaCollectionInitShouldAssignCapacity" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaCommentsMustBeJavadocFormat" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaConcurrentExceptionWithModifyOriginSubList" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaConstantFieldShouldBeUpperCase" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaCountDownShouldInFinally" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaDontModifyInForeachCircle" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaEnumConstantsMustHaveComment" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaExceptionClassShouldEndWithException" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaIbatisMethodQueryForList" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaLockShouldWithTryFinally" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaLowerCamelCaseVariableNaming" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaMethodReturnWrapperType" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaMethodTooLong" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaPackageNaming" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaPojoMustOverrideToString" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaPojoMustUsePrimitiveField" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaPojoNoDefaultValue" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaRemoveCommentedCode" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaServiceOrDaoClassShouldEndWithImpl" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaSneakyThrowsWithoutExceptionType" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaStringConcat" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaSwitchExpression" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaSwitchStatement" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaTestClassShouldEndWithTestNaming" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaThreadLocalShouldRemove" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaThreadPoolCreation" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaThreadShouldSetName" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaTransactionMustHaveRollback" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaUndefineMagicConstant" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaUnsupportedExceptionWithModifyAsList" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaUseQuietReferenceNotation" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AlibabaUseRightCaseForDateFormat" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="MapOrSetKeyShouldOverrideHashCodeEquals" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="SpringJavaInjectionPointsAutowiringInspection" enabled="false" level="ERROR" enabled_by_default="false" />
</profile>
</component>

12
.idea/misc.xml Normal file
View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="MavenProjectsManager">
<option name="originalFiles">
<list>
<option value="$PROJECT_DIR$/pom.xml" />
</list>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK" />
</project>

124
.idea/uiDesigner.xml Normal file
View File

@ -0,0 +1,124 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Palette2">
<group name="Swing">
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
</item>
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
</item>
<item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.svg" removable="false" auto-create-binding="false" can-attach-label="true">
<default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
</item>
<item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
<initial-values>
<property name="text" value="Button" />
</initial-values>
</item>
<item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="RadioButton" />
</initial-values>
</item>
<item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="CheckBox" />
</initial-values>
</item>
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
<initial-values>
<property name="text" value="Label" />
</initial-values>
</item>
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
</item>
<item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
</item>
<item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
<preferred-size width="-1" height="20" />
</default-constraints>
</item>
<item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
</item>
<item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
</item>
</group>
</component>
</project>

6
.idea/vcs.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

9
.sisyphus/boulder.json Normal file
View File

@ -0,0 +1,9 @@
{
"active_plan": "E:\\proj\\zcloudGbsProj\\zcloud-gbs-primeport\\.sisyphus\\plans\\refactor-car-apply-listpage.md",
"started_at": "2026-03-20T02:50:18.824Z",
"session_ids": [
"ses_2f70a72c8ffea8FCW0BWHlECqF"
],
"plan_name": "refactor-car-apply-listpage",
"agent": "atlas"
}

View File

@ -0,0 +1,68 @@
# Add currentUserCanAudit Field Logic
## TL;DR
`ClosedAreaPersonApplyQueryExe.execute()` 方法中添加逻辑,为每条查询结果设置 `currentUserCanAudit` 字段,标识当前登录用户是否能审核该申请。
**Deliverables**:
- 修改 `ClosedAreaPersonApplyQueryExe.java`
**Estimated Effort**: Quick (1 file, <20 lines)
---
## Context
### Target File
`web-app/src/main/java/com/zcloud/primeport/command/query/ClosedAreaPersonApplyQueryExe.java`
### Business Logic
- `currentUserCanAudit = 1`:当前用户能审核(审核中状态且当前用户是审批人)
- `currentUserCanAudit = 2`:当前用户不能审核
### Implementation Requirements
1. 获取当前登录用户ID`AuthContext.getUserId()`
2. 遍历查询结果,对每个 `ClosedAreaPersonApplyCO` 设置字段:
- 如果 `auditFlag == 1`(审核中)且 `auditPersonUserId == currentUserId``currentUserCanAudit = 1`
- 否则 → `currentUserCanAudit = 2`
---
## TODOs
- [x] Add currentUserCanAudit logic in ClosedAreaPersonApplyQueryExe.execute()
**What to do**:
1. 在 `execute` 方法中获取当前登录用户ID
2. 在转换DO到CO后遍历CO列表设置 `currentUserCanAudit` 字段
3. 判断逻辑:审核中(1)且当前用户是审批人 → 能审核(1),否则不能审核(2)
**References**:
- `web-app/src/main/java/com/zcloud/primeport/command/query/ClosedAreaPersonApplyQueryExe.java:48-53` - execute method to modify
- `web-client/src/main/java/com/zcloud/primeport/dto/clientobject/ClosedAreaPersonApplyCO.java:124-125` - currentUserCanAudit field already exists
- `web-app/src/main/java/com/zcloud/primeport/command/ClosedAreaPersonApplyAddExe.java` - AuthContext.getUserId() usage example
**Acceptance Criteria**:
- [ ] `execute` 方法中获取 `AuthContext.getUserId()`
- [ ] 对每条记录正确设置 `currentUserCanAudit` 字段
- [ ] 代码编译通过
- [ ] 使用 `import com.jjb.saas.framework.auth.utils.AuthContext;`
---
## Commit Strategy
- **1**: `feat(closedArea): add currentUserCanAudit logic in query` — ClosedAreaPersonApplyQueryExe.java
---
## Success Criteria
### Verification Commands
```bash
mvn compile -pl web-app
```
### Final Checklist
- [ ] `currentUserCanAudit` 逻辑正确实现
- [ ] 代码编译通过

View File

@ -0,0 +1,132 @@
# Refactor ClosedAreaCarApplyRepositoryImpl listPage Method
## TL;DR
按照 `ClosedAreaPersonApplyRepositoryImpl.listPage()` 的实现方式重写 `ClosedAreaCarApplyRepositoryImpl.listPage()` 方法,添加 `menuPerms` 参数处理逻辑。
**Deliverables**:
- 修改 `ClosedAreaCarApplyMapper.java` - 添加 listPage 方法
- 修改 `ClosedAreaCarApplyMapper.xml` - 添加 SQL 查询
- 修改 `ClosedAreaCarApplyRepositoryImpl.java` - 重写 listPage 方法
**Estimated Effort**: Quick (3 files)
---
## Context
### Reference Implementation
`ClosedAreaPersonApplyRepositoryImpl.listPage()` 的实现模式:
1. 使用 `Page<Map<String, Object>>` 创建分页对象
2. 获取 `menuPerms` 参数:通过 `MenuEnum.getMenuKeyByPath()` 转换
3. 调用 Mapper 的自定义 `listPage` 方法
4. 返回 `PageHelper.pageToResponse()` 结果
### Business Logic
```java
String menuPerms = "";
if (!org.springframework.util.ObjectUtils.isEmpty(params.get("menuPath"))) {
menuPerms = MenuEnum.getMenuKeyByPath(params.get("menuPath").toString());
}
```
---
## TODOs
- [ ] 1. Add listPage method to ClosedAreaCarApplyMapper.java
**What to do**:
添加 `listPage` 方法签名,参考 ClosedAreaPersonApplyMapper
**File**: `web-infrastructure/src/main/java/com/zcloud/primeport/persistence/mapper/ClosedAreaCarApplyMapper.java`
**Code**:
```java
IPage<ClosedAreaCarApplyDO> listPage(Page<Map<String, Object>> page, Map<String, Object> params, String menuPerms);
```
**Imports to add**:
```java
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import java.util.Map;
```
- [ ] 2. Add listPage SQL to ClosedAreaCarApplyMapper.xml
**What to do**:
添加分页查询 SQL参考 ClosedAreaPersonApplyMapper.xml
**File**: `web-infrastructure/src/main/resources/mapper/ClosedAreaCarApplyMapper.xml`
**Code**:
```xml
<select id="listPage" resultType="com.zcloud.primeport.persistence.dataobject.ClosedAreaCarApplyDO">
select * from closed_area_car_apply c
where c.delete_enum = 'FALSE'
<if test="params.processOrRecord != null">
<if test="params.processOrRecord == 1">
AND c.audit_flag = 1
</if>
<if test="params.processOrRecord == 2">
AND c.audit_flag != 1
</if>
</if>
<if test="params.applyPersonUserName != null and params.applyPersonUserName != ''">
AND c.apply_person_user_name like CONCAT('%', #{params.applyPersonUserName}, '%')
</if>
<if test="params.licenceNo != null and params.licenceNo != ''">
AND c.licence_no like CONCAT('%', #{params.licenceNo}, '%')
</if>
</select>
```
- [ ] 3. Rewrite listPage in ClosedAreaCarApplyRepositoryImpl.java
**What to do**:
按照 ClosedAreaPersonApplyRepositoryImpl 的模式重写 listPage 方法
**File**: `web-infrastructure/src/main/java/com/zcloud/primeport/persistence/repository/impl/ClosedAreaCarApplyRepositoryImpl.java`
**Code**:
```java
@Override
public PageResponse<ClosedAreaCarApplyDO> listPage(Map<String, Object> params) {
Page<Map<String, Object>> page = new Page<>(Integer.parseInt(params.get("pageIndex").toString()),
Integer.parseInt(params.get("pageSize").toString()));
String menuPerms = "";
if (!org.springframework.util.ObjectUtils.isEmpty(params.get("menuPath"))) {
menuPerms = MenuEnum.getMenuKeyByPath(params.get("menuPath").toString());
}
IPage<ClosedAreaCarApplyDO> result = closedAreaCarApplyMapper.listPage(page, params, menuPerms);
return PageHelper.pageToResponse(result, result.getRecords());
}
```
**Imports to add**:
```java
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zcloud.primeport.domain.enums.MenuEnum;
```
---
## Commit Strategy
- **1**: `feat(closedArea): refactor ClosedAreaCarApplyRepositoryImpl listPage with menuPerms` — 3 files
---
## Success Criteria
### Verification Commands
```bash
mvn compile -pl web-infrastructure
```
### Final Checklist
- [ ] Mapper 接口添加 listPage 方法
- [ ] XML 添加对应 SQL
- [ ] Repository 实现重写完成
- [ ] 编译通过

208
AGENTS.md Normal file
View File

@ -0,0 +1,208 @@
# AGENTS.md
This file provides guidance to agentic coding agents operating in this repository.
## Project Overview
**zcloud-gbs-primeport** - A Spring Boot application for port access control management built with COLA framework and DDD architecture.
## Build Commands
```bash
# Build the project
mvn clean install
# Build without running tests
mvn clean install -DskipTests
# Run the application
mvn spring-boot:run -pl start
# Package for deployment
mvn clean package
# Compile only
mvn compile
```
## Test Commands
```bash
# Run all tests
mvn test
# Run a single test class
mvn test -Dtest=ClassNameTest
# Run a single test method
mvn test -Dtest=ClassNameTest#methodName
# Run tests in a specific module
mvn test -pl web-app
```
## Code Style Guidelines
### Architecture (COLA + DDD)
This is a multi-module Maven project with strict layer separation:
```
start/ # Application entry point
web-adapter/ # Controllers (HTTP request handling)
web-client/ # DTOs + API interface definitions
web-app/ # Executors + Service implementations (business orchestration)
web-domain/ # Entities + Gateway interfaces (core business logic)
web-infrastructure/ # DOs + Mappers + Repository implementations (data persistence)
```
### Naming Conventions
| Layer | Suffix | Example |
|-------|--------|---------|
| Entity | `E` | `MkmjE` |
| Data Object | `DO` | `MkmjDO` |
| Client Object | `CO` | `MkmjCO` |
| Command DTO | `Cmd` | `MkmjAddCmd`, `MkmjUpdateCmd` |
| Query DTO | `Qry` | `MkmjPageQry` |
| Service Interface | `ServiceI` | `MkmjServiceI` |
| Service Impl | `ServiceImpl` | `MkmjServiceImpl` |
| Gateway Interface | `Gateway` | `MkmjGateway` |
| Gateway Impl | `GatewayImpl` | `MkmjGatewayImpl` |
| Repository | `Repository` | `MkmjRepository` |
| Repository Impl | `RepositoryImpl` | `MkmjRepositoryImpl` |
| Mapper | `Mapper` | `MkmjMapper` |
| Add Executor | `AddExe` | `MkmjAddExe` |
| Update Executor | `UpdateExe` | `MkmjUpdateExe` |
| Remove Executor | `RemoveExe` | `MkmjRemoveExe` |
| Query Executor | `QueryExe` | `MkmjQueryExe` |
| Convertor | `CoConvertor` | `MkmjCoConvertor` |
### Import Guidelines
- Imports should be organized alphabetically
- Use `@AllArgsConstructor` for constructor injection (preferred over `@Autowired`)
- Example import order:
```java
import com.alibaba.cola.dto.PageResponse;
import com.zcloud.primeport.api.MkmjServiceI;
import com.zcloud.primeport.command.MkmjAddExe;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
```
### Annotations
- Use Lombok annotations: `@Data`, `@AllArgsConstructor`, `@NoArgsConstructor`, `@Builder`, `@RequiredArgsConstructor`
- Controller: `@RestController`, `@RequestMapping`, `@AllArgsConstructor`, `@Api`
- Service: `@Service`, `@AllArgsConstructor`
- Executor: `@Component`, `@AllArgsConstructor`
- Mapper: `@Mapper` (MyBatis)
- DO: `@Data`, `@TableName`, `@EqualsAndHashCode(callSuper = true)`
### CQRS Pattern
Write and read operations are separated:
- **Write**: `XxxAddExe`, `XxxUpdateExe`, `XxxRemoveExe` in `web-app/command/`
- **Read**: `XxxQueryExe` in `web-app/command/query/`
### Request Flow
```
Controller (web-adapter)
-> ServiceI (web-client)
-> ServiceImpl (web-app)
-> Executor (web-app/command)
-> Gateway (web-domain)
-> GatewayImpl -> Repository -> Mapper (web-infrastructure)
```
### MyBatis Plus Conventions
1. **Non-database fields in DO**: Use `@TableField(exist = false)`
```java
@ApiModelProperty(value = "摄像头数量")
@TableField(exist = false)
private Integer videoCount;
```
2. **Field naming**: MyBatis Plus auto-converts snake_case to camelCase. Write SQL with underscore:
```xml
SELECT m.hg_auth_area AS hgAuthArea, m.mkmj_name AS mkmjName FROM mkmj m
```
3. **Default ordering**: Use `ORDER BY m.create_time DESC` or appropriate ordering in XML mappers.
### Error Handling
- Use `BizException` from COLA for business exceptions:
```java
if (!res) {
throw new BizException("保存失败");
}
```
- Use `@Transactional(rollbackFor = Exception.class)` for transactional methods.
### Validation
- Use JSR-303 annotations in Cmd classes:
```java
@NotEmpty(message = "口门名称不能为空")
private String mkmjName;
@NotNull(message = "口门级别不能为空")
private Integer mkmjLevel;
```
- Use `@Validated` in Controller methods:
```java
public SingleResponse<MkmjCO> add(@Validated @RequestBody MkmjAddCmd cmd)
```
### MapStruct Convertors
Use MapStruct for DO to CO conversions:
```java
@Mapper(componentModel = "spring")
public interface MkmjCoConvertor {
List<MkmjCO> converDOsToCOs(List<MkmjDO> mkmjDOs);
MkmjCO converDOToCO(MkmjDO mkmjDOs);
}
```
### Adding New Features
When adding a new entity, create files in this order:
1. `web-client/dto/clientobject/XxxCO.java`
2. `web-client/dto/XxxAddCmd.java`, `XxxUpdateCmd.java`, `XxxPageQry.java`
3. `web-client/api/XxxServiceI.java`
4. `web-adapter/web/XxxController.java`
5. `web-domain/model/XxxE.java`
6. `web-domain/gateway/XxxGateway.java`
7. `web-infrastructure/dataobject/XxxDO.java`
8. `web-infrastructure/mapper/XxxMapper.java`
9. `web-infrastructure/resources/mapper/XxxDO.xml`
10. `web-infrastructure/repository/XxxRepository.java`
11. `web-infrastructure/repository/impl/XxxRepositoryImpl.java`
12. `web-infrastructure/gatewayimpl/XxxGatewayImpl.java`
13. `web-app/command/XxxAddExe.java`, `XxxUpdateExe.java`, `XxxRemoveExe.java`
14. `web-app/command/query/XxxQueryExe.java`
15. `web-app/command/convertor/XxxCoConvertor.java`
16. `web-app/service/XxxServiceImpl.java`
### Database
- PostgreSQL (driver version 42.6.0)
- DDL location: `web-infrastructure/src/main/resources/TableCreationDDL.sql`
- Multi-tenant support via `tenant_id` and `org_id` columns
- Soft delete via `delete_enum` column (use `'false'` for active records)
### Response Types (COLA)
- `Response` - Simple success/failure
- `SingleResponse<T>` - Single object response
- `MultiResponse<T>` - List response
- `PageResponse<T>` - Paginated list response

160
CLAUDE.md Normal file
View File

@ -0,0 +1,160 @@
# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## Project Overview
**zcloud-gbs-primeport** - 智慧云港-港口首进门禁管理系统
A Spring Boot application based on DDD (Domain-Driven Design) architecture using the COLA framework. Manages port/area access control with multi-level area management, vehicle approval, and personnel access control.
## Build and Run
```bash
# Build the project
mvn clean install
# Run the application (main class: com.zcloud.primeport.Application)
mvn spring-boot:run -pl start
# Package for deployment
mvn clean package
```
## DDD Architecture
This is a COLA-based multi-module Maven project with strict layer separation:
```
start/ # Application entry point (main class, configuration)
web-adapter/ # Adapter layer (Controllers) - HTTP request handling
web-client/ # Client layer (DTOs + API interface definitions)
web-app/ # Application layer (Command/Query executors) - Business orchestration
web-domain/ # Domain layer (Entity + Gateway) - Core business logic
web-infrastructure/ # Infrastructure layer (DO + Mapper) - Data persistence
```
### Key Architecture Patterns
**CQRS**: Read and write operations are separated
- Write operations: `XxxAddExe`, `XxxUpdateExe`, `XxxRemoveExe` in `web-app/command/`
- Read operations: `XxxQueryExe` in `web-app/command/query/`
**Naming Conventions**:
- Entities: `XxxE` (domain entities in `web-domain`)
- DTOs: `XxxCmd` (commands), `XxxQry` (queries), `XxxCO` (client objects)
- Data Objects: `XxxDO` (database objects in `web-infrastructure`)
- Gateways: `XxxGateway` interfaces in `web-domain`, implemented in `web-infrastructure`
**Request Flow**:
```
Controller (web-adapter)
→ ServiceI (web-client)
→ ServiceImpl (web-app)
→ Executor (web-app/command)
→ Gateway (web-domain)
→ Mapper (web-infrastructure)
```
## Database Schema
Database DDL is located at: `web-infrastructure/src/main/resources/TableCreationDDL.sql`
### Core Tables (9 main business entities)
**门禁管理**
- `mkmj` - 门口信息管理表 (gate info: 一级/二级口门)
- `mkmj_gate` - 门口闸机表 (gate equipment)
- `mkmj_passage` - 口门门禁通道表 (passageways: 人行/车行/综合)
- `mkmj_approval_user` - 一级口门门禁审批人
- `video` - 摄像头表 (video monitoring)
**人员管理**
- `person_apply` - 人员申请审批信息 (personnel applications with audit workflow)
- `person_message` - 审批通过的人员信息 (approved personnel for access control sync)
**车辆管理**
- `vehicle_apply` - 车辆申请审批信息 (vehicle applications with audit workflow)
- `vehicle_audit` - 车辆审批
- `vehicle_message` - 审批通过的固化车辆信息
- `vehicle_black` - 车辆黑名单管理
- `vehicle_violations` - 车辆违规记录
### Key Business Concepts
**审核状态** - audit_flag:
- 1: 审核中
- 2: 审核通过
- 3: 审核驳回
- 4: 无需审批 (检查部门车辆/长期人员)
**车辆/人员所属类型** - belong_type:
- 1: 股份员工车辆/人员
- 2: 股份单位车辆
- 3: 分公司员工车辆/人员
- 4: 分公司单位车辆
- 5: 相关方车辆
- 6: 临时车辆/人员
- 7: 检查部门车辆
**口门级别** - mkmj_level:
- 1: 一级口门
- 2: 二级口门
**通道/闸机类型**:
- 1: 人行
- 2: 车行
- 3: 综合
## Configuration
- Uses Nacos for centralized configuration
- Database: MySQL (Note: DDL shows MySQL syntax, but pom.xml has PostgreSQL driver - confirm actual DB)
- MyBatis Plus for ORM
- Main application config: `start/src/main/resources/bootstrap.yml`
- Nacos connection: `start/src/main/resources/nacos.yml`
- Multi-tenant support via `tenant_id` and `org_id` columns
## Module Dependencies
All modules depend on `web-client`. The `start` module only depends on `web-adapter` and pulls in transitive dependencies.
Current git branch: `koumen` (门禁审批功能 - gate access approval)
Main branch: `master`
## Code Generation Pattern
When adding new features, follow the existing pattern across all layers:
1. Create CO in `web-client/src/main/java/com/zcloud/primeport/dto/clientobject/`
2. Create Cmd/Qry in `web-client/src/main/java/com/zcloud/primeport/dto/`
3. Create ServiceI in `web-client/src/main/java/com/zcloud/primeport/api/`
4. Create Controller in `web-adapter/src/main/java/com/zcloud/primeport/web/`
5. Create Entity in `web-domain/src/main/java/com/zcloud/primeport/domain/model/`
6. Create Gateway interface in `web-domain/src/main/java/com/zcloud/primeport/domain/gateway/`
7. Create DO in `web-infrastructure/src/main/java/com/zcloud/primeport/persistence/dataobject/`
8. Create Mapper in `web-infrastructure/src/main/java/com/zcloud/primeport/persistence/mapper/`
9. Create GatewayImpl in `web-infrastructure/src/main/java/com/zcloud/primeport/gatewayimpl/`
10. Create Executors in `web-app/src/main/java/com/zcloud/primeport/command/`
11. Create ServiceImpl in `web-app/src/main/java/com/zcloud/primeport/service/`
## MyBatis Plus Development Conventions
### DO (Data Object) Field Conventions
1. **Non-database fields**: When adding a field to DO that does not exist in the database table (e.g., association query results), use `@TableField(exist = false)` annotation:
```java
@ApiModelProperty(value = "摄像头数量")
@TableField(exist = false)
private Integer videoCount;
```
2. **Field naming**: MyBatis Plus automatically converts between underscore (snake_case) and camelCase. Write SQL with underscore column names directly - no need to manually convert to camelCase:
```xml
<!-- SQL 中直接使用下划线字段名 -->
SELECT m.hg_auth_area AS hgAuthArea, m.mkmj_name AS mkmjName FROM mkmj m
```
3. **Default ordering**: Unless specified otherwise, order by `create_time DESC` for list/page queries:
```xml
ORDER BY m.create_time DESC
```

View File

@ -0,0 +1,54 @@
spring:
datasource:
mysql:
url: jdbc:mysql://${mysql.host}:${mysql.port}/${mysql.db}?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&allowMultiQueries=true&serverTimezone=Asia/Shanghai
username: ${mysql.username}
password: ${mysql.password}
type: com.alibaba.druid.pool.DruidDataSource
# 降级
# driver-class-name: com.mysql.cj.jdbc.Driver
driver-class-name: com.mysql.jdbc.Driver
initial-size: 6
min-idle: 1
maxActive: 100
# 配置获取连接等待超时的时间
maxWait: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
#Oracle需要打开注释
#validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
# 打开PSCache并且指定每个连接上PSCache的大小
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20
# 配置监控统计拦截的filters去掉后监控界面sql无法统计'wall'用于防火墙
filters: stat,slf4j
# 通过connectProperties属性来打开mergeSql功能慢SQL记录
connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
wall:
multi-statement-allow: true
pgsql:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: org.postgresql.Driver # PG专属驱动
url: jdbc:postgresql://39.100.115.58:15431/postgres?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai
username: postgres
password: DjIGYM8k0h
# PG专属Druid配置适配PG特性统一为驼峰格式匹配原有风格
initial-size: 6
min-idle: 1
maxActive: 100
maxWait: 60000
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20
validationQuery: SELECT 1 # PG必须配置连接检测语句MySQL可省略
filters: stat,slf4j # PG不兼容wall过滤器需移除
connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000

View File

@ -0,0 +1,23 @@
<!doctype html><html lang="zh"><head data-built-info="@cqsjjb/scripts@2.0.0-alpha-1 Env/production (2025/10/17 11:07:53) App/risk"><meta charset="UTF-8"/><meta name="renderer" content="webkit"/><meta http-equiv="X-UA-Compatible" content="IE=edge,Chrome=1"/><meta name="viewport" content="width=device-width,minimum-scale=1,maximum-scale=1,user-scalable=no,viewport-fit=cover"><title>--</title><script>(function () {
const APP_ENV = {
antd: {
'ant-prefix': 'micro-temp',
fontFamily: 'PingFangSC-Regular',
colorPrimary: '#1677ff',
borderRadius: parseInt('2')
},
appKey: '',
basename: 'risk',
API_HOST: ''
};
APP_ENV.API_HOST = sessionStorage.API_HOST || APP_ENV.API_HOST || window.location.origin;
window.process = {
env: { app: APP_ENV },
NODE_ENV: 'production'
};
window.__JJB_ENVIRONMENT__ = {
API_HOST: APP_ENV.API_HOST,
redirect: '',
FRAMEWORK: APP_ENV.antd
};
})();</script><script defer="defer" src="/risk/static/js/295.21df88c875577274cecb.js"></script><script defer="defer" src="/risk/static/js/main.4c0885586ad9a06ab444.js"></script><link href="/risk/static/css/main.40fc518bb0818fe8b8ea.css" rel="stylesheet"></head><body style="overflow: hidden"><noscript>此网页需要开启JavaScript功能。</noscript><div id="root" style="width: 100%; height: 100%; position: relative"></div><script type="text/javascript">/* @cqsjjb/script 输出当前应用基本信息、构建时间 */console.log("%c@cqsjjb/scripts@2.0.0-alpha-1 Env/production (2025/10/17 11:07:53) App/risk Version/master Java/<branch-name>", "color: #1890ff; border-radius: 2px; padding: 0 4px; border: 1px solid #1890ff; background: #f9fcff")</script></body></html>

View File

@ -0,0 +1 @@
body,html{height:100%;width:100%}input::-ms-clear,input::-ms-reveal{display:none}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}@-ms-viewport{width:device-width}body{margin:0}[tabindex="-1"]:focus{outline:none}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{font-weight:500;margin-bottom:.5em;margin-top:0}p{margin-bottom:1em;margin-top:0}abbr[data-original-title],abbr[title]{border-bottom:0;cursor:help;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}address{font-style:normal;line-height:inherit;margin-bottom:1em}input[type=number],input[type=password],input[type=text],textarea{-webkit-appearance:none}dl,ol,ul{margin-bottom:1em;margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}code,kbd,pre,samp{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:1em}pre{margin-bottom:1em;margin-top:0;overflow:auto}figure{margin:0 0 1em}img{border-style:none;vertical-align:middle}[role=button],a,area,button,input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{caption-side:bottom;padding-bottom:.3em;padding-top:.75em;text-align:left}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-size:inherit;line-height:inherit;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{border:0;margin:0;min-width:0;padding:0}legend{color:inherit;display:block;font-size:1.5em;line-height:inherit;margin-bottom:.5em;max-width:100%;padding:0;white-space:normal;width:100%}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:none;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}mark{background-color:#feffe6;padding:.2em}

View File

@ -0,0 +1 @@
module.exports={compact:!1,plugins:[["@babel/plugin-proposal-decorators",{legacy:!0}]],presets:[["@babel/preset-env",{targets:{browsers:["ie >= 10"]}}],["@babel/preset-react",{runtime:"automatic"}]]};

View File

@ -0,0 +1 @@
module.exports={javaGit:"<git-url>",javaGitName:"<git-name>",environment:{development:{javaGitBranch:"<branch-name>",API_HOST:"http://192.168.20.100:30140/demo2"},production:{javaGitBranch:"<branch-name>",API_HOST:""}},appIdentifier:"risk",contextInject:{appKey:""},windowInject:{title:"微应用模板",links:[],element:{root:{id:"root"}},scripts:[]},server:{port:"8080",host:"127.0.0.1",open:!0},framework:{antd:{"ant-prefix":"micro-temp",fontFamily:"PingFangSC-Regular",colorPrimary:"#1677ff",borderRadius:2}},webpackConfig:{htmlWebpackPluginOption:{inject:!0}}};

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,135 @@
/*!
Copyright (c) 2018 Jed Watson.
Licensed under the MIT License (MIT), see
http://jedwatson.github.io/classnames
*/
/*!
* is-plain-object <https://github.com/jonschlinkert/is-plain-object>
*
* Copyright (c) 2014-2017, Jon Schlinkert.
* Released under the MIT License.
*/
/*!
* isobject <https://github.com/jonschlinkert/isobject>
*
* Copyright (c) 2014-2017, Jon Schlinkert.
* Released under the MIT License.
*/
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
/**
* @license React
* react-dom.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/**
* @license React
* react-is.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/**
* @license React
* react-jsx-runtime.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/**
* @license React
* react.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/**
* @license React
* scheduler.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/** @license React v16.13.1
* react-is.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/** @license React v17.0.2
* react-is.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/** @preserve
* Counter block mode compatible with Dr Brian Gladman fileenc.c
* derived from CryptoJS.mode.CTR
* Jan Hruby jhruby.web@gmail.com
*/
/** @preserve
(c) 2012 by Cédric Mesnil. All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/**![caret-down](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjAgMCAxMDI0IDEwMjQiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg0MC40IDMwMEgxODMuNmMtMTkuNyAwLTMwLjcgMjAuOC0xOC41IDM1bDMyOC40IDM4MC44YzkuNCAxMC45IDI3LjUgMTAuOSAzNyAwTDg1OC45IDMzNWMxMi4yLTE0LjIgMS4yLTM1LTE4LjUtMzV6IiAvPjwvc3ZnPg==) */
/**![caret-up](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjAgMCAxMDI0IDEwMjQiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg1OC45IDY4OUw1MzAuNSAzMDguMmMtOS40LTEwLjktMjcuNS0xMC45LTM3IDBMMTY1LjEgNjg5Yy0xMi4yIDE0LjItMS4yIDM1IDE4LjUgMzVoNjU2LjhjMTkuNyAwIDMwLjctMjAuOCAxOC41LTM1eiIgLz48L3N2Zz4=) */
/**![check](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkxMiAxOTBoLTY5LjljLTkuOCAwLTE5LjEgNC41LTI1LjEgMTIuMkw0MDQuNyA3MjQuNSAyMDcgNDc0YTMyIDMyIDAgMDAtMjUuMS0xMi4ySDExMmMtNi43IDAtMTAuNCA3LjctNi4zIDEyLjlsMjczLjkgMzQ3YzEyLjggMTYuMiAzNy40IDE2LjIgNTAuMyAwbDQ4OC40LTYxOC45YzQuMS01LjEuNC0xMi44LTYuMy0xMi44eiIgLz48L3N2Zz4=) */
/**![double-left](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTI3Mi45IDUxMmwyNjUuNC0zMzkuMWM0LjEtNS4yLjQtMTIuOS02LjMtMTIuOWgtNzcuM2MtNC45IDAtOS42IDIuMy0xMi42IDYuMUwxODYuOCA0OTIuM2EzMS45OSAzMS45OSAwIDAwMCAzOS41bDI1NS4zIDMyNi4xYzMgMy45IDcuNyA2LjEgMTIuNiA2LjFINTMyYzYuNyAwIDEwLjQtNy43IDYuMy0xMi45TDI3Mi45IDUxMnptMzA0IDBsMjY1LjQtMzM5LjFjNC4xLTUuMi40LTEyLjktNi4zLTEyLjloLTc3LjNjLTQuOSAwLTkuNiAyLjMtMTIuNiA2LjFMNDkwLjggNDkyLjNhMzEuOTkgMzEuOTkgMCAwMDAgMzkuNWwyNTUuMyAzMjYuMWMzIDMuOSA3LjcgNi4xIDEyLjYgNi4xSDgzNmM2LjcgMCAxMC40LTcuNyA2LjMtMTIuOUw1NzYuOSA1MTJ6IiAvPjwvc3ZnPg==) */
/**![double-right](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTUzMy4yIDQ5Mi4zTDI3Ny45IDE2Ni4xYy0zLTMuOS03LjctNi4xLTEyLjYtNi4xSDE4OGMtNi43IDAtMTAuNCA3LjctNi4zIDEyLjlMNDQ3LjEgNTEyIDE4MS43IDg1MS4xQTcuOTggNy45OCAwIDAwMTg4IDg2NGg3Ny4zYzQuOSAwIDkuNi0yLjMgMTIuNi02LjFsMjU1LjMtMzI2LjFjOS4xLTExLjcgOS4xLTI3LjkgMC0zOS41em0zMDQgMEw1ODEuOSAxNjYuMWMtMy0zLjktNy43LTYuMS0xMi42LTYuMUg0OTJjLTYuNyAwLTEwLjQgNy43LTYuMyAxMi45TDc1MS4xIDUxMiA0ODUuNyA4NTEuMUE3Ljk4IDcuOTggMCAwMDQ5MiA4NjRoNzcuM2M0LjkgMCA5LjYtMi4zIDEyLjYtNi4xbDI1NS4zLTMyNi4xYzkuMS0xMS43IDkuMS0yNy45IDAtMzkuNXoiIC8+PC9zdmc+) */
/**![ellipsis](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE3NiA1MTFhNTYgNTYgMCAxMDExMiAwIDU2IDU2IDAgMTAtMTEyIDB6bTI4MCAwYTU2IDU2IDAgMTAxMTIgMCA1NiA1NiAwIDEwLTExMiAwem0yODAgMGE1NiA1NiAwIDEwMTEyIDAgNTYgNTYgMCAxMC0xMTIgMHoiIC8+PC9zdmc+) */
/**![eye](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTk0Mi4yIDQ4Ni4yQzg0Ny40IDI4Ni41IDcwNC4xIDE4NiA1MTIgMTg2Yy0xOTIuMiAwLTMzNS40IDEwMC41LTQzMC4yIDMwMC4zYTYwLjMgNjAuMyAwIDAwMCA1MS41QzE3Ni42IDczNy41IDMxOS45IDgzOCA1MTIgODM4YzE5Mi4yIDAgMzM1LjQtMTAwLjUgNDMwLjItMzAwLjMgNy43LTE2LjIgNy43LTM1IDAtNTEuNXpNNTEyIDc2NmMtMTYxLjMgMC0yNzkuNC04MS44LTM2Mi43LTI1NEMyMzIuNiAzMzkuOCAzNTAuNyAyNTggNTEyIDI1OGMxNjEuMyAwIDI3OS40IDgxLjggMzYyLjcgMjU0Qzc5MS41IDY4NC4yIDY3My40IDc2NiA1MTIgNzY2em0tNC00MzBjLTk3LjIgMC0xNzYgNzguOC0xNzYgMTc2czc4LjggMTc2IDE3NiAxNzYgMTc2LTc4LjggMTc2LTE3Ni03OC44LTE3Ni0xNzYtMTc2em0wIDI4OGMtNjEuOSAwLTExMi01MC4xLTExMi0xMTJzNTAuMS0xMTIgMTEyLTExMiAxMTIgNTAuMSAxMTIgMTEyLTUwLjEgMTEyLTExMiAxMTJ6IiAvPjwvc3ZnPg==) */
/**![file](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg1NC42IDI4OC42TDYzOS40IDczLjRjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzExLjNjMC04LjUtMy40LTE2LjctOS40LTIyLjd6TTc5MC4yIDMyNkg2MDJWMTM3LjhMNzkwLjIgMzI2em0xLjggNTYySDIzMlYxMzZoMzAydjIxNmE0MiA0MiAwIDAwNDIgNDJoMjE2djQ5NHoiIC8+PC9zdmc+) */
/**![filter](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTM0OSA4MzhjMCAxNy43IDE0LjIgMzIgMzEuOCAzMmgyNjIuNGMxNy42IDAgMzEuOC0xNC4zIDMxLjgtMzJWNjQySDM0OXYxOTZ6bTUzMS4xLTY4NEgxNDMuOWMtMjQuNSAwLTM5LjggMjYuNy0yNy41IDQ4bDIyMS4zIDM3NmgzNDguOGwyMjEuMy0zNzZjMTIuMS0yMS4zLTMuMi00OC0yNy43LTQ4eiIgLz48L3N2Zz4=) */
/**![folder-open](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkyOCA0NDRIODIwVjMzMC40YzAtMTcuNy0xNC4zLTMyLTMyLTMySDQ3M0wzNTUuNyAxODYuMmE4LjE1IDguMTUgMCAwMC01LjUtMi4ySDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY1OTJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjk4YzEzIDAgMjQuOC03LjkgMjkuNy0yMGwxMzQtMzMyYzEuNS0zLjggMi4zLTcuOSAyLjMtMTIgMC0xNy43LTE0LjMtMzItMzItMzJ6TTEzNiAyNTZoMTg4LjVsMTE5LjYgMTE0LjRINzQ4VjQ0NEgyMzhjLTEzIDAtMjQuOCA3LjktMjkuNyAyMEwxMzYgNjQzLjJWMjU2em02MzUuMyA1MTJIMTU5bDEwMy4zLTI1Nmg2MTIuNEw3NzEuMyA3Njh6IiAvPjwvc3ZnPg==) */
/**![folder](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg4MCAyOTguNEg1MjFMNDAzLjcgMTg2LjJhOC4xNSA4LjE1IDAgMDAtNS41LTIuMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjU5MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzMwLjRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTg0MCA3NjhIMTg0VjI1NmgxODguNWwxMTkuNiAxMTQuNEg4NDBWNzY4eiIgLz48L3N2Zz4=) */
/**![holder](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTMwMCAyNzYuNWE1NiA1NiAwIDEwNTYtOTcgNTYgNTYgMCAwMC01NiA5N3ptMCAyODRhNTYgNTYgMCAxMDU2LTk3IDU2IDU2IDAgMDAtNTYgOTd6TTY0MCAyMjhhNTYgNTYgMCAxMDExMiAwIDU2IDU2IDAgMDAtMTEyIDB6bTAgMjg0YTU2IDU2IDAgMTAxMTIgMCA1NiA1NiAwIDAwLTExMiAwek0zMDAgODQ0LjVhNTYgNTYgMCAxMDU2LTk3IDU2IDU2IDAgMDAtNTYgOTd6TTY0MCA3OTZhNTYgNTYgMCAxMDExMiAwIDU2IDU2IDAgMDAtMTEyIDB6IiAvPjwvc3ZnPg==) */
/**![left](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTcyNCAyMTguM1YxNDFjMC02LjctNy43LTEwLjQtMTIuOS02LjNMMjYwLjMgNDg2LjhhMzEuODYgMzEuODYgMCAwMDAgNTAuM2w0NTAuOCAzNTIuMWM1LjMgNC4xIDEyLjkuNCAxMi45LTYuM3YtNzcuM2MwLTQuOS0yLjMtOS42LTYuMS0xMi42bC0zNjAtMjgxIDM2MC0yODEuMWMzLjgtMyA2LjEtNy43IDYuMS0xMi42eiIgLz48L3N2Zz4=) */
/**![minus-square](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTMyOCA1NDRoMzY4YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04SDMyOGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOHoiIC8+PHBhdGggZD0iTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6IiAvPjwvc3ZnPg==) */
/**![plus-square](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTMyOCA1NDRoMTUydjE1MmMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04VjU0NGgxNTJjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThINTQ0VjMyOGMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2MTUySDMyOGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOHoiIC8+PHBhdGggZD0iTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6IiAvPjwvc3ZnPg==) */
/**![right](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTc2NS43IDQ4Ni44TDMxNC45IDEzNC43QTcuOTcgNy45NyAwIDAwMzAyIDE0MXY3Ny4zYzAgNC45IDIuMyA5LjYgNi4xIDEyLjZsMzYwIDI4MS4xLTM2MCAyODEuMWMtMy45IDMtNi4xIDcuNy02LjEgMTIuNlY4ODNjMCA2LjcgNy43IDEwLjQgMTIuOSA2LjNsNDUwLjgtMzUyLjFhMzEuOTYgMzEuOTYgMCAwMDAtNTAuNHoiIC8+PC9zdmc+) */

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */

View File

@ -0,0 +1,44 @@
{
"name": "micro-app",
"version": "2.0.0",
"description": "建教帮微应用模板",
"author": "JJB",
"license": "MIT",
"main": "index.js",
"scripts": {
"serve": "node node_modules/@cqsjjb/scripts/webpack.dev.server.js",
"build": "node node_modules/@cqsjjb/scripts/webpack.build.js",
"push": "jjb-cmd push java production",
"clean-cache": "rimraf node_modules/.cache/webpack",
"serve:development": "cross-env NODE_ENV=development npm run serve",
"serve:production": "cross-env NODE_ENV=production npm run serve",
"build:development": "cross-env NODE_ENV=development npm run build",
"build:production": "cross-env NODE_ENV=production npm run build",
"code-optimization": "node node_modules/@cqsjjb/scripts/code-optimization.js",
"lint": "eslint --ext .js,.jsx,.tsx --fix src"
},
"dependencies": {
"@ant-design/icons": "latest",
"@cqsjjb/jjb-common-decorator": "latest",
"@cqsjjb/jjb-common-lib": "latest",
"@cqsjjb/jjb-dva-runtime": "latest",
"@cqsjjb/jjb-react-admin-component": "latest",
"ahooks": "^3.9.5",
"antd": "latest",
"dayjs": "^1.11.7",
"react": "^18.2.0",
"react-dom": "^18.2.0"
},
"devDependencies": {
"@antfu/eslint-config": "^5.4.1",
"@babel/plugin-proposal-decorators": "^7.19.3",
"@cqsjjb/scripts": "latest",
"@eslint-react/eslint-plugin": "^2.2.2",
"cross-env": "^7.0.3",
"eslint": "^9.37.0",
"eslint-plugin-format": "^1.0.2",
"eslint-plugin-react-hooks": "^7.0.0",
"eslint-plugin-react-refresh": "^0.4.23",
"typescript": "^5.9.3"
}
}

View File

@ -63,12 +63,5 @@ public class ClosedAreaCarApplyController {
closedAreaCarApplyService.remove(id); closedAreaCarApplyService.remove(id);
return SingleResponse.buildSuccess(); return SingleResponse.buildSuccess();
} }
@ApiOperation("修改")
@PutMapping("/edit")
public SingleResponse edit(@Validated @RequestBody ClosedAreaCarApplyUpdateCmd closedAreaCarApplyUpdateCmd) {
closedAreaCarApplyService.edit(closedAreaCarApplyUpdateCmd);
return SingleResponse.buildSuccess();
}
} }

View File

@ -24,6 +24,13 @@ public class ClosedAreaCarApplyPageQry extends PageQuery {
* - `le`: * - `le`:
* - `ne`: SQL!= * - `ne`: SQL!=
*/ */
private Integer likePersonBelongType; @ApiModelProperty(value = "车牌号", name = "licenceLo", required = true)
private String licenceLo;
@ApiModelProperty(value = "1申请中2已审批", name = "applyPersonUserName", required = true)
private String applyPersonUserName;
@ApiModelProperty(value = "1查本单位申请中本人待审批的数据传入这个2查已审批本单位的申请记录的数据传入这个", name = "processOrRecord", required = true)
private Integer processOrRecord;
@ApiModelProperty(value = "1股份2分公司3相关方4临时人员", name = "personBelongType", required = true)
private Integer personBelongType;
} }

View File

@ -6,6 +6,8 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.sql.Date; import java.sql.Date;
import java.util.HashMap;
import java.util.List;
/** /**
@ -139,5 +141,10 @@ public class ClosedAreaCarApplyCO extends ClientObject {
@ApiModelProperty(value = "驳回原因") @ApiModelProperty(value = "驳回原因")
private String refusalReason; private String refusalReason;
@ApiModelProperty(value = "当前用户是否能审核。1能审核2不能审核", name = "currentUserCanAudit")
private Integer currentUserCanAudit;
@ApiModelProperty(value = "人员进出记录", name = "personInOutRecord")
private List<HashMap> personInOutRecord;
} }

View File

@ -117,9 +117,7 @@ public class ClosedAreaPersonApplyCO extends ClientObject {
//驳回原因 //驳回原因
@ApiModelProperty(value = "驳回原因") @ApiModelProperty(value = "驳回原因")
private String refusalReason; private String refusalReason;
//删除标识true false
@ApiModelProperty(value = "删除标识true false")
private String deleteEnum;
@ApiModelProperty(value = "当前用户是否能审核。1能审核2不能审核", name = "currentUserCanAudit") @ApiModelProperty(value = "当前用户是否能审核。1能审核2不能审核", name = "currentUserCanAudit")
private Integer currentUserCanAudit; private Integer currentUserCanAudit;

View File

@ -1,9 +1,13 @@
package com.zcloud.primeport.persistence.mapper; package com.zcloud.primeport.persistence.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zcloud.primeport.persistence.dataobject.ClosedAreaCarApplyDO; import com.zcloud.primeport.persistence.dataobject.ClosedAreaCarApplyDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
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 ClosedAreaCarApplyMapper extends BaseMapper<ClosedAreaCarApplyDO> { public interface ClosedAreaCarApplyMapper extends BaseMapper<ClosedAreaCarApplyDO> {
IPage<ClosedAreaCarApplyDO> listPage(Page<Map<String, Object>> page, Map<String, Object> params, String menuPerms);
} }

View File

@ -1,13 +1,12 @@
package com.zcloud.primeport.persistence.repository.impl; package com.zcloud.primeport.persistence.repository.impl;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zcloud.primeport.domain.enums.MenuEnum;
import com.zcloud.primeport.persistence.dataobject.ClosedAreaCarApplyDO; import com.zcloud.primeport.persistence.dataobject.ClosedAreaCarApplyDO;
import com.zcloud.primeport.persistence.mapper.ClosedAreaCarApplyMapper; import com.zcloud.primeport.persistence.mapper.ClosedAreaCarApplyMapper;
import com.zcloud.primeport.persistence.repository.ClosedAreaCarApplyRepository; import com.zcloud.primeport.persistence.repository.ClosedAreaCarApplyRepository;
import com.alibaba.cola.dto.PageResponse; import com.alibaba.cola.dto.PageResponse;
import com.jjb.saas.framework.repository.common.PageHelper; import com.jjb.saas.framework.repository.common.PageHelper;
import com.zcloud.gbscommon.utils.PageQueryHelper;
import com.zcloud.gbscommon.utils.Query;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl; import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -28,11 +27,13 @@ public class ClosedAreaCarApplyRepositoryImpl extends BaseRepositoryImpl<ClosedA
@Override @Override
public PageResponse<ClosedAreaCarApplyDO> listPage(Map<String, Object> params) { public PageResponse<ClosedAreaCarApplyDO> listPage(Map<String, Object> params) {
IPage<ClosedAreaCarApplyDO> iPage = new Query<ClosedAreaCarApplyDO>().getPage(params); Page<Map<String, Object>> page = new Page<>(Integer.parseInt(params.get("pageIndex").toString()),
QueryWrapper<ClosedAreaCarApplyDO> queryWrapper = new QueryWrapper<>(); Integer.parseInt(params.get("pageSize").toString()));
queryWrapper = PageQueryHelper.createPageQueryWrapper(queryWrapper, params); String menuPerms = "";
queryWrapper.orderByDesc("create_time"); if (!org.springframework.util.ObjectUtils.isEmpty(params.get("menuPath"))) {
IPage<ClosedAreaCarApplyDO> result = closedAreaCarApplyMapper.selectPage(iPage, queryWrapper); menuPerms = MenuEnum.getMenuKeyByPath(params.get("menuPath").toString());
}
IPage<ClosedAreaCarApplyDO> result = closedAreaCarApplyMapper.listPage(page, params, menuPerms);
return PageHelper.pageToResponse(result, result.getRecords()); return PageHelper.pageToResponse(result, result.getRecords());
} }
} }

View File

@ -4,5 +4,24 @@
<mapper namespace="com.zcloud.primeport.persistence.mapper.ClosedAreaCarApplyMapper"> <mapper namespace="com.zcloud.primeport.persistence.mapper.ClosedAreaCarApplyMapper">
<select id="listPage" resultType="com.zcloud.primeport.persistence.dataobject.ClosedAreaCarApplyDO">
select * from closed_area_car_apply c
where c.delete_enum = 'FALSE'
<if test="params.processOrRecord != null">
<if test="params.processOrRecord == 1">
AND c.audit_flag = 1
</if>
<if test="params.processOrRecord == 2">
AND c.audit_flag != 1
</if>
</if>
<if test="params.applyPersonUserName != null and params.applyPersonUserName != ''">
AND c.apply_person_user_name like CONCAT('%', #{params.applyPersonUserName}, '%')
</if>
<if test="params.licenceNo != null and params.licenceNo != ''">
AND c.licence_no like CONCAT('%', #{params.licenceNo}, '%')
</if>
</select>
</mapper> </mapper>

File diff suppressed because it is too large Load Diff