From 3c7f862206f468670ebf42d34745803df1006175 Mon Sep 17 00:00:00 2001 From: liaoxuwei <5789413@qq.com> Date: Mon, 7 Aug 2023 17:16:49 +0800 Subject: [PATCH] =?UTF-8?q?=E8=80=83=E5=8B=A4=E6=B1=87=E6=80=BB=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E4=BF=AE=E6=94=B9=EF=BC=8C=E8=80=83=E5=8B=A4=E6=B1=87?= =?UTF-8?q?=E6=80=BB=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dao/AttendanceStaffStatDao.java | 4 +- .../attendance/dao/AttendanceStatDao.java | 5 + .../ibatis/AttendanceStaffStatDaoImpl.java | 6 +- .../dao/ibatis/AttendanceStatDaoImpl.java | 46 +++++++ .../model/vo/AttendanceSummaryQuery.java | 5 + .../service/AttendanceStaffStatService.java | 10 ++ .../service/AttendanceStatService.java | 6 + .../impl/AttendanceStaffStatServiceImpl.java | 20 ++- .../impl/AttendanceStatServiceImpl.java | 76 ++++++++++++ .../web/AttendanceStatController.java | 45 ++++++- .../AttendanceStaffStatMapperExt.xml | 13 ++ .../attendance/AttendanceStatMapperExt.xml | 116 ++++++++++++++++++ 12 files changed, 346 insertions(+), 6 deletions(-) create mode 100644 attendance-performance-manager/src/main/resources/sqlmap/module/attendance/AttendanceStaffStatMapperExt.xml create mode 100644 attendance-performance-manager/src/main/resources/sqlmap/module/attendance/AttendanceStatMapperExt.xml diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/dao/AttendanceStaffStatDao.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/dao/AttendanceStaffStatDao.java index ee2c596f..ee8b58a7 100644 --- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/dao/AttendanceStaffStatDao.java +++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/dao/AttendanceStaffStatDao.java @@ -2,6 +2,8 @@ package com.mortals.xhx.module.attendance.dao; import com.mortals.framework.dao.ICRUDDao; import com.mortals.xhx.module.attendance.model.AttendanceStaffStatEntity; +import com.mortals.xhx.module.attendance.model.vo.AttendanceSummaryQuery; + import java.util.List; /** * 鑰冨嫟浜哄憳姹囨€讳俊鎭疍ao @@ -13,5 +15,5 @@ import java.util.List; public interface AttendanceStaffStatDao extends ICRUDDao<AttendanceStaffStatEntity,Long>{ - + List<AttendanceStaffStatEntity> getListExt(AttendanceSummaryQuery params); } diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/dao/AttendanceStatDao.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/dao/AttendanceStatDao.java index dfcac7d2..9ec1aff2 100644 --- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/dao/AttendanceStatDao.java +++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/dao/AttendanceStatDao.java @@ -1,7 +1,10 @@ package com.mortals.xhx.module.attendance.dao; import com.mortals.framework.dao.ICRUDDao; +import com.mortals.framework.model.PageInfo; +import com.mortals.framework.model.Result; import com.mortals.xhx.module.attendance.model.AttendanceStatEntity; +import com.mortals.xhx.module.attendance.model.vo.AttendanceSummaryQuery; /** * 鑰冨嫟姹囨€讳俊鎭疍ao @@ -17,4 +20,6 @@ public interface AttendanceStatDao extends ICRUDDao<AttendanceStatEntity,Long>{ * */ AttendanceStatEntity queryEntity(Long staffId); + Result<AttendanceStatEntity> getListExt(AttendanceSummaryQuery params, PageInfo pageInfo); + } diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/dao/ibatis/AttendanceStaffStatDaoImpl.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/dao/ibatis/AttendanceStaffStatDaoImpl.java index 2deea4f7..1cd5dc08 100644 --- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/dao/ibatis/AttendanceStaffStatDaoImpl.java +++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/dao/ibatis/AttendanceStaffStatDaoImpl.java @@ -1,6 +1,7 @@ package com.mortals.xhx.module.attendance.dao.ibatis; +import com.mortals.xhx.module.attendance.model.vo.AttendanceSummaryQuery; import org.springframework.stereotype.Repository; import com.mortals.xhx.module.attendance.dao.AttendanceStaffStatDao; import com.mortals.xhx.module.attendance.model.AttendanceStaffStatEntity; @@ -17,5 +18,8 @@ import java.util.List; public class AttendanceStaffStatDaoImpl extends BaseCRUDDaoMybatis<AttendanceStaffStatEntity,Long> implements AttendanceStaffStatDao { - + @Override + public List<AttendanceStaffStatEntity> getListExt(AttendanceSummaryQuery params) { + return this.getSqlSession().selectList(this.getSqlId("getListExt"), params); + } } diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/dao/ibatis/AttendanceStatDaoImpl.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/dao/ibatis/AttendanceStatDaoImpl.java index f5a999c7..416737d1 100644 --- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/dao/ibatis/AttendanceStatDaoImpl.java +++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/dao/ibatis/AttendanceStatDaoImpl.java @@ -2,9 +2,18 @@ package com.mortals.xhx.module.attendance.dao.ibatis; import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis; +import com.mortals.framework.model.PageInfo; +import com.mortals.framework.model.ParamDto; +import com.mortals.framework.model.Result; import com.mortals.xhx.module.attendance.dao.AttendanceStatDao; import com.mortals.xhx.module.attendance.model.AttendanceStatEntity; +import com.mortals.xhx.module.attendance.model.vo.AttendanceSummaryQuery; +import org.apache.ibatis.session.RowBounds; import org.springframework.stereotype.Repository; + +import java.util.ArrayList; +import java.util.List; + /** * 鑰冨嫟姹囨€讳俊鎭疍aoImpl DAO鎺ュ彛 * @@ -19,4 +28,41 @@ public class AttendanceStatDaoImpl extends BaseCRUDDaoMybatis<AttendanceStatEnti public AttendanceStatEntity queryEntity(Long staffId) { return getSqlSession().selectOne(getSqlId("queryEntity"),staffId); } + + @Override + public Result<AttendanceStatEntity> getListExt(AttendanceSummaryQuery params, PageInfo pageInfo) { + Result result = new Result(); + List list = null; + if (pageInfo.isCountPage()) { + int count = this.getCountExt(params); + if (count == 0) { + list = new ArrayList(); + } else if (pageInfo.getPrePageResult() == -1) { + list = this.getSqlSession().selectList(this.getSqlId("getListExt"), params); + } else { + RowBounds rowBounds = new RowBounds(pageInfo.getBeginIndex(), pageInfo.getPrePageResult()); + list = this.getSqlSession().selectList(this.getSqlId("getListExt"), params, rowBounds); + } + + pageInfo.setTotalResult(count); + result.setPageInfo(pageInfo); + result.setList((List)list); + } else { + if (pageInfo.getPrePageResult() == -1) { + list = this.getSqlSession().selectList(this.getSqlId("getListExt"), params); + } else { + RowBounds rowBounds = new RowBounds(pageInfo.getBeginIndex(), pageInfo.getPrePageResult()); + list = this.getSqlSession().selectList(this.getSqlId("getListExt"), params, rowBounds); + } + + pageInfo.setTotalResult(-1); + result.setPageInfo(pageInfo); + result.setList(list); + } + return result; + } + + public int getCountExt(AttendanceSummaryQuery paramDto) { + return (Integer)this.getSqlSession().selectOne(this.getSqlId("getListCountExt"), paramDto); + } } diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/vo/AttendanceSummaryQuery.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/vo/AttendanceSummaryQuery.java index ca5473e3..a3c49daa 100644 --- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/vo/AttendanceSummaryQuery.java +++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/vo/AttendanceSummaryQuery.java @@ -13,6 +13,11 @@ public class AttendanceSummaryQuery { private String summaryTimeStart; private String summaryTimeEnd; + private Long staffId; + + private Integer page; + private Integer size; + public AttendanceSummaryQuery(String summaryTime){ this.summaryTime = summaryTime; } diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/AttendanceStaffStatService.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/AttendanceStaffStatService.java index 50363a7f..e95ee201 100644 --- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/AttendanceStaffStatService.java +++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/AttendanceStaffStatService.java @@ -1,6 +1,14 @@ package com.mortals.xhx.module.attendance.service; +import com.mortals.framework.exception.AppException; +import com.mortals.framework.model.Context; +import com.mortals.framework.model.PageInfo; +import com.mortals.framework.model.Result; import com.mortals.framework.service.ICRUDService; import com.mortals.xhx.module.attendance.model.AttendanceStaffStatEntity; +import com.mortals.xhx.module.attendance.model.vo.AttendanceSummaryQuery; + +import java.util.List; + /** * AttendanceStaffStatService * @@ -11,4 +19,6 @@ import com.mortals.xhx.module.attendance.model.AttendanceStaffStatEntity; */ public interface AttendanceStaffStatService extends ICRUDService<AttendanceStaffStatEntity,Long>{ + List<AttendanceStaffStatEntity> getListExt(AttendanceSummaryQuery params) throws AppException; + } \ No newline at end of file diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/AttendanceStatService.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/AttendanceStatService.java index 8c4dac16..4963556d 100644 --- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/AttendanceStatService.java +++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/AttendanceStatService.java @@ -1,4 +1,8 @@ package com.mortals.xhx.module.attendance.service; +import com.mortals.framework.exception.AppException; +import com.mortals.framework.model.Context; +import com.mortals.framework.model.PageInfo; +import com.mortals.framework.model.Result; import com.mortals.framework.service.ICRUDService; import com.mortals.xhx.module.attendance.model.AttendanceStatEntity; import com.mortals.xhx.module.attendance.model.vo.AttendanceSummaryQuery; @@ -18,4 +22,6 @@ public interface AttendanceStatService extends ICRUDService<AttendanceStatEntity * @param query */ void doAttendanceSummary(AttendanceSummaryQuery query); + + Result<AttendanceStatEntity> findExt(AttendanceSummaryQuery params, PageInfo pageInfo, Context context) throws AppException; } \ No newline at end of file diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceStaffStatServiceImpl.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceStaffStatServiceImpl.java index cff12159..f35f115b 100644 --- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceStaffStatServiceImpl.java +++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceStaffStatServiceImpl.java @@ -1,4 +1,6 @@ package com.mortals.xhx.module.attendance.service.impl; +import com.mortals.framework.util.StringUtils; +import com.mortals.xhx.module.attendance.model.vo.AttendanceSummaryQuery; import org.springframework.stereotype.Service; import com.mortals.framework.service.impl.AbstractCRUDServiceImpl; import com.mortals.framework.exception.AppException; @@ -6,6 +8,9 @@ import com.mortals.framework.model.Context; import com.mortals.xhx.module.attendance.dao.AttendanceStaffStatDao; import com.mortals.xhx.module.attendance.model.AttendanceStaffStatEntity; import com.mortals.xhx.module.attendance.service.AttendanceStaffStatService; + +import java.util.List; + /** * AttendanceStaffStatService * 鑰冨嫟浜哄憳姹囨€讳俊鎭� service瀹炵幇 @@ -15,5 +20,18 @@ import com.mortals.xhx.module.attendance.service.AttendanceStaffStatService; */ @Service("attendanceStaffStatService") public class AttendanceStaffStatServiceImpl extends AbstractCRUDServiceImpl<AttendanceStaffStatDao, AttendanceStaffStatEntity, Long> implements AttendanceStaffStatService { - + + @Override + public List<AttendanceStaffStatEntity> getListExt(AttendanceSummaryQuery params) throws AppException { + if(params==null){ + throw new AppException("鏌ヨ鏉′欢瀵硅薄涓嶈兘涓虹┖"); + } + if(params.getStaffId()==null){ + throw new AppException("浜哄憳淇℃伅id涓嶈兘涓虹┖"); + } + if(StringUtils.isEmpty(params.getSummaryTimeStart())||StringUtils.isEmpty(params.getSummaryTimeEnd())){ + throw new AppException("鏌ヨ鏃ユ湡鑼冨洿涓嶈兘涓虹┖"); + } + return dao.getListExt(params); + } } \ No newline at end of file diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceStatServiceImpl.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceStatServiceImpl.java index ab593d37..1f07f733 100644 --- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceStatServiceImpl.java +++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceStatServiceImpl.java @@ -1,6 +1,7 @@ package com.mortals.xhx.module.attendance.service.impl; import com.mortals.framework.model.PageInfo; +import com.mortals.framework.model.Result; import com.mortals.framework.util.DateUtils; import com.mortals.framework.util.StringUtils; import com.mortals.xhx.common.code.LeaveTypeEnum; @@ -26,6 +27,7 @@ import com.mortals.xhx.module.attendance.model.AttendanceStatEntity; import com.mortals.xhx.module.attendance.service.AttendanceStatService; import java.math.BigDecimal; +import java.util.Calendar; import java.util.Date; import java.util.List; @@ -161,9 +163,11 @@ public class AttendanceStatServiceImpl extends AbstractCRUDServiceImpl<Attendanc BeanUtils.copyProperties(item, attendanceStatEntity, BeanUtil.getNullPropertyNames(item)); attendanceStatEntity.setCreateTime(new Date()); attendanceStatEntity.setCreateUserId(1l); + attendanceStatEntity.setGoTimes(1); //榛樿褰撳ぉ鍏ㄥ嫟 this.dao.insert(attendanceStatEntity); } else { BeanUtils.copyProperties(item, temp, BeanUtil.getNullPropertyNames(item)); + temp.setUpdateTime(new Date()); this.dao.update(temp); } } @@ -174,10 +178,16 @@ public class AttendanceStatServiceImpl extends AbstractCRUDServiceImpl<Attendanc if (CollectionUtils.isNotEmpty(leaveSummaryVoList)) { BigDecimal hour = new BigDecimal(3600); for (LeaveSummaryVo item : leaveSummaryVoList) { + String attendanceSummary = ""; AttendanceStatEntity temp = this.selectOne(new AttendanceStatQuery().staffId(item.getStaffId()).year(item.getYear()).month(item.getMonth()).day(item.getDay())); if (temp != null) { BigDecimal leaveTime = new BigDecimal(item.getDuration()).divide(hour, 1, BigDecimal.ROUND_HALF_DOWN); + temp.setGoTimes(0); //榛樿鍙鏈夎鍋囷紝褰撳ぉ灏变笉绠楀叏鍕� LeaveTypeEnum leaveTypeEnum = LeaveTypeEnum.getByValue(item.getLeaveType()); + if(leaveTypeEnum == null){ + leaveTypeEnum = LeaveTypeEnum.浜嬪亣; //榛樿涓轰簨鍋� + } + attendanceSummary = leaveTypeEnum.getDesc()+"*1"; switch (leaveTypeEnum) { case 浜嬪亣: temp.setPersonalLeave(leaveTime); @@ -215,6 +225,21 @@ public class AttendanceStatServiceImpl extends AbstractCRUDServiceImpl<Attendanc } this.dao.update(temp); } + + AttendanceStaffStatEntity staffStat = new AttendanceStaffStatEntity(); + staffStat.initAttrValue(); + BeanUtils.copyProperties(item, staffStat, BeanUtil.getNullPropertyNames(item)); + staffStat.setAttendanceSummary(attendanceSummary); + AttendanceStaffStatEntity staffStatTemp = attendanceStaffStatService.selectOne(new AttendanceStaffStatQuery().staffId(item.getStaffId()).year(item.getYear()).month(item.getMonth()).day(item.getDay())); + if(staffStatTemp!=null){ + staffStat.setId(staffStatTemp.getId()); + staffStat.setUpdateTime(new Date()); + attendanceStaffStatService.update(staffStat); + }else { + staffStat.setCreateTime(new Date()); + staffStat.setCreateUserId(1l); + attendanceStaffStatService.save(staffStat); + } } } log.info("瀹屾垚姹囨€诲綋鍓嶆棩鏈熻鍋囨儏鍐�....."); @@ -225,8 +250,33 @@ public class AttendanceStatServiceImpl extends AbstractCRUDServiceImpl<Attendanc AttendanceStatEntity temp = this.selectOne(new AttendanceStatQuery().staffId(item.getStaffId()).year(item.getYear()).month(item.getMonth()).day(item.getDay())); if (temp != null) { BeanUtils.copyProperties(item, temp, BeanUtil.getNullPropertyNames(item)); + temp.setGoTimes(0); //榛樿鍙鏈夊紓甯歌€冨嫟锛屽綋澶╁氨涓嶇畻鍏ㄥ嫟 this.dao.update(temp); } + String attendanceSummary = ""; + if(item.getMorningTimes()>0){ + attendanceSummary+="缂哄崱*"+item.getMorningTimes()+"娆�;"; + } + if(item.getLateTimes()>0){ + attendanceSummary+="杩熷埌*"+item.getLateTimes()+"娆�;"; + } + if(item.getOvertimeTimes()>0){ + attendanceSummary+="鏃╅€€*"+item.getOvertimeTimes()+"娆�;"; + } + AttendanceStaffStatEntity staffStat = new AttendanceStaffStatEntity(); + staffStat.initAttrValue(); + BeanUtils.copyProperties(item, staffStat, BeanUtil.getNullPropertyNames(item)); + staffStat.setAttendanceSummary(attendanceSummary); + AttendanceStaffStatEntity staffStatTemp = attendanceStaffStatService.selectOne(new AttendanceStaffStatQuery().staffId(item.getStaffId()).year(item.getYear()).month(item.getMonth()).day(item.getDay())); + if(staffStatTemp!=null){ + staffStat.setId(staffStatTemp.getId()); + staffStat.setUpdateTime(new Date()); + attendanceStaffStatService.update(staffStat); + }else { + staffStat.setCreateTime(new Date()); + staffStat.setCreateUserId(1l); + attendanceStaffStatService.save(staffStat); + } } } log.info("瀹屾垚姹囨€诲綋鍓嶆棩鏈熷紓甯歌€冨嫟....."); @@ -235,4 +285,30 @@ public class AttendanceStatServiceImpl extends AbstractCRUDServiceImpl<Attendanc log.error("鑰冨嫟姹囨€诲嚭閿�",e); } } + + @Override + public Result<AttendanceStatEntity> findExt(AttendanceSummaryQuery params, PageInfo pageInfo, Context context) throws AppException { + if(params==null){ + params = new AttendanceSummaryQuery(); + Calendar now = Calendar.getInstance(); + now.setTime(new Date()); + now.add(Calendar.DAY_OF_MONTH, -30); //榛樿鏌ユ渶杩�30澶╂暟鎹� + params.setSummaryTimeStart(DateUtils.getStrDate(now.getTime())); + params.setSummaryTimeEnd(DateUtils.getCurrStrDate()); + } + if(pageInfo == null){ + pageInfo = new PageInfo(10); + } + Result<AttendanceStatEntity> result = dao.getListExt(params,pageInfo); + if(CollectionUtils.isNotEmpty(result.getList())){ + for(AttendanceStatEntity item:result.getList()){ + params.setStaffId(item.getStaffId()); + List<AttendanceStaffStatEntity> statEntities = attendanceStaffStatService.getListExt(params); + if(CollectionUtils.isNotEmpty(statEntities)){ + item.setAttendanceStaffStatEntities(statEntities); + } + } + } + return result; + } } \ No newline at end of file diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/web/AttendanceStatController.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/web/AttendanceStatController.java index ba73274e..ee3cfc44 100644 --- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/web/AttendanceStatController.java +++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/web/AttendanceStatController.java @@ -133,8 +133,47 @@ public class AttendanceStatController extends BaseCRUDJsonBodyMappingController< return dates; } - public static void main(String[] args){ - List<String> sss = getDatesBetween("2023-07-28","2023-08-04"); - System.out.println(sss); + @PostMapping({"listExt"}) + @UnAuth + public Rest<Object> listExt(@RequestBody AttendanceSummaryQuery query) { + Rest<Object> ret = new Rest(); + Map<String, Object> model = new HashMap(); + Context context = this.getContext(); + String busiDesc = "鏌ヨ" + this.getModuleDesc(); + int code=1; + try { + PageInfo pageInfo = this.buildPageInfoExt(query); + Result<AttendanceStatEntity> result = this.getService().findExt(query, pageInfo, context); + model.put("data", result.getList()); + model.put("pageInfo", result.getPageInfo()); + this.parsePageInfo(model, result.getPageInfo()); + model.put("message_info", busiDesc + "鎴愬姛"); + if (!ObjectUtils.isEmpty(context) && !ObjectUtils.isEmpty(context.getUser())) { + this.recordSysLog(this.request, busiDesc + " 銆愭垚鍔熴€�"); + } + } catch (Exception var9) { + code = -1; + this.doException(this.request, busiDesc, model, var9); + } + + this.init(model, context); + ret.setCode(code); + ret.setData(model); + ret.setDict(model.get("dict")); + ret.setMsg(model.get("message_info") == null ? "" : model.remove("message_info").toString()); + return ret; + } + + protected PageInfo buildPageInfoExt(AttendanceSummaryQuery query) { + PageInfo pageInfo = new PageInfo(); + if (!ObjectUtils.isEmpty(query) && !ObjectUtils.isEmpty(query.getPage())) { + pageInfo.setCurrPage(query.getPage()); + } + + if (!ObjectUtils.isEmpty(query) && !ObjectUtils.isEmpty(query.getSize())) { + pageInfo.setPrePageResult(query.getSize()); + } + + return pageInfo; } } diff --git a/attendance-performance-manager/src/main/resources/sqlmap/module/attendance/AttendanceStaffStatMapperExt.xml b/attendance-performance-manager/src/main/resources/sqlmap/module/attendance/AttendanceStaffStatMapperExt.xml new file mode 100644 index 00000000..cdf65bb5 --- /dev/null +++ b/attendance-performance-manager/src/main/resources/sqlmap/module/attendance/AttendanceStaffStatMapperExt.xml @@ -0,0 +1,13 @@ +<?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.AttendanceStaffStatDaoImpl"> + + <select id="getListExt" parameterType="com.mortals.xhx.module.attendance.model.vo.AttendanceSummaryQuery" resultMap="AttendanceStaffStatEntity-Map"> + select s.* + from mortals_xhx_attendance_staff_stat as s + where s.staffId=#{staffId} + AND STR_TO_DATE(CONCAT(s.`year`,'-',s.`month`,'-',s.`day`),'%Y-%m-%d') <![CDATA[ >= ]]> STR_TO_DATE(#{summaryTimeStart},'%Y-%m-%d') + AND STR_TO_DATE(CONCAT(s.`year`,'-',s.`month`,'-',s.`day`),'%Y-%m-%d') <![CDATA[ <= ]]> STR_TO_DATE(#{summaryTimeEnd},'%Y-%m-%d') + </select> +</mapper> \ No newline at end of file diff --git a/attendance-performance-manager/src/main/resources/sqlmap/module/attendance/AttendanceStatMapperExt.xml b/attendance-performance-manager/src/main/resources/sqlmap/module/attendance/AttendanceStatMapperExt.xml new file mode 100644 index 00000000..f8febe84 --- /dev/null +++ b/attendance-performance-manager/src/main/resources/sqlmap/module/attendance/AttendanceStatMapperExt.xml @@ -0,0 +1,116 @@ +<?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.AttendanceStatDaoImpl"> + <select id="getListExt" parameterType="com.mortals.xhx.module.attendance.model.vo.AttendanceSummaryQuery" resultMap="AttendanceStatEntity-Map"> + SELECT * FROM ( + SELECT + s.staffId, + s.staffName, + s.deptId, + s.deptName, + s.phoneNumer, + ROUND(IFNULL(sum(s.goTimes),0)/count(1),4) as attendanceRate, + sum(s.goTimes) AS goTimes, + sum(s.morningTimes) AS morningTimes, + sum(s.afternoonTimes) AS afternoonTimes, + sum(s.backToUnit) AS backToUnit, + sum(s.onDutyLeave) AS onDutyLeave, + sum(s.outOfOffice) AS outOfOffice, + sum(s.shiftCompensation) AS shiftCompensation, + sum(s.physicalExamination) AS physicalExamination, + sum(s.quarantine) AS quarantine, + sum(s.businessTrip) AS businessTrip, + sum(s.publicHoliday) AS publicHoliday, + sum(s.sickLeave) AS sickLeave, + sum(s.funeralLeave) AS funeralLeave, + sum(s.marriageLeave) AS marriageLeave, + sum(s.childRearingLeave) AS childRearingLeave, + sum(s.maternityLeave) AS maternityLeave, + sum(s.transferBack) AS transferBack, + sum(s.homeLeave) AS homeLeave, + sum(s.breastfeedingLeaveDays) AS breastfeedingLeaveDays, + sum(s.personalLeave) AS personalLeave, + sum(s.compensatedLeaveDays) AS compensatedLeaveDays, + sum(s.annualLeaveDays) AS annualLeaveDays, + sum(s.menstrualLeaveDays) AS menstrualLeaveDays, + sum(s.paternityLeaveDays) AS paternityLeaveDays, + sum(s.absenteeismDays) AS absenteeismDays, + sum(s.otherDays) AS otherDays, + sum(s.nonCompliancePunch) AS nonCompliancePunch, + sum(s.surfingMobileTimes) AS surfingMobileTimes, + sum(s.overtimeTimes) AS overtimeTimes, + sum(s.vacancy) AS vacancy, + sum(s.nonStandardDressTimes) AS nonStandardDressTimes, + sum(s.unexcusedMeetingAbsence) AS unexcusedMeetingAbsence, + sum(s.earlyLeaveMeeting) AS earlyLeaveMeeting + FROM + mortals_xhx_attendance_stat s + WHERE + STR_TO_DATE(CONCAT(s.`year`,'-',s.`month`,'-',s.`day`),'%Y-%m-%d') <![CDATA[ >= ]]> STR_TO_DATE(#{summaryTimeStart},'%Y-%m-%d') + AND STR_TO_DATE(CONCAT(s.`year`,'-',s.`month`,'-',s.`day`),'%Y-%m-%d') <![CDATA[ <= ]]> STR_TO_DATE(#{summaryTimeEnd},'%Y-%m-%d') + GROUP BY + s.staffId, + s.staffName, + s.deptId, + s.deptName, + s.phoneNumer + ) AS a + </select> + + <select id="getListCountExt" parameterType="com.mortals.xhx.module.attendance.model.vo.AttendanceSummaryQuery" resultType="int"> + SELECT count(1) FROM ( + SELECT + s.staffId, + s.staffName, + s.deptId, + s.deptName, + s.phoneNumer, + ROUND(IFNULL(sum(s.goTimes),0)/count(1),4) as attendanceRate, + sum(s.goTimes) AS goTimes, + sum(s.morningTimes) AS morningTimes, + sum(s.afternoonTimes) AS afternoonTimes, + sum(s.backToUnit) AS backToUnit, + sum(s.onDutyLeave) AS onDutyLeave, + sum(s.outOfOffice) AS outOfOffice, + sum(s.shiftCompensation) AS shiftCompensation, + sum(s.physicalExamination) AS physicalExamination, + sum(s.quarantine) AS quarantine, + sum(s.businessTrip) AS businessTrip, + sum(s.publicHoliday) AS publicHoliday, + sum(s.sickLeave) AS sickLeave, + sum(s.funeralLeave) AS funeralLeave, + sum(s.marriageLeave) AS marriageLeave, + sum(s.childRearingLeave) AS childRearingLeave, + sum(s.maternityLeave) AS maternityLeave, + sum(s.transferBack) AS transferBack, + sum(s.homeLeave) AS homeLeave, + sum(s.breastfeedingLeaveDays) AS breastfeedingLeaveDays, + sum(s.personalLeave) AS personalLeave, + sum(s.compensatedLeaveDays) AS compensatedLeaveDays, + sum(s.annualLeaveDays) AS annualLeaveDays, + sum(s.menstrualLeaveDays) AS menstrualLeaveDays, + sum(s.paternityLeaveDays) AS paternityLeaveDays, + sum(s.absenteeismDays) AS absenteeismDays, + sum(s.otherDays) AS otherDays, + sum(s.nonCompliancePunch) AS nonCompliancePunch, + sum(s.surfingMobileTimes) AS surfingMobileTimes, + sum(s.overtimeTimes) AS overtimeTimes, + sum(s.vacancy) AS vacancy, + sum(s.nonStandardDressTimes) AS nonStandardDressTimes, + sum(s.unexcusedMeetingAbsence) AS unexcusedMeetingAbsence, + sum(s.earlyLeaveMeeting) AS earlyLeaveMeeting + FROM + mortals_xhx_attendance_stat s + WHERE + STR_TO_DATE(CONCAT(s.`year`,'-',s.`month`,'-',s.`day`),'%Y-%m-%d') <![CDATA[ >= ]]> STR_TO_DATE(#{summaryTimeStart},'%Y-%m-%d') + AND STR_TO_DATE(CONCAT(s.`year`,'-',s.`month`,'-',s.`day`),'%Y-%m-%d') <![CDATA[ <= ]]> STR_TO_DATE(#{summaryTimeEnd},'%Y-%m-%d') + GROUP BY + s.staffId, + s.staffName, + s.deptId, + s.deptName, + s.phoneNumer + ) AS a + </select> +</mapper> \ No newline at end of file -- 2.24.3