项目初始化

This commit is contained in:
2026-03-20 15:40:07 +08:00
parent 7e10da0edf
commit f0ddf11022
27 changed files with 3253 additions and 7 deletions

View File

@@ -0,0 +1,15 @@
package com.jeesite.modules.biz.dao;
import com.jeesite.common.dao.CrudDao;
import com.jeesite.common.mybatis.annotation.MyBatisDao;
import com.jeesite.modules.biz.entity.MyCompany;
/**
* 公司信息 DAO 接口
* @author gaoxq
* @version 2026-03-20
*/
@MyBatisDao(dataSourceName="work")
public interface MyCompanyDao extends CrudDao<MyCompany> {
}

View File

@@ -0,0 +1,15 @@
package com.jeesite.modules.biz.dao;
import com.jeesite.common.dao.CrudDao;
import com.jeesite.common.mybatis.annotation.MyBatisDao;
import com.jeesite.modules.biz.entity.MyNotes;
/**
* 便签信息 DAO 接口
* @author gaoxq
* @version 2026-03-20
*/
@MyBatisDao(dataSourceName="work")
public interface MyNotesDao extends CrudDao<MyNotes> {
}

View File

@@ -0,0 +1,15 @@
package com.jeesite.modules.biz.dao;
import com.jeesite.common.dao.CrudDao;
import com.jeesite.common.mybatis.annotation.MyBatisDao;
import com.jeesite.modules.biz.entity.MyPerson;
/**
* 人员信息 DAO 接口
* @author gaoxq
* @version 2026-03-20
*/
@MyBatisDao(dataSourceName="work")
public interface MyPersonDao extends CrudDao<MyPerson> {
}

View File

@@ -0,0 +1,108 @@
package com.jeesite.modules.biz.entity;
import java.io.Serializable;
import java.util.Date;
import com.jeesite.common.entity.DataEntity;
import com.jeesite.common.mybatis.annotation.Column;
import com.jeesite.common.mybatis.annotation.Table;
import com.jeesite.common.mybatis.mapper.query.QueryType;
import com.jeesite.common.utils.excel.annotation.ExcelField;
import com.jeesite.common.utils.excel.annotation.ExcelField.Align;
import com.jeesite.common.utils.excel.annotation.ExcelFields;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* 公司信息 Entity
*
* @author gaoxq
* @version 2026-03-20
*/
@EqualsAndHashCode(callSuper = true)
@Table(name = "my_company", alias = "a", label = "公司信息", columns = {
@Column(name = "create_time", attrName = "createTime", label = "记录时间", isUpdate = false, isUpdateForce = true),
@Column(name = "company_id", attrName = "companyId", label = "唯一主键", isPK = true),
@Column(name = "company_name", attrName = "companyName", label = "公司全称", queryType = QueryType.LIKE),
@Column(name = "short_name", attrName = "shortName", label = "公司简称", isQuery = false),
@Column(name = "credit_code", attrName = "creditCode", label = "统一社会信用代码"),
@Column(name = "legal_person", attrName = "legalPerson", label = "法人姓名", isQuery = false),
@Column(name = "registered_capital", attrName = "registeredCapital", label = "注册资本", isQuery = false),
@Column(name = "establish_date", attrName = "establishDate", label = "成立日期", isQuery = false),
@Column(name = "province", attrName = "province", label = "所在省份"),
@Column(name = "city", attrName = "city", label = "所在城市", isQuery = false),
@Column(name = "address", attrName = "address", label = "注册地址", isQuery = false),
@Column(name = "business_scope", attrName = "businessScope", label = "经营范围", isQuery = false),
@Column(name = "contact_phone", attrName = "contactPhone", label = "公司电话"),
@Column(name = "contact_email", attrName = "contactEmail", label = "公司邮箱", isQuery = false),
@Column(name = "ustatus", attrName = "ustatus", label = "数据状态"),
@Column(name = "update_time", attrName = "updateTime", label = "更新时间", isInsert = false, isQuery = false, isUpdateForce = true),
}, orderBy = "a.create_time DESC"
)
@Data
public class MyCompany extends DataEntity<MyCompany> implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
private Date createTime; // 记录时间
private String companyId; // 唯一主键
private String companyName; // 公司全称
private String shortName; // 公司简称
private String creditCode; // 统一社会信用代码
private String legalPerson; // 法人姓名
private String registeredCapital; // 注册资本
private Date establishDate; // 成立日期
private String province; // 所在省份
private String city; // 所在城市
private String address; // 注册地址
private String businessScope; // 经营范围
private String contactPhone; // 公司电话
private String contactEmail; // 公司邮箱
private String ustatus; // 数据状态
private Date updateTime; // 更新时间
@ExcelFields({
@ExcelField(title = "记录时间", attrName = "createTime", align = Align.CENTER, sort = 10, dataFormat = "yyyy-MM-dd hh:mm"),
@ExcelField(title = "唯一主键", attrName = "companyId", align = Align.CENTER, sort = 20),
@ExcelField(title = "公司全称", attrName = "companyName", align = Align.CENTER, sort = 30),
@ExcelField(title = "公司简称", attrName = "shortName", align = Align.CENTER, sort = 40),
@ExcelField(title = "统一社会信用代码", attrName = "creditCode", align = Align.CENTER, sort = 50),
@ExcelField(title = "法人姓名", attrName = "legalPerson", align = Align.CENTER, sort = 60),
@ExcelField(title = "注册资本", attrName = "registeredCapital", align = Align.CENTER, sort = 70),
@ExcelField(title = "成立日期", attrName = "establishDate", align = Align.CENTER, sort = 80, dataFormat = "yyyy-MM-dd hh:mm"),
@ExcelField(title = "所在省份", attrName = "province", align = Align.CENTER, sort = 90),
@ExcelField(title = "所在城市", attrName = "city", align = Align.CENTER, sort = 100),
@ExcelField(title = "注册地址", attrName = "address", align = Align.CENTER, sort = 110),
@ExcelField(title = "经营范围", attrName = "businessScope", align = Align.CENTER, sort = 120),
@ExcelField(title = "公司电话", attrName = "contactPhone", align = Align.CENTER, sort = 130),
@ExcelField(title = "公司邮箱", attrName = "contactEmail", align = Align.CENTER, sort = 140),
@ExcelField(title = "数据状态", attrName = "ustatus", align = Align.CENTER, sort = 150),
@ExcelField(title = "更新时间", attrName = "updateTime", align = Align.CENTER, sort = 160, dataFormat = "yyyy-MM-dd hh:mm"),
})
public MyCompany() {
this(null);
}
public MyCompany(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);
}
}

View File

@@ -0,0 +1,101 @@
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 jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
import jakarta.validation.constraints.NotNull;
import com.jeesite.common.entity.DataEntity;
import com.jeesite.common.mybatis.annotation.Column;
import com.jeesite.common.mybatis.annotation.Table;
import com.jeesite.common.mybatis.mapper.query.QueryType;
import com.jeesite.common.utils.excel.annotation.ExcelField;
import com.jeesite.common.utils.excel.annotation.ExcelField.Align;
import com.jeesite.common.utils.excel.annotation.ExcelFields;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* 便签信息 Entity
* @author gaoxq
* @version 2026-03-20
*/
@EqualsAndHashCode(callSuper = true)
@Table(name="my_notes", alias="a", label="便签信息", columns={
@Column(name="create_time", attrName="createTime", label="记录时间", isUpdate=false, isUpdateForce=true),
@Column(name="note_id", attrName="noteId", label="唯一标识", isPK=true),
@Column(name="title", attrName="title", label="标题", queryType=QueryType.LIKE),
@Column(name="content", attrName="content", label="内容", queryType=QueryType.LIKE),
@Column(name="priority", attrName="priority", label="级别"),
@Column(name="ustatus", attrName="ustatus", 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="type", attrName="type", label="类型"),
@Column(name="deadline", attrName="deadline", label="截至时间", isQuery=false),
@Column(name="update_time", attrName="updateTime", label="更新时间", isInsert=false, isQuery=false, isUpdateForce=true),
@Column(name="create_user", attrName="createUser", label="创建用户", isQuery=false),
}, orderBy="a.note_id DESC"
)
@Data
public class MyNotes extends DataEntity<MyNotes> implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
private Date createTime; // 记录时间
private String noteId; // 唯一标识
private String title; // 标题
private String content; // 内容
private String priority; // 级别
private String ustatus; // 状态
private Date startTime; // 开始时间
private Date endTime; // 结束时间
private String type; // 类型
private Date deadline; // 截至时间
private Date updateTime; // 更新时间
private String createUser; // 创建用户
@ExcelFields({
@ExcelField(title="记录时间", attrName="createTime", align=Align.CENTER, sort=10, dataFormat="yyyy-MM-dd hh:mm"),
@ExcelField(title="唯一标识", attrName="noteId", align=Align.CENTER, sort=20),
@ExcelField(title="标题", attrName="title", align=Align.CENTER, sort=30),
@ExcelField(title="内容", attrName="content", align=Align.CENTER, sort=40),
@ExcelField(title="级别", attrName="priority", align=Align.CENTER, sort=50),
@ExcelField(title="状态", attrName="ustatus", 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="type", align=Align.CENTER, sort=90),
@ExcelField(title="截至时间", attrName="deadline", align=Align.CENTER, sort=100, dataFormat="yyyy-MM-dd hh:mm"),
@ExcelField(title="更新时间", attrName="updateTime", align=Align.CENTER, sort=110, dataFormat="yyyy-MM-dd hh:mm"),
@ExcelField(title="创建用户", attrName="createUser", align=Align.CENTER, sort=120),
})
public MyNotes() {
this(null);
}
public MyNotes(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);
}
}

