feat(business): 增加查询日期参数并优化相关逻辑- 在 ProjectDemand 和 ProjectVersion模型中添加 queryDate 字段
- 更新 ProjectDemandMapper 和 ProjectVersionMapper XML 文件,添加查询日期相关的 SQL 条件 - 修改 ProjectDemandServiceImpl 中的时间逻辑判断- 在 ProjectVersionServiceImpl 中添加查询日期参数的设置 - 在 WorkLogger 模型中添加 versionId 字段 - 更新 WorkLoggerMapper XML 文件,加入 versionId 的查询条件 - 在 WorkLoggerServiceImpl 中添加最大工作时间验证逻辑dev_1.2.0
parent
f0e3ecc142
commit
86c262ed4d
|
@ -59,6 +59,7 @@ public class ProjectDemand implements Serializable {
|
|||
//负责人名称
|
||||
private String responsiblePersonName;
|
||||
private List<String> demandStatusList;
|
||||
private Date queryDate;
|
||||
/**
|
||||
* 需求状态
|
||||
*/
|
||||
|
|
|
@ -94,7 +94,7 @@ public class ProjectDemandServiceImpl implements IProjectDemandService {
|
|||
boolean statusFlag = ProjectDemand.DemandStatusEnum.YWC.value().equals(existDemand.getDemandStatus())
|
||||
|| ProjectDemand.DemandStatusEnum.YGB.value().equals(existDemand.getDemandStatus());
|
||||
// 当前状态发生变化,并且结束时间在当前时间之前
|
||||
boolean timeFlag = !existDemand.getDemandStatus().equals(projectDemand.getDemandStatus()) && DateUtils.getNowDate().before(projectDemand.getEndTime());
|
||||
boolean timeFlag = !existDemand.getDemandStatus().equals(projectDemand.getDemandStatus()) && DateUtils.getNowDate().after(projectDemand.getEndTime());
|
||||
if (statusFlag && timeFlag) {
|
||||
throw new ServiceException("结束时间不能早于当前时间");
|
||||
}
|
||||
|
|
|
@ -41,6 +41,7 @@ public class ProjectVersion implements Serializable {
|
|||
* 创建时间
|
||||
*/
|
||||
private Date createTime;
|
||||
private Date queryDate;
|
||||
|
||||
private List<ProjectDemand> demandList;
|
||||
|
||||
|
|
|
@ -83,6 +83,9 @@ public class ProjectVersionServiceImpl implements IProjectVersionService {
|
|||
if (projectVersion.getUserId() != null) {
|
||||
param.setResponsiblePerson(projectVersion.getUserId());
|
||||
}
|
||||
if (projectVersion.getQueryDate() != null) {
|
||||
param.setQueryDate(projectVersion.getQueryDate());
|
||||
}
|
||||
if (CollUtil.isNotEmpty(projectVersion.getDemandStatusList())) {
|
||||
param.setDemandStatusList(projectVersion.getDemandStatusList());
|
||||
}
|
||||
|
|
|
@ -56,6 +56,7 @@ public class WorkLogger extends BaseEntity {
|
|||
private List<Integer> projectIdList;
|
||||
|
||||
private Integer examineId;
|
||||
private Integer versionId;
|
||||
private String projectName;
|
||||
private String title;
|
||||
private String versionNumber;
|
||||
|
|
|
@ -72,10 +72,21 @@ public class WorkLoggerServiceImpl implements IWorkLoggerService {
|
|||
*/
|
||||
@Override
|
||||
public WorkLogger insert(WorkLogger workLogger) {
|
||||
verifyMaxWorkTime(workLogger);
|
||||
this.workLoggerMapper.insert(workLogger);
|
||||
return workLogger;
|
||||
}
|
||||
|
||||
private void verifyMaxWorkTime(WorkLogger workLogger) {
|
||||
//当天剩余工时
|
||||
WorkLogger queryParam = new WorkLogger();
|
||||
queryParam.setLoggerDate(workLogger.getLoggerDate());
|
||||
String remaining = this.getRemaining(queryParam);
|
||||
if (new BigDecimal(remaining).compareTo(new BigDecimal(workLogger.getWorkTime()))<0){
|
||||
throw new RuntimeException("超出最大可填写工时");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改数据
|
||||
*
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
and t1.id = #{id}
|
||||
</if>
|
||||
<if test="title != null and title != ''">
|
||||
and t1.title like concat(#{title},'%')
|
||||
and t1.title like concat(#{title},'%')
|
||||
</if>
|
||||
<if test="versionId != null and versionId != ''">
|
||||
and t1.version_id = #{versionId}
|
||||
|
@ -61,14 +61,16 @@
|
|||
and t1.project_id = #{projectId}
|
||||
</if>
|
||||
<if test="responsiblePersonName != null and responsiblePersonName != ''">
|
||||
and t3.nick_name like concat(#{responsiblePersonName},"%")
|
||||
and t3.nick_name like concat(#{responsiblePersonName},"%")
|
||||
</if>
|
||||
<if test="demandStatusList!=null and demandStatusList.size>0">
|
||||
and t1.demand_status in
|
||||
<foreach collection="demandStatusList" item="item" open="(" separator="," close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
|
||||
</if>
|
||||
<if test="queryDate !=null">
|
||||
and #{queryDate} between t1.create_time and t1.end_time
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
|
|
@ -38,10 +38,10 @@
|
|||
and release_date = #{releaseDate}
|
||||
</if>
|
||||
<if test="userId != null">
|
||||
and (select version_id from pms_project_demand where responsible_person = #{userId})
|
||||
and id in (select version_id from pms_project_demand where responsible_person = #{userId})
|
||||
</if>
|
||||
<if test="demandStatusList!=null and demandStatusList.size>0">
|
||||
and (select version_id from pms_project_demand where demand_status in
|
||||
and id in (select version_id from pms_project_demand where demand_status in
|
||||
<foreach collection="demandStatusList" item="item" open="(" separator="," close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
|
|
|
@ -56,7 +56,7 @@
|
|||
t1.logger_id, t1.logger_date, t1.project_id, t1.user_id, t1.work_time, t1.work_content, t1.state, t1.create_by,
|
||||
t1.update_by, t1.update_time,
|
||||
t1.create_time,t1.demand_id,t2.nick_name user_name
|
||||
,t3.project_name,t4.title ,t5.version_number
|
||||
,t3.project_name,t4.title ,t5.version_number,t4.version_id
|
||||
from pms_work_logger t1
|
||||
left join sys_user t2 on t1.user_id=t2.user_id
|
||||
inner join pms_project t3 on (t1.project_id=t3.project_id and t3.state=0)
|
||||
|
|
Loading…
Reference in New Issue