diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/dao/AttendanceExportRecordDao.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/dao/AttendanceExportRecordDao.java new file mode 100644 index 0000000000000000000000000000000000000000..c9867c22193ded1a94ea469865aac8b940c6597f --- /dev/null +++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/dao/AttendanceExportRecordDao.java @@ -0,0 +1,17 @@ +package com.mortals.xhx.module.attendance.dao; + +import com.mortals.framework.dao.ICRUDDao; +import com.mortals.xhx.module.attendance.model.AttendanceExportRecordEntity; +import java.util.List; +/** +* 瀵煎叆瀵煎嚭璁板綍Dao +* 瀵煎叆瀵煎嚭璁板綍 DAO鎺ュ彛 +* +* @author zxfei +* @date 2023-04-17 +*/ + +public interface AttendanceExportRecordDao extends ICRUDDao<AttendanceExportRecordEntity,Long>{ + + +} diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/dao/ibatis/AttendanceExportRecordDaoImpl.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/dao/ibatis/AttendanceExportRecordDaoImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..5a2fa2269cbcf92bea00f45f7f15c239be0aaf56 --- /dev/null +++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/dao/ibatis/AttendanceExportRecordDaoImpl.java @@ -0,0 +1,21 @@ +package com.mortals.xhx.module.attendance.dao.ibatis; + + +import org.springframework.stereotype.Repository; +import com.mortals.xhx.module.attendance.dao.AttendanceExportRecordDao; +import com.mortals.xhx.module.attendance.model.AttendanceExportRecordEntity; +import java.util.Date; +import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis; +import java.util.List; +/** +* 瀵煎叆瀵煎嚭璁板綍DaoImpl DAO鎺ュ彛 +* +* @author zxfei +* @date 2023-04-17 +*/ +@Repository("attendanceExportRecordDao") +public class AttendanceExportRecordDaoImpl extends BaseCRUDDaoMybatis<AttendanceExportRecordEntity,Long> implements AttendanceExportRecordDao { + + + +} diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/AttendanceExportRecordEntity.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/AttendanceExportRecordEntity.java new file mode 100644 index 0000000000000000000000000000000000000000..786fd7644d1da0810e7ea8b9d04c63320ac9ff00 --- /dev/null +++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/AttendanceExportRecordEntity.java @@ -0,0 +1,239 @@ +package com.mortals.xhx.module.attendance.model; + +import java.util.List; +import java.util.ArrayList; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.mortals.framework.annotation.Excel; +import com.mortals.framework.model.BaseEntityLong; +import com.mortals.xhx.module.attendance.model.vo.AttendanceExportRecordVo; +/** + * 瀵煎叆瀵煎嚭璁板綍瀹炰綋瀵硅薄 + * + * @author zxfei + * @date 2023-04-17 + */ + +public class AttendanceExportRecordEntity extends AttendanceExportRecordVo { + private static final long serialVersionUID = 1L; + + /** + * 閫夋嫨閮ㄩ棬鍚嶇О + */ + private String deptName; + /** + * 閫夋嫨鑰冨嫟缁勫悕绉� + */ + private String groupName; + /** + * 閫夋嫨鐝鍚嶇О + */ + private String className; + /** + * 閫夋嫨寮€濮嬫椂闂村拰缁撴潫鏃堕棿娈� + */ + private String attendanceDate; + /** + * 瀵煎嚭杩樻槸瀵煎叆(1.瀵煎嚭,2.瀵煎叆) + */ + private Integer exportOrImport; + /** + * 瀵煎嚭鏂囦欢璺緞 + */ + private String filePath; + /** + * 姹囨€昏繕鏄瘡鏃ユ墦鍗¤褰�(1.姹囨€�,2.姣忔棩鎵撳崱璁板綍) + */ + private Integer type; + /** + * 澶囨敞 + */ + private String remark; + /** + * 閫夋嫨id鍒楄〃 + */ + private String recordIdList; + + + + public AttendanceExportRecordEntity(){} + /** + * 鑾峰彇 閫夋嫨閮ㄩ棬鍚嶇О + * @return String + */ + public String getDeptName(){ + return deptName; + } + /** + * 璁剧疆 閫夋嫨閮ㄩ棬鍚嶇О + * @param deptName + */ + public void setDeptName(String deptName){ + this.deptName = deptName; + } + /** + * 鑾峰彇 閫夋嫨鑰冨嫟缁勫悕绉� + * @return String + */ + public String getGroupName(){ + return groupName; + } + /** + * 璁剧疆 閫夋嫨鑰冨嫟缁勫悕绉� + * @param groupName + */ + public void setGroupName(String groupName){ + this.groupName = groupName; + } + /** + * 鑾峰彇 閫夋嫨鐝鍚嶇О + * @return String + */ + public String getClassName(){ + return className; + } + /** + * 璁剧疆 閫夋嫨鐝鍚嶇О + * @param className + */ + public void setClassName(String className){ + this.className = className; + } + /** + * 鑾峰彇 閫夋嫨寮€濮嬫椂闂村拰缁撴潫鏃堕棿娈� + * @return String + */ + public String getAttendanceDate(){ + return attendanceDate; + } + /** + * 璁剧疆 閫夋嫨寮€濮嬫椂闂村拰缁撴潫鏃堕棿娈� + * @param attendanceDate + */ + public void setAttendanceDate(String attendanceDate){ + this.attendanceDate = attendanceDate; + } + /** + * 鑾峰彇 瀵煎嚭杩樻槸瀵煎叆(1.瀵煎嚭,2.瀵煎叆) + * @return Integer + */ + public Integer getExportOrImport(){ + return exportOrImport; + } + /** + * 璁剧疆 瀵煎嚭杩樻槸瀵煎叆(1.瀵煎嚭,2.瀵煎叆) + * @param exportOrImport + */ + public void setExportOrImport(Integer exportOrImport){ + this.exportOrImport = exportOrImport; + } + /** + * 鑾峰彇 瀵煎嚭鏂囦欢璺緞 + * @return String + */ + public String getFilePath(){ + return filePath; + } + /** + * 璁剧疆 瀵煎嚭鏂囦欢璺緞 + * @param filePath + */ + public void setFilePath(String filePath){ + this.filePath = filePath; + } + /** + * 鑾峰彇 姹囨€昏繕鏄瘡鏃ユ墦鍗¤褰�(1.姹囨€�,2.姣忔棩鎵撳崱璁板綍) + * @return Integer + */ + public Integer getType(){ + return type; + } + /** + * 璁剧疆 姹囨€昏繕鏄瘡鏃ユ墦鍗¤褰�(1.姹囨€�,2.姣忔棩鎵撳崱璁板綍) + * @param type + */ + public void setType(Integer type){ + this.type = type; + } + /** + * 鑾峰彇 澶囨敞 + * @return String + */ + public String getRemark(){ + return remark; + } + /** + * 璁剧疆 澶囨敞 + * @param remark + */ + public void setRemark(String remark){ + this.remark = remark; + } + /** + * 鑾峰彇 閫夋嫨id鍒楄〃 + * @return String + */ + public String getRecordIdList(){ + return recordIdList; + } + /** + * 璁剧疆 閫夋嫨id鍒楄〃 + * @param recordIdList + */ + public void setRecordIdList(String recordIdList){ + this.recordIdList = recordIdList; + } + + + + + @Override + public int hashCode() { + return this.getId().hashCode(); + } + @Override + public boolean equals(Object obj) { + if (obj == null) return false; + if (obj instanceof AttendanceExportRecordEntity) { + AttendanceExportRecordEntity tmp = (AttendanceExportRecordEntity) obj; + if (this.getId() == tmp.getId()) { + return true; + } + } + return false; + } + + public String toString(){ + StringBuilder sb = new StringBuilder(""); + sb.append(",deptName:").append(getDeptName()); + sb.append(",groupName:").append(getGroupName()); + sb.append(",className:").append(getClassName()); + sb.append(",attendanceDate:").append(getAttendanceDate()); + sb.append(",exportOrImport:").append(getExportOrImport()); + sb.append(",filePath:").append(getFilePath()); + sb.append(",type:").append(getType()); + sb.append(",remark:").append(getRemark()); + sb.append(",recordIdList:").append(getRecordIdList()); + return sb.toString(); + } + + public void initAttrValue(){ + + this.deptName = ""; + + this.groupName = ""; + + this.className = ""; + + this.attendanceDate = ""; + + this.exportOrImport = 1; + + this.filePath = ""; + + this.type = 1; + + this.remark = ""; + + this.recordIdList = ""; + } +} diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/AttendanceExportRecordQuery.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/AttendanceExportRecordQuery.java new file mode 100644 index 0000000000000000000000000000000000000000..d30d79584393c509b5baf3f12c306d4d97d06720 --- /dev/null +++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/AttendanceExportRecordQuery.java @@ -0,0 +1,1272 @@ +package com.mortals.xhx.module.attendance.model; + +import java.util.List; +import com.mortals.xhx.module.attendance.model.AttendanceExportRecordEntity; +/** + * 瀵煎叆瀵煎嚭璁板綍鏌ヨ瀵硅薄 + * + * @author zxfei + * @date 2023-04-17 + */ +public class AttendanceExportRecordQuery extends AttendanceExportRecordEntity { + /** 寮€濮� */ + private Long idStart; + + /** 缁撴潫 */ + private Long idEnd; + + /** 澧炲姞 */ + private Long idIncrement; + + /** 鍒楄〃 */ + private List <Long> idList; + + /** 鎺掗櫎鍒楄〃 */ + private List <Long> idNotList; + + /** 閫夋嫨閮ㄩ棬鍚嶇О */ + private List<String> deptNameList; + + /** 閫夋嫨閮ㄩ棬鍚嶇О鎺掗櫎鍒楄〃 */ + private List <String> deptNameNotList; + /** 閫夋嫨鑰冨嫟缁勫悕绉� */ + private List<String> groupNameList; + + /** 閫夋嫨鑰冨嫟缁勫悕绉版帓闄ゅ垪琛� */ + private List <String> groupNameNotList; + /** 閫夋嫨鐝鍚嶇О */ + private List<String> classNameList; + + /** 閫夋嫨鐝鍚嶇О鎺掗櫎鍒楄〃 */ + private List <String> classNameNotList; + /** 閫夋嫨寮€濮嬫椂闂村拰缁撴潫鏃堕棿娈� */ + private List<String> attendanceDateList; + + /** 閫夋嫨寮€濮嬫椂闂村拰缁撴潫鏃堕棿娈垫帓闄ゅ垪琛� */ + private List <String> attendanceDateNotList; + /** 寮€濮� 瀵煎嚭杩樻槸瀵煎叆(1.瀵煎嚭,2.瀵煎叆) */ + private Integer exportOrImportStart; + + /** 缁撴潫 瀵煎嚭杩樻槸瀵煎叆(1.瀵煎嚭,2.瀵煎叆) */ + private Integer exportOrImportEnd; + + /** 澧炲姞 瀵煎嚭杩樻槸瀵煎叆(1.瀵煎嚭,2.瀵煎叆) */ + private Integer exportOrImportIncrement; + + /** 瀵煎嚭杩樻槸瀵煎叆(1.瀵煎嚭,2.瀵煎叆)鍒楄〃 */ + private List <Integer> exportOrImportList; + + /** 瀵煎嚭杩樻槸瀵煎叆(1.瀵煎嚭,2.瀵煎叆)鎺掗櫎鍒楄〃 */ + private List <Integer> exportOrImportNotList; + + /** 瀵煎嚭鏂囦欢璺緞 */ + private List<String> filePathList; + + /** 瀵煎嚭鏂囦欢璺緞鎺掗櫎鍒楄〃 */ + private List <String> filePathNotList; + /** 寮€濮� 姹囨€昏繕鏄瘡鏃ユ墦鍗¤褰�(1.姹囨€�,2.姣忔棩鎵撳崱璁板綍) */ + private Integer typeStart; + + /** 缁撴潫 姹囨€昏繕鏄瘡鏃ユ墦鍗¤褰�(1.姹囨€�,2.姣忔棩鎵撳崱璁板綍) */ + private Integer typeEnd; + + /** 澧炲姞 姹囨€昏繕鏄瘡鏃ユ墦鍗¤褰�(1.姹囨€�,2.姣忔棩鎵撳崱璁板綍) */ + private Integer typeIncrement; + + /** 姹囨€昏繕鏄瘡鏃ユ墦鍗¤褰�(1.姹囨€�,2.姣忔棩鎵撳崱璁板綍)鍒楄〃 */ + private List <Integer> typeList; + + /** 姹囨€昏繕鏄瘡鏃ユ墦鍗¤褰�(1.姹囨€�,2.姣忔棩鎵撳崱璁板綍)鎺掗櫎鍒楄〃 */ + private List <Integer> typeNotList; + + /** 澶囨敞 */ + private List<String> remarkList; + + /** 澶囨敞鎺掗櫎鍒楄〃 */ + private List <String> remarkNotList; + /** 寮€濮� 鍒涘缓鐢ㄦ埛 */ + private Long createUserIdStart; + + /** 缁撴潫 鍒涘缓鐢ㄦ埛 */ + private Long createUserIdEnd; + + /** 澧炲姞 鍒涘缓鐢ㄦ埛 */ + private Long createUserIdIncrement; + + /** 鍒涘缓鐢ㄦ埛鍒楄〃 */ + private List <Long> createUserIdList; + + /** 鍒涘缓鐢ㄦ埛鎺掗櫎鍒楄〃 */ + private List <Long> createUserIdNotList; + + /** 寮€濮� 鍒涘缓鏃堕棿 */ + private String createTimeStart; + + /** 缁撴潫 鍒涘缓鏃堕棿 */ + private String createTimeEnd; + + /** 寮€濮� 鏇存柊鐢ㄦ埛 */ + private Long updateUserIdStart; + + /** 缁撴潫 鏇存柊鐢ㄦ埛 */ + private Long updateUserIdEnd; + + /** 澧炲姞 鏇存柊鐢ㄦ埛 */ + private Long updateUserIdIncrement; + + /** 鏇存柊鐢ㄦ埛鍒楄〃 */ + private List <Long> updateUserIdList; + + /** 鏇存柊鐢ㄦ埛鎺掗櫎鍒楄〃 */ + private List <Long> updateUserIdNotList; + + /** 寮€濮� 鏇存柊鏃堕棿 */ + private String updateTimeStart; + + /** 缁撴潫 鏇存柊鏃堕棿 */ + private String updateTimeEnd; + + /** 閫夋嫨id鍒楄〃 */ + private List<String> recordIdListList; + + /** 閫夋嫨id鍒楄〃鎺掗櫎鍒楄〃 */ + private List <String> recordIdListNotList; + /** OR鏉′欢闆嗗悎锛屽垪琛ㄩ」涔嬮棿鏄疧R锛岄」鍐呭涔嬮棿鏄疉ND锛屽锛�(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */ + private List<AttendanceExportRecordQuery> orConditionList; + + /** AND鏉′欢闆嗗悎锛屽垪琛ㄩ」涔嬮棿鏄疉ND锛岄」鍐呭涔嬮棿鏄疧R锛屽锛�(list[0].1 or list[0].2) and (list[1].3 or list[1].4) */ + private List<AttendanceExportRecordQuery> andConditionList; + + public AttendanceExportRecordQuery(){} + + /** + * 鑾峰彇 寮€濮� + * @return idStart + */ + public Long getIdStart(){ + return this.idStart; + } + + /** + * 璁剧疆 寮€濮� + * @param idStart + */ + public void setIdStart(Long idStart){ + this.idStart = idStart; + } + + /** + * 鑾峰彇 缁撴潫 + * @return $idEnd + */ + public Long getIdEnd(){ + return this.idEnd; + } + + /** + * 璁剧疆 缁撴潫 + * @param idEnd + */ + public void setIdEnd(Long idEnd){ + this.idEnd = idEnd; + } + + /** + * 鑾峰彇 澧炲姞 + * @return idIncrement + */ + public Long getIdIncrement(){ + return this.idIncrement; + } + + /** + * 璁剧疆 澧炲姞 + * @param idIncrement + */ + public void setIdIncrement(Long idIncrement){ + this.idIncrement = idIncrement; + } + + /** + * 鑾峰彇 + * @return idList + */ + public List<Long> getIdList(){ + return this.idList; + } + + /** + * 璁剧疆 + * @param idList + */ + public void setIdList(List<Long> idList){ + this.idList = idList; + } + + /** + * 鑾峰彇 + * @return idNotList + */ + public List<Long> getIdNotList(){ + return this.idNotList; + } + + /** + * 璁剧疆 + * @param idNotList + */ + public void setIdNotList(List<Long> idNotList){ + this.idNotList = idNotList; + } + + + /** + * 鑾峰彇 閫夋嫨閮ㄩ棬鍚嶇О + * @return deptNameList + */ + public List<String> getDeptNameList(){ + return this.deptNameList; + } + + /** + * 璁剧疆 閫夋嫨閮ㄩ棬鍚嶇О + * @param deptNameList + */ + public void setDeptNameList(List<String> deptNameList){ + this.deptNameList = deptNameList; + } + + /** + * 鑾峰彇 閫夋嫨閮ㄩ棬鍚嶇О + * @return deptNameNotList + */ + public List<String> getDeptNameNotList(){ + return this.deptNameNotList; + } + + /** + * 璁剧疆 閫夋嫨閮ㄩ棬鍚嶇О + * @param deptNameNotList + */ + public void setDeptNameNotList(List<String> deptNameNotList){ + this.deptNameNotList = deptNameNotList; + } + + /** + * 鑾峰彇 閫夋嫨鑰冨嫟缁勫悕绉� + * @return groupNameList + */ + public List<String> getGroupNameList(){ + return this.groupNameList; + } + + /** + * 璁剧疆 閫夋嫨鑰冨嫟缁勫悕绉� + * @param groupNameList + */ + public void setGroupNameList(List<String> groupNameList){ + this.groupNameList = groupNameList; + } + + /** + * 鑾峰彇 閫夋嫨鑰冨嫟缁勫悕绉� + * @return groupNameNotList + */ + public List<String> getGroupNameNotList(){ + return this.groupNameNotList; + } + + /** + * 璁剧疆 閫夋嫨鑰冨嫟缁勫悕绉� + * @param groupNameNotList + */ + public void setGroupNameNotList(List<String> groupNameNotList){ + this.groupNameNotList = groupNameNotList; + } + + /** + * 鑾峰彇 閫夋嫨鐝鍚嶇О + * @return classNameList + */ + public List<String> getClassNameList(){ + return this.classNameList; + } + + /** + * 璁剧疆 閫夋嫨鐝鍚嶇О + * @param classNameList + */ + public void setClassNameList(List<String> classNameList){ + this.classNameList = classNameList; + } + + /** + * 鑾峰彇 閫夋嫨鐝鍚嶇О + * @return classNameNotList + */ + public List<String> getClassNameNotList(){ + return this.classNameNotList; + } + + /** + * 璁剧疆 閫夋嫨鐝鍚嶇О + * @param classNameNotList + */ + public void setClassNameNotList(List<String> classNameNotList){ + this.classNameNotList = classNameNotList; + } + + /** + * 鑾峰彇 閫夋嫨寮€濮嬫椂闂村拰缁撴潫鏃堕棿娈� + * @return attendanceDateList + */ + public List<String> getAttendanceDateList(){ + return this.attendanceDateList; + } + + /** + * 璁剧疆 閫夋嫨寮€濮嬫椂闂村拰缁撴潫鏃堕棿娈� + * @param attendanceDateList + */ + public void setAttendanceDateList(List<String> attendanceDateList){ + this.attendanceDateList = attendanceDateList; + } + + /** + * 鑾峰彇 閫夋嫨寮€濮嬫椂闂村拰缁撴潫鏃堕棿娈� + * @return attendanceDateNotList + */ + public List<String> getAttendanceDateNotList(){ + return this.attendanceDateNotList; + } + + /** + * 璁剧疆 閫夋嫨寮€濮嬫椂闂村拰缁撴潫鏃堕棿娈� + * @param attendanceDateNotList + */ + public void setAttendanceDateNotList(List<String> attendanceDateNotList){ + this.attendanceDateNotList = attendanceDateNotList; + } + + /** + * 鑾峰彇 寮€濮� 瀵煎嚭杩樻槸瀵煎叆(1.瀵煎嚭,2.瀵煎叆) + * @return exportOrImportStart + */ + public Integer getExportOrImportStart(){ + return this.exportOrImportStart; + } + + /** + * 璁剧疆 寮€濮� 瀵煎嚭杩樻槸瀵煎叆(1.瀵煎嚭,2.瀵煎叆) + * @param exportOrImportStart + */ + public void setExportOrImportStart(Integer exportOrImportStart){ + this.exportOrImportStart = exportOrImportStart; + } + + /** + * 鑾峰彇 缁撴潫 瀵煎嚭杩樻槸瀵煎叆(1.瀵煎嚭,2.瀵煎叆) + * @return $exportOrImportEnd + */ + public Integer getExportOrImportEnd(){ + return this.exportOrImportEnd; + } + + /** + * 璁剧疆 缁撴潫 瀵煎嚭杩樻槸瀵煎叆(1.瀵煎嚭,2.瀵煎叆) + * @param exportOrImportEnd + */ + public void setExportOrImportEnd(Integer exportOrImportEnd){ + this.exportOrImportEnd = exportOrImportEnd; + } + + /** + * 鑾峰彇 澧炲姞 瀵煎嚭杩樻槸瀵煎叆(1.瀵煎嚭,2.瀵煎叆) + * @return exportOrImportIncrement + */ + public Integer getExportOrImportIncrement(){ + return this.exportOrImportIncrement; + } + + /** + * 璁剧疆 澧炲姞 瀵煎嚭杩樻槸瀵煎叆(1.瀵煎嚭,2.瀵煎叆) + * @param exportOrImportIncrement + */ + public void setExportOrImportIncrement(Integer exportOrImportIncrement){ + this.exportOrImportIncrement = exportOrImportIncrement; + } + + /** + * 鑾峰彇 瀵煎嚭杩樻槸瀵煎叆(1.瀵煎嚭,2.瀵煎叆) + * @return exportOrImportList + */ + public List<Integer> getExportOrImportList(){ + return this.exportOrImportList; + } + + /** + * 璁剧疆 瀵煎嚭杩樻槸瀵煎叆(1.瀵煎嚭,2.瀵煎叆) + * @param exportOrImportList + */ + public void setExportOrImportList(List<Integer> exportOrImportList){ + this.exportOrImportList = exportOrImportList; + } + + /** + * 鑾峰彇 瀵煎嚭杩樻槸瀵煎叆(1.瀵煎嚭,2.瀵煎叆) + * @return exportOrImportNotList + */ + public List<Integer> getExportOrImportNotList(){ + return this.exportOrImportNotList; + } + + /** + * 璁剧疆 瀵煎嚭杩樻槸瀵煎叆(1.瀵煎嚭,2.瀵煎叆) + * @param exportOrImportNotList + */ + public void setExportOrImportNotList(List<Integer> exportOrImportNotList){ + this.exportOrImportNotList = exportOrImportNotList; + } + + + /** + * 鑾峰彇 瀵煎嚭鏂囦欢璺緞 + * @return filePathList + */ + public List<String> getFilePathList(){ + return this.filePathList; + } + + /** + * 璁剧疆 瀵煎嚭鏂囦欢璺緞 + * @param filePathList + */ + public void setFilePathList(List<String> filePathList){ + this.filePathList = filePathList; + } + + /** + * 鑾峰彇 瀵煎嚭鏂囦欢璺緞 + * @return filePathNotList + */ + public List<String> getFilePathNotList(){ + return this.filePathNotList; + } + + /** + * 璁剧疆 瀵煎嚭鏂囦欢璺緞 + * @param filePathNotList + */ + public void setFilePathNotList(List<String> filePathNotList){ + this.filePathNotList = filePathNotList; + } + + /** + * 鑾峰彇 寮€濮� 姹囨€昏繕鏄瘡鏃ユ墦鍗¤褰�(1.姹囨€�,2.姣忔棩鎵撳崱璁板綍) + * @return typeStart + */ + public Integer getTypeStart(){ + return this.typeStart; + } + + /** + * 璁剧疆 寮€濮� 姹囨€昏繕鏄瘡鏃ユ墦鍗¤褰�(1.姹囨€�,2.姣忔棩鎵撳崱璁板綍) + * @param typeStart + */ + public void setTypeStart(Integer typeStart){ + this.typeStart = typeStart; + } + + /** + * 鑾峰彇 缁撴潫 姹囨€昏繕鏄瘡鏃ユ墦鍗¤褰�(1.姹囨€�,2.姣忔棩鎵撳崱璁板綍) + * @return $typeEnd + */ + public Integer getTypeEnd(){ + return this.typeEnd; + } + + /** + * 璁剧疆 缁撴潫 姹囨€昏繕鏄瘡鏃ユ墦鍗¤褰�(1.姹囨€�,2.姣忔棩鎵撳崱璁板綍) + * @param typeEnd + */ + public void setTypeEnd(Integer typeEnd){ + this.typeEnd = typeEnd; + } + + /** + * 鑾峰彇 澧炲姞 姹囨€昏繕鏄瘡鏃ユ墦鍗¤褰�(1.姹囨€�,2.姣忔棩鎵撳崱璁板綍) + * @return typeIncrement + */ + public Integer getTypeIncrement(){ + return this.typeIncrement; + } + + /** + * 璁剧疆 澧炲姞 姹囨€昏繕鏄瘡鏃ユ墦鍗¤褰�(1.姹囨€�,2.姣忔棩鎵撳崱璁板綍) + * @param typeIncrement + */ + public void setTypeIncrement(Integer typeIncrement){ + this.typeIncrement = typeIncrement; + } + + /** + * 鑾峰彇 姹囨€昏繕鏄瘡鏃ユ墦鍗¤褰�(1.姹囨€�,2.姣忔棩鎵撳崱璁板綍) + * @return typeList + */ + public List<Integer> getTypeList(){ + return this.typeList; + } + + /** + * 璁剧疆 姹囨€昏繕鏄瘡鏃ユ墦鍗¤褰�(1.姹囨€�,2.姣忔棩鎵撳崱璁板綍) + * @param typeList + */ + public void setTypeList(List<Integer> typeList){ + this.typeList = typeList; + } + + /** + * 鑾峰彇 姹囨€昏繕鏄瘡鏃ユ墦鍗¤褰�(1.姹囨€�,2.姣忔棩鎵撳崱璁板綍) + * @return typeNotList + */ + public List<Integer> getTypeNotList(){ + return this.typeNotList; + } + + /** + * 璁剧疆 姹囨€昏繕鏄瘡鏃ユ墦鍗¤褰�(1.姹囨€�,2.姣忔棩鎵撳崱璁板綍) + * @param typeNotList + */ + public void setTypeNotList(List<Integer> typeNotList){ + this.typeNotList = typeNotList; + } + + + /** + * 鑾峰彇 澶囨敞 + * @return remarkList + */ + public List<String> getRemarkList(){ + return this.remarkList; + } + + /** + * 璁剧疆 澶囨敞 + * @param remarkList + */ + public void setRemarkList(List<String> remarkList){ + this.remarkList = remarkList; + } + + /** + * 鑾峰彇 澶囨敞 + * @return remarkNotList + */ + public List<String> getRemarkNotList(){ + return this.remarkNotList; + } + + /** + * 璁剧疆 澶囨敞 + * @param remarkNotList + */ + public void setRemarkNotList(List<String> remarkNotList){ + this.remarkNotList = remarkNotList; + } + + /** + * 鑾峰彇 寮€濮� 鍒涘缓鐢ㄦ埛 + * @return createUserIdStart + */ + public Long getCreateUserIdStart(){ + return this.createUserIdStart; + } + + /** + * 璁剧疆 寮€濮� 鍒涘缓鐢ㄦ埛 + * @param createUserIdStart + */ + public void setCreateUserIdStart(Long createUserIdStart){ + this.createUserIdStart = createUserIdStart; + } + + /** + * 鑾峰彇 缁撴潫 鍒涘缓鐢ㄦ埛 + * @return $createUserIdEnd + */ + public Long getCreateUserIdEnd(){ + return this.createUserIdEnd; + } + + /** + * 璁剧疆 缁撴潫 鍒涘缓鐢ㄦ埛 + * @param createUserIdEnd + */ + public void setCreateUserIdEnd(Long createUserIdEnd){ + this.createUserIdEnd = createUserIdEnd; + } + + /** + * 鑾峰彇 澧炲姞 鍒涘缓鐢ㄦ埛 + * @return createUserIdIncrement + */ + public Long getCreateUserIdIncrement(){ + return this.createUserIdIncrement; + } + + /** + * 璁剧疆 澧炲姞 鍒涘缓鐢ㄦ埛 + * @param createUserIdIncrement + */ + public void setCreateUserIdIncrement(Long createUserIdIncrement){ + this.createUserIdIncrement = createUserIdIncrement; + } + + /** + * 鑾峰彇 鍒涘缓鐢ㄦ埛 + * @return createUserIdList + */ + public List<Long> getCreateUserIdList(){ + return this.createUserIdList; + } + + /** + * 璁剧疆 鍒涘缓鐢ㄦ埛 + * @param createUserIdList + */ + public void setCreateUserIdList(List<Long> createUserIdList){ + this.createUserIdList = createUserIdList; + } + + /** + * 鑾峰彇 鍒涘缓鐢ㄦ埛 + * @return createUserIdNotList + */ + public List<Long> getCreateUserIdNotList(){ + return this.createUserIdNotList; + } + + /** + * 璁剧疆 鍒涘缓鐢ㄦ埛 + * @param createUserIdNotList + */ + public void setCreateUserIdNotList(List<Long> createUserIdNotList){ + this.createUserIdNotList = createUserIdNotList; + } + + + /** + * 鑾峰彇 寮€濮� 鍒涘缓鏃堕棿 + * @return createTimeStart + */ + public String getCreateTimeStart(){ + return this.createTimeStart; + } + + /** + * 璁剧疆 寮€濮� 鍒涘缓鏃堕棿 + * @param createTimeStart + */ + public void setCreateTimeStart(String createTimeStart){ + this.createTimeStart = createTimeStart; + } + + /** + * 鑾峰彇 缁撴潫 鍒涘缓鏃堕棿 + * @return createTimeEnd + */ + public String getCreateTimeEnd(){ + return this.createTimeEnd; + } + + /** + * 璁剧疆 缁撴潫 鍒涘缓鏃堕棿 + * @param createTimeEnd + */ + public void setCreateTimeEnd(String createTimeEnd){ + this.createTimeEnd = createTimeEnd; + } + + /** + * 鑾峰彇 寮€濮� 鏇存柊鐢ㄦ埛 + * @return updateUserIdStart + */ + public Long getUpdateUserIdStart(){ + return this.updateUserIdStart; + } + + /** + * 璁剧疆 寮€濮� 鏇存柊鐢ㄦ埛 + * @param updateUserIdStart + */ + public void setUpdateUserIdStart(Long updateUserIdStart){ + this.updateUserIdStart = updateUserIdStart; + } + + /** + * 鑾峰彇 缁撴潫 鏇存柊鐢ㄦ埛 + * @return $updateUserIdEnd + */ + public Long getUpdateUserIdEnd(){ + return this.updateUserIdEnd; + } + + /** + * 璁剧疆 缁撴潫 鏇存柊鐢ㄦ埛 + * @param updateUserIdEnd + */ + public void setUpdateUserIdEnd(Long updateUserIdEnd){ + this.updateUserIdEnd = updateUserIdEnd; + } + + /** + * 鑾峰彇 澧炲姞 鏇存柊鐢ㄦ埛 + * @return updateUserIdIncrement + */ + public Long getUpdateUserIdIncrement(){ + return this.updateUserIdIncrement; + } + + /** + * 璁剧疆 澧炲姞 鏇存柊鐢ㄦ埛 + * @param updateUserIdIncrement + */ + public void setUpdateUserIdIncrement(Long updateUserIdIncrement){ + this.updateUserIdIncrement = updateUserIdIncrement; + } + + /** + * 鑾峰彇 鏇存柊鐢ㄦ埛 + * @return updateUserIdList + */ + public List<Long> getUpdateUserIdList(){ + return this.updateUserIdList; + } + + /** + * 璁剧疆 鏇存柊鐢ㄦ埛 + * @param updateUserIdList + */ + public void setUpdateUserIdList(List<Long> updateUserIdList){ + this.updateUserIdList = updateUserIdList; + } + + /** + * 鑾峰彇 鏇存柊鐢ㄦ埛 + * @return updateUserIdNotList + */ + public List<Long> getUpdateUserIdNotList(){ + return this.updateUserIdNotList; + } + + /** + * 璁剧疆 鏇存柊鐢ㄦ埛 + * @param updateUserIdNotList + */ + public void setUpdateUserIdNotList(List<Long> updateUserIdNotList){ + this.updateUserIdNotList = updateUserIdNotList; + } + + + /** + * 鑾峰彇 寮€濮� 鏇存柊鏃堕棿 + * @return updateTimeStart + */ + public String getUpdateTimeStart(){ + return this.updateTimeStart; + } + + /** + * 璁剧疆 寮€濮� 鏇存柊鏃堕棿 + * @param updateTimeStart + */ + public void setUpdateTimeStart(String updateTimeStart){ + this.updateTimeStart = updateTimeStart; + } + + /** + * 鑾峰彇 缁撴潫 鏇存柊鏃堕棿 + * @return updateTimeEnd + */ + public String getUpdateTimeEnd(){ + return this.updateTimeEnd; + } + + /** + * 璁剧疆 缁撴潫 鏇存柊鏃堕棿 + * @param updateTimeEnd + */ + public void setUpdateTimeEnd(String updateTimeEnd){ + this.updateTimeEnd = updateTimeEnd; + } + + /** + * 鑾峰彇 閫夋嫨id鍒楄〃 + * @return recordIdListList + */ + public List<String> getRecordIdListList(){ + return this.recordIdListList; + } + + /** + * 璁剧疆 閫夋嫨id鍒楄〃 + * @param recordIdListList + */ + public void setRecordIdListList(List<String> recordIdListList){ + this.recordIdListList = recordIdListList; + } + + /** + * 鑾峰彇 閫夋嫨id鍒楄〃 + * @return recordIdListNotList + */ + public List<String> getRecordIdListNotList(){ + return this.recordIdListNotList; + } + + /** + * 璁剧疆 閫夋嫨id鍒楄〃 + * @param recordIdListNotList + */ + public void setRecordIdListNotList(List<String> recordIdListNotList){ + this.recordIdListNotList = recordIdListNotList; + } + + /** + * 璁剧疆 + * @param id + */ + public AttendanceExportRecordQuery id(Long id){ + setId(id); + return this; + } + + /** + * 璁剧疆 寮€濮� + * @param idStart + */ + public AttendanceExportRecordQuery idStart(Long idStart){ + this.idStart = idStart; + return this; + } + + /** + * 璁剧疆 缁撴潫 + * @param idEnd + */ + public AttendanceExportRecordQuery idEnd(Long idEnd){ + this.idEnd = idEnd; + return this; + } + + /** + * 璁剧疆 澧炲姞 + * @param idIncrement + */ + public AttendanceExportRecordQuery idIncrement(Long idIncrement){ + this.idIncrement = idIncrement; + return this; + } + + /** + * 璁剧疆 + * @param idList + */ + public AttendanceExportRecordQuery idList(List<Long> idList){ + this.idList = idList; + return this; + } + + /** + * 璁剧疆 + * @param idNotList + */ + public AttendanceExportRecordQuery idNotList(List<Long> idNotList){ + this.idNotList = idNotList; + return this; + } + + + /** + * 璁剧疆 閫夋嫨閮ㄩ棬鍚嶇О + * @param deptName + */ + public AttendanceExportRecordQuery deptName(String deptName){ + setDeptName(deptName); + return this; + } + + /** + * 璁剧疆 閫夋嫨閮ㄩ棬鍚嶇О + * @param deptNameList + */ + public AttendanceExportRecordQuery deptNameList(List<String> deptNameList){ + this.deptNameList = deptNameList; + return this; + } + + + /** + * 璁剧疆 閫夋嫨鑰冨嫟缁勫悕绉� + * @param groupName + */ + public AttendanceExportRecordQuery groupName(String groupName){ + setGroupName(groupName); + return this; + } + + /** + * 璁剧疆 閫夋嫨鑰冨嫟缁勫悕绉� + * @param groupNameList + */ + public AttendanceExportRecordQuery groupNameList(List<String> groupNameList){ + this.groupNameList = groupNameList; + return this; + } + + + /** + * 璁剧疆 閫夋嫨鐝鍚嶇О + * @param className + */ + public AttendanceExportRecordQuery className(String className){ + setClassName(className); + return this; + } + + /** + * 璁剧疆 閫夋嫨鐝鍚嶇О + * @param classNameList + */ + public AttendanceExportRecordQuery classNameList(List<String> classNameList){ + this.classNameList = classNameList; + return this; + } + + + /** + * 璁剧疆 閫夋嫨寮€濮嬫椂闂村拰缁撴潫鏃堕棿娈� + * @param attendanceDate + */ + public AttendanceExportRecordQuery attendanceDate(String attendanceDate){ + setAttendanceDate(attendanceDate); + return this; + } + + /** + * 璁剧疆 閫夋嫨寮€濮嬫椂闂村拰缁撴潫鏃堕棿娈� + * @param attendanceDateList + */ + public AttendanceExportRecordQuery attendanceDateList(List<String> attendanceDateList){ + this.attendanceDateList = attendanceDateList; + return this; + } + + /** + * 璁剧疆 瀵煎嚭杩樻槸瀵煎叆(1.瀵煎嚭,2.瀵煎叆) + * @param exportOrImport + */ + public AttendanceExportRecordQuery exportOrImport(Integer exportOrImport){ + setExportOrImport(exportOrImport); + return this; + } + + /** + * 璁剧疆 寮€濮� 瀵煎嚭杩樻槸瀵煎叆(1.瀵煎嚭,2.瀵煎叆) + * @param exportOrImportStart + */ + public AttendanceExportRecordQuery exportOrImportStart(Integer exportOrImportStart){ + this.exportOrImportStart = exportOrImportStart; + return this; + } + + /** + * 璁剧疆 缁撴潫 瀵煎嚭杩樻槸瀵煎叆(1.瀵煎嚭,2.瀵煎叆) + * @param exportOrImportEnd + */ + public AttendanceExportRecordQuery exportOrImportEnd(Integer exportOrImportEnd){ + this.exportOrImportEnd = exportOrImportEnd; + return this; + } + + /** + * 璁剧疆 澧炲姞 瀵煎嚭杩樻槸瀵煎叆(1.瀵煎嚭,2.瀵煎叆) + * @param exportOrImportIncrement + */ + public AttendanceExportRecordQuery exportOrImportIncrement(Integer exportOrImportIncrement){ + this.exportOrImportIncrement = exportOrImportIncrement; + return this; + } + + /** + * 璁剧疆 瀵煎嚭杩樻槸瀵煎叆(1.瀵煎嚭,2.瀵煎叆) + * @param exportOrImportList + */ + public AttendanceExportRecordQuery exportOrImportList(List<Integer> exportOrImportList){ + this.exportOrImportList = exportOrImportList; + return this; + } + + /** + * 璁剧疆 瀵煎嚭杩樻槸瀵煎叆(1.瀵煎嚭,2.瀵煎叆) + * @param exportOrImportNotList + */ + public AttendanceExportRecordQuery exportOrImportNotList(List<Integer> exportOrImportNotList){ + this.exportOrImportNotList = exportOrImportNotList; + return this; + } + + + /** + * 璁剧疆 瀵煎嚭鏂囦欢璺緞 + * @param filePath + */ + public AttendanceExportRecordQuery filePath(String filePath){ + setFilePath(filePath); + return this; + } + + /** + * 璁剧疆 瀵煎嚭鏂囦欢璺緞 + * @param filePathList + */ + public AttendanceExportRecordQuery filePathList(List<String> filePathList){ + this.filePathList = filePathList; + return this; + } + + /** + * 璁剧疆 姹囨€昏繕鏄瘡鏃ユ墦鍗¤褰�(1.姹囨€�,2.姣忔棩鎵撳崱璁板綍) + * @param type + */ + public AttendanceExportRecordQuery type(Integer type){ + setType(type); + return this; + } + + /** + * 璁剧疆 寮€濮� 姹囨€昏繕鏄瘡鏃ユ墦鍗¤褰�(1.姹囨€�,2.姣忔棩鎵撳崱璁板綍) + * @param typeStart + */ + public AttendanceExportRecordQuery typeStart(Integer typeStart){ + this.typeStart = typeStart; + return this; + } + + /** + * 璁剧疆 缁撴潫 姹囨€昏繕鏄瘡鏃ユ墦鍗¤褰�(1.姹囨€�,2.姣忔棩鎵撳崱璁板綍) + * @param typeEnd + */ + public AttendanceExportRecordQuery typeEnd(Integer typeEnd){ + this.typeEnd = typeEnd; + return this; + } + + /** + * 璁剧疆 澧炲姞 姹囨€昏繕鏄瘡鏃ユ墦鍗¤褰�(1.姹囨€�,2.姣忔棩鎵撳崱璁板綍) + * @param typeIncrement + */ + public AttendanceExportRecordQuery typeIncrement(Integer typeIncrement){ + this.typeIncrement = typeIncrement; + return this; + } + + /** + * 璁剧疆 姹囨€昏繕鏄瘡鏃ユ墦鍗¤褰�(1.姹囨€�,2.姣忔棩鎵撳崱璁板綍) + * @param typeList + */ + public AttendanceExportRecordQuery typeList(List<Integer> typeList){ + this.typeList = typeList; + return this; + } + + /** + * 璁剧疆 姹囨€昏繕鏄瘡鏃ユ墦鍗¤褰�(1.姹囨€�,2.姣忔棩鎵撳崱璁板綍) + * @param typeNotList + */ + public AttendanceExportRecordQuery typeNotList(List<Integer> typeNotList){ + this.typeNotList = typeNotList; + return this; + } + + + /** + * 璁剧疆 澶囨敞 + * @param remark + */ + public AttendanceExportRecordQuery remark(String remark){ + setRemark(remark); + return this; + } + + /** + * 璁剧疆 澶囨敞 + * @param remarkList + */ + public AttendanceExportRecordQuery remarkList(List<String> remarkList){ + this.remarkList = remarkList; + return this; + } + + /** + * 璁剧疆 鍒涘缓鐢ㄦ埛 + * @param createUserId + */ + public AttendanceExportRecordQuery createUserId(Long createUserId){ + setCreateUserId(createUserId); + return this; + } + + /** + * 璁剧疆 寮€濮� 鍒涘缓鐢ㄦ埛 + * @param createUserIdStart + */ + public AttendanceExportRecordQuery createUserIdStart(Long createUserIdStart){ + this.createUserIdStart = createUserIdStart; + return this; + } + + /** + * 璁剧疆 缁撴潫 鍒涘缓鐢ㄦ埛 + * @param createUserIdEnd + */ + public AttendanceExportRecordQuery createUserIdEnd(Long createUserIdEnd){ + this.createUserIdEnd = createUserIdEnd; + return this; + } + + /** + * 璁剧疆 澧炲姞 鍒涘缓鐢ㄦ埛 + * @param createUserIdIncrement + */ + public AttendanceExportRecordQuery createUserIdIncrement(Long createUserIdIncrement){ + this.createUserIdIncrement = createUserIdIncrement; + return this; + } + + /** + * 璁剧疆 鍒涘缓鐢ㄦ埛 + * @param createUserIdList + */ + public AttendanceExportRecordQuery createUserIdList(List<Long> createUserIdList){ + this.createUserIdList = createUserIdList; + return this; + } + + /** + * 璁剧疆 鍒涘缓鐢ㄦ埛 + * @param createUserIdNotList + */ + public AttendanceExportRecordQuery createUserIdNotList(List<Long> createUserIdNotList){ + this.createUserIdNotList = createUserIdNotList; + return this; + } + + + /** + * 璁剧疆 鏇存柊鐢ㄦ埛 + * @param updateUserId + */ + public AttendanceExportRecordQuery updateUserId(Long updateUserId){ + setUpdateUserId(updateUserId); + return this; + } + + /** + * 璁剧疆 寮€濮� 鏇存柊鐢ㄦ埛 + * @param updateUserIdStart + */ + public AttendanceExportRecordQuery updateUserIdStart(Long updateUserIdStart){ + this.updateUserIdStart = updateUserIdStart; + return this; + } + + /** + * 璁剧疆 缁撴潫 鏇存柊鐢ㄦ埛 + * @param updateUserIdEnd + */ + public AttendanceExportRecordQuery updateUserIdEnd(Long updateUserIdEnd){ + this.updateUserIdEnd = updateUserIdEnd; + return this; + } + + /** + * 璁剧疆 澧炲姞 鏇存柊鐢ㄦ埛 + * @param updateUserIdIncrement + */ + public AttendanceExportRecordQuery updateUserIdIncrement(Long updateUserIdIncrement){ + this.updateUserIdIncrement = updateUserIdIncrement; + return this; + } + + /** + * 璁剧疆 鏇存柊鐢ㄦ埛 + * @param updateUserIdList + */ + public AttendanceExportRecordQuery updateUserIdList(List<Long> updateUserIdList){ + this.updateUserIdList = updateUserIdList; + return this; + } + + /** + * 璁剧疆 鏇存柊鐢ㄦ埛 + * @param updateUserIdNotList + */ + public AttendanceExportRecordQuery updateUserIdNotList(List<Long> updateUserIdNotList){ + this.updateUserIdNotList = updateUserIdNotList; + return this; + } + + + + /** + * 璁剧疆 閫夋嫨id鍒楄〃 + * @param recordIdList + */ + public AttendanceExportRecordQuery recordIdList(String recordIdList){ + setRecordIdList(recordIdList); + return this; + } + + /** + * 璁剧疆 閫夋嫨id鍒楄〃 + * @param recordIdListList + */ + public AttendanceExportRecordQuery recordIdListList(List<String> recordIdListList){ + this.recordIdListList = recordIdListList; + return this; + } + + /** + * 鑾峰彇 OR鏉′欢闆嗗悎锛屽垪琛ㄩ」涔嬮棿鏄疧R锛岄」鍐呭涔嬮棿鏄疉ND锛屽锛�(list[0].1 and list[0].2) or (list[1].3 and list[1].4) + * @return orConditionList + */ + public List<AttendanceExportRecordQuery> getOrConditionList(){ + return this.orConditionList; + } + + /** + * 璁剧疆 OR鏉′欢闆嗗悎锛屽垪琛ㄩ」涔嬮棿鏄疧R锛岄」鍐呭涔嬮棿鏄疉ND锛屽锛�(list[0].1 and list[0].2) or (list[1].3 and list[1].4) + * @param orConditionList + */ + public void setOrConditionList(List<AttendanceExportRecordQuery> orConditionList){ + this.orConditionList = orConditionList; + } + + /** + * 鑾峰彇 AND鏉′欢闆嗗悎锛屽垪琛ㄩ」涔嬮棿鏄疉ND锛岄」鍐呭涔嬮棿鏄疧R锛屽锛�(list[0].1 or list[0].2) and (list[1].3 or list[1].4) + * @return andConditionList + */ + public List<AttendanceExportRecordQuery> getAndConditionList(){ + return this.andConditionList; + } + + /** + * 璁剧疆 AND鏉′欢闆嗗悎锛屽垪琛ㄩ」涔嬮棿鏄疉ND锛岄」鍐呭涔嬮棿鏄疧R锛屽锛�(list[0].1 or list[0].2) and (list[1].3 or list[1].4) + * @param andConditionList + */ + public void setAndConditionList(List<AttendanceExportRecordQuery> andConditionList){ + this.andConditionList = andConditionList; + } + +} diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/AttendanceGroupFixedworkSpecialEntity.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/AttendanceGroupFixedworkSpecialEntity.java index 7737db6f4c6e2231055a64b8476d73331d5a3785..e0eeb37fff084d35a378008b1ad4795288066a93 100644 --- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/AttendanceGroupFixedworkSpecialEntity.java +++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/AttendanceGroupFixedworkSpecialEntity.java @@ -40,6 +40,7 @@ public class AttendanceGroupFixedworkSpecialEntity extends AttendanceGroupFixedw /** * 鐗规畩鏃堕棿 */ + @JsonFormat(pattern = "yyyy-MM-dd") private Date specialTime; /** * 澶囨敞 @@ -48,10 +49,12 @@ public class AttendanceGroupFixedworkSpecialEntity extends AttendanceGroupFixedw /** * 鏃堕棿娈垫椂鍊欏紑濮嬫椂闂� */ + @JsonFormat(pattern = "yyyy-MM-dd") private Date specialStartTime; /** * 鏃堕棿娈电粨鏉熸椂闂� */ + @JsonFormat(pattern = "yyyy-MM-dd") private Date specialEndTime; @@ -237,4 +240,4 @@ public class AttendanceGroupFixedworkSpecialEntity extends AttendanceGroupFixedw this.specialEndTime = null; } -} \ No newline at end of file +} diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/vo/AttendanceExportRecordVo.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/vo/AttendanceExportRecordVo.java new file mode 100644 index 0000000000000000000000000000000000000000..b1695ee74805f2706413e68303aeb4069f2a23ef --- /dev/null +++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/vo/AttendanceExportRecordVo.java @@ -0,0 +1,16 @@ +package com.mortals.xhx.module.attendance.model.vo; +import com.mortals.framework.model.BaseEntityLong; +import com.mortals.xhx.module.attendance.model.AttendanceExportRecordEntity; +import java.util.ArrayList; +import java.util.List; +import lombok.Data; +/** +* 瀵煎叆瀵煎嚭璁板綍瑙嗗浘瀵硅薄 +* +* @author zxfei +* @date 2023-04-17 +*/ +@Data +public class AttendanceExportRecordVo extends BaseEntityLong { + +} diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/vo/AttendanceGroupVo.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/vo/AttendanceGroupVo.java index bee45c3b3a56dc38b130361c0c766618984de81b..877a9e3a0a2892e31b06f5b234a52af3d0c73ef5 100644 --- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/vo/AttendanceGroupVo.java +++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/vo/AttendanceGroupVo.java @@ -1,9 +1,6 @@ package com.mortals.xhx.module.attendance.model.vo; import com.mortals.framework.model.BaseEntityLong; -import com.mortals.xhx.module.attendance.model.AttendanceGroupEntity; -import com.mortals.xhx.module.attendance.model.AttendanceGroupFixedworkEntity; -import com.mortals.xhx.module.attendance.model.AttendanceGroupFixedworkSpecialEntity; -import com.mortals.xhx.module.attendance.model.AttendanceGroupResponsibleEntity; +import com.mortals.xhx.module.attendance.model.*; import lombok.Data; import java.util.ArrayList; @@ -18,15 +15,37 @@ import java.util.List; public class AttendanceGroupVo extends BaseEntityLong { /** - * 鑰冨嫟缁勭彮娆″疄浣撶被 + * 鍥哄畾鐝鑰冨嫟缁勭彮娆″疄浣撶被 */ - private AttendanceGroupFixedworkEntity attendanceGroupFixedworkEntity; + private AttendanceGroupFixedworkEntity groupFixedworkEntity; /** - * 鑰冨嫟缁勫浐瀹氱彮娆$壒娈婃棩鏈熼厤缃� + * 鑰冨嫟缁勮礋璐d汉瀵硅薄 */ - private List<AttendanceGroupFixedworkSpecialEntity> fixedworkSpecial; + private AttendanceGroupResponsibleEntity groupResponsibleEntity; + /** + * 鑷敱鐝埗 + */ + private AttendanceGroupFreeworkEntity attendanceGroupFreeworkEntity; - private AttendanceGroupResponsibleEntity groupResponsibleEntity; + /** + * 鑰冨嫟缁勮礋璐d汉id + */ + private Long responsibleId; + + /** + * 鑰冨嫟缁勮礋璐d汉鍚嶅瓧 + */ + private String responsibleName; + + /** + * 鑰冨嫟鏃堕棿 + */ + private String attendanceTime; + + /** + * 浼戞伅鏃ユ湡 + */ + private String restTime; } diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/vo/AttendanceRecordHikVo.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/vo/AttendanceRecordHikVo.java index 2534e82f4de3996785df0572432b7dc964c8050f..6a6c868542cedf40fa61f818e2e9380333386070 100644 --- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/vo/AttendanceRecordHikVo.java +++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/vo/AttendanceRecordHikVo.java @@ -18,4 +18,18 @@ public class AttendanceRecordHikVo extends BaseEntityLong { @Excel(name = "鎵€灞炵粍缁�") private String orgName; + /** 寮€濮� 鑰冨嫟鏃ユ湡 */ + private String attendanceDateStart; + + /** 缁撴潫 鑰冨嫟鏃ユ湡 */ + private String attendanceDateEnd; + + /** 鍛樺伐ID鍒楄〃 */ + private List <Long> staffIdList; + + /** 搴忓彿锛屼富閿紝鑷闀垮垪琛� */ + private List <Long> idList; + + private List<AttendanceRecordHikEntity> list; + } diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/vo/AttendanceRecordVo.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/vo/AttendanceRecordVo.java index c24410bed5ff83163707384f6b96f5b873b993fc..e081a760b6edf72051ae49deb529b05216cfba22 100644 --- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/vo/AttendanceRecordVo.java +++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/vo/AttendanceRecordVo.java @@ -18,5 +18,11 @@ public class AttendanceRecordVo extends BaseEntityLong { private List<AttendanceGroupFixedworkSpecialVo> list; private AttendanceRecordDetailEntity attendanceRecordDetailEntity; + + /** 寮€濮� 鎵撳崱鏃ユ湡 */ + private String attendanceDateStart; + + /** 缁撴潫 鎵撳崱鏃ユ湡 */ + private String attendanceDateEnd; } diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/AttendanceExportRecordService.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/AttendanceExportRecordService.java new file mode 100644 index 0000000000000000000000000000000000000000..490b2585c004f51de2ed01b271719b2b21df8a94 --- /dev/null +++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/AttendanceExportRecordService.java @@ -0,0 +1,14 @@ +package com.mortals.xhx.module.attendance.service; +import com.mortals.framework.service.ICRUDService; +import com.mortals.xhx.module.attendance.model.AttendanceExportRecordEntity; +/** +* AttendanceExportRecordService +* +* 瀵煎叆瀵煎嚭璁板綍 service鎺ュ彛 +* +* @author zxfei +* @date 2023-04-17 +*/ +public interface AttendanceExportRecordService extends ICRUDService<AttendanceExportRecordEntity,Long>{ + +} diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/AttendanceGroupFixedworkService.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/AttendanceGroupFixedworkService.java index 60e561605d356c14f6d23a753b0593171a5e9eef..1da8a566f518262840b6d22a7a1dab6351efb4b6 100644 --- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/AttendanceGroupFixedworkService.java +++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/AttendanceGroupFixedworkService.java @@ -1,5 +1,6 @@ package com.mortals.xhx.module.attendance.service; import com.mortals.framework.service.ICRUDService; +import com.mortals.xhx.module.attendance.dao.AttendanceGroupFixedworkDao; import com.mortals.xhx.module.attendance.model.AttendanceGroupFixedworkEntity; /** * AttendanceGroupFixedworkService @@ -11,4 +12,6 @@ import com.mortals.xhx.module.attendance.model.AttendanceGroupFixedworkEntity; */ public interface AttendanceGroupFixedworkService extends ICRUDService<AttendanceGroupFixedworkEntity,Long>{ -} \ No newline at end of file + AttendanceGroupFixedworkDao getDao(); + +} diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/AttendanceGroupFreeworkService.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/AttendanceGroupFreeworkService.java index 0e92149f7a54b330fa3f076328d30a812dc58778..420761a3f332cdb65f0e4ece9f36e42324d4f0b7 100644 --- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/AttendanceGroupFreeworkService.java +++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/AttendanceGroupFreeworkService.java @@ -1,5 +1,6 @@ package com.mortals.xhx.module.attendance.service; import com.mortals.framework.service.ICRUDService; +import com.mortals.xhx.module.attendance.dao.AttendanceGroupFreeworkDao; import com.mortals.xhx.module.attendance.model.AttendanceGroupFreeworkEntity; /** * AttendanceGroupFreeworkService @@ -11,4 +12,6 @@ import com.mortals.xhx.module.attendance.model.AttendanceGroupFreeworkEntity; */ public interface AttendanceGroupFreeworkService extends ICRUDService<AttendanceGroupFreeworkEntity,Long>{ -} \ No newline at end of file + AttendanceGroupFreeworkDao getDao(); + +} diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/AttendanceGroupResponsibleService.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/AttendanceGroupResponsibleService.java index 374e468d52a7005425146ea0ef0cfef302707af6..e485dc7744c8bdc490c368fe06901feb542771d0 100644 --- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/AttendanceGroupResponsibleService.java +++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/AttendanceGroupResponsibleService.java @@ -1,5 +1,6 @@ package com.mortals.xhx.module.attendance.service; import com.mortals.framework.service.ICRUDService; +import com.mortals.xhx.module.attendance.dao.AttendanceGroupResponsibleDao; import com.mortals.xhx.module.attendance.model.AttendanceGroupResponsibleEntity; /** * AttendanceGroupResponsibleService @@ -11,4 +12,6 @@ import com.mortals.xhx.module.attendance.model.AttendanceGroupResponsibleEntity; */ public interface AttendanceGroupResponsibleService extends ICRUDService<AttendanceGroupResponsibleEntity,Long>{ -} \ No newline at end of file + AttendanceGroupResponsibleDao getDao(); + +} diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceExportRecordServiceImpl.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceExportRecordServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..35b8fc47b42dba02373465792af51c5288d300bd --- /dev/null +++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceExportRecordServiceImpl.java @@ -0,0 +1,19 @@ +package com.mortals.xhx.module.attendance.service.impl; +import org.springframework.stereotype.Service; +import com.mortals.framework.service.impl.AbstractCRUDServiceImpl; +import com.mortals.framework.exception.AppException; +import com.mortals.framework.model.Context; +import com.mortals.xhx.module.attendance.dao.AttendanceExportRecordDao; +import com.mortals.xhx.module.attendance.model.AttendanceExportRecordEntity; +import com.mortals.xhx.module.attendance.service.AttendanceExportRecordService; +/** +* AttendanceExportRecordService +* 瀵煎叆瀵煎嚭璁板綍 service瀹炵幇 +* +* @author zxfei +* @date 2023-04-17 +*/ +@Service("attendanceExportRecordService") +public class AttendanceExportRecordServiceImpl extends AbstractCRUDServiceImpl<AttendanceExportRecordDao, AttendanceExportRecordEntity, Long> implements AttendanceExportRecordService { + +} diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/web/AttendanceExportRecordController.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/web/AttendanceExportRecordController.java new file mode 100644 index 0000000000000000000000000000000000000000..946f9d12a37f5b2f3af21ff78d6b19f927974eb1 --- /dev/null +++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/web/AttendanceExportRecordController.java @@ -0,0 +1,51 @@ +package com.mortals.xhx.module.attendance.web; +import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; +import com.mortals.xhx.base.system.param.service.ParamService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; +import com.mortals.framework.model.Context; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; +import com.mortals.xhx.module.attendance.model.AttendanceExportRecordEntity; +import com.mortals.xhx.module.attendance.service.AttendanceExportRecordService; +import org.apache.commons.lang3.ArrayUtils; +import com.mortals.framework.util.StringUtils; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import com.alibaba.fastjson.JSONObject; +import java.util.Arrays; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import static com.mortals.framework.ap.SysConstains.*; +/** +* +* 瀵煎叆瀵煎嚭璁板綍 +* +* @author zxfei +* @date 2023-04-17 +*/ +@RestController +@RequestMapping("attendance/export/record") +public class AttendanceExportRecordController extends BaseCRUDJsonBodyMappingController<AttendanceExportRecordService,AttendanceExportRecordEntity,Long> { + + @Autowired + private ParamService paramService; + + public AttendanceExportRecordController(){ + super.setModuleDesc( "瀵煎叆瀵煎嚭璁板綍"); + } + + @Override + protected void init(Map<String, Object> model, Context context) { + this.addDict(model, "exportOrImport", paramService.getParamBySecondOrganize("AttendanceExportRecord","exportOrImport")); + this.addDict(model, "type", paramService.getParamBySecondOrganize("AttendanceExportRecord","type")); + super.init(model, context); + } + + +} diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/web/AttendanceGroupController.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/web/AttendanceGroupController.java index 8d2946d30f27c7ec96c7eb53b0098e0f4b3e32dd..323995ff5fd4d4d6ad788cd68c6d5b135b4f6c41 100644 --- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/web/AttendanceGroupController.java +++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/web/AttendanceGroupController.java @@ -1,8 +1,10 @@ package com.mortals.xhx.module.attendance.web; import cn.hutool.core.stream.CollectorUtil; import com.mortals.framework.exception.AppException; +import com.mortals.framework.utils.ServletUtils; import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; import com.mortals.xhx.base.system.param.service.ParamService; +import com.mortals.xhx.feign.IFeign; import com.mortals.xhx.module.attendance.model.*; import com.mortals.xhx.module.attendance.service.*; import com.mortals.xhx.module.dept.model.DeptEntity; @@ -15,9 +17,12 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.mortals.framework.model.Context; +import org.springframework.web.multipart.MultipartFile; -import java.util.List; -import java.util.Map; +import java.io.ByteArrayInputStream; +import java.io.InputStream; +import java.text.SimpleDateFormat; +import java.util.*; import java.util.stream.Collectors; /** @@ -38,6 +43,8 @@ public class AttendanceGroupController extends BaseCRUDJsonBodyMappingController @Autowired private AttendanceClassService attendanceClassService; @Autowired + private AttendanceClassDetailService attendanceClassDetailService; + @Autowired private DeptService deptService; @Autowired private AttendanceGroupFixedworkService attendanceGroupFixedworkService; @@ -45,6 +52,10 @@ public class AttendanceGroupController extends BaseCRUDJsonBodyMappingController private AttendanceGroupFixedworkSpecialService specialService; @Autowired private AttendanceGroupResponsibleService groupResponsibleService; + @Autowired + private AttendanceGroupFreeworkService freeworkService; + @Autowired + private AttendanceGroupService attendanceGroupService; public AttendanceGroupController(){ super.setModuleDesc( "鑰冨嫟缁勪俊鎭�"); @@ -65,20 +76,346 @@ public class AttendanceGroupController extends BaseCRUDJsonBodyMappingController @Override protected int saveAfter(AttendanceGroupEntity entity, Map<String, Object> model, Context context) throws AppException { - entity.getAttendanceGroupFixedworkEntity().setGroupId(entity.getId()); - entity.getAttendanceGroupFixedworkEntity().setGroupName(entity.getGroupName()); - AttendanceGroupFixedworkEntity save = attendanceGroupFixedworkService.save(entity.getAttendanceGroupFixedworkEntity()); - List<AttendanceGroupFixedworkSpecialEntity> fixedworkSpecial = entity.getFixedworkSpecial(); - if (fixedworkSpecial!=null && fixedworkSpecial.size()>0){ - fixedworkSpecial.forEach(item->{ - item.setFixedWorkId(save.getId()); - }); + AttendanceGroupFixedworkQuery condition = new AttendanceGroupFixedworkQuery(); + condition.setGroupId(entity.getId()); + attendanceGroupFixedworkService.getDao().delete(condition); + + AttendanceGroupResponsibleQuery responsibleQuery = new AttendanceGroupResponsibleQuery(); + responsibleQuery.setGroupId(entity.getId()); + groupResponsibleService.getDao().delete(responsibleQuery); + + AttendanceGroupFreeworkQuery freeworkQuery = new AttendanceGroupFreeworkQuery(); + freeworkQuery.setGroupId(entity.getId()); + freeworkService.getDao().delete(freeworkQuery); + + if (entity.getGroupFixedworkEntity()!=null){ + entity.getGroupFixedworkEntity().setGroupId(entity.getId()); + entity.getGroupFixedworkEntity().setGroupName(entity.getGroupName()); + entity.getGroupFixedworkEntity().setCreateUserId(this.getContextUserId(context)); + entity.getGroupFixedworkEntity().setCreateTime(new Date()); + attendanceGroupFixedworkService.save(entity.getGroupFixedworkEntity(),context); } - specialService.save(fixedworkSpecial); + AttendanceGroupResponsibleEntity responsibleEntity = entity.getGroupResponsibleEntity(); responsibleEntity.setGroupId(entity.getId()); responsibleEntity.setGroupName(entity.getGroupName()); - groupResponsibleService.save(responsibleEntity); + responsibleEntity.setCreateUserId(this.getContextUserId(context)); + responsibleEntity.setCreateTime(new Date()); + groupResponsibleService.save(responsibleEntity,context); + + if (entity.getAttendanceGroupFreeworkEntity()!=null){ + entity.getAttendanceGroupFreeworkEntity().setGroupId(entity.getId()); + entity.getAttendanceGroupFreeworkEntity().setGroupName(entity.getGroupName()); + entity.getAttendanceGroupFreeworkEntity().setCreateUserId(this.getContextUserId(context)); + entity.getAttendanceGroupFreeworkEntity().setCreateTime(new Date()); + freeworkService.save(entity.getAttendanceGroupFreeworkEntity(),context); + } return super.saveAfter(entity, model, context); } + + @Override + protected int editAfter(Long id, Map<String, Object> model, AttendanceGroupEntity entity, Context context) throws AppException { + AttendanceGroupResponsibleEntity attendanceGroupResponsibleEntity = groupResponsibleService.selectOne(new AttendanceGroupResponsibleQuery().groupId(id)); + + AttendanceGroupFixedworkEntity attendanceGroupFixedworkEntity = attendanceGroupFixedworkService.selectOne(new AttendanceGroupFixedworkQuery().groupId(id)); + + AttendanceGroupFreeworkEntity attendanceGroupFreeworkEntity = freeworkService.selectOne(new AttendanceGroupFreeworkQuery().groupId(id)); + entity.setGroupFixedworkEntity(attendanceGroupFixedworkEntity); + entity.setAttendanceGroupFreeworkEntity(attendanceGroupFreeworkEntity); + entity.setGroupResponsibleEntity(attendanceGroupResponsibleEntity); + return super.editAfter(id, model, entity, context); + } + + @Override + protected int doListAfter(AttendanceGroupEntity query, Map<String, Object> model, Context context) throws AppException { + List<AttendanceGroupEntity> data = (List<AttendanceGroupEntity>)model.get(KEY_RESULT_DATA); + for (AttendanceGroupEntity entity : data) { + entity.setPersonNum(entity.getAttendanceGroupStaffList().size()); + AttendanceGroupResponsibleEntity attendanceGroupResponsibleEntity = groupResponsibleService.selectOne(new AttendanceGroupResponsibleQuery().groupId(entity.getId())); + if (attendanceGroupResponsibleEntity!=null){ + entity.setResponsibleId(attendanceGroupResponsibleEntity.getResponsibleId()); + entity.setResponsibleName(attendanceGroupResponsibleEntity.getResponsibleName()); + } + String monday = ""; + String tuesday = ""; + String wednesday = ""; + String thursday = ""; + String friday = ""; + String saturday = ""; + String sunday = ""; + String rest = ""; + String attendanceTime = ""; + //鎷兼帴鑰冨嫟鏃堕棿 + //鍥哄畾鐝埗 + AttendanceGroupFixedworkEntity attendanceGroupFixedworkEntity = attendanceGroupFixedworkService.selectOne(new AttendanceGroupFixedworkQuery().groupId(entity.getId())); + SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); + if (Objects.nonNull(attendanceGroupFixedworkEntity)){ + //鍛ㄤ竴 + if (Objects.nonNull(attendanceGroupFixedworkEntity)&&attendanceGroupFixedworkEntity.getMonday()==1){ + List<AttendanceClassDetailEntity> attendanceClassDetailEntity = attendanceClassDetailService.find(new AttendanceClassDetailQuery().classId(attendanceGroupFixedworkEntity.getMondayClassId())); + String className = attendanceGroupFixedworkEntity.getMondayClassName(); + String time = ""; + for (AttendanceClassDetailEntity classDetailEntity : attendanceClassDetailEntity) { + if (!time.equals("")){ + time = time+"-"+sdf.format(classDetailEntity.getGoWorkDate())+"~"+sdf.format(classDetailEntity.getOffWorkDate()); + }else { + time = sdf.format(classDetailEntity.getGoWorkDate())+"~"+sdf.format(classDetailEntity.getOffWorkDate()); + } + } + monday ="鍛ㄤ竴"+"("+className+":"+time+")"; + attendanceTime = attendanceTime+monday; + }else { + rest = rest+"鍛ㄤ竴"; + } + //鍛ㄤ簩 + if ((Objects.nonNull(attendanceGroupFixedworkEntity)&&attendanceGroupFixedworkEntity.getTuesday()==1)){ + List<AttendanceClassDetailEntity> attendanceClassDetailEntity = attendanceClassDetailService.find(new AttendanceClassDetailQuery().classId(attendanceGroupFixedworkEntity.getTuesdayClassId())); + String className = attendanceGroupFixedworkEntity.getTuesdayClassName(); + String time = ""; + for (AttendanceClassDetailEntity classDetailEntity : attendanceClassDetailEntity) { + if (!time.equals("")){ + time = time+"-"+sdf.format(classDetailEntity.getGoWorkDate())+"~"+sdf.format(classDetailEntity.getOffWorkDate()); + }else { + time = sdf.format(classDetailEntity.getGoWorkDate())+"~"+sdf.format(classDetailEntity.getOffWorkDate()); + } + } + tuesday = "鍛ㄤ簩"+"("+className+":"+time+")"; + if (!attendanceTime.equals("")){ + attendanceTime = attendanceTime + "銆�"+tuesday; + }else { + attendanceTime = attendanceTime +tuesday; + } + }else { + if (!rest.equals("")){ + rest = rest+"銆�"+"鍛ㄤ簩"; + }else { + rest = rest+"鍛ㄤ簩"; + } + } + //鍛ㄤ笁 + if ((Objects.nonNull(attendanceGroupFixedworkEntity)&&attendanceGroupFixedworkEntity.getWednesday()==1)){ + List<AttendanceClassDetailEntity> attendanceClassDetailEntity = attendanceClassDetailService.find(new AttendanceClassDetailQuery().classId(attendanceGroupFixedworkEntity.getWednesdayClassId())); + String className = attendanceGroupFixedworkEntity.getWednesdayClassName(); + String time = ""; + for (AttendanceClassDetailEntity classDetailEntity : attendanceClassDetailEntity) { + if (!time.equals("")){ + time = time+"-"+sdf.format(classDetailEntity.getGoWorkDate())+"~"+sdf.format(classDetailEntity.getOffWorkDate()); + }else { + time = sdf.format(classDetailEntity.getGoWorkDate())+"~"+sdf.format(classDetailEntity.getOffWorkDate()); + } + } + wednesday = "鍛ㄤ笁"+"("+className+":"+time+")"; + if (!attendanceTime.equals("")){ + attendanceTime = attendanceTime + "銆�"+wednesday; + }else { + attendanceTime = attendanceTime +wednesday; + } + }else { + if (!rest.equals("")){ + rest = rest+"銆�"+"鍛ㄤ笁"; + }else { + rest = rest+"鍛ㄤ笁"; + } + } + //鍛ㄥ洓 + if ((Objects.nonNull(attendanceGroupFixedworkEntity)&&attendanceGroupFixedworkEntity.getThursday()==1)){ + List<AttendanceClassDetailEntity> attendanceClassDetailEntity = attendanceClassDetailService.find(new AttendanceClassDetailQuery().classId(attendanceGroupFixedworkEntity.getThursdayClassId())); + String className = attendanceGroupFixedworkEntity.getThursdayClassName(); + String time = ""; + for (AttendanceClassDetailEntity classDetailEntity : attendanceClassDetailEntity) { + if (!time.equals("")){ + time = time+"-"+sdf.format(classDetailEntity.getGoWorkDate())+"~"+sdf.format(classDetailEntity.getOffWorkDate()); + }else { + time = sdf.format(classDetailEntity.getGoWorkDate())+"~"+sdf.format(classDetailEntity.getOffWorkDate()); + } + } + thursday = "鍛ㄥ洓"+"("+className+":"+time+")"; + if (!attendanceTime.equals("")){ + attendanceTime = attendanceTime + "銆�"+thursday; + }else { + attendanceTime = attendanceTime +thursday; + } + }else { + if (!rest.equals("")){ + rest = rest+"銆�"+"鍛ㄥ洓"; + }else { + rest = rest+"鍛ㄥ洓"; + } + } + //鍛ㄤ簲 + if ((Objects.nonNull(attendanceGroupFixedworkEntity)&&attendanceGroupFixedworkEntity.getFriday()==1)){ + List<AttendanceClassDetailEntity> attendanceClassDetailEntity = attendanceClassDetailService.find(new AttendanceClassDetailQuery().classId(attendanceGroupFixedworkEntity.getFridayClassId())); + String className = attendanceGroupFixedworkEntity.getFridayClassName(); + String time = ""; + for (AttendanceClassDetailEntity classDetailEntity : attendanceClassDetailEntity) { + if (!time.equals("")){ + time = time+"-"+sdf.format(classDetailEntity.getGoWorkDate())+"~"+sdf.format(classDetailEntity.getOffWorkDate()); + }else { + time = sdf.format(classDetailEntity.getGoWorkDate())+"~"+sdf.format(classDetailEntity.getOffWorkDate()); + } + } + friday = "鍛ㄤ簲"+"("+className+":"+time+")"; + if (!attendanceTime.equals("")){ + attendanceTime = attendanceTime + "銆�"+friday; + }else { + attendanceTime = attendanceTime +friday; + } + }else { + if (!rest.equals("")){ + rest = rest+"銆�"+"鍛ㄤ簲"; + }else { + rest = rest+"鍛ㄤ簲"; + } + } + //鍛ㄥ叚 + if ((Objects.nonNull(attendanceGroupFixedworkEntity)&&attendanceGroupFixedworkEntity.getSaturday()==1)){ + List<AttendanceClassDetailEntity> attendanceClassDetailEntity = attendanceClassDetailService.find(new AttendanceClassDetailQuery().classId(attendanceGroupFixedworkEntity.getSaturdayClassId())); + String className = attendanceGroupFixedworkEntity.getSaturdayClassName(); + String time = ""; + for (AttendanceClassDetailEntity classDetailEntity : attendanceClassDetailEntity) { + if (!time.equals("")){ + time = time+"-"+sdf.format(classDetailEntity.getGoWorkDate())+"~"+sdf.format(classDetailEntity.getOffWorkDate()); + }else { + time = sdf.format(classDetailEntity.getGoWorkDate())+"~"+sdf.format(classDetailEntity.getOffWorkDate()); + } + } + saturday = "鍛ㄥ叚"+"("+className+":"+time+")"; + if (!attendanceTime.equals("")){ + attendanceTime = attendanceTime + "銆�"+saturday; + }else { + attendanceTime = attendanceTime +saturday; + } + }else { + if (!rest.equals("")){ + rest = rest+"銆�"+"鍛ㄥ叚"; + }else { + rest = rest+"鍛ㄥ叚"; + } + } + //鍛ㄦ棩 + if ((Objects.nonNull(attendanceGroupFixedworkEntity)&&attendanceGroupFixedworkEntity.getSunday()==1)){ + List<AttendanceClassDetailEntity> attendanceClassDetailEntity = attendanceClassDetailService.find(new AttendanceClassDetailQuery().classId(attendanceGroupFixedworkEntity.getSundayClassId())); + String className = attendanceGroupFixedworkEntity.getSundayClassName(); + String time = ""; + for (AttendanceClassDetailEntity classDetailEntity : attendanceClassDetailEntity) { + if (!time.equals("")){ + time = time+"-"+sdf.format(classDetailEntity.getGoWorkDate())+"~"+sdf.format(classDetailEntity.getOffWorkDate()); + }else { + time = sdf.format(classDetailEntity.getGoWorkDate())+"~"+sdf.format(classDetailEntity.getOffWorkDate()); + } + } + sunday = "鍛ㄦ棩"+"("+className+":"+time+")"; + if (!attendanceTime.equals("")){ + attendanceTime = attendanceTime + "銆�"+sunday; + }else { + attendanceTime = attendanceTime +sunday; + } + }else { + if (!rest.equals("")){ + rest = rest+"銆�"+"鍛ㄦ棩"; + }else { + rest = rest+"鍛ㄦ棩"; + } + } + } + + //鑷敱宸ユ椂 + AttendanceGroupFreeworkEntity attendanceGroupFreeworkEntity = freeworkService.selectOne(new AttendanceGroupFreeworkQuery().groupId(entity.getId())); + if (Objects.nonNull(attendanceGroupFreeworkEntity)){ + if (attendanceGroupFreeworkEntity.getMonday()==1){ + attendanceTime="鍛ㄤ竴"; + }else { + rest = "鍛ㄤ竴"; + } + if (attendanceGroupFreeworkEntity.getTuesday()==1){ + if (!attendanceTime.equals("")){ + attendanceTime = attendanceTime +"銆�"+"鍛ㄤ簩"; + }else { + attendanceTime = "鍛ㄤ簩"; + } + }else { + if (!rest.equals("")){ + rest = rest+"銆�"+"鍛ㄤ簩"; + }else { + rest = rest+"鍛ㄤ簩"; + } + } + if (attendanceGroupFreeworkEntity.getWednesday()==1){ + if (!attendanceTime.equals("")){ + attendanceTime = attendanceTime +"銆�"+"鍛ㄤ笁"; + }else { + attendanceTime = "鍛ㄤ笁"; + } + }else { + if (!rest.equals("")){ + rest = rest+"銆�"+"鍛ㄤ笁"; + }else { + rest = rest+"鍛ㄤ笁"; + } + } + if (attendanceGroupFreeworkEntity.getThursday()==1){ + if (!attendanceTime.equals("")){ + attendanceTime = attendanceTime +"銆�"+"鍛ㄥ洓"; + }else { + attendanceTime = "鍛ㄥ洓"; + } + }else { + if (!rest.equals("")){ + rest = rest+"銆�"+"鍛ㄥ洓"; + }else { + rest = rest+"鍛ㄥ洓"; + } + } + if (attendanceGroupFreeworkEntity.getFriday()==1){ + if (!attendanceTime.equals("")){ + attendanceTime = attendanceTime +"銆�"+"鍛ㄤ簲"; + }else { + attendanceTime = "鍛ㄤ簲"; + } + }else { + if (!rest.equals("")){ + rest = rest+"銆�"+"鍛ㄤ簲"; + }else { + rest = rest+"鍛ㄤ簲"; + } + } + if (attendanceGroupFreeworkEntity.getSaturday()==1){ + if (!attendanceTime.equals("")){ + attendanceTime = attendanceTime +"銆�"+"鍛ㄥ叚"; + }else { + attendanceTime = "鍛ㄥ叚"; + } + }else { + if (!rest.equals("")){ + rest = rest+"銆�"+"鍛ㄥ叚"; + }else { + rest = rest+"鍛ㄥ叚"; + } + } + if (attendanceGroupFreeworkEntity.getSunday()==1){ + if (!attendanceTime.equals("")){ + attendanceTime = attendanceTime +"銆�"+"鍛ㄦ棩"; + }else { + attendanceTime = "鍛ㄦ棩"; + } + }else { + if (!rest.equals("")){ + rest = rest+"銆�"+"鍛ㄦ棩"; + }else { + rest = rest+"鍛ㄦ棩"; + } + } + if (!attendanceTime.equals("")){ + attendanceTime = attendanceTime +"(宸ヤ綔鏃堕暱:"+attendanceGroupFreeworkEntity.getWorkTime()+")"; + } + } + + if (!rest.equals("")){ + rest = rest + "浼戞伅"; + } + entity.setRestTime(rest); + entity.setAttendanceTime(attendanceTime); + } + return super.doListAfter(query, model, context); + } } diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/web/AttendanceRecordController.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/web/AttendanceRecordController.java index 9ecb25422c25163cd7ed43f70aae8f738efada43..5815aafe9e7536d66fa4492afec95ebbe960f22a 100644 --- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/web/AttendanceRecordController.java +++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/web/AttendanceRecordController.java @@ -1,6 +1,12 @@ package com.mortals.xhx.module.attendance.web; import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; import com.mortals.xhx.base.system.param.service.ParamService; +import com.mortals.xhx.module.attendance.model.*; +import com.mortals.xhx.module.attendance.service.AttendanceClassService; +import com.mortals.xhx.module.attendance.service.AttendanceGroupService; +import com.mortals.xhx.module.dept.model.DeptEntity; +import com.mortals.xhx.module.dept.model.DeptQuery; +import com.mortals.xhx.module.dept.service.DeptService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -9,7 +15,6 @@ import com.mortals.framework.model.Context; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; -import com.mortals.xhx.module.attendance.model.AttendanceRecordEntity; import com.mortals.xhx.module.attendance.service.AttendanceRecordService; import org.apache.commons.lang3.ArrayUtils; import com.mortals.framework.util.StringUtils; @@ -36,12 +41,24 @@ public class AttendanceRecordController extends BaseCRUDJsonBodyMappingControlle @Autowired private ParamService paramService; + @Autowired + private AttendanceGroupService attendanceGroupService; + + @Autowired + private DeptService deptService; + + @Autowired + private AttendanceClassService attendanceClassService; + public AttendanceRecordController(){ super.setModuleDesc( "鑰冨嫟鎵撳崱璁板綍淇℃伅"); } @Override protected void init(Map<String, Object> model, Context context) { + this.addDict(model,"deptId",deptService.find(new DeptQuery()).stream().collect(Collectors.toMap(x->x.getId().toString(),y->y.getDeptName()))); + this.addDict(model,"groupId",attendanceGroupService.find(new AttendanceGroupQuery()).stream().collect(Collectors.toMap(x->x.getId().toString(),y->y.getGroupName()))); + this.addDict(model,"classId",attendanceClassService.find(new AttendanceClassQuery()).stream().collect(Collectors.toMap(x->x.getId().toString(),y->y.getClassName()))); super.init(model, context); } diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/web/AttendanceRecordErrorController.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/web/AttendanceRecordErrorController.java index 4a91f7c2e952de50c323ee4fc501c1eee04ca752..f993a9dd301e09a2cc0ab0de5cd453f6f044e079 100644 --- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/web/AttendanceRecordErrorController.java +++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/web/AttendanceRecordErrorController.java @@ -1,6 +1,17 @@ package com.mortals.xhx.module.attendance.web; +import com.mortals.framework.annotation.UnAuth; +import com.mortals.framework.common.Rest; +import com.mortals.framework.exception.AppException; +import com.mortals.framework.model.PageInfo; +import com.mortals.framework.model.Result; +import com.mortals.framework.service.IUser; +import com.mortals.framework.util.DateUtils; import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; import com.mortals.xhx.base.system.param.service.ParamService; +import com.mortals.xhx.module.attendance.model.*; +import com.mortals.xhx.module.attendance.service.*; +import com.mortals.xhx.module.dept.model.DeptQuery; +import com.mortals.xhx.module.dept.service.DeptService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -9,16 +20,12 @@ import com.mortals.framework.model.Context; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; -import com.mortals.xhx.module.attendance.model.AttendanceRecordErrorEntity; -import com.mortals.xhx.module.attendance.service.AttendanceRecordErrorService; import org.apache.commons.lang3.ArrayUtils; import com.mortals.framework.util.StringUtils; -import java.util.HashMap; -import java.util.List; -import java.util.Map; + +import java.util.*; import java.util.stream.Collectors; import com.alibaba.fastjson.JSONObject; -import java.util.Arrays; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import static com.mortals.framework.ap.SysConstains.*; @@ -36,6 +43,24 @@ public class AttendanceRecordErrorController extends BaseCRUDJsonBodyMappingCont @Autowired private ParamService paramService; + @Autowired + private AttendanceGroupService attendanceGroupService; + + @Autowired + private DeptService deptService; + + @Autowired + private AttendanceClassService attendanceClassService; + + @Autowired + private AttendanceRecordService attendanceRecordService; + + @Autowired + private AttendanceRecordDetailService attendanceRecordDetailService; + + @Autowired + private AttendanceRecordErrorService errorService; + public AttendanceRecordErrorController(){ super.setModuleDesc( "鑰冨嫟鎵撳崱璁板綍寮傚父淇℃伅"); } @@ -44,8 +69,46 @@ public class AttendanceRecordErrorController extends BaseCRUDJsonBodyMappingCont protected void init(Map<String, Object> model, Context context) { this.addDict(model, "errorStatus", paramService.getParamBySecondOrganize("AttendanceRecordError","errorStatus")); this.addDict(model, "processStatus", paramService.getParamBySecondOrganize("AttendanceRecordError","processStatus")); + this.addDict(model,"deptId",deptService.find(new DeptQuery()).stream().collect(Collectors.toMap(x->x.getId().toString(), y->y.getDeptName()))); + this.addDict(model,"groupId",attendanceGroupService.find(new AttendanceGroupQuery()).stream().collect(Collectors.toMap(x->x.getId().toString(), y->y.getGroupName()))); + this.addDict(model,"classId",attendanceClassService.find(new AttendanceClassQuery()).stream().collect(Collectors.toMap(x->x.getId().toString(), y->y.getClassName()))); super.init(model, context); } -} \ No newline at end of file + @PostMapping({"disposeError"}) + public Rest<String> disposeError(@RequestBody AttendanceRecordErrorEntity query) { + Rest<String> ret = new Rest(); + Context context = this.getContext(); + query.setOpertor(context.getUser().getRealName()); + query.setOperDateTime(new Date()); + query.setProcessStatus(1); + errorService.update(query); + DateUtils.convertTime2Str(query.getErrorDateTime().getTime(),DateUtils.P_yyyy_MM_dd); + AttendanceRecordQuery attendanceRecordQuery = new AttendanceRecordQuery(); + attendanceRecordQuery.setStaffId(query.getStaffId()); + attendanceRecordQuery.setAttendanceDateStart(DateUtils.convertTime2Str(query.getErrorDateTime().getTime(),DateUtils.P_yyyy_MM_dd)); + attendanceRecordQuery.setAttendanceDateEnd(DateUtils.convertTime2Str(query.getErrorDateTime().getTime(),DateUtils.P_yyyy_MM_dd)); + AttendanceRecordEntity attendanceRecordEntity = attendanceRecordService.selectOne(attendanceRecordQuery); + AttendanceRecordDetailQuery detailQuery = new AttendanceRecordDetailQuery(); + detailQuery.setRecordId(attendanceRecordEntity.getId()); + detailQuery.setShiftsId(query.getShiftsId()); + List<AttendanceRecordDetailEntity> attendanceRecordDetailEntity = attendanceRecordDetailService.find(detailQuery); + for (AttendanceRecordDetailEntity recordDetailEntity : attendanceRecordDetailEntity) { + Date goWorkDate = recordDetailEntity.getGoWorkDate(); + Date offWorkDate = recordDetailEntity.getOffWorkDate(); + if (goWorkDate.getTime()==query.getErrorDateTime().getTime()){ + recordDetailEntity.setGoWorkResult(query.getErrorStatus()); + } + if (offWorkDate.getTime()==query.getErrorDateTime().getTime()){ + recordDetailEntity.setOffWorkResult(query.getErrorStatus()); + } + attendanceRecordDetailService.update(recordDetailEntity); + } + return Rest.ok(); + } + + + + +} diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/web/AttendanceRecordHikController.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/web/AttendanceRecordHikController.java index d72aaabfb0ccc81623ee7a0a77a8ba8390c8fa99..8ceafe85c2bcfcd56bc80104a7843ce32cbd7d4e 100644 --- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/web/AttendanceRecordHikController.java +++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/web/AttendanceRecordHikController.java @@ -1,15 +1,48 @@ package com.mortals.xhx.module.attendance.web; - -import com.mortals.framework.model.Context; +import cn.hutool.core.util.StrUtil; +import com.mortals.framework.exception.AppException; +import com.mortals.framework.service.IUser; +import com.mortals.framework.utils.ServletUtils; import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; import com.mortals.xhx.base.system.param.service.ParamService; -import com.mortals.xhx.module.attendance.model.AttendanceRecordHikEntity; -import com.mortals.xhx.module.attendance.service.AttendanceRecordHikService; +import com.mortals.xhx.base.system.upload.service.UploadService; +import com.mortals.xhx.module.attendance.model.*; +import com.mortals.xhx.module.attendance.service.*; +import com.mortals.xhx.module.dept.model.DeptEntity; +import com.mortals.xhx.module.dept.model.DeptQuery; +import com.mortals.xhx.module.dept.service.DeptService; +import com.mortals.xhx.module.staff.model.StaffEntity; +import com.mortals.xhx.module.staff.model.StaffQuery; +import com.mortals.xhx.module.staff.service.StaffService; +import com.sun.xml.internal.bind.v2.TODO; +import javassist.Loader; +import org.apache.commons.lang.StringEscapeUtils; +import org.apache.commons.lang.time.DateUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; +import com.mortals.framework.model.Context; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; +import org.apache.commons.lang3.ArrayUtils; +import com.mortals.framework.util.StringUtils; -import java.util.Map; +import java.io.ByteArrayInputStream; +import java.io.InputStream; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.time.*; +import java.time.format.DateTimeFormatter; +import java.util.*; +import java.util.stream.Collectors; +import com.alibaba.fastjson.JSONObject; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import static com.mortals.framework.ap.SysConstains.*; /** * * 娴峰悍鑰冨嫟鎵撳崱璁板綍姹囨€讳俊鎭� @@ -23,6 +56,30 @@ public class AttendanceRecordHikController extends BaseCRUDJsonBodyMappingContro @Autowired private ParamService paramService; + @Autowired + private DeptService deptService; + @Autowired + private AttendanceRecordService attendanceRecordService; + @Autowired + private AttendanceRecordHikService attendanceRecordHikService; + @Autowired + private AttendanceGroupStaffService attendanceGroupStaffService; + @Autowired + private AttendanceGroupService attendanceGroupService; + @Autowired + private AttendanceGroupFixedworkService attendanceGroupFixedworkService; + @Autowired + private AttendanceClassService attendanceClassService; + @Autowired + private AttendanceClassDetailService attendanceClassDetailService; + @Autowired + private StaffService staffService; + @Autowired + private UploadService uploadService; + @Autowired + private AttendanceExportRecordService attendanceExportRecordService; + @Autowired + private AttendanceRecordErrorService errorService; public AttendanceRecordHikController(){ super.setModuleDesc( "娴峰悍鑰冨嫟鎵撳崱璁板綍姹囨€讳俊鎭�"); @@ -34,4 +91,487 @@ public class AttendanceRecordHikController extends BaseCRUDJsonBodyMappingContro } -} \ No newline at end of file + @Override + @Transactional(rollbackFor = Exception.class) + public void doImportDataBefore(List<AttendanceRecordHikEntity> list, boolean updateSupport, Context context) throws AppException { + + + list.forEach(item->{ + String orgName = item.getOrgName(); + //todo split orgName to deptId and deptName + String[] split = orgName.split("/"); + + String deptName = split[split.length-1]; + DeptQuery deptQuery = new DeptQuery(); + deptQuery.setDeptName(deptName); + //閫氳繃鍒嗚В鐨刣eptName鍘昏幏鍙栭儴闂ㄤ俊鎭� + List<DeptEntity> deptEntities = deptService.find(deptQuery); + Long deptId = 0L; + //鍒ゆ柇鏌ュ嚭鏉ョ殑閮ㄩ棬淇℃伅鏄惁涓轰竴涓�,鏄殑璇濈洿鎺ヨ幏鍙杋d,涓嶆槸鐨勮瘽鑾峰彇閮ㄩ棬鐨勭埗绾d,閫氳繃鐖剁骇id鍜宒eptName鍘绘煡閮ㄩ棬id + if (StringUtils.isNotNull(deptEntities) && deptEntities.size()==1){ + deptId = deptEntities.get(0).getId(); + }else { + String parentDeptName = split[split.length - 2]; + + deptQuery.setDeptName(parentDeptName); + DeptEntity deptEntity = deptService.selectOne(deptQuery); + + deptQuery.setDeptName(deptName); + deptQuery.setParentId(deptEntity.getParentId()); + DeptEntity dept = deptService.selectOne(deptQuery); + deptId = dept.getId(); + } + //閫氳繃宸ュ彿鍘绘煡璇㈠憳宸ヤ俊鎭� + String workNum = item.getWorkNum(); + String replace = StrUtil.replace(workNum, "\t", ""); + StaffEntity staffEntity = staffService.selectOne(new StaffQuery().workNum(replace)); + item.setWorkNum(replace); + item.setStaffId(staffEntity.getId()); + item.setDeptId(deptId); + item.setDeptName(deptName); + item.setPositionId(staffEntity.getPositionId()); + item.setPositionName(staffEntity.getPositionName()); + }); + //瀛樺叆娴峰悍鎵撳崱鍘熷鏁版嵁 mortals_xhx_attendance_record_hik + super.doImportDataBefore(list, updateSupport, context); + } + + @Override + protected int batchSaveAfter(List<AttendanceRecordHikEntity> list, Map<String, Object> model, Context context) throws AppException { + return super.batchSaveAfter(list, model, context); + } + + @PostMapping(value = "/addAttendanceRecord") + public void addAttendanceRecord(@RequestBody AttendanceRecordHikEntity hikEntity) throws ParseException { + List<AttendanceRecordHikEntity> list = hikEntity.getList(); + //瀵硅€冨嫟鏁版嵁鏍规嵁鑰冨嫟鏃堕棿杩涜鎺掑簭 + List<AttendanceRecordHikEntity> collect = list.stream().sorted(Comparator.comparing(AttendanceRecordHikEntity::getAttendanceDate)).collect(Collectors.toList()); + //鏍规嵁宸ュ彿瀵硅€冨嫟鏁版嵁杩涜鍒嗙粍 + Map<String, List<AttendanceRecordHikEntity>> listMap = collect.stream().collect(Collectors.groupingBy(AttendanceRecordHikEntity::getWorkNum)); + //map閬嶅巻.鍏堟妸鎵€鏈夐敭鍙栧嚭鏉� + Set<String> workNumSet = listMap.keySet(); + //鏍规嵁閿彇鍑簐alue + for (String workNum : workNumSet) { + List<AttendanceRecordHikEntity> attendanceRecordHikEntities1 = listMap.get(workNum); + //瀵规寜鐓у伐鍙峰垎缁勪簡鐨勬暟鎹產ttendanceRecordHikEntities杩涜鏃堕棿鍒嗙粍 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + Map<String, List<AttendanceRecordHikEntity>> map = attendanceRecordHikEntities1.stream().collect(Collectors.groupingBy(entity -> entity.getAttendanceDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate().format(formatter))); + Set<String> dateSet = map.keySet(); + for (String s : dateSet) { + List<AttendanceRecordHikEntity> attendanceRecordHikEntities = map.get(s); + //瀵圭浉鍚屽伐鍙风殑浜哄憳杩涜閬嶅巻鍒ゆ柇鑰冨嫟瑙勫垯. + AttendanceRecordEntity attendanceRecordEntity = new AttendanceRecordEntity(); + List<AttendanceRecordDetailEntity> detailEntity = new ArrayList<>(); + for (AttendanceRecordHikEntity item:attendanceRecordHikEntities) { + //瀵逛富琛ㄧ殑瀵硅薄杩涜璧嬪€� + if (Objects.nonNull(attendanceRecordEntity)){ + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + attendanceRecordEntity.setStaffId(item.getStaffId()); + attendanceRecordEntity.setStaffName(item.getStaffName()); + attendanceRecordEntity.setDeptId(item.getDeptId()); + attendanceRecordEntity.setDeptName(item.getDeptName()); + attendanceRecordEntity.setPositionId(item.getPositionId()); + attendanceRecordEntity.setPositionName(item.getPositionName()); + attendanceRecordEntity.setWorkNum(item.getWorkNum()); + IUser user = getContext().getUser(); + attendanceRecordEntity.setCreateTime(new Date()); + attendanceRecordEntity.setCreateUserId(user.getId()); + attendanceRecordEntity.setAttendanceDate(sdf.parse(sdf.format(item.getAttendanceDate()))); + } + //鑾峰彇鑰冨嫟鎵撳崱鏃堕棿 + Date attendanceDate = item.getAttendanceDate(); + //閫氳繃宸ュ彿鏌ヨ鍛樺伐淇℃伅 + StaffQuery staffQuery = new StaffQuery(); + StaffEntity staffEntity = staffService.selectOne(staffQuery.workNum(item.getWorkNum())); + //閫氳繃鍛樺伐id鏌ヨ鑰冨嫟浜哄憳淇℃伅 + AttendanceGroupStaffQuery attendanceGroupStaffQuery = new AttendanceGroupStaffQuery(); + List<AttendanceGroupStaffEntity> attendanceGroupStaffEntities = attendanceGroupStaffService.find(attendanceGroupStaffQuery.staffId(staffEntity.getId())); + //鏌ヨ璇ヨ€冨嫟浜哄憳,濡傛灉鏌ュ嚭鏉ョ殑鑰冨嫟浜哄憳淇℃伅list闀垮害涓�1 鍒欒鑰冨嫟浜哄憳鍙湁涓€涓€冨嫟缁� + if (StringUtils.isNotNull(attendanceGroupStaffEntities) && attendanceGroupStaffEntities.size()==1){ + //鏌ヨ鑰冨嫟缁� + AttendanceGroupQuery attendanceGroupQuery = new AttendanceGroupQuery(); + AttendanceGroupEntity attendanceGroupEntity = attendanceGroupService.selectOne(attendanceGroupQuery.id(attendanceGroupStaffEntities.get(0).getGroupId())); + //鏌ヨ鑰冨嫟缁勮缁嗕俊鎭幏鍙栫彮娆� + AttendanceGroupFixedworkQuery attendanceGroupFixedworkQuery = new AttendanceGroupFixedworkQuery(); + AttendanceGroupFixedworkEntity attendanceGroupFixedworkEntity = attendanceGroupFixedworkService.selectOne(attendanceGroupFixedworkQuery.groupId(attendanceGroupEntity.getId())); + //鍒ゆ柇褰撳墠鑰冨嫟鏃ユ湡涓哄懆鍑� + Date attendanceDate1 = attendanceDate; + String week = this.getWeek(attendanceDate1); + //閫氳繃鑰冨嫟鏃ユ湡鐨勬槦鏈熸嬁鍒扮彮娆d. + Long weekClassId = this.getWeekClassId(attendanceGroupFixedworkEntity, week); + //weekClassId涓�-1 鍒欎笉鍦ㄨ€冨嫟 + if (weekClassId==-1L){ + //璺宠繃鏈寰幆 + continue; + } + //鑾峰彇鐝淇℃伅 + AttendanceClassQuery attendanceClassQuery = new AttendanceClassQuery(); + AttendanceClassEntity attendanceClassEntity = attendanceClassService.selectOne(attendanceClassQuery.id(weekClassId)); + //鑾峰彇鐝璇︾粏淇℃伅 + AttendanceClassDetailQuery attendanceClassDetailQuery = new AttendanceClassDetailQuery(); + List<AttendanceClassDetailEntity> attendanceClassDetailEntities = attendanceClassDetailService.find(attendanceClassDetailQuery.classId(attendanceClassEntity.getId())); + Integer orderNum = 0; + for (AttendanceClassDetailEntity classDetailEntity : attendanceClassDetailEntities) { + orderNum++; + AttendanceRecordDetailEntity recordDetailEntity = new AttendanceRecordDetailEntity(); + recordDetailEntity.setShiftsId(classDetailEntity.getId()); + recordDetailEntity.setShiftsName(classDetailEntity.getClassName()); + recordDetailEntity.setGoWorkResult(3); + recordDetailEntity.setOffWorkResult(3); + recordDetailEntity.setOrderNum(orderNum); + detailEntity.add(recordDetailEntity); + } + + for (AttendanceClassDetailEntity classDetail :attendanceClassDetailEntities) { + SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); + //涓婄彮鎵撳崱鍓嶆椂闂� + Date goWorkDateBefore = sdf.parse(sdf.format(DateUtils.addMinutes(classDetail.getGoWorkDate(), -classDetail.getGoWorkDateBefore()))); + //涓婄彮鎵撳崱鍚庢椂闂� + Date goWorkDateAfter = sdf.parse(sdf.format(DateUtils.addMinutes(classDetail.getGoWorkDate(), classDetail.getGoWorkDateAfter()))); + //涓嬬彮鎵撳崱鍓嶆椂闂� + Date offWorkDateBefore = sdf.parse(sdf.format(DateUtils.addMinutes(classDetail.getOffWorkDate(), -classDetail.getOffWorkDateBefore()))); + //涓嬬彮鎵撳崱鍚庢椂闂� + Date offWorkDateAfter = sdf.parse(sdf.format(DateUtils.addMinutes(classDetail.getOffWorkDate(), classDetail.getOffWorkDateAfter()))); + //鍒ゆ柇鑰冨嫟鏃堕棿鏄惁鍦ㄤ笂鐝墦鍗″尯闂村唴 true 鍦� false 涓嶅湪 + boolean goInTime = isInTime(sdf.parse(sdf.format(attendanceDate)), goWorkDateBefore, goWorkDateAfter); + //鍒ゆ柇鑰冨嫟鏃堕棿鏄惁鍦ㄤ笅鐝墦鍗″尯闂村唴 + boolean offInTime = isInTime(sdf.parse(sdf.format(attendanceDate)), offWorkDateBefore, offWorkDateAfter); + if (goInTime==false && offInTime==false){ + continue; + } + if (goInTime) { + //濡傛灉鏄笂鐝墦鍗�,鍒ゆ柇鏄惁杩熷埌 + boolean inTime = isInTime(sdf.parse(sdf.format(attendanceDate)), goWorkDateBefore,sdf.parse(sdf.format(classDetail.getGoWorkDate()))); + if (!inTime) { + for (AttendanceRecordDetailEntity attendanceRecordDetailEntity : detailEntity) { + if (attendanceRecordDetailEntity.getShiftsId().equals(classDetail.getClassId())){ + attendanceRecordDetailEntity.setGoWorkResult(4); + attendanceRecordDetailEntity.setGoWorkDate(attendanceDate); + } + } + } + if (inTime) { + for (AttendanceRecordDetailEntity attendanceRecordDetailEntity : detailEntity) { + if (attendanceRecordDetailEntity.getShiftsId().equals(classDetail.getClassId())){ + attendanceRecordDetailEntity.setGoWorkResult(1); + attendanceRecordDetailEntity.setGoWorkDate(attendanceDate); + } + } + } + } + if(offInTime){ + boolean inTime = isInTime(sdf.parse(sdf.format(attendanceDate)),sdf.parse(sdf.format( classDetail.getOffWorkDate())), offWorkDateAfter); + if (!inTime){ + for (AttendanceRecordDetailEntity attendanceRecordDetailEntity : detailEntity) { + if (attendanceRecordDetailEntity.getShiftsId().equals(classDetail.getClassId())){ + attendanceRecordDetailEntity.setOffWorkResult(5); + attendanceRecordDetailEntity.setOffWorkDate(attendanceDate); + } + } + } + if (inTime){ + for (AttendanceRecordDetailEntity attendanceRecordDetailEntity : detailEntity) { + if (attendanceRecordDetailEntity.getShiftsId().equals(classDetail.getClassId())){ + attendanceRecordDetailEntity.setOffWorkResult(1); + attendanceRecordDetailEntity.setOffWorkDate(attendanceDate); + } + } + } + } + } + } + //濡傛灉鑰冨嫟浜哄憳淇℃伅list闀垮害澶т簬1 鍒欒鑰冨嫟浜哄憳鏈夊涓€冨嫟缁�. + if (StringUtils.isNotNull(attendanceGroupStaffEntities) && attendanceGroupStaffEntities.size()>1){ + for (AttendanceGroupStaffEntity groupStaffEntity:attendanceGroupStaffEntities){ + { + //鏌ヨ鑰冨嫟缁� + AttendanceGroupQuery attendanceGroupQuery = new AttendanceGroupQuery(); + AttendanceGroupEntity attendanceGroupEntity = attendanceGroupService.selectOne(attendanceGroupQuery.id(groupStaffEntity.getGroupId())); + //鏌ヨ鑰冨嫟缁勮缁嗕俊鎭幏鍙栫彮娆� + AttendanceGroupFixedworkQuery attendanceGroupFixedworkQuery = new AttendanceGroupFixedworkQuery(); + AttendanceGroupFixedworkEntity attendanceGroupFixedworkEntity = attendanceGroupFixedworkService.selectOne(attendanceGroupFixedworkQuery.groupId(attendanceGroupEntity.getId())); + //鍒ゆ柇褰撳墠鑰冨嫟鏃ユ湡涓哄懆鍑� + Date attendanceDate1 = attendanceDate; + String week = this.getWeek(attendanceDate1); + //閫氳繃鑰冨嫟鏃ユ湡鐨勬槦鏈熸嬁鍒扮彮娆d. + Long weekClassId = this.getWeekClassId(attendanceGroupFixedworkEntity, week); + //weekClassId涓�-1 鍒欎笉鍦ㄨ€冨嫟 + if (weekClassId==-1L){ + //璺宠繃鏈寰幆 + continue; + } + //鑾峰彇鐝淇℃伅 + AttendanceClassQuery attendanceClassQuery = new AttendanceClassQuery(); + AttendanceClassEntity attendanceClassEntity = attendanceClassService.selectOne(attendanceClassQuery.id(weekClassId)); + //鑾峰彇鐝璇︾粏淇℃伅 + AttendanceClassDetailQuery attendanceClassDetailQuery = new AttendanceClassDetailQuery(); + List<AttendanceClassDetailEntity> attendanceClassDetailEntities = attendanceClassDetailService.find(attendanceClassDetailQuery.classId(attendanceClassEntity.getId())); + Integer orderNum = 0; + for (AttendanceClassDetailEntity classDetailEntity : attendanceClassDetailEntities) { + orderNum++; + AttendanceRecordDetailEntity recordDetailEntity = new AttendanceRecordDetailEntity(); + recordDetailEntity.setShiftsId(classDetailEntity.getId()); + recordDetailEntity.setShiftsName(classDetailEntity.getClassName()); + recordDetailEntity.setGoWorkResult(3); + recordDetailEntity.setOffWorkResult(3); + recordDetailEntity.setOrderNum(orderNum); + detailEntity.add(recordDetailEntity); + } + for (AttendanceClassDetailEntity classDetail :attendanceClassDetailEntities) { + SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); + //涓婄彮鎵撳崱鍓嶆椂闂� + Date goWorkDateBefore = sdf.parse(sdf.format(DateUtils.addMinutes(classDetail.getGoWorkDate(), -classDetail.getGoWorkDateBefore()))); + //涓婄彮鎵撳崱鍚庢椂闂� + Date goWorkDateAfter = sdf.parse(sdf.format(DateUtils.addMinutes(classDetail.getGoWorkDate(), classDetail.getGoWorkDateAfter()))); + //涓嬬彮鎵撳崱鍓嶆椂闂� + Date offWorkDateBefore = sdf.parse(sdf.format(DateUtils.addMinutes(classDetail.getOffWorkDate(), -classDetail.getOffWorkDateBefore()))); + //涓嬬彮鎵撳崱鍚庢椂闂� + Date offWorkDateAfter = sdf.parse(sdf.format(DateUtils.addMinutes(classDetail.getOffWorkDate(), classDetail.getOffWorkDateAfter()))); + //鍒ゆ柇鑰冨嫟鏃堕棿鏄惁鍦ㄤ笂鐝墦鍗″尯闂村唴 true 鍦� false 涓嶅湪 + boolean goInTime = isInTime(sdf.parse(sdf.format(attendanceDate)), goWorkDateBefore, goWorkDateAfter); + //鍒ゆ柇鑰冨嫟鏃堕棿鏄惁鍦ㄤ笅鐝墦鍗″尯闂村唴 + boolean offInTime = isInTime(sdf.parse(sdf.format(attendanceDate)), offWorkDateBefore, offWorkDateAfter); + if (goInTime==false&&offInTime==false){ + continue; + } + if (goInTime) { + //濡傛灉鏄笂鐝墦鍗�,鍒ゆ柇鏄惁杩熷埌 + boolean inTime = isInTime(sdf.parse(sdf.format(attendanceDate)), goWorkDateBefore,sdf.parse(sdf.format(classDetail.getGoWorkDate()))); + if (!inTime) { + for (AttendanceRecordDetailEntity attendanceRecordDetailEntity : detailEntity) { + if (attendanceRecordDetailEntity.getShiftsId().equals(classDetail.getClassId())){ + attendanceRecordDetailEntity.setGoWorkResult(4); + attendanceRecordDetailEntity.setGoWorkDate(attendanceDate); + } + } + } + if (inTime) { + for (AttendanceRecordDetailEntity attendanceRecordDetailEntity : detailEntity) { + if (attendanceRecordDetailEntity.getShiftsId().equals(classDetail.getClassId())){ + attendanceRecordDetailEntity.setGoWorkResult(1); + attendanceRecordDetailEntity.setGoWorkDate(attendanceDate); + } + } + } + } + if(offInTime){ + boolean inTime = isInTime(sdf.parse(sdf.format(attendanceDate)),sdf.parse(sdf.format(classDetail.getOffWorkDate())), offWorkDateAfter); + if (!inTime){ + for (AttendanceRecordDetailEntity attendanceRecordDetailEntity : detailEntity) { + if (attendanceRecordDetailEntity.getShiftsId().equals(classDetail.getClassId())){ + attendanceRecordDetailEntity.setOffWorkResult(5); + attendanceRecordDetailEntity.setOffWorkDate(attendanceDate); + } + } + } + if (inTime){ + for (AttendanceRecordDetailEntity attendanceRecordDetailEntity : detailEntity) { + if (attendanceRecordDetailEntity.getShiftsId().equals(classDetail.getClassId())){ + attendanceRecordDetailEntity.setOffWorkResult(1); + attendanceRecordDetailEntity.setOffWorkDate(attendanceDate); + } + } + } + } + } + } + } + } + } + List<AttendanceRecordErrorEntity> errorEntityList = new ArrayList<>(); + for (AttendanceRecordDetailEntity recordDetailEntity : detailEntity) { + Integer goWorkResult = recordDetailEntity.getGoWorkResult(); + Integer offWorkResult = recordDetailEntity.getOffWorkResult(); + if (goWorkResult!=1){ + AttendanceRecordErrorEntity errorEntity = new AttendanceRecordErrorEntity(); + errorEntity.setStaffId(attendanceRecordEntity.getStaffId()); + errorEntity.setStaffName(attendanceRecordEntity.getStaffName()); + errorEntity.setWorkNum(attendanceRecordEntity.getWorkNum()); + errorEntity.setDeptId(attendanceRecordEntity.getDeptId()); + errorEntity.setDeptName(attendanceRecordEntity.getDeptName()); + errorEntity.setPositionId(attendanceRecordEntity.getPositionId()); + errorEntity.setPositionName(attendanceRecordEntity.getPositionName()); + errorEntity.setShiftsId(recordDetailEntity.getShiftsId()); + errorEntity.setShiftsName(recordDetailEntity.getShiftsName()); + errorEntity.setGoOffDateTime(attendanceClassDetailService.selectOne(new AttendanceClassDetailQuery().id(recordDetailEntity.getShiftsId())).getGoWorkDate()); + errorEntity.setErrorDateTime(recordDetailEntity.getGoWorkDate()); + errorEntity.setActualAttendanceDateTime(recordDetailEntity.getGoWorkDate()); + errorEntity.setErrorStatus(recordDetailEntity.getGoWorkResult()); + errorEntity.setProcessResult("0"); + IUser user = getContext().getUser(); + errorEntity.setCreateTime(new Date()); + errorEntity.setCreateUserId(user.getId()); + errorEntityList.add(errorEntity); + } + if (offWorkResult!=1){ + AttendanceRecordErrorEntity errorEntity = new AttendanceRecordErrorEntity(); + errorEntity.setStaffId(attendanceRecordEntity.getStaffId()); + errorEntity.setStaffName(attendanceRecordEntity.getStaffName()); + errorEntity.setWorkNum(attendanceRecordEntity.getWorkNum()); + errorEntity.setDeptId(attendanceRecordEntity.getDeptId()); + errorEntity.setDeptName(attendanceRecordEntity.getDeptName()); + errorEntity.setPositionId(attendanceRecordEntity.getPositionId()); + errorEntity.setPositionName(attendanceRecordEntity.getPositionName()); + errorEntity.setShiftsId(recordDetailEntity.getShiftsId()); + errorEntity.setShiftsName(recordDetailEntity.getShiftsName()); + errorEntity.setGoOffDateTime(attendanceClassDetailService.selectOne(new AttendanceClassDetailQuery().id(recordDetailEntity.getShiftsId())).getOffWorkDate()); + errorEntity.setErrorDateTime(recordDetailEntity.getOffWorkDate()); + errorEntity.setActualAttendanceDateTime(recordDetailEntity.getOffWorkDate()); + errorEntity.setErrorStatus(recordDetailEntity.getOffWorkResult()); + errorEntity.setProcessResult("0"); + IUser user = getContext().getUser(); + errorEntity.setCreateTime(new Date()); + errorEntity.setCreateUserId(user.getId()); + errorEntityList.add(errorEntity); + } + + } + if (errorEntityList!=null&&errorEntityList.size()>0){ + errorService.save(errorEntityList); + } + attendanceRecordEntity.setAttendanceRecordDetailList(detailEntity); + attendanceRecordService.save(attendanceRecordEntity); + } + + } + + } + + public String getWeek(Date date){ + SimpleDateFormat sdf = new SimpleDateFormat("EEEE"); + String week = sdf.format(date); + return week; + } + + /** + * 鑾峰彇閫氳繃鏄熸湡鑾峰彇鐝id 濡傛灉杩斿弬涓�-1 鍒欎笉鍦ㄨ€冨嫟 + * @return + */ + public Long getWeekClassId(AttendanceGroupFixedworkEntity attendanceGroupFixedworkEntity,String week){ + Long weekClassId = 0L; + switch (week){ + case "鏄熸湡涓€": + if (attendanceGroupFixedworkEntity.getMonday()==0){ + weekClassId = -1L; + return weekClassId; + } + weekClassId = attendanceGroupFixedworkEntity.getMondayClassId(); + break; + case "鏄熸湡浜�": + if (attendanceGroupFixedworkEntity.getTuesday()==0){ + weekClassId = -1L; + return weekClassId; + } + weekClassId = attendanceGroupFixedworkEntity.getTuesdayClassId(); + break; + case "鏄熸湡涓�": + if (attendanceGroupFixedworkEntity.getWednesday()==0){ + weekClassId = -1L; + return weekClassId; + } + weekClassId = attendanceGroupFixedworkEntity.getWednesdayClassId(); + break; + case "鏄熸湡鍥�": + if (attendanceGroupFixedworkEntity.getThursday()==0){ + weekClassId = -1L; + return weekClassId; + } + weekClassId = attendanceGroupFixedworkEntity.getThursdayClassId(); + break; + case "鏄熸湡浜�": + if (attendanceGroupFixedworkEntity.getFriday()==0){ + weekClassId = -1L; + return weekClassId; + } + weekClassId = attendanceGroupFixedworkEntity.getFridayClassId(); + break; + case "鏄熸湡鍏�": + if (attendanceGroupFixedworkEntity.getSaturday()==0){ + weekClassId = -1L; + return weekClassId; + } + weekClassId = attendanceGroupFixedworkEntity.getSaturdayClassId(); + break; + case "鏄熸湡澶�": + if (attendanceGroupFixedworkEntity.getSunday()==0){ + weekClassId = -1L; + return weekClassId; + } + weekClassId = attendanceGroupFixedworkEntity.getSundayClassId(); + break; + } + return weekClassId; + } + + /** + * + * @param nowTime 褰撳墠鏃堕棿 + * @param startTime 寮€濮嬫椂闂� + * @param endTime 缁撴潫鏃堕棿 + * @return + * 鍒ゆ柇褰撳墠鏃堕棿鍦ㄦ椂闂村尯闂村唴 + */ + public static boolean isInTime(Date nowTime, Date startTime, Date endTime) { + if (nowTime.getTime() == startTime.getTime() + || nowTime.getTime() == endTime.getTime()) { + return true; + } + Calendar date = Calendar.getInstance(); + date.setTime(nowTime); + + Calendar begin = Calendar.getInstance(); + begin.setTime(startTime); + + Calendar end = Calendar.getInstance(); + end.setTime(endTime); + + if (date.after(begin) && date.before(end)) { + return true; + } else { + return false; + } + } + + + @Override + protected void doListBefore(AttendanceRecordHikEntity query, Map<String, Object> model, Context context) throws AppException { + if (query.getStaffName()!=null && !query.getStaffName().equals("")){ + String staffName = "%" + query.getStaffName() + "%"; + query.setStaffName(staffName); + } + super.doListBefore(query, model, context); + } + + @Override + public void doExportFileAfter(byte[] data, AttendanceRecordHikEntity query, Context context) throws AppException { + InputStream inputStream = new ByteArrayInputStream(data); + MultipartFile file = ServletUtils.getMultipartFile(inputStream, "kaoqin.xlsx"); + String filePath = uploadService.saveFileUpload(file, "file/fileupload",null); + AttendanceExportRecordEntity attendanceExportRecordEntity = new AttendanceExportRecordEntity(); + attendanceExportRecordEntity.initAttrValue(); + attendanceExportRecordEntity.setFilePath(filePath); + if (query.getIdList()!=null){ + List<Long> idList = query.getIdList(); + String recordIdList = ""; + for (Long aLong : idList) { + if (recordIdList.equals("")){ + recordIdList = recordIdList + aLong; + }else { + recordIdList = recordIdList + "銆�" +aLong; + } + } + attendanceExportRecordEntity.setRecordIdList(recordIdList); + } + if (query.getAttendanceDateStart()!=null){ + String attendanceDate = query.getAttendanceDateStart() + "~"+query.getAttendanceDateEnd(); + attendanceExportRecordEntity.setAttendanceDate(attendanceDate); + } + attendanceExportRecordEntity.setCreateUserId(context.getUser().getId()); + attendanceExportRecordEntity.setCreateTime(new Date()); + attendanceExportRecordEntity.setType(1); + attendanceExportRecordEntity.setExportOrImport(1); + attendanceExportRecordService.save(attendanceExportRecordEntity); + super.doExportFileAfter(data, query, context); + } + +} diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/web/StaffController.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/web/StaffController.java index 1a14a9eeca24f829727ccf5e6c77b71f73f5619b..e316bc8595e54a21225b41d2fd71f5e78fcc8807 100644 --- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/web/StaffController.java +++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/web/StaffController.java @@ -8,6 +8,7 @@ import com.mortals.xhx.module.dept.model.DeptEntity; import com.mortals.xhx.module.dept.model.DeptQuery; import com.mortals.xhx.module.dept.model.DeptTreeSelect; import com.mortals.xhx.module.dept.service.DeptService; +import com.mortals.xhx.module.job.model.JobEntity; import com.mortals.xhx.module.job.model.JobQuery; import com.mortals.xhx.module.job.service.JobService; import com.mortals.xhx.module.staff.model.StaffEntity; @@ -106,4 +107,5 @@ public class StaffController extends BaseCRUDJsonBodyMappingController<StaffServ super.doExportBefore(context, query); } -} \ No newline at end of file +} + diff --git a/attendance-performance-manager/src/main/resources/sqlmap/module/attendance/AttendanceExportRecordMapper.xml b/attendance-performance-manager/src/main/resources/sqlmap/module/attendance/AttendanceExportRecordMapper.xml new file mode 100644 index 0000000000000000000000000000000000000000..768bbd91f669b3582bd430321db7e80e323f1dd0 --- /dev/null +++ b/attendance-performance-manager/src/main/resources/sqlmap/module/attendance/AttendanceExportRecordMapper.xml @@ -0,0 +1,795 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "mybatis-3-mapper.dtd"> +<mapper namespace="com.mortals.xhx.module.attendance.dao.ibatis.AttendanceExportRecordDaoImpl"> + + <!-- 瀛楁鍜屽睘鎬ф槧灏� --> + <resultMap type="AttendanceExportRecordEntity" id="AttendanceExportRecordEntity-Map"> + <id property="id" column="id" /> + <result property="deptName" column="deptName" /> + <result property="groupName" column="groupName" /> + <result property="className" column="className" /> + <result property="attendanceDate" column="attendanceDate" /> + <result property="exportOrImport" column="exportOrImport" /> + <result property="filePath" column="filePath" /> + <result property="type" column="type" /> + <result property="remark" column="remark" /> + <result property="createUserId" column="createUserId" /> + <result property="createTime" column="createTime" /> + <result property="updateUserId" column="updateUserId" /> + <result property="updateTime" column="updateTime" /> + <result property="recordIdList" column="recordIdList" /> + + </resultMap> + + + <!-- 琛ㄦ墍鏈夊垪 --> + <sql id="_columns"> + <trim suffixOverrides="," suffix=""> + <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('id') or colPickMode == 1 and data.containsKey('id')))"> + a.id, + </if> + <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('deptName') or colPickMode == 1 and data.containsKey('deptName')))"> + a.deptName, + </if> + <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('groupName') or colPickMode == 1 and data.containsKey('groupName')))"> + a.groupName, + </if> + <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('className') or colPickMode == 1 and data.containsKey('className')))"> + a.className, + </if> + <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('attendanceDate') or colPickMode == 1 and data.containsKey('attendanceDate')))"> + a.attendanceDate, + </if> + <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('exportOrImport') or colPickMode == 1 and data.containsKey('exportOrImport')))"> + a.exportOrImport, + </if> + <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('filePath') or colPickMode == 1 and data.containsKey('filePath')))"> + a.filePath, + </if> + <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('type') or colPickMode == 1 and data.containsKey('type')))"> + a.type, + </if> + <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('remark') or colPickMode == 1 and data.containsKey('remark')))"> + a.remark, + </if> + <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('createUserId') or colPickMode == 1 and data.containsKey('createUserId')))"> + a.createUserId, + </if> + <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('createTime') or colPickMode == 1 and data.containsKey('createTime')))"> + a.createTime, + </if> + <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('updateUserId') or colPickMode == 1 and data.containsKey('updateUserId')))"> + a.updateUserId, + </if> + <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('updateTime') or colPickMode == 1 and data.containsKey('updateTime')))"> + a.updateTime, + </if> + <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('recordIdList') or colPickMode == 1 and data.containsKey('recordIdList')))"> + a.recordIdList, + </if> + </trim> + </sql> + <!-- 鏂板 鍖哄垎涓婚敭鑷鍔犺繕鏄笟鍔℃彃鍏� --> + <insert id="insert" parameterType="AttendanceExportRecordEntity" useGeneratedKeys="true" keyProperty="id"> + insert into mortals_xhx_attendance_export_record + (deptName,groupName,className,attendanceDate,exportOrImport,filePath,type,remark,createUserId,createTime,updateUserId,updateTime,recordIdList) + VALUES + (#{deptName},#{groupName},#{className},#{attendanceDate},#{exportOrImport},#{filePath},#{type},#{remark},#{createUserId},#{createTime},#{updateUserId},#{updateTime},#{recordIdList}) + </insert> + + <!-- 鎵归噺鏂板 --> + <insert id="insertBatch" parameterType="paramDto"> + insert into mortals_xhx_attendance_export_record + (deptName,groupName,className,attendanceDate,exportOrImport,filePath,type,remark,createUserId,createTime,updateUserId,updateTime,recordIdList) + VALUES + <foreach collection="data.dataList" item="item" index="index" separator="," > + (#{item.deptName},#{item.groupName},#{item.className},#{item.attendanceDate},#{item.exportOrImport},#{item.filePath},#{item.type},#{item.remark},#{item.createUserId},#{item.createTime},#{item.updateUserId},#{item.updateTime},#{item.recordIdList}) + </foreach> + </insert> + + + <!-- 鏍规嵁ParamDto鏇存柊 --> + <update id="update" parameterType="paramDto"> + update mortals_xhx_attendance_export_record as a + set + <trim suffixOverrides="," suffix=""> + <if test="(colPickMode==0 and data.containsKey('deptName')) or (colPickMode==1 and !data.containsKey('deptName'))"> + a.deptName=#{data.deptName}, + </if> + <if test="(colPickMode==0 and data.containsKey('groupName')) or (colPickMode==1 and !data.containsKey('groupName'))"> + a.groupName=#{data.groupName}, + </if> + <if test="(colPickMode==0 and data.containsKey('className')) or (colPickMode==1 and !data.containsKey('className'))"> + a.className=#{data.className}, + </if> + <if test="(colPickMode==0 and data.containsKey('attendanceDate')) or (colPickMode==1 and !data.containsKey('attendanceDate'))"> + a.attendanceDate=#{data.attendanceDate}, + </if> + <if test="(colPickMode==0 and data.containsKey('exportOrImport')) or (colPickMode==1 and !data.containsKey('exportOrImport'))"> + a.exportOrImport=#{data.exportOrImport}, + </if> + <if test="(colPickMode==0 and data.containsKey('exportOrImportIncrement')) or (colPickMode==1 and !data.containsKey('exportOrImportIncrement'))"> + a.exportOrImport=ifnull(a.exportOrImport,0) + #{data.exportOrImportIncrement}, + </if> + <if test="(colPickMode==0 and data.containsKey('filePath')) or (colPickMode==1 and !data.containsKey('filePath'))"> + a.filePath=#{data.filePath}, + </if> + <if test="(colPickMode==0 and data.containsKey('type')) or (colPickMode==1 and !data.containsKey('type'))"> + a.type=#{data.type}, + </if> + <if test="(colPickMode==0 and data.containsKey('typeIncrement')) or (colPickMode==1 and !data.containsKey('typeIncrement'))"> + a.type=ifnull(a.type,0) + #{data.typeIncrement}, + </if> + <if test="(colPickMode==0 and data.containsKey('remark')) or (colPickMode==1 and !data.containsKey('remark'))"> + a.remark=#{data.remark}, + </if> + <if test="(colPickMode==0 and data.containsKey('createUserId')) or (colPickMode==1 and !data.containsKey('createUserId'))"> + a.createUserId=#{data.createUserId}, + </if> + <if test="(colPickMode==0 and data.containsKey('createUserIdIncrement')) or (colPickMode==1 and !data.containsKey('createUserIdIncrement'))"> + a.createUserId=ifnull(a.createUserId,0) + #{data.createUserIdIncrement}, + </if> + <if test="(colPickMode==0 and data.containsKey('createTime')) or (colPickMode==1 and !data.containsKey('createTime'))"> + a.createTime=#{data.createTime}, + </if> + <if test="(colPickMode==0 and data.containsKey('updateUserId')) or (colPickMode==1 and !data.containsKey('updateUserId'))"> + a.updateUserId=#{data.updateUserId}, + </if> + <if test="(colPickMode==0 and data.containsKey('updateUserIdIncrement')) or (colPickMode==1 and !data.containsKey('updateUserIdIncrement'))"> + a.updateUserId=ifnull(a.updateUserId,0) + #{data.updateUserIdIncrement}, + </if> + <if test="(colPickMode==0 and data.containsKey('updateTime')) or (colPickMode==1 and !data.containsKey('updateTime'))"> + a.updateTime=#{data.updateTime}, + </if> + <if test="(colPickMode==0 and data.containsKey('recordIdList')) or (colPickMode==1 and !data.containsKey('recordIdList'))"> + a.recordIdList=#{data.recordIdList}, + </if> + </trim> + <trim suffixOverrides="where" suffix=""> + where + <trim prefixOverrides="and" prefix=""> + <include refid="_condition_"/> + </trim> + </trim> + </update> + <!-- 鎵归噺鏇存柊 --> + <update id="updateBatch" parameterType="paramDto"> + update mortals_xhx_attendance_export_record as a + <trim prefix="set" suffixOverrides=","> + <trim prefix="deptName=(case" suffix="ELSE deptName end),"> + <foreach collection="data.dataList" item="item" index="index" separator="" > + <if test="(colPickMode==0 and item.containsKey('deptName')) or (colPickMode==1 and !item.containsKey('deptName'))"> + when a.id=#{item.id} then #{item.deptName} + </if> + </foreach> + </trim> + <trim prefix="groupName=(case" suffix="ELSE groupName end),"> + <foreach collection="data.dataList" item="item" index="index" separator="" > + <if test="(colPickMode==0 and item.containsKey('groupName')) or (colPickMode==1 and !item.containsKey('groupName'))"> + when a.id=#{item.id} then #{item.groupName} + </if> + </foreach> + </trim> + <trim prefix="className=(case" suffix="ELSE className end),"> + <foreach collection="data.dataList" item="item" index="index" separator="" > + <if test="(colPickMode==0 and item.containsKey('className')) or (colPickMode==1 and !item.containsKey('className'))"> + when a.id=#{item.id} then #{item.className} + </if> + </foreach> + </trim> + <trim prefix="attendanceDate=(case" suffix="ELSE attendanceDate end),"> + <foreach collection="data.dataList" item="item" index="index" separator="" > + <if test="(colPickMode==0 and item.containsKey('attendanceDate')) or (colPickMode==1 and !item.containsKey('attendanceDate'))"> + when a.id=#{item.id} then #{item.attendanceDate} + </if> + </foreach> + </trim> + <trim prefix="exportOrImport=(case" suffix="ELSE exportOrImport end),"> + <foreach collection="data.dataList" item="item" index="index" separator="" > + <choose> + <when test="(colPickMode==0 and item.containsKey('exportOrImport')) or (colPickMode==1 and !item.containsKey('exportOrImport'))"> + when a.id=#{item.id} then #{item.exportOrImport} + </when> + <when test="(colPickMode==0 and item.containsKey('exportOrImportIncrement')) or (colPickMode==1 and !item.containsKey('exportOrImportIncrement'))"> + when a.id=#{item.id} then ifnull(a.exportOrImport,0) + #{item.exportOrImportIncrement} + </when> + </choose> + </foreach> + </trim> + <trim prefix="filePath=(case" suffix="ELSE filePath end),"> + <foreach collection="data.dataList" item="item" index="index" separator="" > + <if test="(colPickMode==0 and item.containsKey('filePath')) or (colPickMode==1 and !item.containsKey('filePath'))"> + when a.id=#{item.id} then #{item.filePath} + </if> + </foreach> + </trim> + <trim prefix="type=(case" suffix="ELSE type end),"> + <foreach collection="data.dataList" item="item" index="index" separator="" > + <choose> + <when test="(colPickMode==0 and item.containsKey('type')) or (colPickMode==1 and !item.containsKey('type'))"> + when a.id=#{item.id} then #{item.type} + </when> + <when test="(colPickMode==0 and item.containsKey('typeIncrement')) or (colPickMode==1 and !item.containsKey('typeIncrement'))"> + when a.id=#{item.id} then ifnull(a.type,0) + #{item.typeIncrement} + </when> + </choose> + </foreach> + </trim> + <trim prefix="remark=(case" suffix="ELSE remark end),"> + <foreach collection="data.dataList" item="item" index="index" separator="" > + <if test="(colPickMode==0 and item.containsKey('remark')) or (colPickMode==1 and !item.containsKey('remark'))"> + when a.id=#{item.id} then #{item.remark} + </if> + </foreach> + </trim> + <trim prefix="createUserId=(case" suffix="ELSE createUserId end),"> + <foreach collection="data.dataList" item="item" index="index" separator="" > + <choose> + <when test="(colPickMode==0 and item.containsKey('createUserId')) or (colPickMode==1 and !item.containsKey('createUserId'))"> + when a.id=#{item.id} then #{item.createUserId} + </when> + <when test="(colPickMode==0 and item.containsKey('createUserIdIncrement')) or (colPickMode==1 and !item.containsKey('createUserIdIncrement'))"> + when a.id=#{item.id} then ifnull(a.createUserId,0) + #{item.createUserIdIncrement} + </when> + </choose> + </foreach> + </trim> + <trim prefix="createTime=(case" suffix="ELSE createTime end),"> + <foreach collection="data.dataList" item="item" index="index" separator="" > + <if test="(colPickMode==0 and item.containsKey('createTime')) or (colPickMode==1 and !item.containsKey('createTime'))"> + when a.id=#{item.id} then #{item.createTime} + </if> + </foreach> + </trim> + <trim prefix="updateUserId=(case" suffix="ELSE updateUserId end),"> + <foreach collection="data.dataList" item="item" index="index" separator="" > + <choose> + <when test="(colPickMode==0 and item.containsKey('updateUserId')) or (colPickMode==1 and !item.containsKey('updateUserId'))"> + when a.id=#{item.id} then #{item.updateUserId} + </when> + <when test="(colPickMode==0 and item.containsKey('updateUserIdIncrement')) or (colPickMode==1 and !item.containsKey('updateUserIdIncrement'))"> + when a.id=#{item.id} then ifnull(a.updateUserId,0) + #{item.updateUserIdIncrement} + </when> + </choose> + </foreach> + </trim> + <trim prefix="updateTime=(case" suffix="ELSE updateTime end),"> + <foreach collection="data.dataList" item="item" index="index" separator="" > + <if test="(colPickMode==0 and item.containsKey('updateTime')) or (colPickMode==1 and !item.containsKey('updateTime'))"> + when a.id=#{item.id} then #{item.updateTime} + </if> + </foreach> + </trim> + <trim prefix="recordIdList=(case" suffix="ELSE recordIdList end),"> + <foreach collection="data.dataList" item="item" index="index" separator="" > + <if test="(colPickMode==0 and item.containsKey('recordIdList')) or (colPickMode==1 and !item.containsKey('recordIdList'))"> + when a.id=#{item.id} then #{item.recordIdList} + </if> + </foreach> + </trim> + </trim> + where id in + <foreach collection="data.dataList" item="item" index="index" open="(" separator="," close=")"> + #{item.id} + </foreach> + </update> + <!-- 鏍规嵁涓诲仴鏌ヨ --> + <select id="getByKey" parameterType="paramDto" resultMap="AttendanceExportRecordEntity-Map"> + select <include refid="_columns"/> + from mortals_xhx_attendance_export_record as a + where a.id=#{condition.id} + </select> + <!-- 鏍规嵁涓诲仴鍒犻櫎 --> + <delete id="deleteByKey" parameterType="paramDto"> + delete a.* from mortals_xhx_attendance_export_record as a where a.id=#{condition.id} + </delete> + <!-- 鏍规嵁涓诲仴鍒犻櫎涓€鎵癸紝閽堝鍗曚竴涓诲仴鏈夋晥 --> + <delete id="deleteByKeys"> + delete from mortals_xhx_attendance_export_record where id in + <foreach collection="array" item="item" index="index" open="(" separator="," close=")"> + #{item} + </foreach> + </delete> + <!-- 鏍规嵁涓诲仴鍒楄〃鍒犻櫎涓€鎵癸紝閽堝鍗曚竴涓诲仴鏈夋晥 --> + <delete id="deleteByKeyList"> + delete from mortals_xhx_attendance_export_record where id in + <foreach collection="list" item="item" index="index" open="(" separator="," close=")"> + #{item} + </foreach> + </delete> + + <!-- 鏍规嵁瀵硅薄鍒楄〃鍒犻櫎涓€鎵癸紝閽堝鍗曚竴涓诲仴鏈夋晥 --> + <delete id="deleteByEntityList"> + delete from mortals_xhx_attendance_export_record where id in + <foreach collection="list" item="item" index="index" open="(" separator="," close=")"> + #{item.id} + </foreach> + </delete> + <!-- 鏍规嵁paramDto鍒犻櫎涓€鎵� --> + <delete id="deleteByMap" parameterType="paramDto"> + delete a.* from mortals_xhx_attendance_export_record as a + <trim suffixOverrides="where" suffix=""> + where + <trim prefixOverrides="and" prefix=""> + <include refid="_condition_"/> + </trim> + </trim> + </delete> + <!-- 鑾峰彇鍒楄〃 --> + <select id="getList" parameterType="paramDto" resultMap="AttendanceExportRecordEntity-Map"> + select <include refid="_columns"/> + from mortals_xhx_attendance_export_record as a + <trim suffixOverrides="where" suffix=""> + where + <trim prefixOverrides="and" prefix=""> + <include refid="_condition_"/> + </trim> + </trim> + <include refid="_orderCols_"/> + </select> + + + + <!-- 鑾峰彇 --> + <select id="getListCount" parameterType="paramDto" resultType="int"> + select count(1) + from mortals_xhx_attendance_export_record as a + <trim suffixOverrides="where" suffix=""> + where + <trim prefixOverrides="and" prefix=""> + <include refid="_condition_"/> + </trim> + </trim> + </select> + <!-- 鏉′欢鏄犲皠 --> + <sql id="_condition_"> + <if test="condition != null and !condition.isEmpty()"> + <!-- 鏉′欢鏄犲皠-鏅€氭潯浠� --> + <include refid="_condition_param_"> + <property name="_conditionParam_" value="condition"/> + <property name="_conditionType_" value="and"/> + </include> + <!-- 鏉′欢鏄犲皠-闆嗗悎涔嬮棿浣跨敤AND锛岄泦鍚堜腑鍏冪礌浣跨敤OR-(list[0].1 or list[0].2) and (list[1].3 or list[1].4) --> + <if test="condition.containsKey('andConditionList') and !condition.andConditionList.isEmpty()"> + and + <foreach collection="condition.andConditionList" open="(" close=")" index="index" item="andCondition" separator=" and "> + <trim prefixOverrides="or" prefix="(" suffix=")"> + <include refid="_condition_param_"> + <property name="_conditionParam_" value="andCondition"/> + <property name="_conditionType_" value="or"/> + </include> + </trim> + </foreach> + </if> + <!-- 鏉′欢鏄犲皠-闆嗗悎涔嬮棿浣跨敤OR锛岄泦鍚堜腑鍏冪礌浣跨敤AND-(list[0].1 and list[0].2) or (list[1].3 and list[1].4) --> + <if test="condition.containsKey('orConditionList') and !condition.orConditionList.isEmpty()"> + and + <foreach collection="condition.orConditionList" open="(" close=")" index="index" item="orCondition" separator=" or "> + <trim prefixOverrides="and" prefix="(" suffix=")"> + <include refid="_condition_param_"> + <property name="_conditionParam_" value="orCondition"/> + <property name="_conditionType_" value="and"/> + </include> + </trim> + </foreach> + </if> + </if> + </sql> + <!-- 鏉′欢鏄犲皠-浠e弬鏁� --> + <sql id="_condition_param_"> + <bind name="conditionParamRef" value="${_conditionParam_}"/> + <if test="conditionParamRef.containsKey('id')"> + <if test="conditionParamRef.id != null"> + ${_conditionType_} a.id=#{${_conditionParam_}.id} + </if> + </if> + <if test="conditionParamRef.containsKey('id')"> + <if test="conditionParamRef.id != null "> + ${_conditionType_} a.id = #{${_conditionParam_}.id} + </if> + <if test="conditionParamRef.id == null"> + ${_conditionType_} a.id is null + </if> + </if> + <if test="conditionParamRef.containsKey('idList') and conditionParamRef.idList.size() > 0"> + ${_conditionType_} a.id in + <foreach collection="conditionParamRef.idList" open="(" close=")" index="index" item="item" separator=","> + #{item} + </foreach> + </if> + <if test="conditionParamRef.containsKey('idNotList') and conditionParamRef.idNotList.size() > 0"> + ${_conditionType_} a.id not in + <foreach collection="conditionParamRef.idNotList" open="(" close=")" index="index" item="item" separator=","> + #{item} + </foreach> + </if> + <if test="conditionParamRef.containsKey('idStart') and conditionParamRef.idStart != null"> + ${_conditionType_} a.id <![CDATA[ >= ]]> #{${_conditionParam_}.idStart} + </if> + <if test="conditionParamRef.containsKey('idEnd') and conditionParamRef.idEnd != null"> + ${_conditionType_} a.id <![CDATA[ <= ]]> #{${_conditionParam_}.idEnd} + </if> + + + <if test="conditionParamRef.containsKey('deptName')"> + <if test="conditionParamRef.deptName != null and conditionParamRef.deptName != ''"> + ${_conditionType_} a.deptName like #{${_conditionParam_}.deptName} + </if> + <if test="conditionParamRef.deptName == null"> + ${_conditionType_} a.deptName is null + </if> + </if> + <if test="conditionParamRef.containsKey('deptNameList') and conditionParamRef.deptNameList.size() > 0"> + ${_conditionType_} a.deptName in + <foreach collection="conditionParamRef.deptNameList" open="(" close=")" index="index" item="item" separator=","> + #{item} + </foreach> + </if> + <if test="conditionParamRef.containsKey('deptNameNotList') and conditionParamRef.deptNameNotList.size() > 0"> + ${_conditionType_} a.deptName not in + <foreach collection="conditionParamRef.deptNameNotList" open="(" close=")" index="index" item="item" separator=","> + #{item} + </foreach> + </if> + + <if test="conditionParamRef.containsKey('groupName')"> + <if test="conditionParamRef.groupName != null and conditionParamRef.groupName != ''"> + ${_conditionType_} a.groupName like #{${_conditionParam_}.groupName} + </if> + <if test="conditionParamRef.groupName == null"> + ${_conditionType_} a.groupName is null + </if> + </if> + <if test="conditionParamRef.containsKey('groupNameList') and conditionParamRef.groupNameList.size() > 0"> + ${_conditionType_} a.groupName in + <foreach collection="conditionParamRef.groupNameList" open="(" close=")" index="index" item="item" separator=","> + #{item} + </foreach> + </if> + <if test="conditionParamRef.containsKey('groupNameNotList') and conditionParamRef.groupNameNotList.size() > 0"> + ${_conditionType_} a.groupName not in + <foreach collection="conditionParamRef.groupNameNotList" open="(" close=")" index="index" item="item" separator=","> + #{item} + </foreach> + </if> + + <if test="conditionParamRef.containsKey('className')"> + <if test="conditionParamRef.className != null and conditionParamRef.className != ''"> + ${_conditionType_} a.className like #{${_conditionParam_}.className} + </if> + <if test="conditionParamRef.className == null"> + ${_conditionType_} a.className is null + </if> + </if> + <if test="conditionParamRef.containsKey('classNameList') and conditionParamRef.classNameList.size() > 0"> + ${_conditionType_} a.className in + <foreach collection="conditionParamRef.classNameList" open="(" close=")" index="index" item="item" separator=","> + #{item} + </foreach> + </if> + <if test="conditionParamRef.containsKey('classNameNotList') and conditionParamRef.classNameNotList.size() > 0"> + ${_conditionType_} a.className not in + <foreach collection="conditionParamRef.classNameNotList" open="(" close=")" index="index" item="item" separator=","> + #{item} + </foreach> + </if> + + <if test="conditionParamRef.containsKey('attendanceDate')"> + <if test="conditionParamRef.attendanceDate != null and conditionParamRef.attendanceDate != ''"> + ${_conditionType_} a.attendanceDate like #{${_conditionParam_}.attendanceDate} + </if> + <if test="conditionParamRef.attendanceDate == null"> + ${_conditionType_} a.attendanceDate is null + </if> + </if> + <if test="conditionParamRef.containsKey('attendanceDateList') and conditionParamRef.attendanceDateList.size() > 0"> + ${_conditionType_} a.attendanceDate in + <foreach collection="conditionParamRef.attendanceDateList" open="(" close=")" index="index" item="item" separator=","> + #{item} + </foreach> + </if> + <if test="conditionParamRef.containsKey('attendanceDateNotList') and conditionParamRef.attendanceDateNotList.size() > 0"> + ${_conditionType_} a.attendanceDate not in + <foreach collection="conditionParamRef.attendanceDateNotList" open="(" close=")" index="index" item="item" separator=","> + #{item} + </foreach> + </if> + <if test="conditionParamRef.containsKey('exportOrImport')"> + <if test="conditionParamRef.exportOrImport != null "> + ${_conditionType_} a.exportOrImport = #{${_conditionParam_}.exportOrImport} + </if> + <if test="conditionParamRef.exportOrImport == null"> + ${_conditionType_} a.exportOrImport is null + </if> + </if> + <if test="conditionParamRef.containsKey('exportOrImportList') and conditionParamRef.exportOrImportList.size() > 0"> + ${_conditionType_} a.exportOrImport in + <foreach collection="conditionParamRef.exportOrImportList" open="(" close=")" index="index" item="item" separator=","> + #{item} + </foreach> + </if> + <if test="conditionParamRef.containsKey('exportOrImportNotList') and conditionParamRef.exportOrImportNotList.size() > 0"> + ${_conditionType_} a.exportOrImport not in + <foreach collection="conditionParamRef.exportOrImportNotList" open="(" close=")" index="index" item="item" separator=","> + #{item} + </foreach> + </if> + <if test="conditionParamRef.containsKey('exportOrImportStart') and conditionParamRef.exportOrImportStart != null"> + ${_conditionType_} a.exportOrImport <![CDATA[ >= ]]> #{${_conditionParam_}.exportOrImportStart} + </if> + <if test="conditionParamRef.containsKey('exportOrImportEnd') and conditionParamRef.exportOrImportEnd != null"> + ${_conditionType_} a.exportOrImport <![CDATA[ <= ]]> #{${_conditionParam_}.exportOrImportEnd} + </if> + + + <if test="conditionParamRef.containsKey('filePath')"> + <if test="conditionParamRef.filePath != null and conditionParamRef.filePath != ''"> + ${_conditionType_} a.filePath like #{${_conditionParam_}.filePath} + </if> + <if test="conditionParamRef.filePath == null"> + ${_conditionType_} a.filePath is null + </if> + </if> + <if test="conditionParamRef.containsKey('filePathList') and conditionParamRef.filePathList.size() > 0"> + ${_conditionType_} a.filePath in + <foreach collection="conditionParamRef.filePathList" open="(" close=")" index="index" item="item" separator=","> + #{item} + </foreach> + </if> + <if test="conditionParamRef.containsKey('filePathNotList') and conditionParamRef.filePathNotList.size() > 0"> + ${_conditionType_} a.filePath not in + <foreach collection="conditionParamRef.filePathNotList" open="(" close=")" index="index" item="item" separator=","> + #{item} + </foreach> + </if> + <if test="conditionParamRef.containsKey('type')"> + <if test="conditionParamRef.type != null "> + ${_conditionType_} a.type = #{${_conditionParam_}.type} + </if> + <if test="conditionParamRef.type == null"> + ${_conditionType_} a.type is null + </if> + </if> + <if test="conditionParamRef.containsKey('typeList') and conditionParamRef.typeList.size() > 0"> + ${_conditionType_} a.type in + <foreach collection="conditionParamRef.typeList" open="(" close=")" index="index" item="item" separator=","> + #{item} + </foreach> + </if> + <if test="conditionParamRef.containsKey('typeNotList') and conditionParamRef.typeNotList.size() > 0"> + ${_conditionType_} a.type not in + <foreach collection="conditionParamRef.typeNotList" open="(" close=")" index="index" item="item" separator=","> + #{item} + </foreach> + </if> + <if test="conditionParamRef.containsKey('typeStart') and conditionParamRef.typeStart != null"> + ${_conditionType_} a.type <![CDATA[ >= ]]> #{${_conditionParam_}.typeStart} + </if> + <if test="conditionParamRef.containsKey('typeEnd') and conditionParamRef.typeEnd != null"> + ${_conditionType_} a.type <![CDATA[ <= ]]> #{${_conditionParam_}.typeEnd} + </if> + + + <if test="conditionParamRef.containsKey('remark')"> + <if test="conditionParamRef.remark != null and conditionParamRef.remark != ''"> + ${_conditionType_} a.remark like #{${_conditionParam_}.remark} + </if> + <if test="conditionParamRef.remark == null"> + ${_conditionType_} a.remark is null + </if> + </if> + <if test="conditionParamRef.containsKey('remarkList') and conditionParamRef.remarkList.size() > 0"> + ${_conditionType_} a.remark in + <foreach collection="conditionParamRef.remarkList" open="(" close=")" index="index" item="item" separator=","> + #{item} + </foreach> + </if> + <if test="conditionParamRef.containsKey('remarkNotList') and conditionParamRef.remarkNotList.size() > 0"> + ${_conditionType_} a.remark not in + <foreach collection="conditionParamRef.remarkNotList" open="(" close=")" index="index" item="item" separator=","> + #{item} + </foreach> + </if> + <if test="conditionParamRef.containsKey('createUserId')"> + <if test="conditionParamRef.createUserId != null "> + ${_conditionType_} a.createUserId = #{${_conditionParam_}.createUserId} + </if> + <if test="conditionParamRef.createUserId == null"> + ${_conditionType_} a.createUserId is null + </if> + </if> + <if test="conditionParamRef.containsKey('createUserIdList') and conditionParamRef.createUserIdList.size() > 0"> + ${_conditionType_} a.createUserId in + <foreach collection="conditionParamRef.createUserIdList" open="(" close=")" index="index" item="item" separator=","> + #{item} + </foreach> + </if> + <if test="conditionParamRef.containsKey('createUserIdNotList') and conditionParamRef.createUserIdNotList.size() > 0"> + ${_conditionType_} a.createUserId not in + <foreach collection="conditionParamRef.createUserIdNotList" open="(" close=")" index="index" item="item" separator=","> + #{item} + </foreach> + </if> + <if test="conditionParamRef.containsKey('createUserIdStart') and conditionParamRef.createUserIdStart != null"> + ${_conditionType_} a.createUserId <![CDATA[ >= ]]> #{${_conditionParam_}.createUserIdStart} + </if> + <if test="conditionParamRef.containsKey('createUserIdEnd') and conditionParamRef.createUserIdEnd != null"> + ${_conditionType_} a.createUserId <![CDATA[ <= ]]> #{${_conditionParam_}.createUserIdEnd} + </if> + + + <if test="conditionParamRef.containsKey('createTime')"> + <if test="conditionParamRef.createTime != null "> + ${_conditionType_} a.createTime = #{${_conditionParam_}.createTime} + </if> + <if test="conditionParamRef.createTime == null"> + ${_conditionType_} a.createTime is null + </if> + </if> + <if test="conditionParamRef.containsKey('createTimeStart') and conditionParamRef.createTimeStart != null and conditionParamRef.createTimeStart!=''"> + ${_conditionType_} a.createTime <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.createTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s') + </if> + <if test="conditionParamRef.containsKey('createTimeEnd') and conditionParamRef.createTimeEnd != null and conditionParamRef.createTimeEnd!=''"> + ${_conditionType_} a.createTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.createTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s') + </if> + <if test="conditionParamRef.containsKey('updateUserId')"> + <if test="conditionParamRef.updateUserId != null "> + ${_conditionType_} a.updateUserId = #{${_conditionParam_}.updateUserId} + </if> + <if test="conditionParamRef.updateUserId == null"> + ${_conditionType_} a.updateUserId is null + </if> + </if> + <if test="conditionParamRef.containsKey('updateUserIdList') and conditionParamRef.updateUserIdList.size() > 0"> + ${_conditionType_} a.updateUserId in + <foreach collection="conditionParamRef.updateUserIdList" open="(" close=")" index="index" item="item" separator=","> + #{item} + </foreach> + </if> + <if test="conditionParamRef.containsKey('updateUserIdNotList') and conditionParamRef.updateUserIdNotList.size() > 0"> + ${_conditionType_} a.updateUserId not in + <foreach collection="conditionParamRef.updateUserIdNotList" open="(" close=")" index="index" item="item" separator=","> + #{item} + </foreach> + </if> + <if test="conditionParamRef.containsKey('updateUserIdStart') and conditionParamRef.updateUserIdStart != null"> + ${_conditionType_} a.updateUserId <![CDATA[ >= ]]> #{${_conditionParam_}.updateUserIdStart} + </if> + <if test="conditionParamRef.containsKey('updateUserIdEnd') and conditionParamRef.updateUserIdEnd != null"> + ${_conditionType_} a.updateUserId <![CDATA[ <= ]]> #{${_conditionParam_}.updateUserIdEnd} + </if> + + + <if test="conditionParamRef.containsKey('updateTime')"> + <if test="conditionParamRef.updateTime != null "> + ${_conditionType_} a.updateTime = #{${_conditionParam_}.updateTime} + </if> + <if test="conditionParamRef.updateTime == null"> + ${_conditionType_} a.updateTime is null + </if> + </if> + <if test="conditionParamRef.containsKey('updateTimeStart') and conditionParamRef.updateTimeStart != null and conditionParamRef.updateTimeStart!=''"> + ${_conditionType_} a.updateTime <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.updateTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s') + </if> + <if test="conditionParamRef.containsKey('updateTimeEnd') and conditionParamRef.updateTimeEnd != null and conditionParamRef.updateTimeEnd!=''"> + ${_conditionType_} a.updateTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.updateTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s') + </if> + + <if test="conditionParamRef.containsKey('recordIdList')"> + <if test="conditionParamRef.recordIdList != null and conditionParamRef.recordIdList != ''"> + ${_conditionType_} a.recordIdList like #{${_conditionParam_}.recordIdList} + </if> + <if test="conditionParamRef.recordIdList == null"> + ${_conditionType_} a.recordIdList is null + </if> + </if> + <if test="conditionParamRef.containsKey('recordIdListList') and conditionParamRef.recordIdListList.size() > 0"> + ${_conditionType_} a.recordIdList in + <foreach collection="conditionParamRef.recordIdListList" open="(" close=")" index="index" item="item" separator=","> + #{item} + </foreach> + </if> + <if test="conditionParamRef.containsKey('recordIdListNotList') and conditionParamRef.recordIdListNotList.size() > 0"> + ${_conditionType_} a.recordIdList not in + <foreach collection="conditionParamRef.recordIdListNotList" open="(" close=")" index="index" item="item" separator=","> + #{item} + </foreach> + </if> + </sql> + <sql id="_orderCols_"> + <if test="orderColList != null and !orderColList.isEmpty()"> + order by + <trim suffixOverrides="," suffix=""> + <foreach collection="orderColList" open="" close="" index="index" item="item" separator=","> + ${item.colName} ${item.sortKind} + </foreach> + </trim> + </if> + <if test="(orderColList == null or orderColList.isEmpty()) and orderCol != null and !orderCol.isEmpty()"> + order by + <trim suffixOverrides="," suffix=""> + <if test="orderCol.containsKey('id')"> + a.id + <if test='orderCol.id != null and "DESC".equalsIgnoreCase(orderCol.id)'>DESC</if> + , + </if> + <if test="orderCol.containsKey('deptName')"> + a.deptName + <if test='orderCol.deptName != null and "DESC".equalsIgnoreCase(orderCol.deptName)'>DESC</if> + , + </if> + <if test="orderCol.containsKey('groupName')"> + a.groupName + <if test='orderCol.groupName != null and "DESC".equalsIgnoreCase(orderCol.groupName)'>DESC</if> + , + </if> + <if test="orderCol.containsKey('className')"> + a.className + <if test='orderCol.className != null and "DESC".equalsIgnoreCase(orderCol.className)'>DESC</if> + , + </if> + <if test="orderCol.containsKey('attendanceDate')"> + a.attendanceDate + <if test='orderCol.attendanceDate != null and "DESC".equalsIgnoreCase(orderCol.attendanceDate)'>DESC</if> + , + </if> + <if test="orderCol.containsKey('exportOrImport')"> + a.exportOrImport + <if test='orderCol.exportOrImport != null and "DESC".equalsIgnoreCase(orderCol.exportOrImport)'>DESC</if> + , + </if> + <if test="orderCol.containsKey('filePath')"> + a.filePath + <if test='orderCol.filePath != null and "DESC".equalsIgnoreCase(orderCol.filePath)'>DESC</if> + , + </if> + <if test="orderCol.containsKey('type')"> + a.type + <if test='orderCol.type != null and "DESC".equalsIgnoreCase(orderCol.type)'>DESC</if> + , + </if> + <if test="orderCol.containsKey('remark')"> + a.remark + <if test='orderCol.remark != null and "DESC".equalsIgnoreCase(orderCol.remark)'>DESC</if> + , + </if> + <if test="orderCol.containsKey('createUserId')"> + a.createUserId + <if test='orderCol.createUserId != null and "DESC".equalsIgnoreCase(orderCol.createUserId)'>DESC</if> + , + </if> + <if test="orderCol.containsKey('createTime')"> + a.createTime + <if test='orderCol.createTime != null and "DESC".equalsIgnoreCase(orderCol.createTime)'>DESC</if> + , + </if> + <if test="orderCol.containsKey('updateUserId')"> + a.updateUserId + <if test='orderCol.updateUserId != null and "DESC".equalsIgnoreCase(orderCol.updateUserId)'>DESC</if> + , + </if> + <if test="orderCol.containsKey('updateTime')"> + a.updateTime + <if test='orderCol.updateTime != null and "DESC".equalsIgnoreCase(orderCol.updateTime)'>DESC</if> + , + </if> + <if test="orderCol.containsKey('recordIdList')"> + a.recordIdList + <if test='orderCol.recordIdList != null and "DESC".equalsIgnoreCase(orderCol.recordIdList)'>DESC</if> + , + </if> + </trim> + </if> + </sql> + <sql id="_group_by_"> + <if test="groupList != null and !groupList.isEmpty()"> + GROUP BY + <trim suffixOverrides="," suffix=""> + <foreach collection="groupList" open="" close="" index="index" item="item" separator=","> + ${item} + </foreach> + </trim> + </if> + </sql> +</mapper> diff --git a/attendance-performance-manager/src/main/resources/sqlmap/module/attendance/AttendanceGroupFixedworkMapper.xml b/attendance-performance-manager/src/main/resources/sqlmap/module/attendance/AttendanceGroupFixedworkMapper.xml index b45bc7059a1041a5d3308cdfac0f46cbeb18eac6..379d8f44ede6bb0c9053a2cddfb5a51820e07dc7 100644 --- a/attendance-performance-manager/src/main/resources/sqlmap/module/attendance/AttendanceGroupFixedworkMapper.xml +++ b/attendance-performance-manager/src/main/resources/sqlmap/module/attendance/AttendanceGroupFixedworkMapper.xml @@ -1658,4 +1658,4 @@ </trim> </if> </sql> -</mapper> \ No newline at end of file +</mapper> diff --git a/attendance-performance-manager/src/test/java/com/mortals/httpclient/attendance/AttendanceExportRecordController.http b/attendance-performance-manager/src/test/java/com/mortals/httpclient/attendance/AttendanceExportRecordController.http new file mode 100644 index 0000000000000000000000000000000000000000..a26b3bc67ff90ed344f685464a4f1acfb302541b --- /dev/null +++ b/attendance-performance-manager/src/test/java/com/mortals/httpclient/attendance/AttendanceExportRecordController.http @@ -0,0 +1,66 @@ +###鐧诲綍 +POST {{baseUrl}}/login/login +Content-Type: application/json + +{ + "loginName":"admin", + "password":"admin", + "securityCode":"8888" +} + +> {% +client.global.set("SmsSet_id", JSON.parse(response.body).data.id); +client.global.set("authToken", JSON.parse(response.body).data.token); +%} + +###瀵煎叆瀵煎嚭璁板綍鍒楄〃 +POST {{baseUrl}}/attendance/export/record/list +Authorization: {{authToken}} +Content-Type: application/json + +{ + "page":1, + "size":10 +} + + +###瀵煎叆瀵煎嚭璁板綍鏇存柊涓庝繚瀛� +POST {{baseUrl}}/attendance/export/record/save +Authorization: {{authToken}} +Content-Type: application/json + +{ + "deptName":"cuvbax", + "groupName":"hgm3yp", + "className":"0n52rt", + "attendanceDate":"9evgzx", + "idList":"4ewzo5", + "exportOrImport":554, + "filePath":"vp6gcq", + "type":451, + "remark":"pihagt", +} + +> {% +client.global.set("AttendanceExportRecord_id", JSON.parse(response.body).data.id); +%} + +###瀵煎叆瀵煎嚭璁板綍鏌ョ湅 +GET {{baseUrl}}/attendance/export/record/info?id={{AttendanceExportRecord_id}} +Authorization: {{authToken}} +Accept: application/json + +###瀵煎叆瀵煎嚭璁板綍缂栬緫 +GET {{baseUrl}}/attendance/export/record/edit?id={{AttendanceExportRecord_id}} +Authorization: {{authToken}} +Accept: application/json + + +###瀵煎叆瀵煎嚭璁板綍鍒犻櫎 +GET {{baseUrl}}/attendance/export/record/delete?id={{AttendanceExportRecord_id}} +Authorization: {{authToken}} +Accept: application/json + + + + diff --git a/attendance-performance-manager/src/test/java/com/mortals/httpclient/attendance/AttendanceRecordController.http b/attendance-performance-manager/src/test/java/com/mortals/httpclient/attendance/AttendanceRecordController.http index 727624d40eb5e3d72fc854a7fcb890128489bfda..45a9373165345044024ea0d5d67d140ef4aadc43 100644 --- a/attendance-performance-manager/src/test/java/com/mortals/httpclient/attendance/AttendanceRecordController.http +++ b/attendance-performance-manager/src/test/java/com/mortals/httpclient/attendance/AttendanceRecordController.http @@ -32,7 +32,7 @@ Content-Type: application/json { "staffId":702, - "staffName":"grenxy", + "staffName":"xiaowen", "workNum":"957jwe", "deptId":609, "deptName":"ct2iti", diff --git a/db/menu.sql b/db/menu.sql index 909a25c07b063e9d23966d0ea7b191a0484d90b8..c019d00ec62d7b7bc8aa38d3a2d58624311c7847 100644 --- a/db/menu.sql +++ b/db/menu.sql @@ -572,3 +572,22 @@ INSERT INTO `mortals_xhx_param` VALUES (null, '璇峰亣绫诲瀷', 'AttendanceVacatio INSERT INTO `mortals_xhx_param` VALUES (null, '璇峰亣绫诲瀷', 'AttendanceVacationRecord', 'type', '21', '鎺翰鍋�', 1, 4, 0, 'type', NULL, NULL, NULL); INSERT INTO `mortals_xhx_param` VALUES (null, '澧炲噺绫诲瀷', 'AttendanceVacationRecord', 'subAddType', '1', '澧炲姞', 1, 4, 0, 'subAddType', NULL, NULL, NULL); INSERT INTO `mortals_xhx_param` VALUES (null, '澧炲噺绫诲瀷', 'AttendanceVacationRecord', 'subAddType', '2', '鎵i櫎', 1, 4, 0, 'subAddType', NULL, NULL, NULL); + +-- ---------------------------- +-- 瀵煎叆瀵煎嚭璁板綍鑿滃崟 SQL +-- ---------------------------- +INSERT INTO `mortals_xhx_menu` VALUES (null, '瀵煎叆瀵煎嚭璁板綍琛�', '/attendance/export/record/list', 0,'', 1, 1, 0, 0,'',NULL, NULL, NULL, 0, 0, 1, NULL, NULL, NULL); + +-- ---------------------------- +-- 瀵煎叆瀵煎嚭璁板綍璧勬簮璺緞 SQL +-- ---------------------------- +INSERT INTO `mortals_xhx_resource` VALUES (null, '瀵煎叆瀵煎嚭璁板綍-鑿滃崟绠$悊-鏌ョ湅', '/attendance/export/record/list,/attendance/export/record/view,/attendance/export/record/info,/attendance/export/record/export,/attendance/export/record/exportExcel,/attendance/export/record/downloadTemplate,/attendance/export/record/download', 3, 0, NULL, NULL, NULL, 0); +INSERT INTO `mortals_xhx_resource` VALUES (null, '瀵煎叆瀵煎嚭璁板綍-鑿滃崟绠$悊-缁存姢', '/attendance/export/record/add,/attendance/export/record/edit,/attendance/export/record/delete,/attendance/export/record/logicDelete,/attendance/export/record/save,/attendance/export/record/importData', 3, 0, NULL, NULL, NULL, 0); + +-- ---------------------------- +-- 瀵煎叆瀵煎嚭璁板綍鍙傛暟 SQL +-- ---------------------------- +INSERT INTO `mortals_xhx_param` VALUES (null, '瀵煎嚭杩樻槸瀵煎叆', 'AttendanceExportRecord', 'exportOrImport', '1', '瀵煎嚭', 1, 4, 0, 'exportOrImport', NULL, NULL, NULL); +INSERT INTO `mortals_xhx_param` VALUES (null, '瀵煎嚭杩樻槸瀵煎叆', 'AttendanceExportRecord', 'exportOrImport', '2', '瀵煎叆', 1, 4, 0, 'exportOrImport', NULL, NULL, NULL); +INSERT INTO `mortals_xhx_param` VALUES (null, '姹囨€昏繕鏄瘡鏃ユ墦鍗¤褰�', 'AttendanceExportRecord', 'type', '1', '姹囨€�', 1, 4, 0, 'type', NULL, NULL, NULL); +INSERT INTO `mortals_xhx_param` VALUES (null, '姹囨€昏繕鏄瘡鏃ユ墦鍗¤褰�', 'AttendanceExportRecord', 'type', '2', '姣忔棩鎵撳崱璁板綍', 1, 4, 0, 'type', NULL, NULL, NULL); diff --git a/db/module.sql b/db/module.sql index 3ab977a80c4f707666873198ea2a1eea5483c08c..420585e79c6a93d25ca0316ab9f726e086b1486d 100644 --- a/db/module.sql +++ b/db/module.sql @@ -785,24 +785,28 @@ PRIMARY KEY (`id`) +-- ---------------------------- +-- 瀵煎叆瀵煎嚭璁板綍琛� +-- ---------------------------- DROP TABLE IF EXISTS `mortals_xhx_attendance_export_record`; -CREATE TABLE `mortals_xhx_attendance_export_record` ( - `id` bigint(20) AUTO_INCREMENT NOT NULL, - `deptName` varchar(255) DEFAULT NULL COMMENT '閫夋嫨閮ㄩ棬鍚嶇О', - `groupName` varchar(255) DEFAULT NULL COMMENT '閫夋嫨鑰冨嫟缁勫悕绉�', - `className` varchar(255) DEFAULT NULL COMMENT '閫夋嫨鐝鍚嶇О', - `attendanceDate` varchar(0) DEFAULT NULL COMMENT '閫夋嫨寮€濮嬫椂闂村拰缁撴潫鏃堕棿娈�', - `idList` varchar(255) DEFAULT NULL COMMENT '閫夋嫨id鍒楄〃', - `exportOrImport` tinyint(2) DEFAULT NULL COMMENT '瀵煎嚭杩樻槸瀵煎叆(1.瀵煎嚭,2.瀵煎叆)', - `filePath` varchar(255) DEFAULT NULL COMMENT '瀵煎嚭鏂囦欢璺緞', - `type` tinyint(2) DEFAULT NULL COMMENT '姹囨€昏繕鏄瘡鏃ユ墦鍗¤褰�(1.姹囨€�,2.姣忔棩鎵撳崱璁板綍)', - `remark` varchar(255) DEFAULT NULL COMMENT '澶囨敞', - `createUserId` bigint(20) NOT NULL COMMENT '鍒涘缓鐢ㄦ埛', - `createTime` datetime NOT NULL COMMENT '鍒涘缓鏃堕棿', - `updateUserId` bigint(20) DEFAULT NULL COMMENT '鏇存柊鐢ㄦ埛', - `updateTime` datetime DEFAULT NULL COMMENT '鏇存柊鏃堕棿', - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='瀵煎叆瀵煎嚭璁板綍琛�'; +CREATE TABLE mortals_xhx_attendance_export_record( + `id` bigint(20) AUTO_INCREMENT COMMENT '', + `deptName` varchar(255) COMMENT '閫夋嫨閮ㄩ棬鍚嶇О', + `groupName` varchar(255) COMMENT '閫夋嫨鑰冨嫟缁勫悕绉�', + `className` varchar(255) COMMENT '閫夋嫨鐝鍚嶇О', + `attendanceDate` varchar(0) COMMENT '閫夋嫨寮€濮嬫椂闂村拰缁撴潫鏃堕棿娈�', + `exportOrImport` tinyint(2) COMMENT '瀵煎嚭杩樻槸瀵煎叆(1.瀵煎嚭,2.瀵煎叆)', + `filePath` varchar(255) COMMENT '瀵煎嚭鏂囦欢璺緞', + `type` tinyint(2) COMMENT '姹囨€昏繕鏄瘡鏃ユ墦鍗¤褰�(1.姹囨€�,2.姣忔棩鎵撳崱璁板綍)', + `remark` varchar(255) COMMENT '澶囨敞', + `createUserId` bigint(20) NOT NULL COMMENT '鍒涘缓鐢ㄦ埛', + `createTime` datetime NOT NULL COMMENT '鍒涘缓鏃堕棿', + `updateUserId` bigint(20) COMMENT '鏇存柊鐢ㄦ埛', + `updateTime` datetime COMMENT '鏇存柊鏃堕棿', + `recordIdList` varchar(255) COMMENT '閫夋嫨id鍒楄〃', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='瀵煎叆瀵煎嚭璁板綍'; + diff --git a/doc/api.md b/doc/api.md index ba06bcc6fdcea3472d545a201ef65911a139d97e..73947f5553bc3136c5926a7593e41335c561b668 100644 --- a/doc/api.md +++ b/doc/api.md @@ -10580,7 +10580,249 @@ msg|String|娑堟伅|- ``` +## 瀵煎叆瀵煎嚭璁板綍 +### 鏌ヨ瀵煎叆瀵煎嚭璁板綍鍒楄〃 + +**璇锋眰URL:** attendance/export/record/list + +**璇锋眰鏂瑰紡:** POST + +**鍐呭绫诲瀷:** application/json;charset=utf-8 + +**绠€瑕佹弿杩�:** 鏌ヨ瀵煎叆瀵煎嚭璁板綍 + +**璇锋眰鍙傛暟:** + +鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪 +:---|:---|:---|:------ +page|Integer|鍚褰撳墠椤� +size|Integer|鍚姣忛〉鏉℃暟锛屽€间负-1锛屾煡璇㈡墍鏈夎褰� + +**璇锋眰鏍蜂緥:** +``` + { + "page":1, + "size":10 + } + +``` +**鍝嶅簲鍙傛暟:** + +鍙傛暟鍚嶇О|鍙傛暟绫诲瀷|鎻忚堪 +:---|:---|:------ +code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛� +msg|String|娑堟伅 +data|object|鏁版嵁瀵硅薄 + per_page|Integer|姣忛〉鏉℃暟 + total|Integer|鎬绘潯鏁� + last_page|Integer|鎬婚〉鏁� + current_page|Integer|褰撳墠椤� + data|array|缁撴灉闆嗗垪琛▅鏁扮粍 +  id|Long| +  deptName|String|閫夋嫨閮ㄩ棬鍚嶇О +  groupName|String|閫夋嫨鑰冨嫟缁勫悕绉� +  className|String|閫夋嫨鐝鍚嶇О +  attendanceDate|String|閫夋嫨寮€濮嬫椂闂村拰缁撴潫鏃堕棿娈� +  idList|String|閫夋嫨id鍒楄〃 +  exportOrImport|Integer|瀵煎嚭杩樻槸瀵煎叆(1.瀵煎嚭,2.瀵煎叆) +  filePath|String|瀵煎嚭鏂囦欢璺緞 +  type|Integer|姹囨€昏繕鏄瘡鏃ユ墦鍗¤褰�(1.姹囨€�,2.姣忔棩鎵撳崱璁板綍) +  remark|String|澶囨敞 +  createUserId|Long|鍒涘缓鐢ㄦ埛 +  createTime|Date|鍒涘缓鏃堕棿 +  updateUserId|Long|鏇存柊鐢ㄦ埛 +  updateTime|Date|鏇存柊鏃堕棿 +dict|object|瀛楀吀瀵硅薄 + exportOrImport|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍 + type|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍 + +**鍝嶅簲娑堟伅鏍蜂緥:** +``` +{ + "code":1, + "data":{ + } +} +``` + +### 鏌ョ湅瀵煎叆瀵煎嚭璁板綍 + +**璇锋眰URL:** attendance/export/record/info + +**璇锋眰鏂瑰紡:** GET + +**鍐呭绫诲瀷:** application/json;charset=utf-8 + +**绠€瑕佹弿杩�:** 鏌ョ湅瀵煎叆瀵煎嚭璁板綍锛岃繑鍥炲疄渚嬭缁嗕俊鎭� + +**璇锋眰鍙傛暟:** + +鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪 +:---|:---|:---|:------ +id|Long|鏄瘄ID + +**璇锋眰鏍蜂緥:** +``` + http://localhost/attendance/export/record/info?id=549 +``` +**鍝嶅簲鍙傛暟:** + +鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|鎻忚堪 +:---|:---|:------- +code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛� +msg|String|娑堟伅 +data|object|鏁版嵁瀵硅薄 + id|Long| + deptName|String|閫夋嫨閮ㄩ棬鍚嶇О + groupName|String|閫夋嫨鑰冨嫟缁勫悕绉� + className|String|閫夋嫨鐝鍚嶇О + attendanceDate|String|閫夋嫨寮€濮嬫椂闂村拰缁撴潫鏃堕棿娈� + idList|String|閫夋嫨id鍒楄〃 + exportOrImport|Integer|瀵煎嚭杩樻槸瀵煎叆(1.瀵煎嚭,2.瀵煎叆) + filePath|String|瀵煎嚭鏂囦欢璺緞 + type|Integer|姹囨€昏繕鏄瘡鏃ユ墦鍗¤褰�(1.姹囨€�,2.姣忔棩鎵撳崱璁板綍) + remark|String|澶囨敞 + createUserId|Long|鍒涘缓鐢ㄦ埛 + createTime|Date|鍒涘缓鏃堕棿 + updateUserId|Long|鏇存柊鐢ㄦ埛 + updateTime|Date|鏇存柊鏃堕棿 +dict|object|瀛楀吀瀵硅薄 + exportOrImport|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍 + type|object|瀛楀吀灞炴€у璞★紝璇﹁闄勫綍 + +**鍝嶅簲娑堟伅鏍蜂緥:** +``` +{ + "code": 1, + "data": { + "id":4989, + "deptName":"p67b9s", + "groupName":"gaxsu2", + "className":"8itxcq", + "attendanceDate":"ji5yfm", + "idList":"uxmkrz", + "exportOrImport":3824, + "filePath":"we0b2e", + "type":7052, + "remark":"evkf8r", + "createUserId":3510, + "createTime":"2023-04-17", + "updateUserId":2491, + "updateTime":"2023-04-17" + } +} +``` + +### 淇濆瓨鏇存柊瀵煎叆瀵煎嚭璁板綍 + +**璇锋眰URL:** attendance/export/record/save + +**璇锋眰鏂瑰紡:** POST + +**鍐呭绫诲瀷:** application/json;charset=utf-8 + +**绠€瑕佹弿杩�:** 淇濆瓨鎴栨洿鏂板鍏ュ鍑鸿褰曪細id涓虹┖鏃朵负鏂板淇濆瓨锛屽惁鍒欎负鏇存柊鎻愪氦 + +**璇锋眰鍙傛暟:** + +鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪 +:---|:---|:---|:------- +deptName|String|鍚閫夋嫨閮ㄩ棬鍚嶇О +groupName|String|鍚閫夋嫨鑰冨嫟缁勫悕绉� +className|String|鍚閫夋嫨鐝鍚嶇О +attendanceDate|String|鍚閫夋嫨寮€濮嬫椂闂村拰缁撴潫鏃堕棿娈� +idList|String|鍚閫夋嫨id鍒楄〃 +exportOrImport|Integer|鍚瀵煎嚭杩樻槸瀵煎叆(1.瀵煎嚭,2.瀵煎叆) +filePath|String|鍚瀵煎嚭鏂囦欢璺緞 +type|Integer|鍚姹囨€昏繕鏄瘡鏃ユ墦鍗¤褰�(1.姹囨€�,2.姣忔棩鎵撳崱璁板綍) +remark|String|鍚澶囨敞 + +**璇锋眰鏍蜂緥:** +``` +{ + "deptName":"ujkn3k", + "groupName":"frq7vh", + "className":"lhemhd", + "attendanceDate":"nemhiv", + "idList":"5jotvw", + "exportOrImport":5790, + "filePath":"nbfcrc", + "type":2027, + "remark":"qm9qd0", +} + +``` +**鍝嶅簲鍙傛暟:** + +鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|鎻忚堪 +:---|:---|:------ +code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛� +msg|String|娑堟伅 +data|object|鏁版嵁瀵硅薄 + id|Long|淇濆瓨鍚庝富閿甶d + entity|object|淇濆瓨鏇存柊瀹炰綋 +  id|Long| +  deptName|String|閫夋嫨閮ㄩ棬鍚嶇О +  groupName|String|閫夋嫨鑰冨嫟缁勫悕绉� +  className|String|閫夋嫨鐝鍚嶇О +  attendanceDate|String|閫夋嫨寮€濮嬫椂闂村拰缁撴潫鏃堕棿娈� +  idList|String|閫夋嫨id鍒楄〃 +  exportOrImport|Integer|瀵煎嚭杩樻槸瀵煎叆(1.瀵煎嚭,2.瀵煎叆) +  filePath|String|瀵煎嚭鏂囦欢璺緞 +  type|Integer|姹囨€昏繕鏄瘡鏃ユ墦鍗¤褰�(1.姹囨€�,2.姣忔棩鎵撳崱璁板綍) +  remark|String|澶囨敞 +  createUserId|Long|鍒涘缓鐢ㄦ埛 +  createTime|Date|鍒涘缓鏃堕棿 +  updateUserId|Long|鏇存柊鐢ㄦ埛 +  updateTime|Date|鏇存柊鏃堕棿 + +**鍝嶅簲娑堟伅鏍蜂緥:** +``` +{ + "msg":"鏂板妯″潡鎴愬姛", + "code":1, + "data":{} + } +} + +``` + +### 鍒犻櫎瀵煎叆瀵煎嚭璁板綍 + +**璇锋眰URL:** attendance/export/record/delete + +**璇锋眰鏂瑰紡:** GET + +**鍐呭绫诲瀷:** application/json;charset=utf-8 + +**绠€瑕佹弿杩�:** 鍒犻櫎瀵煎叆瀵煎嚭璁板綍 + +**璇锋眰鍙傛暟:** + +鍙傛暟鍚嶇О|绫诲瀷|蹇呭~|鎻忚堪 +:---|:---|:---|:------ +id|String|鏄瘄鏁扮粍 + +**璇锋眰鏍蜂緥:** +``` + http://localhost:8080/attendance/export/record/delete?id=1&id=2' +``` +**鍝嶅簲鍙傛暟:** + +鍙傛暟鍚嶇О |鍙傛暟绫诲瀷|澶囨敞|鍏跺畠 +---|---|---|--- +code|Integer|缁撴灉鐮侊紙-1.澶辫触锛�1.鎴愬姛锛墊- +msg|String|娑堟伅|- + +**鍝嶅簲娑堟伅鏍蜂緥:** +``` +{ + "code":1, + "msg":"鎴愬姛" +} + +``` ## 瀛楀吀闄勫綍 @@ -10950,4 +11192,4 @@ data|object|鏁版嵁瀵硅薄 "code":1, "data":{} } -} \ No newline at end of file +}