View File

@@ -0,0 +1,106 @@
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 jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
import jakarta.validation.constraints.NotNull;
import com.jeesite.common.entity.DataEntity;
import com.jeesite.common.mybatis.annotation.Column;
import com.jeesite.common.mybatis.annotation.Table;
import com.jeesite.common.mybatis.mapper.query.QueryType;
import com.jeesite.common.utils.excel.annotation.ExcelField;
import com.jeesite.common.utils.excel.annotation.ExcelField.Align;
import com.jeesite.common.utils.excel.annotation.ExcelFields;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* 人员信息 Entity
* @author gaoxq
* @version 2026-03-20
*/
@EqualsAndHashCode(callSuper = true)
@Table(name="my_person", alias="a", label="人员信息", columns={
@Column(name="create_time", attrName="createTime", label="记录时间", isUpdate=false, isUpdateForce=true),
@Column(name="person_id", attrName="personId", label="唯一主键", isPK=true),
@Column(name="person_name", attrName="personName", label="姓名", queryType=QueryType.LIKE),
@Column(name="gender", attrName="gender", label="性别"),
@Column(name="id_card", attrName="idCard", label="身份证号"),
@Column(name="phone", attrName="phone", label="手机号码", isQuery=false),
@Column(name="email", attrName="email", label="邮箱", isQuery=false),
@Column(name="birth_date", attrName="birthDate", label="出生日期", isQuery=false),
@Column(name="address", attrName="address", label="居住地址", isQuery=false),
@Column(name="department", attrName="department", label="所属部门", isQuery=false),
@Column(name="position_name", attrName="positionName", label="职位", isQuery=false),
@Column(name="ustatus", attrName="ustatus", label="状态"),
@Column(name="company_id", attrName="companyId", label="公司编号"),
@Column(name="update_time", attrName="updateTime", label="更新时间", isInsert=false, isQuery=false, isUpdateForce=true),
}, orderBy="a.create_time DESC"
)
@Data
public class MyPerson extends DataEntity<MyPerson> implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
private Date createTime; // 记录时间
private String personId; // 唯一主键
private String personName; // 姓名
private String gender; // 性别
private String idCard; // 身份证号
private String phone; // 手机号码
private String email; // 邮箱
private Date birthDate; // 出生日期
private String address; // 居住地址
private String department; // 所属部门
private String positionName; // 职位
private String ustatus; // 状态
private String companyId; // 公司编号
private Date updateTime; // 更新时间
@ExcelFields({
@ExcelField(title="记录时间", attrName="createTime", align=Align.CENTER, sort=10, dataFormat="yyyy-MM-dd hh:mm"),
@ExcelField(title="唯一主键", attrName="personId", align=Align.CENTER, sort=20),
@ExcelField(title="姓名", attrName="personName", align=Align.CENTER, sort=30),
@ExcelField(title="性别", attrName="gender", align=Align.CENTER, sort=40),
@ExcelField(title="身份证号", attrName="idCard", align=Align.CENTER, sort=50),
@ExcelField(title="手机号码", attrName="phone", align=Align.CENTER, sort=60),
@ExcelField(title="邮箱", attrName="email", align=Align.CENTER, sort=70),
@ExcelField(title="出生日期", attrName="birthDate", align=Align.CENTER, sort=80, dataFormat="yyyy-MM-dd hh:mm"),
@ExcelField(title="居住地址", attrName="address", align=Align.CENTER, sort=90),
@ExcelField(title="所属部门", attrName="department", align=Align.CENTER, sort=100),
@ExcelField(title="职位", attrName="positionName", align=Align.CENTER, sort=110),
@ExcelField(title="状态", attrName="ustatus", align=Align.CENTER, sort=120),
@ExcelField(title="公司编号", attrName="companyId", align=Align.CENTER, sort=130),
@ExcelField(title="更新时间", attrName="updateTime", align=Align.CENTER, sort=140, dataFormat="yyyy-MM-dd hh:mm"),
})
public MyPerson() {
this(null);
}
public MyPerson(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);
}
}

View File

