时点花名册接口
parent
e0d009987f
commit
2906b3e02f
@ -1,10 +1,14 @@
|
||||
package com.api.jclproduct.web;
|
||||
|
||||
import javax.ws.rs.Path;
|
||||
|
||||
/**
|
||||
* @Author liang.cheng
|
||||
* @Date 2024/10/25 11:06 AM
|
||||
* @Description:
|
||||
* @Version 1.0
|
||||
*/
|
||||
public class EmployeeRecordReportAction {
|
||||
|
||||
@Path("/jclproduct/report")
|
||||
public class EmployeeRecordReportAction extends com.engine.jclproduct.web.EmployeeRecordReportAction{
|
||||
}
|
||||
|
@ -0,0 +1,21 @@
|
||||
package com.engine.jclproduct.annotation;
|
||||
|
||||
import java.lang.annotation.*;
|
||||
|
||||
/**
|
||||
* @Author liang.cheng
|
||||
* @Date 2024/10/25 1:48 PM
|
||||
* @Description:
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Target({ElementType.ANNOTATION_TYPE})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Documented
|
||||
public @interface CheckboxPopedom {
|
||||
|
||||
String id() default "";
|
||||
|
||||
String showmethod() default "";
|
||||
|
||||
String popedompara() default "";
|
||||
}
|
@ -0,0 +1,25 @@
|
||||
package com.engine.jclproduct.annotation;
|
||||
|
||||
import java.lang.annotation.*;
|
||||
|
||||
/**
|
||||
* @Author liang.cheng
|
||||
* @Date 2024/10/25 1:48 PM
|
||||
* @Description:
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Target({ElementType.ANNOTATION_TYPE})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Documented
|
||||
public @interface OperatePopedom {
|
||||
|
||||
boolean async() default true;
|
||||
|
||||
String transmethod() default "";
|
||||
|
||||
String otherpara() default "";
|
||||
|
||||
String otherpara2() default "";
|
||||
|
||||
String column() default "";
|
||||
}
|
@ -0,0 +1,22 @@
|
||||
package com.engine.jclproduct.annotation;
|
||||
|
||||
import java.lang.annotation.*;
|
||||
|
||||
/**
|
||||
* @Author liang.cheng
|
||||
* @Date 2024/10/25 1:48 PM
|
||||
* @Description:
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Target({ElementType.FIELD})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Documented
|
||||
public @interface TableTitle {
|
||||
int labelId() default -1;
|
||||
String title();
|
||||
String dataIndex();
|
||||
String key();
|
||||
boolean display() default true;
|
||||
String width() default "";
|
||||
boolean sorter() default false;
|
||||
}
|
@ -0,0 +1,35 @@
|
||||
package com.engine.jclproduct.annotation;
|
||||
|
||||
import java.lang.annotation.*;
|
||||
|
||||
/**
|
||||
* @Author liang.cheng
|
||||
* @Date 2024/10/25 1:48 PM
|
||||
* @Description:
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Target({ElementType.FIELD})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Documented
|
||||
public @interface WeaverTableColumn {
|
||||
|
||||
String text() default "";
|
||||
|
||||
int labelId() default -1;
|
||||
|
||||
String width() default "";
|
||||
|
||||
String column() default "";
|
||||
|
||||
boolean display() default true;
|
||||
|
||||
String orderkey() default "";
|
||||
|
||||
String transmethod() default "";
|
||||
|
||||
// 额外参数
|
||||
String otherPara() default "";
|
||||
|
||||
// 多语言转换
|
||||
boolean multiLanguage() default false;
|
||||
}
|
@ -0,0 +1,27 @@
|
||||
package com.engine.jclproduct.annotation;
|
||||
|
||||
import java.lang.annotation.*;
|
||||
|
||||
/**
|
||||
* @Author liang.cheng
|
||||
* @Date 2024/10/25 1:48 PM
|
||||
* @Description:
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Target({ElementType.ANNOTATION_TYPE})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Documented
|
||||
public @interface WeaverTableOperate {
|
||||
|
||||
String text() default "";
|
||||
|
||||
int labelId() default -1;
|
||||
|
||||
String href() default "";
|
||||
|
||||
String index() default "0";
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,134 @@
|
||||
package com.engine.jclproduct.component;
|
||||
|
||||
import com.cloudstore.eccom.constant.WeaBoolAttr;
|
||||
import com.cloudstore.eccom.pc.table.*;
|
||||
import com.engine.jclproduct.annotation.*;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import weaver.general.PageIdConst;
|
||||
import weaver.hrm.User;
|
||||
import weaver.systeminfo.SystemEnv;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public class WeaverWeaTable<T> extends WeaTable {
|
||||
|
||||
public WeaverWeaTable(User user, Class clazz) {
|
||||
|
||||
boolean isAnno = clazz.isAnnotationPresent(WeaverTable.class);
|
||||
if (isAnno) {
|
||||
WeaverTable table = (WeaverTable) clazz.getAnnotation(WeaverTable.class);
|
||||
String pageId = table.pageId();
|
||||
super.setPageID(pageId);
|
||||
String pageUid = pageId + "_" + user.getUID();
|
||||
super.setPageUID(pageUid);
|
||||
String pageSize = PageIdConst.getPageSize(pageId, user.getUID());
|
||||
super.setPagesize(pageSize);
|
||||
String backfields = table.fields();
|
||||
super.setBackfields(backfields);
|
||||
String sql = table.fromSql();
|
||||
super.setSqlform(sql);
|
||||
String where = table.where();
|
||||
if (StringUtils.isNotBlank(where)) {
|
||||
super.setSqlwhere(where);
|
||||
}
|
||||
String orderby = table.orderby();
|
||||
if (StringUtils.isNotBlank(orderby)) {
|
||||
super.setSqlorderby(orderby);
|
||||
}
|
||||
String sortway = table.sortway();
|
||||
if (StringUtils.isNotBlank(sortway)) {
|
||||
super.setSqlsortway(sortway);
|
||||
}
|
||||
String groupby = table.groupby();
|
||||
if (StringUtils.isNotBlank(groupby)) {
|
||||
super.setSqlgroupby(groupby);
|
||||
}
|
||||
boolean distinct = table.distinct();
|
||||
super.setSqlisdistinct(String.valueOf(distinct));
|
||||
String primarykey = table.primarykey();
|
||||
if (StringUtils.isNotBlank(primarykey)) {
|
||||
super.setSqlprimarykey(primarykey);
|
||||
}
|
||||
WeaverTableOperate[] operates = table.operates();
|
||||
if (operates != null && operates.length > 0) {
|
||||
List<WeaTableOperate> operateList = new ArrayList<>();
|
||||
Arrays.stream(operates).forEach(o -> {
|
||||
String text = o.text();
|
||||
int labelId = o.labelId();
|
||||
String htmlLabelName = SystemEnv.getHtmlLabelName(labelId, user.getLanguage());
|
||||
if (StringUtils.isNotBlank(htmlLabelName)) {
|
||||
text = htmlLabelName;
|
||||
}
|
||||
WeaTableOperate weaTableOperate = new WeaTableOperate(text, o.href(), o.index());
|
||||
operateList.add(weaTableOperate);
|
||||
});
|
||||
WeaTableOperates weaTableOperates = new WeaTableOperates();
|
||||
OperatePopedom popedoms = table.operatePopedom();
|
||||
WeaTablePopedom popedom = new WeaTablePopedom();
|
||||
if (popedoms != null && !"".equals(popedoms.transmethod())) {
|
||||
popedom.setTransmethod(popedoms.transmethod());
|
||||
popedom.setOtherpara(popedoms.otherpara());
|
||||
weaTableOperates.setPopedom(popedom);
|
||||
}
|
||||
weaTableOperates.setOperate(operateList);
|
||||
super.setOperates(weaTableOperates);
|
||||
}
|
||||
|
||||
WeaTableType weaTableTypeEnum = table.tableType();
|
||||
//设置check是否可用
|
||||
if (weaTableTypeEnum == WeaTableType.CHECKBOX) {
|
||||
super.setTableType(weaTableTypeEnum);
|
||||
CheckboxPopedom checkPopedom = table.checkboxPopedom();
|
||||
WeaTableCheckboxpopedom checkboxpopedom = new WeaTableCheckboxpopedom();
|
||||
if (checkPopedom != null && !"".equals(checkPopedom.showmethod())) {
|
||||
checkboxpopedom.setShowmethod(checkPopedom.showmethod());
|
||||
checkboxpopedom.setPopedompara(checkPopedom.popedompara());
|
||||
}
|
||||
super.setCheckboxpopedom(checkboxpopedom);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Field[] fields = clazz.getDeclaredFields();
|
||||
for (Field f : fields) {
|
||||
boolean isanno = f.isAnnotationPresent(WeaverTableColumn.class);
|
||||
if (isanno) {
|
||||
WeaverTableColumn columnAnn = f.getAnnotation(WeaverTableColumn.class);
|
||||
String text = columnAnn.text();
|
||||
int labelId = columnAnn.labelId();
|
||||
String htmlLabelName = SystemEnv.getHtmlLabelName(labelId, user.getLanguage());
|
||||
if (StringUtils.isNotBlank(htmlLabelName)) {
|
||||
text = htmlLabelName;
|
||||
}
|
||||
String width = columnAnn.width();
|
||||
String column = columnAnn.column();
|
||||
String orderkey = columnAnn.orderkey();
|
||||
boolean display = columnAnn.display();
|
||||
WeaTableColumn weaTableColumn = new WeaTableColumn(width, text, column, orderkey);
|
||||
String transmethod = columnAnn.transmethod();
|
||||
|
||||
if (StringUtils.isNotBlank(transmethod)) {
|
||||
weaTableColumn.setTransmethod(transmethod);
|
||||
}
|
||||
String otherPara = columnAnn.otherPara();
|
||||
if (StringUtils.isNotBlank(otherPara)) {
|
||||
weaTableColumn.setOtherpara(otherPara);
|
||||
} else {
|
||||
// 未设置其他参数,但是设置了多语言,自动添加其它参数为语言类型
|
||||
if (columnAnn.multiLanguage()) {
|
||||
weaTableColumn.setOtherpara(String.valueOf(user.getLanguage()));
|
||||
}
|
||||
}
|
||||
if (!display) {
|
||||
weaTableColumn.setDisplay(WeaBoolAttr.FALSE);
|
||||
}
|
||||
super.getColumns().add(weaTableColumn);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,109 @@
|
||||
package com.engine.jclproduct.entity.vo;
|
||||
|
||||
import com.cloudstore.eccom.pc.table.WeaTableType;
|
||||
import com.engine.jclproduct.annotation.WeaverTable;
|
||||
import com.engine.jclproduct.annotation.WeaverTableColumn;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @Author liang.cheng
|
||||
* @Date 2024/10/25 2:22 PM
|
||||
* @Description:
|
||||
* @Version 1.0
|
||||
*/
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@WeaverTable(pageId = "6f201832-a940-4225-a4c9-3f4b96ff5b89",
|
||||
fields = "t.id," +
|
||||
"t.userId," +
|
||||
"t.workcode," +
|
||||
"t.employeeStatus," +
|
||||
"t.subCompanyId," +
|
||||
"t.departmentId," +
|
||||
"t.position," +
|
||||
"t.superior," +
|
||||
"t.companyStartDate," +
|
||||
"t.workyear," +
|
||||
"t.sex," +
|
||||
"t.birthday",
|
||||
fromSql = "FROM uf_EmploymentRecord t",
|
||||
orderby = "userid",
|
||||
sortway = "asc",
|
||||
primarykey = "id",
|
||||
tableType = WeaTableType.CHECKBOX
|
||||
)
|
||||
public class TimeResourceVo {
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
@WeaverTableColumn(column = "id",text = "序号", display = false)
|
||||
private Integer id;
|
||||
|
||||
/**
|
||||
* 姓名
|
||||
*/
|
||||
@WeaverTableColumn( text = "姓名", width = "10%", column = "userId", transmethod = "")
|
||||
private String userId;
|
||||
/**
|
||||
* 工号
|
||||
*/
|
||||
@WeaverTableColumn( text = "工号", width = "10%", column = "workcode", transmethod = "")
|
||||
private String workcode;
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
@WeaverTableColumn( text = "状态", width = "10%", column = "employeeStatus")
|
||||
private String employeeStatus;
|
||||
|
||||
/**
|
||||
* 分部
|
||||
*/
|
||||
@WeaverTableColumn( text = "分部", width = "10%", column = "subCompanyId", transmethod = "")
|
||||
private String subCompanyId;
|
||||
/**
|
||||
* 部门
|
||||
*/
|
||||
@WeaverTableColumn( text = "部门", width = "10%", column = "departmentId", transmethod = "")
|
||||
private String departmentId;
|
||||
/**
|
||||
* 岗位
|
||||
*/
|
||||
@WeaverTableColumn( text = "岗位", width = "10%", column = "position", transmethod = "")
|
||||
private String position;
|
||||
/**
|
||||
* 直接上级
|
||||
*/
|
||||
@WeaverTableColumn( text = "直接上级", width = "10%", column = "superior")
|
||||
private Integer superior;
|
||||
/**
|
||||
* 入职日期
|
||||
*/
|
||||
@WeaverTableColumn( text = "入职日期", width = "10%", column = "companyStartDate")
|
||||
private Integer companyStartDate;
|
||||
/**
|
||||
* 司龄
|
||||
*/
|
||||
@WeaverTableColumn( text = "司龄", width = "10%", column = "workyear")
|
||||
private Integer workyear;
|
||||
/**
|
||||
* 性别
|
||||
*/
|
||||
@WeaverTableColumn( text = "性别", width = "20%", column = "sex", transmethod = "")
|
||||
private String sex;
|
||||
/**
|
||||
* 生日
|
||||
*/
|
||||
@WeaverTableColumn( text = "生日", width = "10%", column = "birthday")
|
||||
private String birthday;
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
package com.engine.jclproduct.transmethod;
|
||||
|
||||
|
||||
import weaver.hrm.company.SubCompanyComInfo;
|
||||
|
||||
/**
|
||||
* @Author liang.cheng
|
||||
* @Date 2024/10/25 2:34 PM
|
||||
* @Description:
|
||||
* @Version 1.0
|
||||
*/
|
||||
public class EmReportTransMethod {
|
||||
|
||||
public static String subCompanyName(String id) {
|
||||
SubCompanyComInfo subCompanyComInfo = new SubCompanyComInfo();
|
||||
return subCompanyComInfo.getSubCompanyname(id);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue