|
|
@@ -16,6 +16,7 @@ import com.ruoyi.project.bo.ProjectStaffRecordInput;
|
|
|
import com.ruoyi.project.bo.ProjectStaffRecordOut;
|
|
|
import com.ruoyi.project.domain.ProjectStaffRecord;
|
|
|
import com.ruoyi.project.domain.ProjectStaffRecordLog;
|
|
|
+import com.ruoyi.project.domain.ProjectTask;
|
|
|
import com.ruoyi.project.mapper.ProjectStaffRecordLogMapper;
|
|
|
import com.ruoyi.project.mapper.ProjectStaffRecordMapper;
|
|
|
import com.ruoyi.project.mapper.ProjectTaskMapper;
|
|
|
@@ -338,7 +339,7 @@ public class ProjectStaffRecordServiceImpl implements ProjectStaffRecordService
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public String importProject(List<ProjectStaffRecordOut> list, boolean isUpdateSupport, String operName) {
|
|
|
+ public String importProject(List<ProjectStaffRecordOut> list, boolean updateSupport, String operName) {
|
|
|
if (StringUtils.isNull(list) || list.size() == 0)
|
|
|
{
|
|
|
throw new ServiceException("导入用户数据不能为空!");
|
|
|
@@ -355,11 +356,41 @@ public class ProjectStaffRecordServiceImpl implements ProjectStaffRecordService
|
|
|
ProjectStaffRecord projectStaffRecord = projectStaffRecordMapper.selectByPrimaryKey(p.getId());
|
|
|
if (StringUtils.isNull(projectStaffRecord)){
|
|
|
BeanValidators.validateWithException(validator, projectStaffRecord);
|
|
|
+ if (StringUtils.isNotBlank(p.getAdminName())){
|
|
|
+ SysUser sysUser = sysUserMapper.checkJobNumber(p.getJobNumber());
|
|
|
+ if (StringUtils.isNull(sysUser)){
|
|
|
+ throw new ServiceException(String.format("用户[%s]不存在",p.getAdminName()));
|
|
|
+ }
|
|
|
+ p.setAid(sysUser.getUserId());
|
|
|
+ }else {
|
|
|
+ throw new ServiceException(String.format("新增必须知道打卡人"));
|
|
|
+ }
|
|
|
+ if (StringUtils.isBlank(p.getProjectNumber())){
|
|
|
+ ProjectTask projectTask = projectTaskMapper.selectByProjectNumber(p.getProjectNumber());
|
|
|
+ if (StringUtils.isNull(projectTask)){
|
|
|
+ throw new ServiceException(String.format("项目[%s]不存在",p.getProjectName()));
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ throw new ServiceException(String.format("新增必须知道打卡项目"));
|
|
|
+ }
|
|
|
projectStaffRecordMapper.insertSelective(p);
|
|
|
successNum++;
|
|
|
successMsg.append("<br/>" + successNum + "、项目: " + p.getName() + " 导入成功");
|
|
|
- }else if (isUpdateSupport){
|
|
|
+ }else if (updateSupport){
|
|
|
BeanValidators.validateWithException(validator, p);
|
|
|
+
|
|
|
+ if (p.getDuration()!=projectStaffRecord.getDuration()){
|
|
|
+ String recordTimes = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, p.getRecordTime());
|
|
|
+ BigDecimal maxDuration= new BigDecimal(SecurityUtils.getLoginUser().getUser().getDept().getMaxDuration());
|
|
|
+ Double myDuration = getMyDuration(projectStaffRecord.getPid(), projectStaffRecord.getAid(), recordTimes);
|
|
|
+ myDuration-=projectStaffRecord.getDuration();
|
|
|
+ myDuration+=p.getDuration();
|
|
|
+ if (maxDuration.compareTo(new BigDecimal(myDuration))<0){
|
|
|
+ throw new ServiceException(String.format("工时超出最大打卡,最大[%s]当前[%s]",maxDuration,myDuration));
|
|
|
+ }
|
|
|
+ projectTaskMapper.updateDuration(projectStaffRecord.getPid());
|
|
|
+ sysUserMapper.updateDuration(projectStaffRecord.getAid());
|
|
|
+ }
|
|
|
projectStaffRecordMapper.updateByPrimaryKeySelective(p);
|
|
|
successNum++;
|
|
|
successMsg.append("<br/>" + successNum + "、项目: " + p.getName() + " 更新成功");
|
|
|
@@ -424,9 +455,10 @@ public class ProjectStaffRecordServiceImpl implements ProjectStaffRecordService
|
|
|
List<ProjectStaffRecord> projectStaffRecords = projectStaffRecordMapper.selectByPidAndAid(pid,aid);
|
|
|
for (ProjectStaffRecord e : projectStaffRecords) {
|
|
|
String eDate= DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, e.getRecordTime());
|
|
|
- if (recordTime.equals(eDate)){
|
|
|
- myDuration+=e.getDuration();
|
|
|
+ if (recordTime.equals(eDate)){
|
|
|
+ myDuration+=e.getDuration();
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
return myDuration;
|
|
|
}
|