@@ -0,0 +1,134 @@
package com.jeesite.modules.biz.service;
import java.util.List;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.jeesite.common.entity.Page;
import com.jeesite.common.service.CrudService;
import com.jeesite.modules.biz.entity.MyCompany;
import com.jeesite.modules.biz.dao.MyCompanyDao;
import com.jeesite.common.service.ServiceException;
import com.jeesite.common.config.Global;
import com.jeesite.common.validator.ValidatorUtils;
import com.jeesite.common.utils.excel.ExcelImport;
import org.springframework.web.multipart.MultipartFile;
import jakarta.validation.ConstraintViolation;
import jakarta.validation.ConstraintViolationException;
/**
* 公司信息 Service
* @author gaoxq
* @version 2026-03-20
*/
@Service
public class MyCompanyService extends CrudService<MyCompanyDao, MyCompany> {
/**
* 获取单条数据
* @param myCompany 主键
*/
@Override
public MyCompany get(MyCompany myCompany) {
return super.get(myCompany);
}
/**
* 查询分页数据
* @param myCompany 查询条件
* @param myCompany page 分页对象
*/
@Override
public Page<MyCompany> findPage(MyCompany myCompany) {
return super.findPage(myCompany);
}
/**
* 查询列表数据
* @param myCompany 查询条件
*/
@Override
public List<MyCompany> findList(MyCompany myCompany) {
return super.findList(myCompany);
}
/**
* 保存数据(插入或更新)
* @param myCompany 数据对象
*/
@Override
@Transactional
public void save(MyCompany myCompany) {
super.save(myCompany);
}
/**
* 导入数据
* @param file 导入的数据文件
*/
@Transactional
public String importData(MultipartFile file) {
if (file == null){
throw new ServiceException(text("请选择导入的数据文件!"));
}
int successNum = 0; int failureNum = 0;
StringBuilder successMsg = new StringBuilder();
StringBuilder failureMsg = new StringBuilder();
try(ExcelImport ei = new ExcelImport(file, 2, 0)){
List<MyCompany> list = ei.getDataList(MyCompany.class);
for (MyCompany myCompany : list) {
try{
ValidatorUtils.validateWithException(myCompany);
this.save(myCompany);
successNum++;
successMsg.append("<br/>" + successNum + "、编号 " + myCompany.getId() + " 导入成功");
} catch (Exception e) {
failureNum++;
String msg = "<br/>" + failureNum + "、编号 " + myCompany.getId() + " 导入失败:";
if (e instanceof ConstraintViolationException){
ConstraintViolationException cve = (ConstraintViolationException)e;
for (ConstraintViolation<?> violation : cve.getConstraintViolations()) {
msg += Global.getText(violation.getMessage()) + " ("+violation.getPropertyPath()+")";
}
}else{
msg += e.getMessage();
}
failureMsg.append(msg);
logger.error(msg, e);
}
}
} catch (Exception e) {
logger.error(e.getMessage(), e);
failureMsg.append(e.getMessage());
return failureMsg.toString();
}
if (failureNum > 0) {
failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
throw new ServiceException(failureMsg.toString());
}else{
successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
}
return successMsg.toString();
}
/**
* 更新状态
* @param myCompany 数据对象
*/
@Override
@Transactional
public void updateStatus(MyCompany myCompany) {
super.updateStatus(myCompany);
}
/**
* 删除数据
* @param myCompany 数据对象
*/
@Override
@Transactional
public void delete(MyCompany myCompany) {
super.delete(myCompany);
}
}

View File

