|
@@ -85,30 +85,35 @@ public class LogService {
|
|
|
/**
|
|
|
* 核对日志原始数据与每日工时标准化数据差异
|
|
|
*
|
|
|
- * @param chuanyunUserCompanyDO 人员对象
|
|
|
+ * @param userId 人员对象ID
|
|
|
*/
|
|
|
- public void checkDayWorkHour(ChuanyunUserCompanyDO chuanyunUserCompanyDO) {
|
|
|
- List<ChuanyunWorkHourDO> selfList = chuanyunWorkHourDao.getSelfWorkHour(chuanyunUserCompanyDO.getUserId());
|
|
|
+ public void checkDayWorkHour(String userId) {
|
|
|
+ long start=System.currentTimeMillis();
|
|
|
+ log.info("开始核对日志原始工时与标准化工时");
|
|
|
+ //根据日志原始数据获取单个人的所有工时记录
|
|
|
+ List<ChuanyunWorkHourDO> chuanyunWorkHourList = chuanyunWorkHourDao.getSelfWorkHour(userId);
|
|
|
+ //根据标准化工时获取单个人的标准化工时记录
|
|
|
+ List<ChuanyunSelfWorkHourDO> chuanyunSelfWorkHourList = chuanyunSelfWorkHourDao.findByUserId(userId);
|
|
|
//删除多余每日工时
|
|
|
- List<ChuanyunSelfWorkHourDO> list = chuanyunSelfWorkHourDao.findByUserId(chuanyunUserCompanyDO.getUserId());
|
|
|
- compareDayWorkHour(selfList, list);
|
|
|
+ compareDayWorkHour(chuanyunWorkHourList, chuanyunSelfWorkHourList);
|
|
|
+ log.info("核对耗时"+(System.currentTimeMillis()-start)+"毫秒");
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 删除多余每日工时
|
|
|
*
|
|
|
- * @param selfList
|
|
|
- * @param list
|
|
|
+ * @param chuanyunWorkHourList 日志原始工时
|
|
|
+ * @param chuanyunSelfWorkHourList 标准化工时列表
|
|
|
*/
|
|
|
- private void compareDayWorkHour(List<ChuanyunWorkHourDO> selfList, List<ChuanyunSelfWorkHourDO> list) {
|
|
|
+ private void compareDayWorkHour(List<ChuanyunWorkHourDO> chuanyunWorkHourList, List<ChuanyunSelfWorkHourDO> chuanyunSelfWorkHourList) {
|
|
|
Map<String, Integer> map = new HashMap<>(64);
|
|
|
//判断工时是否有撤回
|
|
|
- if (selfList.size() != list.size()) {
|
|
|
- for (ChuanyunWorkHourDO chuanyunWorkHourDO : selfList) {
|
|
|
+ if (chuanyunWorkHourList.size() != chuanyunSelfWorkHourList.size()) {
|
|
|
+ for (ChuanyunWorkHourDO chuanyunWorkHourDO : chuanyunWorkHourList) {
|
|
|
map.put(chuanyunWorkHourDO.getUserId() + chuanyunWorkHourDO.getProjectId() + chuanyunWorkHourDO.getDayLogDate(), 1);
|
|
|
}
|
|
|
//比较是否有撤回工时
|
|
|
- for (ChuanyunSelfWorkHourDO chuanyunSelfWorkHourDO : list) {
|
|
|
+ for (ChuanyunSelfWorkHourDO chuanyunSelfWorkHourDO : chuanyunSelfWorkHourList) {
|
|
|
Integer count = map.get(chuanyunSelfWorkHourDO.getUserId() + chuanyunSelfWorkHourDO.getProjectId() + chuanyunSelfWorkHourDO.getDayLogDate());
|
|
|
if (count == null) {
|
|
|
try {
|