This commit is contained in:
2025-11-29 23:40:29 +08:00
parent bfa83f42a8
commit 51ffefbe2f
95 changed files with 9692 additions and 1322 deletions

View File

@@ -48,7 +48,7 @@ import java.io.Serial;
columns = {
@Column(name = "province_name", attrName = "provinceName", label = "省份名称"),
}),
}, orderBy = "a.id DESC"
}, orderBy = "a.create_time DESC"
)
@Data
public class BizCities extends DataEntity<BizCities> implements Serializable {

View File

@@ -2,9 +2,12 @@ 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;
import com.jeesite.modules.sys.entity.User;
import com.jeesite.modules.sys.utils.UserUtils;
import jakarta.validation.constraints.Size;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
@@ -23,88 +26,94 @@ import java.io.Serial;
/**
* 通知列表项表Entity
*
* @author gaoxq
* @version 2025-11-26
*/
@EqualsAndHashCode(callSuper = true)
@Table(name="biz_list_item", alias="a", label="通知列表项表信息", columns={
@Column(name="create_time", attrName="createTime", label="创建时间", isUpdate=false, isUpdateForce=true),
@Column(name="id", attrName="id", label="唯一标识", isPK=true),
@Column(name="avatar", attrName="avatar", label="头像图标", isQuery=false),
@Column(name="title", attrName="title", label="通知标题", queryType=QueryType.LIKE),
@Column(name="title_delete", attrName="titleDelete", label="是否删除", isQuery=false),
@Column(name="datetime", attrName="datetime", label="发送时间", isQuery=false),
@Column(name="type", attrName="type", label="类型标识"),
@Column(name="read_flag", attrName="readFlag", label="是否已读"),
@Column(name="description", attrName="description", label="描述信息", isQuery=false),
@Column(name="click_close", attrName="clickClose", label="是否关闭"),
@Column(name="extra", attrName="extra", label="待办状态"),
@Column(name="color", attrName="color", label="颜色值", isQuery=false),
@Column(name="update_time", attrName="updateTime", label="更新时间", isQuery=false),
@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"
@Table(name = "biz_list_item", alias = "a", label = "通知列表项表信息", columns = {
@Column(name = "create_time", attrName = "createTime", label = "创建时间", isUpdate = false, isUpdateForce = true),
@Column(name = "id", attrName = "id", label = "唯一标识", isPK = true),
@Column(name = "avatar", attrName = "avatar", label = "头像图标", isUpdate = false, isUpdateForce = true),
@Column(name = "title", attrName = "title", label = "通知标题", queryType = QueryType.LIKE),
@Column(name = "title_delete", attrName = "titleDelete", label = "是否删除", isQuery = false),
@Column(name = "datetime", attrName = "datetime", label = "发送时间", isQuery = false),
@Column(name = "type", attrName = "type", label = "类型标识"),
@Column(name = "read_flag", attrName = "readFlag", label = "是否已读"),
@Column(name = "description", attrName = "description", label = "描述信息", isQuery = false),
@Column(name = "click_close", attrName = "clickClose", label = "是否关闭"),
@Column(name = "extra", attrName = "extra", label = "待办状态"),
@Column(name = "color", attrName = "color", label = "颜色值", isQuery = false),
@Column(name = "update_time", attrName = "updateTime", label = "更新时间", isQuery = false),
@Column(name = "login_user", attrName = "loginUser", label = "接收用户"),
@Column(name = "user_name", attrName = "userName", label = "接收用户"),
@Column(name = "create_user", attrName = "createUser", label = "创建用户", isUpdate = false, isUpdateForce = true),
@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 BizListItem extends DataEntity<BizListItem> implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
private Date createTime; // 创建时间
private String avatar; // 头像图标
private String title; // 通知标题
private boolean titleDelete; // 是否删除
private String datetime; // 发送时间
private String type; // 类型标识
private boolean readFlag; // 是否已读
private String description; // 描述信息
private boolean clickClose; // 是否关闭
private String extra; // 待办状态
private String color; // 颜色值
private Date updateTime; // 更新时间
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="id", align=Align.CENTER, sort=20),
@ExcelField(title="头像图标", attrName="avatar", align=Align.CENTER, sort=30),
@ExcelField(title="通知标题", attrName="title", align=Align.CENTER, sort=40),
@ExcelField(title="是否删除", attrName="titleDelete", align=Align.CENTER, sort=50),
@ExcelField(title="发送时间", attrName="datetime", align=Align.CENTER, sort=60, dataFormat="yyyy-MM-dd"),
@ExcelField(title="类型标识", attrName="type", align=Align.CENTER, sort=70),
@ExcelField(title="是否已读", attrName="readFlag", align=Align.CENTER, sort=80),
@ExcelField(title="描述信息", attrName="description", align=Align.CENTER, sort=90),
@ExcelField(title="是否关闭", attrName="clickClose", align=Align.CENTER, sort=100),
@ExcelField(title="待办状态", attrName="extra", align=Align.CENTER, sort=110),
@ExcelField(title="颜色值", attrName="color", align=Align.CENTER, sort=120),
})
public BizListItem() {
this(null);
}
public BizListItem(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 avatar; // 头像图标
private String title; // 通知标题
private Boolean titleDelete; // 是否删除
private String datetime; // 发送时间
private String type; // 类型标识
private Boolean readFlag; // 是否已读
private String description; // 描述信息
private Boolean clickClose; // 是否关闭
private String extra; // 待办状态
private String color; // 颜色值
private Date updateTime; // 更新时间
private String loginUser;
private String userName;
private String createUser;
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 = "创建时间", attrName = "createTime", align = Align.CENTER, sort = 10, dataFormat = "yyyy-MM-dd hh:mm"),
@ExcelField(title = "唯一标识", attrName = "id", align = Align.CENTER, sort = 20),
@ExcelField(title = "头像图标", attrName = "avatar", align = Align.CENTER, sort = 30),
@ExcelField(title = "通知标题", attrName = "title", align = Align.CENTER, sort = 40),
@ExcelField(title = "是否删除", attrName = "titleDelete", align = Align.CENTER, sort = 50),
@ExcelField(title = "发送时间", attrName = "datetime", align = Align.CENTER, sort = 60, dataFormat = "yyyy-MM-dd"),
@ExcelField(title = "类型标识", attrName = "type", align = Align.CENTER, sort = 70),
@ExcelField(title = "是否已读", attrName = "readFlag", align = Align.CENTER, sort = 80),
@ExcelField(title = "描述信息", attrName = "description", align = Align.CENTER, sort = 90),
@ExcelField(title = "是否关闭", attrName = "clickClose", align = Align.CENTER, sort = 100),
@ExcelField(title = "待办状态", attrName = "extra", align = Align.CENTER, sort = 110),
})
public BizListItem() {
this(null);
}
public BizListItem(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);
}
}