@@ -0,0 +1,134 @@
package com.jeesite.modules.biz.service;
import java.util.List;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.jeesite.common.entity.Page;
import com.jeesite.common.service.CrudService;
import com.jeesite.modules.biz.entity.MyNotes;
import com.jeesite.modules.biz.dao.MyNotesDao;
import com.jeesite.common.service.ServiceException;
import com.jeesite.common.config.Global;
import com.jeesite.common.validator.ValidatorUtils;
import com.jeesite.common.utils.excel.ExcelImport;
import org.springframework.web.multipart.MultipartFile;
import jakarta.validation.ConstraintViolation;
import jakarta.validation.ConstraintViolationException;
/**
* 便签信息 Service
* @author gaoxq
* @version 2026-03-20
*/
@Service
public class MyNotesService extends CrudService<MyNotesDao, MyNotes> {
/**
* 获取单条数据
* @param myNotes 主键
*/
@Override
public MyNotes get(MyNotes myNotes) {
return super.get(myNotes);
}
/**
* 查询分页数据
* @param myNotes 查询条件
* @param myNotes page 分页对象
*/
@Override
public Page<MyNotes> findPage(MyNotes myNotes) {
return super.findPage(myNotes);
}
/**
* 查询列表数据
* @param myNotes 查询条件
*/
@Override
public List<MyNotes> findList(MyNotes myNotes) {
return super.findList(myNotes);
}
/**
* 保存数据(插入或更新)
* @param myNotes 数据对象
*/
@Override
@Transactional
public void save(MyNotes myNotes) {
super.save(myNotes);
}
/**
* 导入数据
* @param file 导入的数据文件
*/
@Transactional
public String importData(MultipartFile file) {
if (file == null){
throw new ServiceException(text("请选择导入的数据文件!"));
}
int successNum = 0; int failureNum = 0;
StringBuilder successMsg = new StringBuilder();
StringBuilder failureMsg = new StringBuilder();
try(ExcelImport ei = new ExcelImport(file, 2, 0)){
List<MyNotes> list = ei.getDataList(MyNotes.class);
for (MyNotes myNotes : list) {
try{
ValidatorUtils.validateWithException(myNotes);
this.save(myNotes);
successNum++;
successMsg.append("<br/>" + successNum + "、编号 " + myNotes.getId() + " 导入成功");
} catch (Exception e) {
failureNum++;
String msg = "<br/>" + failureNum + "、编号 " + myNotes.getId() + " 导入失败:";
if (e instanceof ConstraintViolationException){
ConstraintViolationException cve = (ConstraintViolationException)e;
for (ConstraintViolation<?> violation : cve.getConstraintViolations()) {
msg += Global.getText(violation.getMessage()) + " ("+violation.getPropertyPath()+")";
}
}else{
msg += e.getMessage();
}
failureMsg.append(msg);
logger.error(msg, e);
}
}
} catch (Exception e) {
logger.error(e.getMessage(), e);
failureMsg.append(e.getMessage());
return failureMsg.toString();
}
if (failureNum > 0) {
failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
throw new ServiceException(failureMsg.toString());
}else{
successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
}
return successMsg.toString();
}
/**
* 更新状态
* @param myNotes 数据对象
*/
@Override
@Transactional
public void updateStatus(MyNotes myNotes) {
super.updateStatus(myNotes);
}
/**
* 删除数据
* @param myNotes 数据对象
*/
@Override
@Transactional
public void delete(MyNotes myNotes) {
super.delete(myNotes);
}
}

View File

@@ -0,0 +1,134 @@
package com.jeesite.modules.biz.service;
import java.util.List;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.jeesite.common.entity.Page;
import com.jeesite.common.service.CrudService;
import com.jeesite.modules.biz.entity.MyPerson;
import com.jeesite.modules.biz.dao.MyPersonDao;
import com.jeesite.common.service.ServiceException;
import com.jeesite.common.config.Global;
import com.jeesite.common.validator.ValidatorUtils;
import com.jeesite.common.utils.excel.ExcelImport;
import org.springframework.web.multipart.MultipartFile;
import jakarta.validation.ConstraintViolation;
import jakarta.validation.ConstraintViolationException;
/**
* 人员信息 Service
* @author gaoxq
* @version 2026-03-20
*/
@Service
public class MyPersonService extends CrudService<MyPersonDao, MyPerson> {
/**
* 获取单条数据
* @param myPerson 主键
*/
@Override
public MyPerson get(MyPerson myPerson) {
return super.get(myPerson);
}
/**
* 查询分页数据
* @param myPerson 查询条件
* @param myPerson page 分页对象
*/
@Override
public Page<MyPerson> findPage(MyPerson myPerson) {
return super.findPage(myPerson);
}
/**
* 查询列表数据
* @param myPerson 查询条件
*/
@Override
public List<MyPerson> findList(MyPerson myPerson) {
return super.findList(myPerson);
}
/**
* 保存数据(插入或更新)
* @param myPerson 数据对象
*/
@Override
@Transactional
public void save(MyPerson myPerson) {
super.save(myPerson);
}
/**
* 导入数据
* @param file 导入的数据文件
*/
@Transactional
public String importData(MultipartFile file) {
if (file == null){
throw new ServiceException(text("请选择导入的数据文件!"));
}
int successNum = 0; int failureNum = 0;
StringBuilder successMsg = new StringBuilder();
StringBuilder failureMsg = new StringBuilder();
try(ExcelImport ei = new ExcelImport(file, 2, 0)){
List<MyPerson> list = ei.getDataList(MyPerson.class);
for (MyPerson myPerson : list) {
try{
ValidatorUtils.validateWithException(myPerson);
this.save(myPerson);
successNum++;
successMsg.append("<br/>" + successNum + "、编号 " + myPerson.getId() + " 导入成功");
} catch (Exception e) {
failureNum++;
String msg = "<br/>" + failureNum + "、编号 " + myPerson.getId() + " 导入失败:";
if (e instanceof ConstraintViolationException){
ConstraintViolationException cve = (ConstraintViolationException)e;
for (ConstraintViolation<?> violation : cve.getConstraintViolations()) {
msg += Global.getText(violation.getMessage()) + " ("+violation.getPropertyPath()+")";
}
}else{
msg += e.getMessage();
}
failureMsg.append(msg);
logger.error(msg, e);
}
}
} catch (Exception e) {
logger.error(e.getMessage(), e);
failureMsg.append(e.getMessage());
return failureMsg.toString();
}
if (failureNum > 0) {
failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
throw new ServiceException(failureMsg.toString());
}else{
successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
}
return successMsg.toString();
}
/**
* 更新状态
* @param myPerson 数据对象
*/
@Override
@Transactional
public void updateStatus(MyPerson myPerson) {
super.updateStatus(myPerson);
}
/**
* 删除数据
* @param myPerson 数据对象
*/
@Override
@Transactional
public void delete(MyPerson myPerson) {
super.delete(myPerson);
}
}

