From 86c262ed4df9940b9a18169dd2f56f88945c8d5b Mon Sep 17 00:00:00 2001 From: chenhao <852066789@qq.com> Date: Thu, 27 Mar 2025 09:35:26 +0800 Subject: [PATCH] =?UTF-8?q?feat(business):=20=E5=A2=9E=E5=8A=A0=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E6=97=A5=E6=9C=9F=E5=8F=82=E6=95=B0=E5=B9=B6=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E7=9B=B8=E5=85=B3=E9=80=BB=E8=BE=91-=20=E5=9C=A8=20Pr?= =?UTF-8?q?ojectDemand=20=E5=92=8C=20ProjectVersion=E6=A8=A1=E5=9E=8B?= =?UTF-8?q?=E4=B8=AD=E6=B7=BB=E5=8A=A0=20queryDate=20=E5=AD=97=E6=AE=B5=20?= =?UTF-8?q?-=20=E6=9B=B4=E6=96=B0=20ProjectDemandMapper=20=E5=92=8C=20Proj?= =?UTF-8?q?ectVersionMapper=20XML=20=E6=96=87=E4=BB=B6=EF=BC=8C=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E6=9F=A5=E8=AF=A2=E6=97=A5=E6=9C=9F=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E7=9A=84=20SQL=20=E6=9D=A1=E4=BB=B6=20-=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=20ProjectDemandServiceImpl=20=E4=B8=AD=E7=9A=84=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E9=80=BB=E8=BE=91=E5=88=A4=E6=96=AD-=20=E5=9C=A8=20Pr?= =?UTF-8?q?ojectVersionServiceImpl=20=E4=B8=AD=E6=B7=BB=E5=8A=A0=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E6=97=A5=E6=9C=9F=E5=8F=82=E6=95=B0=E7=9A=84=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=20-=20=E5=9C=A8=20WorkLogger=20=E6=A8=A1=E5=9E=8B?= =?UTF-8?q?=E4=B8=AD=E6=B7=BB=E5=8A=A0=20versionId=20=E5=AD=97=E6=AE=B5=20?= =?UTF-8?q?-=20=E6=9B=B4=E6=96=B0=20WorkLoggerMapper=20XML=20=E6=96=87?= =?UTF-8?q?=E4=BB=B6=EF=BC=8C=E5=8A=A0=E5=85=A5=20versionId=20=E7=9A=84?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=9D=A1=E4=BB=B6=20-=20=E5=9C=A8=20WorkLogg?= =?UTF-8?q?erServiceImpl=20=E4=B8=AD=E6=B7=BB=E5=8A=A0=E6=9C=80=E5=A4=A7?= =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E6=97=B6=E9=97=B4=E9=AA=8C=E8=AF=81=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pms/business/demand/domain/ProjectDemand.java | 1 + .../demand/service/impl/ProjectDemandServiceImpl.java | 2 +- .../pms/business/version/domain/ProjectVersion.java | 1 + .../service/impl/ProjectVersionServiceImpl.java | 3 +++ .../pms/business/work/logger/domain/WorkLogger.java | 1 + .../logger/service/impl/WorkLoggerServiceImpl.java | 11 +++++++++++ .../business/ProjectDemand/ProjectDemandMapper.xml | 8 +++++--- .../business/ProjectVersion/ProjectVersionMapper.xml | 4 ++-- .../mapper/business/WorkLogger/WorkLoggerMapper.xml | 2 +- 9 files changed, 26 insertions(+), 7 deletions(-) diff --git a/pms-business/src/main/java/tech/unissense/pms/business/demand/domain/ProjectDemand.java b/pms-business/src/main/java/tech/unissense/pms/business/demand/domain/ProjectDemand.java index df3f074..827bb38 100644 --- a/pms-business/src/main/java/tech/unissense/pms/business/demand/domain/ProjectDemand.java +++ b/pms-business/src/main/java/tech/unissense/pms/business/demand/domain/ProjectDemand.java @@ -59,6 +59,7 @@ public class ProjectDemand implements Serializable { //负责人名称 private String responsiblePersonName; private List demandStatusList; + private Date queryDate; /** * 需求状态 */ diff --git a/pms-business/src/main/java/tech/unissense/pms/business/demand/service/impl/ProjectDemandServiceImpl.java b/pms-business/src/main/java/tech/unissense/pms/business/demand/service/impl/ProjectDemandServiceImpl.java index e0b8a39..15a3450 100644 --- a/pms-business/src/main/java/tech/unissense/pms/business/demand/service/impl/ProjectDemandServiceImpl.java +++ b/pms-business/src/main/java/tech/unissense/pms/business/demand/service/impl/ProjectDemandServiceImpl.java @@ -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("结束时间不能早于当前时间"); } diff --git a/pms-business/src/main/java/tech/unissense/pms/business/version/domain/ProjectVersion.java b/pms-business/src/main/java/tech/unissense/pms/business/version/domain/ProjectVersion.java index 89d2097..5077bba 100644 --- a/pms-business/src/main/java/tech/unissense/pms/business/version/domain/ProjectVersion.java +++ b/pms-business/src/main/java/tech/unissense/pms/business/version/domain/ProjectVersion.java @@ -41,6 +41,7 @@ public class ProjectVersion implements Serializable { * 创建时间 */ private Date createTime; + private Date queryDate; private List demandList; diff --git a/pms-business/src/main/java/tech/unissense/pms/business/version/service/impl/ProjectVersionServiceImpl.java b/pms-business/src/main/java/tech/unissense/pms/business/version/service/impl/ProjectVersionServiceImpl.java index 7fd9b6a..0843335 100644 --- a/pms-business/src/main/java/tech/unissense/pms/business/version/service/impl/ProjectVersionServiceImpl.java +++ b/pms-business/src/main/java/tech/unissense/pms/business/version/service/impl/ProjectVersionServiceImpl.java @@ -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()); } diff --git a/pms-business/src/main/java/tech/unissense/pms/business/work/logger/domain/WorkLogger.java b/pms-business/src/main/java/tech/unissense/pms/business/work/logger/domain/WorkLogger.java index 7ec29d8..20164fa 100644 --- a/pms-business/src/main/java/tech/unissense/pms/business/work/logger/domain/WorkLogger.java +++ b/pms-business/src/main/java/tech/unissense/pms/business/work/logger/domain/WorkLogger.java @@ -56,6 +56,7 @@ public class WorkLogger extends BaseEntity { private List projectIdList; private Integer examineId; + private Integer versionId; private String projectName; private String title; private String versionNumber; diff --git a/pms-business/src/main/java/tech/unissense/pms/business/work/logger/service/impl/WorkLoggerServiceImpl.java b/pms-business/src/main/java/tech/unissense/pms/business/work/logger/service/impl/WorkLoggerServiceImpl.java index 71048c2..2a74b83 100644 --- a/pms-business/src/main/java/tech/unissense/pms/business/work/logger/service/impl/WorkLoggerServiceImpl.java +++ b/pms-business/src/main/java/tech/unissense/pms/business/work/logger/service/impl/WorkLoggerServiceImpl.java @@ -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("超出最大可填写工时"); + } + } + /** * 修改数据 * diff --git a/pms-business/src/main/resources/mapper/business/ProjectDemand/ProjectDemandMapper.xml b/pms-business/src/main/resources/mapper/business/ProjectDemand/ProjectDemandMapper.xml index 6f8cb6b..5d36587 100644 --- a/pms-business/src/main/resources/mapper/business/ProjectDemand/ProjectDemandMapper.xml +++ b/pms-business/src/main/resources/mapper/business/ProjectDemand/ProjectDemandMapper.xml @@ -34,7 +34,7 @@ and t1.id = #{id} - and t1.title like concat(#{title},'%') + and t1.title like concat(#{title},'%') and t1.version_id = #{versionId} @@ -61,14 +61,16 @@ and t1.project_id = #{projectId} - and t3.nick_name like concat(#{responsiblePersonName},"%") + and t3.nick_name like concat(#{responsiblePersonName},"%") and t1.demand_status in #{item} - + + + and #{queryDate} between t1.create_time and t1.end_time diff --git a/pms-business/src/main/resources/mapper/business/ProjectVersion/ProjectVersionMapper.xml b/pms-business/src/main/resources/mapper/business/ProjectVersion/ProjectVersionMapper.xml index eced541..fbf81b3 100644 --- a/pms-business/src/main/resources/mapper/business/ProjectVersion/ProjectVersionMapper.xml +++ b/pms-business/src/main/resources/mapper/business/ProjectVersion/ProjectVersionMapper.xml @@ -38,10 +38,10 @@ and release_date = #{releaseDate} - 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}) - 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 #{item} diff --git a/pms-business/src/main/resources/mapper/business/WorkLogger/WorkLoggerMapper.xml b/pms-business/src/main/resources/mapper/business/WorkLogger/WorkLoggerMapper.xml index 1406545..104b1a0 100644 --- a/pms-business/src/main/resources/mapper/business/WorkLogger/WorkLoggerMapper.xml +++ b/pms-business/src/main/resources/mapper/business/WorkLogger/WorkLoggerMapper.xml @@ -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)