View File

@@ -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,93 +23,121 @@ import java.io.Serial;
/**
* 需求信息Entity
*
* @author gaoxq
* @version 2025-11-27
*/
@EqualsAndHashCode(callSuper = true)
@Table(name="biz_project_requirements", alias="a", label="需求信息信息", columns={
@Column(name="create_time", attrName="createTime", label="记录日期", isUpdate=false, isUpdateForce=true),
@Column(name="requirement_id", attrName="requirementId", label="需求标识", isPK=true),
@Column(name="requirement_name", attrName="requirementName", label="需求名称", queryType=QueryType.LIKE),
@Column(name="requirement_code", attrName="requirementCode", label="需求编号"),
@Column(name="area_code", attrName="areaCode", label="项目区域"),
@Column(name="requirement_description", attrName="requirementDescription", label="需求描述"),
@Column(name="start_time", attrName="startTime", label="开始时间", isQuery=false, isUpdateForce=true),
@Column(name="end_time", attrName="endTime", label="结束时间", isQuery=false, isUpdateForce=true),
@Column(name="priority", attrName="priority", label="优先级"),
@Column(name="update_time", attrName="updateTime", label="更新时间", isQuery=false, isUpdateForce=true),
@Column(name="project_id", attrName="projectId", label="项目ID"),
@Column(name="employee_id", attrName="employeeId", label="用户ID"),
@Column(name="remark", attrName="remark", label="需求备注"),
@Column(name="requirements_status", attrName="requirementsStatus", 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"
@Table(name = "biz_project_requirements", alias = "a", label = "需求信息信息", columns = {
@Column(name = "create_time", attrName = "createTime", label = "记录日期", isUpdate = false, isUpdateForce = true),
@Column(name = "requirement_id", attrName = "requirementId", label = "需求标识", isPK = true),
@Column(name = "requirement_name", attrName = "requirementName", label = "需求名称", queryType = QueryType.LIKE),
@Column(name = "requirement_code", attrName = "requirementCode", label = "需求编号"),
@Column(name = "area_code", attrName = "areaCode", label = "项目区域"),
@Column(name = "requirement_description", attrName = "requirementDescription", label = "需求描述"),
@Column(name = "start_time", attrName = "startTime", label = "开始时间", isQuery = false, isUpdateForce = true),
@Column(name = "end_time", attrName = "endTime", label = "结束时间", isQuery = false, isUpdateForce = true),
@Column(name = "priority", attrName = "priority", label = "优先级"),
@Column(name = "update_time", attrName = "updateTime", label = "更新时间", isQuery = false, isUpdateForce = true),
@Column(name = "project_id", attrName = "projectId", label = "项目ID"),
@Column(name = "employee_id", attrName = "employeeId", label = "用户ID"),
@Column(name = "remark", attrName = "remark", label = "需求备注"),
@Column(name = "requirements_status", attrName = "requirementsStatus", 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 = "项目名称"),
}),
@JoinTable(type = Type.LEFT_JOIN, entity = BizProvince.class, attrName = "this", alias = "d",
on = "a.area_code = d.province_code",
columns = {
@Column(name = "province_name", attrName = "provinceName", label = "省份名称"),
}),
}, orderBy = "a.create_time DESC"
)
@Data
public class BizProjectRequirements extends DataEntity<BizProjectRequirements> implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
private Date createTime; // 记录日期
private String requirementId; // 需求标识
private String requirementName; // 需求名称
private String requirementCode; // 需求编号
private String areaCode; // 项目区域
private String requirementDescription; // 需求描述
private Date startTime; // 开始时间
private Date endTime; // 结束时间
private String priority; // 优先级
private Date updateTime; // 更新时间
private String projectId; // 项目ID
private String employeeId; // 用户ID
private String remark; // 需求备注
private String requirementsStatus; // 状态
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="requirementId", align=Align.CENTER, sort=20),
@ExcelField(title="需求名称", attrName="requirementName", align=Align.CENTER, sort=30),
@ExcelField(title="需求编号", attrName="requirementCode", align=Align.CENTER, sort=40),
@ExcelField(title="项目区域", attrName="areaCode", align=Align.CENTER, sort=50),
@ExcelField(title="需求描述", attrName="requirementDescription", align=Align.CENTER, sort=60),
@ExcelField(title="开始时间", attrName="startTime", align=Align.CENTER, sort=70, dataFormat="yyyy-MM-dd hh:mm"),
@ExcelField(title="结束时间", attrName="endTime", align=Align.CENTER, sort=80, dataFormat="yyyy-MM-dd hh:mm"),
@ExcelField(title="优先级", attrName="priority", align=Align.CENTER, sort=90),
@ExcelField(title="更新时间", attrName="updateTime", align=Align.CENTER, sort=100, dataFormat="yyyy-MM-dd hh:mm"),
@ExcelField(title="项目ID", attrName="projectId", align=Align.CENTER, sort=110),
@ExcelField(title="用户ID", attrName="employeeId", align=Align.CENTER, sort=120),
@ExcelField(title="需求备注", attrName="remark", align=Align.CENTER, sort=130),
@ExcelField(title="状态", attrName="requirementsStatus", align=Align.CENTER, sort=140),
})
public BizProjectRequirements() {
this(null);
}
public BizProjectRequirements(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 requirementId; // 需求标识
private String requirementName; // 需求名称
private String requirementCode; // 需求编号
private String areaCode; // 项目区域
private String requirementDescription; // 需求描述
private Date startTime; // 开始时间
private Date endTime; // 结束时间
private String priority; // 优先级
private Date updateTime; // 更新时间
private String projectId; // 项目ID
private String employeeId; // 用户ID
private String remark; // 需求备注
private String requirementsStatus; // 状态
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;
private String provinceName;
@ExcelFields({
@ExcelField(title = "记录日期", attrName = "createTime", align = Align.CENTER, sort = 10, dataFormat = "yyyy-MM-dd hh:mm"),
@ExcelField(title = "需求标识", attrName = "requirementId", align = Align.CENTER, sort = 20),
@ExcelField(title = "需求名称", attrName = "requirementName", align = Align.CENTER, sort = 30),
@ExcelField(title = "需求编号", attrName = "requirementCode", align = Align.CENTER, sort = 40),
@ExcelField(title = "区域编码", attrName = "areaCode", align = Align.CENTER, sort = 50),
@ExcelField(title = "区域名称", attrName = "provinceName", align = Align.CENTER, sort = 50),
@ExcelField(title = "需求描述", attrName = "requirementDescription", align = Align.CENTER, sort = 60),
@ExcelField(title = "开始时间", attrName = "startTime", align = Align.CENTER, sort = 70, dataFormat = "yyyy-MM-dd hh:mm"),
@ExcelField(title = "结束时间", attrName = "endTime", align = Align.CENTER, sort = 80, dataFormat = "yyyy-MM-dd hh:mm"),
@ExcelField(title = "优先等级", attrName = "priority", dictType = "priority", align = Align.CENTER, sort = 90),
@ExcelField(title = "更新时间", attrName = "updateTime", align = Align.CENTER, sort = 100, dataFormat = "yyyy-MM-dd hh:mm"),
@ExcelField(title = "项目编号", attrName = "projectCode", align = Align.CENTER, sort = 110),
@ExcelField(title = "项目名称", attrName = "projectName", align = Align.CENTER, sort = 110),
@ExcelField(title = "需求用户", attrName = "employeeName", align = Align.CENTER, sort = 120),
@ExcelField(title = "需求备注", attrName = "remark", align = Align.CENTER, sort = 130),
@ExcelField(title = "状态", attrName = "requirementsStatus", dictType = "requirements_status", align = Align.CENTER, sort = 140),
})
public BizProjectRequirements() {
this(null);
}
public BizProjectRequirements(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);
}
}