View File

@@ -0,0 +1,146 @@
package com.jeesite.modules.biz.web;
import java.util.List;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.jeesite.common.config.Global;
import com.jeesite.common.collect.ListUtils;
import com.jeesite.common.entity.Page;
import com.jeesite.common.lang.DateUtils;
import com.jeesite.common.utils.excel.ExcelExport;
import com.jeesite.common.utils.excel.annotation.ExcelField.Type;
import org.springframework.web.multipart.MultipartFile;
import com.jeesite.common.web.BaseController;
import com.jeesite.modules.biz.entity.MyCompany;
import com.jeesite.modules.biz.service.MyCompanyService;
/**
* 公司信息 Controller
* @author gaoxq
* @version 2026-03-20
*/
@Controller
@RequestMapping(value = "${adminPath}/biz/myCompany")
public class MyCompanyController extends BaseController {
private final MyCompanyService myCompanyService;
public MyCompanyController(MyCompanyService myCompanyService) {
this.myCompanyService = myCompanyService;
}
/**
* 获取数据
*/
@ModelAttribute
public MyCompany get(String companyId, boolean isNewRecord) {
return myCompanyService.get(companyId, isNewRecord);
}
/**
* 查询列表
*/
@RequiresPermissions("biz:myCompany:view")
@RequestMapping(value = {"list", ""})
public String list(MyCompany myCompany, Model model) {
model.addAttribute("myCompany", myCompany);
return "modules/biz/myCompanyList";
}
/**
* 查询列表数据
*/
@RequiresPermissions("biz:myCompany:view")
@RequestMapping(value = "listData")
@ResponseBody
public Page<MyCompany> listData(MyCompany myCompany, HttpServletRequest request, HttpServletResponse response) {
myCompany.setPage(new Page<>(request, response));
Page<MyCompany> page = myCompanyService.findPage(myCompany);
return page;
}
/**
* 查看编辑表单
*/
@RequiresPermissions("biz:myCompany:view")
@RequestMapping(value = "form")
public String form(MyCompany myCompany, Model model) {
model.addAttribute("myCompany", myCompany);
return "modules/biz/myCompanyForm";
}
/**
* 保存数据
*/
@RequiresPermissions("biz:myCompany:edit")
@PostMapping(value = "save")
@ResponseBody
public String save(@Validated MyCompany myCompany) {
myCompanyService.save(myCompany);
return renderResult(Global.TRUE, text("保存公司成功!"));
}
/**
* 导出数据
*/
@RequiresPermissions("biz:myCompany:view")
@RequestMapping(value = "exportData")
public void exportData(MyCompany myCompany, HttpServletResponse response) {
List<MyCompany> list = myCompanyService.findList(myCompany);
String fileName = "公司" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx";
try(ExcelExport ee = new ExcelExport("公司", MyCompany.class)){
ee.setDataList(list).write(response, fileName);
}
}
/**
* 下载模板
*/
@RequiresPermissions("biz:myCompany:view")
@RequestMapping(value = "importTemplate")
public void importTemplate(HttpServletResponse response) {
MyCompany myCompany = new MyCompany();
List<MyCompany> list = ListUtils.newArrayList(myCompany);
String fileName = "公司模板.xlsx";
try(ExcelExport ee = new ExcelExport("公司", MyCompany.class, Type.IMPORT)){
ee.setDataList(list).write(response, fileName);
}
}
/**
* 导入数据
*/
@ResponseBody
@RequiresPermissions("biz:myCompany:edit")
@PostMapping(value = "importData")
public String importData(MultipartFile file) {
try {
String message = myCompanyService.importData(file);
return renderResult(Global.TRUE, "posfull:"+message);
} catch (Exception ex) {
return renderResult(Global.FALSE, "posfull:"+ex.getMessage());
}
}
/**
* 删除数据
*/
@RequiresPermissions("biz:myCompany:edit")
@RequestMapping(value = "delete")
@ResponseBody
public String delete(MyCompany myCompany) {
myCompanyService.delete(myCompany);
return renderResult(Global.TRUE, text("删除公司成功!"));
}
}

