From 4804a48079711c064b5328f13d288593c9f7a2a3 Mon Sep 17 00:00:00 2001 From: xiejianpeng Date: Wed, 1 Aug 2018 17:54:19 +0800 Subject: [PATCH] 工时填报管理 --- src/main/java/com/zteits/oa/api/dto/asradaily/param/AsraDailySaveOrUpdateReq.java | 215 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/zteits/oa/api/service/report/query/AsraDailyQueryService.java | 12 ++++++++++++ src/main/java/com/zteits/oa/report/biz/AsraDailyQueryServiceImpl.java | 31 +++++++++++++++++++++++++++++++ src/main/java/com/zteits/oa/report/dao/AsraDailyDao.java | 20 ++++++++++++++++++++ src/main/java/com/zteits/oa/report/dao/impl/AsraDailyDaoImpl.java | 10 ++++++++++ src/main/java/com/zteits/oa/report/web/AsraDailyController.java | 26 ++++++++++++++++++++++---- src/main/java/com/zteits/oa/util/pagepaper/DateForObjectUtil.java | 2 +- 7 files changed, 311 insertions(+), 5 deletions(-) create mode 100644 src/main/java/com/zteits/oa/api/dto/asradaily/param/AsraDailySaveOrUpdateReq.java diff --git a/src/main/java/com/zteits/oa/api/dto/asradaily/param/AsraDailySaveOrUpdateReq.java b/src/main/java/com/zteits/oa/api/dto/asradaily/param/AsraDailySaveOrUpdateReq.java new file mode 100644 index 0000000..89fdf41 --- /dev/null +++ b/src/main/java/com/zteits/oa/api/dto/asradaily/param/AsraDailySaveOrUpdateReq.java @@ -0,0 +1,215 @@ +package com.zteits.oa.api.dto.asradaily.param; + +import com.zteits.oa.api.base.bean.BaiscDTO; + +import java.util.Date; + +public class AsraDailySaveOrUpdateReq extends BaiscDTO{ + /**主键*/ + private Long id; + + /**所属项目ID*/ + private Long projectId; + + /**所属员工ID*/ + private Long asarOpId; + + /**操作员姓名*/ + private String asarOpName; + + /**年:2018*/ + private Integer years; + + /**周:1-54周*/ + private Integer weeks; + + /**星期:1-7*/ + private Integer weeksNum; + + /**工时填写日期*/ + private String dailyDate; + + /**数据状态:1有效,0无效,2:锁定*/ + private Integer dataState; + + /**创建人ID*/ + private String createEmpid; + + /**创建人*/ + private String createEmpName; + + /**创建时间*/ + private Date createDate; + + /**修改人*/ + private String modfiyEmpid; + + /**修改人*/ + private String modfiyEmpName; + + /**修改时间*/ + private Date modfiyDate; + + /**工时内容*/ + private String dailyContent; + + /**获取主键*/ + public Long getId() { + return id; + } + + /**设置主键*/ + public void setId(Long id) { + this.id = id; + } + + /**获取所属项目ID*/ + public Long getProjectId() { + return projectId; + } + + /**设置所属项目ID*/ + public void setProjectId(Long projectId) { + this.projectId = projectId; + } + + /**获取所属员工ID*/ + public Long getAsarOpId() { + return asarOpId; + } + + /**设置所属员工ID*/ + public void setAsarOpId(Long asarOpId) { + this.asarOpId = asarOpId; + } + + /**获取操作员姓名*/ + public String getAsarOpName() { + return asarOpName; + } + + /**设置操作员姓名*/ + public void setAsarOpName(String asarOpName) { + this.asarOpName = asarOpName == null ? null : asarOpName.trim(); + } + + /**获取年:2018*/ + public Integer getYears() { + return years; + } + + /**设置年:2018*/ + public void setYears(Integer years) { + this.years = years; + } + + /**获取周:1-54周*/ + public Integer getWeeks() { + return weeks; + } + + /**设置周:1-54周*/ + public void setWeeks(Integer weeks) { + this.weeks = weeks; + } + + /**获取星期:1-7*/ + public Integer getWeeksNum() { + return weeksNum; + } + + /**设置星期:1-7*/ + public void setWeeksNum(Integer weeksNum) { + this.weeksNum = weeksNum; + } + + /**获取工时填写日期*/ + public String getDailyDate() { + return dailyDate; + } + + /**设置工时填写日期*/ + public void setDailyDate(String dailyDate) { + this.dailyDate = dailyDate; + } + + /**获取数据状态:1有效,0无效,2:锁定*/ + public Integer getDataState() { + return dataState; + } + + /**设置数据状态:1有效,0无效,2:锁定*/ + public void setDataState(Integer dataState) { + this.dataState = dataState; + } + + /**获取创建人ID*/ + public String getCreateEmpid() { + return createEmpid; + } + + /**设置创建人ID*/ + public void setCreateEmpid(String createEmpid) { + this.createEmpid = createEmpid == null ? null : createEmpid.trim(); + } + + /**获取创建人*/ + public String getCreateEmpName() { + return createEmpName; + } + + /**设置创建人*/ + public void setCreateEmpName(String createEmpName) { + this.createEmpName = createEmpName == null ? null : createEmpName.trim(); + } + + /**获取创建时间*/ + public Date getCreateDate() { + return createDate; + } + + /**设置创建时间*/ + public void setCreateDate(Date createDate) { + this.createDate = createDate; + } + + /**获取修改人*/ + public String getModfiyEmpid() { + return modfiyEmpid; + } + + /**设置修改人*/ + public void setModfiyEmpid(String modfiyEmpid) { + this.modfiyEmpid = modfiyEmpid == null ? null : modfiyEmpid.trim(); + } + + /**获取修改人*/ + public String getModfiyEmpName() { + return modfiyEmpName; + } + + /**设置修改人*/ + public void setModfiyEmpName(String modfiyEmpName) { + this.modfiyEmpName = modfiyEmpName == null ? null : modfiyEmpName.trim(); + } + + /**获取修改时间*/ + public Date getModfiyDate() { + return modfiyDate; + } + + /**设置修改时间*/ + public void setModfiyDate(Date modfiyDate) { + this.modfiyDate = modfiyDate; + } + + /**获取工时内容*/ + public String getDailyContent() { + return dailyContent; + } + + /**设置工时内容*/ + public void setDailyContent(String dailyContent) { + this.dailyContent = dailyContent == null ? null : dailyContent.trim(); + } +} \ No newline at end of file diff --git a/src/main/java/com/zteits/oa/api/service/report/query/AsraDailyQueryService.java b/src/main/java/com/zteits/oa/api/service/report/query/AsraDailyQueryService.java index 96f0bfe..c2488fe 100644 --- a/src/main/java/com/zteits/oa/api/service/report/query/AsraDailyQueryService.java +++ b/src/main/java/com/zteits/oa/api/service/report/query/AsraDailyQueryService.java @@ -4,9 +4,11 @@ import com.zteits.oa.api.base.bean.BizResult; import com.zteits.oa.api.base.bean.PageBean; import com.zteits.oa.api.dto.asradaily.AsraDailyDTO; import com.zteits.oa.api.dto.asradaily.param.AsraDailyQueryReq; +import com.zteits.oa.api.dto.asradaily.param.AsraDailySaveOrUpdateReq; import com.zteits.oa.api.dto.asraop.AsraOpDTO; import com.zteits.oa.api.dto.asraop.param.AsraOpQueryReq; +import javax.servlet.http.HttpServletRequest; import java.util.List; /** @@ -34,4 +36,14 @@ public interface AsraDailyQueryService { * */ BizResult> queryAsraDailyList(AsraDailyQueryReq asraDailyQueryReq); + + /** + * 提交工时日报 + * @param + * @return + * @Author: xiejianpeng + * @Date: 2018/8/1 17:02 + * + */ + BizResult saveOrUpdateAsraDaily(AsraDailySaveOrUpdateReq request); } diff --git a/src/main/java/com/zteits/oa/report/biz/AsraDailyQueryServiceImpl.java b/src/main/java/com/zteits/oa/report/biz/AsraDailyQueryServiceImpl.java index df19660..f1c83f1 100644 --- a/src/main/java/com/zteits/oa/report/biz/AsraDailyQueryServiceImpl.java +++ b/src/main/java/com/zteits/oa/report/biz/AsraDailyQueryServiceImpl.java @@ -1,9 +1,12 @@ package com.zteits.oa.report.biz; +import com.alibaba.fastjson.JSONObject; +import com.xiaoleilu.hutool.date.DateUtil; import com.xiaoleilu.hutool.util.CollectionUtil; import com.zteits.oa.api.base.bean.BizResult; import com.zteits.oa.api.dto.asradaily.AsraDailyDTO; import com.zteits.oa.api.dto.asradaily.param.AsraDailyQueryReq; +import com.zteits.oa.api.dto.asradaily.param.AsraDailySaveOrUpdateReq; import com.zteits.oa.api.service.report.query.AsraDailyQueryService; import com.zteits.oa.report.dao.AsraDailyDao; import com.zteits.oa.report.domain.AsraDaily; @@ -12,6 +15,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.Date; import java.util.List; /** @@ -45,4 +49,31 @@ public class AsraDailyQueryServiceImpl implements AsraDailyQueryService { } return new BizResult<>(asraDailyDTOs); } + + @Override + public BizResult saveOrUpdateAsraDaily(AsraDailySaveOrUpdateReq request) { + AsraDaily asraDaily = new AsraDaily(); + BeanUtils.copyProperties(request, asraDaily); + asraDaily.setModfiyDate(new Date()); + asraDaily.setModfiyEmpid(request.getAsarOpId() + ""); + asraDaily.setModfiyEmpName(request.getAsarOpName() + ""); + Date dailyDate = DateUtil.parseDate(request.getDailyDate()); + asraDaily.setDailyDate(dailyDate); + + int num; + if (null == request.getId()) { + //新增 + asraDaily.setDataState(1); + asraDaily.setCreateDate(new Date()); + asraDaily.setCreateEmpid(request.getAsarOpId()+""); + asraDaily.setCreateEmpName(request.getAsarOpName() + ""); + num = asraDailyDao.saveAsraDaily(asraDaily); + } else { + //更新 + num = asraDailyDao.updateAsraDaily(asraDaily); + + } + + return new BizResult<>(num); + } } diff --git a/src/main/java/com/zteits/oa/report/dao/AsraDailyDao.java b/src/main/java/com/zteits/oa/report/dao/AsraDailyDao.java index 8c78b5a..1d5854d 100644 --- a/src/main/java/com/zteits/oa/report/dao/AsraDailyDao.java +++ b/src/main/java/com/zteits/oa/report/dao/AsraDailyDao.java @@ -28,4 +28,24 @@ public interface AsraDailyDao { * */ List queryAsraDailyList(AsraDailyQueryReq asraDailyQueryReq); + + /** + * 保存日报信息 + * @param + * @return + * @Author: xiejianpeng + * @Date: 2018/8/1 17:11 + * + */ + int saveAsraDaily(AsraDaily asraDaily); + + /** + * 修改日报信息 + * @param + * @return + * @Author: xiejianpeng + * @Date: 2018/8/1 17:11 + * + */ + int updateAsraDaily(AsraDaily asraDaily); } diff --git a/src/main/java/com/zteits/oa/report/dao/impl/AsraDailyDaoImpl.java b/src/main/java/com/zteits/oa/report/dao/impl/AsraDailyDaoImpl.java index 1f990d0..d16781c 100644 --- a/src/main/java/com/zteits/oa/report/dao/impl/AsraDailyDaoImpl.java +++ b/src/main/java/com/zteits/oa/report/dao/impl/AsraDailyDaoImpl.java @@ -37,4 +37,14 @@ public class AsraDailyDaoImpl implements AsraDailyDao{ .andWeeksEqualTo(asraDailyQueryReq.getWeeks()); return asraDailyMapper.selectByExampleWithBLOBs(example); } + + @Override + public int saveAsraDaily(AsraDaily asraDaily) { + return asraDailyMapper.insertSelective(asraDaily); + } + + @Override + public int updateAsraDaily(AsraDaily asraDaily) { + return asraDailyMapper.updateByPrimaryKeySelective(asraDaily); + } } diff --git a/src/main/java/com/zteits/oa/report/web/AsraDailyController.java b/src/main/java/com/zteits/oa/report/web/AsraDailyController.java index f0d9144..4a94fa8 100644 --- a/src/main/java/com/zteits/oa/report/web/AsraDailyController.java +++ b/src/main/java/com/zteits/oa/report/web/AsraDailyController.java @@ -9,6 +9,7 @@ import com.zteits.oa.api.base.constants.SessionEnum; import com.zteits.oa.api.dto.asradaily.AsraDailyDTO; import com.zteits.oa.api.dto.asradaily.AsraDailyDateChangeDTO; import com.zteits.oa.api.dto.asradaily.param.AsraDailyQueryReq; +import com.zteits.oa.api.dto.asradaily.param.AsraDailySaveOrUpdateReq; import com.zteits.oa.api.dto.asraop.AsraOpDTO; import com.zteits.oa.api.dto.asraop.param.AsraOpQueryReq; import com.zteits.oa.api.dto.asraoprelations.AsraOpRelationsDTO; @@ -19,14 +20,12 @@ import com.zteits.oa.api.service.report.query.AsraOpRelationsQueryService; import com.zteits.oa.report.domain.AsraDaily; import com.zteits.oa.util.pagepaper.DateForObjectUtil; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; @@ -62,4 +61,23 @@ public class AsraDailyController { return result; } + @ApiOperation("保存或者修改工时日报") + @PostMapping("/saveOrUpdateAsraDaily") + public BizResult saveOrUpdateAsraDaily(@RequestBody AsraDailySaveOrUpdateReq asraDailySaveOrUpdateReq,HttpServletRequest request) { + logger.info("日报系统-日报管理-根据登录人提交日报信息入参:{}", JSONObject.toJSON(asraDailySaveOrUpdateReq)); + /**1.根据当前登录人查询登录人下面管理的员工-缓存中获取*/ + AsraOpDTO asraOpDTO = (AsraOpDTO)request.getSession().getAttribute(SessionEnum.USER_INFO.key()); + + /**2.判断登录人和时间查询日报*/ + Date dailyDate = DateUtil.parseDate(asraDailySaveOrUpdateReq.getDailyDate()); + AsraDailyDateChangeDTO asraDailyDateChangeDTO = DateForObjectUtil.getAsraDailyDTO(dailyDate); + asraDailySaveOrUpdateReq.setAsarOpId(asraOpDTO.getId()); + asraDailySaveOrUpdateReq.setAsarOpName(asraOpDTO.getOpName()); + asraDailySaveOrUpdateReq.setDataState(1); + BeanUtils.copyProperties(asraDailyDateChangeDTO,asraDailySaveOrUpdateReq); + + BizResult bizResult = asraDailyQueryService.saveOrUpdateAsraDaily(asraDailySaveOrUpdateReq); + return bizResult; + } + } diff --git a/src/main/java/com/zteits/oa/util/pagepaper/DateForObjectUtil.java b/src/main/java/com/zteits/oa/util/pagepaper/DateForObjectUtil.java index 808b020..d2abe46 100644 --- a/src/main/java/com/zteits/oa/util/pagepaper/DateForObjectUtil.java +++ b/src/main/java/com/zteits/oa/util/pagepaper/DateForObjectUtil.java @@ -24,7 +24,7 @@ public class DateForObjectUtil { AsraDailyDateChangeDTO asraDailyDTO = new AsraDailyDateChangeDTO(); Integer week = DateUtil.weekOfYear(dailyDate);//第N周 Integer year = DateUtil.year(dailyDate);//年 - Integer weekNum = DateUtil.dayOfWeek(dailyDate);//星期 + Integer weekNum = DateUtil.dayOfWeek(DateUtil.offsetDay(dailyDate,-1));//星期 asraDailyDTO.setYears(year); asraDailyDTO.setWeeks(week); -- libgit2 0.21.4