diff --git a/.gitignore b/.gitignore
index 5c11c82..fa488e5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -35,4 +35,10 @@ build/
### VS Code ###
.vscode/
target/
-logs/
\ No newline at end of file
+logs/
+
+### Maven ###
+pom.xml
+
+### YAML ###
+*.yaml
diff --git a/core/pom.xml b/core/pom.xml
index 599d2b6..6e16813 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -10,6 +10,10 @@
core
1.0.0-SNAPSHOT
+
+ UTF-8
+
+
org.springframework.boot
@@ -162,6 +166,38 @@
4.7.0-0
+
+
+ org.springframework.boot
+ spring-boot-starter-mail
+
+
+
+ org.springframework.boot
+ spring-boot-starter-thymeleaf
+
+
+
+
+ com.aliyun
+ aliyun-java-sdk-core
+ 4.6.3
+
+
+
+
+ com.aliyun
+ aliyun-java-sdk-dysmsapi
+ 2.1.0
+
+
+
+
+ javax.xml.bind
+ jaxb-api
+ 2.3.1
+
+
commons-io
diff --git a/core/src/main/java/com/dite/znpt/config/Schedule.java b/core/src/main/java/com/dite/znpt/config/Schedule.java
index 8d5d41d..6b3c65a 100644
--- a/core/src/main/java/com/dite/znpt/config/Schedule.java
+++ b/core/src/main/java/com/dite/znpt/config/Schedule.java
@@ -7,6 +7,7 @@ import com.dite.znpt.domain.vo.PartResp;
import com.dite.znpt.enums.FilePathEnum;
import com.dite.znpt.service.ImageService;
import com.dite.znpt.service.PartService;
+import com.dite.znpt.service.job.AutoExpirationJobService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled;
@@ -26,6 +27,7 @@ public class Schedule {
private final ImageService imageService;
private final PartService partService;
private final ExtUtilConfig extUtilConfig;
+ private final AutoExpirationJobService autoExpirationJobService;
/**
* 功能描述:图像预处理,持续运行
@@ -47,7 +49,7 @@ public class Schedule {
List successList = new ArrayList<>();
for (ImageEntity image : list) {
PartResp partResp = partRespMap.get(image.getPartId());
- FilePathEnum pathEnum = image.getImagePath().contains("temp") ? FilePathEnum.IMAGE_TEMP : FilePathEnum.IMAGE;
+ FilePathEnum pathEnum = FilePathEnum.getFilePathEnum(image.getImagePath());
String inputFile = pathEnum.getFileAbsolutePath(image.getImagePath());
String outputDir = FilePathEnum.IMAGE.getFileAbsolutePathPrefix()
.concat("已调整")
@@ -67,4 +69,16 @@ public class Schedule {
}
imageService.updateBatchById(successList);
}
+
+ /**
+ * 功能描述:自动到期检测,每天凌晨2点执行
+ *
+ * @author System
+ * @date 2025/1/1
+ **/
+ @Scheduled(cron = "0 0 2 * * ?")
+ public void autoExpirationCheck() {
+ log.info("开始执行自动到期检测定时任务...");
+ autoExpirationJobService.executeAutoExpirationJob();
+ }
}
diff --git a/core/src/main/java/com/dite/znpt/config/SwaggerConfig.java b/core/src/main/java/com/dite/znpt/config/SwaggerConfig.java
index 5f30e05..d8a0536 100644
--- a/core/src/main/java/com/dite/znpt/config/SwaggerConfig.java
+++ b/core/src/main/java/com/dite/znpt/config/SwaggerConfig.java
@@ -38,7 +38,6 @@ public class SwaggerConfig {
.enable(true)//开启Swagger文档
.select()
.apis(RequestHandlerSelectors.basePackage("com.dite"))
- .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
.paths(PathSelectors.any())
.build()
.globalRequestParameters(parameters);
diff --git a/core/src/main/java/com/dite/znpt/config/WebMvcConfig.java b/core/src/main/java/com/dite/znpt/config/WebMvcConfig.java
index c09ff82..718f7ff 100644
--- a/core/src/main/java/com/dite/znpt/config/WebMvcConfig.java
+++ b/core/src/main/java/com/dite/znpt/config/WebMvcConfig.java
@@ -2,10 +2,14 @@ package com.dite.znpt.config;
import cn.hutool.core.collection.ListUtil;
import com.dite.znpt.enums.FilePathEnum;
+import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
+import org.springframework.http.converter.HttpMessageConverter;
+import org.springframework.http.converter.StringHttpMessageConverter;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
@@ -28,6 +32,14 @@ public class WebMvcConfig implements WebMvcConfigurer {
}
}
+ /**
+ * 配置HTTP消息转换器,确保UTF-8编码
+ */
+ @Override
+ public void configureMessageConverters(List> converters) {
+ converters.add(new StringHttpMessageConverter(StandardCharsets.UTF_8));
+ }
+
// @Override
// public void addInterceptors(InterceptorRegistry registry) {
// // 注册 Sa-Token 拦截器,定义详细认证规则
diff --git a/core/src/main/java/com/dite/znpt/constant/Message.java b/core/src/main/java/com/dite/znpt/constant/Message.java
index 842c55e..8e6398a 100644
--- a/core/src/main/java/com/dite/znpt/constant/Message.java
+++ b/core/src/main/java/com/dite/znpt/constant/Message.java
@@ -79,4 +79,10 @@ public class Message implements Serializable {
public static final String EQUIPMENT_USE_RECORD_STATUS_ERROR = "设备使用记录状态不合法";
public static final String EQUIPMENT_IS_USED = "设备已被使用";
public static final String EQUIPMENT_IS_RETURN = "设备已归还";
+ public static final String DAILY_REPORT_EXISTS = "当日已提交日报";
+ public static final String BIDDING_INFO_ID_IS_NOT_EXIST = "招标信息id不存在";
+ public static final String TENDER_INFO_ID_IS_NOT_EXIST = "投标信息id不存在";
+ public static final String TENDER_INFO_IS_EXIST = "招标[{}]已存中投信息存在";
+ public static final String OUTBID_INFO_ID_IS_NOT_EXIST = "中标信息id不存在";
+ public static final String OUTBID_INFO_IS_EXIST = "招标[{}]已存中标信息存在";
}
diff --git a/core/src/main/java/com/dite/znpt/converts/Converts.java b/core/src/main/java/com/dite/znpt/converts/Converts.java
index bdfaf36..ea0dd55 100644
--- a/core/src/main/java/com/dite/znpt/converts/Converts.java
+++ b/core/src/main/java/com/dite/znpt/converts/Converts.java
@@ -126,5 +126,9 @@ public interface Converts {
EquipmentEntity toEquipmentUseRecordEntity(EquipmentReq req);
EquipmentUseRecordEntity toEquipmentUseRecordEntity(EquipmentUseRecordReq req);
+ BiddingInfoEntity toBiddingInfoReq (BiddingInfoReq req);
+ List toBiddingInfoReq (List req);
+ TenderInfoEntity toTenderInfoEntity (TenderInfoReq req);
+ OutbidInfoEntity toOutbidInfoEntity (OutbidInfoReq req);
}
diff --git a/core/src/main/java/com/dite/znpt/converts/Impl/ConvertsImpl.java b/core/src/main/java/com/dite/znpt/converts/Impl/ConvertsImpl.java
deleted file mode 100644
index 534741a..0000000
--- a/core/src/main/java/com/dite/znpt/converts/Impl/ConvertsImpl.java
+++ /dev/null
@@ -1,1346 +0,0 @@
-package com.dite.znpt.converts.Impl;
-
-import com.dite.znpt.converts.Converts;
-import com.dite.znpt.domain.entity.AttachInfoEntity;
-import com.dite.znpt.domain.entity.AttendanceRecordEntity;
-import com.dite.znpt.domain.entity.CertificationEntity;
-import com.dite.znpt.domain.entity.CheckSchemeEntity;
-import com.dite.znpt.domain.entity.DefectEntity;
-import com.dite.znpt.domain.entity.DeptEntity;
-import com.dite.znpt.domain.entity.EquipmentEntity;
-import com.dite.znpt.domain.entity.EquipmentUseRecordEntity;
-import com.dite.znpt.domain.entity.ImageCollectEntity;
-import com.dite.znpt.domain.entity.ImageEntity;
-import com.dite.znpt.domain.entity.InspectionReportEntity;
-import com.dite.znpt.domain.entity.InsuranceCompanyEntity;
-import com.dite.znpt.domain.entity.InsuranceInfoEntity;
-import com.dite.znpt.domain.entity.InsuranceTypeEntity;
-import com.dite.znpt.domain.entity.MaintainSuggestionEntity;
-import com.dite.znpt.domain.entity.MenuEntity;
-import com.dite.znpt.domain.entity.PartEntity;
-import com.dite.znpt.domain.entity.PostEntity;
-import com.dite.znpt.domain.entity.ProjectEntity;
-import com.dite.znpt.domain.entity.RoleEntity;
-import com.dite.znpt.domain.entity.TurbineEntity;
-import com.dite.znpt.domain.entity.UserEntity;
-import com.dite.znpt.domain.entity.WorkShiftEntity;
-import com.dite.znpt.domain.vo.AttachInfoResp;
-import com.dite.znpt.domain.vo.AttendanceRecordReq;
-import com.dite.znpt.domain.vo.AttendanceRecordResp;
-import com.dite.znpt.domain.vo.CertificationReq;
-import com.dite.znpt.domain.vo.CertificationResp;
-import com.dite.znpt.domain.vo.CheckSchemeReq;
-import com.dite.znpt.domain.vo.CheckSchemeResp;
-import com.dite.znpt.domain.vo.DefectReq;
-import com.dite.znpt.domain.vo.DefectResp;
-import com.dite.znpt.domain.vo.DeptReq;
-import com.dite.znpt.domain.vo.DeptResp;
-import com.dite.znpt.domain.vo.EquipmentReq;
-import com.dite.znpt.domain.vo.EquipmentUseRecordReq;
-import com.dite.znpt.domain.vo.ImageCollectReq;
-import com.dite.znpt.domain.vo.ImageReq;
-import com.dite.znpt.domain.vo.ImageSimpleReq;
-import com.dite.znpt.domain.vo.InspectionReportCheckInfo;
-import com.dite.znpt.domain.vo.InspectionReportReportInfo;
-import com.dite.znpt.domain.vo.InspectionReportReq;
-import com.dite.znpt.domain.vo.InspectionReportSchemeInfo;
-import com.dite.znpt.domain.vo.InsuranceAttachResp;
-import com.dite.znpt.domain.vo.InsuranceCompanyReq;
-import com.dite.znpt.domain.vo.InsuranceCompanyResp;
-import com.dite.znpt.domain.vo.InsuranceInfoReq;
-import com.dite.znpt.domain.vo.InsuranceInfoResp;
-import com.dite.znpt.domain.vo.InsuranceTypeReq;
-import com.dite.znpt.domain.vo.InsuranceTypeResp;
-import com.dite.znpt.domain.vo.MaintainSuggestionReq;
-import com.dite.znpt.domain.vo.MaintainSuggestionResp;
-import com.dite.znpt.domain.vo.MenuReq;
-import com.dite.znpt.domain.vo.MenuResp;
-import com.dite.znpt.domain.vo.OutWorkDefectReq;
-import com.dite.znpt.domain.vo.PartReq;
-import com.dite.znpt.domain.vo.PartResp;
-import com.dite.znpt.domain.vo.PostReq;
-import com.dite.znpt.domain.vo.PostResp;
-import com.dite.znpt.domain.vo.ProjectReq;
-import com.dite.znpt.domain.vo.ProjectResp;
-import com.dite.znpt.domain.vo.RoleReq;
-import com.dite.znpt.domain.vo.RoleResp;
-import com.dite.znpt.domain.vo.TurbineReq;
-import com.dite.znpt.domain.vo.TurbineResp;
-import com.dite.znpt.domain.vo.UserListResp;
-import com.dite.znpt.domain.vo.UserReq;
-import com.dite.znpt.domain.vo.UserResp;
-import com.dite.znpt.domain.vo.WorkShiftListResp;
-import com.dite.znpt.domain.vo.WorkShiftReq;
-import com.dite.znpt.domain.vo.WorkShiftResp;
-import java.time.Duration;
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.util.ArrayList;
-import java.util.List;
-import javax.annotation.processing.Generated;
-import javax.xml.datatype.DatatypeConfigurationException;
-import javax.xml.datatype.DatatypeConstants;
-import javax.xml.datatype.DatatypeFactory;
-import javax.xml.datatype.XMLGregorianCalendar;
-
-public class ConvertsImpl implements Converts {
-
- private final DatatypeFactory datatypeFactory;
-
- public ConvertsImpl() {
- try {
- datatypeFactory = DatatypeFactory.newInstance();
- }
- catch ( DatatypeConfigurationException ex ) {
- throw new RuntimeException( ex );
- }
- }
-
- @Override
- public List toImageEntity(List list) {
- if ( list == null ) {
- return null;
- }
-
- List list1 = new ArrayList( list.size() );
- for ( ImageReq imageReq : list ) {
- list1.add( imageReqToImageEntity( imageReq ) );
- }
-
- return list1;
- }
-
- @Override
- public List toImageSimpleReq(List list) {
- if ( list == null ) {
- return null;
- }
-
- List list1 = new ArrayList( list.size() );
- for ( OutWorkDefectReq outWorkDefectReq : list ) {
- list1.add( outWorkDefectReqToImageSimpleReq( outWorkDefectReq ) );
- }
-
- return list1;
- }
-
- @Override
- public ImageCollectEntity toImageCollectEntity(ImageCollectReq req) {
- if ( req == null ) {
- return null;
- }
-
- ImageCollectEntity imageCollectEntity = new ImageCollectEntity();
-
- imageCollectEntity.setShootingTimeBegin( req.getShootingTimeBegin() );
- imageCollectEntity.setShootingTimeEnd( req.getShootingTimeEnd() );
- imageCollectEntity.setWeather( req.getWeather() );
- imageCollectEntity.setHumidness( req.getHumidness() );
- imageCollectEntity.setTemperatureMin( req.getTemperatureMin() );
- imageCollectEntity.setTemperatureMax( req.getTemperatureMax() );
- imageCollectEntity.setWindLevel( req.getWindLevel() );
- imageCollectEntity.setShootingMethod( req.getShootingMethod() );
- imageCollectEntity.setShootingDistance( req.getShootingDistance() );
- imageCollectEntity.setCollectorId( req.getCollectorId() );
- imageCollectEntity.setCollectorName( req.getCollectorName() );
- imageCollectEntity.setImageSource( req.getImageSource() );
-
- return imageCollectEntity;
- }
-
- @Override
- public DefectEntity toDefectEntity(DefectReq req) {
- if ( req == null ) {
- return null;
- }
-
- DefectEntity defectEntity = new DefectEntity();
-
- defectEntity.setDefectCode( req.getDefectCode() );
- defectEntity.setDefectName( req.getDefectName() );
- defectEntity.setDefectPosition( req.getDefectPosition() );
- defectEntity.setDefectType( req.getDefectType() );
- defectEntity.setDefectLevel( req.getDefectLevel() );
- defectEntity.setRepairStatus( req.getRepairStatus() );
- defectEntity.setSource( req.getSource() );
- if ( req.getChordwise() != null ) {
- defectEntity.setChordwise( String.valueOf( req.getChordwise() ) );
- }
- if ( req.getAxial() != null ) {
- defectEntity.setAxial( String.valueOf( req.getAxial() ) );
- }
- defectEntity.setLabelInfo( req.getLabelInfo() );
- defectEntity.setDescription( req.getDescription() );
- defectEntity.setRepairIdea( req.getRepairIdea() );
-
- return defectEntity;
- }
-
- @Override
- public DefectResp toDefectResp(DefectEntity entity) {
- if ( entity == null ) {
- return null;
- }
-
- DefectResp defectResp = new DefectResp();
-
- defectResp.setDefectCode( entity.getDefectCode() );
- defectResp.setDefectName( entity.getDefectName() );
- defectResp.setDefectPosition( entity.getDefectPosition() );
- defectResp.setDefectType( entity.getDefectType() );
- defectResp.setDefectLevel( entity.getDefectLevel() );
- defectResp.setRepairStatus( entity.getRepairStatus() );
- defectResp.setSource( entity.getSource() );
- if ( entity.getChordwise() != null ) {
- defectResp.setChordwise( Integer.parseInt( entity.getChordwise() ) );
- }
- if ( entity.getAxial() != null ) {
- defectResp.setAxial( Integer.parseInt( entity.getAxial() ) );
- }
- defectResp.setLabelInfo( entity.getLabelInfo() );
- defectResp.setDescription( entity.getDescription() );
- defectResp.setRepairIdea( entity.getRepairIdea() );
- defectResp.setDefectId( entity.getDefectId() );
- defectResp.setImageId( entity.getImageId() );
-
- return defectResp;
- }
-
- @Override
- public ProjectResp toProjectResp(ProjectEntity entity) {
- if ( entity == null ) {
- return null;
- }
-
- ProjectResp projectResp = new ProjectResp();
-
- projectResp.setProjectId( entity.getProjectId() );
- projectResp.setProjectName( entity.getProjectName() );
- projectResp.setCoverUrl( entity.getCoverUrl() );
- projectResp.setFarmName( entity.getFarmName() );
- projectResp.setFarmAddress( entity.getFarmAddress() );
- projectResp.setClient( entity.getClient() );
- projectResp.setClientContact( entity.getClientContact() );
- projectResp.setClientPhone( entity.getClientPhone() );
- projectResp.setInspectionUnit( entity.getInspectionUnit() );
- projectResp.setInspectionContact( entity.getInspectionContact() );
- projectResp.setInspectionPhone( entity.getInspectionPhone() );
- projectResp.setScale( entity.getScale() );
- projectResp.setDuration( entity.getDuration() );
- projectResp.setTurbineModel( entity.getTurbineModel() );
- projectResp.setConstructorIds( entity.getConstructorIds() );
- projectResp.setAuditorId( entity.getAuditorId() );
- projectResp.setQualityOfficerId( entity.getQualityOfficerId() );
- projectResp.setProjectManagerId( entity.getProjectManagerId() );
- projectResp.setProjectOrigin( entity.getProjectOrigin() );
- projectResp.setProjectBudget( entity.getProjectBudget() );
-
- if ( entity.getStatus() != null ) {
- projectResp.setStatus( entity.getStatus() );
- }
- projectResp.setStartDate( entity.getStartDate() );
- projectResp.setEndDate( entity.getEndDate() );
-
- return projectResp;
- }
-
- @Override
- public ProjectEntity toProjectEntity(ProjectReq req) {
- if ( req == null ) {
- return null;
- }
-
- ProjectEntity projectEntity = new ProjectEntity();
-
- projectEntity.setProjectId( req.getProjectId() );
- projectEntity.setProjectName( req.getProjectName() );
- projectEntity.setCoverUrl( req.getCoverUrl() );
- projectEntity.setFarmName( req.getFarmName() );
- projectEntity.setFarmAddress( req.getFarmAddress() );
- projectEntity.setClient( req.getClient() );
- projectEntity.setClientContact( req.getClientContact() );
- projectEntity.setClientPhone( req.getClientPhone() );
- projectEntity.setInspectionUnit( req.getInspectionUnit() );
- projectEntity.setInspectionContact( req.getInspectionContact() );
- projectEntity.setInspectionPhone( req.getInspectionPhone() );
- projectEntity.setScale( req.getScale() );
- projectEntity.setDuration( req.getDuration() );
- projectEntity.setTurbineModel( req.getTurbineModel() );
- projectEntity.setConstructorIds( req.getConstructorIds() );
- projectEntity.setAuditorId( req.getAuditorId() );
- projectEntity.setQualityOfficerId( req.getQualityOfficerId() );
- projectEntity.setProjectManagerId( req.getProjectManagerId() );
- projectEntity.setStatus( req.getStatus() );
- projectEntity.setStartDate( req.getStartDate() );
- projectEntity.setEndDate( req.getEndDate() );
- projectEntity.setProjectOrigin( req.getProjectOrigin() );
- projectEntity.setProjectBudget( req.getProjectBudget() );
-
- return projectEntity;
- }
-
- @Override
- public TurbineEntity toTurbineEntity(TurbineReq req) {
- if ( req == null ) {
- return null;
- }
-
- TurbineEntity turbineEntity = new TurbineEntity();
-
- turbineEntity.setProjectId( req.getProjectId() );
- turbineEntity.setTurbineName( req.getTurbineName() );
- turbineEntity.setTurbineCode( req.getTurbineCode() );
- turbineEntity.setTurbineDesc( req.getTurbineDesc() );
- turbineEntity.setTurbineManufacturer( req.getTurbineManufacturer() );
- turbineEntity.setTurbineModel( req.getTurbineModel() );
- turbineEntity.setTurbineCoverUrl( req.getTurbineCoverUrl() );
-
- return turbineEntity;
- }
-
- @Override
- public TurbineResp toTurbineResp(TurbineEntity entity) {
- if ( entity == null ) {
- return null;
- }
-
- TurbineResp turbineResp = new TurbineResp();
-
- turbineResp.setTurbineId( entity.getTurbineId() );
- turbineResp.setProjectId( entity.getProjectId() );
- turbineResp.setTurbineName( entity.getTurbineName() );
- turbineResp.setTurbineCode( entity.getTurbineCode() );
- turbineResp.setTurbineDesc( entity.getTurbineDesc() );
- turbineResp.setTurbineManufacturer( entity.getTurbineManufacturer() );
- turbineResp.setTurbineModel( entity.getTurbineModel() );
- turbineResp.setTurbineCoverUrl( entity.getTurbineCoverUrl() );
-
- return turbineResp;
- }
-
- @Override
- public PartEntity toPartEntity(PartReq req) {
- if ( req == null ) {
- return null;
- }
-
- PartEntity partEntity = new PartEntity();
-
- partEntity.setTurbineId( req.getTurbineId() );
- partEntity.setPartName( req.getPartName() );
- partEntity.setPartCode( req.getPartCode() );
- partEntity.setPartType( req.getPartType() );
- partEntity.setPartDesc( req.getPartDesc() );
- partEntity.setPartManufacturer( req.getPartManufacturer() );
- partEntity.setPartModel( req.getPartModel() );
-
- return partEntity;
- }
-
- @Override
- public PartResp toPartResp(PartEntity entity) {
- if ( entity == null ) {
- return null;
- }
-
- PartResp partResp = new PartResp();
-
- partResp.setPartId( entity.getPartId() );
- partResp.setTurbineId( entity.getTurbineId() );
- partResp.setPartName( entity.getPartName() );
- partResp.setPartCode( entity.getPartCode() );
- partResp.setPartType( entity.getPartType() );
- partResp.setPartDesc( entity.getPartDesc() );
- partResp.setPartManufacturer( entity.getPartManufacturer() );
- partResp.setPartModel( entity.getPartModel() );
-
- return partResp;
- }
-
- @Override
- public UserResp toUserResp(UserEntity entity) {
- if ( entity == null ) {
- return null;
- }
-
- UserResp userResp = new UserResp();
-
- userResp.setAccount( entity.getAccount() );
- userResp.setAvatar( entity.getAvatar() );
- userResp.setStatus( entity.getStatus() );
- userResp.setName( entity.getName() );
- userResp.setUserType( entity.getUserType() );
- userResp.setUserStatus( entity.getUserStatus() );
- userResp.setDeptId( entity.getDeptId() );
- userResp.setIdentityCard( entity.getIdentityCard() );
- userResp.setGender( entity.getGender() );
- userResp.setMobile( entity.getMobile() );
- userResp.setEmail( entity.getEmail() );
- userResp.setHiredate( entity.getHiredate() );
- userResp.setBirthdate( entity.getBirthdate() );
- userResp.setEducation( entity.getEducation() );
- userResp.setMajorField( entity.getMajorField() );
- userResp.setWorkField( entity.getWorkField() );
- userResp.setUserId( entity.getUserId() );
-
- return userResp;
- }
-
- @Override
- public UserListResp toUserListResp(UserEntity entity) {
- if ( entity == null ) {
- return null;
- }
-
- UserListResp userListResp = new UserListResp();
-
- userListResp.setUserId( entity.getUserId() );
- userListResp.setAccount( entity.getAccount() );
- userListResp.setStatus( entity.getStatus() );
- userListResp.setName( entity.getName() );
- userListResp.setUserCode( entity.getUserCode() );
- userListResp.setUserType( entity.getUserType() );
- userListResp.setUserStatus( entity.getUserStatus() );
- userListResp.setMobile( entity.getMobile() );
- userListResp.setCreateTime( entity.getCreateTime() );
-
- return userListResp;
- }
-
- @Override
- public UserEntity toUserEntity(UserReq req) {
- if ( req == null ) {
- return null;
- }
-
- UserEntity userEntity = new UserEntity();
-
- userEntity.setAccount( req.getAccount() );
- userEntity.setAvatar( req.getAvatar() );
- userEntity.setStatus( req.getStatus() );
- userEntity.setName( req.getName() );
- userEntity.setUserType( req.getUserType() );
- userEntity.setUserStatus( req.getUserStatus() );
- userEntity.setDeptId( req.getDeptId() );
- userEntity.setIdentityCard( req.getIdentityCard() );
- userEntity.setGender( req.getGender() );
- userEntity.setMobile( req.getMobile() );
- userEntity.setEmail( req.getEmail() );
- userEntity.setHiredate( req.getHiredate() );
- userEntity.setBirthdate( req.getBirthdate() );
- userEntity.setEducation( req.getEducation() );
- userEntity.setMajorField( req.getMajorField() );
- userEntity.setWorkField( req.getWorkField() );
-
- return userEntity;
- }
-
- @Override
- public DeptEntity toDeptEntity(DeptReq req) {
- if ( req == null ) {
- return null;
- }
-
- DeptEntity deptEntity = new DeptEntity();
-
- deptEntity.setParentId( req.getParentId() );
- deptEntity.setDeptName( req.getDeptName() );
- deptEntity.setOrderNum( req.getOrderNum() );
- deptEntity.setLeaderId( req.getLeaderId() );
- deptEntity.setStatus( req.getStatus() );
-
- return deptEntity;
- }
-
- @Override
- public DeptResp toDeptResp(DeptEntity entity) {
- if ( entity == null ) {
- return null;
- }
-
- DeptResp deptResp = new DeptResp();
-
- deptResp.setDeptId( entity.getDeptId() );
- deptResp.setDeptName( entity.getDeptName() );
- deptResp.setParentId( entity.getParentId() );
- deptResp.setOrderNum( entity.getOrderNum() );
- deptResp.setLeaderId( entity.getLeaderId() );
- if ( entity.getStatus() != null ) {
- deptResp.setStatus( String.valueOf( entity.getStatus() ) );
- }
-
- return deptResp;
- }
-
- @Override
- public PostEntity toPostEntity(PostReq req) {
- if ( req == null ) {
- return null;
- }
-
- PostEntity postEntity = new PostEntity();
-
- postEntity.setPostName( req.getPostName() );
- postEntity.setPostSort( req.getPostSort() );
- postEntity.setStatus( req.getStatus() );
- postEntity.setRemark( req.getRemark() );
- postEntity.setStatement( req.getStatement() );
- postEntity.setResponsibilitiesTask( req.getResponsibilitiesTask() );
- postEntity.setQualifications( req.getQualifications() );
- postEntity.setWorkingConditions( req.getWorkingConditions() );
- postEntity.setSalary( req.getSalary() );
-
- return postEntity;
- }
-
- @Override
- public List toPostResp(List list) {
- if ( list == null ) {
- return null;
- }
-
- List list1 = new ArrayList( list.size() );
- for ( PostEntity postEntity : list ) {
- list1.add( toPostResp( postEntity ) );
- }
-
- return list1;
- }
-
- @Override
- public PostResp toPostResp(PostEntity entity) {
- if ( entity == null ) {
- return null;
- }
-
- PostResp postResp = new PostResp();
-
- postResp.setPostId( entity.getPostId() );
- postResp.setPostName( entity.getPostName() );
- postResp.setPostSort( entity.getPostSort() );
- postResp.setCreateTime( entity.getCreateTime() );
- postResp.setUpdateTime( entity.getUpdateTime() );
- postResp.setStatement( entity.getStatement() );
- postResp.setResponsibilitiesTask( entity.getResponsibilitiesTask() );
- postResp.setQualifications( entity.getQualifications() );
- postResp.setWorkingConditions( entity.getWorkingConditions() );
- postResp.setSalary( entity.getSalary() );
-
- if ( entity.getStatus() != null ) {
- postResp.setStatus( String.valueOf( entity.getStatus() ) );
- }
- postResp.setRemark( entity.getRemark() );
-
- return postResp;
- }
-
- @Override
- public RoleResp toRoleResp(RoleEntity entity) {
- if ( entity == null ) {
- return null;
- }
-
- RoleResp roleResp = new RoleResp();
-
- roleResp.setRoleId( entity.getRoleId() );
- roleResp.setRoleName( entity.getRoleName() );
- roleResp.setRoleCode( entity.getRoleCode() );
- roleResp.setRoleKey( entity.getRoleKey() );
- if ( entity.getStatus() != null ) {
- roleResp.setStatus( String.valueOf( entity.getStatus() ) );
- }
- roleResp.setRemark( entity.getRemark() );
-
- return roleResp;
- }
-
- @Override
- public List toRoleResp(List list) {
- if ( list == null ) {
- return null;
- }
-
- List list1 = new ArrayList( list.size() );
- for ( RoleEntity roleEntity : list ) {
- list1.add( toRoleResp( roleEntity ) );
- }
-
- return list1;
- }
-
- @Override
- public List toUserResp(List list) {
- if ( list == null ) {
- return null;
- }
-
- List list1 = new ArrayList( list.size() );
- for ( UserEntity userEntity : list ) {
- list1.add( toUserResp( userEntity ) );
- }
-
- return list1;
- }
-
- @Override
- public RoleEntity toRoleEntity(RoleReq req) {
- if ( req == null ) {
- return null;
- }
-
- RoleEntity roleEntity = new RoleEntity();
-
- roleEntity.setRoleName( req.getRoleName() );
- roleEntity.setRoleCode( req.getRoleCode() );
- roleEntity.setRoleKey( req.getRoleKey() );
- roleEntity.setStatus( req.getStatus() );
- roleEntity.setRemark( req.getRemark() );
-
- return roleEntity;
- }
-
- @Override
- public MenuEntity toMenuEntity(MenuReq req) {
- if ( req == null ) {
- return null;
- }
-
- MenuEntity menuEntity = new MenuEntity();
-
- menuEntity.setMenuName( req.getMenuName() );
- menuEntity.setParentId( req.getParentId() );
- menuEntity.setOrderNum( req.getOrderNum() );
- menuEntity.setComponent( req.getComponent() );
- menuEntity.setPath( req.getPath() );
- menuEntity.setMenuType( req.getMenuType() );
- menuEntity.setVisible( req.getVisible() );
- menuEntity.setPerms( req.getPerms() );
- menuEntity.setTerminalType( req.getTerminalType() );
-
- return menuEntity;
- }
-
- @Override
- public MenuResp toMenuResp(MenuEntity entity) {
- if ( entity == null ) {
- return null;
- }
-
- MenuResp menuResp = new MenuResp();
-
- menuResp.setMenuId( entity.getMenuId() );
- menuResp.setMenuName( entity.getMenuName() );
- menuResp.setParentId( entity.getParentId() );
- if ( entity.getOrderNum() != null ) {
- menuResp.setOrderNum( String.valueOf( entity.getOrderNum() ) );
- }
- menuResp.setPath( entity.getPath() );
- menuResp.setComponent( entity.getComponent() );
- menuResp.setMenuType( entity.getMenuType() );
- menuResp.setVisible( entity.getVisible() );
- menuResp.setPerms( entity.getPerms() );
-
- return menuResp;
- }
-
- @Override
- public CertificationEntity toCertificationEntity(CertificationReq req) {
- if ( req == null ) {
- return null;
- }
-
- CertificationEntity certificationEntity = new CertificationEntity();
-
- certificationEntity.setUserId( req.getUserId() );
- certificationEntity.setCertificationCode( req.getCertificationCode() );
- certificationEntity.setCertificationName( req.getCertificationName() );
- certificationEntity.setCertificationType( req.getCertificationType() );
- certificationEntity.setValidityDateBegin( req.getValidityDateBegin() );
- certificationEntity.setValidityDateEnd( req.getValidityDateEnd() );
- certificationEntity.setCertificationImage( req.getCertificationImage() );
-
- return certificationEntity;
- }
-
- @Override
- public CertificationResp toCertificationResp(CertificationEntity entity) {
- if ( entity == null ) {
- return null;
- }
-
- CertificationResp certificationResp = new CertificationResp();
-
- certificationResp.setCertificationId( entity.getCertificationId() );
- certificationResp.setUserId( entity.getUserId() );
- certificationResp.setCertificationCode( entity.getCertificationCode() );
- certificationResp.setCertificationName( entity.getCertificationName() );
- certificationResp.setCertificationType( entity.getCertificationType() );
- certificationResp.setValidityDateBegin( entity.getValidityDateBegin() );
- certificationResp.setValidityDateEnd( entity.getValidityDateEnd() );
- certificationResp.setCertificationImage( entity.getCertificationImage() );
-
- return certificationResp;
- }
-
- @Override
- public List toCertificationResp(List list) {
- if ( list == null ) {
- return null;
- }
-
- List list1 = new ArrayList( list.size() );
- for ( CertificationEntity certificationEntity : list ) {
- list1.add( toCertificationResp( certificationEntity ) );
- }
-
- return list1;
- }
-
- @Override
- public List toInsuranceTypeResp(List list) {
- if ( list == null ) {
- return null;
- }
-
- List list1 = new ArrayList( list.size() );
- for ( InsuranceTypeEntity insuranceTypeEntity : list ) {
- list1.add( toInsuranceTypeResp( insuranceTypeEntity ) );
- }
-
- return list1;
- }
-
- @Override
- public InsuranceTypeResp toInsuranceTypeResp(InsuranceTypeEntity entity) {
- if ( entity == null ) {
- return null;
- }
-
- InsuranceTypeResp insuranceTypeResp = new InsuranceTypeResp();
-
- insuranceTypeResp.setInsuranceTypeId( entity.getInsuranceTypeId() );
- insuranceTypeResp.setInsuranceTypeName( entity.getInsuranceTypeName() );
- insuranceTypeResp.setDescription( entity.getDescription() );
-
- return insuranceTypeResp;
- }
-
- @Override
- public InsuranceTypeEntity toInsuranceTypeEntity(InsuranceTypeReq req) {
- if ( req == null ) {
- return null;
- }
-
- InsuranceTypeEntity insuranceTypeEntity = new InsuranceTypeEntity();
-
- insuranceTypeEntity.setInsuranceTypeName( req.getInsuranceTypeName() );
- insuranceTypeEntity.setDescription( req.getDescription() );
-
- return insuranceTypeEntity;
- }
-
- @Override
- public List toInsuranceCompanyResp(List list) {
- if ( list == null ) {
- return null;
- }
-
- List list1 = new ArrayList( list.size() );
- for ( InsuranceCompanyEntity insuranceCompanyEntity : list ) {
- list1.add( toInsuranceCompanyResp( insuranceCompanyEntity ) );
- }
-
- return list1;
- }
-
- @Override
- public InsuranceCompanyResp toInsuranceCompanyResp(InsuranceCompanyEntity entity) {
- if ( entity == null ) {
- return null;
- }
-
- InsuranceCompanyResp insuranceCompanyResp = new InsuranceCompanyResp();
-
- insuranceCompanyResp.setInsuranceCompanyId( entity.getInsuranceCompanyId() );
- insuranceCompanyResp.setInsuranceCompanyName( entity.getInsuranceCompanyName() );
- insuranceCompanyResp.setContact( entity.getContact() );
- insuranceCompanyResp.setContactPhone( entity.getContactPhone() );
- insuranceCompanyResp.setStatus( entity.getStatus() );
-
- return insuranceCompanyResp;
- }
-
- @Override
- public InsuranceCompanyEntity toInsuranceCompanyEntity(InsuranceCompanyReq req) {
- if ( req == null ) {
- return null;
- }
-
- InsuranceCompanyEntity insuranceCompanyEntity = new InsuranceCompanyEntity();
-
- insuranceCompanyEntity.setInsuranceCompanyName( req.getInsuranceCompanyName() );
- insuranceCompanyEntity.setContact( req.getContact() );
- insuranceCompanyEntity.setContactPhone( req.getContactPhone() );
- insuranceCompanyEntity.setStatus( req.getStatus() );
-
- return insuranceCompanyEntity;
- }
-
- @Override
- public List toInsuranceInfoResp(List list) {
- if ( list == null ) {
- return null;
- }
-
- List list1 = new ArrayList( list.size() );
- for ( InsuranceInfoEntity insuranceInfoEntity : list ) {
- list1.add( toInsuranceInfoResp( insuranceInfoEntity ) );
- }
-
- return list1;
- }
-
- @Override
- public List toInsuranceAttachResp(List list) {
- if ( list == null ) {
- return null;
- }
-
- List list1 = new ArrayList( list.size() );
- for ( InsuranceInfoEntity insuranceInfoEntity : list ) {
- list1.add( insuranceInfoEntityToInsuranceAttachResp( insuranceInfoEntity ) );
- }
-
- return list1;
- }
-
- @Override
- public InsuranceInfoResp toInsuranceInfoResp(InsuranceInfoEntity entity) {
- if ( entity == null ) {
- return null;
- }
-
- InsuranceInfoResp insuranceInfoResp = new InsuranceInfoResp();
-
- insuranceInfoResp.setInsuranceInfoId( entity.getInsuranceInfoId() );
- insuranceInfoResp.setUserId( entity.getUserId() );
- insuranceInfoResp.setName( entity.getName() );
- insuranceInfoResp.setUserCode( entity.getUserCode() );
- insuranceInfoResp.setInsuranceTypeId( entity.getInsuranceTypeId() );
- insuranceInfoResp.setInsuranceTypeName( entity.getInsuranceTypeName() );
- insuranceInfoResp.setInsuranceCompanyId( entity.getInsuranceCompanyId() );
- insuranceInfoResp.setInsuranceCompanyName( entity.getInsuranceCompanyName() );
- insuranceInfoResp.setInsuranceBillCode( entity.getInsuranceBillCode() );
- insuranceInfoResp.setAttachInfoId( entity.getAttachInfoId() );
- insuranceInfoResp.setEffectiveDate( entity.getEffectiveDate() );
- insuranceInfoResp.setExpireDate( entity.getExpireDate() );
- insuranceInfoResp.setInsuranceAmount( entity.getInsuranceAmount() );
- insuranceInfoResp.setInsurancePremium( entity.getInsurancePremium() );
-
- return insuranceInfoResp;
- }
-
- @Override
- public InsuranceInfoEntity toInsuranceInfoEntity(InsuranceInfoReq req) {
- if ( req == null ) {
- return null;
- }
-
- InsuranceInfoEntity insuranceInfoEntity = new InsuranceInfoEntity();
-
- insuranceInfoEntity.setUserId( req.getUserId() );
- insuranceInfoEntity.setInsuranceCompanyId( req.getInsuranceCompanyId() );
- insuranceInfoEntity.setInsuranceTypeId( req.getInsuranceTypeId() );
- insuranceInfoEntity.setInsuranceBillCode( req.getInsuranceBillCode() );
- insuranceInfoEntity.setAttachInfoId( req.getAttachInfoId() );
- insuranceInfoEntity.setEffectiveDate( req.getEffectiveDate() );
- insuranceInfoEntity.setExpireDate( req.getExpireDate() );
- insuranceInfoEntity.setInsurancePremium( req.getInsurancePremium() );
- insuranceInfoEntity.setInsuranceAmount( req.getInsuranceAmount() );
- insuranceInfoEntity.setRemark( req.getRemark() );
-
- return insuranceInfoEntity;
- }
-
- @Override
- public AttachInfoResp toAttacheInfoResp(AttachInfoEntity entity) {
- if ( entity == null ) {
- return null;
- }
-
- AttachInfoResp attachInfoResp = new AttachInfoResp();
-
- attachInfoResp.setAttachId( entity.getAttachId() );
- attachInfoResp.setBusinessId( entity.getBusinessId() );
- attachInfoResp.setAttachPath( entity.getAttachPath() );
- attachInfoResp.setFileType( entity.getFileType() );
- attachInfoResp.setRemark( entity.getRemark() );
- attachInfoResp.setCreateTime( entity.getCreateTime() );
-
- return attachInfoResp;
- }
-
- @Override
- public List toWorkShiftListResp(List list) {
- if ( list == null ) {
- return null;
- }
-
- List list1 = new ArrayList( list.size() );
- for ( WorkShiftEntity workShiftEntity : list ) {
- list1.add( workShiftEntityToWorkShiftListResp( workShiftEntity ) );
- }
-
- return list1;
- }
-
- @Override
- public WorkShiftResp toWorkShiftResp(WorkShiftEntity entity) {
- if ( entity == null ) {
- return null;
- }
-
- WorkShiftResp workShiftResp = new WorkShiftResp();
-
- workShiftResp.setWorkShiftId( entity.getWorkShiftId() );
- workShiftResp.setWorkShiftName( entity.getWorkShiftName() );
- workShiftResp.setWorkTimeStart( entity.getWorkTimeStart() );
- workShiftResp.setLateTimeOffset( entity.getLateTimeOffset() );
- workShiftResp.setLateTimeLimit( entity.getLateTimeLimit() );
- workShiftResp.setWorkTimeEnd( entity.getWorkTimeEnd() );
- workShiftResp.setEarlyTimeOffset( entity.getEarlyTimeOffset() );
- workShiftResp.setEarlyTimeLimit( entity.getEarlyTimeLimit() );
- workShiftResp.setRestTimeStart( entity.getRestTimeStart() );
- workShiftResp.setRestTimeEnd( entity.getRestTimeEnd() );
- workShiftResp.setWorkTime( entity.getWorkTime() );
- workShiftResp.setStatus( entity.getStatus() );
-
- return workShiftResp;
- }
-
- @Override
- public WorkShiftEntity toWorkShiftEntity(WorkShiftReq req) {
- if ( req == null ) {
- return null;
- }
-
- WorkShiftEntity workShiftEntity = new WorkShiftEntity();
-
- workShiftEntity.setWorkShiftName( req.getWorkShiftName() );
- workShiftEntity.setWorkTimeStart( req.getWorkTimeStart() );
- workShiftEntity.setLateTimeOffset( req.getLateTimeOffset() );
- workShiftEntity.setLateTimeLimit( req.getLateTimeLimit() );
- workShiftEntity.setWorkTimeEnd( req.getWorkTimeEnd() );
- workShiftEntity.setEarlyTimeOffset( req.getEarlyTimeOffset() );
- workShiftEntity.setEarlyTimeLimit( req.getEarlyTimeLimit() );
- workShiftEntity.setRestTimeStart( req.getRestTimeStart() );
- workShiftEntity.setRestTimeEnd( req.getRestTimeEnd() );
-
- return workShiftEntity;
- }
-
- @Override
- public List toMaintainSuggestionResp(List list) {
- if ( list == null ) {
- return null;
- }
-
- List list1 = new ArrayList( list.size() );
- for ( MaintainSuggestionEntity maintainSuggestionEntity : list ) {
- list1.add( toMaintainSuggestionResp( maintainSuggestionEntity ) );
- }
-
- return list1;
- }
-
- @Override
- public MaintainSuggestionResp toMaintainSuggestionResp(MaintainSuggestionEntity entity) {
- if ( entity == null ) {
- return null;
- }
-
- MaintainSuggestionResp maintainSuggestionResp = new MaintainSuggestionResp();
-
- maintainSuggestionResp.setSuggestionId( entity.getSuggestionId() );
- maintainSuggestionResp.setSuggestionContent( entity.getSuggestionContent() );
- maintainSuggestionResp.setDefectType( entity.getDefectType() );
- maintainSuggestionResp.setDefectLevel( entity.getDefectLevel() );
-
- return maintainSuggestionResp;
- }
-
- @Override
- public MaintainSuggestionEntity toMaintainSuggestionEntity(MaintainSuggestionReq req) {
- if ( req == null ) {
- return null;
- }
-
- MaintainSuggestionEntity maintainSuggestionEntity = new MaintainSuggestionEntity();
-
- maintainSuggestionEntity.setSuggestionContent( req.getSuggestionContent() );
- maintainSuggestionEntity.setDefectLevel( req.getDefectLevel() );
- maintainSuggestionEntity.setDefectType( req.getDefectType() );
-
- return maintainSuggestionEntity;
- }
-
- @Override
- public List toCheckSchemeResp(List list) {
- if ( list == null ) {
- return null;
- }
-
- List list1 = new ArrayList( list.size() );
- for ( CheckSchemeEntity checkSchemeEntity : list ) {
- list1.add( toCheckSchemeResp( checkSchemeEntity ) );
- }
-
- return list1;
- }
-
- @Override
- public CheckSchemeResp toCheckSchemeResp(CheckSchemeEntity entity) {
- if ( entity == null ) {
- return null;
- }
-
- CheckSchemeResp checkSchemeResp = new CheckSchemeResp();
-
- checkSchemeResp.setSchemeId( entity.getSchemeId() );
- checkSchemeResp.setWorkContent( entity.getWorkContent() );
- checkSchemeResp.setStaffConfig( entity.getStaffConfig() );
- checkSchemeResp.setDeviceConfig( entity.getDeviceConfig() );
- checkSchemeResp.setConstructionScheme( entity.getConstructionScheme() );
- checkSchemeResp.setCheckMethod( entity.getCheckMethod() );
- checkSchemeResp.setRemark( entity.getRemark() );
-
- return checkSchemeResp;
- }
-
- @Override
- public CheckSchemeEntity toCheckSchemeEntity(CheckSchemeReq req) {
- if ( req == null ) {
- return null;
- }
-
- CheckSchemeEntity checkSchemeEntity = new CheckSchemeEntity();
-
- checkSchemeEntity.setWorkContent( req.getWorkContent() );
- checkSchemeEntity.setStaffConfig( req.getStaffConfig() );
- checkSchemeEntity.setDeviceConfig( req.getDeviceConfig() );
- checkSchemeEntity.setConstructionScheme( req.getConstructionScheme() );
- checkSchemeEntity.setCheckMethod( req.getCheckMethod() );
- checkSchemeEntity.setRemark( req.getRemark() );
-
- return checkSchemeEntity;
- }
-
- @Override
- public InspectionReportEntity toInspectionReportEntity(InspectionReportReq req) {
- if ( req == null ) {
- return null;
- }
-
- InspectionReportEntity inspectionReportEntity = new InspectionReportEntity();
-
- inspectionReportEntity.setTitle( req.getTitle() );
- inspectionReportEntity.setSubTitle( req.getSubTitle() );
- inspectionReportEntity.setCoverImage( req.getCoverImage() );
- inspectionReportEntity.setProjectId( req.getProjectId() );
- inspectionReportEntity.setTurbineId( req.getTurbineId() );
- inspectionReportEntity.setCheckDate( req.getCheckDate() );
- inspectionReportEntity.setCheckContent( req.getCheckContent() );
- inspectionReportEntity.setCheckMethod( req.getCheckMethod() );
- inspectionReportEntity.setCheckUserId( req.getCheckUserId() );
- inspectionReportEntity.setReportWriter( req.getReportWriter() );
- inspectionReportEntity.setReportWriteTime( xmlGregorianCalendarToLocalDateTime( localDateToXmlGregorianCalendar( req.getReportWriteTime() ) ) );
- inspectionReportEntity.setReportReviewer( req.getReportReviewer() );
- inspectionReportEntity.setReportReviewTime( xmlGregorianCalendarToLocalDateTime( localDateToXmlGregorianCalendar( req.getReportReviewTime() ) ) );
- inspectionReportEntity.setReportAuditor( req.getReportAuditor() );
- inspectionReportEntity.setReportAuditTime( xmlGregorianCalendarToLocalDateTime( localDateToXmlGregorianCalendar( req.getReportAuditTime() ) ) );
- inspectionReportEntity.setReportStatus( req.getReportStatus() );
-
- return inspectionReportEntity;
- }
-
- @Override
- public InspectionReportCheckInfo toInspectionReportCheckInfo(InspectionReportEntity entity) {
- if ( entity == null ) {
- return null;
- }
-
- InspectionReportCheckInfo inspectionReportCheckInfo = new InspectionReportCheckInfo();
-
- inspectionReportCheckInfo.setCheckDate( entity.getCheckDate() );
- inspectionReportCheckInfo.setCheckContent( entity.getCheckContent() );
- inspectionReportCheckInfo.setCheckMethod( entity.getCheckMethod() );
- inspectionReportCheckInfo.setCheckUserId( entity.getCheckUserId() );
-
- return inspectionReportCheckInfo;
- }
-
- @Override
- public InspectionReportReportInfo toInspectionReportReportInfo(InspectionReportEntity entity) {
- if ( entity == null ) {
- return null;
- }
-
- InspectionReportReportInfo inspectionReportReportInfo = new InspectionReportReportInfo();
-
- inspectionReportReportInfo.setReportId( entity.getReportId() );
- inspectionReportReportInfo.setTitle( entity.getTitle() );
- inspectionReportReportInfo.setSubTitle( entity.getSubTitle() );
- inspectionReportReportInfo.setCoverImage( entity.getCoverImage() );
- inspectionReportReportInfo.setReportWriter( entity.getReportWriter() );
- inspectionReportReportInfo.setReportWriteTime( entity.getReportWriteTime() );
- inspectionReportReportInfo.setReportReviewer( entity.getReportReviewer() );
- inspectionReportReportInfo.setReportReviewTime( entity.getReportReviewTime() );
- inspectionReportReportInfo.setReportAuditor( entity.getReportAuditor() );
- inspectionReportReportInfo.setReportAuditTime( entity.getReportAuditTime() );
-
- return inspectionReportReportInfo;
- }
-
- @Override
- public List toInspectionReportSchemeInfo(List list) {
- if ( list == null ) {
- return null;
- }
-
- List list1 = new ArrayList( list.size() );
- for ( CheckSchemeEntity checkSchemeEntity : list ) {
- list1.add( checkSchemeEntityToInspectionReportSchemeInfo( checkSchemeEntity ) );
- }
-
- return list1;
- }
-
- @Override
- public AttendanceRecordEntity toAttendanceRecordEntity(AttendanceRecordReq req) {
- if ( req == null ) {
- return null;
- }
-
- AttendanceRecordEntity attendanceRecordEntity = new AttendanceRecordEntity();
-
- attendanceRecordEntity.setRecordImage( req.getRecordImage() );
- attendanceRecordEntity.setRecordPosition( req.getRecordPosition() );
- attendanceRecordEntity.setRecordPositionLabel( req.getRecordPositionLabel() );
-
- return attendanceRecordEntity;
- }
-
- @Override
- public List toAttendanceRecordResp(List list) {
- if ( list == null ) {
- return null;
- }
-
- List list1 = new ArrayList( list.size() );
- for ( AttendanceRecordEntity attendanceRecordEntity : list ) {
- list1.add( attendanceRecordEntityToAttendanceRecordResp( attendanceRecordEntity ) );
- }
-
- return list1;
- }
-
- @Override
- public EquipmentEntity toEquipmentUseRecordEntity(EquipmentReq req) {
- if ( req == null ) {
- return null;
- }
-
- EquipmentEntity equipmentEntity = new EquipmentEntity();
-
- equipmentEntity.setEquipmentName( req.getEquipmentName() );
- equipmentEntity.setEquipmentModel( req.getEquipmentModel() );
- equipmentEntity.setEquipmentType( req.getEquipmentType() );
- equipmentEntity.setEquipmentSn( req.getEquipmentSn() );
-
- return equipmentEntity;
- }
-
- @Override
- public EquipmentUseRecordEntity toEquipmentUseRecordEntity(EquipmentUseRecordReq req) {
- if ( req == null ) {
- return null;
- }
-
- EquipmentUseRecordEntity equipmentUseRecordEntity = new EquipmentUseRecordEntity();
-
- equipmentUseRecordEntity.setUserId( req.getUserId() );
- equipmentUseRecordEntity.setProjectId( req.getProjectId() );
- equipmentUseRecordEntity.setRemark( req.getRemark() );
-
- return equipmentUseRecordEntity;
- }
-
- private static LocalDateTime xmlGregorianCalendarToLocalDateTime( XMLGregorianCalendar xcal ) {
- if ( xcal == null ) {
- return null;
- }
-
- if ( xcal.getYear() != DatatypeConstants.FIELD_UNDEFINED
- && xcal.getMonth() != DatatypeConstants.FIELD_UNDEFINED
- && xcal.getDay() != DatatypeConstants.FIELD_UNDEFINED
- && xcal.getHour() != DatatypeConstants.FIELD_UNDEFINED
- && xcal.getMinute() != DatatypeConstants.FIELD_UNDEFINED
- ) {
- if ( xcal.getSecond() != DatatypeConstants.FIELD_UNDEFINED
- && xcal.getMillisecond() != DatatypeConstants.FIELD_UNDEFINED ) {
- return LocalDateTime.of(
- xcal.getYear(),
- xcal.getMonth(),
- xcal.getDay(),
- xcal.getHour(),
- xcal.getMinute(),
- xcal.getSecond(),
- Duration.ofMillis( xcal.getMillisecond() ).getNano()
- );
- }
- else if ( xcal.getSecond() != DatatypeConstants.FIELD_UNDEFINED ) {
- return LocalDateTime.of(
- xcal.getYear(),
- xcal.getMonth(),
- xcal.getDay(),
- xcal.getHour(),
- xcal.getMinute(),
- xcal.getSecond()
- );
- }
- else {
- return LocalDateTime.of(
- xcal.getYear(),
- xcal.getMonth(),
- xcal.getDay(),
- xcal.getHour(),
- xcal.getMinute()
- );
- }
- }
- return null;
- }
-
- private XMLGregorianCalendar localDateToXmlGregorianCalendar( LocalDate localDate ) {
- if ( localDate == null ) {
- return null;
- }
-
- return datatypeFactory.newXMLGregorianCalendarDate(
- localDate.getYear(),
- localDate.getMonthValue(),
- localDate.getDayOfMonth(),
- DatatypeConstants.FIELD_UNDEFINED );
- }
-
- protected ImageEntity imageReqToImageEntity(ImageReq imageReq) {
- if ( imageReq == null ) {
- return null;
- }
-
- ImageEntity imageEntity = new ImageEntity();
-
- imageEntity.setImageId( imageReq.getImageId() );
- imageEntity.setImageName( imageReq.getImageName() );
- imageEntity.setImageSize( imageReq.getImageSize() );
- imageEntity.setImageWidth( imageReq.getImageWidth() );
- imageEntity.setImageHeight( imageReq.getImageHeight() );
- imageEntity.setImageResolution( imageReq.getImageResolution() );
- imageEntity.setXResolution( imageReq.getXResolution() );
- imageEntity.setYResolution( imageReq.getYResolution() );
- imageEntity.setResolutionUnits( imageReq.getResolutionUnits() );
- imageEntity.setFocalDistance( imageReq.getFocalDistance() );
- imageEntity.setFocalDistance35( imageReq.getFocalDistance35() );
- imageEntity.setShootingTime( imageReq.getShootingTime() );
- imageEntity.setCameraManufacturer( imageReq.getCameraManufacturer() );
- imageEntity.setCameraModel( imageReq.getCameraModel() );
- imageEntity.setLongitude( imageReq.getLongitude() );
- imageEntity.setLatitude( imageReq.getLatitude() );
- imageEntity.setAltitude( imageReq.getAltitude() );
- imageEntity.setGPS( imageReq.getGPS() );
- imageEntity.setImagePath( imageReq.getImagePath() );
-
- return imageEntity;
- }
-
- protected ImageSimpleReq outWorkDefectReqToImageSimpleReq(OutWorkDefectReq outWorkDefectReq) {
- if ( outWorkDefectReq == null ) {
- return null;
- }
-
- ImageSimpleReq imageSimpleReq = new ImageSimpleReq();
-
- imageSimpleReq.setPartId( outWorkDefectReq.getPartId() );
- imageSimpleReq.setImagePath( outWorkDefectReq.getImagePath() );
-
- return imageSimpleReq;
- }
-
- protected InsuranceAttachResp insuranceInfoEntityToInsuranceAttachResp(InsuranceInfoEntity insuranceInfoEntity) {
- if ( insuranceInfoEntity == null ) {
- return null;
- }
-
- InsuranceAttachResp insuranceAttachResp = new InsuranceAttachResp();
-
- insuranceAttachResp.setInsuranceInfoId( insuranceInfoEntity.getInsuranceInfoId() );
- insuranceAttachResp.setUserId( insuranceInfoEntity.getUserId() );
- insuranceAttachResp.setName( insuranceInfoEntity.getName() );
- insuranceAttachResp.setUserCode( insuranceInfoEntity.getUserCode() );
- insuranceAttachResp.setAttachInfoId( insuranceInfoEntity.getAttachInfoId() );
- insuranceAttachResp.setRemark( insuranceInfoEntity.getRemark() );
- insuranceAttachResp.setCreateTime( insuranceInfoEntity.getCreateTime() );
-
- return insuranceAttachResp;
- }
-
- protected WorkShiftListResp workShiftEntityToWorkShiftListResp(WorkShiftEntity workShiftEntity) {
- if ( workShiftEntity == null ) {
- return null;
- }
-
- WorkShiftListResp workShiftListResp = new WorkShiftListResp();
-
- workShiftListResp.setWorkShiftId( workShiftEntity.getWorkShiftId() );
- workShiftListResp.setWorkShiftName( workShiftEntity.getWorkShiftName() );
- workShiftListResp.setWorkTimeStart( workShiftEntity.getWorkTimeStart() );
- workShiftListResp.setWorkTimeEnd( workShiftEntity.getWorkTimeEnd() );
- workShiftListResp.setStatus( workShiftEntity.getStatus() );
- workShiftListResp.setCreateBy( workShiftEntity.getCreateBy() );
- workShiftListResp.setUpdateTime( workShiftEntity.getUpdateTime() );
-
- return workShiftListResp;
- }
-
- protected InspectionReportSchemeInfo checkSchemeEntityToInspectionReportSchemeInfo(CheckSchemeEntity checkSchemeEntity) {
- if ( checkSchemeEntity == null ) {
- return null;
- }
-
- InspectionReportSchemeInfo inspectionReportSchemeInfo = new InspectionReportSchemeInfo();
-
- inspectionReportSchemeInfo.setCheckMethod( checkSchemeEntity.getCheckMethod() );
-
- return inspectionReportSchemeInfo;
- }
-
- protected AttendanceRecordResp attendanceRecordEntityToAttendanceRecordResp(AttendanceRecordEntity attendanceRecordEntity) {
- if ( attendanceRecordEntity == null ) {
- return null;
- }
-
- AttendanceRecordResp attendanceRecordResp = new AttendanceRecordResp();
-
- attendanceRecordResp.setRecordId( attendanceRecordEntity.getRecordId() );
- attendanceRecordResp.setUserId( attendanceRecordEntity.getUserId() );
- attendanceRecordResp.setRecordType( attendanceRecordEntity.getRecordType() );
- attendanceRecordResp.setAttendanceDate( attendanceRecordEntity.getAttendanceDate() );
- attendanceRecordResp.setRecordTime( attendanceRecordEntity.getRecordTime() );
- attendanceRecordResp.setRecordImage( attendanceRecordEntity.getRecordImage() );
- attendanceRecordResp.setRecordPosition( attendanceRecordEntity.getRecordPosition() );
- attendanceRecordResp.setRecordPositionLabel( attendanceRecordEntity.getRecordPositionLabel() );
-
- return attendanceRecordResp;
- }
-}
-
diff --git a/core/src/main/java/com/dite/znpt/domain/AuditableEntity.java b/core/src/main/java/com/dite/znpt/domain/AuditableEntity.java
index 0eb68a1..094855a 100644
--- a/core/src/main/java/com/dite/znpt/domain/AuditableEntity.java
+++ b/core/src/main/java/com/dite/znpt/domain/AuditableEntity.java
@@ -1,20 +1,16 @@
package com.dite.znpt.domain;
import com.alibaba.excel.annotation.ExcelIgnore;
-import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
-import io.swagger.annotations.ApiParam;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
-import lombok.experimental.SuperBuilder;
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;
-import java.util.List;
/**
* @description: 统一定义顶层Entity实体审计 基类
@@ -41,11 +37,6 @@ public class AuditableEntity implements Serializable {
@ApiModelProperty(value = "修改人id", hidden = true)
private LocalDateTime updateTime;
- @ExcelIgnore
- @ApiModelProperty(value = "id集合", example = "[]", notes = "id集合")
- @TableField(exist = false)
- private List idList;
-
@ExcelIgnore
@ApiModelProperty(value = "当前页", example = "1", notes = "0")
@TableField(exist = false)
diff --git a/core/src/main/java/com/dite/znpt/domain/dto/FolderDto.java b/core/src/main/java/com/dite/znpt/domain/dto/FolderDto.java
index d4c5f8e..a91faff 100644
--- a/core/src/main/java/com/dite/znpt/domain/dto/FolderDto.java
+++ b/core/src/main/java/com/dite/znpt/domain/dto/FolderDto.java
@@ -1,15 +1,15 @@
-package com.dite.znpt.domain.dto;
-
-import io.swagger.annotations.ApiModel;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-@ApiModel("接受文件夹参数")
-public class FolderDto {
- private String name = "tom";
- private Long parentId = 0L;
-}
+package com.dite.znpt.domain.dto;
+
+import io.swagger.annotations.ApiModel;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("接受文件夹参数")
+public class FolderDto {
+ private String name = "tom";
+ private Long parentId = 0L;
+}
diff --git a/core/src/main/java/com/dite/znpt/domain/dto/RegulationConfirmDTO.java b/core/src/main/java/com/dite/znpt/domain/dto/RegulationConfirmDTO.java
new file mode 100644
index 0000000..63b99e1
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/domain/dto/RegulationConfirmDTO.java
@@ -0,0 +1,18 @@
+package com.dite.znpt.domain.dto;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.AllArgsConstructor;
+
+/**
+ * 制度确认DTO
+ * @author wangna
+ * @date 2025/07/29
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class RegulationConfirmDTO {
+
+ private Boolean agreeTerms = true; // 是否同意条款,默认为true
+}
\ No newline at end of file
diff --git a/core/src/main/java/com/dite/znpt/domain/dto/RegulationTypeRequest.java b/core/src/main/java/com/dite/znpt/domain/dto/RegulationTypeRequest.java
new file mode 100644
index 0000000..0c99771
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/domain/dto/RegulationTypeRequest.java
@@ -0,0 +1,27 @@
+package com.dite.znpt.domain.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author wangna
+ * @date 2025/07/29
+ * @Description: 制度类型请求DTO
+ */
+@Data
+@ApiModel(value = "RegulationTypeRequest", description = "制度类型请求")
+public class RegulationTypeRequest {
+
+ @ApiModelProperty("类型名称")
+ private String typeName;
+
+ @ApiModelProperty("排序顺序")
+ private Integer sortOrder;
+
+ @ApiModelProperty("是否启用")
+ private String isEnabled;
+
+ @ApiModelProperty("备注")
+ private String remark;
+}
\ No newline at end of file
diff --git a/core/src/main/java/com/dite/znpt/domain/entity/AttachInfoEntity.java b/core/src/main/java/com/dite/znpt/domain/entity/AttachInfoEntity.java
index 5e1fb8c..ad09e56 100644
--- a/core/src/main/java/com/dite/znpt/domain/entity/AttachInfoEntity.java
+++ b/core/src/main/java/com/dite/znpt/domain/entity/AttachInfoEntity.java
@@ -43,6 +43,10 @@ public class AttachInfoEntity extends AuditableEntity implements Serializable {
@TableField("business_type")
private String businessType;
+ @ApiModelProperty("文件名")
+ @TableField("file_name")
+ private String fileName;
+
@ApiModelProperty("文件类型")
@TableField("file_type")
private String fileType;
diff --git a/core/src/main/java/com/dite/znpt/domain/entity/AutoExpirationConfigEntity.java b/core/src/main/java/com/dite/znpt/domain/entity/AutoExpirationConfigEntity.java
new file mode 100644
index 0000000..7d9f608
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/domain/entity/AutoExpirationConfigEntity.java
@@ -0,0 +1,84 @@
+package com.dite.znpt.domain.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.dite.znpt.domain.AuditableEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @author System
+ * @date 2025/1/1
+ * @description 自动到期检测配置实体
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("auto_expiration_config")
+@ApiModel(value="AutoExpirationConfigEntity对象", description="自动到期检测配置")
+public class AutoExpirationConfigEntity extends AuditableEntity implements Serializable {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("配置ID")
+ @TableId(value = "config_id", type = IdType.ASSIGN_UUID)
+ private String configId;
+
+ @ApiModelProperty("表名")
+ @TableField("table_name")
+ private String tableName;
+
+ @ApiModelProperty("表描述")
+ @TableField("table_desc")
+ private String tableDesc;
+
+ @ApiModelProperty("主键字段")
+ @TableField("primary_key_field")
+ private String primaryKeyField;
+
+ @ApiModelProperty("到期时间字段")
+ @TableField("expire_date_field")
+ private String expireDateField;
+
+ @ApiModelProperty("关联用户字段")
+ @TableField("user_id_field")
+ private String userIdField;
+
+ @ApiModelProperty("用户姓名字段")
+ @TableField("user_name_field")
+ private String userNameField;
+
+ @ApiModelProperty("业务名称字段")
+ @TableField("business_name_field")
+ private String businessNameField;
+
+ @ApiModelProperty("提前提醒天数")
+ @TableField("remind_days")
+ private Integer remindDays;
+
+ @ApiModelProperty("是否启用(0-禁用,1-启用)")
+ @TableField("enabled")
+ private String enabled;
+
+ @ApiModelProperty("备注")
+ @TableField("remark")
+ private String remark;
+
+ @ApiModelProperty("删除标志(0代表存在,1代表删除)")
+ @TableField("del_flag")
+ private String delFlag;
+
+ /**
+ * 保存前处理
+ */
+ public void preSave() {
+ // 可以在这里添加保存前的逻辑处理
+ }
+}
\ No newline at end of file
diff --git a/core/src/main/java/com/dite/znpt/domain/entity/BiddingInfoEntity.java b/core/src/main/java/com/dite/znpt/domain/entity/BiddingInfoEntity.java
new file mode 100644
index 0000000..349ebbd
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/domain/entity/BiddingInfoEntity.java
@@ -0,0 +1,63 @@
+package com.dite.znpt.domain.entity;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.dite.znpt.domain.AuditableEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * @author Bear.G
+ * @date 2025/7/28/周一 15:42
+ * @description
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("bidding_info")
+@ApiModel(value="BiddingInfoEntity对象", description="招标信息表")
+public class BiddingInfoEntity extends AuditableEntity implements Serializable {
+
+ @Serial
+ private static final long serialVersionUID = -2451841606051749490L;
+
+ @ApiModelProperty("招标信息id")
+ @TableId(type = IdType.ASSIGN_UUID)
+ private String biddingInfoId;
+
+ @ApiModelProperty("招标项目")
+ private String biddingProject;
+
+ @ApiModelProperty("招标公司")
+ private String biddingCompany;
+
+ @ApiModelProperty("招标金额")
+ private BigDecimal biddingAmount;
+
+ @ApiModelProperty("招标截止时间")
+ private String biddingDeadline;
+
+ @ApiModelProperty("招标信息录入时间")
+ private LocalDateTime infoEntryTime;
+
+ @ApiModelProperty("招标信息来源")
+ private String source;
+
+ @ApiModelProperty("招标信息来源网址")
+ private String sourceWebsite;
+
+ @ApiModelProperty("招标文件id")
+ private String biddingFileId;
+
+ @ApiModelProperty("状态:0-待报名,1-已报名")
+ private String status;
+
+}
diff --git a/core/src/main/java/com/dite/znpt/domain/entity/ContractEntity.java b/core/src/main/java/com/dite/znpt/domain/entity/ContractEntity.java
index 3f1627d..e33d747 100644
--- a/core/src/main/java/com/dite/znpt/domain/entity/ContractEntity.java
+++ b/core/src/main/java/com/dite/znpt/domain/entity/ContractEntity.java
@@ -1,17 +1,20 @@
package com.dite.znpt.domain.entity;
-import java.math.BigDecimal;
-import java.util.Date;
-import java.io.Serial;
-import java.io.Serializable;
-
-import com.baomidou.mybatisplus.annotation.*;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
import com.dite.znpt.domain.AuditableEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
-import com.alibaba.excel.annotation.ExcelProperty;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
/**
* @author huise23
@@ -82,6 +85,11 @@ public class ContractEntity extends AuditableEntity implements Serializable {
@TableField("payment_date")
private Date paymentDate;
+ @ExcelProperty("履约时间期限")
+ @ApiModelProperty("履约时间期限")
+ @TableField("performance_deadline")
+ private Date performanceDeadline;
+
@ExcelProperty("付款地址/交付地址")
@ApiModelProperty("付款地址/交付地址")
@TableField("payment_address")
@@ -106,5 +114,10 @@ public class ContractEntity extends AuditableEntity implements Serializable {
@ApiModelProperty("合同状态")
@TableField("contract_status")
private String contractStatus;
+
+ @ExcelProperty("合同内容")
+ @ApiModelProperty("合同内容")
+ @TableField("contract_text")
+ private String contractText;
}
diff --git a/core/src/main/java/com/dite/znpt/domain/entity/EquipmentApprovalEntity.java b/core/src/main/java/com/dite/znpt/domain/entity/EquipmentApprovalEntity.java
new file mode 100644
index 0000000..69eded6
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/domain/entity/EquipmentApprovalEntity.java
@@ -0,0 +1,91 @@
+package com.dite.znpt.domain.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.dite.znpt.domain.AuditableEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * @author Bear.G
+ * @date 2025/1/8/周三 17:26
+ * @description 设备审批实体
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("equipment_approval")
+@ApiModel(value="EquipmentApprovalEntity对象", description="设备审批信息表")
+public class EquipmentApprovalEntity extends AuditableEntity implements Serializable {
+ private static final long serialVersionUID = -6665040704562461286L;
+
+ @ApiModelProperty("审批ID")
+ @TableId(type = IdType.ASSIGN_ID)
+ private String approvalId;
+
+ @ApiModelProperty("设备ID")
+ private String equipmentId;
+
+ @ApiModelProperty("设备名称")
+ private String equipmentName;
+
+ @ApiModelProperty("设备类型")
+ private String equipmentType;
+
+ @ApiModelProperty("设备型号")
+ private String equipmentModel;
+
+ @ApiModelProperty("品牌")
+ private String brand;
+
+ @ApiModelProperty("供应商名称")
+ private String supplierName;
+
+ @ApiModelProperty("采购价格")
+ private BigDecimal purchasePrice;
+
+ @ApiModelProperty("总价")
+ private BigDecimal totalPrice;
+
+ @ApiModelProperty("数量")
+ private Integer quantity;
+
+ @ApiModelProperty("申请人")
+ private String applicantName;
+
+ @ApiModelProperty("申请人ID")
+ private String applicantId;
+
+ @ApiModelProperty("申请时间")
+ private LocalDateTime applyTime;
+
+ @ApiModelProperty("申请原因")
+ private String applyReason;
+
+ @ApiModelProperty("业务类型,PROCUREMENT-采购,BORROW-借用,RETURN-归还")
+ private String businessType;
+
+ @ApiModelProperty("审批状态,PENDING-待审批,APPROVED-已通过,REJECTED-已拒绝")
+ private String approvalStatus;
+
+ @ApiModelProperty("审批人")
+ private String approverName;
+
+ @ApiModelProperty("审批人ID")
+ private String approverId;
+
+ @ApiModelProperty("审批时间")
+ private LocalDateTime approvalTime;
+
+ @ApiModelProperty("审批意见")
+ private String approvalComment;
+
+ @ApiModelProperty("删除标志(0代表存在 1代表删除)")
+ @TableLogic
+ private String delFlag;
+}
diff --git a/core/src/main/java/com/dite/znpt/domain/entity/EquipmentEntity.java b/core/src/main/java/com/dite/znpt/domain/entity/EquipmentEntity.java
index 098ae58..4224af2 100644
--- a/core/src/main/java/com/dite/znpt/domain/entity/EquipmentEntity.java
+++ b/core/src/main/java/com/dite/znpt/domain/entity/EquipmentEntity.java
@@ -7,8 +7,9 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
-import java.io.Serial;
import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
/**
* @author Bear.G
@@ -20,13 +21,15 @@ import java.io.Serializable;
@TableName("equipment")
@ApiModel(value="EquipmentEntity对象", description="设备信息表")
public class EquipmentEntity extends AuditableEntity implements Serializable {
- @Serial
private static final long serialVersionUID = -6665040704562461286L;
@ApiModelProperty("设备id")
@TableId(type = IdType.ASSIGN_ID)
private String equipmentId;
+ @ApiModelProperty("资产编号")
+ private String assetCode;
+
@ApiModelProperty("设备名称")
private String equipmentName;
@@ -45,6 +48,165 @@ public class EquipmentEntity extends AuditableEntity implements Serializable {
@ApiModelProperty("设备序列号")
private String equipmentSn;
+ @ApiModelProperty("品牌")
+ private String brand;
+
+ @ApiModelProperty("配置规格/参数")
+ private String specification;
+
+ @ApiModelProperty("位置状态")
+ private String locationStatus;
+
+ @ApiModelProperty("设备当前物理位置")
+ private String physicalLocation;
+
+ @ApiModelProperty("负责人")
+ private String responsiblePerson;
+
+ @ApiModelProperty("健康状态")
+ private String healthStatus;
+
+ @ApiModelProperty("采购时间")
+ private LocalDateTime purchaseTime;
+
+ @ApiModelProperty("入库时间")
+ private LocalDateTime inStockTime;
+
+ @ApiModelProperty("启用时间")
+ private LocalDateTime activationTime;
+
+ @ApiModelProperty("预计报废时间")
+ private LocalDateTime expectedScrapTime;
+
+ @ApiModelProperty("实际报废时间")
+ private LocalDateTime actualScrapTime;
+
+ @ApiModelProperty("状态变更时间")
+ private LocalDateTime statusChangeTime;
+
+ @ApiModelProperty("采购订单")
+ private String purchaseOrder;
+
+ @ApiModelProperty("供应商名称")
+ private String supplierName;
+
+ // 移除采购价格字段,使用单价和总价替代
+ // @ApiModelProperty("采购价格")
+ // private BigDecimal purchasePrice;
+
+ @ApiModelProperty("当前净值")
+ private BigDecimal currentNetValue;
+
+ @ApiModelProperty("折旧方法")
+ private String depreciationMethod;
+
+ @ApiModelProperty("折旧年限")
+ private Integer depreciationYears;
+
+ @ApiModelProperty("残值")
+ private BigDecimal salvageValue;
+
+ @ApiModelProperty("保修截止日期")
+ private LocalDateTime warrantyExpireDate;
+
+ @ApiModelProperty("上次维护日期")
+ private LocalDateTime lastMaintenanceDate;
+
+ @ApiModelProperty("下次维护日期")
+ private LocalDateTime nextMaintenanceDate;
+
+ @ApiModelProperty("维护人员")
+ private String maintenancePerson;
+
+ @ApiModelProperty("库存条码")
+ private String inventoryBarcode;
+
+ @ApiModelProperty("资产备注")
+ private String assetRemark;
+
+ @ApiModelProperty("次户号")
+ private String accountNumber;
+
+ @ApiModelProperty("数量")
+ private Integer quantity;
+
+ @ApiModelProperty("单价")
+ private BigDecimal unitPrice;
+
+ @ApiModelProperty("总价")
+ private BigDecimal totalPrice;
+
+ // 移除备用状态字段,使用现有的 location_status 字段
+ // @ApiModelProperty("备用状态")
+ // private String spareStatus;
+
+ @ApiModelProperty("盘点依据")
+ private String inventoryBasis;
+
+ @ApiModelProperty("动态记录")
+ private String dynamicRecord;
+
+ // 移除认证状态字段,使用现有的 health_status 字段
+ // @ApiModelProperty("认证状态")
+ // private String certificationStatus;
+
+ @ApiModelProperty("使用部门/人")
+ private String usingDepartment;
+
+ @ApiModelProperty("领用时间")
+ private LocalDateTime borrowingTime;
+
+ @ApiModelProperty("归还时间")
+ private LocalDateTime returnTime;
+
+ @ApiModelProperty("出库时间")
+ private LocalDateTime outStockTime;
+
+ @ApiModelProperty("总使用时间")
+ private String totalUsageTime;
+
+ @ApiModelProperty("折旧率")
+ private BigDecimal depreciationRate;
+
+ @ApiModelProperty("折旧方法说明")
+ private String depreciationMethodDesc;
+
+ @ApiModelProperty("发票")
+ private String invoice;
+
+ @ApiModelProperty("发票状态")
+ private String invoiceStatus;
+
+ @ApiModelProperty("附件")
+ private String attachments;
+
+ @ApiModelProperty("照片")
+ private String photos;
+
+ @ApiModelProperty("条码")
+ private String barcode;
+
+ @ApiModelProperty("导入人")
+ private String importer;
+
+ @ApiModelProperty("盘库时间/状态1")
+ private String inventoryTimeStatus1;
+
+ @ApiModelProperty("盘库时间/状态2")
+ private String inventoryTimeStatus2;
+
+ @ApiModelProperty("盘库时间/状态3")
+ private String inventoryTimeStatus3;
+
+ @ApiModelProperty("盘点时间/状态1")
+ private String inventoryCheckTimeStatus1;
+
+ @ApiModelProperty("盘点时间/状态2")
+ private String inventoryCheckTimeStatus2;
+
+ @ApiModelProperty("盘点时间/状态3")
+ private String inventoryCheckTimeStatus3;
+
@ApiModelProperty("当前使用记录id")
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String useRecordId;
diff --git a/core/src/main/java/com/dite/znpt/domain/entity/ExpirationResultEntity.java b/core/src/main/java/com/dite/znpt/domain/entity/ExpirationResultEntity.java
new file mode 100644
index 0000000..fb2fc23
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/domain/entity/ExpirationResultEntity.java
@@ -0,0 +1,85 @@
+package com.dite.znpt.domain.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.dite.znpt.domain.AuditableEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.time.LocalDate;
+
+/**
+ * @author System
+ * @date 2025/1/1
+ * @description 到期检测结果实体
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("expiration_result")
+@ApiModel(value="ExpirationResultEntity对象", description="到期检测结果")
+public class ExpirationResultEntity extends AuditableEntity implements Serializable {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("结果ID")
+ @TableId(value = "result_id", type = IdType.ASSIGN_UUID)
+ private String resultId;
+
+ @ApiModelProperty("配置ID")
+ @TableField("config_id")
+ private String configId;
+
+ @ApiModelProperty("表名")
+ @TableField("table_name")
+ private String tableName;
+
+ @ApiModelProperty("业务ID")
+ @TableField("business_id")
+ private String businessId;
+
+ @ApiModelProperty("业务名称")
+ @TableField("business_name")
+ private String businessName;
+
+ @ApiModelProperty("关联用户ID")
+ @TableField("user_id")
+ private String userId;
+
+ @ApiModelProperty("关联用户姓名")
+ @TableField("user_name")
+ private String userName;
+
+ @ApiModelProperty("到期日期")
+ @TableField("expire_date")
+ private LocalDate expireDate;
+
+ @ApiModelProperty("剩余天数")
+ @TableField("remaining_days")
+ private Integer remainingDays;
+
+ @ApiModelProperty("状态(0-正常,1-即将到期,2-已到期)")
+ @TableField("status")
+ private String status;
+
+ @ApiModelProperty("检测时间")
+ @TableField("check_time")
+ private java.time.LocalDateTime checkTime;
+
+ @ApiModelProperty("删除标志(0代表存在,1代表删除)")
+ @TableField("del_flag")
+ private String delFlag;
+
+ /**
+ * 保存前处理
+ */
+ public void preSave() {
+ // 可以在这里添加保存前的逻辑处理
+ }
+}
\ No newline at end of file
diff --git a/core/src/main/java/com/dite/znpt/domain/entity/OutbidInfoEntity.java b/core/src/main/java/com/dite/znpt/domain/entity/OutbidInfoEntity.java
new file mode 100644
index 0000000..61230b8
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/domain/entity/OutbidInfoEntity.java
@@ -0,0 +1,57 @@
+package com.dite.znpt.domain.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.dite.znpt.domain.AuditableEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * @author Bear.G
+ * @date 2025/7/28/周一 15:44
+ * @description
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("outbid_info")
+@ApiModel(value="OutbidInfoEntity对象", description="中标通知信息表")
+public class OutbidInfoEntity extends AuditableEntity implements Serializable {
+
+ @Serial
+ private static final long serialVersionUID = 6941283868242292970L;
+
+ @ApiModelProperty("中标通知信息id")
+ @TableId(type = IdType.ASSIGN_UUID)
+ private String outbidInfoId;
+
+ @ApiModelProperty("招标信息id")
+ private String biddingInfoId;
+
+ @ApiModelProperty("中标金额,单位元,精确到分")
+ private BigDecimal outbidAmount;
+
+ @ApiModelProperty("工期,单位天")
+ private Integer duration;
+
+ @ApiModelProperty("中标通知日期")
+ private LocalDateTime outbidNotifyDate;
+
+ @ApiModelProperty("中标通知文件")
+ private String outbidNoticeFileId;
+
+ @ApiModelProperty("状态")
+ private String status;
+
+ @ApiModelProperty("删除标志(0代表存在 1代表删除)")
+ @TableLogic(value = "0", delval = "1")
+ private String delFlag;
+}
diff --git a/core/src/main/java/com/dite/znpt/domain/entity/PostEntity.java b/core/src/main/java/com/dite/znpt/domain/entity/PostEntity.java
index 4d93834..dcfcdb9 100644
--- a/core/src/main/java/com/dite/znpt/domain/entity/PostEntity.java
+++ b/core/src/main/java/com/dite/znpt/domain/entity/PostEntity.java
@@ -1,6 +1,5 @@
package com.dite.znpt.domain.entity;
-import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
@@ -32,6 +31,10 @@ public class PostEntity extends AuditableEntity implements Serializable {
@TableId(value = "post_id", type = IdType.ASSIGN_UUID)
private String postId;
+ @ApiModelProperty("部门id")
+ @TableField("dept_id")
+ private String deptId;
+
@ApiModelProperty("岗位名称")
@TableField("post_name")
private String postName;
diff --git a/core/src/main/java/com/dite/znpt/domain/entity/ProjectBudgetInfoEntity.java b/core/src/main/java/com/dite/znpt/domain/entity/ProjectBudgetInfoEntity.java
index 7b5e4bb..83be724 100644
--- a/core/src/main/java/com/dite/znpt/domain/entity/ProjectBudgetInfoEntity.java
+++ b/core/src/main/java/com/dite/znpt/domain/entity/ProjectBudgetInfoEntity.java
@@ -30,7 +30,7 @@ public class ProjectBudgetInfoEntity extends AuditableEntity implements Serializ
@ExcelProperty("主键")
@ApiModelProperty("主键")
- @TableId(value = "budget_id", type = IdType.ASSIGN_ID)
+ @TableId(value = "budget_id", type = IdType.AUTO)
private String budgetId;
@ExcelProperty("项目id")
@@ -43,13 +43,8 @@ public class ProjectBudgetInfoEntity extends AuditableEntity implements Serializ
@TableField("budget_name")
private String budgetName;
- @ExcelProperty("预算类型")
- @ApiModelProperty("预算类型")
- @TableField("budget_type")
- private String budgetType;
-
- @ExcelProperty("预算金额(万元)")
- @ApiModelProperty("预算金额(万元)")
+ @ExcelProperty("预算花费金额")
+ @ApiModelProperty("预算花费金额")
@TableField("budget_amount")
private Double budgetAmount;
@@ -57,5 +52,10 @@ public class ProjectBudgetInfoEntity extends AuditableEntity implements Serializ
@ApiModelProperty("预算说明")
@TableField("budget_desc")
private String budgetDesc;
+
+ @ExcelProperty("附件")
+ @ApiModelProperty("附件")
+ @TableField("attach")
+ private String attach;
}
diff --git a/core/src/main/java/com/dite/znpt/domain/entity/ProjectDailyReportEntity.java b/core/src/main/java/com/dite/znpt/domain/entity/ProjectDailyReportEntity.java
new file mode 100644
index 0000000..f995b26
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/domain/entity/ProjectDailyReportEntity.java
@@ -0,0 +1,52 @@
+package com.dite.znpt.domain.entity;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.dite.znpt.domain.AuditableEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.time.LocalDate;
+
+/**
+ * @author huise23
+ * @date 2025/07/27 19:51
+ * @Description: 项目日报信息表实体类
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("project_daily_report")
+@ApiModel(value="ProjectDailyReportEntity对象", description="项目日报信息表")
+public class ProjectDailyReportEntity extends AuditableEntity implements Serializable {
+
+ @Serial
+ private static final long serialVersionUID = -88597301057742621L;
+
+ @ExcelProperty("主键")
+ @ApiModelProperty("主键")
+ @TableId(value = "report_id", type = IdType.ASSIGN_ID)
+ private String reportId;
+
+ @ExcelProperty("项目id")
+ @ApiModelProperty("项目id")
+ @TableField("project_id")
+ private String projectId;
+
+ @ExcelProperty("日报日期")
+ @ApiModelProperty("日报日期")
+ @TableField("report_date")
+ private LocalDate reportDate;
+
+ @ExcelProperty("日报提交人")
+ @ApiModelProperty("日报提交人")
+ @TableField("submit_user")
+ private String submitUser;
+}
+
diff --git a/core/src/main/java/com/dite/znpt/domain/entity/ProjectEntity.java b/core/src/main/java/com/dite/znpt/domain/entity/ProjectEntity.java
index bb6acad..943620b 100644
--- a/core/src/main/java/com/dite/znpt/domain/entity/ProjectEntity.java
+++ b/core/src/main/java/com/dite/znpt/domain/entity/ProjectEntity.java
@@ -1,18 +1,19 @@
package com.dite.znpt.domain.entity;
-import java.io.Serializable;
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-
-import com.baomidou.mybatisplus.annotation.*;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
import com.dite.znpt.domain.AuditableEntity;
-import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
-import com.alibaba.excel.annotation.ExcelProperty;
+
+import java.io.Serializable;
+import java.time.LocalDate;
/**
* @author huise23
@@ -100,24 +101,31 @@ public class ProjectEntity extends AuditableEntity implements Serializable {
@TableField("turbine_model")
private String turbineModel;
- @ApiModelProperty("施工人员id")
+ // 人员管理已迁移到 project_member 表
+ // 以下字段保留用于向后兼容,但建议使用 ProjectMemberService 进行人员管理
+ @ApiModelProperty("施工人员id(已废弃,请使用ProjectMemberService)")
@TableField("constructor_ids")
+ @Deprecated
private String constructorIds;
- @ApiModelProperty("安全员id")
+ @ApiModelProperty("安全员id(已废弃,请使用ProjectMemberService)")
@TableField("auditor_id")
+ @Deprecated
private String auditorId;
- @ApiModelProperty("质量员id")
+ @ApiModelProperty("质量员id(已废弃,请使用ProjectMemberService)")
@TableField("quality_officer_id")
+ @Deprecated
private String qualityOfficerId;
- @ApiModelProperty("项目经理id")
+ @ApiModelProperty("项目经理id(已废弃,请使用ProjectMemberService)")
@TableField("project_manager_id")
+ @Deprecated
private String projectManagerId;
- @ApiModelProperty("施工组长id")
+ @ApiModelProperty("施工组长id(已废弃,请使用ProjectMemberService)")
@TableField("construct_team_leader_id")
+ @Deprecated
private String constructTeamLeaderId;
@ApiModelProperty("技术方案图片,多个用逗号隔开")
@@ -168,8 +176,38 @@ public class ProjectEntity extends AuditableEntity implements Serializable {
@ApiModelProperty(value = "开始时间")
private LocalDate startDate;
-
+// 施工人员,安全经理,项目经理,商务,财务,高级管理员,项目远程顾问外部协作者,质量经理、现场经理及工作组长。
@ApiModelProperty(value = "结束时间")
private LocalDate endDate;
+
+ @ApiModelProperty("人工成本")
+ private Double laborCost;
+
+ @ApiModelProperty("设备摊销")
+ private Double equipmentAmortization;
+
+ @ApiModelProperty("奖金预提")
+ private Double bonusProvision;
+
+ @ApiModelProperty("交通食宿")
+ private Double transAccomMeals;
+
+ @ApiModelProperty("其他杂费")
+ private Double othersCost;
+
+ @ApiModelProperty("已用人工成本")
+ private Double useLaborCost;
+
+ @ApiModelProperty("已用设备摊销")
+ private Double useEquipmentAmortization;
+
+ @ApiModelProperty("已用奖金预提")
+ private Double useBonusProvision;
+
+ @ApiModelProperty("已用交通食宿")
+ private Double useTransAccomMeals;
+
+ @ApiModelProperty("已用其他杂费")
+ private Double useOthersCost;
}
diff --git a/core/src/main/java/com/dite/znpt/domain/entity/ProjectMemberEntity.java b/core/src/main/java/com/dite/znpt/domain/entity/ProjectMemberEntity.java
new file mode 100644
index 0000000..d3cc17a
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/domain/entity/ProjectMemberEntity.java
@@ -0,0 +1,99 @@
+package com.dite.znpt.domain.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.dite.znpt.domain.AuditableEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.time.LocalDate;
+
+/**
+ * @author wangna
+ * @date 2025/08/05
+ * @Description: 项目人员关联表实体类
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("project_member")
+@ApiModel(value="ProjectMemberEntity对象", description="项目人员关联表")
+public class ProjectMemberEntity extends AuditableEntity implements Serializable {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("关联ID")
+ @TableId(value = "member_id", type = IdType.ASSIGN_UUID)
+ private String memberId;
+
+ @ApiModelProperty("项目ID")
+ @TableField("project_id")
+ private String projectId;
+
+ @ApiModelProperty("机组ID(可选,关联到具体机组)")
+ @TableField("turbine_id")
+ private String turbineId;
+
+ @ApiModelProperty("任务组ID(可选,关联到具体任务组)")
+ @TableField("task_group_id")
+ private String taskGroupId;
+
+ @ApiModelProperty("任务ID(可选,关联到具体任务)")
+ @TableField("task_id")
+ private String taskId;
+
+ @ApiModelProperty("用户ID")
+ @TableField("user_id")
+ private String userId;
+
+ @ApiModelProperty("项目角色类型:PROJECT_MANAGER-项目经理,SAFETY_OFFICER-安全员,QUALITY_OFFICER-质量员,CONSTRUCTOR-施工人员,TEAM_LEADER-施工组长")
+ @TableField("role_type")
+ private String roleType;
+
+ @ApiModelProperty("具体岗位代码(如:GROUND_SERVICE-地勤,DRIVER-司机,ASCENDING-登高等)")
+ @TableField("job_code")
+ private String jobCode;
+
+ @ApiModelProperty("岗位描述")
+ @TableField("job_desc")
+ private String jobDesc;
+
+ @ApiModelProperty("加入时间")
+ @TableField("join_date")
+ private LocalDate joinDate;
+
+ @ApiModelProperty("离开时间")
+ @TableField("leave_date")
+ private LocalDate leaveDate;
+
+ @ApiModelProperty("状态:ACTIVE-在职,INACTIVE-离职,SUSPENDED-暂停")
+ @TableField("status")
+ private String status;
+
+ @ApiModelProperty("备注")
+ @TableField("remark")
+ private String remark;
+
+ // 非数据库字段,用于显示
+ @TableField(exist = false)
+ @ApiModelProperty("用户姓名")
+ private String userName;
+
+ @TableField(exist = false)
+ @ApiModelProperty("用户账号")
+ private String userAccount;
+
+ @TableField(exist = false)
+ @ApiModelProperty("角色类型描述")
+ private String roleTypeDesc;
+
+ @TableField(exist = false)
+ @ApiModelProperty("岗位代码描述")
+ private String jobCodeDesc;
+}
\ No newline at end of file
diff --git a/core/src/main/java/com/dite/znpt/domain/entity/RegulationConfirmationEntity.java b/core/src/main/java/com/dite/znpt/domain/entity/RegulationConfirmationEntity.java
new file mode 100644
index 0000000..aad8e25
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/domain/entity/RegulationConfirmationEntity.java
@@ -0,0 +1,66 @@
+package com.dite.znpt.domain.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.dite.znpt.domain.AuditableEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import com.alibaba.excel.annotation.ExcelProperty;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * @author wangna
+ * @date 2025/07/28
+ * @Description: 制度确认实体类
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("regulation_confirmation")
+@ApiModel(value="RegulationConfirmationEntity对象", description="制度确认")
+public class RegulationConfirmationEntity implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ExcelProperty("确认ID")
+ @ApiModelProperty("确认ID")
+ @TableId(value = "confirmation_id", type = IdType.ASSIGN_UUID)
+ private String confirmationId;
+
+ @ExcelProperty("制度ID")
+ @ApiModelProperty("制度ID")
+ @TableField("regulation_id")
+ private String regulationId;
+
+ @ExcelProperty("确认人ID")
+ @ApiModelProperty("确认人ID")
+ @TableField("confirmer_id")
+ private String confirmerId;
+
+ @ExcelProperty("确认人姓名")
+ @ApiModelProperty("确认人姓名")
+ @TableField("confirmer_name")
+ private String confirmerName;
+
+ @ExcelProperty("确认人部门")
+ @ApiModelProperty("确认人部门")
+ @TableField("confirmer_dept")
+ private String confirmerDept;
+
+ @ExcelProperty("确认状态")
+ @ApiModelProperty("确认状态:CONFIRMED-已确认")
+ @TableField("status")
+ private String status;
+
+ @ExcelProperty("确认时间")
+ @ApiModelProperty("确认时间")
+ @TableField("confirm_time")
+ private LocalDateTime confirmTime;
+
+ @ExcelProperty("删除标志(0代表存在,1代表删除)")
+ @ApiModelProperty("删除标志(0代表存在,1代表删除)")
+ @TableField("del_flag")
+ private String delFlag;
+}
\ No newline at end of file
diff --git a/core/src/main/java/com/dite/znpt/domain/entity/RegulationDraftEntity.java b/core/src/main/java/com/dite/znpt/domain/entity/RegulationDraftEntity.java
new file mode 100644
index 0000000..aaf7805
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/domain/entity/RegulationDraftEntity.java
@@ -0,0 +1,106 @@
+package com.dite.znpt.domain.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.dite.znpt.domain.AuditableEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import com.alibaba.excel.annotation.ExcelProperty;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * @author wangna
+ * @date 2025/07/28
+ * @Description: 制度草案实体类
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("regulation_draft")
+@ApiModel(value="RegulationDraftEntity对象", description="制度草案")
+public class RegulationDraftEntity extends AuditableEntity implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ExcelProperty("草案ID")
+ @ApiModelProperty("草案ID")
+ @TableId(value = "draft_id", type = IdType.ASSIGN_UUID)
+ private String draftId;
+
+ @ExcelProperty("制度标题")
+ @ApiModelProperty("制度标题")
+ @TableField("title")
+ private String title;
+
+ @ExcelProperty("制度内容")
+ @ApiModelProperty("制度内容")
+ @TableField("content")
+ private String content;
+
+ @ExcelProperty("制度类型")
+ @ApiModelProperty("制度类型")
+ @TableField("regulation_type")
+ private String regulationType;
+
+ @ExcelProperty("草案状态")
+ @ApiModelProperty("草案状态:DRAFT-草稿,REVIEWING-审核中,APPROVED-已通过,REJECTED-已拒绝")
+ @TableField("status")
+ private String status;
+
+ @ExcelProperty("创建人ID")
+ @ApiModelProperty("创建人ID")
+ @TableField("creator_id")
+ private String creatorId;
+
+ @ExcelProperty("创建人姓名")
+ @ApiModelProperty("创建人姓名")
+ @TableField("creator_name")
+ private String creatorName;
+
+ @ExcelProperty("审核人ID")
+ @ApiModelProperty("审核人ID")
+ @TableField("reviewer_id")
+ private String reviewerId;
+
+ @ExcelProperty("审核人姓名")
+ @ApiModelProperty("审核人姓名")
+ @TableField("reviewer_name")
+ private String reviewerName;
+
+ @ExcelProperty("审核时间")
+ @ApiModelProperty("审核时间")
+ @TableField("review_time")
+ private LocalDateTime reviewTime;
+
+ @ExcelProperty("审核意见")
+ @ApiModelProperty("审核意见")
+ @TableField("review_comment")
+ private String reviewComment;
+
+ @ExcelProperty("适用范围")
+ @ApiModelProperty("适用范围")
+ @TableField("scope")
+ private String scope;
+
+ @ExcelProperty("制度级别")
+ @ApiModelProperty("制度级别:HIGH-高级,MEDIUM-中级,LOW-低级")
+ @TableField("level")
+ private String level;
+
+ @ExcelProperty("版本号")
+ @ApiModelProperty("版本号")
+ @TableField("version")
+ private String version;
+
+ @ExcelProperty("备注")
+ @ApiModelProperty("备注")
+ @TableField("remark")
+ private String remark;
+
+ @ExcelProperty("删除标志(0代表存在,1代表删除)")
+ @ApiModelProperty("删除标志(0代表存在,1代表删除)")
+ @TableField("del_flag")
+ private String delFlag;
+}
\ No newline at end of file
diff --git a/core/src/main/java/com/dite/znpt/domain/entity/RegulationEntity.java b/core/src/main/java/com/dite/znpt/domain/entity/RegulationEntity.java
new file mode 100644
index 0000000..e3519a0
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/domain/entity/RegulationEntity.java
@@ -0,0 +1,105 @@
+package com.dite.znpt.domain.entity;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.dite.znpt.domain.AuditableEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * @author wangna
+ * @date 2025/07/28
+ * @Description: 制度规范仓库实体类
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("regulation")
+@ApiModel(value="RegulationEntity对象", description="制度规范仓库")
+public class RegulationEntity extends AuditableEntity implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ExcelProperty("制度ID")
+ @ApiModelProperty("制度ID")
+ @TableId(value = "regulation_id", type = IdType.ASSIGN_UUID)
+ private String regulationId;
+
+ @ExcelProperty("制度标题")
+ @ApiModelProperty("制度标题")
+ @TableField("title")
+ private String title;
+
+ @ExcelProperty("制度内容")
+ @ApiModelProperty("制度内容")
+ @TableField("content")
+ private String content;
+
+ @TableField(exist = false)
+ private String type;
+
+ @ExcelProperty("制度状态")
+ @ApiModelProperty("制度状态:DRAFT-草案,APPROVED-已公示,PUBLISHED-已发布,ARCHIVED-已归档")
+ @TableField("status")
+ private String status;
+
+ @ExcelProperty("发布时间")
+ @ApiModelProperty("发布时间")
+ @TableField("publish_time")
+ private LocalDateTime publishTime;
+
+ @ExcelProperty("生效时间")
+ @ApiModelProperty("生效时间")
+ @TableField("effective_time")
+ private LocalDateTime effectiveTime;
+
+ @ExcelProperty("失效时间")
+ @ApiModelProperty("失效时间")
+ @TableField("expire_time")
+ private LocalDateTime expireTime;
+
+ @ExcelProperty("适用范围")
+ @ApiModelProperty("适用范围")
+ @TableField("scope")
+ private String scope;
+
+ @ExcelProperty("制度级别")
+ @ApiModelProperty("制度级别:HIGH-高级,MEDIUM-中级,LOW-低级")
+ @TableField("level")
+ private String level;
+
+ @ExcelProperty("版本号")
+ @ApiModelProperty("版本号")
+ @TableField("version")
+ private String version;
+
+ @ExcelProperty("备注")
+ @ApiModelProperty("备注")
+ @TableField("remark")
+ private String remark;
+
+ @ExcelProperty("删除标志(0代表存在,1代表删除)")
+ @ApiModelProperty("删除标志(0代表存在,1代表删除)")
+ @TableField("del_flag")
+ private String delFlag;
+
+ @TableField(exist = false)
+ @ApiModelProperty("当前用户确认状态:pending-待确认,confirmed-已确认")
+ private String confirmStatus;
+
+ @TableField(exist = false)
+ @ApiModelProperty("创建人姓名")
+ private String createByName;
+
+ @ExcelProperty("制度类型")
+ @ApiModelProperty("制度类型")
+ @TableField("regulation_type")
+ private String regulationType;
+}
\ No newline at end of file
diff --git a/core/src/main/java/com/dite/znpt/domain/entity/RegulationProposalEntity.java b/core/src/main/java/com/dite/znpt/domain/entity/RegulationProposalEntity.java
new file mode 100644
index 0000000..bbf8c25
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/domain/entity/RegulationProposalEntity.java
@@ -0,0 +1,156 @@
+package com.dite.znpt.domain.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.dite.znpt.domain.AuditableEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import com.alibaba.excel.annotation.ExcelProperty;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * @author wangna
+ * @date 2025/07/28
+ * @Description: 制度提案实体类
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("regulation_proposal")
+@ApiModel(value="RegulationProposalEntity对象", description="制度提案")
+public class RegulationProposalEntity extends AuditableEntity implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ExcelProperty("提案ID")
+ @ApiModelProperty("提案ID")
+ @TableId(value = "proposal_id", type = IdType.ASSIGN_UUID)
+ private String proposalId;
+
+ @ExcelProperty("提案标题")
+ @ApiModelProperty("提案标题")
+ @TableField("title")
+ private String title;
+
+ @ExcelProperty("提案内容")
+ @ApiModelProperty("提案内容")
+ @TableField("content")
+ private String content;
+
+ @ExcelProperty("提案类型")
+ @ApiModelProperty("提案类型")
+ @TableField("proposal_type")
+ private String proposalType;
+
+ @ExcelProperty("提案状态")
+ @ApiModelProperty("提案状态:SUBMITTED-已提交,DISCUSSING-讨论中,APPROVED-已通过,REJECTED-已拒绝,CONVERTED-已转为草案")
+ @TableField("status")
+ private String status;
+
+ @ExcelProperty("提案人ID")
+ @ApiModelProperty("提案人ID")
+ @TableField("proposer_id")
+ private String proposerId;
+
+ @ExcelProperty("提案人姓名")
+ @ApiModelProperty("提案人姓名")
+ @TableField("proposer_name")
+ private String proposerName;
+
+ @ExcelProperty("提案人部门")
+ @ApiModelProperty("提案人部门")
+ @TableField("proposer_dept")
+ private String proposerDept;
+
+ @ExcelProperty("讨论组ID")
+ @ApiModelProperty("讨论组ID")
+ @TableField("discussion_group_id")
+ private String discussionGroupId;
+
+ @ExcelProperty("讨论组名称")
+ @ApiModelProperty("讨论组名称")
+ @TableField("discussion_group_name")
+ private String discussionGroupName;
+
+ @ExcelProperty("讨论开始时间")
+ @ApiModelProperty("讨论开始时间")
+ @TableField("discussion_start_time")
+ private LocalDateTime discussionStartTime;
+
+ @ExcelProperty("讨论结束时间")
+ @ApiModelProperty("讨论结束时间")
+ @TableField("discussion_end_time")
+ private LocalDateTime discussionEndTime;
+
+ @ExcelProperty("讨论状态")
+ @ApiModelProperty("讨论状态:NOT_STARTED-未开始,DISCUSSING-讨论中,FINISHED-已结束")
+ @TableField("discussion_status")
+ private String discussionStatus;
+
+ @ExcelProperty("支持人数")
+ @ApiModelProperty("支持人数")
+ @TableField("support_count")
+ private Integer supportCount;
+
+ @ExcelProperty("反对人数")
+ @ApiModelProperty("反对人数")
+ @TableField("oppose_count")
+ private Integer opposeCount;
+
+ @ExcelProperty("总参与人数")
+ @ApiModelProperty("总参与人数")
+ @TableField("total_participants")
+ private Integer totalParticipants;
+
+ @ExcelProperty("审核人ID")
+ @ApiModelProperty("审核人ID")
+ @TableField("reviewer_id")
+ private String reviewerId;
+
+ @ExcelProperty("审核人姓名")
+ @ApiModelProperty("审核人姓名")
+ @TableField("reviewer_name")
+ private String reviewerName;
+
+ @ExcelProperty("审核时间")
+ @ApiModelProperty("审核时间")
+ @TableField("review_time")
+ private LocalDateTime reviewTime;
+
+ @ExcelProperty("审核意见")
+ @ApiModelProperty("审核意见")
+ @TableField("review_comment")
+ private String reviewComment;
+
+ @ExcelProperty("转为草案ID")
+ @ApiModelProperty("转为草案ID")
+ @TableField("converted_draft_id")
+ private String convertedDraftId;
+
+ @ExcelProperty("适用范围")
+ @ApiModelProperty("适用范围")
+ @TableField("scope")
+ private String scope;
+
+ @ExcelProperty("制度级别")
+ @ApiModelProperty("制度级别:HIGH-高级,MEDIUM-中级,LOW-低级")
+ @TableField("level")
+ private String level;
+
+ @ExcelProperty("紧急程度")
+ @ApiModelProperty("紧急程度:HIGH-高,MEDIUM-中,LOW-低")
+ @TableField("urgency_level")
+ private String urgencyLevel;
+
+ @ExcelProperty("备注")
+ @ApiModelProperty("备注")
+ @TableField("remark")
+ private String remark;
+
+ @ExcelProperty("删除标志(0代表存在,1代表删除)")
+ @ApiModelProperty("删除标志(0代表存在,1代表删除)")
+ @TableField("del_flag")
+ private String delFlag;
+}
\ No newline at end of file
diff --git a/core/src/main/java/com/dite/znpt/domain/entity/RegulationTypeEntity.java b/core/src/main/java/com/dite/znpt/domain/entity/RegulationTypeEntity.java
new file mode 100644
index 0000000..eb8154c
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/domain/entity/RegulationTypeEntity.java
@@ -0,0 +1,59 @@
+package com.dite.znpt.domain.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.dite.znpt.domain.AuditableEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import com.alibaba.excel.annotation.ExcelProperty;
+
+import java.io.Serializable;
+
+/**
+ * @author wangna
+ * @date 2025/07/29
+ * @Description: 制度类型实体类
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("regulation_type")
+@ApiModel(value="RegulationTypeEntity对象", description="制度类型")
+public class RegulationTypeEntity extends AuditableEntity implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ExcelProperty("类型ID")
+ @ApiModelProperty("类型ID")
+ @TableId(value = "type_id", type = IdType.ASSIGN_UUID)
+ private String typeId;
+
+ @ExcelProperty("类型名称")
+ @ApiModelProperty("类型名称")
+ @TableField("type_name")
+ private String typeName;
+
+ @ExcelProperty("是否启用")
+ @ApiModelProperty("是否启用(1-启用,0-禁用)")
+ @TableField("is_enabled")
+ private String isEnabled;
+
+ @ExcelProperty("排序顺序")
+ @ApiModelProperty("排序顺序")
+ @TableField("sort_order")
+ private Integer sortOrder;
+
+ @ExcelProperty("备注")
+ @ApiModelProperty("备注")
+ @TableField("remark")
+ private String remark;
+
+ @ExcelProperty("删除标志(0代表存在,1代表删除)")
+ @ApiModelProperty("删除标志(0代表存在,1代表删除)")
+ @TableField("del_flag")
+ private String delFlag;
+
+ @TableField(exist = false)
+ @ApiModelProperty("创建人姓名")
+ private String createrName;
+}
\ No newline at end of file
diff --git a/core/src/main/java/com/dite/znpt/domain/entity/TenderInfoEntity.java b/core/src/main/java/com/dite/znpt/domain/entity/TenderInfoEntity.java
new file mode 100644
index 0000000..29ad3e4
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/domain/entity/TenderInfoEntity.java
@@ -0,0 +1,63 @@
+package com.dite.znpt.domain.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.dite.znpt.domain.AuditableEntity;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * @author Bear.G
+ * @date 2025/7/28/周一 15:47
+ * @description
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("tender_info")
+@ApiModel(value="TenderInfoEntity对象", description="投标信息表")
+public class TenderInfoEntity extends AuditableEntity implements Serializable {
+
+ @Serial
+ private static final long serialVersionUID = -5677009089047831619L;
+
+ @ApiModelProperty("投标信息id")
+ @TableId(type = IdType.ASSIGN_UUID)
+ private String tenderInfoId;
+
+ @ApiModelProperty("招标信息id")
+ private String biddingInfoId;
+
+ @ApiModelProperty("投标金额")
+ private BigDecimal tenderAmount;
+
+ @ApiModelProperty("项目地址")
+ private String projectAddress;
+
+ @ApiModelProperty("项目类型")
+ private String projectType;
+
+ @ApiModelProperty("项目描述")
+ private String projectDescription;
+
+ @ApiModelProperty("投标负责人")
+ private String tenderManager;
+
+ @ApiModelProperty("投标负责人手机号")
+ private String tenderManagerPhone;
+
+ @ApiModelProperty("投标文件")
+ private String tenderFileId;
+
+ @ApiModelProperty("删除标志(0代表存在 1代表删除)")
+ @TableLogic(value = "0", delval = "1")
+ private String delFlag;
+}
diff --git a/core/src/main/java/com/dite/znpt/domain/mapper/EquipmentApprovalMapper.java b/core/src/main/java/com/dite/znpt/domain/mapper/EquipmentApprovalMapper.java
new file mode 100644
index 0000000..92a9818
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/domain/mapper/EquipmentApprovalMapper.java
@@ -0,0 +1,14 @@
+package com.dite.znpt.domain.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dite.znpt.domain.entity.EquipmentApprovalEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @author Bear.G
+ * @date 2025/1/8/周三 17:30
+ * @description 设备审批Mapper接口
+ */
+@Mapper
+public interface EquipmentApprovalMapper extends BaseMapper {
+}
diff --git a/core/src/main/java/com/dite/znpt/domain/page/PageBean.java b/core/src/main/java/com/dite/znpt/domain/page/PageBean.java
index e28d250..5a2992b 100644
--- a/core/src/main/java/com/dite/znpt/domain/page/PageBean.java
+++ b/core/src/main/java/com/dite/znpt/domain/page/PageBean.java
@@ -1,16 +1,15 @@
-package com.dite.znpt.domain.page;
-
-import io.swagger.annotations.ApiOperation;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.util.List;
-
-@Data
-@NoArgsConstructor
-@AllArgsConstructor
-public class PageBean {
- private Long total;
- private List> rows;
-}
+package com.dite.znpt.domain.page;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class PageBean {
+ private Long total;
+ private List> rows;
+}
diff --git a/core/src/main/java/com/dite/znpt/domain/vo/AttachInfoReq.java b/core/src/main/java/com/dite/znpt/domain/vo/AttachInfoReq.java
index 11d8200..be5ce0d 100644
--- a/core/src/main/java/com/dite/znpt/domain/vo/AttachInfoReq.java
+++ b/core/src/main/java/com/dite/znpt/domain/vo/AttachInfoReq.java
@@ -24,6 +24,9 @@ public class AttachInfoReq implements Serializable {
@ApiModelProperty("自定义路径")
private String userDefinedPath;
+ @ApiModelProperty("文件名称")
+ private String fileName;
+
@ApiModelProperty("文件类型")
private String fileType;
diff --git a/core/src/main/java/com/dite/znpt/domain/vo/AttachInfoResp.java b/core/src/main/java/com/dite/znpt/domain/vo/AttachInfoResp.java
index 027fea6..b56a7f7 100644
--- a/core/src/main/java/com/dite/znpt/domain/vo/AttachInfoResp.java
+++ b/core/src/main/java/com/dite/znpt/domain/vo/AttachInfoResp.java
@@ -32,6 +32,9 @@ public class AttachInfoResp implements Serializable {
@ApiModelProperty("附件路径")
private String attachPath;
+ @ApiModelProperty("文件名称")
+ private String fileName;
+
@ApiModelProperty("文件类型")
private String fileType;
diff --git a/core/src/main/java/com/dite/znpt/domain/vo/BiddingInfoReq.java b/core/src/main/java/com/dite/znpt/domain/vo/BiddingInfoReq.java
new file mode 100644
index 0000000..54e5aef
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/domain/vo/BiddingInfoReq.java
@@ -0,0 +1,69 @@
+package com.dite.znpt.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * @author Bear.G
+ * @date 2025/7/28/周一 16:18
+ * @description
+ */
+@Data
+@ApiModel("招标信息请求实体")
+public class BiddingInfoReq implements Serializable {
+ @Serial
+ private static final long serialVersionUID = 6967025339487392364L;
+ @ColumnWidth(40)
+ @ExcelProperty(index = 0, value = "招标项目")
+ @ApiModelProperty("招标项目")
+ @Size(max = 50, message = "招标项目不能超过50个字符")
+ private String biddingProject;
+
+ @ColumnWidth(40)
+ @ExcelProperty(index = 1, value = "招标公司")
+ @ApiModelProperty("招标公司")
+ @Size(max = 50, message = "招标公司不能超过50个字符")
+ private String biddingCompany;
+
+ @ColumnWidth(20)
+ @ExcelProperty(index = 2, value = "招标金额\n(单位元,精确到分)")
+ @ApiModelProperty("招标金额")
+ private BigDecimal biddingAmount;
+
+ @ColumnWidth(30)
+ @ExcelProperty(index = 3, value = "招标截止时间\n(yyyy-MM-dd HH:mm:ss)")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @ApiModelProperty("招标截止时间")
+ private LocalDateTime biddingDeadline;
+
+ @ColumnWidth(30)
+ @ExcelProperty(index = 4, value = "信息录入时间\n(yyyy-MM-dd HH:mm:ss)")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @ApiModelProperty("信息录入时间")
+ private LocalDateTime infoEntryTime;
+
+ @ColumnWidth(20)
+ @ExcelProperty(index = 5, value = "信息来源")
+ @ApiModelProperty("信息来源")
+ @NotBlank(message = "信息来源不能为空")
+ @Size(max = 50, message = "信息来源不能超过50个字符")
+ private String source;
+
+ @ColumnWidth(60)
+ @ExcelProperty(index = 6, value = "信息来源网址")
+ @ApiModelProperty("信息来源网址")
+ @NotBlank(message = "信息来源网址不能为空")
+ @Size(max = 100, message = "信息来源网址不能超过100个字符")
+ private String sourceWebsite;
+}
diff --git a/core/src/main/java/com/dite/znpt/domain/vo/BiddingInfoResp.java b/core/src/main/java/com/dite/znpt/domain/vo/BiddingInfoResp.java
new file mode 100644
index 0000000..64a1797
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/domain/vo/BiddingInfoResp.java
@@ -0,0 +1,31 @@
+package com.dite.znpt.domain.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @author Bear.G
+ * @date 2025/7/28/周一 16:17
+ * @description
+ */
+@Data
+@ApiModel("招标信息响应实体")
+public class BiddingInfoResp extends BiddingInfoReq implements Serializable {
+ @Serial
+ private static final long serialVersionUID = 2750666223381829115L;
+
+ @ApiModelProperty("招标信息id")
+ private String biddingInfoId;
+
+ @ApiModelProperty("文件名称")
+ private String fileName;
+
+ @ApiModelProperty("招标文件地址")
+ private String attachPath;
+
+
+}
diff --git a/core/src/main/java/com/dite/znpt/domain/vo/ContractListReq.java b/core/src/main/java/com/dite/znpt/domain/vo/ContractListReq.java
index 9eb3e7a..facfb38 100644
--- a/core/src/main/java/com/dite/znpt/domain/vo/ContractListReq.java
+++ b/core/src/main/java/com/dite/znpt/domain/vo/ContractListReq.java
@@ -1,14 +1,13 @@
package com.dite.znpt.domain.vo;
-import java.math.BigDecimal;
-import java.util.Date;
-import java.io.Serial;
-import java.io.Serializable;
-
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+
/**
* @author huise23
* @date 2025/07/21 21:13
@@ -42,9 +41,6 @@ public class ContractListReq implements Serializable {
@ApiModelProperty("部门id")
private String departmentId;
- @ApiModelProperty("签订日期")
- private Date signDate;
-
@ApiModelProperty("期限")
private String duration;
@@ -54,9 +50,6 @@ public class ContractListReq implements Serializable {
@ApiModelProperty("产品或服务")
private String productService;
- @ApiModelProperty("付款日期/交付日期")
- private Date paymentDate;
-
@ApiModelProperty("付款地址/交付地址")
private String paymentAddress;
@@ -72,5 +65,8 @@ public class ContractListReq implements Serializable {
@ApiModelProperty("合同状态")
private String contractStatus;
+ @ApiModelProperty("合同内容")
+ private String contractText;
+
}
diff --git a/core/src/main/java/com/dite/znpt/domain/vo/ContractReq.java b/core/src/main/java/com/dite/znpt/domain/vo/ContractReq.java
index ace5f90..e6030cb 100644
--- a/core/src/main/java/com/dite/znpt/domain/vo/ContractReq.java
+++ b/core/src/main/java/com/dite/znpt/domain/vo/ContractReq.java
@@ -1,21 +1,14 @@
package com.dite.znpt.domain.vo;
-import java.math.BigDecimal;
-import java.util.Date;
-import java.io.Serial;
-import java.io.Serializable;
-
-import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
-import com.alibaba.excel.annotation.ExcelProperty;
-import com.dite.znpt.util.ValidationGroup;
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Size;
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
/**
* @author huise23
* @date 2025/07/21 21:13
@@ -62,6 +55,9 @@ public class ContractReq implements Serializable {
@ApiModelProperty("付款日期/交付日期")
private Date paymentDate;
+ @ApiModelProperty("履约时间期限")
+ private Date performanceDeadline;
+
@ApiModelProperty("付款地址/交付地址")
private String paymentAddress;
@@ -76,5 +72,8 @@ public class ContractReq implements Serializable {
@ApiModelProperty("合同状态")
private String contractStatus;
+
+ @ApiModelProperty("合同内容")
+ private String contractText;
}
diff --git a/core/src/main/java/com/dite/znpt/domain/vo/ContractResp.java b/core/src/main/java/com/dite/znpt/domain/vo/ContractResp.java
index f21e2ca..a1f4ff0 100644
--- a/core/src/main/java/com/dite/znpt/domain/vo/ContractResp.java
+++ b/core/src/main/java/com/dite/znpt/domain/vo/ContractResp.java
@@ -1,15 +1,12 @@
package com.dite.znpt.domain.vo;
-import java.math.BigDecimal;
-import java.util.Date;
-
-import com.alibaba.excel.annotation.ExcelProperty;
-import com.baomidou.mybatisplus.annotation.TableField;
+import com.dite.znpt.domain.entity.ContractEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
-import com.dite.znpt.domain.entity.ContractEntity;
+
+import java.math.BigDecimal;
/**
* @author huise23
@@ -35,5 +32,8 @@ public class ContractResp extends ContractEntity {
@ApiModelProperty("已收款金额")
private BigDecimal receivedAmount;
+
+ @ApiModelProperty("合同状态名称")
+ private String contractStatusLabel;
}
diff --git a/core/src/main/java/com/dite/znpt/domain/vo/EquipmentApprovalListReq.java b/core/src/main/java/com/dite/znpt/domain/vo/EquipmentApprovalListReq.java
new file mode 100644
index 0000000..39b5833
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/domain/vo/EquipmentApprovalListReq.java
@@ -0,0 +1,54 @@
+package com.dite.znpt.domain.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author Bear.G
+ * @date 2025/1/8/周三 17:45
+ * @description 设备审批列表查询请求VO
+ */
+@Data
+@ApiModel(value="EquipmentApprovalListReq对象", description="设备审批列表查询请求")
+public class EquipmentApprovalListReq implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("设备名称")
+ private String equipmentName;
+
+ @ApiModelProperty("申请人")
+ private String applicantName;
+
+ @ApiModelProperty("业务类型,PROCUREMENT-采购,BORROW-借用,RETURN-归还")
+ private String businessType;
+
+ @ApiModelProperty("审批状态")
+ private String approvalStatus;
+
+ @ApiModelProperty("申请时间开始")
+ private String applyTimeStart;
+
+ @ApiModelProperty("申请时间结束")
+ private String applyTimeEnd;
+
+ @ApiModelProperty("审批时间开始")
+ private String approvalTimeStart;
+
+ @ApiModelProperty("审批时间结束")
+ private String approvalTimeEnd;
+
+ @ApiModelProperty("当前页码")
+ private Integer page;
+
+ @ApiModelProperty("每页大小")
+ private Integer pageSize;
+
+ @ApiModelProperty("排序字段")
+ private String orderBy;
+
+ @ApiModelProperty("排序方向")
+ private String orderDirection;
+}
diff --git a/core/src/main/java/com/dite/znpt/domain/vo/EquipmentApprovalReq.java b/core/src/main/java/com/dite/znpt/domain/vo/EquipmentApprovalReq.java
new file mode 100644
index 0000000..e1ff546
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/domain/vo/EquipmentApprovalReq.java
@@ -0,0 +1,33 @@
+package com.dite.znpt.domain.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ * @author Bear.G
+ * @date 2025/1/8/周三 17:35
+ * @description 设备审批请求VO
+ */
+@Data
+@ApiModel(value="EquipmentApprovalReq对象", description="设备审批请求")
+public class EquipmentApprovalReq implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("审批意见")
+ private String approvalComment;
+
+ @ApiModelProperty("审批结果,APPROVED-通过,REJECTED-拒绝")
+ @NotBlank(message = "审批结果不能为空")
+ private String approvalResult;
+
+ @ApiModelProperty("审批人")
+ private String approverName;
+
+ @ApiModelProperty("审批人ID")
+ private String approverId;
+}
diff --git a/core/src/main/java/com/dite/znpt/domain/vo/EquipmentApprovalResp.java b/core/src/main/java/com/dite/znpt/domain/vo/EquipmentApprovalResp.java
new file mode 100644
index 0000000..3fc8e50
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/domain/vo/EquipmentApprovalResp.java
@@ -0,0 +1,86 @@
+package com.dite.znpt.domain.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * @author Bear.G
+ * @date 2025/1/8/周三 17:40
+ * @description 设备审批响应VO
+ */
+@Data
+@ApiModel(value="EquipmentApprovalResp对象", description="设备审批响应")
+public class EquipmentApprovalResp implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("审批ID")
+ private String approvalId;
+
+ @ApiModelProperty("设备ID")
+ private String equipmentId;
+
+ @ApiModelProperty("设备名称")
+ private String equipmentName;
+
+ @ApiModelProperty("设备类型")
+ private String equipmentType;
+
+ @ApiModelProperty("设备型号")
+ private String equipmentModel;
+
+ @ApiModelProperty("品牌")
+ private String brand;
+
+ @ApiModelProperty("供应商名称")
+ private String supplierName;
+
+ @ApiModelProperty("采购价格")
+ private BigDecimal purchasePrice;
+
+ @ApiModelProperty("总价")
+ private BigDecimal totalPrice;
+
+ @ApiModelProperty("数量")
+ private Integer quantity;
+
+ @ApiModelProperty("申请人")
+ private String applicantName;
+
+ @ApiModelProperty("申请人ID")
+ private String applicantId;
+
+ @ApiModelProperty("申请时间")
+ private LocalDateTime applyTime;
+
+ @ApiModelProperty("申请原因")
+ private String applyReason;
+
+ @ApiModelProperty("业务类型,PROCUREMENT-采购,BORROW-借用,RETURN-归还")
+ private String businessType;
+
+ @ApiModelProperty("审批状态")
+ private String approvalStatus;
+
+ @ApiModelProperty("审批人")
+ private String approverName;
+
+ @ApiModelProperty("审批人ID")
+ private String approverId;
+
+ @ApiModelProperty("审批时间")
+ private LocalDateTime approvalTime;
+
+ @ApiModelProperty("审批意见")
+ private String approvalComment;
+
+ @ApiModelProperty("创建时间")
+ private LocalDateTime createTime;
+
+ @ApiModelProperty("更新时间")
+ private LocalDateTime updateTime;
+}
diff --git a/core/src/main/java/com/dite/znpt/domain/vo/EquipmentListReq.java b/core/src/main/java/com/dite/znpt/domain/vo/EquipmentListReq.java
index 36d9cfc..d746d98 100644
--- a/core/src/main/java/com/dite/znpt/domain/vo/EquipmentListReq.java
+++ b/core/src/main/java/com/dite/znpt/domain/vo/EquipmentListReq.java
@@ -6,6 +6,7 @@ import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
+import java.time.LocalDateTime;
/**
* @author Bear.G
@@ -26,4 +27,154 @@ public class EquipmentListReq implements Serializable {
@ApiModelProperty("设备状态,0-空闲中,1-使用,3-保养中,4-维修中,5-已报废")
private String equipmentStatus;
+
+ @ApiModelProperty("设备序列号")
+ private String equipmentSn;
+
+ @ApiModelProperty("资产编号")
+ private String assetCode;
+
+ @ApiModelProperty("品牌")
+ private String brand;
+
+ @ApiModelProperty("位置状态")
+ private String locationStatus;
+
+ @ApiModelProperty("健康状态")
+ private String healthStatus;
+
+ @ApiModelProperty("负责人")
+ private String responsiblePerson;
+
+ @ApiModelProperty("使用状态,0-空闲中,1-使用中")
+ private String useStatus;
+
+ @ApiModelProperty("项目ID")
+ private String projectId;
+
+ @ApiModelProperty("用户ID")
+ private String userId;
+
+ @ApiModelProperty("设备型号")
+ private String equipmentModel;
+
+ @ApiModelProperty("配置规格/参数")
+ private String specification;
+
+ @ApiModelProperty("设备当前物理位置")
+ private String physicalLocation;
+
+ @ApiModelProperty("供应商名称")
+ private String supplierName;
+
+ @ApiModelProperty("采购订单号")
+ private String purchaseOrder;
+
+ @ApiModelProperty("维护人员")
+ private String maintenancePerson;
+
+ @ApiModelProperty("次户号")
+ private String accountNumber;
+
+ @ApiModelProperty("数量")
+ private Integer quantity;
+
+ @ApiModelProperty("单价")
+ private java.math.BigDecimal unitPrice;
+
+ @ApiModelProperty("总价")
+ private java.math.BigDecimal totalPrice;
+
+ @ApiModelProperty("盘点依据")
+ private String inventoryBasis;
+
+ @ApiModelProperty("动态记录")
+ private String dynamicRecord;
+
+ @ApiModelProperty("库存条码")
+ private String inventoryBarcode;
+
+ @ApiModelProperty("资产备注")
+ private String assetRemark;
+
+ @ApiModelProperty("使用部门/人")
+ private String usingDepartment;
+
+ @ApiModelProperty("发票")
+ private String invoice;
+
+ @ApiModelProperty("条码")
+ private String barcode;
+
+ @ApiModelProperty("导入人")
+ private String importer;
+
+ @ApiModelProperty("采购时间开始")
+ private LocalDateTime purchaseTimeStart;
+
+ @ApiModelProperty("采购时间结束")
+ private LocalDateTime purchaseTimeEnd;
+
+ @ApiModelProperty("入库时间开始")
+ private LocalDateTime inStockTimeStart;
+
+ @ApiModelProperty("入库时间结束")
+ private LocalDateTime inStockTimeEnd;
+
+ @ApiModelProperty("启用时间开始")
+ private LocalDateTime activationTimeStart;
+
+ @ApiModelProperty("启用时间结束")
+ private LocalDateTime activationTimeEnd;
+
+ @ApiModelProperty("预计报废时间开始")
+ private LocalDateTime expectedScrapTimeStart;
+
+ @ApiModelProperty("预计报废时间结束")
+ private LocalDateTime expectedScrapTimeEnd;
+
+ @ApiModelProperty("保修截止日期开始")
+ private LocalDateTime warrantyExpireDateStart;
+
+ @ApiModelProperty("保修截止日期结束")
+ private LocalDateTime warrantyExpireDateEnd;
+
+ @ApiModelProperty("上次维护日期开始")
+ private LocalDateTime lastMaintenanceDateStart;
+
+ @ApiModelProperty("上次维护日期结束")
+ private LocalDateTime lastMaintenanceDateEnd;
+
+ @ApiModelProperty("下次维护日期开始")
+ private LocalDateTime nextMaintenanceDateStart;
+
+ @ApiModelProperty("下次维护日期结束")
+ private LocalDateTime nextMaintenanceDateEnd;
+
+ @ApiModelProperty("创建时间开始")
+ private LocalDateTime createTimeStart;
+
+ @ApiModelProperty("创建时间结束")
+ private LocalDateTime createTimeEnd;
+
+ @ApiModelProperty("更新时间开始")
+ private LocalDateTime updateTimeStart;
+
+ @ApiModelProperty("更新时间结束")
+ private LocalDateTime updateTimeEnd;
+
+ @ApiModelProperty("当前页码")
+ private Integer pageNum;
+
+ @ApiModelProperty("每页大小")
+ private Integer pageSize;
+
+ @ApiModelProperty("排序字段")
+ private String orderBy;
+
+ @ApiModelProperty("排序方向")
+ private String orderDirection;
+
+ @ApiModelProperty("页码")
+ private Integer page;
}
diff --git a/core/src/main/java/com/dite/znpt/domain/vo/EquipmentReq.java b/core/src/main/java/com/dite/znpt/domain/vo/EquipmentReq.java
index db16ba9..202d213 100644
--- a/core/src/main/java/com/dite/znpt/domain/vo/EquipmentReq.java
+++ b/core/src/main/java/com/dite/znpt/domain/vo/EquipmentReq.java
@@ -8,6 +8,8 @@ import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.io.Serial;
import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
/**
* @author Bear.G
@@ -22,7 +24,7 @@ public class EquipmentReq implements Serializable {
@ApiModelProperty("设备名称")
@NotBlank(message = "设备名称不能为空")
- @Size(max = 100, message = "设备名称长度不能超过100个字")
+ @Size(max = 200, message = "设备名称长度不能超过200个字")
private String equipmentName;
@ApiModelProperty("设备类型, 枚举:EquipmentTypeEnum")
@@ -31,11 +33,204 @@ public class EquipmentReq implements Serializable {
@ApiModelProperty("设备型号")
@NotBlank(message = "设备型号不能为空")
- @Size(max = 50, message = "设备型号长度不能超过50个字")
+ @Size(max = 200, message = "设备型号长度不能超过200个字")
private String equipmentModel;
@ApiModelProperty("设备SN")
@NotBlank(message = "设备SN不能为空")
- @Size(max = 50, message = "设备SN长度不能超过50个字")
+ @Size(max = 100, message = "设备SN长度不能超过100个字")
private String equipmentSn;
+
+ @ApiModelProperty("资产编号")
+ @Size(max = 50, message = "资产编号长度不能超过50个字")
+ private String assetCode;
+
+ @ApiModelProperty("品牌")
+ @Size(max = 100, message = "品牌长度不能超过100个字")
+ private String brand;
+
+ @ApiModelProperty("配置规格/参数")
+ @Size(max = 500, message = "配置规格长度不能超过500个字")
+ private String specification;
+
+ @ApiModelProperty("设备状态,枚举:EquipmentStatusEnum")
+ private String equipmentStatus;
+
+ @ApiModelProperty("使用状态,0-空闲中,1-使用中")
+ private String useStatus;
+
+ @ApiModelProperty("位置状态")
+ private String locationStatus;
+
+ @ApiModelProperty("设备当前物理位置")
+ @Size(max = 200, message = "物理位置长度不能超过200个字")
+ private String physicalLocation;
+
+ @ApiModelProperty("负责人")
+ @Size(max = 100, message = "负责人长度不能超过100个字")
+ private String responsiblePerson;
+
+ @ApiModelProperty("健康状态")
+ private String healthStatus;
+
+ @ApiModelProperty("采购时间")
+ private LocalDateTime purchaseTime;
+
+ @ApiModelProperty("入库时间")
+ private LocalDateTime inStockTime;
+
+ @ApiModelProperty("启用时间")
+ private LocalDateTime activationTime;
+
+ @ApiModelProperty("预计报废时间")
+ private LocalDateTime expectedScrapTime;
+
+ @ApiModelProperty("实际报废时间")
+ private LocalDateTime actualScrapTime;
+
+ @ApiModelProperty("状态变更时间")
+ private LocalDateTime statusChangeTime;
+
+ @ApiModelProperty("采购订单")
+ @Size(max = 100, message = "采购订单长度不能超过100个字")
+ private String purchaseOrder;
+
+ @ApiModelProperty("供应商名称")
+ @Size(max = 200, message = "供应商名称长度不能超过200个字")
+ private String supplierName;
+
+ // 移除采购价格字段,使用单价和总价替代
+ // @ApiModelProperty("采购价格")
+ // private BigDecimal purchasePrice;
+
+ @ApiModelProperty("当前净值")
+ private BigDecimal currentNetValue;
+
+ @ApiModelProperty("折旧方法")
+ private String depreciationMethod;
+
+ @ApiModelProperty("折旧年限")
+ private Integer depreciationYears;
+
+ @ApiModelProperty("残值")
+ private BigDecimal salvageValue;
+
+ @ApiModelProperty("保修截止日期")
+ private LocalDateTime warrantyExpireDate;
+
+ @ApiModelProperty("上次维护日期")
+ private LocalDateTime lastMaintenanceDate;
+
+ @ApiModelProperty("下次维护日期")
+ private LocalDateTime nextMaintenanceDate;
+
+ @ApiModelProperty("维护人员")
+ @Size(max = 100, message = "维护人员长度不能超过100个字")
+ private String maintenancePerson;
+
+ @ApiModelProperty("库存条码")
+ @Size(max = 100, message = "库存条码长度不能超过100个字")
+ private String inventoryBarcode;
+
+ @ApiModelProperty("资产备注")
+ @Size(max = 1000, message = "资产备注长度不能超过1000个字")
+ private String assetRemark;
+
+ @ApiModelProperty("次户号")
+ private String accountNumber;
+
+ @ApiModelProperty("数量")
+ private Integer quantity;
+
+ @ApiModelProperty("单价")
+ private BigDecimal unitPrice;
+
+ @ApiModelProperty("总价")
+ private BigDecimal totalPrice;
+
+ // 移除备用状态字段,使用现有的 location_status 字段
+ // @ApiModelProperty("备用状态")
+ // private String spareStatus;
+
+ @ApiModelProperty("盘点依据")
+ private String inventoryBasis;
+
+ @ApiModelProperty("动态记录")
+ private String dynamicRecord;
+
+ // 移除认证状态字段,使用现有的 health_status 字段
+ // @ApiModelProperty("认证状态")
+ // private String certificationStatus;
+
+ @ApiModelProperty("使用部门/人")
+ @Size(max = 200, message = "使用部门/人长度不能超过200个字")
+ private String usingDepartment;
+
+ @ApiModelProperty("领用时间")
+ private LocalDateTime borrowingTime;
+
+ @ApiModelProperty("归还时间")
+ private LocalDateTime returnTime;
+
+ @ApiModelProperty("出库时间")
+ private LocalDateTime outStockTime;
+
+ @ApiModelProperty("总使用时间")
+ @Size(max = 100, message = "总使用时间长度不能超过100个字")
+ private String totalUsageTime;
+
+ @ApiModelProperty("折旧率")
+ private BigDecimal depreciationRate;
+
+ @ApiModelProperty("折旧方法说明")
+ @Size(max = 500, message = "折旧方法说明长度不能超过500个字")
+ private String depreciationMethodDesc;
+
+ @ApiModelProperty("发票")
+ @Size(max = 100, message = "发票长度不能超过100个字")
+ private String invoice;
+
+ @ApiModelProperty("发票状态")
+ @Size(max = 50, message = "发票状态长度不能超过50个字")
+ private String invoiceStatus;
+
+ @ApiModelProperty("附件")
+ @Size(max = 500, message = "附件长度不能超过500个字")
+ private String attachments;
+
+ @ApiModelProperty("照片")
+ @Size(max = 500, message = "照片长度不能超过500个字")
+ private String photos;
+
+ @ApiModelProperty("条码")
+ @Size(max = 100, message = "条码长度不能超过100个字")
+ private String barcode;
+
+ @ApiModelProperty("导入人")
+ @Size(max = 100, message = "导入人长度不能超过100个字")
+ private String importer;
+
+ @ApiModelProperty("盘库时间/状态1")
+ @Size(max = 100, message = "盘库时间/状态1长度不能超过100个字")
+ private String inventoryTimeStatus1;
+
+ @ApiModelProperty("盘库时间/状态2")
+ @Size(max = 100, message = "盘库时间/状态2长度不能超过100个字")
+ private String inventoryTimeStatus2;
+
+ @ApiModelProperty("盘库时间/状态3")
+ @Size(max = 100, message = "盘库时间/状态3长度不能超过100个字")
+ private String inventoryTimeStatus3;
+
+ @ApiModelProperty("盘点时间/状态1")
+ @Size(max = 100, message = "盘点时间/状态1长度不能超过100个字")
+ private String inventoryCheckTimeStatus1;
+
+ @ApiModelProperty("盘点时间/状态2")
+ @Size(max = 100, message = "盘点时间/状态2长度不能超过100个字")
+ private String inventoryCheckTimeStatus2;
+
+ @ApiModelProperty("盘点时间/状态3")
+ @Size(max = 100, message = "盘点时间/状态3长度不能超过100个字")
+ private String inventoryCheckTimeStatus3;
}
diff --git a/core/src/main/java/com/dite/znpt/domain/vo/EquipmentResp.java b/core/src/main/java/com/dite/znpt/domain/vo/EquipmentResp.java
index 335a532..d936b01 100644
--- a/core/src/main/java/com/dite/znpt/domain/vo/EquipmentResp.java
+++ b/core/src/main/java/com/dite/znpt/domain/vo/EquipmentResp.java
@@ -1,11 +1,14 @@
package com.dite.znpt.domain.vo;
+import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
/**
* @author Bear.G
@@ -21,10 +24,13 @@ public class EquipmentResp implements Serializable {
@ApiModelProperty("设备ID")
private String equipmentId;
+ @ApiModelProperty("资产编号")
+ private String assetCode;
+
@ApiModelProperty("设备名称")
private String equipmentName;
- @ApiModelProperty("设备类型")
+ @ApiModelProperty("类型")
private String equipmentType;
@ApiModelProperty("设备类型描述")
@@ -36,6 +42,12 @@ public class EquipmentResp implements Serializable {
@ApiModelProperty("设备SN")
private String equipmentSn;
+ @ApiModelProperty("品牌")
+ private String brand;
+
+ @ApiModelProperty("配置规格/参数")
+ private String specification;
+
@ApiModelProperty("设备状态, 枚举:EquipmentStatusEnum")
private String equipmentStatus;
@@ -45,6 +57,183 @@ public class EquipmentResp implements Serializable {
@ApiModelProperty("设备使用状态,0-空闲中,1-使用中")
private String useStatus;
+ @ApiModelProperty("位置状态")
+ private String locationStatus;
+
+ @ApiModelProperty("位置状态描述")
+ private String locationStatusLabel;
+
+ @ApiModelProperty("设备当前物理位置")
+ private String physicalLocation;
+
+ @ApiModelProperty("负责人")
+ private String responsiblePerson;
+
+ @ApiModelProperty("健康状态")
+ private String healthStatus;
+
+ @ApiModelProperty("健康状态描述")
+ private String healthStatusLabel;
+
+ @ApiModelProperty("采购时间")
+ @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
+ private LocalDateTime purchaseTime;
+
+ @ApiModelProperty("入库时间")
+ @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
+ private LocalDateTime inStockTime;
+
+ @ApiModelProperty("启用时间")
+ @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
+ private LocalDateTime activationTime;
+
+ @ApiModelProperty("预计报废时间")
+ @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
+ private LocalDateTime expectedScrapTime;
+
+ @ApiModelProperty("实际报废时间")
+ @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
+ private LocalDateTime actualScrapTime;
+
+ @ApiModelProperty("状态变更时间")
+ @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
+ private LocalDateTime statusChangeTime;
+
+ @ApiModelProperty("采购订单")
+ private String purchaseOrder;
+
+ @ApiModelProperty("供应商名称")
+ private String supplierName;
+
+ // 移除采购价格字段,使用单价和总价替代
+ // @ApiModelProperty("采购价格")
+ // private BigDecimal purchasePrice;
+
+ @ApiModelProperty("当前净值")
+ private BigDecimal currentNetValue;
+
+ @ApiModelProperty("折旧方法")
+ private String depreciationMethod;
+
+ @ApiModelProperty("折旧年限")
+ private Integer depreciationYears;
+
+ @ApiModelProperty("残值")
+ private BigDecimal salvageValue;
+
+ @ApiModelProperty("保修截止日期")
+ @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
+ private LocalDateTime warrantyExpireDate;
+
+ @ApiModelProperty("上次维护日期")
+ @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
+ private LocalDateTime lastMaintenanceDate;
+
+ @ApiModelProperty("下次维护日期")
+ @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
+ private LocalDateTime nextMaintenanceDate;
+
+ @ApiModelProperty("维护人员")
+ private String maintenancePerson;
+
+ @ApiModelProperty("库存条码")
+ private String inventoryBarcode;
+
+ @ApiModelProperty("资产备注")
+ private String assetRemark;
+
+ @ApiModelProperty("次户号")
+ private String accountNumber;
+
+ @ApiModelProperty("数量")
+ private Integer quantity;
+
+ @ApiModelProperty("单价")
+ private BigDecimal unitPrice;
+
+ @ApiModelProperty("总价")
+ private BigDecimal totalPrice;
+
+ // 移除备用状态字段,使用现有的 location_status 字段
+ // @ApiModelProperty("备用状态")
+ // private String spareStatus;
+
+ // @ApiModelProperty("备用状态描述")
+ // private String spareStatusLabel;
+
+ @ApiModelProperty("盘点依据")
+ private String inventoryBasis;
+
+ @ApiModelProperty("动态记录")
+ private String dynamicRecord;
+
+ // 移除认证状态字段,使用现有的 health_status 字段
+ // @ApiModelProperty("认证状态")
+ // private String certificationStatus;
+
+ // @ApiModelProperty("认证状态描述")
+ // private String certificationStatusLabel;
+
+ @ApiModelProperty("使用部门/人")
+ private String usingDepartment;
+
+ @ApiModelProperty("领用时间")
+ @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
+ private LocalDateTime borrowingTime;
+
+ @ApiModelProperty("归还时间")
+ @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
+ private LocalDateTime returnTime;
+
+ @ApiModelProperty("出库时间")
+ @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
+ private LocalDateTime outStockTime;
+
+ @ApiModelProperty("总使用时间")
+ private String totalUsageTime;
+
+ @ApiModelProperty("折旧率")
+ private BigDecimal depreciationRate;
+
+ @ApiModelProperty("折旧方法说明")
+ private String depreciationMethodDesc;
+
+ @ApiModelProperty("发票")
+ private String invoice;
+
+ @ApiModelProperty("发票状态")
+ private String invoiceStatus;
+
+ @ApiModelProperty("附件")
+ private String attachments;
+
+ @ApiModelProperty("照片")
+ private String photos;
+
+ @ApiModelProperty("条码")
+ private String barcode;
+
+ @ApiModelProperty("导入人")
+ private String importer;
+
+ @ApiModelProperty("盘库时间/状态1")
+ private String inventoryTimeStatus1;
+
+ @ApiModelProperty("盘库时间/状态2")
+ private String inventoryTimeStatus2;
+
+ @ApiModelProperty("盘库时间/状态3")
+ private String inventoryTimeStatus3;
+
+ @ApiModelProperty("盘点时间/状态1")
+ private String inventoryCheckTimeStatus1;
+
+ @ApiModelProperty("盘点时间/状态2")
+ private String inventoryCheckTimeStatus2;
+
+ @ApiModelProperty("盘点时间/状态3")
+ private String inventoryCheckTimeStatus3;
+
@ApiModelProperty("项目id")
private String projectId;
@@ -56,4 +245,12 @@ public class EquipmentResp implements Serializable {
@ApiModelProperty("使用人")
private String name;
+
+ @ApiModelProperty("创建时间")
+ @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
+ private LocalDateTime createTime;
+
+ @ApiModelProperty("更新时间")
+ @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
+ private LocalDateTime updateTime;
}
diff --git a/core/src/main/java/com/dite/znpt/domain/vo/ImageListReq.java b/core/src/main/java/com/dite/znpt/domain/vo/ImageListReq.java
index 1809ea2..95d3a4d 100644
--- a/core/src/main/java/com/dite/znpt/domain/vo/ImageListReq.java
+++ b/core/src/main/java/com/dite/znpt/domain/vo/ImageListReq.java
@@ -27,6 +27,9 @@ public class ImageListReq implements Serializable {
@ApiModelProperty("部件id")
private String partId;
+ @ApiModelProperty("项目id")
+ private String projectId;
+
@ApiModelProperty("图像类型")
private String[] imageTypes;
diff --git a/core/src/main/java/com/dite/znpt/domain/vo/ImageListResp.java b/core/src/main/java/com/dite/znpt/domain/vo/ImageListResp.java
index cadbfbf..72cc8ce 100644
--- a/core/src/main/java/com/dite/znpt/domain/vo/ImageListResp.java
+++ b/core/src/main/java/com/dite/znpt/domain/vo/ImageListResp.java
@@ -106,4 +106,8 @@ public class ImageListResp implements Serializable {
@ApiModelProperty("项目id")
private String projectId;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @ApiModelProperty("上传时间")
+ private LocalDateTime createTime;
}
diff --git a/core/src/main/java/com/dite/znpt/domain/vo/ImageResp.java b/core/src/main/java/com/dite/znpt/domain/vo/ImageResp.java
index 3b628f1..e5600d7 100644
--- a/core/src/main/java/com/dite/znpt/domain/vo/ImageResp.java
+++ b/core/src/main/java/com/dite/znpt/domain/vo/ImageResp.java
@@ -1,11 +1,13 @@
package com.dite.znpt.domain.vo;
+import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
+import java.time.LocalDateTime;
import java.util.List;
/**
@@ -60,4 +62,8 @@ public class ImageResp implements Serializable {
@ApiModelProperty("项目id")
private String projectId;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @ApiModelProperty("上传时间")
+ private LocalDateTime createTime;
}
diff --git a/core/src/main/java/com/dite/znpt/domain/vo/OutbidInfoReq.java b/core/src/main/java/com/dite/znpt/domain/vo/OutbidInfoReq.java
new file mode 100644
index 0000000..16386fa
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/domain/vo/OutbidInfoReq.java
@@ -0,0 +1,45 @@
+package com.dite.znpt.domain.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * @author Bear.G
+ * @date 2025/7/28/周一 17:05
+ * @description
+ */
+@Data
+@ApiModel("中标信息请求实体")
+public class OutbidInfoReq implements Serializable {
+ @Serial
+ private static final long serialVersionUID = -1781661335173747275L;
+
+ @ApiModelProperty("中标信息ID")
+ @NotBlank(message = "中标信息ID不能为空")
+ private String biddingInfoId;
+
+ @ApiModelProperty("中标金额")
+ private BigDecimal outbidAmount;
+
+ @ApiModelProperty("工期")
+ private Integer duration;
+
+ @ApiModelProperty("中标通知日期")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime outbidNotifyDate;
+
+ @ApiModelProperty("中标通知文件")
+ private String outbidNoticeFileId;
+
+ @ApiModelProperty("状态:0-已通知,1-已签约")
+ private String status;
+}
diff --git a/core/src/main/java/com/dite/znpt/domain/vo/OutbidInfoResp.java b/core/src/main/java/com/dite/znpt/domain/vo/OutbidInfoResp.java
new file mode 100644
index 0000000..bfac3a3
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/domain/vo/OutbidInfoResp.java
@@ -0,0 +1,35 @@
+package com.dite.znpt.domain.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @author Bear.G
+ * @date 2025/7/28/周一 17:36
+ * @description
+ */
+@Data
+@ApiModel("中标信息响应实体")
+public class OutbidInfoResp extends OutbidInfoReq implements Serializable {
+ @Serial
+ private static final long serialVersionUID = -718886028432322862L;
+
+ @ApiModelProperty("中标信息ID")
+ private String outbidInfoId;
+
+ @ApiModelProperty("招标项目")
+ private String biddingProject;
+
+ @ApiModelProperty("招标公司")
+ private String biddingCompany;
+
+ @ApiModelProperty("文件名称")
+ private String fileName;
+
+ @ApiModelProperty("中标通知文件地址")
+ private String attachPath;
+}
diff --git a/core/src/main/java/com/dite/znpt/domain/vo/PostListReq.java b/core/src/main/java/com/dite/znpt/domain/vo/PostListReq.java
new file mode 100644
index 0000000..8425a4e
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/domain/vo/PostListReq.java
@@ -0,0 +1,29 @@
+package com.dite.znpt.domain.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @author Bear.G
+ * @date 2025/8/6/周三 14:37
+ * @description
+ */
+@Data
+@ApiModel("项目预算信息列表请求实体")
+public class PostListReq implements Serializable {
+ @Serial
+ private static final long serialVersionUID = -3911963210474319099L;
+
+ @ApiModelProperty("岗位名称")
+ private String postName;
+
+ @ApiModelProperty("部门id")
+ private String deptId;
+
+ @ApiModelProperty("是否包含部门子节点")
+ private Boolean includeDeptChildren;
+}
diff --git a/core/src/main/java/com/dite/znpt/domain/vo/PostReq.java b/core/src/main/java/com/dite/znpt/domain/vo/PostReq.java
index c752cb8..624615f 100644
--- a/core/src/main/java/com/dite/znpt/domain/vo/PostReq.java
+++ b/core/src/main/java/com/dite/znpt/domain/vo/PostReq.java
@@ -22,6 +22,10 @@ public class PostReq implements Serializable {
@Serial
private static final long serialVersionUID = -149328762675637911L;
+ @ApiModelProperty("部门id")
+ @NotBlank(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, message = "部门id不能为空")
+ private String deptId;
+
@NotBlank(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, message = "岗位名称不能为空")
@Size(max = 30, groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, message = "岗位名称长度不能超过30个字符")
@ApiModelProperty("岗位名称")
diff --git a/core/src/main/java/com/dite/znpt/domain/vo/PostResp.java b/core/src/main/java/com/dite/znpt/domain/vo/PostResp.java
index 3012937..0e08189 100644
--- a/core/src/main/java/com/dite/znpt/domain/vo/PostResp.java
+++ b/core/src/main/java/com/dite/znpt/domain/vo/PostResp.java
@@ -24,6 +24,12 @@ public class PostResp implements Serializable {
@ApiModelProperty("岗位id")
private String postId;
+ @ApiModelProperty("部门id")
+ private String deptId;
+
+ @ApiModelProperty("部门名称")
+ private String deptName;
+
@ApiModelProperty("岗位名称")
private String postName;
diff --git a/core/src/main/java/com/dite/znpt/domain/vo/ProjectBudgetInfoDetailResp.java b/core/src/main/java/com/dite/znpt/domain/vo/ProjectBudgetInfoDetailResp.java
new file mode 100644
index 0000000..1216dcc
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/domain/vo/ProjectBudgetInfoDetailResp.java
@@ -0,0 +1,57 @@
+package com.dite.znpt.domain.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+@Data
+@ApiModel("项目预算信息详情")
+public class ProjectBudgetInfoDetailResp implements Serializable {
+ @Serial
+ private static final long serialVersionUID = 766154886845694269L;
+
+ @ApiModelProperty("项目id")
+ private String projectId;
+
+ @ApiModelProperty("项目名称")
+ private String projectName;
+
+ @ApiModelProperty("项目预算")
+ private Double projectBudget;
+
+ @ApiModelProperty("人工成本")
+ private Double laborCost;
+
+ @ApiModelProperty("设备摊销")
+ private Double equipmentAmortization;
+
+ @ApiModelProperty("奖金预提")
+ private Double bonusProvision;
+
+ @ApiModelProperty("交通食宿")
+ private Double transAccomMeals;
+
+ @ApiModelProperty("其他杂费")
+ private Double othersCost;
+
+ @ApiModelProperty("已用人工成本")
+ private Double useLaborCost;
+
+ @ApiModelProperty("已用设备摊销")
+ private Double useEquipmentAmortization;
+
+ @ApiModelProperty("已用奖金预提")
+ private Double useBonusProvision;
+
+ @ApiModelProperty("已用交通食宿")
+ private Double useTransAccomMeals;
+
+ @ApiModelProperty("已用其他杂费")
+ private Double useOthersCost;
+
+ @ApiModelProperty("剩余预算")
+ private Double restBudget;
+}
diff --git a/core/src/main/java/com/dite/znpt/domain/vo/ProjectBudgetInfoImportReq.java b/core/src/main/java/com/dite/znpt/domain/vo/ProjectBudgetInfoImportReq.java
index 18d93a7..ec8918f 100644
--- a/core/src/main/java/com/dite/znpt/domain/vo/ProjectBudgetInfoImportReq.java
+++ b/core/src/main/java/com/dite/znpt/domain/vo/ProjectBudgetInfoImportReq.java
@@ -20,19 +20,18 @@ public class ProjectBudgetInfoImportReq implements Serializable {
@Serial
private static final long serialVersionUID = 580212651388155611L;
-
- @ExcelProperty(value = "项目名称")
- private String projectName;
+ @ExcelProperty(value = "项目Id")
+ private String projectId;
@ExcelProperty(value = "预算名称")
private String budgetName;
- @ExcelProperty(value = "预算类型")
- private String budgetType;
-
- @ExcelProperty(value = "预算金额(万元)")
+ @ExcelProperty(value = "预算花费金额")
private Double budgetAmount;
@ExcelProperty(value = "预算说明")
private String budgetDesc;
+
+ @ExcelProperty(value = "附件")
+ private String attach;
}
diff --git a/core/src/main/java/com/dite/znpt/domain/vo/ProjectBudgetInfoListReq.java b/core/src/main/java/com/dite/znpt/domain/vo/ProjectBudgetInfoListReq.java
index 047b5e9..0188223 100644
--- a/core/src/main/java/com/dite/znpt/domain/vo/ProjectBudgetInfoListReq.java
+++ b/core/src/main/java/com/dite/znpt/domain/vo/ProjectBudgetInfoListReq.java
@@ -22,7 +22,7 @@ public class ProjectBudgetInfoListReq implements Serializable {
@ApiModelProperty("查询关键字")
private String keyword;
- @ApiModelProperty("项目预算信息Id")
+ @ApiModelProperty("项目预算单Id")
private String budgetId;
@ApiModelProperty("项目id")
@@ -31,14 +31,10 @@ public class ProjectBudgetInfoListReq implements Serializable {
@ApiModelProperty("预算名称")
private String budgetName;
- @ApiModelProperty("预算类型")
- private String budgetType;
-
- @ApiModelProperty("预算金额(万元)")
+ @ApiModelProperty("预算花费金额")
private Double budgetAmount;
@ApiModelProperty("预算说明")
private String budgetDesc;
-
}
diff --git a/core/src/main/java/com/dite/znpt/domain/vo/ProjectBudgetInfoListResp.java b/core/src/main/java/com/dite/znpt/domain/vo/ProjectBudgetInfoListResp.java
index af0e31b..17abe5d 100644
--- a/core/src/main/java/com/dite/znpt/domain/vo/ProjectBudgetInfoListResp.java
+++ b/core/src/main/java/com/dite/znpt/domain/vo/ProjectBudgetInfoListResp.java
@@ -2,6 +2,7 @@ package com.dite.znpt.domain.vo;
import com.dite.znpt.domain.entity.ProjectBudgetInfoEntity;
import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -14,6 +15,7 @@ import lombok.EqualsAndHashCode;
@EqualsAndHashCode(callSuper = true)
@ApiModel("项目预算信息列表响应实体")
public class ProjectBudgetInfoListResp extends ProjectBudgetInfoEntity {
-
+ @ApiModelProperty("项目名称")
+ private String projectName;
}
diff --git a/core/src/main/java/com/dite/znpt/domain/vo/ProjectBudgetInfoReq.java b/core/src/main/java/com/dite/znpt/domain/vo/ProjectBudgetInfoReq.java
index 60caa06..27998c3 100644
--- a/core/src/main/java/com/dite/znpt/domain/vo/ProjectBudgetInfoReq.java
+++ b/core/src/main/java/com/dite/znpt/domain/vo/ProjectBudgetInfoReq.java
@@ -26,16 +26,13 @@ public class ProjectBudgetInfoReq implements Serializable {
@ApiModelProperty("预算名称")
private String budgetName;
- @ApiModelProperty("预算类型")
- private String budgetType;
-
- @ApiModelProperty("预算金额(万元)")
+ @ApiModelProperty("预算花费金额")
private Double budgetAmount;
@ApiModelProperty("预算说明")
private String budgetDesc;
- @ApiModelProperty("附件id")
- private String attachId;
+ @ApiModelProperty("附件")
+ private String attach;
}
diff --git a/core/src/main/java/com/dite/znpt/domain/vo/ProjectBudgetInfoResp.java b/core/src/main/java/com/dite/znpt/domain/vo/ProjectBudgetInfoResp.java
index 70b2d3f..fed9529 100644
--- a/core/src/main/java/com/dite/znpt/domain/vo/ProjectBudgetInfoResp.java
+++ b/core/src/main/java/com/dite/znpt/domain/vo/ProjectBudgetInfoResp.java
@@ -15,8 +15,7 @@ import lombok.EqualsAndHashCode;
@EqualsAndHashCode(callSuper = true)
@ApiModel("项目预算信息响应实体")
public class ProjectBudgetInfoResp extends ProjectBudgetInfoEntity {
-
- @ApiModelProperty("预算类型描述")
- private String budgetTypeDesc;
+ @ApiModelProperty("项目名称")
+ private String projectName;
}
diff --git a/core/src/main/java/com/dite/znpt/domain/vo/ProjectDailyReportListReq.java b/core/src/main/java/com/dite/znpt/domain/vo/ProjectDailyReportListReq.java
new file mode 100644
index 0000000..17aff44
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/domain/vo/ProjectDailyReportListReq.java
@@ -0,0 +1,39 @@
+package com.dite.znpt.domain.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.time.LocalDate;
+
+/**
+ * @author huise23
+ * @date 2025/07/27 19:51
+ * @Description: 项目日报信息请求实体
+ */
+@Data
+@ApiModel("项目日报信息列表请求实体")
+public class ProjectDailyReportListReq implements Serializable {
+
+ @Serial
+ private static final long serialVersionUID = 913060537944500760L;
+
+ @ApiModelProperty("查询关键字")
+ private String keyword;
+
+ @ApiModelProperty("项目日报信息Id")
+ private String reportId;
+
+ @ApiModelProperty("项目id")
+ private String projectId;
+
+ @ApiModelProperty("日报日期")
+ private LocalDate reportDate;
+
+ @ApiModelProperty("日报提交人")
+ private String submitUser;
+
+}
+
diff --git a/core/src/main/java/com/dite/znpt/domain/vo/ProjectDailyReportReq.java b/core/src/main/java/com/dite/znpt/domain/vo/ProjectDailyReportReq.java
new file mode 100644
index 0000000..53b2aad
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/domain/vo/ProjectDailyReportReq.java
@@ -0,0 +1,47 @@
+package com.dite.znpt.domain.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+import java.io.Serial;
+import java.io.Serializable;
+import java.time.LocalDate;
+/**
+ * @author huise23
+ * @date 2025/07/27 19:51
+ * @Description: 项目日报信息表请求类
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="ProjectDailyReport请求对象", description="项目日报信息表")
+public class ProjectDailyReportReq implements Serializable {
+
+ @Serial
+ private static final long serialVersionUID = -35936236241363317L;
+
+ @ApiModelProperty("主键")
+ private String reportId;
+
+ @NotNull(message = "项目id不能为空")
+ @ApiModelProperty("项目id")
+ private String projectId;
+
+ @NotNull(message = "日报日期不能为空")
+ @ApiModelProperty("日报日期")
+ private LocalDate reportDate;
+
+ @NotBlank(message = "日报提交人不能为空")
+ @Size(max = 32, message = "日报提交人长度不能超过32字符")
+ @ApiModelProperty("日报提交人")
+ private String submitUser;
+
+ @NotBlank(message = "日报附件id不能为空")
+ @ApiModelProperty("日报附件id")
+ private String reportAttachId;
+}
+
diff --git a/core/src/main/java/com/dite/znpt/domain/vo/ProjectDailyReportResp.java b/core/src/main/java/com/dite/znpt/domain/vo/ProjectDailyReportResp.java
new file mode 100644
index 0000000..c41bdff
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/domain/vo/ProjectDailyReportResp.java
@@ -0,0 +1,23 @@
+package com.dite.znpt.domain.vo;
+
+import com.dite.znpt.domain.entity.AttachInfoEntity;
+import com.dite.znpt.domain.entity.ProjectDailyReportEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * @author huise23
+ * @date 2025/07/27 19:51
+ * @Description: 项目日报信息响应实体
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("项目日报信息响应实体")
+public class ProjectDailyReportResp extends ProjectDailyReportEntity {
+
+ @ApiModelProperty("日报附件")
+ private AttachInfoEntity reportAttach;
+}
+
diff --git a/core/src/main/java/com/dite/znpt/domain/vo/ProjectDetailResp.java b/core/src/main/java/com/dite/znpt/domain/vo/ProjectDetailResp.java
new file mode 100644
index 0000000..d92ce3a
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/domain/vo/ProjectDetailResp.java
@@ -0,0 +1,197 @@
+package com.dite.znpt.domain.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.util.List;
+
+/**
+ * @author wangna
+ * @date 2025/08/05
+ * @Description: 项目详情响应VO
+ */
+@Data
+@ApiModel(value="ProjectDetailResp对象", description="项目详情响应")
+public class ProjectDetailResp {
+
+ @ApiModelProperty("项目ID")
+ private String projectId;
+
+ @ApiModelProperty("项目名称")
+ private String projectName;
+
+ @ApiModelProperty("项目封面")
+ private String coverUrl;
+
+ @ApiModelProperty("风场名称")
+ private String farmName;
+
+ @ApiModelProperty("风场地址")
+ private String farmAddress;
+
+ @ApiModelProperty("委托单位")
+ private String client;
+
+ @ApiModelProperty("委托单位联系人")
+ private String clientContact;
+
+ @ApiModelProperty("委托单位联系电话")
+ private String clientPhone;
+
+ @ApiModelProperty("检查单位")
+ private String inspectionUnit;
+
+ @ApiModelProperty("检查单位联系人")
+ private String inspectionContact;
+
+ @ApiModelProperty("检查单位联系电话")
+ private String inspectionPhone;
+
+ @ApiModelProperty("项目规模")
+ private String scale;
+
+ @ApiModelProperty("总工期(天数)")
+ private Integer duration;
+
+ @ApiModelProperty("风机型号")
+ private String turbineModel;
+
+ @ApiModelProperty("项目状态")
+ private Integer status;
+
+ @ApiModelProperty("项目状态描述")
+ private String statusLabel;
+
+ @ApiModelProperty("开始时间")
+ private LocalDate startDate;
+
+ @ApiModelProperty("结束时间")
+ private LocalDate endDate;
+
+ @ApiModelProperty("计划开始时间")
+ private LocalDate plannedStartDate;
+
+ @ApiModelProperty("创建时间")
+ private String createTime;
+
+ @ApiModelProperty("更新时间")
+ private String updateTime;
+
+ // 新增字段 - 对应前端ProjectCard接口
+ @ApiModelProperty("项目预算(万元)")
+ private BigDecimal budget;
+
+ @ApiModelProperty("项目经理")
+ private String manager;
+
+ @ApiModelProperty("团队规模")
+ private Integer teamSize;
+
+ @ApiModelProperty("准备进度百分比")
+ private Integer preparationProgress;
+
+ @ApiModelProperty("项目进度百分比")
+ private Integer progress;
+
+ // 项目人员信息(从新关联表获取)
+ @ApiModelProperty("项目人员列表")
+ private List projectMembers;
+
+ // 项目机组信息
+ @ApiModelProperty("项目机组列表")
+ private List turbines;
+
+ // 项目任务信息
+ @ApiModelProperty("项目任务列表")
+ private List tasks;
+
+ // 项目预算信息
+ @ApiModelProperty("项目预算列表")
+ private List budgets;
+
+ // 项目日报信息
+ @ApiModelProperty("项目日报列表")
+ private List dailyReports;
+
+ @Data
+ @ApiModel(value="TurbineInfo对象", description="机组信息")
+ public static class TurbineInfo {
+ @ApiModelProperty("机组ID")
+ private String turbineId;
+
+ @ApiModelProperty("机组名称")
+ private String turbineName;
+
+ @ApiModelProperty("机组编码")
+ private String turbineCode;
+
+ @ApiModelProperty("机组状态")
+ private Integer status;
+
+ @ApiModelProperty("机组状态描述")
+ private String statusLabel;
+ }
+
+ @Data
+ @ApiModel(value="TaskInfo对象", description="任务信息")
+ public static class TaskInfo {
+ @ApiModelProperty("任务ID")
+ private String taskId;
+
+ @ApiModelProperty("任务名称")
+ private String taskName;
+
+ @ApiModelProperty("任务状态")
+ private Integer status;
+
+ @ApiModelProperty("任务状态描述")
+ private String statusLabel;
+
+ @ApiModelProperty("计划开始时间")
+ private LocalDate planStartDate;
+
+ @ApiModelProperty("计划结束时间")
+ private LocalDate planEndDate;
+
+ @ApiModelProperty("实际开始时间")
+ private LocalDate actualStartDate;
+
+ @ApiModelProperty("实际结束时间")
+ private LocalDate actualEndDate;
+ }
+
+ @Data
+ @ApiModel(value="BudgetInfo对象", description="预算信息")
+ public static class BudgetInfo {
+ @ApiModelProperty("预算ID")
+ private String budgetId;
+
+ @ApiModelProperty("预算名称")
+ private String budgetName;
+
+ @ApiModelProperty("预算金额(万元)")
+ private Double budgetAmount;
+
+ @ApiModelProperty("预算说明")
+ private String budgetDesc;
+ }
+
+ @Data
+ @ApiModel(value="DailyReportInfo对象", description="日报信息")
+ public static class DailyReportInfo {
+ @ApiModelProperty("日报ID")
+ private String reportId;
+
+ @ApiModelProperty("日报日期")
+ private LocalDate reportDate;
+
+ @ApiModelProperty("日报提交人")
+ private String submitUserName;
+
+ @ApiModelProperty("创建时间")
+ private String createTime;
+ }
+}
\ No newline at end of file
diff --git a/core/src/main/java/com/dite/znpt/domain/vo/ProjectKanbanDataResp.java b/core/src/main/java/com/dite/znpt/domain/vo/ProjectKanbanDataResp.java
new file mode 100644
index 0000000..2e7e598
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/domain/vo/ProjectKanbanDataResp.java
@@ -0,0 +1,173 @@
+package com.dite.znpt.domain.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.util.List;
+
+/**
+ * @author wangna
+ * @date 2025/08/05
+ * @Description: 项目看板数据响应VO
+ */
+@Data
+@ApiModel(value="ProjectKanbanDataResp对象", description="项目看板数据响应")
+public class ProjectKanbanDataResp {
+
+ @ApiModelProperty("待施工项目列表")
+ private List pendingProjects;
+
+ @ApiModelProperty("施工中项目列表")
+ private List inProgressProjects;
+
+ @ApiModelProperty("已完工项目列表")
+ private List completedProjects;
+
+ @ApiModelProperty("已审核项目列表")
+ private List auditedProjects;
+
+ @ApiModelProperty("已验收项目列表")
+ private List acceptedProjects;
+
+ @Data
+ @ApiModel(value="ProjectKanbanItem对象", description="项目看板项目项")
+ public static class ProjectKanbanItem {
+
+ @ApiModelProperty("项目ID")
+ private String projectId;
+
+ @ApiModelProperty("项目名称")
+ private String projectName;
+
+ @ApiModelProperty("项目封面")
+ private String coverUrl;
+
+ @ApiModelProperty("风场名称")
+ private String farmName;
+
+ @ApiModelProperty("风场地址")
+ private String farmAddress;
+
+ @ApiModelProperty("项目规模")
+ private String scale;
+
+ @ApiModelProperty("总工期(天数)")
+ private Integer duration;
+
+ @ApiModelProperty("风机型号")
+ private String turbineModel;
+
+ @ApiModelProperty("项目状态")
+ private Integer status;
+
+ @ApiModelProperty("项目状态描述")
+ private String statusLabel;
+
+ @ApiModelProperty("开始时间")
+ private LocalDate startDate;
+
+ @ApiModelProperty("结束时间")
+ private LocalDate endDate;
+
+ @ApiModelProperty("计划开始时间")
+ private LocalDate plannedStartDate;
+
+ @ApiModelProperty("项目经理")
+ private String projectManagerName;
+
+ @ApiModelProperty("安全员")
+ private String safetyOfficerName;
+
+ @ApiModelProperty("质量员")
+ private String qualityOfficerName;
+
+ @ApiModelProperty("施工组长")
+ private String constructionTeamLeaderName;
+
+ @ApiModelProperty("施工人员")
+ private String constructorNames;
+
+ @ApiModelProperty("机组数量")
+ private Long turbineCount;
+
+ @ApiModelProperty("任务数量")
+ private Long taskCount;
+
+ @ApiModelProperty("已完成任务数量")
+ private Long completedTaskCount;
+
+ @ApiModelProperty("项目进度百分比")
+ private Integer progressPercentage;
+
+ @ApiModelProperty("创建时间")
+ private String createTime;
+
+ @ApiModelProperty("更新时间")
+ private String updateTime;
+
+ // 新增字段 - 对应前端ProjectCard接口
+ @ApiModelProperty("项目预算(万元)")
+ private BigDecimal budget;
+
+ @ApiModelProperty("项目经理")
+ private String manager;
+
+ @ApiModelProperty("团队规模")
+ private Integer teamSize;
+
+ @ApiModelProperty("准备进度百分比")
+ private Integer preparationProgress;
+
+ @ApiModelProperty("项目进度百分比")
+ private Integer progress;
+
+ @ApiModelProperty("团队成员列表")
+ private List teamMembers;
+
+ @Data
+ @ApiModel(value="TeamMemberResp对象", description="团队成员响应")
+ public static class TeamMemberResp {
+ @ApiModelProperty("成员ID")
+ private String memberId;
+
+ @ApiModelProperty("用户ID")
+ private String userId;
+
+ @ApiModelProperty("用户姓名")
+ private String userName;
+
+ @ApiModelProperty("用户账号")
+ private String userAccount;
+
+ @ApiModelProperty("用户头像")
+ private String userAvatar;
+
+ @ApiModelProperty("角色类型")
+ private String roleType;
+
+ @ApiModelProperty("角色类型描述")
+ private String roleTypeDesc;
+
+ @ApiModelProperty("岗位代码")
+ private String jobCode;
+
+ @ApiModelProperty("岗位代码描述")
+ private String jobCodeDesc;
+
+ @ApiModelProperty("岗位描述")
+ private String jobDesc;
+
+ @ApiModelProperty("加入时间")
+ private LocalDate joinDate;
+
+ @ApiModelProperty("离开时间")
+ private LocalDate leaveDate;
+
+ @ApiModelProperty("状态")
+ private String status;
+ }
+ }
+}
\ No newline at end of file
diff --git a/core/src/main/java/com/dite/znpt/domain/vo/ProjectKanbanStatsResp.java b/core/src/main/java/com/dite/znpt/domain/vo/ProjectKanbanStatsResp.java
new file mode 100644
index 0000000..fe2f6f0
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/domain/vo/ProjectKanbanStatsResp.java
@@ -0,0 +1,81 @@
+package com.dite.znpt.domain.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author wangna
+ * @date 2025/08/05
+ * @Description: 项目看板统计数据响应VO
+ */
+@Data
+@ApiModel(value="ProjectKanbanStatsResp对象", description="项目看板统计数据响应")
+public class ProjectKanbanStatsResp {
+
+ @ApiModelProperty("总项目数")
+ private Long totalProjectsCount;
+
+ @ApiModelProperty("待施工项目数")
+ private Long pendingProjectCount;
+
+ @ApiModelProperty("施工中项目数")
+ private Long inProgressProjectCount;
+
+ @ApiModelProperty("已完工项目数")
+ private Long completedProjectCount;
+
+ @ApiModelProperty("已审核项目数")
+ private Long auditedProjectCount;
+
+ @ApiModelProperty("已验收项目数")
+ private Long acceptedProjectCount;
+
+ @ApiModelProperty("总机组数")
+ private Long totalTurbineCount;
+
+ @ApiModelProperty("待施工机组数")
+ private Long pendingTurbineCount;
+
+ @ApiModelProperty("施工中机组数")
+ private Long inProgressTurbineCount;
+
+ @ApiModelProperty("已完工机组数")
+ private Long completedTurbineCount;
+
+ @ApiModelProperty("已审核机组数")
+ private Long auditedTurbineCount;
+
+ @ApiModelProperty("已验收机组数")
+ private Long acceptedTurbineCount;
+
+ @ApiModelProperty("总任务数")
+ private Long totalTaskCount;
+
+ @ApiModelProperty("未开始任务数")
+ private Long pendingTaskCount;
+
+ @ApiModelProperty("进行中任务数")
+ private Long inProgressTaskCount;
+
+ @ApiModelProperty("已完成任务数")
+ private Long completedTaskCount;
+
+ @ApiModelProperty("总人员数")
+ private Long totalMemberCount;
+
+ @ApiModelProperty("项目经理数")
+ private Long projectManagerCount;
+
+ @ApiModelProperty("安全员数")
+ private Long safetyOfficerCount;
+
+ @ApiModelProperty("质量员数")
+ private Long qualityOfficerCount;
+
+ @ApiModelProperty("施工人员数")
+ private Long constructorCount;
+
+ @ApiModelProperty("施工组长数")
+ private Long teamLeaderCount;
+}
\ No newline at end of file
diff --git a/core/src/main/java/com/dite/znpt/domain/vo/ProjectListReq.java b/core/src/main/java/com/dite/znpt/domain/vo/ProjectListReq.java
index 9ba2992..02b087c 100644
--- a/core/src/main/java/com/dite/znpt/domain/vo/ProjectListReq.java
+++ b/core/src/main/java/com/dite/znpt/domain/vo/ProjectListReq.java
@@ -1,7 +1,5 @@
package com.dite.znpt.domain.vo;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
diff --git a/core/src/main/java/com/dite/znpt/domain/vo/ProjectListResp.java b/core/src/main/java/com/dite/znpt/domain/vo/ProjectListResp.java
index cd29090..61faa9b 100644
--- a/core/src/main/java/com/dite/znpt/domain/vo/ProjectListResp.java
+++ b/core/src/main/java/com/dite/znpt/domain/vo/ProjectListResp.java
@@ -1,10 +1,5 @@
package com.dite.znpt.domain.vo;
-import com.alibaba.excel.annotation.ExcelProperty;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -12,7 +7,6 @@ import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDate;
-import java.time.LocalDateTime;
/**
* @Author: gaoxiong
diff --git a/core/src/main/java/com/dite/znpt/domain/vo/ProjectMemberResp.java b/core/src/main/java/com/dite/znpt/domain/vo/ProjectMemberResp.java
new file mode 100644
index 0000000..c69e49c
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/domain/vo/ProjectMemberResp.java
@@ -0,0 +1,105 @@
+package com.dite.znpt.domain.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDate;
+
+/**
+ * @author wangna
+ * @date 2025/08/05
+ * @Description: 项目人员响应VO
+ */
+@Data
+@ApiModel(value="ProjectMemberResp对象", description="项目人员响应")
+public class ProjectMemberResp {
+
+ @ApiModelProperty("关联ID")
+ private String memberId;
+
+ @ApiModelProperty("项目ID")
+ private String projectId;
+
+ @ApiModelProperty("项目名称")
+ private String projectName;
+
+ @ApiModelProperty("机组ID")
+ private String turbineId;
+
+ @ApiModelProperty("机组名称")
+ private String turbineName;
+
+ @ApiModelProperty("任务组ID")
+ private String taskGroupId;
+
+ @ApiModelProperty("任务组名称")
+ private String taskGroupName;
+
+ @ApiModelProperty("任务ID")
+ private String taskId;
+
+ @ApiModelProperty("任务名称")
+ private String taskName;
+
+ @ApiModelProperty("用户ID")
+ private String userId;
+
+ // ========================== 前端需要的字段 ==========================
+
+ @ApiModelProperty("姓名")
+ private String name;
+
+ @ApiModelProperty("联系电话")
+ private String phone;
+
+ @ApiModelProperty("邮箱")
+ private String email;
+
+ @ApiModelProperty("项目岗位")
+ private String position;
+
+ @ApiModelProperty("状态")
+ private String status;
+
+ @ApiModelProperty("技能标签")
+ private String skills;
+
+ @ApiModelProperty("入职日期")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private LocalDate joinDate;
+
+ @ApiModelProperty("备注")
+ private String remark;
+
+ // ========================== 保留的原有字段(用于内部处理) ==========================
+
+ @ApiModelProperty("用户账号")
+ private String userAccount;
+
+ @ApiModelProperty("用户头像")
+ private String userAvatar;
+
+ @ApiModelProperty("角色类型")
+ private String roleType;
+
+ @ApiModelProperty("角色类型描述")
+ private String roleTypeDesc;
+
+ @ApiModelProperty("岗位代码")
+ private String jobCode;
+
+ @ApiModelProperty("岗位代码描述")
+ private String jobCodeDesc;
+
+ @ApiModelProperty("岗位描述")
+ private String jobDesc;
+
+ @ApiModelProperty("离开时间")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private LocalDate leaveDate;
+
+ @ApiModelProperty("状态描述")
+ private String statusDesc;
+}
\ No newline at end of file
diff --git a/core/src/main/java/com/dite/znpt/domain/vo/ProjectReq.java b/core/src/main/java/com/dite/znpt/domain/vo/ProjectReq.java
index fdd2304..5fdcc16 100644
--- a/core/src/main/java/com/dite/znpt/domain/vo/ProjectReq.java
+++ b/core/src/main/java/com/dite/znpt/domain/vo/ProjectReq.java
@@ -1,6 +1,5 @@
package com.dite.znpt.domain.vo;
-import com.alibaba.excel.annotation.ExcelProperty;
import com.dite.znpt.util.ValidationGroup;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@@ -113,4 +112,19 @@ public class ProjectReq implements Serializable {
@ApiModelProperty(value = "结束时间")
private LocalDate endDate;
+
+ @ApiModelProperty("人工成本")
+ private Double laborCost;
+
+ @ApiModelProperty("设备摊销")
+ private Double equipmentAmortization;
+
+ @ApiModelProperty("奖金预提")
+ private Double bonusProvision;
+
+ @ApiModelProperty("交通食宿")
+ private Double transAccomMeals;
+
+ @ApiModelProperty("其他杂费")
+ private Double othersCost;
}
diff --git a/core/src/main/java/com/dite/znpt/domain/vo/ProjectResp.java b/core/src/main/java/com/dite/znpt/domain/vo/ProjectResp.java
index 055af72..16eb289 100644
--- a/core/src/main/java/com/dite/znpt/domain/vo/ProjectResp.java
+++ b/core/src/main/java/com/dite/znpt/domain/vo/ProjectResp.java
@@ -1,19 +1,11 @@
package com.dite.znpt.domain.vo;
-import com.alibaba.excel.annotation.ExcelProperty;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
-import lombok.EqualsAndHashCode;
-import com.dite.znpt.domain.entity.ProjectEntity;
import java.io.Serial;
import java.io.Serializable;
-import java.time.LocalDate;
/**
* @author huise23
diff --git a/core/src/main/java/com/dite/znpt/domain/vo/TeamMemberQuery.java b/core/src/main/java/com/dite/znpt/domain/vo/TeamMemberQuery.java
new file mode 100644
index 0000000..c147e51
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/domain/vo/TeamMemberQuery.java
@@ -0,0 +1,39 @@
+package com.dite.znpt.domain.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author wangna
+ * @date 2025/08/05
+ * @Description: 团队成员查询参数(支持筛选、分页、搜索)
+ */
+@Data
+@ApiModel(value="TeamMemberQuery对象", description="团队成员查询参数")
+public class TeamMemberQuery {
+
+ @ApiModelProperty("项目ID")
+ private String projectId;
+
+ @ApiModelProperty("姓名搜索")
+ private String name;
+
+ @ApiModelProperty("岗位筛选")
+ private String position;
+
+ @ApiModelProperty("状态筛选")
+ private String status;
+
+ @ApiModelProperty("当前页码")
+ private Integer pageNum = 1;
+
+ @ApiModelProperty("每页大小")
+ private Integer pageSize = 10;
+
+ @ApiModelProperty("排序列")
+ private String orderByColumn;
+
+ @ApiModelProperty("排序方向")
+ private String isAsc = "asc";
+}
\ No newline at end of file
diff --git a/core/src/main/java/com/dite/znpt/domain/vo/TeamMemberReq.java b/core/src/main/java/com/dite/znpt/domain/vo/TeamMemberReq.java
new file mode 100644
index 0000000..be6af52
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/domain/vo/TeamMemberReq.java
@@ -0,0 +1,60 @@
+package com.dite.znpt.domain.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.time.LocalDate;
+
+/**
+ * @author wangna
+ * @date 2025/08/05
+ * @Description: 团队成员请求类(用于创建和更新)
+ */
+@Data
+@ApiModel(value="TeamMemberReq对象", description="团队成员请求类")
+public class TeamMemberReq implements Serializable {
+
+ @NotBlank(message = "项目ID不能为空")
+ @ApiModelProperty("项目ID")
+ private String projectId;
+
+ @ApiModelProperty("机组ID(可选)")
+ private String turbineId;
+
+ @ApiModelProperty("任务组ID(可选)")
+ private String taskGroupId;
+
+ @ApiModelProperty("任务ID(可选)")
+ private String taskId;
+
+ @NotBlank(message = "用户ID不能为空")
+ @ApiModelProperty("用户ID")
+ private String userId;
+
+ @NotBlank(message = "角色类型不能为空")
+ @ApiModelProperty("项目角色类型:PROJECT_MANAGER-项目经理,SAFETY_OFFICER-安全员,QUALITY_OFFICER-质量员,CONSTRUCTOR-施工人员,TEAM_LEADER-施工组长")
+ private String roleType;
+
+ @ApiModelProperty("具体岗位代码(如:GROUND_SERVICE-地勤,DRIVER-司机,ASCENDING-登高等)")
+ private String jobCode;
+
+ @ApiModelProperty("岗位描述")
+ private String jobDesc;
+
+ @NotNull(message = "加入时间不能为空")
+ @ApiModelProperty("加入时间")
+ private LocalDate joinDate;
+
+ @ApiModelProperty("离开时间")
+ private LocalDate leaveDate;
+
+ @ApiModelProperty("状态:ACTIVE-在职,INACTIVE-离职,PENDING-待入职")
+ private String status = "ACTIVE";
+
+ @ApiModelProperty("备注")
+ private String remark;
+}
\ No newline at end of file
diff --git a/core/src/main/java/com/dite/znpt/domain/vo/TenderInfoReq.java b/core/src/main/java/com/dite/znpt/domain/vo/TenderInfoReq.java
new file mode 100644
index 0000000..30f7f53
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/domain/vo/TenderInfoReq.java
@@ -0,0 +1,53 @@
+package com.dite.znpt.domain.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * @author Bear.G
+ * @date 2025/7/28/周一 16:23
+ * @description
+ */
+@Data
+@ApiModel("投标信息请求实体")
+public class TenderInfoReq implements Serializable {
+ @Serial
+ private static final long serialVersionUID = -5653933337345116548L;
+
+ @ApiModelProperty("招标信息id")
+ @NotBlank(message = "招标信息id不能为空")
+ private String biddingInfoId;
+
+ @ApiModelProperty("投标金额")
+ private BigDecimal tenderAmount;
+
+ @ApiModelProperty("项目地址")
+ @Size(max = 500, message = "项目地址不能超过500个字符")
+ private String projectAddress;
+
+ @ApiModelProperty("项目类型,枚举:ProjectTypeEnum")
+ private String projectType;
+
+ @ApiModelProperty("招标负责人")
+ @Size(min = 32, max = 32, message = "招标负责人长度必须为32个字符")
+ private String tenderManager;
+
+ @Size(min = 11, max = 11, message = "招标负责人联系方式长度必须为11个字符")
+ @ApiModelProperty("招标负责人联系方式")
+ private String tenderManagerPhone;
+
+ @ApiModelProperty("投标文件")
+ private String tenderFileId;
+
+ @Size(max = 500, message = "项目描述不能超过500个字符")
+ @ApiModelProperty("项目描述")
+ private String projectDescription;
+
+}
diff --git a/core/src/main/java/com/dite/znpt/domain/vo/TenderInfoResp.java b/core/src/main/java/com/dite/znpt/domain/vo/TenderInfoResp.java
new file mode 100644
index 0000000..97e8028
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/domain/vo/TenderInfoResp.java
@@ -0,0 +1,45 @@
+package com.dite.znpt.domain.vo;
+
+/**
+ * @author Bear.G
+ * @date 2025/7/28/周一 16:50
+ * @description
+ */
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @author Bear.G
+ * @date 2025/7/28/周一 16:49
+ * @description
+ */
+@Data
+@ApiModel("投标信息响应实体")
+public class TenderInfoResp extends TenderInfoReq implements Serializable {
+ @Serial
+ private static final long serialVersionUID = -8445413467535624096L;
+
+ @ApiModelProperty("投标标信息ID")
+ private String tenderInfoId;
+
+ @ApiModelProperty("招标项目")
+ private String biddingProject;
+
+ @ApiModelProperty("招标公司")
+ private String biddingCompany;
+
+ @ApiModelProperty("文件名称")
+ private String fileName;
+
+ @ApiModelProperty("投标文件地址")
+ private String attachPath;
+
+ @ApiModelProperty("投标负责人姓名")
+ private String tenderManagerName;
+
+}
\ No newline at end of file
diff --git a/core/src/main/java/com/dite/znpt/domain/vo/UserResp.java b/core/src/main/java/com/dite/znpt/domain/vo/UserResp.java
index db10ead..d461435 100644
--- a/core/src/main/java/com/dite/znpt/domain/vo/UserResp.java
+++ b/core/src/main/java/com/dite/znpt/domain/vo/UserResp.java
@@ -19,7 +19,7 @@ public class UserResp extends UserReq implements Serializable{
@Serial
private static final long serialVersionUID = -2831232930040845716L;
- @ApiModelProperty("用户名")
+ @ApiModelProperty("用户id")
private String userId;
@ApiModelProperty("所属部门")
@@ -39,6 +39,8 @@ public class UserResp extends UserReq implements Serializable{
@ApiModelProperty("在职状态描述")
private String userStatusLabel;
+ @ApiModelProperty("用户姓名")
+ private String userName;
diff --git a/core/src/main/java/com/dite/znpt/enums/AttachBusinessTypeEnum.java b/core/src/main/java/com/dite/znpt/enums/AttachBusinessTypeEnum.java
index 4e008b3..1be8f4b 100644
--- a/core/src/main/java/com/dite/znpt/enums/AttachBusinessTypeEnum.java
+++ b/core/src/main/java/com/dite/znpt/enums/AttachBusinessTypeEnum.java
@@ -19,6 +19,10 @@ public enum AttachBusinessTypeEnum {
DEFECT_MARK_PIC("defect_mark_pic", "缺陷标注图片"),
REPORT("report", "报告"),
PROJECT_BUDGE("project_budge", "预算文件"),
+ PROJECT_DAILY_REPORT("project_daily_report", "项目日报文件"),
+ BIDDING_INFO("bidding_info", "招标信息"),
+ TENDER_INFO("tender_info", "投标信息"),
+ OUTBID_INFO("outbid_info", "中标信息"),
;
private final String code;
private final String desc;
diff --git a/core/src/main/java/com/dite/znpt/enums/ContractStatusEnum.java b/core/src/main/java/com/dite/znpt/enums/ContractStatusEnum.java
new file mode 100644
index 0000000..0ba6bc0
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/enums/ContractStatusEnum.java
@@ -0,0 +1,54 @@
+package com.dite.znpt.enums;
+
+import cn.hutool.json.JSONObject;
+import lombok.Getter;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author Bear.G
+ * @date 2025/5/27/周二 15:33
+ * @description
+ */
+@Getter
+public enum ContractStatusEnum {
+
+ UN_APPROVAL("UN_APPROVAL", "待审批"),
+ UN_SETTLED("UN_SETTLED", "待结算"),
+ UN_PAY("UN_PAY", "待收款"),
+ COMPLETE("COMPLETE", "已完成"),
+ ;
+
+ private final String code;
+ private final String desc;
+
+ ContractStatusEnum(String code, String desc){
+ this.code = code;
+ this.desc = desc;
+ }
+
+ public static ContractStatusEnum getByCode(String code){
+ for (ContractStatusEnum e : ContractStatusEnum.values() ) {
+ if(e.code.equals(code)){
+ return e;
+ }
+ }
+ return null;
+ }
+
+ public static String getDescByCode(String code){
+ ContractStatusEnum e = getByCode(code);
+ return null == e ? null : e.desc;
+ }
+
+ public static List listAll(){
+ List list = new ArrayList<>(ContractStatusEnum.values().length);
+ for (ContractStatusEnum e : ContractStatusEnum.values() ) {
+ JSONObject jsonObject = new JSONObject();
+ jsonObject.set(e.code, e.desc);
+ list.add(jsonObject);
+ }
+ return list;
+ }
+}
diff --git a/core/src/main/java/com/dite/znpt/enums/FilePathEnum.java b/core/src/main/java/com/dite/znpt/enums/FilePathEnum.java
index 3c522a7..46760f8 100644
--- a/core/src/main/java/com/dite/znpt/enums/FilePathEnum.java
+++ b/core/src/main/java/com/dite/znpt/enums/FilePathEnum.java
@@ -55,4 +55,23 @@ public enum FilePathEnum {
return StrUtil.replace(urlPath.concat(relativePath), FileUtil.FILE_SEPARATOR, StrUtil.SLASH);
}
+ /**
+ * 功能描述:根据文件路径前缀获取文件路径ENUM
+ *
+ * @param fileDownPath 文件路径
+ * @return {@link FilePathEnum }
+ * @author cuizhibin
+ * @date 2025/07/27 16:00
+ **/
+ public static FilePathEnum getFilePathEnum(String fileDownPath) {
+ if (StrUtil.startWith(fileDownPath, FilePathEnum.IMAGE_TEMP.getUrlPath())) {
+ return FilePathEnum.IMAGE_TEMP;
+ }
+ for (FilePathEnum pathEnum : FilePathEnum.values()) {
+ if (StrUtil.startWith(fileDownPath, FilePathEnum.IMAGE_TEMP.getUrlPath())) {
+ return pathEnum;
+ }
+ }
+ return FilePathEnum.ATTACH;
+ }
}
diff --git a/core/src/main/java/com/dite/znpt/enums/HealthStatusEnum.java b/core/src/main/java/com/dite/znpt/enums/HealthStatusEnum.java
new file mode 100644
index 0000000..7b437d9
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/enums/HealthStatusEnum.java
@@ -0,0 +1,53 @@
+package com.dite.znpt.enums;
+
+import cn.hutool.json.JSONObject;
+import lombok.Getter;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author Bear.G
+ * @date 2025/7/31/周四 15:30
+ * @description 设备健康状态枚举
+ */
+@Getter
+public enum HealthStatusEnum {
+ EXCELLENT("excellent", "优秀"),
+ GOOD("good", "良好"),
+ NORMAL("normal", "一般"),
+ POOR("poor", "较差"),
+ BAD("bad", "差");
+
+ private final String code;
+ private final String desc;
+
+ HealthStatusEnum(String code, String desc) {
+ this.code = code;
+ this.desc = desc;
+ }
+
+ public static HealthStatusEnum getByCode(String code) {
+ for (HealthStatusEnum e : HealthStatusEnum.values()) {
+ if (e.code.equals(code)) {
+ return e;
+ }
+ }
+ return null;
+ }
+
+ public static String getDescByCode(String code) {
+ HealthStatusEnum e = getByCode(code);
+ return null == e ? null : e.desc;
+ }
+
+ public static List listAll() {
+ List list = new ArrayList<>(HealthStatusEnum.values().length);
+ for (HealthStatusEnum e : HealthStatusEnum.values()) {
+ JSONObject jsonObject = new JSONObject();
+ jsonObject.set(e.code, e.desc);
+ list.add(jsonObject);
+ }
+ return list;
+ }
+}
\ No newline at end of file
diff --git a/core/src/main/java/com/dite/znpt/enums/LocationStatusEnum.java b/core/src/main/java/com/dite/znpt/enums/LocationStatusEnum.java
new file mode 100644
index 0000000..9e04826
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/enums/LocationStatusEnum.java
@@ -0,0 +1,55 @@
+package com.dite.znpt.enums;
+
+import cn.hutool.json.JSONObject;
+import lombok.Getter;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author Bear.G
+ * @date 2025/7/31/周四 15:30
+ * @description 设备位置状态枚举
+ */
+@Getter
+public enum LocationStatusEnum {
+ IN_STOCK("in_stock", "库存中"),
+ ALLOCATED("allocated", "已分配"),
+ REPAIR("repair", "维修中"),
+ SCRAP("scrap", "待报废"),
+ SCRAPPED("scrapped", "已报废"),
+ BORROWED("borrowed", "外借中"),
+ LOST("lost", "丢失");
+
+ private final String code;
+ private final String desc;
+
+ LocationStatusEnum(String code, String desc) {
+ this.code = code;
+ this.desc = desc;
+ }
+
+ public static LocationStatusEnum getByCode(String code) {
+ for (LocationStatusEnum e : LocationStatusEnum.values()) {
+ if (e.code.equals(code)) {
+ return e;
+ }
+ }
+ return null;
+ }
+
+ public static String getDescByCode(String code) {
+ LocationStatusEnum e = getByCode(code);
+ return null == e ? null : e.desc;
+ }
+
+ public static List listAll() {
+ List list = new ArrayList<>(LocationStatusEnum.values().length);
+ for (LocationStatusEnum e : LocationStatusEnum.values()) {
+ JSONObject jsonObject = new JSONObject();
+ jsonObject.set(e.code, e.desc);
+ list.add(jsonObject);
+ }
+ return list;
+ }
+}
\ No newline at end of file
diff --git a/core/src/main/java/com/dite/znpt/enums/ProjectJobCodeEnum.java b/core/src/main/java/com/dite/znpt/enums/ProjectJobCodeEnum.java
new file mode 100644
index 0000000..fd50316
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/enums/ProjectJobCodeEnum.java
@@ -0,0 +1,72 @@
+package com.dite.znpt.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @author wangna
+ * @date 2025/08/05
+ * @Description: 项目岗位代码枚举
+ */
+@Getter
+@AllArgsConstructor
+public enum ProjectJobCodeEnum {
+
+ // 地勤相关岗位
+ GROUND_SERVICE("GROUND_SERVICE", "地勤"),
+ GROUND_SERVICE_LEADER("GROUND_SERVICE_LEADER", "地勤组长"),
+
+ // 司机相关岗位
+ DRIVER("DRIVER", "司机"),
+ DRIVER_LEADER("DRIVER_LEADER", "司机组长"),
+
+ // 登高相关岗位
+ ASCENDING("ASCENDING", "登高"),
+ ASCENDING_LEADER("ASCENDING_LEADER", "登高组长"),
+
+ // 防雷相关岗位
+ ANTI_THUNDER("ANTI_THUNDER", "防雷"),
+ ANTI_THUNDER_LEADER("ANTI_THUNDER_LEADER", "防雷组长"),
+
+ // 外部工作相关岗位
+ OUT_WORK("OUT_WORK", "外部工作"),
+ OUT_WORK_LEADER("OUT_WORK_LEADER", "外部工作组长"),
+
+ // 管理岗位
+ PROJECT_MANAGER("PROJECT_MANAGER", "项目经理"),
+ SAFETY_MANAGER("SAFETY_MANAGER", "安全经理"),
+ QUALITY_MANAGER("QUALITY_MANAGER", "质量经理"),
+ SITE_MANAGER("SITE_MANAGER", "现场经理"),
+
+ // 其他岗位
+ TECHNICIAN("TECHNICIAN", "技术员"),
+ SUPERVISOR("SUPERVISOR", "监理"),
+ COORDINATOR("COORDINATOR", "协调员");
+
+ private final String code;
+ private final String desc;
+
+ /**
+ * 根据代码获取描述
+ */
+ public static String getDescByCode(String code) {
+ for (ProjectJobCodeEnum jobCode : values()) {
+ if (jobCode.getCode().equals(code)) {
+ return jobCode.getDesc();
+ }
+ }
+ return "";
+ }
+
+ /**
+ * 根据代码获取枚举
+ */
+ public static ProjectJobCodeEnum getByCode(String code) {
+ for (ProjectJobCodeEnum jobCode : values()) {
+ if (jobCode.getCode().equals(code)) {
+ return jobCode;
+ }
+ }
+ return null;
+ }
+}
\ No newline at end of file
diff --git a/core/src/main/java/com/dite/znpt/enums/ProjectRoleTypeEnum.java b/core/src/main/java/com/dite/znpt/enums/ProjectRoleTypeEnum.java
new file mode 100644
index 0000000..a750a4c
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/enums/ProjectRoleTypeEnum.java
@@ -0,0 +1,53 @@
+package com.dite.znpt.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @author wangna
+ * @date 2025/08/05
+ * @Description: 项目角色类型枚举
+ */
+@Getter
+@AllArgsConstructor
+public enum ProjectRoleTypeEnum {
+
+ PROJECT_MANAGER("PROJECT_MANAGER", "项目经理"),
+ SAFETY_OFFICER("SAFETY_OFFICER", "安全员"),
+ QUALITY_OFFICER("QUALITY_OFFICER", "质量员"),
+ CONSTRUCTOR("CONSTRUCTOR", "施工人员"),
+ TEAM_LEADER("TEAM_LEADER", "施工组长"),
+ SENIOR_PROJECT_MANAGER("SENIOR_PROJECT_MANAGER", "大项目经理"),
+ REMOTE_ADVISOR("REMOTE_ADVISOR", "项目远程顾问"),
+ EXTERNAL_COLLABORATOR("EXTERNAL_COLLABORATOR", "外部协作者"),
+ FINANCIAL_MANAGER("FINANCIAL_MANAGER", "财务经理"),
+ BUSINESS_MANAGER("BUSINESS_MANAGER", "商务经理"),
+ SITE_MANAGER("SITE_MANAGER", "现场经理");
+
+ private final String code;
+ private final String desc;
+
+ /**
+ * 根据代码获取描述
+ */
+ public static String getDescByCode(String code) {
+ for (ProjectRoleTypeEnum roleType : values()) {
+ if (roleType.getCode().equals(code)) {
+ return roleType.getDesc();
+ }
+ }
+ return "";
+ }
+
+ /**
+ * 根据代码获取枚举
+ */
+ public static ProjectRoleTypeEnum getByCode(String code) {
+ for (ProjectRoleTypeEnum roleType : values()) {
+ if (roleType.getCode().equals(code)) {
+ return roleType;
+ }
+ }
+ return null;
+ }
+}
\ No newline at end of file
diff --git a/core/src/main/java/com/dite/znpt/enums/ProjectTypeEnum.java b/core/src/main/java/com/dite/znpt/enums/ProjectTypeEnum.java
new file mode 100644
index 0000000..c5e19b4
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/enums/ProjectTypeEnum.java
@@ -0,0 +1,49 @@
+package com.dite.znpt.enums;
+
+import cn.hutool.json.JSONObject;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author Bear.G
+ * @date 2025/7/28/周一 16:35
+ * @description
+ */
+@Getter
+@AllArgsConstructor
+public enum ProjectTypeEnum {
+ BLADE_CHECK("blade_check", "风电叶片检查"),
+ OPERATION("operation", "风电运维"),
+ INSTALL("install", "风电安装"),
+ OTHER("other", "其他");
+
+ private final String code;
+ private final String desc;
+
+ public static ProjectTypeEnum getByCode(String code){
+ for (ProjectTypeEnum e : ProjectTypeEnum.values() ) {
+ if(e.code.equals(code)){
+ return e;
+ }
+ }
+ return null;
+ }
+
+ public static String getDescByCode(String code){
+ ProjectTypeEnum e = getByCode(code);
+ return null == e ? null : e.desc;
+ }
+
+ public static List listAll(){
+ List list = new ArrayList<>(ProjectTypeEnum.values().length);
+ for (ProjectTypeEnum e : ProjectTypeEnum.values() ) {
+ JSONObject jsonObject = new JSONObject();
+ jsonObject.set(String.valueOf(e.code), e.desc);
+ list.add(jsonObject);
+ }
+ return list;
+ }
+}
diff --git a/core/src/main/java/com/dite/znpt/mapper/AutoExpirationConfigMapper.java b/core/src/main/java/com/dite/znpt/mapper/AutoExpirationConfigMapper.java
new file mode 100644
index 0000000..5ea8531
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/mapper/AutoExpirationConfigMapper.java
@@ -0,0 +1,14 @@
+package com.dite.znpt.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dite.znpt.domain.entity.AutoExpirationConfigEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @author System
+ * @date 2025/1/1
+ * @description 自动到期检测配置Mapper
+ */
+@Mapper
+public interface AutoExpirationConfigMapper extends BaseMapper {
+}
\ No newline at end of file
diff --git a/core/src/main/java/com/dite/znpt/mapper/BiddingInfoMapper.java b/core/src/main/java/com/dite/znpt/mapper/BiddingInfoMapper.java
new file mode 100644
index 0000000..58e377f
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/mapper/BiddingInfoMapper.java
@@ -0,0 +1,18 @@
+package com.dite.znpt.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dite.znpt.domain.entity.BiddingInfoEntity;
+import com.dite.znpt.domain.vo.BiddingInfoResp;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @author Bear.G
+ * @date 2025/7/28/周一 16:06
+ * @description
+ */
+public interface BiddingInfoMapper extends BaseMapper {
+
+ List listBiddingInfoResp(@Param("projectName") String projectName);
+}
diff --git a/core/src/main/java/com/dite/znpt/mapper/ExpirationResultMapper.java b/core/src/main/java/com/dite/znpt/mapper/ExpirationResultMapper.java
new file mode 100644
index 0000000..b6d3991
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/mapper/ExpirationResultMapper.java
@@ -0,0 +1,14 @@
+package com.dite.znpt.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dite.znpt.domain.entity.ExpirationResultEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @author System
+ * @date 2025/1/1
+ * @description 到期检测结果Mapper
+ */
+@Mapper
+public interface ExpirationResultMapper extends BaseMapper {
+}
\ No newline at end of file
diff --git a/core/src/main/java/com/dite/znpt/mapper/OutbidInfoMapper.java b/core/src/main/java/com/dite/znpt/mapper/OutbidInfoMapper.java
new file mode 100644
index 0000000..4c51729
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/mapper/OutbidInfoMapper.java
@@ -0,0 +1,19 @@
+package com.dite.znpt.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dite.znpt.domain.entity.OutbidInfoEntity;
+import com.dite.znpt.domain.vo.OutbidInfoResp;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @author Bear.G
+ * @date 2025/7/28/周一 16:11
+ * @description
+ */
+public interface OutbidInfoMapper extends BaseMapper {
+ List listOutbidInfoResp(@Param("projectName") String projectName);
+
+ OutbidInfoResp getOutbidInfoResp(@Param("outbidInfoId") String outbidInfoId);
+}
diff --git a/core/src/main/java/com/dite/znpt/mapper/PostMapper.java b/core/src/main/java/com/dite/znpt/mapper/PostMapper.java
index b98dc56..4737b42 100644
--- a/core/src/main/java/com/dite/znpt/mapper/PostMapper.java
+++ b/core/src/main/java/com/dite/znpt/mapper/PostMapper.java
@@ -2,6 +2,10 @@ package com.dite.znpt.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dite.znpt.domain.entity.PostEntity;
+import com.dite.znpt.domain.vo.PostListReq;
+import com.dite.znpt.domain.vo.PostResp;
+
+import java.util.List;
/**
* @author Bear.G
@@ -9,4 +13,6 @@ import com.dite.znpt.domain.entity.PostEntity;
* @description
*/
public interface PostMapper extends BaseMapper {
+
+ List selectPostResp(PostListReq req);
}
diff --git a/core/src/main/java/com/dite/znpt/mapper/ProjectDailyReportMapper.java b/core/src/main/java/com/dite/znpt/mapper/ProjectDailyReportMapper.java
new file mode 100644
index 0000000..be32858
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/mapper/ProjectDailyReportMapper.java
@@ -0,0 +1,18 @@
+package com.dite.znpt.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dite.znpt.domain.entity.ProjectDailyReportEntity;
+import com.dite.znpt.domain.vo.ProjectDailyReportListReq;
+import com.dite.znpt.domain.vo.ProjectDailyReportResp;
+
+import java.util.List;
+
+/**
+ * @author huise23
+ * @date 2025/07/27 19:51
+ * @Description: 项目日报信息表数据库访问层
+ */
+public interface ProjectDailyReportMapper extends BaseMapper {
+ List queryBySelective(ProjectDailyReportListReq projectDailyReportReq);
+}
+
diff --git a/core/src/main/java/com/dite/znpt/mapper/ProjectMemberMapper.java b/core/src/main/java/com/dite/znpt/mapper/ProjectMemberMapper.java
new file mode 100644
index 0000000..106a33d
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/mapper/ProjectMemberMapper.java
@@ -0,0 +1,23 @@
+package com.dite.znpt.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dite.znpt.domain.entity.ProjectMemberEntity;
+import com.dite.znpt.domain.vo.ProjectMemberResp;
+import com.dite.znpt.domain.vo.TeamMemberQuery;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * @author wangna
+ * @date 2025/08/05
+ * @Description: 项目人员关联表Mapper接口
+ */
+@Mapper
+public interface ProjectMemberMapper extends BaseMapper {
+
+ /**
+ * 获取项目团队成员列表(支持筛选、分页、搜索)
+ */
+ List queryTeamMembers(TeamMemberQuery query);
+}
\ No newline at end of file
diff --git a/core/src/main/java/com/dite/znpt/mapper/RegulationConfirmationMapper.java b/core/src/main/java/com/dite/znpt/mapper/RegulationConfirmationMapper.java
new file mode 100644
index 0000000..ac6846c
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/mapper/RegulationConfirmationMapper.java
@@ -0,0 +1,14 @@
+package com.dite.znpt.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dite.znpt.domain.entity.RegulationConfirmationEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @author wangna
+ * @date 2025/07/28
+ * @Description: 制度确认Mapper接口
+ */
+@Mapper
+public interface RegulationConfirmationMapper extends BaseMapper {
+}
\ No newline at end of file
diff --git a/core/src/main/java/com/dite/znpt/mapper/RegulationMapper.java b/core/src/main/java/com/dite/znpt/mapper/RegulationMapper.java
new file mode 100644
index 0000000..d8c7506
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/mapper/RegulationMapper.java
@@ -0,0 +1,35 @@
+package com.dite.znpt.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.dite.znpt.domain.entity.RegulationEntity;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * @author wangna
+ * @date 2025/07/28
+ * @Description: 制度规范仓库Mapper接口
+ */
+@Mapper
+public interface RegulationMapper extends BaseMapper {
+
+ /**
+ * 分页查询制度列表(包含创建人姓名)
+ * @param page 分页参数
+ * @param status 状态
+ * @param type 类型
+ * @param title 提案标题
+ * @param proposer 提案人
+ * @param confirmStatus 确认状态
+ * @param userId 当前用户ID
+ * @return 分页结果
+ */
+ Page selectRegulationListWithCreator(Page page,
+ @Param("status") String status,
+ @Param("type") String type,
+ @Param("title") String title,
+ @Param("proposer") String proposer,
+ @Param("confirmStatus") String confirmStatus,
+ @Param("userId") String userId);
+}
\ No newline at end of file
diff --git a/core/src/main/java/com/dite/znpt/mapper/RegulationTypeMapper.java b/core/src/main/java/com/dite/znpt/mapper/RegulationTypeMapper.java
new file mode 100644
index 0000000..801d72e
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/mapper/RegulationTypeMapper.java
@@ -0,0 +1,29 @@
+package com.dite.znpt.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.dite.znpt.domain.entity.RegulationTypeEntity;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 制度类型Mapper接口
+ * @author wangna
+ * @date 2025/07/29
+ */
+@Mapper
+public interface RegulationTypeMapper extends BaseMapper {
+
+ /**
+ * 分页查询制度类型列表(包含创建人姓名)
+ * @param page 分页参数
+ * @param typeName 类型名称
+ * @param status 是否启用(1-启用,0-禁用)
+ * @param remark 备注
+ * @return 分页结果
+ */
+ Page selectRegulationTypeListWithCreator(Page page,
+ @Param("typeName") String typeName,
+ @Param("status") String status,
+ @Param("remark") String remark);
+}
\ No newline at end of file
diff --git a/core/src/main/java/com/dite/znpt/mapper/TenderInfoMapper.java b/core/src/main/java/com/dite/znpt/mapper/TenderInfoMapper.java
new file mode 100644
index 0000000..a3f004c
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/mapper/TenderInfoMapper.java
@@ -0,0 +1,20 @@
+package com.dite.znpt.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dite.znpt.domain.entity.TenderInfoEntity;
+import com.dite.znpt.domain.vo.TenderInfoResp;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.web.bind.annotation.PathVariable;
+
+import java.util.List;
+
+/**
+ * @author Bear.G
+ * @date 2025/7/28/周一 16:08
+ * @description
+ */
+public interface TenderInfoMapper extends BaseMapper {
+ List listTenderInfoResp(@Param("projectName") String projectName);
+
+ TenderInfoResp getTenderInfoResp(@Param("tenderInfoId") String tenderInfoId);
+}
diff --git a/core/src/main/java/com/dite/znpt/service/AttachInfoService.java b/core/src/main/java/com/dite/znpt/service/AttachInfoService.java
index 3c4987f..d8cdeb6 100644
--- a/core/src/main/java/com/dite/znpt/service/AttachInfoService.java
+++ b/core/src/main/java/com/dite/znpt/service/AttachInfoService.java
@@ -23,7 +23,7 @@ public interface AttachInfoService extends IService {
* @author huise23
* @date 2025/04/11 23:17
**/
- List listByBusinessIds(List businessIds, String businessType);
+ List listByBusinessIds(List businessIds, AttachBusinessTypeEnum businessType);
/**
* 功能描述:新增附件信息
diff --git a/core/src/main/java/com/dite/znpt/service/AutoExpirationService.java b/core/src/main/java/com/dite/znpt/service/AutoExpirationService.java
new file mode 100644
index 0000000..35d2b76
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/service/AutoExpirationService.java
@@ -0,0 +1,61 @@
+package com.dite.znpt.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.dite.znpt.domain.entity.AutoExpirationConfigEntity;
+import com.dite.znpt.domain.entity.ExpirationResultEntity;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author System
+ * @date 2025/1/1
+ * @description 自动到期检测服务接口
+ */
+public interface AutoExpirationService extends IService {
+
+ /**
+ * 执行自动到期检测
+ */
+ void executeAutoExpirationCheck();
+
+ /**
+ * 获取到期检测结果
+ * @param status 状态筛选
+ * @return 检测结果列表
+ */
+ List getExpirationResults(String status);
+
+ /**
+ * 获取统计信息
+ * @return 统计信息
+ */
+ Map getStatistics();
+
+ /**
+ * 手动检测指定表
+ * @param tableName 表名
+ */
+ void checkTableExpiration(String tableName);
+
+ /**
+ * 检查表是否已配置到期检测
+ * @param tableName 表名
+ * @return 配置信息,如果未配置返回null
+ */
+ AutoExpirationConfigEntity getTableConfig(String tableName);
+
+ /**
+ * 批量检查多个表的配置状态
+ * @param tableNames 表名列表
+ * @return 配置状态映射
+ */
+ Map getTablesConfigStatus(List tableNames);
+
+ /**
+ * 智能配置表检测
+ * @param tableName 表名
+ * @return 配置结果
+ */
+ AutoExpirationConfigEntity autoConfigureTable(String tableName);
+}
\ No newline at end of file
diff --git a/core/src/main/java/com/dite/znpt/service/BiddingInfoService.java b/core/src/main/java/com/dite/znpt/service/BiddingInfoService.java
new file mode 100644
index 0000000..b4d67d0
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/service/BiddingInfoService.java
@@ -0,0 +1,26 @@
+package com.dite.znpt.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.dite.znpt.domain.Result;
+import com.dite.znpt.domain.entity.BiddingInfoEntity;
+import com.dite.znpt.domain.vo.BiddingInfoReq;
+import com.dite.znpt.domain.vo.BiddingInfoResp;
+import org.springframework.validation.BindingResult;
+
+import java.util.List;
+
+/**
+ * @author Bear.G
+ * @date 2025/7/28/周一 16:06
+ * @description
+ */
+public interface BiddingInfoService extends IService {
+
+ List page(String projectName);
+ List list(String projectName);
+ void save(BiddingInfoReq req);
+ void update(String biddingInfoId, BiddingInfoReq req);
+ void uploadBiddingInfoFile(String biddingInfoId, String biddingFileId);
+ void apply(String biddingInfoId);
+ Result> importData(List dataList, BindingResult bindingResult);
+}
diff --git a/core/src/main/java/com/dite/znpt/service/EmailService.java b/core/src/main/java/com/dite/znpt/service/EmailService.java
index e13ba73..51a05f0 100644
--- a/core/src/main/java/com/dite/znpt/service/EmailService.java
+++ b/core/src/main/java/com/dite/znpt/service/EmailService.java
@@ -1,30 +1,30 @@
-package com.dite.znpt.service;
-
-import org.springframework.stereotype.Service;
-
-@Service
-public interface EmailService {
- /**
- * 发送邮箱验证码
- * @param email
- * @param code
- * @return
- */
- public boolean sendVerificationCode(String email, String code);
-
- /**
- * 生成验证码
- * @param email
- * @return
- */
- public String generateCode(String email);
-
- /**
- * 验证邮箱验证码
- * @param email
- * @param code
- * @return
- */
- public boolean verifyCode(String email, String code);
-
-}
+//package com.dite.znpt.service;
+//
+//import org.springframework.stereotype.Service;
+//
+//@Service
+//public interface EmailService {
+// /**
+// * 发送邮箱验证码
+// * @param email
+// * @param code
+// * @return
+// */
+// public boolean sendVerificationCode(String email, String code);
+//
+// /**
+// * 生成验证码
+// * @param email
+// * @return
+// */
+// public String generateCode(String email);
+//
+// /**
+// * 验证邮箱验证码
+// * @param email
+// * @param code
+// * @return
+// */
+// public boolean verifyCode(String email, String code);
+//
+//}
diff --git a/core/src/main/java/com/dite/znpt/service/EquipmentApprovalService.java b/core/src/main/java/com/dite/znpt/service/EquipmentApprovalService.java
new file mode 100644
index 0000000..685c7c4
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/service/EquipmentApprovalService.java
@@ -0,0 +1,44 @@
+package com.dite.znpt.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.dite.znpt.domain.vo.EquipmentApprovalListReq;
+import com.dite.znpt.domain.vo.EquipmentApprovalReq;
+import com.dite.znpt.domain.vo.EquipmentApprovalResp;
+
+/**
+ * @author Bear.G
+ * @date 2025/1/8/周三 17:50
+ * @description 设备审批服务接口
+ */
+public interface EquipmentApprovalService {
+
+ /**
+ * 分页查询待审批的设备采购申请
+ */
+ IPage getPendingApprovals(EquipmentApprovalListReq req);
+
+ /**
+ * 分页查询已审批的设备采购申请
+ */
+ IPage getApprovedApprovals(EquipmentApprovalListReq req);
+
+ /**
+ * 审批通过
+ */
+ void approve(String approvalId, EquipmentApprovalReq req);
+
+ /**
+ * 审批拒绝
+ */
+ void reject(String approvalId, EquipmentApprovalReq req);
+
+ /**
+ * 获取审批详情
+ */
+ EquipmentApprovalResp getApprovalDetail(String approvalId);
+
+ /**
+ * 获取审批统计信息
+ */
+ Object getApprovalStats();
+}
diff --git a/core/src/main/java/com/dite/znpt/service/EquipmentService.java b/core/src/main/java/com/dite/znpt/service/EquipmentService.java
index 5c21c21..0f7a604 100644
--- a/core/src/main/java/com/dite/znpt/service/EquipmentService.java
+++ b/core/src/main/java/com/dite/znpt/service/EquipmentService.java
@@ -1,24 +1,75 @@
package com.dite.znpt.service;
+import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dite.znpt.domain.entity.EquipmentEntity;
import com.dite.znpt.domain.vo.EquipmentListReq;
import com.dite.znpt.domain.vo.EquipmentReq;
import com.dite.znpt.domain.vo.EquipmentResp;
-import com.dite.znpt.domain.vo.EquipmentUseRecordReq;
import java.util.List;
+import java.util.Map;
/**
+ * 设备服务接口
* @author Bear.G
* @date 2025/7/23/周三 17:39
* @description
*/
public interface EquipmentService extends IService {
- List page(EquipmentListReq req);
- List list(EquipmentListReq req);
+
+ /**
+ * 分页查询设备信息
+ */
+ IPage page(EquipmentListReq req);
+
+ /**
+ * 查询设备详情
+ */
EquipmentResp detail(String equipmentId);
+
+ /**
+ * 新增设备
+ */
void save(EquipmentReq req);
+
+ /**
+ * 修改设备
+ */
void update(String equipmentId, EquipmentReq req);
+
+ /**
+ * 删除设备
+ */
void deleteById(String equipmentId);
+
+ /**
+ * 批量删除设备
+ */
+ void batchDelete(List equipmentIds);
+
+ /**
+ * 获取采购统计信息
+ */
+ Object getProcurementStats();
+
+ /**
+ * 导出采购记录
+ */
+ byte[] exportProcurement(EquipmentListReq req);
+
+ /**
+ * 分页查询设备采购记录
+ */
+ IPage procurementPage(EquipmentListReq req);
+
+ /**
+ * 新增设备采购记录
+ */
+ void saveProcurement(EquipmentReq req);
+
+ /**
+ * 修改设备采购记录
+ */
+ void updateProcurement(String equipmentId, EquipmentReq req);
}
diff --git a/core/src/main/java/com/dite/znpt/service/ImageService.java b/core/src/main/java/com/dite/znpt/service/ImageService.java
index 4bab57b..1e2bb9e 100644
--- a/core/src/main/java/com/dite/znpt/service/ImageService.java
+++ b/core/src/main/java/com/dite/znpt/service/ImageService.java
@@ -25,7 +25,7 @@ public interface ImageService extends IService {
List batchUploadDefectImage(String partId, String imageSource, ImageCollectReq collectReq, MultipartFile[] files);
- List uploadProjectBatch(String projectId, String imageSource, MultipartFile[] files);
+ List uploadProjectBatch(String projectId, String imageSource, ImageCollectReq collectReq, MultipartFile[] files);
List batchUploadCommonImage(String imageSource, ImageWorkReq imageWorkReq, MultipartFile[] file) throws IOException;
diff --git a/core/src/main/java/com/dite/znpt/service/OutbidInfoService.java b/core/src/main/java/com/dite/znpt/service/OutbidInfoService.java
new file mode 100644
index 0000000..0325149
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/service/OutbidInfoService.java
@@ -0,0 +1,25 @@
+package com.dite.znpt.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.dite.znpt.domain.entity.OutbidInfoEntity;
+import com.dite.znpt.domain.vo.OutbidInfoReq;
+import com.dite.znpt.domain.vo.OutbidInfoResp;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * @author Bear.G
+ * @date 2025/7/28/周一 16:11
+ * @description
+ */
+public interface OutbidInfoService extends IService {
+
+ List page(String projectName);
+ List list(String projectName);
+ OutbidInfoResp detail(String outbidInfoId);
+ void save(OutbidInfoReq req);
+ void update(String outbidInfoId, OutbidInfoReq req);
+ void deleteById(String outbidInfoId);
+ void downLoadOutbidNoticeFile(String outbidFileId, HttpServletResponse response) throws Exception;
+}
diff --git a/core/src/main/java/com/dite/znpt/service/PostService.java b/core/src/main/java/com/dite/znpt/service/PostService.java
index 3a27134..ef9e246 100644
--- a/core/src/main/java/com/dite/znpt/service/PostService.java
+++ b/core/src/main/java/com/dite/znpt/service/PostService.java
@@ -2,6 +2,7 @@ package com.dite.znpt.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dite.znpt.domain.entity.PostEntity;
+import com.dite.znpt.domain.vo.PostListReq;
import com.dite.znpt.domain.vo.PostReq;
import com.dite.znpt.domain.vo.PostResp;
@@ -14,9 +15,9 @@ import java.util.List;
*/
public interface PostService extends IService {
- List page(String postName);
+ List page(PostListReq req);
- List list(String postName);
+ List list(PostListReq req);
PostResp detail(String postId);
diff --git a/core/src/main/java/com/dite/znpt/service/ProjectBudgetInfoService.java b/core/src/main/java/com/dite/znpt/service/ProjectBudgetInfoService.java
index 72aa0f0..dd8c56a 100644
--- a/core/src/main/java/com/dite/znpt/service/ProjectBudgetInfoService.java
+++ b/core/src/main/java/com/dite/znpt/service/ProjectBudgetInfoService.java
@@ -2,10 +2,11 @@ package com.dite.znpt.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dite.znpt.domain.entity.ProjectBudgetInfoEntity;
+import com.dite.znpt.domain.vo.ProjectBudgetInfoDetailResp;
+import com.dite.znpt.domain.vo.ProjectBudgetInfoImportReq;
import com.dite.znpt.domain.vo.ProjectBudgetInfoListReq;
import com.dite.znpt.domain.vo.ProjectBudgetInfoListResp;
-import com.dite.znpt.domain.vo.ProjectBudgetInfoReq;
-import com.dite.znpt.domain.vo.ProjectBudgetInfoResp;
+import org.springframework.web.multipart.MultipartFile;
import java.util.List;
@@ -15,34 +16,16 @@ import java.util.List;
* @Description: 项目预算信息表服务接口
*/
public interface ProjectBudgetInfoService extends IService {
+ List list(ProjectBudgetInfoListReq projectBudgetInfoListReq);
- /**
- * 功能描述:查询项目预算信息列表
- *
- * @param projectBudgetInfoReq 项目预算信息
- * @return {@link List }<{@link ProjectBudgetInfoListResp }>
- * @author huise23
- * @date 2025/07/17 21:58
- **/
- List selectList(ProjectBudgetInfoListReq projectBudgetInfoReq);
+ List page(ProjectBudgetInfoListReq projectBudgetInfoListReq);
- /**
- * 功能描述:根据项目id获取项目预算信息列表
- *
- * @param projectId 项目id
- * @return {@link List }<{@link ProjectBudgetInfoListResp }>
- * @author huise23
- * @date 2025/07/17 21:58
- **/
- List detailByProjectId(String projectId);
+ void saveData(ProjectBudgetInfoImportReq req);
- /**
- * 功能描述:新增项目预算信息
- *
- * @param projectBudgetInfoReq 项目预算信息
- * @author huise23
- * @date 2025/07/17 21:58
- **/
- void saveData(List projectBudgetInfoReq);
+ void saveData(ProjectBudgetInfoImportReq req, MultipartFile[] files);
+
+ ProjectBudgetInfoDetailResp detailByProjectId(String projectId);
+
+ void delete(String budgetId);
}
diff --git a/core/src/main/java/com/dite/znpt/service/ProjectDailyReportService.java b/core/src/main/java/com/dite/znpt/service/ProjectDailyReportService.java
new file mode 100644
index 0000000..e11a964
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/service/ProjectDailyReportService.java
@@ -0,0 +1,74 @@
+package com.dite.znpt.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.dite.znpt.domain.entity.ProjectDailyReportEntity;
+import com.dite.znpt.domain.vo.ProjectDailyReportListReq;
+import com.dite.znpt.domain.vo.ProjectDailyReportReq;
+import com.dite.znpt.domain.vo.ProjectDailyReportResp;
+
+import java.util.List;
+
+/**
+ * @author huise23
+ * @date 2025/07/27 19:51
+ * @Description: 项目日报信息表服务接口
+ */
+public interface ProjectDailyReportService extends IService {
+
+ /**
+ * 功能描述:查询项目日报信息列表
+ *
+ * @param projectDailyReportReq 项目日报信息
+ * @return {@link List }<{@link ProjectDailyReportResp }>
+ * @author huise23
+ * @date 2025/07/27 19:51
+ **/
+ List selectList(ProjectDailyReportListReq projectDailyReportReq);
+
+ /**
+ * 功能描述:查询单条项目日报信息
+ *
+ * @param reportId 项目日报信息Id
+ * @return {@link ProjectDailyReportResp }
+ * @author huise23
+ * @date 2025/07/27 19:51
+ **/
+ ProjectDailyReportResp selectById(String reportId);
+
+ /**
+ * 功能描述:新增项目日报信息
+ *
+ * @param projectDailyReportReq 项目日报信息
+ * @author huise23
+ * @date 2025/07/27 19:51
+ **/
+ void saveData(ProjectDailyReportReq projectDailyReportReq);
+
+ /**
+ * 功能描述:更新项目日报信息
+ *
+ * @param projectDailyReportReq 项目日报信息
+ * @author huise23
+ * @date 2025/07/27 19:51
+ **/
+ void updateData(ProjectDailyReportReq projectDailyReportReq);
+
+ /**
+ * 功能描述:删除项目日报信息
+ *
+ * @param reportId 项目日报信息Id
+ * @author huise23
+ * @date 2025/07/27 19:51
+ **/
+ void deleteById(String reportId);
+
+ /**
+ * 功能描述:我今天
+ *
+ * @return {@link ProjectDailyReportResp }
+ * @author cuizhibin
+ * @date 2025/07/27 19:53
+ **/
+ ProjectDailyReportResp myToday(String projectId);
+}
+
diff --git a/core/src/main/java/com/dite/znpt/service/ProjectMemberService.java b/core/src/main/java/com/dite/znpt/service/ProjectMemberService.java
new file mode 100644
index 0000000..939ff8a
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/service/ProjectMemberService.java
@@ -0,0 +1,51 @@
+package com.dite.znpt.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.dite.znpt.domain.PageResult;
+import com.dite.znpt.domain.entity.ProjectMemberEntity;
+import com.dite.znpt.domain.vo.*;
+
+/**
+ * @author wangna
+ * @date 2025/08/05
+ * @Description: 项目人员关联表服务接口
+ */
+public interface ProjectMemberService extends IService {
+
+ /**
+ * 获取项目团队成员列表(支持筛选、分页、搜索)
+ */
+ PageResult getProjectTeamMembers(TeamMemberQuery query);
+
+ /**
+ * 创建团队成员
+ */
+ ProjectMemberResp createTeamMember(TeamMemberReq req);
+
+ /**
+ * 更新团队成员信息
+ */
+ ProjectMemberResp updateTeamMember(String memberId, TeamMemberReq req);
+
+ /**
+ * 删除团队成员(支持单个或批量删除)
+ */
+ boolean deleteTeamMembers(String... memberIds);
+
+ // ========================== 项目看板相关方法 ==========================
+
+ /**
+ * 获取项目看板统计数据
+ */
+ ProjectKanbanStatsResp getProjectKanbanStats();
+
+ /**
+ * 获取项目看板数据
+ */
+ ProjectKanbanDataResp getProjectKanbanData();
+
+ /**
+ * 获取项目详情
+ */
+ ProjectDetailResp getProjectDetail(String projectId);
+}
\ No newline at end of file
diff --git a/core/src/main/java/com/dite/znpt/service/RegulationConfirmationService.java b/core/src/main/java/com/dite/znpt/service/RegulationConfirmationService.java
new file mode 100644
index 0000000..f92847b
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/service/RegulationConfirmationService.java
@@ -0,0 +1,14 @@
+package com.dite.znpt.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.dite.znpt.domain.entity.RegulationConfirmationEntity;
+
+/**
+ * @author wangna
+ * @date 2025/07/28
+ * @Description: 制度确认Service接口
+ */
+public interface RegulationConfirmationService extends IService {
+ // 继承自IService的方法已经足够使用
+ // 包括:save, update, remove, list, page, lambdaQuery等
+}
\ No newline at end of file
diff --git a/core/src/main/java/com/dite/znpt/service/RegulationService.java b/core/src/main/java/com/dite/znpt/service/RegulationService.java
new file mode 100644
index 0000000..25652f9
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/service/RegulationService.java
@@ -0,0 +1,68 @@
+package com.dite.znpt.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.dite.znpt.domain.entity.RegulationEntity;
+import com.dite.znpt.domain.Result;
+
+/**
+ * @author wangna
+ * @date 2025/07/29
+ * @Description: 制度规范仓库Service接口
+ */
+public interface RegulationService extends IService {
+
+ /**
+ * 获取制度列表
+ * @param page 页码
+ * @param pageSize 页大小
+ * @param status 状态
+ * @param type 类型
+ * @param title 提案标题
+ * @param proposer 提案人
+ * @param confirmStatus 确认状态
+ * @return 结果
+ */
+ Result getRegulationList(Integer page, Integer pageSize, String status, String type, String title, String proposer, String confirmStatus);
+
+ /**
+ * 创建制度提案
+ * @param regulation 制度信息
+ * @return 结果
+ */
+ Result createRegulationProposal(RegulationEntity regulation);
+
+ /**
+ * 更新制度提案
+ * @param regulation 制度信息
+ * @return 结果
+ */
+ Result updateRegulationProposal(RegulationEntity regulation);
+
+ /**
+ * 删除制度提案
+ * @param regulationId 制度ID
+ * @return 结果
+ */
+ Result deleteRegulationProposal(String regulationId);
+
+ /**
+ * 获取制度详情
+ * @param regulationId 制度ID
+ * @return 结果
+ */
+ Result getRegulationDetail(String regulationId);
+
+ /**
+ * 确认制度知晓
+ * @param regulationId 制度ID
+ * @return 结果
+ */
+ Result confirmRegulation(String regulationId);
+
+ /**
+ * 公示制度
+ * @param regulationId 制度ID
+ * @return 结果
+ */
+ Result approveRegulation(String regulationId);
+}
\ No newline at end of file
diff --git a/core/src/main/java/com/dite/znpt/service/RegulationTypeService.java b/core/src/main/java/com/dite/znpt/service/RegulationTypeService.java
new file mode 100644
index 0000000..e221f60
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/service/RegulationTypeService.java
@@ -0,0 +1,45 @@
+package com.dite.znpt.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.dite.znpt.domain.entity.RegulationTypeEntity;
+import com.dite.znpt.domain.Result;
+
+/**
+ * 制度类型Service接口
+ * @author wangna
+ * @date 2025/07/29
+ */
+public interface RegulationTypeService extends IService {
+
+ /**
+ * 获取制度类型列表
+ * @param page 页码
+ * @param size 页大小
+ * @param typeName 类型名称
+ * @param status 是否启用(1-启用,0-禁用)
+ * @param remark 备注
+ * @return 结果
+ */
+ Result getRegulationTypes(Integer page, Integer size, String typeName, String status, String remark);
+
+ /**
+ * 创建制度类型
+ * @param regulationType 制度类型信息
+ * @return 结果
+ */
+ Result createRegulationType(RegulationTypeEntity regulationType);
+
+ /**
+ * 更新制度类型
+ * @param regulationType 制度类型信息
+ * @return 结果
+ */
+ Result updateRegulationType(RegulationTypeEntity regulationType);
+
+ /**
+ * 删除制度类型
+ * @param typeId 类型ID
+ * @return 结果
+ */
+ Result deleteRegulationType(String typeId);
+}
\ No newline at end of file
diff --git a/core/src/main/java/com/dite/znpt/service/RoleMenuService.java b/core/src/main/java/com/dite/znpt/service/RoleMenuService.java
index f7f150b..aa837f5 100644
--- a/core/src/main/java/com/dite/znpt/service/RoleMenuService.java
+++ b/core/src/main/java/com/dite/znpt/service/RoleMenuService.java
@@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.dite.znpt.domain.entity.RoleMenuEntity;
import com.dite.znpt.domain.vo.RoleMenuReq;
-import java.util.List;
/**
* @author Bear.G
@@ -12,6 +11,5 @@ import java.util.List;
* @description
*/
public interface RoleMenuService extends IService {
-
void bindRoleMenu(RoleMenuReq req);
}
diff --git a/core/src/main/java/com/dite/znpt/service/TenderInfoService.java b/core/src/main/java/com/dite/znpt/service/TenderInfoService.java
new file mode 100644
index 0000000..a767f49
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/service/TenderInfoService.java
@@ -0,0 +1,23 @@
+package com.dite.znpt.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.dite.znpt.domain.entity.TenderInfoEntity;
+import com.dite.znpt.domain.vo.TenderInfoReq;
+import com.dite.znpt.domain.vo.TenderInfoResp;
+
+import java.util.List;
+
+/**
+ * @author Bear.G
+ * @date 2025/7/28/周一 16:09
+ * @description
+ */
+public interface TenderInfoService extends IService {
+ List page(String projectName);
+ List list(String projectName);
+ TenderInfoResp detail(String tenderInfoId);
+ void save(TenderInfoReq req);
+ void update(String tenderInfoId, TenderInfoReq req);
+ void deleteById(String tenderInfoId);
+
+}
diff --git a/core/src/main/java/com/dite/znpt/service/UserPostService.java b/core/src/main/java/com/dite/znpt/service/UserPostService.java
index c2a86ab..1060aff 100644
--- a/core/src/main/java/com/dite/znpt/service/UserPostService.java
+++ b/core/src/main/java/com/dite/znpt/service/UserPostService.java
@@ -1,7 +1,6 @@
package com.dite.znpt.service;
import com.baomidou.mybatisplus.extension.service.IService;
-import com.dite.znpt.domain.entity.PostEntity;
import com.dite.znpt.domain.entity.UserPostEntity;
import com.dite.znpt.domain.vo.PostResp;
import com.dite.znpt.domain.vo.UserResp;
diff --git a/core/src/main/java/com/dite/znpt/service/impl/AttachInfoServiceImpl.java b/core/src/main/java/com/dite/znpt/service/impl/AttachInfoServiceImpl.java
index 93c77dd..7236292 100644
--- a/core/src/main/java/com/dite/znpt/service/impl/AttachInfoServiceImpl.java
+++ b/core/src/main/java/com/dite/znpt/service/impl/AttachInfoServiceImpl.java
@@ -30,6 +30,7 @@ import java.net.URLEncoder;
import java.rmi.ServerException;
import java.util.ArrayList;
import java.util.List;
+import java.util.Objects;
import java.util.stream.Collectors;
/**
@@ -51,9 +52,9 @@ public class AttachInfoServiceImpl extends ServiceImpl listByBusinessIds(List businessIds, String businessType) {
+ public List listByBusinessIds(List businessIds, AttachBusinessTypeEnum businessType) {
return lambdaQuery().in(AttachInfoEntity::getBusinessId, businessIds)
- .eq(StrUtil.isNotEmpty(businessType), AttachInfoEntity::getBusinessType, businessType)
+ .eq(Objects.nonNull(businessType), AttachInfoEntity::getBusinessType, businessType.getCode())
.list();
}
@@ -81,9 +82,11 @@ public class AttachInfoServiceImpl extends ServiceImpl batchUpload(String imageId, MultipartFile[] files) {
ImageEntity image = imageMapper.selectById(imageId);
if(null == image){
@@ -120,7 +122,7 @@ public class AudioFileInfoServiceImpl extends ServiceImpl implements AutoExpirationService {
+
+ @Autowired
+ private ExpirationResultMapper expirationResultMapper;
+
+ @Autowired
+ private JdbcTemplate jdbcTemplate;
+
+ @Override
+ public void executeAutoExpirationCheck() {
+ log.info("开始执行自动到期检测...");
+
+ // 获取所有启用的配置
+ List configs = lambdaQuery()
+ .eq(AutoExpirationConfigEntity::getEnabled, "1")
+ .eq(AutoExpirationConfigEntity::getDelFlag, "0")
+ .list();
+
+ if (CollUtil.isEmpty(configs)) {
+ log.info("没有找到启用的到期检测配置");
+ return;
+ }
+
+ // 清空之前的检测结果
+ expirationResultMapper.delete(null);
+
+ // 逐个检测每个配置的表
+ for (AutoExpirationConfigEntity config : configs) {
+ try {
+ checkTableExpiration(config);
+ } catch (Exception e) {
+ log.error("检测表 {} 时发生错误: {}", config.getTableName(), e.getMessage(), e);
+ }
+ }
+
+ log.info("自动到期检测完成,共检测 {} 个表", configs.size());
+ }
+
+ @Override
+ public List getExpirationResults(String status) {
+ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+ wrapper.eq(ExpirationResultEntity::getDelFlag, "0");
+
+ if (StrUtil.isNotBlank(status)) {
+ wrapper.eq(ExpirationResultEntity::getStatus, status);
+ }
+
+ wrapper.orderByDesc(ExpirationResultEntity::getExpireDate);
+
+ return expirationResultMapper.selectList(wrapper);
+ }
+
+ @Override
+ public Map getStatistics() {
+ Map statistics = new HashMap<>();
+
+ // 统计各状态的数量
+ List allResults = expirationResultMapper.selectList(null);
+
+ long normalCount = allResults.stream()
+ .filter(r -> "0".equals(r.getStatus()))
+ .count();
+ long expiringCount = allResults.stream()
+ .filter(r -> "1".equals(r.getStatus()))
+ .count();
+ long expiredCount = allResults.stream()
+ .filter(r -> "2".equals(r.getStatus()))
+ .count();
+
+ statistics.put("total", allResults.size());
+ statistics.put("normal", normalCount);
+ statistics.put("expiring", expiringCount);
+ statistics.put("expired", expiredCount);
+
+ return statistics;
+ }
+
+ @Override
+ public void checkTableExpiration(String tableName) {
+ AutoExpirationConfigEntity config = lambdaQuery()
+ .eq(AutoExpirationConfigEntity::getTableName, tableName)
+ .eq(AutoExpirationConfigEntity::getEnabled, "1")
+ .one();
+
+ if (config == null) {
+ throw new RuntimeException("未找到表 " + tableName + " 的配置信息");
+ }
+
+ checkTableExpiration(config);
+ }
+
+ /**
+ * 检测指定配置的表
+ */
+ private void checkTableExpiration(AutoExpirationConfigEntity config) {
+ log.info("开始检测表: {}", config.getTableName());
+
+ // 构建查询SQL
+ String sql = buildQuerySql(config);
+
+ try {
+ List