View File

@@ -0,0 +1,146 @@
package com.jeesite.modules.biz.web;
import java.util.List;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.jeesite.common.config.Global;
import com.jeesite.common.collect.ListUtils;
import com.jeesite.common.entity.Page;
import com.jeesite.common.lang.DateUtils;
import com.jeesite.common.utils.excel.ExcelExport;
import com.jeesite.common.utils.excel.annotation.ExcelField.Type;
import org.springframework.web.multipart.MultipartFile;
import com.jeesite.common.web.BaseController;
import com.jeesite.modules.biz.entity.MyNotes;
import com.jeesite.modules.biz.service.MyNotesService;
/**
* 便签信息 Controller
* @author gaoxq
* @version 2026-03-20
*/
@Controller
@RequestMapping(value = "${adminPath}/biz/myNotes")
public class MyNotesController extends BaseController {
private final MyNotesService myNotesService;
public MyNotesController(MyNotesService myNotesService) {
this.myNotesService = myNotesService;
}
/**
* 获取数据
*/
@ModelAttribute
public MyNotes get(String noteId, boolean isNewRecord) {
return myNotesService.get(noteId, isNewRecord);
}
/**
* 查询列表
*/
@RequiresPermissions("biz:myNotes:view")
@RequestMapping(value = {"list", ""})
public String list(MyNotes myNotes, Model model) {
model.addAttribute("myNotes", myNotes);
return "modules/biz/myNotesList";
}
/**
* 查询列表数据
*/
@RequiresPermissions("biz:myNotes:view")
@RequestMapping(value = "listData")
@ResponseBody
public Page<MyNotes> listData(MyNotes myNotes, HttpServletRequest request, HttpServletResponse response) {
myNotes.setPage(new Page<>(request, response));
Page<MyNotes> page = myNotesService.findPage(myNotes);
return page;
}
/**
* 查看编辑表单
*/
@RequiresPermissions("biz:myNotes:view")
@RequestMapping(value = "form")
public String form(MyNotes myNotes, Model model) {
model.addAttribute("myNotes", myNotes);
return "modules/biz/myNotesForm";
}
/**
* 保存数据
*/
@RequiresPermissions("biz:myNotes:edit")
@PostMapping(value = "save")
@ResponseBody
public String save(@Validated MyNotes myNotes) {
myNotesService.save(myNotes);
return renderResult(Global.TRUE, text("保存便签成功!"));
}
/**
* 导出数据
*/
@RequiresPermissions("biz:myNotes:view")
@RequestMapping(value = "exportData")
public void exportData(MyNotes myNotes, HttpServletResponse response) {
List<MyNotes> list = myNotesService.findList(myNotes);
String fileName = "便签" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx";
try(ExcelExport ee = new ExcelExport("便签", MyNotes.class)){
ee.setDataList(list).write(response, fileName);
}
}
/**
* 下载模板
*/
@RequiresPermissions("biz:myNotes:view")
@RequestMapping(value = "importTemplate")
public void importTemplate(HttpServletResponse response) {
MyNotes myNotes = new MyNotes();
List<MyNotes> list = ListUtils.newArrayList(myNotes);
String fileName = "便签模板.xlsx";
try(ExcelExport ee = new ExcelExport("便签", MyNotes.class, Type.IMPORT)){
ee.setDataList(list).write(response, fileName);
}
}
/**
* 导入数据
*/
@ResponseBody
@RequiresPermissions("biz:myNotes:edit")
@PostMapping(value = "importData")
public String importData(MultipartFile file) {
try {
String message = myNotesService.importData(file);
return renderResult(Global.TRUE, "posfull:"+message);
} catch (Exception ex) {
return renderResult(Global.FALSE, "posfull:"+ex.getMessage());
}
}
/**
* 删除数据
*/
@RequiresPermissions("biz:myNotes:edit")
@RequestMapping(value = "delete")
@ResponseBody
public String delete(MyNotes myNotes) {
myNotesService.delete(myNotes);
return renderResult(Global.TRUE, text("删除便签成功!"));
}
}

View File

