From 44dbcb48a6374e5efa57d8e571923be92b944c46 Mon Sep 17 00:00:00 2001 From: gaoxq <376340421@qq.com> Date: Sat, 29 Nov 2025 00:08:49 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jeesite/modules/biz/entity/BizCities.java | 11 +- .../modules/biz/entity/BizCompany.java | 2 +- .../modules/biz/entity/BizListItem.java | 2 +- .../modules/biz/entity/BizMunicipalities.java | 20 +- .../modules/biz/entity/BizProjectReport.java | 174 ++++++++------ .../biz/entity/BizProjectRequirements.java | 2 +- .../modules/biz/entity/BizProvince.java | 122 +++++----- .../modules/biz/entity/BizQuickLogin.java | 2 +- .../modules/biz/entity/BizResumeEmployee.java | 2 +- .../modules/biz/web/BizCitiesController.java | 216 +++++++++--------- .../biz/web/BizProvinceController.java | 216 +++++++++--------- web-vue/packages/biz/api/biz/cities.ts | 3 + web-vue/packages/biz/api/biz/province.ts | 3 + .../packages/biz/views/biz/cities/form.vue | 23 +- .../packages/biz/views/biz/cities/list.vue | 55 +++-- .../biz/views/biz/municipalities/form.vue | 89 +++++--- .../biz/views/biz/municipalities/list.vue | 105 +++++---- .../biz/views/biz/municipalities/select.ts | 205 ----------------- .../biz/views/biz/projectInfo/select.ts | 57 +---- .../biz/views/biz/projectReport/form.vue | 109 ++++----- .../biz/views/biz/projectReport/list.vue | 107 +++++---- .../biz/views/biz/projectReport/select.ts | 198 ---------------- .../packages/biz/views/biz/province/form.vue | 6 +- .../packages/biz/views/biz/province/list.vue | 31 ++- .../src/selectType/bizProjectSelect.ts | 132 +++++++++++ .../src/selectType/bizProvSelect.ts} | 47 +--- 26 files changed, 859 insertions(+), 1080 deletions(-) delete mode 100644 web-vue/packages/biz/views/biz/municipalities/select.ts delete mode 100644 web-vue/packages/biz/views/biz/projectReport/select.ts create mode 100644 web-vue/packages/core/components/ListSelect/src/selectType/bizProjectSelect.ts rename web-vue/packages/{biz/views/biz/province/select.ts => core/components/ListSelect/src/selectType/bizProvSelect.ts} (71%) diff --git a/web-api/src/main/java/com/jeesite/modules/biz/entity/BizCities.java b/web-api/src/main/java/com/jeesite/modules/biz/entity/BizCities.java index 2555f57e..2523ac88 100644 --- a/web-api/src/main/java/com/jeesite/modules/biz/entity/BizCities.java +++ b/web-api/src/main/java/com/jeesite/modules/biz/entity/BizCities.java @@ -42,6 +42,12 @@ import java.io.Serial; @Column(name = "f_flow_id", attrName = "fflowId", label = "流程id", isUpdate = false, isQuery = false), @Column(name = "f_flow_task_id", attrName = "fflowTaskId", label = "流程任务主键", isUpdate = false, isQuery = false), @Column(name = "f_flow_state", attrName = "fflowState", label = "流程任务状态", isUpdate = false, isQuery = false, isUpdateForce = true), +}, joinTable = { + @JoinTable(type = Type.LEFT_JOIN, entity = BizProvince.class, attrName = "this", alias = "b", + on = "a.province_code = b.province_code", + columns = { + @Column(name = "province_name", attrName = "provinceName", label = "省份名称"), + }), }, orderBy = "a.id DESC" ) @Data @@ -62,16 +68,19 @@ public class BizCities extends DataEntity implements Serializable { private String fflowTaskId; // 流程任务主键 private Integer fflowState; // 流程任务状态 + private String provinceName; + @ExcelFields({ @ExcelField(title = "id", attrName = "id", align = Align.CENTER, sort = 10), @ExcelField(title = "记录时间", attrName = "createTime", align = Align.CENTER, sort = 20, dataFormat = "yyyy-MM-dd hh:mm"), @ExcelField(title = "省份编码", attrName = "provinceCode", align = Align.CENTER, sort = 30), + @ExcelField(title = "省份名称", attrName = "provinceName", align = Align.CENTER, sort = 30), @ExcelField(title = "市区编码", attrName = "cityCode", align = Align.CENTER, sort = 40), @ExcelField(title = "市区名称", attrName = "cityName", align = Align.CENTER, sort = 50), @ExcelField(title = "市区区号", attrName = "areaCode", align = Align.CENTER, sort = 60), @ExcelField(title = "市区级别", attrName = "areaType", align = Align.CENTER, sort = 70), @ExcelField(title = "更新时间", attrName = "updateTime", align = Align.CENTER, sort = 80, dataFormat = "yyyy-MM-dd hh:mm"), - @ExcelField(title = "数据状态", attrName = "dataStatus", align = Align.CENTER, sort = 90), + @ExcelField(title = "数据状态", attrName = "dataStatus", dictType = "ustatus", align = Align.CENTER, sort = 90), }) public BizCities() { this(null); diff --git a/web-api/src/main/java/com/jeesite/modules/biz/entity/BizCompany.java b/web-api/src/main/java/com/jeesite/modules/biz/entity/BizCompany.java index a39e26bf..45d2e0e7 100644 --- a/web-api/src/main/java/com/jeesite/modules/biz/entity/BizCompany.java +++ b/web-api/src/main/java/com/jeesite/modules/biz/entity/BizCompany.java @@ -43,7 +43,7 @@ import java.io.Serial; @Column(name = "f_flow_id", attrName = "fflowId", label = "流程id", isUpdate = false, isQuery = false), @Column(name = "f_flow_task_id", attrName = "fflowTaskId", label = "流程任务主键", isUpdate = false, isQuery = false), @Column(name = "f_flow_state", attrName = "fflowState", label = "流程任务状态", isUpdate = false, isQuery = false, isUpdateForce = true), -}, orderBy = "a.company_id DESC" +}, orderBy = "a.create_time DESC" ) @Data public class BizCompany extends DataEntity implements Serializable { diff --git a/web-api/src/main/java/com/jeesite/modules/biz/entity/BizListItem.java b/web-api/src/main/java/com/jeesite/modules/biz/entity/BizListItem.java index f1611f8c..b11ca930 100644 --- a/web-api/src/main/java/com/jeesite/modules/biz/entity/BizListItem.java +++ b/web-api/src/main/java/com/jeesite/modules/biz/entity/BizListItem.java @@ -45,7 +45,7 @@ import java.io.Serial; @Column(name="f_flow_id", attrName="fflowId", label="流程id", isUpdate=false, isQuery=false), @Column(name="f_flow_task_id", attrName="fflowTaskId", label="流程任务主键", isUpdate=false, isQuery=false), @Column(name="f_flow_state", attrName="fflowState", label="流程任务状态", isUpdate=false, isQuery=false, isUpdateForce=true), - }, orderBy="a.id DESC" + }, orderBy="a.create_time DESC" ) @Data public class BizListItem extends DataEntity implements Serializable { diff --git a/web-api/src/main/java/com/jeesite/modules/biz/entity/BizMunicipalities.java b/web-api/src/main/java/com/jeesite/modules/biz/entity/BizMunicipalities.java index 8ff9605b..a0beda5a 100644 --- a/web-api/src/main/java/com/jeesite/modules/biz/entity/BizMunicipalities.java +++ b/web-api/src/main/java/com/jeesite/modules/biz/entity/BizMunicipalities.java @@ -45,7 +45,18 @@ import java.io.Serial; @Column(name = "f_flow_id", attrName = "fflowId", label = "流程id", isUpdate = false, isQuery = false), @Column(name = "f_flow_task_id", attrName = "fflowTaskId", label = "流程任务主键", isUpdate = false, isQuery = false), @Column(name = "f_flow_state", attrName = "fflowState", label = "流程任务状态", isUpdate = false, isQuery = false, isUpdateForce = true), -}, orderBy = "a.id DESC" +}, joinTable = { + @JoinTable(type = Type.LEFT_JOIN, entity = BizProvince.class, attrName = "this", alias = "b", + on = "a.province_code = b.province_code", + columns = { + @Column(name = "province_name", attrName = "provinceName", label = "省份名称"), + }), + @JoinTable(type = Type.LEFT_JOIN, entity = BizCities.class, attrName = "this", alias = "c", + on = "a.province_code = c.province_code AND a.city_code = c.city_code", + columns = { + @Column(name = "city_name", attrName = "cityName", label = "市区名称"), + }), +}, orderBy = "a.create_time DESC" ) @Data public class BizMunicipalities extends DataEntity implements Serializable { @@ -68,12 +79,17 @@ public class BizMunicipalities extends DataEntity implements private String fflowTaskId; // 流程任务主键 private Integer fflowState; // 流程任务状态 + private String provinceName; + private String cityName; + @ExcelFields({ - @ExcelField(title = "id", attrName = "id", align = Align.CENTER, sort = 10), + @ExcelField(title = "唯一标识", attrName = "id", align = Align.CENTER, sort = 10), @ExcelField(title = "记录时间", attrName = "createTime", align = Align.CENTER, sort = 20, dataFormat = "yyyy-MM-dd hh:mm"), @ExcelField(title = "县区名称", attrName = "countyName", align = Align.CENTER, sort = 30), @ExcelField(title = "省份编码", attrName = "provinceCode", align = Align.CENTER, sort = 40), + @ExcelField(title = "省份名称", attrName = "provinceName", align = Align.CENTER, sort = 40), @ExcelField(title = "市区编码", attrName = "cityCode", align = Align.CENTER, sort = 50), + @ExcelField(title = "市区名称", attrName = "cityName", align = Align.CENTER, sort = 50), @ExcelField(title = "县区编码", attrName = "countyCode", align = Align.CENTER, sort = 60), @ExcelField(title = "街道名称", attrName = "townName", align = Align.CENTER, sort = 70), @ExcelField(title = "街道编号", attrName = "townCode", align = Align.CENTER, sort = 80), diff --git a/web-api/src/main/java/com/jeesite/modules/biz/entity/BizProjectReport.java b/web-api/src/main/java/com/jeesite/modules/biz/entity/BizProjectReport.java index 5fa522e0..cbe30d30 100644 --- a/web-api/src/main/java/com/jeesite/modules/biz/entity/BizProjectReport.java +++ b/web-api/src/main/java/com/jeesite/modules/biz/entity/BizProjectReport.java @@ -2,6 +2,7 @@ package com.jeesite.modules.biz.entity; import java.io.Serializable; import java.util.Date; + import com.jeesite.common.mybatis.annotation.JoinTable; import com.jeesite.common.mybatis.annotation.JoinTable.Type; import com.fasterxml.jackson.annotation.JsonFormat; @@ -22,90 +23,111 @@ import java.io.Serial; /** * 汇报信息Entity + * * @author gaoxq * @version 2025-11-27 */ @EqualsAndHashCode(callSuper = true) -@Table(name="biz_project_report", alias="a", label="汇报信息信息", columns={ - @Column(name="create_time", attrName="createTime", label="记录时间", isUpdate=false, isUpdateForce=true), - @Column(name="report_id", attrName="reportId", label="汇报标识", isPK=true), - @Column(name="report_cycle", attrName="reportCycle", label="汇报周期"), - @Column(name="work_title", attrName="workTitle", label="汇报主题", queryType=QueryType.LIKE), - @Column(name="work_content", attrName="workContent", label="本期内容", isQuery=false), - @Column(name="progress_percent", attrName="progressPercent", label="项目进度", isQuery=false), - @Column(name="problem_desc", attrName="problemDesc", label="存在问题", isQuery=false), - @Column(name="solution_plan", attrName="solutionPlan", label="解决方案", isQuery=false), - @Column(name="next_plan", attrName="nextPlan", label="下期计划", isQuery=false), - @Column(name="report_time", attrName="reportTime", label="提交时间", isQuery=false, isUpdateForce=true), - @Column(name="approval_status", attrName="approvalStatus", label="汇报状态"), - @Column(name="project_id", attrName="projectId", label="项目编号"), - @Column(name="employee_id", attrName="employeeId", label="人员编号"), - @Column(name="f_tenant_id", attrName="ftenantId", label="租户id", isUpdate=false, isQuery=false), - @Column(name="f_flow_id", attrName="fflowId", label="流程id", isUpdate=false, isQuery=false), - @Column(name="f_flow_task_id", attrName="fflowTaskId", label="流程任务主键", isUpdate=false, isQuery=false), - @Column(name="f_flow_state", attrName="fflowState", label="流程任务状态", isUpdate=false, isQuery=false, isUpdateForce=true), - }, orderBy="a.report_id DESC" +@Table(name = "biz_project_report", alias = "a", label = "汇报信息信息", columns = { + @Column(name = "create_time", attrName = "createTime", label = "记录时间", isUpdate = false, isUpdateForce = true), + @Column(name = "report_id", attrName = "reportId", label = "汇报标识", isPK = true), + @Column(name = "report_cycle", attrName = "reportCycle", label = "汇报周期"), + @Column(name = "work_title", attrName = "workTitle", label = "汇报主题", queryType = QueryType.LIKE), + @Column(name = "work_content", attrName = "workContent", label = "本期内容", isQuery = false), + @Column(name = "progress_percent", attrName = "progressPercent", label = "项目进度", isQuery = false), + @Column(name = "problem_desc", attrName = "problemDesc", label = "存在问题", isQuery = false), + @Column(name = "solution_plan", attrName = "solutionPlan", label = "解决方案", isQuery = false), + @Column(name = "next_plan", attrName = "nextPlan", label = "下期计划", isQuery = false), + @Column(name = "report_time", attrName = "reportTime", label = "提交时间", isQuery = false, isUpdateForce = true), + @Column(name = "approval_status", attrName = "approvalStatus", label = "汇报状态"), + @Column(name = "project_id", attrName = "projectId", label = "项目编号"), + @Column(name = "employee_id", attrName = "employeeId", label = "人员编号"), + @Column(name = "f_tenant_id", attrName = "ftenantId", label = "租户id", isUpdate = false, isQuery = false), + @Column(name = "f_flow_id", attrName = "fflowId", label = "流程id", isUpdate = false, isQuery = false), + @Column(name = "f_flow_task_id", attrName = "fflowTaskId", label = "流程任务主键", isUpdate = false, isQuery = false), + @Column(name = "f_flow_state", attrName = "fflowState", label = "流程任务状态", isUpdate = false, isQuery = false, isUpdateForce = true), +}, joinTable = { + @JoinTable(type = Type.LEFT_JOIN, entity = BizResumeEmployee.class, attrName = "this", alias = "b", + on = "a.employee_id = b.employee_id", + columns = { + @Column(name = "employee_name", attrName = "employeeName", label = "员工姓名"), + @Column(name = "employee_code", attrName = "employeeCode", label = "员工编号"), + }), + @JoinTable(type = Type.LEFT_JOIN, entity = BizProjectInfo.class, attrName = "this", alias = "c", + on = "a.project_id = c.project_id", + columns = { + @Column(name = "project_code", attrName = "projectCode", label = "项目编码"), + @Column(name = "project_name", attrName = "projectName", label = "项目名称"), + }), +}, orderBy = "a.create_time DESC" ) @Data public class BizProjectReport extends DataEntity implements Serializable { - - @Serial - private static final long serialVersionUID = 1L; - private Date createTime; // 记录时间 - private String reportId; // 汇报标识 - private String reportCycle; // 汇报周期 - private String workTitle; // 汇报主题 - private String workContent; // 本期内容 - private String progressPercent; // 项目进度 - private String problemDesc; // 存在问题 - private String solutionPlan; // 解决方案 - private String nextPlan; // 下期计划 - private Date reportTime; // 提交时间 - private String approvalStatus; // 汇报状态 - private String projectId; // 项目编号 - private String employeeId; // 人员编号 - private String ftenantId; // 租户id - private String fflowId; // 流程id - private String fflowTaskId; // 流程任务主键 - private Integer fflowState; // 流程任务状态 - @ExcelFields({ - @ExcelField(title="记录时间", attrName="createTime", align=Align.CENTER, sort=10, dataFormat="yyyy-MM-dd hh:mm"), - @ExcelField(title="汇报标识", attrName="reportId", align=Align.CENTER, sort=20), - @ExcelField(title="汇报周期", attrName="reportCycle", align=Align.CENTER, sort=30), - @ExcelField(title="汇报主题", attrName="workTitle", align=Align.CENTER, sort=40), - @ExcelField(title="本期内容", attrName="workContent", align=Align.CENTER, sort=50), - @ExcelField(title="项目进度", attrName="progressPercent", align=Align.CENTER, sort=60), - @ExcelField(title="存在问题", attrName="problemDesc", align=Align.CENTER, sort=70), - @ExcelField(title="解决方案", attrName="solutionPlan", align=Align.CENTER, sort=80), - @ExcelField(title="下期计划", attrName="nextPlan", align=Align.CENTER, sort=90), - @ExcelField(title="提交时间", attrName="reportTime", align=Align.CENTER, sort=100, dataFormat="yyyy-MM-dd hh:mm"), - @ExcelField(title="汇报状态", attrName="approvalStatus", align=Align.CENTER, sort=110), - @ExcelField(title="项目编号", attrName="projectId", align=Align.CENTER, sort=120), - @ExcelField(title="人员编号", attrName="employeeId", align=Align.CENTER, sort=130), - }) - public BizProjectReport() { - this(null); - } - - public BizProjectReport(String id){ - super(id); - } - - public Date getCreateTime_gte() { - return sqlMap.getWhere().getValue("create_time", QueryType.GTE); - } + @Serial + private static final long serialVersionUID = 1L; + private Date createTime; // 记录时间 + private String reportId; // 汇报标识 + private String reportCycle; // 汇报周期 + private String workTitle; // 汇报主题 + private String workContent; // 本期内容 + private String progressPercent; // 项目进度 + private String problemDesc; // 存在问题 + private String solutionPlan; // 解决方案 + private String nextPlan; // 下期计划 + private Date reportTime; // 提交时间 + private String approvalStatus; // 汇报状态 + private String projectId; // 项目编号 + private String employeeId; // 人员编号 + private String ftenantId; // 租户id + private String fflowId; // 流程id + private String fflowTaskId; // 流程任务主键 + private Integer fflowState; // 流程任务状态 - public void setCreateTime_gte(Date createTime) { - sqlMap.getWhere().and("create_time", QueryType.GTE, createTime); - } - - public Date getCreateTime_lte() { - return sqlMap.getWhere().getValue("create_time", QueryType.LTE); - } + private String employeeName; + private String employeeCode; + private String projectCode; + private String projectName; + + + @ExcelFields({ + @ExcelField(title = "记录时间", attrName = "createTime", align = Align.CENTER, sort = 10, dataFormat = "yyyy-MM-dd hh:mm"), + @ExcelField(title = "汇报标识", attrName = "reportId", align = Align.CENTER, sort = 20), + @ExcelField(title = "汇报周期", attrName = "reportCycle", align = Align.CENTER, sort = 30), + @ExcelField(title = "汇报主题", attrName = "workTitle", align = Align.CENTER, sort = 40), + @ExcelField(title = "本期内容", attrName = "workContent", align = Align.CENTER, sort = 50), + @ExcelField(title = "项目进度", attrName = "progressPercent", align = Align.CENTER, sort = 60), + @ExcelField(title = "存在问题", attrName = "problemDesc", align = Align.CENTER, sort = 70), + @ExcelField(title = "解决方案", attrName = "solutionPlan", align = Align.CENTER, sort = 80), + @ExcelField(title = "下期计划", attrName = "nextPlan", align = Align.CENTER, sort = 90), + @ExcelField(title = "提交时间", attrName = "reportTime", align = Align.CENTER, sort = 100, dataFormat = "yyyy-MM-dd hh:mm"), + @ExcelField(title = "汇报状态", attrName = "approvalStatus", align = Align.CENTER, sort = 110), + @ExcelField(title = "项目编号", attrName = "projectCode", align = Align.CENTER, sort = 120), + @ExcelField(title = "项目名称", attrName = "projectName", align = Align.CENTER, sort = 120), + @ExcelField(title = "人员名称", attrName = "employeeName", align = Align.CENTER, sort = 130), + }) + public BizProjectReport() { + this(null); + } + + public BizProjectReport(String id) { + super(id); + } + + public Date getCreateTime_gte() { + return sqlMap.getWhere().getValue("create_time", QueryType.GTE); + } + + public void setCreateTime_gte(Date createTime) { + sqlMap.getWhere().and("create_time", QueryType.GTE, createTime); + } + + public Date getCreateTime_lte() { + return sqlMap.getWhere().getValue("create_time", QueryType.LTE); + } + + public void setCreateTime_lte(Date createTime) { + sqlMap.getWhere().and("create_time", QueryType.LTE, createTime); + } - public void setCreateTime_lte(Date createTime) { - sqlMap.getWhere().and("create_time", QueryType.LTE, createTime); - } - } \ No newline at end of file diff --git a/web-api/src/main/java/com/jeesite/modules/biz/entity/BizProjectRequirements.java b/web-api/src/main/java/com/jeesite/modules/biz/entity/BizProjectRequirements.java index 40c70465..4bafd85e 100644 --- a/web-api/src/main/java/com/jeesite/modules/biz/entity/BizProjectRequirements.java +++ b/web-api/src/main/java/com/jeesite/modules/biz/entity/BizProjectRequirements.java @@ -45,7 +45,7 @@ import java.io.Serial; @Column(name="f_flow_id", attrName="fflowId", label="流程id", isUpdate=false, isQuery=false), @Column(name="f_flow_task_id", attrName="fflowTaskId", label="流程任务主键", isUpdate=false, isQuery=false), @Column(name="f_flow_state", attrName="fflowState", label="流程任务状态", isUpdate=false, isQuery=false, isUpdateForce=true), - }, orderBy="a.requirement_id DESC" + }, orderBy="a.create_time DESC" ) @Data public class BizProjectRequirements extends DataEntity implements Serializable { diff --git a/web-api/src/main/java/com/jeesite/modules/biz/entity/BizProvince.java b/web-api/src/main/java/com/jeesite/modules/biz/entity/BizProvince.java index 9cba505b..caf35259 100644 --- a/web-api/src/main/java/com/jeesite/modules/biz/entity/BizProvince.java +++ b/web-api/src/main/java/com/jeesite/modules/biz/entity/BizProvince.java @@ -2,6 +2,7 @@ package com.jeesite.modules.biz.entity; import java.io.Serializable; import java.util.Date; + import com.jeesite.common.mybatis.annotation.JoinTable; import com.jeesite.common.mybatis.annotation.JoinTable.Type; import com.fasterxml.jackson.annotation.JsonFormat; @@ -22,73 +23,74 @@ import java.io.Serial; /** * 省份信息Entity + * * @author gaoxq * @version 2025-11-27 */ -@Table(name="biz_province", alias="a", label="省份信息信息", columns={ - @Column(name="id", attrName="id", label="id", isPK=true), - @Column(name="create_time", attrName="createTime", label="记录时间", isUpdate=false, isUpdateForce=true), - @Column(name="province_name", attrName="provinceName", label="省份名称", queryType=QueryType.LIKE), - @Column(name="province_code", attrName="provinceCode", label="省份编码"), - @Column(name="url_addr", attrName="urlAddr", label="请求地址", queryType=QueryType.LIKE), - @Column(name="sorting", attrName="sorting", label="省份序号", isQuery=false), - @Column(name="req_code", attrName="reqCode", label="请求状态"), - @Column(name="data_status", attrName="dataStatus", label="数据状态"), - @Column(name="f_tenant_id", attrName="ftenantId", label="租户id", isUpdate=false, isQuery=false), - @Column(name="f_flow_id", attrName="fflowId", label="流程id", isUpdate=false, isQuery=false), - @Column(name="f_flow_task_id", attrName="fflowTaskId", label="流程任务主键", isUpdate=false, isQuery=false), - @Column(name="f_flow_state", attrName="fflowState", label="流程任务状态", isUpdate=false, isQuery=false, isUpdateForce=true), - }, orderBy="a.id DESC" +@Table(name = "biz_province", alias = "a", label = "省份信息信息", columns = { + @Column(name = "id", attrName = "id", label = "id", isPK = true), + @Column(name = "create_time", attrName = "createTime", label = "记录时间", isUpdate = false, isUpdateForce = true), + @Column(name = "province_name", attrName = "provinceName", label = "省份名称", queryType = QueryType.LIKE), + @Column(name = "province_code", attrName = "provinceCode", label = "省份编码"), + @Column(name = "url_addr", attrName = "urlAddr", label = "请求地址", queryType = QueryType.LIKE), + @Column(name = "sorting", attrName = "sorting", label = "省份序号", isQuery = false), + @Column(name = "req_code", attrName = "reqCode", label = "请求状态"), + @Column(name = "data_status", attrName = "dataStatus", label = "数据状态"), + @Column(name = "f_tenant_id", attrName = "ftenantId", label = "租户id", isUpdate = false, isQuery = false), + @Column(name = "f_flow_id", attrName = "fflowId", label = "流程id", isUpdate = false, isQuery = false), + @Column(name = "f_flow_task_id", attrName = "fflowTaskId", label = "流程任务主键", isUpdate = false, isQuery = false), + @Column(name = "f_flow_state", attrName = "fflowState", label = "流程任务状态", isUpdate = false, isQuery = false, isUpdateForce = true), +}, orderBy = "a.create_time DESC" ) @Data public class BizProvince extends DataEntity implements Serializable { - - @Serial - private static final long serialVersionUID = 1L; - private Date createTime; // 记录时间 - private String provinceName; // 省份名称 - private String provinceCode; // 省份编码 - private String urlAddr; // 请求地址 - private Integer sorting; // 省份序号 - private String reqCode; // 请求状态 - private String dataStatus; // 数据状态 - private String ftenantId; // 租户id - private String fflowId; // 流程id - private String fflowTaskId; // 流程任务主键 - private Integer fflowState; // 流程任务状态 - @ExcelFields({ - @ExcelField(title="id", attrName="id", align=Align.CENTER, sort=10), - @ExcelField(title="记录时间", attrName="createTime", align=Align.CENTER, sort=20, dataFormat="yyyy-MM-dd hh:mm"), - @ExcelField(title="省份名称", attrName="provinceName", align=Align.CENTER, sort=30), - @ExcelField(title="省份编码", attrName="provinceCode", align=Align.CENTER, sort=40), - @ExcelField(title="请求地址", attrName="urlAddr", align=Align.CENTER, sort=50), - @ExcelField(title="省份序号", attrName="sorting", align=Align.CENTER, sort=60), - @ExcelField(title="请求状态", attrName="reqCode", align=Align.CENTER, sort=70), - @ExcelField(title="数据状态", attrName="dataStatus", align=Align.CENTER, sort=80), - }) - public BizProvince() { - this(null); - } - - public BizProvince(String id){ - super(id); - } - - public Date getCreateTime_gte() { - return sqlMap.getWhere().getValue("create_time", QueryType.GTE); - } + @Serial + private static final long serialVersionUID = 1L; + private Date createTime; // 记录时间 + private String provinceName; // 省份名称 + private String provinceCode; // 省份编码 + private String urlAddr; // 请求地址 + private Integer sorting; // 省份序号 + private String reqCode; // 请求状态 + private String dataStatus; // 数据状态 + private String ftenantId; // 租户id + private String fflowId; // 流程id + private String fflowTaskId; // 流程任务主键 + private Integer fflowState; // 流程任务状态 - public void setCreateTime_gte(Date createTime) { - sqlMap.getWhere().and("create_time", QueryType.GTE, createTime); - } - - public Date getCreateTime_lte() { - return sqlMap.getWhere().getValue("create_time", QueryType.LTE); - } + @ExcelFields({ + @ExcelField(title = "id", attrName = "id", align = Align.CENTER, sort = 10), + @ExcelField(title = "记录时间", attrName = "createTime", align = Align.CENTER, sort = 20, dataFormat = "yyyy-MM-dd hh:mm"), + @ExcelField(title = "省份名称", attrName = "provinceName", align = Align.CENTER, sort = 30), + @ExcelField(title = "省份编码", attrName = "provinceCode", align = Align.CENTER, sort = 40), + @ExcelField(title = "请求地址", attrName = "urlAddr", align = Align.CENTER, sort = 50), + @ExcelField(title = "省份序号", attrName = "sorting", align = Align.CENTER, sort = 60), + @ExcelField(title = "请求状态", attrName = "reqCode", align = Align.CENTER, sort = 70), + @ExcelField(title = "数据状态", attrName = "dataStatus", dictType = "ustatus", align = Align.CENTER, sort = 80), + }) + public BizProvince() { + this(null); + } + + public BizProvince(String id) { + super(id); + } + + public Date getCreateTime_gte() { + return sqlMap.getWhere().getValue("create_time", QueryType.GTE); + } + + public void setCreateTime_gte(Date createTime) { + sqlMap.getWhere().and("create_time", QueryType.GTE, createTime); + } + + public Date getCreateTime_lte() { + return sqlMap.getWhere().getValue("create_time", QueryType.LTE); + } + + public void setCreateTime_lte(Date createTime) { + sqlMap.getWhere().and("create_time", QueryType.LTE, createTime); + } - public void setCreateTime_lte(Date createTime) { - sqlMap.getWhere().and("create_time", QueryType.LTE, createTime); - } - } \ No newline at end of file diff --git a/web-api/src/main/java/com/jeesite/modules/biz/entity/BizQuickLogin.java b/web-api/src/main/java/com/jeesite/modules/biz/entity/BizQuickLogin.java index 754632a2..24787cb4 100644 --- a/web-api/src/main/java/com/jeesite/modules/biz/entity/BizQuickLogin.java +++ b/web-api/src/main/java/com/jeesite/modules/biz/entity/BizQuickLogin.java @@ -40,7 +40,7 @@ import java.io.Serial; @Column(name="f_flow_id", attrName="fflowId", label="流程id", isUpdate=false, isQuery=false), @Column(name="f_flow_task_id", attrName="fflowTaskId", label="流程任务主键", isUpdate=false, isQuery=false), @Column(name="f_flow_state", attrName="fflowState", label="流程任务状态", isUpdate=false, isQuery=false, isUpdateForce=true), - }, orderBy="a.id DESC" + }, orderBy="a.create_time DESC" ) @Data public class BizQuickLogin extends DataEntity implements Serializable { diff --git a/web-api/src/main/java/com/jeesite/modules/biz/entity/BizResumeEmployee.java b/web-api/src/main/java/com/jeesite/modules/biz/entity/BizResumeEmployee.java index 65f6ecfa..98bea96c 100644 --- a/web-api/src/main/java/com/jeesite/modules/biz/entity/BizResumeEmployee.java +++ b/web-api/src/main/java/com/jeesite/modules/biz/entity/BizResumeEmployee.java @@ -41,7 +41,7 @@ import java.io.Serial; @Column(name="f_flow_id", attrName="fflowId", label="流程id", isUpdate=false, isQuery=false), @Column(name="f_flow_task_id", attrName="fflowTaskId", label="流程任务主键", isUpdate=false, isQuery=false), @Column(name="f_flow_state", attrName="fflowState", label="流程任务状态", isUpdate=false, isQuery=false, isUpdateForce=true), - }, orderBy="a.employee_id DESC" + }, orderBy="a.create_time DESC" ) @Data public class BizResumeEmployee extends DataEntity implements Serializable { diff --git a/web-api/src/main/java/com/jeesite/modules/biz/web/BizCitiesController.java b/web-api/src/main/java/com/jeesite/modules/biz/web/BizCitiesController.java index e2f12d0c..4ea0e34e 100644 --- a/web-api/src/main/java/com/jeesite/modules/biz/web/BizCitiesController.java +++ b/web-api/src/main/java/com/jeesite/modules/biz/web/BizCitiesController.java @@ -1,6 +1,7 @@ package com.jeesite.modules.biz.web; import java.util.List; + import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; @@ -26,6 +27,7 @@ import com.jeesite.modules.biz.service.BizCitiesService; /** * 市区信息Controller + * * @author gaoxq * @version 2025-11-27 */ @@ -33,114 +35,120 @@ import com.jeesite.modules.biz.service.BizCitiesService; @RequestMapping(value = "${adminPath}/biz/cities") public class BizCitiesController extends BaseController { - private final BizCitiesService bizCitiesService; + private final BizCitiesService bizCitiesService; - public BizCitiesController(BizCitiesService bizCitiesService) { - this.bizCitiesService = bizCitiesService; - } - - /** - * 获取数据 - */ - @ModelAttribute - public BizCities get(String id, boolean isNewRecord) { - return bizCitiesService.get(id, isNewRecord); - } - - /** - * 查询列表 - */ - @RequiresPermissions("biz:cities:view") - @RequestMapping(value = {"list", ""}) - public String list(BizCities bizCities, Model model) { - model.addAttribute("bizCities", bizCities); - return "modules/biz/bizCitiesList"; - } - - /** - * 查询列表数据 - */ - @RequiresPermissions("biz:cities:view") - @RequestMapping(value = "listData") - @ResponseBody - public Page listData(BizCities bizCities, HttpServletRequest request, HttpServletResponse response) { - bizCities.setPage(new Page<>(request, response)); - Page page = bizCitiesService.findPage(bizCities); - return page; - } + public BizCitiesController(BizCitiesService bizCitiesService) { + this.bizCitiesService = bizCitiesService; + } - /** - * 查看编辑表单 - */ - @RequiresPermissions("biz:cities:view") - @RequestMapping(value = "form") - public String form(BizCities bizCities, Model model) { - model.addAttribute("bizCities", bizCities); - return "modules/biz/bizCitiesForm"; - } + /** + * 获取数据 + */ + @ModelAttribute + public BizCities get(String id, boolean isNewRecord) { + return bizCitiesService.get(id, isNewRecord); + } - /** - * 保存数据 - */ - @RequiresPermissions("biz:cities:edit") - @PostMapping(value = "save") - @ResponseBody - public String save(@Validated BizCities bizCities) { - bizCitiesService.save(bizCities); - return renderResult(Global.TRUE, text("保存市区信息成功!")); - } + /** + * 查询列表 + */ + @RequiresPermissions("biz:cities:view") + @RequestMapping(value = {"list", ""}) + public String list(BizCities bizCities, Model model) { + model.addAttribute("bizCities", bizCities); + return "modules/biz/bizCitiesList"; + } - /** - * 导出数据 - */ - @RequiresPermissions("biz:cities:view") - @RequestMapping(value = "exportData") - public void exportData(BizCities bizCities, HttpServletResponse response) { - List list = bizCitiesService.findList(bizCities); - String fileName = "市区信息" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx"; - try(ExcelExport ee = new ExcelExport("市区信息", BizCities.class)){ - ee.setDataList(list).write(response, fileName); - } - } + /** + * 查询列表数据 + */ + @RequiresPermissions("biz:cities:view") + @RequestMapping(value = "listData") + @ResponseBody + public Page listData(BizCities bizCities, HttpServletRequest request, HttpServletResponse response) { + bizCities.setPage(new Page<>(request, response)); + Page page = bizCitiesService.findPage(bizCities); + return page; + } - /** - * 下载模板 - */ - @RequiresPermissions("biz:cities:view") - @RequestMapping(value = "importTemplate") - public void importTemplate(HttpServletResponse response) { - BizCities bizCities = new BizCities(); - List list = ListUtils.newArrayList(bizCities); - String fileName = "市区信息模板.xlsx"; - try(ExcelExport ee = new ExcelExport("市区信息", BizCities.class, Type.IMPORT)){ - ee.setDataList(list).write(response, fileName); - } - } + /** + * 查看编辑表单 + */ + @RequiresPermissions("biz:cities:view") + @RequestMapping(value = "form") + public String form(BizCities bizCities, Model model) { + model.addAttribute("bizCities", bizCities); + return "modules/biz/bizCitiesForm"; + } + + /** + * 保存数据 + */ + @RequiresPermissions("biz:cities:edit") + @PostMapping(value = "save") + @ResponseBody + public String save(@Validated BizCities bizCities) { + bizCitiesService.save(bizCities); + return renderResult(Global.TRUE, text("保存市区信息成功!")); + } + + /** + * 导出数据 + */ + @RequiresPermissions("biz:cities:view") + @RequestMapping(value = "exportData") + public void exportData(BizCities bizCities, HttpServletResponse response) { + List list = bizCitiesService.findList(bizCities); + String fileName = "市区信息" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx"; + try (ExcelExport ee = new ExcelExport("市区信息", BizCities.class)) { + ee.setDataList(list).write(response, fileName); + } + } + + /** + * 下载模板 + */ + @RequiresPermissions("biz:cities:view") + @RequestMapping(value = "importTemplate") + public void importTemplate(HttpServletResponse response) { + BizCities bizCities = new BizCities(); + List list = ListUtils.newArrayList(bizCities); + String fileName = "市区信息模板.xlsx"; + try (ExcelExport ee = new ExcelExport("市区信息", BizCities.class, Type.IMPORT)) { + ee.setDataList(list).write(response, fileName); + } + } + + /** + * 导入数据 + */ + @ResponseBody + @RequiresPermissions("biz:cities:edit") + @PostMapping(value = "importData") + public String importData(MultipartFile file) { + try { + String message = bizCitiesService.importData(file); + return renderResult(Global.TRUE, "posfull:" + message); + } catch (Exception ex) { + return renderResult(Global.FALSE, "posfull:" + ex.getMessage()); + } + } + + /** + * 删除数据 + */ + @RequiresPermissions("biz:cities:edit") + @RequestMapping(value = "delete") + @ResponseBody + public String delete(BizCities bizCities) { + bizCitiesService.delete(bizCities); + return renderResult(Global.TRUE, text("删除市区信息成功!")); + } + + @RequestMapping(value = "listAll") + @ResponseBody + public List listAll(BizCities bizCities) { + return bizCitiesService.findList(bizCities); + } - /** - * 导入数据 - */ - @ResponseBody - @RequiresPermissions("biz:cities:edit") - @PostMapping(value = "importData") - public String importData(MultipartFile file) { - try { - String message = bizCitiesService.importData(file); - return renderResult(Global.TRUE, "posfull:"+message); - } catch (Exception ex) { - return renderResult(Global.FALSE, "posfull:"+ex.getMessage()); - } - } - - /** - * 删除数据 - */ - @RequiresPermissions("biz:cities:edit") - @RequestMapping(value = "delete") - @ResponseBody - public String delete(BizCities bizCities) { - bizCitiesService.delete(bizCities); - return renderResult(Global.TRUE, text("删除市区信息成功!")); - } - } \ No newline at end of file diff --git a/web-api/src/main/java/com/jeesite/modules/biz/web/BizProvinceController.java b/web-api/src/main/java/com/jeesite/modules/biz/web/BizProvinceController.java index 21373ce0..1e73bd20 100644 --- a/web-api/src/main/java/com/jeesite/modules/biz/web/BizProvinceController.java +++ b/web-api/src/main/java/com/jeesite/modules/biz/web/BizProvinceController.java @@ -1,6 +1,7 @@ package com.jeesite.modules.biz.web; import java.util.List; + import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; @@ -26,6 +27,7 @@ import com.jeesite.modules.biz.service.BizProvinceService; /** * 省份信息Controller + * * @author gaoxq * @version 2025-11-27 */ @@ -33,114 +35,120 @@ import com.jeesite.modules.biz.service.BizProvinceService; @RequestMapping(value = "${adminPath}/biz/province") public class BizProvinceController extends BaseController { - private final BizProvinceService bizProvinceService; + private final BizProvinceService bizProvinceService; - public BizProvinceController(BizProvinceService bizProvinceService) { - this.bizProvinceService = bizProvinceService; - } - - /** - * 获取数据 - */ - @ModelAttribute - public BizProvince get(String id, boolean isNewRecord) { - return bizProvinceService.get(id, isNewRecord); - } - - /** - * 查询列表 - */ - @RequiresPermissions("biz:province:view") - @RequestMapping(value = {"list", ""}) - public String list(BizProvince bizProvince, Model model) { - model.addAttribute("bizProvince", bizProvince); - return "modules/biz/bizProvinceList"; - } - - /** - * 查询列表数据 - */ - @RequiresPermissions("biz:province:view") - @RequestMapping(value = "listData") - @ResponseBody - public Page listData(BizProvince bizProvince, HttpServletRequest request, HttpServletResponse response) { - bizProvince.setPage(new Page<>(request, response)); - Page page = bizProvinceService.findPage(bizProvince); - return page; - } + public BizProvinceController(BizProvinceService bizProvinceService) { + this.bizProvinceService = bizProvinceService; + } - /** - * 查看编辑表单 - */ - @RequiresPermissions("biz:province:view") - @RequestMapping(value = "form") - public String form(BizProvince bizProvince, Model model) { - model.addAttribute("bizProvince", bizProvince); - return "modules/biz/bizProvinceForm"; - } + /** + * 获取数据 + */ + @ModelAttribute + public BizProvince get(String id, boolean isNewRecord) { + return bizProvinceService.get(id, isNewRecord); + } - /** - * 保存数据 - */ - @RequiresPermissions("biz:province:edit") - @PostMapping(value = "save") - @ResponseBody - public String save(@Validated BizProvince bizProvince) { - bizProvinceService.save(bizProvince); - return renderResult(Global.TRUE, text("保存省份信息成功!")); - } + /** + * 查询列表 + */ + @RequiresPermissions("biz:province:view") + @RequestMapping(value = {"list", ""}) + public String list(BizProvince bizProvince, Model model) { + model.addAttribute("bizProvince", bizProvince); + return "modules/biz/bizProvinceList"; + } - /** - * 导出数据 - */ - @RequiresPermissions("biz:province:view") - @RequestMapping(value = "exportData") - public void exportData(BizProvince bizProvince, HttpServletResponse response) { - List list = bizProvinceService.findList(bizProvince); - String fileName = "省份信息" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx"; - try(ExcelExport ee = new ExcelExport("省份信息", BizProvince.class)){ - ee.setDataList(list).write(response, fileName); - } - } + /** + * 查询列表数据 + */ + @RequiresPermissions("biz:province:view") + @RequestMapping(value = "listData") + @ResponseBody + public Page listData(BizProvince bizProvince, HttpServletRequest request, HttpServletResponse response) { + bizProvince.setPage(new Page<>(request, response)); + Page page = bizProvinceService.findPage(bizProvince); + return page; + } - /** - * 下载模板 - */ - @RequiresPermissions("biz:province:view") - @RequestMapping(value = "importTemplate") - public void importTemplate(HttpServletResponse response) { - BizProvince bizProvince = new BizProvince(); - List list = ListUtils.newArrayList(bizProvince); - String fileName = "省份信息模板.xlsx"; - try(ExcelExport ee = new ExcelExport("省份信息", BizProvince.class, Type.IMPORT)){ - ee.setDataList(list).write(response, fileName); - } - } + /** + * 查看编辑表单 + */ + @RequiresPermissions("biz:province:view") + @RequestMapping(value = "form") + public String form(BizProvince bizProvince, Model model) { + model.addAttribute("bizProvince", bizProvince); + return "modules/biz/bizProvinceForm"; + } + + /** + * 保存数据 + */ + @RequiresPermissions("biz:province:edit") + @PostMapping(value = "save") + @ResponseBody + public String save(@Validated BizProvince bizProvince) { + bizProvinceService.save(bizProvince); + return renderResult(Global.TRUE, text("保存省份信息成功!")); + } + + /** + * 导出数据 + */ + @RequiresPermissions("biz:province:view") + @RequestMapping(value = "exportData") + public void exportData(BizProvince bizProvince, HttpServletResponse response) { + List list = bizProvinceService.findList(bizProvince); + String fileName = "省份信息" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx"; + try (ExcelExport ee = new ExcelExport("省份信息", BizProvince.class)) { + ee.setDataList(list).write(response, fileName); + } + } + + /** + * 下载模板 + */ + @RequiresPermissions("biz:province:view") + @RequestMapping(value = "importTemplate") + public void importTemplate(HttpServletResponse response) { + BizProvince bizProvince = new BizProvince(); + List list = ListUtils.newArrayList(bizProvince); + String fileName = "省份信息模板.xlsx"; + try (ExcelExport ee = new ExcelExport("省份信息", BizProvince.class, Type.IMPORT)) { + ee.setDataList(list).write(response, fileName); + } + } + + /** + * 导入数据 + */ + @ResponseBody + @RequiresPermissions("biz:province:edit") + @PostMapping(value = "importData") + public String importData(MultipartFile file) { + try { + String message = bizProvinceService.importData(file); + return renderResult(Global.TRUE, "posfull:" + message); + } catch (Exception ex) { + return renderResult(Global.FALSE, "posfull:" + ex.getMessage()); + } + } + + /** + * 删除数据 + */ + @RequiresPermissions("biz:province:edit") + @RequestMapping(value = "delete") + @ResponseBody + public String delete(BizProvince bizProvince) { + bizProvinceService.delete(bizProvince); + return renderResult(Global.TRUE, text("删除省份信息成功!")); + } + + @RequestMapping(value = "listAll") + @ResponseBody + public List listAll(BizProvince bizProvince) { + return bizProvinceService.findList(bizProvince); + } - /** - * 导入数据 - */ - @ResponseBody - @RequiresPermissions("biz:province:edit") - @PostMapping(value = "importData") - public String importData(MultipartFile file) { - try { - String message = bizProvinceService.importData(file); - return renderResult(Global.TRUE, "posfull:"+message); - } catch (Exception ex) { - return renderResult(Global.FALSE, "posfull:"+ex.getMessage()); - } - } - - /** - * 删除数据 - */ - @RequiresPermissions("biz:province:edit") - @RequestMapping(value = "delete") - @ResponseBody - public String delete(BizProvince bizProvince) { - bizProvinceService.delete(bizProvince); - return renderResult(Global.TRUE, text("删除省份信息成功!")); - } - } \ No newline at end of file diff --git a/web-vue/packages/biz/api/biz/cities.ts b/web-vue/packages/biz/api/biz/cities.ts index 77379461..ef73a8c8 100644 --- a/web-vue/packages/biz/api/biz/cities.ts +++ b/web-vue/packages/biz/api/biz/cities.ts @@ -30,6 +30,9 @@ export interface BizCities extends BasicModel { export const bizCitiesList = (params?: BizCities | any) => defHttp.get({ url: adminPath + '/biz/cities/list', params }); +export const bizCitiesListAll = (params?: BizCities | any) => + defHttp.get({ url: adminPath + '/biz/cities/listAll', params }); + export const bizCitiesListData = (params?: BizCities | any) => defHttp.post>({ url: adminPath + '/biz/cities/listData', params }); diff --git a/web-vue/packages/biz/api/biz/province.ts b/web-vue/packages/biz/api/biz/province.ts index 7d7e55d8..a606a90c 100644 --- a/web-vue/packages/biz/api/biz/province.ts +++ b/web-vue/packages/biz/api/biz/province.ts @@ -28,6 +28,9 @@ export interface BizProvince extends BasicModel { export const bizProvinceList = (params?: BizProvince | any) => defHttp.get({ url: adminPath + '/biz/province/list', params }); + +export const bizProvinceListAll = (params?: BizProvince | any) => + defHttp.get({ url: adminPath + '/biz/province/listAll', params }); export const bizProvinceListData = (params?: BizProvince | any) => defHttp.post>({ url: adminPath + '/biz/province/listData', params }); diff --git a/web-vue/packages/biz/views/biz/cities/form.vue b/web-vue/packages/biz/views/biz/cities/form.vue index 799627e9..6fc48b38 100644 --- a/web-vue/packages/biz/views/biz/cities/form.vue +++ b/web-vue/packages/biz/views/biz/cities/form.vue @@ -42,15 +42,16 @@ })); const inputFormSchemas: FormSchema[] = [ - { - label: t('省份编码'), - field: 'provinceCode', - component: 'Input', - componentProps: { - maxlength: 24, - }, - required: true, - }, + { + label: t('省份名称'), + field: 'provinceCode', + fieldLabel: 'provinceName', + component: 'ListSelect', + componentProps: { + selectType: 'bizProvSelect', + }, + required: true, + }, { label: t('市区编码'), field: 'cityCode', @@ -83,7 +84,7 @@ field: 'areaType', component: 'Select', componentProps: { - dictType: '', + dictType: 'area_type', allowClear: true, }, required: true, @@ -93,7 +94,7 @@ field: 'dataStatus', component: 'Select', componentProps: { - dictType: '', + dictType: 'ustatus', allowClear: true, }, required: true, diff --git a/web-vue/packages/biz/views/biz/cities/list.vue b/web-vue/packages/biz/views/biz/cities/list.vue index 56129afa..a1cab642 100644 --- a/web-vue/packages/biz/views/biz/cities/list.vue +++ b/web-vue/packages/biz/views/biz/cities/list.vue @@ -14,16 +14,13 @@ {{ t('导出') }} - - {{ t('导入') }} - {{ t('新增') }} - - -