View File

@@ -3,13 +3,18 @@ package com.jeesite.modules.biz.web;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
import com.jeesite.modules.dao.TabItem;
import com.jeesite.modules.dict.NotifyType;
import com.jeesite.modules.sys.entity.User;
import com.jeesite.modules.sys.utils.UserUtils;
import com.jeesite.modules.utils.IpUtils;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.apache.poi.ss.formula.atp.Switch;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
@@ -71,6 +76,8 @@ public class BizListItemController extends BaseController {
@RequestMapping(value = "listData")
@ResponseBody
public Page<BizListItem> listData(BizListItem bizListItem, HttpServletRequest request, HttpServletResponse response) {
User user = UserUtils.getUser();
bizListItem.setCreateUser(user.getUserCode());
bizListItem.setPage(new Page<>(request, response));
Page<BizListItem> page = bizListItemService.findPage(bizListItem);
return page;
@@ -93,8 +100,13 @@ public class BizListItemController extends BaseController {
@PostMapping(value = "save")
@ResponseBody
public String save(@Validated BizListItem bizListItem) {
User user = UserUtils.getUser();
User loginUser = UserUtils.getByLoginCode(bizListItem.getLoginUser());
bizListItem.setUserName(loginUser.getUserName());
bizListItem.setCreateUser(user.getLoginCode());
bizListItem.setAvatar(IpUtils.getServerHttp() + user.getAvatar());
bizListItemService.save(bizListItem);
return renderResult(Global.TRUE, text("保存通知列表项成功!"));
return renderResult(Global.TRUE, text("保存通知列表项成功!"));
}
/**
@@ -103,9 +115,11 @@ public class BizListItemController extends BaseController {
@RequiresPermissions("biz:listItem:view")
@RequestMapping(value = "exportData")
public void exportData(BizListItem bizListItem, HttpServletResponse response) {
User user = UserUtils.getUser();
bizListItem.setCreateUser(user.getLoginCode());
List<BizListItem> list = bizListItemService.findList(bizListItem);
String fileName = "通知列表项表" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx";
try (ExcelExport ee = new ExcelExport("通知列表项", BizListItem.class)) {
try (ExcelExport ee = new ExcelExport("通知列表项", BizListItem.class)) {
ee.setDataList(list).write(response, fileName);
}
}
@@ -119,7 +133,7 @@ public class BizListItemController extends BaseController {
BizListItem bizListItem = new BizListItem();
List<BizListItem> list = ListUtils.newArrayList(bizListItem);
String fileName = "通知列表项表模板.xlsx";
try (ExcelExport ee = new ExcelExport("通知列表项", BizListItem.class, Type.IMPORT)) {
try (ExcelExport ee = new ExcelExport("通知列表项", BizListItem.class, Type.IMPORT)) {
ee.setDataList(list).write(response, fileName);
}
}
@@ -147,17 +161,43 @@ public class BizListItemController extends BaseController {
@ResponseBody
public String delete(BizListItem bizListItem) {
bizListItemService.delete(bizListItem);
return renderResult(Global.TRUE, text("删除通知列表项成功!"));
return renderResult(Global.TRUE, text("删除通知列表项成功!"));
}
@RequestMapping(value = "sflow")
@ResponseBody
public String sflow(BizListItem bizListItem) {
String status = Objects.requireNonNullElse(bizListItem.getExtra(), "未开始");
switch (status) {
case "未开始" -> {
bizListItem.setColor("red");
bizListItem.setExtra("进行中");
}
case "进行中" -> {
bizListItem.setColor("green");
bizListItem.setExtra("已完成");
}
case "已完成" -> {
bizListItem.setColor("white");
bizListItem.setReadFlag(true);
bizListItem.setClickClose(true);
}
}
bizListItemService.update(bizListItem);
return renderResult(Global.TRUE, text("操作通知列表项成功!"));
}
@RequestMapping(value = "getTabListData")
@ResponseBody
public List<TabItem> getTabListData() {
User user = UserUtils.getUser();
return Arrays.stream(NotifyType.values())
.map(type -> {
BizListItem listItem = new BizListItem();
listItem.setReadFlag(false);
listItem.setType(type.getCode());
listItem.setLoginUser(user.getLoginCode());
List<BizListItem> dataList = bizListItemService.findList(listItem);
return new TabItem(type.getCode(), type.getName(), dataList.size(), dataList);
})

View File

@@ -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.BizProjectInfoService;
/**
* 项目信息Controller
*
* @author gaoxq
* @version 2025-11-27
*/
@@ -33,114 +35,120 @@ import com.jeesite.modules.biz.service.BizProjectInfoService;
@RequestMapping(value = "${adminPath}/biz/projectInfo")
public class BizProjectInfoController extends BaseController {
private final BizProjectInfoService bizProjectInfoService;
private final BizProjectInfoService bizProjectInfoService;
public BizProjectInfoController(BizProjectInfoService bizProjectInfoService) {
this.bizProjectInfoService = bizProjectInfoService;
}
/**
* 获取数据
*/
@ModelAttribute
public BizProjectInfo get(String projectId, boolean isNewRecord) {
return bizProjectInfoService.get(projectId, isNewRecord);
}
/**
* 查询列表
*/
@RequiresPermissions("biz:projectInfo:view")
@RequestMapping(value = {"list", ""})
public String list(BizProjectInfo bizProjectInfo, Model model) {
model.addAttribute("bizProjectInfo", bizProjectInfo);
return "modules/biz/bizProjectInfoList";
}
/**
* 查询列表数据
*/
@RequiresPermissions("biz:projectInfo:view")
@RequestMapping(value = "listData")
public BizProjectInfoController(BizProjectInfoService bizProjectInfoService) {
this.bizProjectInfoService = bizProjectInfoService;
}
/**
* 获取数据
*/
@ModelAttribute
public BizProjectInfo get(String projectId, boolean isNewRecord) {
return bizProjectInfoService.get(projectId, isNewRecord);
}
/**
* 查询列表
*/
@RequiresPermissions("biz:projectInfo:view")
@RequestMapping(value = {"list", ""})
public String list(BizProjectInfo bizProjectInfo, Model model) {
model.addAttribute("bizProjectInfo", bizProjectInfo);
return "modules/biz/bizProjectInfoList";
}
/**
* 查询列表数据
*/
@RequiresPermissions("biz:projectInfo:view")
@RequestMapping(value = "listData")
@ResponseBody
public Page<BizProjectInfo> listData(BizProjectInfo bizProjectInfo, HttpServletRequest request, HttpServletResponse response) {
bizProjectInfo.setPage(new Page<>(request, response));
Page<BizProjectInfo> page = bizProjectInfoService.findPage(bizProjectInfo);
return page;
}
/**
* 查看编辑表单
*/
@RequiresPermissions("biz:projectInfo:view")
@RequestMapping(value = "form")
public String form(BizProjectInfo bizProjectInfo, Model model) {
model.addAttribute("bizProjectInfo", bizProjectInfo);
return "modules/biz/bizProjectInfoForm";
}
/**
* 保存数据
*/
@RequiresPermissions("biz:projectInfo:edit")
@PostMapping(value = "save")
@ResponseBody
public String save(@Validated BizProjectInfo bizProjectInfo) {
bizProjectInfoService.save(bizProjectInfo);
return renderResult(Global.TRUE, text("保存项目信息成功!"));
}
/**
* 导出数据
*/
@RequiresPermissions("biz:projectInfo:view")
@RequestMapping(value = "exportData")
public void exportData(BizProjectInfo bizProjectInfo, HttpServletResponse response) {
List<BizProjectInfo> list = bizProjectInfoService.findList(bizProjectInfo);
String fileName = "项目信息" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx";
try (ExcelExport ee = new ExcelExport("项目信息", BizProjectInfo.class)) {
ee.setDataList(list).write(response, fileName);
}
}
/**
* 下载模板
*/
@RequiresPermissions("biz:projectInfo:view")
@RequestMapping(value = "importTemplate")
public void importTemplate(HttpServletResponse response) {
BizProjectInfo bizProjectInfo = new BizProjectInfo();
List<BizProjectInfo> list = ListUtils.newArrayList(bizProjectInfo);
String fileName = "项目信息模板.xlsx";
try (ExcelExport ee = new ExcelExport("项目信息", BizProjectInfo.class, Type.IMPORT)) {
ee.setDataList(list).write(response, fileName);
}
}
/**
* 导入数据
*/
@ResponseBody
@RequiresPermissions("biz:projectInfo:edit")
@PostMapping(value = "importData")
public String importData(MultipartFile file) {
try {
String message = bizProjectInfoService.importData(file);
return renderResult(Global.TRUE, "posfull:" + message);
} catch (Exception ex) {
return renderResult(Global.FALSE, "posfull:" + ex.getMessage());
}
}
/**
* 删除数据
*/
@RequiresPermissions("biz:projectInfo:edit")
@RequestMapping(value = "delete")
@ResponseBody
public String delete(BizProjectInfo bizProjectInfo) {
bizProjectInfoService.delete(bizProjectInfo);
return renderResult(Global.TRUE, text("删除项目信息成功!"));
}
@RequestMapping(value = "listAll")
@ResponseBody
public Page<BizProjectInfo> listData(BizProjectInfo bizProjectInfo, HttpServletRequest request, HttpServletResponse response) {
bizProjectInfo.setPage(new Page<>(request, response));
Page<BizProjectInfo> page = bizProjectInfoService.findPage(bizProjectInfo);
return page;
}
public List<BizProjectInfo> listAll(BizProjectInfo bizProjectInfo) {
return bizProjectInfoService.findList(bizProjectInfo);
}
/**
* 查看编辑表单
*/
@RequiresPermissions("biz:projectInfo:view")
@RequestMapping(value = "form")
public String form(BizProjectInfo bizProjectInfo, Model model) {
model.addAttribute("bizProjectInfo", bizProjectInfo);
return "modules/biz/bizProjectInfoForm";
}
/**
* 保存数据
*/
@RequiresPermissions("biz:projectInfo:edit")
@PostMapping(value = "save")
@ResponseBody
public String save(@Validated BizProjectInfo bizProjectInfo) {
bizProjectInfoService.save(bizProjectInfo);
return renderResult(Global.TRUE, text("保存项目信息成功!"));
}
/**
* 导出数据
*/
@RequiresPermissions("biz:projectInfo:view")
@RequestMapping(value = "exportData")
public void exportData(BizProjectInfo bizProjectInfo, HttpServletResponse response) {
List<BizProjectInfo> list = bizProjectInfoService.findList(bizProjectInfo);
String fileName = "项目信息" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx";
try(ExcelExport ee = new ExcelExport("项目信息", BizProjectInfo.class)){
ee.setDataList(list).write(response, fileName);
}
}
/**
* 下载模板
*/
@RequiresPermissions("biz:projectInfo:view")
@RequestMapping(value = "importTemplate")
public void importTemplate(HttpServletResponse response) {
BizProjectInfo bizProjectInfo = new BizProjectInfo();
List<BizProjectInfo> list = ListUtils.newArrayList(bizProjectInfo);
String fileName = "项目信息模板.xlsx";
try(ExcelExport ee = new ExcelExport("项目信息", BizProjectInfo.class, Type.IMPORT)){
ee.setDataList(list).write(response, fileName);
}
}
/**
* 导入数据
*/
@ResponseBody
@RequiresPermissions("biz:projectInfo:edit")
@PostMapping(value = "importData")
public String importData(MultipartFile file) {
try {
String message = bizProjectInfoService.importData(file);
return renderResult(Global.TRUE, "posfull:"+message);
} catch (Exception ex) {
return renderResult(Global.FALSE, "posfull:"+ex.getMessage());
}
}
/**
* 删除数据
*/
@RequiresPermissions("biz:projectInfo:edit")
@RequestMapping(value = "delete")
@ResponseBody
public String delete(BizProjectInfo bizProjectInfo) {
bizProjectInfoService.delete(bizProjectInfo);
return renderResult(Global.TRUE, text("删除项目信息成功!"));
}
}