@@ -0,0 +1,146 @@
package com.jeesite.modules.biz.web;
import java.util.List;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.jeesite.common.config.Global;
import com.jeesite.common.collect.ListUtils;
import com.jeesite.common.entity.Page;
import com.jeesite.common.lang.DateUtils;
import com.jeesite.common.utils.excel.ExcelExport;
import com.jeesite.common.utils.excel.annotation.ExcelField.Type;
import org.springframework.web.multipart.MultipartFile;
import com.jeesite.common.web.BaseController;
import com.jeesite.modules.biz.entity.MyPerson;
import com.jeesite.modules.biz.service.MyPersonService;
/**
* 人员信息 Controller
* @author gaoxq
* @version 2026-03-20
*/
@Controller
@RequestMapping(value = "${adminPath}/biz/myPerson")
public class MyPersonController extends BaseController {
private final MyPersonService myPersonService;
public MyPersonController(MyPersonService myPersonService) {
this.myPersonService = myPersonService;
}
/**
* 获取数据
*/
@ModelAttribute
public MyPerson get(String personId, boolean isNewRecord) {
return myPersonService.get(personId, isNewRecord);
}
/**
* 查询列表
*/
@RequiresPermissions("biz:myPerson:view")
@RequestMapping(value = {"list", ""})
public String list(MyPerson myPerson, Model model) {
model.addAttribute("myPerson", myPerson);
return "modules/biz/myPersonList";
}
/**
* 查询列表数据
*/
@RequiresPermissions("biz:myPerson:view")
@RequestMapping(value = "listData")
@ResponseBody
public Page<MyPerson> listData(MyPerson myPerson, HttpServletRequest request, HttpServletResponse response) {
myPerson.setPage(new Page<>(request, response));
Page<MyPerson> page = myPersonService.findPage(myPerson);
return page;
}
/**
* 查看编辑表单
*/
@RequiresPermissions("biz:myPerson:view")
@RequestMapping(value = "form")
public String form(MyPerson myPerson, Model model) {
model.addAttribute("myPerson", myPerson);
return "modules/biz/myPersonForm";
}
/**
* 保存数据
*/
@RequiresPermissions("biz:myPerson:edit")
@PostMapping(value = "save")
@ResponseBody
public String save(@Validated MyPerson myPerson) {
myPersonService.save(myPerson);
return renderResult(Global.TRUE, text("保存人员成功!"));
}
/**
* 导出数据
*/
@RequiresPermissions("biz:myPerson:view")
@RequestMapping(value = "exportData")
public void exportData(MyPerson myPerson, HttpServletResponse response) {
List<MyPerson> list = myPersonService.findList(myPerson);
String fileName = "人员" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx";
try(ExcelExport ee = new ExcelExport("人员", MyPerson.class)){
ee.setDataList(list).write(response, fileName);
}
}
/**
* 下载模板
*/
@RequiresPermissions("biz:myPerson:view")
@RequestMapping(value = "importTemplate")
public void importTemplate(HttpServletResponse response) {
MyPerson myPerson = new MyPerson();
List<MyPerson> list = ListUtils.newArrayList(myPerson);
String fileName = "人员模板.xlsx";
try(ExcelExport ee = new ExcelExport("人员", MyPerson.class, Type.IMPORT)){
ee.setDataList(list).write(response, fileName);
}
}
/**
* 导入数据
*/
@ResponseBody
@RequiresPermissions("biz:myPerson:edit")
@PostMapping(value = "importData")
public String importData(MultipartFile file) {
try {
String message = myPersonService.importData(file);
return renderResult(Global.TRUE, "posfull:"+message);
} catch (Exception ex) {
return renderResult(Global.FALSE, "posfull:"+ex.getMessage());
}
}
/**
* 删除数据
*/
@RequiresPermissions("biz:myPerson:edit")
@RequestMapping(value = "delete")
@ResponseBody
public String delete(MyPerson myPerson) {
myPersonService.delete(myPerson);
return renderResult(Global.TRUE, text("删除人员成功!"));
}
}

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jeesite.modules.biz.dao.MyCompanyDao">
<!-- 查询数据
<select id="findList" resultType="MyCompany">
SELECT ${sqlMap.column.toSql()}
FROM ${sqlMap.table.toSql()}
<where>
${sqlMap.where.toSql()}
</where>
ORDER BY ${sqlMap.order.toSql()}
</select> -->
</mapper>

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jeesite.modules.biz.dao.MyNotesDao">
<!-- 查询数据
<select id="findList" resultType="MyNotes">
SELECT ${sqlMap.column.toSql()}
FROM ${sqlMap.table.toSql()}
<where>
${sqlMap.where.toSql()}
</where>
ORDER BY ${sqlMap.order.toSql()}
</select> -->
</mapper>

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jeesite.modules.biz.dao.MyPersonDao">
<!-- 查询数据
<select id="findList" resultType="MyPerson">
SELECT ${sqlMap.column.toSql()}
FROM ${sqlMap.table.toSql()}
<where>
${sqlMap.where.toSql()}
</where>
ORDER BY ${sqlMap.order.toSql()}
</select> -->
</mapper>