From 42a7552b9c8603aeab7f0785eb05270dfbeb0bd3 Mon Sep 17 00:00:00 2001 From: zxl <763096477@qq.com> Date: 星期日, 02 三月 2025 10:16:20 +0800 Subject: [PATCH] Merge branch 'master' into dev --- business/src/main/java/com/ycl/domain/form/ProjectInvestmentFundingForm.java | 3 business/src/main/java/com/ycl/domain/form/ProjectEngineeringForm.java | 55 ++ business/src/main/java/com/ycl/service/impl/ProjectUnitRegistrationInfoServiceImpl.java | 7 business/src/main/java/com/ycl/domain/entity/ProjectEngineering.java | 44 + common/src/main/java/com/ycl/common/enums/business/ProjectCategoryEnum.java | 18 business/src/main/java/com/ycl/controller/ProjectEngineeringController.java | 83 +++ business/src/main/java/com/ycl/mapper/ProjectEngineeringMapper.java | 34 + start/src/main/java/com/ycl/web/controller/system/SysDeptController.java | 5 start/src/main/resources/application.yml | 3 system/src/main/java/com/ycl/system/domain/base/AbsUUIDEntity.java | 34 + system/src/main/java/com/ycl/system/domain/base/AbsUUIDVo.java | 24 business/src/main/java/com/ycl/domain/query/ProjectProcessQuery.java | 2 business/src/main/java/com/ycl/mapper/ProjectInfoMapper.java | 2 flowable/src/main/java/com/ycl/domain/vo/FormDetailVO.java | 7 business/src/main/java/com/ycl/domain/form/ProjectInfoForm.java | 26 business/src/main/resources/mapper/ProjectProcessMapper.xml | 43 + business/src/main/java/com/ycl/domain/vo/CustomerTaskVO.java | 6 project_management.sql | 2 business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java | 220 +++++-- flowable/src/main/java/com/ycl/service/common/TaskCommonService.java | 6 business/src/main/java/com/ycl/domain/query/ProjectInfoQuery.java | 6 business/src/main/java/com/ycl/domain/vo/ProjectInvestmentFundingVO.java | 3 start/src/main/java/com/ycl/Application.java | 2 system/src/main/java/com/ycl/system/domain/base/AbsUUIDForm.java | 20 business/src/main/java/com/ycl/domain/query/ProjectEngineeringQuery.java | 34 + business/src/main/resources/mapper/ProjectInfoMapper.xml | 59 +- business/src/main/java/com/ycl/domain/entity/ProjectInvestmentFunding.java | 4 business/src/main/java/com/ycl/domain/vo/ProjectEngineeringVO.java | 55 ++ system/src/main/java/com/ycl/system/mapper/SysDeptMapper.java | 2 system/src/main/resources/mapper/system/SysUserMapper.xml | 5 business/src/main/resources/mapper/ProjectInvestmentFundingMapper.xml | 3 business/src/main/java/com/ycl/domain/vo/ProjectInfoVO.java | 38 business/src/main/java/com/ycl/service/impl/ProjectEngineeringServiceImpl.java | 119 ++++ system/src/main/java/com/ycl/system/service/ISysDeptService.java | 8 system/src/main/resources/mapper/system/SysDeptMapper.xml | 14 business/src/main/java/com/ycl/service/ProjectEngineeringService.java | 65 ++ business/src/main/java/com/ycl/domain/entity/ProjectInfo.java | 22 business/src/main/java/com/ycl/service/impl/ProjectInfoServiceImpl.java | 341 +++++++---- business/src/main/resources/mapper/ProjectEngineeringMapper.xml | 64 ++ business/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java | 15 common/pom.xml | 13 common/src/main/java/com/ycl/common/enums/YesOrNo.java | 32 + system/src/main/java/com/ycl/system/service/impl/SysDeptServiceImpl.java | 5 business/src/main/java/com/ycl/service/impl/ProjectInvestmentFundingServiceImpl.java | 7 business/src/main/java/com/ycl/domain/vo/ProjectProcessVO.java | 11 45 files changed, 1,265 insertions(+), 306 deletions(-) diff --git a/business/src/main/java/com/ycl/controller/ProjectEngineeringController.java b/business/src/main/java/com/ycl/controller/ProjectEngineeringController.java new file mode 100644 index 0000000..febce91 --- /dev/null +++ b/business/src/main/java/com/ycl/controller/ProjectEngineeringController.java @@ -0,0 +1,83 @@ +package com.ycl.controller; + +import com.ycl.common.group.Update; +import com.ycl.common.group.Add; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import lombok.RequiredArgsConstructor; +import java.util.List; +import org.springframework.validation.annotation.Validated; +import javax.validation.constraints.NotEmpty; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import com.ycl.service.ProjectEngineeringService; +import com.ycl.common.base.Result; +import com.ycl.domain.form.ProjectEngineeringForm; +import com.ycl.domain.query.ProjectEngineeringQuery; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +/** + * 椤圭洰宸ョ▼ 鍓嶇鎺у埗鍣� + * + * @author xp + * @since 2025-02-26 + */ +@Validated +@RequiredArgsConstructor +@Api(value = "椤圭洰宸ョ▼", tags = "椤圭洰宸ョ▼绠$悊") +@RestController +@RequestMapping("/project-engineering") +public class ProjectEngineeringController { + + private final ProjectEngineeringService projectEngineeringService; + + @PostMapping + @ApiOperation(value = "娣诲姞", notes = "娣诲姞") +// @PreAuthorize("@ss.hasPermi('projectEngineering:add')") + public Result add(@RequestBody @Validated(Add.class) ProjectEngineeringForm form) { + return projectEngineeringService.add(form); + } + + @PutMapping + @ApiOperation(value = "淇敼", notes = "淇敼") +// @PreAuthorize("@ss.hasPermi('projectEngineering:edit')") + public Result update(@RequestBody @Validated(Update.class) ProjectEngineeringForm form) { + return projectEngineeringService.update(form); + } + + @DeleteMapping("/{id}") + @ApiOperation(value = "ID鍒犻櫎", notes = "ID鍒犻櫎") +// @PreAuthorize("@ss.hasPermi('projectEngineering:del')") + public Result removeById(@PathVariable("id") String id) { + return projectEngineeringService.removeById(id); + } + + @DeleteMapping("/batch") + @ApiOperation(value = "鎵归噺鍒犻櫎", notes = "鎵归噺鍒犻櫎") +// @PreAuthorize("@ss.hasPermi('projectEngineering:del:batch')") + public Result remove(@RequestBody @NotEmpty(message = "璇烽�夋嫨鏁版嵁") List<String> ids) { + return projectEngineeringService.remove(ids); + } + + @GetMapping("/page") + @ApiOperation(value = "鍒嗛〉", notes = "鍒嗛〉") +// @PreAuthorize("@ss.hasPermi('projectEngineering:page')") + public Result page(ProjectEngineeringQuery query) { + return projectEngineeringService.page(query); + } + + @GetMapping("/{id}") + @ApiOperation(value = "璇︽儏", notes = "璇︽儏") +// @PreAuthorize("@ss.hasPermi('projectEngineering:detail')") + public Result detail(@PathVariable("id") String id) { + return projectEngineeringService.detail(id); + } + + @GetMapping("/list") +// @PreAuthorize("@ss.hasPermi('projectEngineering:list')") + @ApiOperation(value = "鍒楄〃", notes = "鍒楄〃") + public Result list() { + return projectEngineeringService.all(); + } +} diff --git a/business/src/main/java/com/ycl/domain/entity/ProjectEngineering.java b/business/src/main/java/com/ycl/domain/entity/ProjectEngineering.java new file mode 100644 index 0000000..af14acc --- /dev/null +++ b/business/src/main/java/com/ycl/domain/entity/ProjectEngineering.java @@ -0,0 +1,44 @@ +package com.ycl.domain.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; + +import com.ycl.system.domain.base.AbsEntity; +import com.ycl.system.domain.base.AbsUUIDEntity; +import lombok.Data; + +/** + * 椤圭洰宸ョ▼ + * + * @author xp + * @since 2025-02-26 + */ +@Data +@TableName("t_project_engineering") +public class ProjectEngineering extends AbsUUIDEntity { + + private static final long serialVersionUID = 1L; + + @TableField("project_info_id") + /** 椤圭洰id */ + private Long projectInfoId; + + @TableField("project_name") + /** 宸ョ▼鍚嶇О */ + private String projectName; + + @TableField("project_type") + /** 椤圭洰鎺ㄨ繘绫诲瀷 */ + private String projectType; + + @TableField("investment_amount") + /** 鎶曡祫棰� */ + private String investmentAmount; + + @TableField("status") + /** 鐘舵�� */ + private String status; + + +} diff --git a/business/src/main/java/com/ycl/domain/entity/ProjectInfo.java b/business/src/main/java/com/ycl/domain/entity/ProjectInfo.java index 177a90a..6b70800 100644 --- a/business/src/main/java/com/ycl/domain/entity/ProjectInfo.java +++ b/business/src/main/java/com/ycl/domain/entity/ProjectInfo.java @@ -62,9 +62,9 @@ /** 鎶曡祫绫诲埆锛�0浼佷笟鎶曡祫锛�1鏀垮簻鎶曡祫锛�2澶栧晢鎶曡祫锛�3澧冨鎶曡祫锛� */ private String investType; -// @TableField("project_phase") -// /** 椤圭洰闃舵(0鍌ㄥ瑙勫垝闃舵, 1椤圭洰鍓嶆湡闃舵, 2瀹炴柦闃舵, 3绔e伐鎶曠敤闃舵) */ -// private String projectPhase; + @TableField("project_phase") + /** 椤圭洰闃舵(1鍌ㄥ瑙勫垝闃舵, 2椤圭洰鍓嶆湡闃舵, 3瀹炴柦闃舵, 4绔e伐鎶曠敤闃舵) */ + private String projectPhase; @TableField("tag") /** 鏍囩 */ @@ -73,6 +73,14 @@ @TableField("competent_department") /** 涓荤閮ㄩ棬(瀵瑰簲瀹℃壒閮ㄩ棬id) */ private String competentDepartment; + + @TableField("competent_department_person") + /** 涓荤閮ㄩ棬鑱旂郴浜� */ + private String competentDepartmentPerson; + + @TableField("competent_department_phone") + /** 涓荤閮ㄩ棬鑱旂郴鏂瑰紡 */ + private String competentDepartmentPhone; @TableField("area") /** 琛屾斂鍖哄煙 */ @@ -164,10 +172,16 @@ @TableField("remark") /** 瀹℃牳淇℃伅 */ private String remark; + @TableField("industry_competent_department") + /** 琛屼笟涓荤閮ㄩ棬 */ private Long industryCompetentDepartment; + @TableField("industry_competent_department_person") - private Long industryCompetentDepartmentPerson; + /** 琛屼笟涓荤閮ㄩ棬鑱旂郴浜� */ + private String industryCompetentDepartmentPerson; + @TableField("department_person_phone") + /** 琛屼笟涓荤閮ㄩ棬鑱旂郴鏂瑰紡 */ private String departmentPersonPhone; } diff --git a/business/src/main/java/com/ycl/domain/entity/ProjectInvestmentFunding.java b/business/src/main/java/com/ycl/domain/entity/ProjectInvestmentFunding.java index 5244337..05953d9 100644 --- a/business/src/main/java/com/ycl/domain/entity/ProjectInvestmentFunding.java +++ b/business/src/main/java/com/ycl/domain/entity/ProjectInvestmentFunding.java @@ -31,6 +31,10 @@ /** 瓒呴暱鏈熺壒鍒浗鍊� */ private String nationalDebt; + @TableField("additional_national_debt") + /** 2023骞村鍙戝浗鍊鸿祫閲� */ + private String additionalNationalDebt; + @TableField("total_investment") /** 椤圭洰鎬绘姇璧勯 */ private String totalInvestment; diff --git a/business/src/main/java/com/ycl/domain/form/ProjectEngineeringForm.java b/business/src/main/java/com/ycl/domain/form/ProjectEngineeringForm.java new file mode 100644 index 0000000..e83ff25 --- /dev/null +++ b/business/src/main/java/com/ycl/domain/form/ProjectEngineeringForm.java @@ -0,0 +1,55 @@ +package com.ycl.domain.form; + +import com.ycl.common.group.Update; +import com.ycl.common.group.Add; +import com.ycl.system.domain.base.AbsForm; +import com.ycl.domain.entity.ProjectEngineering; +import com.ycl.system.domain.base.AbsUUIDForm; +import org.springframework.beans.BeanUtils; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import org.springframework.lang.NonNull; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import java.util.Date; + +/** + * 椤圭洰宸ョ▼琛ㄥ崟 + * + * @author xp + * @since 2025-02-26 + */ +@Data +@ApiModel(value = "ProjectEngineering琛ㄥ崟", description = "椤圭洰宸ョ▼琛ㄥ崟") +public class ProjectEngineeringForm extends AbsUUIDForm { + + @NotNull(message = "椤圭洰id涓嶈兘涓虹┖", groups = {Add.class, Update.class}) + @ApiModelProperty("椤圭洰id") + private Long projectInfoId; + + @NotBlank(message = "宸ョ▼鍚嶇О涓嶈兘涓虹┖", groups = {Add.class, Update.class}) + @ApiModelProperty("宸ョ▼鍚嶇О") + private String projectName; + + @NotBlank(message = "椤圭洰鎺ㄨ繘绫诲瀷涓嶈兘涓虹┖", groups = {Add.class, Update.class}) + @ApiModelProperty("椤圭洰鎺ㄨ繘绫诲瀷") + private String projectType; + + @NotBlank(message = "鎶曡祫棰濅笉鑳戒负绌�", groups = {Add.class, Update.class}) + @ApiModelProperty("鎶曡祫棰�") + private String investmentAmount; + + @NotBlank(message = "鐘舵�佷笉鑳戒负绌�", groups = {Add.class, Update.class}) + @ApiModelProperty("鐘舵��") + private String status; + + public static ProjectEngineering getEntityByForm(@NonNull ProjectEngineeringForm form, ProjectEngineering entity) { + if(entity == null) { + entity = new ProjectEngineering(); + } + BeanUtils.copyProperties(form, entity); + return entity; + } + +} diff --git a/business/src/main/java/com/ycl/domain/form/ProjectInfoForm.java b/business/src/main/java/com/ycl/domain/form/ProjectInfoForm.java index 12b2612..1edaf2d 100644 --- a/business/src/main/java/com/ycl/domain/form/ProjectInfoForm.java +++ b/business/src/main/java/com/ycl/domain/form/ProjectInfoForm.java @@ -15,7 +15,6 @@ import org.springframework.util.CollectionUtils; import javax.validation.constraints.NotBlank; -import java.math.BigDecimal; import java.util.Date; import java.util.List; @@ -60,14 +59,22 @@ @ApiModelProperty("鎶曡祫绫诲埆锛�0浼佷笟鎶曡祫锛�1鏀垮簻鎶曡祫锛�2澶栧晢鎶曡祫锛�3澧冨鎶曡祫锛�") private String investType; - @ApiModelProperty("椤圭洰闃舵(0鍌ㄥ瑙勫垝闃舵, 1椤圭洰鍓嶆湡闃舵, 2瀹炴柦闃舵, 3绔e伐鎶曠敤闃舵)") + @ApiModelProperty("椤圭洰闃舵(1鍌ㄥ瑙勫垝闃舵, 2椤圭洰鍓嶆湡闃舵, 3瀹炴柦闃舵, 4绔e伐鎶曠敤闃舵)") private String projectPhase; @ApiModelProperty("鏍囩") private String tag; @ApiModelProperty("涓荤閮ㄩ棬(瀵瑰簲瀹℃壒閮ㄩ棬id)") - private List<Long> competentDepartmentList; + private String competentDepartment; + + @ApiModelProperty("涓荤閮ㄩ棬鑱旂郴浜�") + /** 涓荤閮ㄩ棬鑱旂郴浜� */ + private String competentDepartmentPerson; + + @ApiModelProperty("涓荤閮ㄩ棬鑱旂郴鏂瑰紡") + /** 涓荤閮ㄩ棬鑱旂郴鏂瑰紡 */ + private String competentDepartmentPhone; @ApiModelProperty("琛屾斂鍖哄煙") private String area; @@ -146,7 +153,7 @@ @ApiModelProperty("琛屼笟涓荤閮ㄩ棬") private Long industryCompetentDepartment; @ApiModelProperty("琛屼笟涓荤閮ㄩ棬鑱旂郴浜�") - private Long industryCompetentDepartmentPerson; + private String industryCompetentDepartmentPerson; @ApiModelProperty("琛屼笟涓荤閮ㄩ棬鑱旂郴鏂瑰紡") private String departmentPersonPhone; @@ -156,25 +163,26 @@ entity = new ProjectInfo(); } BeanUtils.copyProperties(form, entity); - //瀹℃牳閮ㄩ棬杞崲 - List<Long> competentDepartmentList = form.getCompetentDepartmentList(); - if(!CollectionUtils.isEmpty(competentDepartmentList)){ - entity.setCompetentDepartment(StringUtils.join(competentDepartmentList, ",")); - } //璧勯噾绫诲瀷杞崲 List<String> fundTypeList = form.getFundTypeList(); if(!CollectionUtils.isEmpty(fundTypeList)){ entity.setFundType(StringUtils.join(fundTypeList, ",")); + } else { + entity.setFundType(""); } //閲嶇偣鍒嗙被杞崲 List<String> importanceTypeList = form.getImportanceTypeList(); if(!CollectionUtils.isEmpty(importanceTypeList)){ entity.setImportanceType(StringUtils.join(importanceTypeList, ",")); + } else { + entity.setImportanceType(""); } //绠$悊褰掑彛杞崲 List<String> managementCentralizationList = form.getManagementCentralizationList(); if(!CollectionUtils.isEmpty(managementCentralizationList)){ entity.setManagementCentralization(StringUtils.join(managementCentralizationList, ",")); + } else { + entity.setManagementCentralization(""); } return entity; } diff --git a/business/src/main/java/com/ycl/domain/form/ProjectInvestmentFundingForm.java b/business/src/main/java/com/ycl/domain/form/ProjectInvestmentFundingForm.java index aff965e..078a176 100644 --- a/business/src/main/java/com/ycl/domain/form/ProjectInvestmentFundingForm.java +++ b/business/src/main/java/com/ycl/domain/form/ProjectInvestmentFundingForm.java @@ -31,6 +31,9 @@ @ApiModelProperty("瓒呴暱鏈熺壒鍒浗鍊�") private String nationalDebt; + @ApiModelProperty("2023骞村鍙戝浗鍊鸿祫閲�") + private String additionalNationalDebt; + @ApiModelProperty("椤圭洰鎬绘姇璧勯") private String totalInvestment; diff --git a/business/src/main/java/com/ycl/domain/query/ProjectEngineeringQuery.java b/business/src/main/java/com/ycl/domain/query/ProjectEngineeringQuery.java new file mode 100644 index 0000000..1500e54 --- /dev/null +++ b/business/src/main/java/com/ycl/domain/query/ProjectEngineeringQuery.java @@ -0,0 +1,34 @@ +package com.ycl.domain.query; + +import com.ycl.system.domain.base.AbsQuery; +import java.util.List; +import org.springframework.lang.NonNull; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 椤圭洰宸ョ▼鏌ヨ + * + * @author xp + * @since 2025-02-26 + */ +@Data +@ApiModel(value = "ProjectEngineering鏌ヨ鍙傛暟", description = "椤圭洰宸ョ▼鏌ヨ鍙傛暟") +public class ProjectEngineeringQuery extends AbsQuery { + + @ApiModelProperty("涓婚」鐩�") + private Long projectInfoId; + + @ApiModelProperty("宸ョ▼鍚�") + private String projectName; + + @ApiModelProperty("寮�宸ョ姸鎬�") + private String status; + + @ApiModelProperty("娴佺▼鎺ㄨ繘绫诲瀷") + private String projectType; +} + diff --git a/business/src/main/java/com/ycl/domain/query/ProjectInfoQuery.java b/business/src/main/java/com/ycl/domain/query/ProjectInfoQuery.java index a88915e..4b8d65b 100644 --- a/business/src/main/java/com/ycl/domain/query/ProjectInfoQuery.java +++ b/business/src/main/java/com/ycl/domain/query/ProjectInfoQuery.java @@ -58,5 +58,11 @@ private Integer usedStatus; //鏌ヨ鏉′欢涓荤閮ㄩ棬 private Long competentDepartment; + + @ApiModelProperty("鏄惁鏄紓甯搁」鐩煡璇細0 涓嶆槸 1鏄�") + private Integer exe; + + @ApiModelProperty("鏄惁鏄」鐩腑蹇冩煡璇細0 涓嶆槸 1鏄�") + private Integer center; } diff --git a/business/src/main/java/com/ycl/domain/query/ProjectProcessQuery.java b/business/src/main/java/com/ycl/domain/query/ProjectProcessQuery.java index caece21..7d8676d 100644 --- a/business/src/main/java/com/ycl/domain/query/ProjectProcessQuery.java +++ b/business/src/main/java/com/ycl/domain/query/ProjectProcessQuery.java @@ -46,7 +46,7 @@ private String fundType; - /** 椤圭洰闃舵(0鍌ㄥ瑙勫垝闃舵, 1椤圭洰鍓嶆湡闃舵, 2瀹炴柦闃舵, 3绔e伐鎶曠敤闃舵) */ + /** 椤圭洰闃舵(1鍌ㄥ瑙勫垝闃舵, 2椤圭洰鍓嶆湡闃舵, 3瀹炴柦闃舵, 4绔e伐鎶曠敤闃舵) */ private String projectPhase; /** 鎶曡祫绫诲埆锛�0浼佷笟鎶曡祫锛�1鏀垮簻鎶曡祫锛�2澶栧晢鎶曡祫锛�3澧冨鎶曡祫锛� */ diff --git a/business/src/main/java/com/ycl/domain/vo/CustomerTaskVO.java b/business/src/main/java/com/ycl/domain/vo/CustomerTaskVO.java index b346939..d8bed24 100644 --- a/business/src/main/java/com/ycl/domain/vo/CustomerTaskVO.java +++ b/business/src/main/java/com/ycl/domain/vo/CustomerTaskVO.java @@ -64,17 +64,17 @@ /** * 鍙戣捣浜哄鍚� */ - private String promoterName; + private List<String> promoterName; /** * 鍙戣捣浜哄崟浣� */ - private String promoterUnitId; + private List<String> promoterUnitId; /** * 鍙戣捣浜哄崟浣嶅悕绉� */ - private String promoterUnitName; + private List<String> promoterUnitName; /** * 澶勭悊浜� diff --git a/business/src/main/java/com/ycl/domain/vo/ProjectEngineeringVO.java b/business/src/main/java/com/ycl/domain/vo/ProjectEngineeringVO.java new file mode 100644 index 0000000..20f31b2 --- /dev/null +++ b/business/src/main/java/com/ycl/domain/vo/ProjectEngineeringVO.java @@ -0,0 +1,55 @@ +package com.ycl.domain.vo; + +import com.ycl.system.domain.base.AbsUUIDVo; +import com.ycl.system.domain.base.AbsVo; +import com.ycl.domain.entity.ProjectEngineering; +import java.util.List; +import org.springframework.lang.NonNull; +import org.springframework.beans.BeanUtils; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import java.util.Date; + +/** + * 椤圭洰宸ョ▼灞曠ず + * + * @author xp + * @since 2025-02-26 + */ +@Data +@ApiModel(value = "椤圭洰宸ョ▼鍝嶅簲鏁版嵁", description = "椤圭洰宸ョ▼鍝嶅簲鏁版嵁") +public class ProjectEngineeringVO extends AbsUUIDVo { + + /** 椤圭洰id */ + @ApiModelProperty("椤圭洰id") + private Long projectInfoId; + + @ApiModelProperty("涓婚」鐩悕绉�") + private String projectInfoName; + + /** 宸ョ▼鍚嶇О */ + @ApiModelProperty("宸ョ▼鍚嶇О") + private String projectName; + + /** 椤圭洰鎺ㄨ繘绫诲瀷 */ + @ApiModelProperty("椤圭洰鎺ㄨ繘绫诲瀷") + private String projectType; + + /** 鎶曡祫棰� */ + @ApiModelProperty("鎶曡祫棰�") + private String investmentAmount; + + /** 鐘舵�� */ + @ApiModelProperty("鐘舵��") + private String status; + + public static ProjectEngineeringVO getVoByEntity(@NonNull ProjectEngineering entity, ProjectEngineeringVO vo) { + if(vo == null) { + vo = new ProjectEngineeringVO(); + } + BeanUtils.copyProperties(entity, vo); + return vo; + } + +} diff --git a/business/src/main/java/com/ycl/domain/vo/ProjectInfoVO.java b/business/src/main/java/com/ycl/domain/vo/ProjectInfoVO.java index 7c7d0f3..5dbf816 100644 --- a/business/src/main/java/com/ycl/domain/vo/ProjectInfoVO.java +++ b/business/src/main/java/com/ycl/domain/vo/ProjectInfoVO.java @@ -66,8 +66,8 @@ @ApiModelProperty("鎶曡祫绫诲埆锛�0浼佷笟鎶曡祫锛�1鏀垮簻鎶曡祫锛�2澶栧晢鎶曡祫锛�3澧冨鎶曡祫锛�") private String investType; - /** 椤圭洰闃舵(0鍌ㄥ瑙勫垝闃舵, 1椤圭洰鍓嶆湡闃舵, 2瀹炴柦闃舵, 3绔e伐鎶曠敤闃舵) */ - @ApiModelProperty("椤圭洰闃舵(0鍌ㄥ瑙勫垝闃舵, 1椤圭洰鍓嶆湡闃舵, 2瀹炴柦闃舵, 3绔e伐鎶曠敤闃舵)") + /** 椤圭洰闃舵(1鍌ㄥ瑙勫垝闃舵, 2椤圭洰鍓嶆湡闃舵, 3瀹炴柦闃舵, 4绔e伐鎶曠敤闃舵) */ + @ApiModelProperty("椤圭洰闃舵(1鍌ㄥ瑙勫垝闃舵, 2椤圭洰鍓嶆湡闃舵, 3瀹炴柦闃舵, 4绔e伐鎶曠敤闃舵)") private String projectPhase; /** 鏍囩 */ @@ -76,12 +76,16 @@ /** 涓荤閮ㄩ棬(瀵瑰簲瀹℃壒閮ㄩ棬id) */ @ApiModelProperty("涓荤閮ㄩ棬(瀵瑰簲瀹℃壒閮ㄩ棬id)") - private List<Long> competentDepartmentList; - - - - private String competentDepartment; + + @ApiModelProperty("涓荤閮ㄩ棬鑱旂郴浜�") + /** 涓荤閮ㄩ棬鑱旂郴浜� */ + private String competentDepartmentPerson; + + @ApiModelProperty("涓荤閮ㄩ棬鑱旂郴鏂瑰紡") + /** 涓荤閮ㄩ棬鑱旂郴鏂瑰紡 */ + private String competentDepartmentPhone; + /** 琛屾斂鍖哄煙 */ @ApiModelProperty("琛屾斂鍖哄煙") private String area; @@ -184,7 +188,7 @@ @ApiModelProperty("琛屼笟涓荤閮ㄩ棬") private Long industryCompetentDepartment; @ApiModelProperty("琛屼笟涓荤閮ㄩ棬鑱旂郴浜�") - private Long industryCompetentDepartmentPerson; + private String industryCompetentDepartmentPerson; @ApiModelProperty("琛屼笟涓荤閮ㄩ棬鑱旂郴鏂瑰紡") private String departmentPersonPhone; @@ -203,14 +207,7 @@ } BeanUtils.copyProperties(entity, vo); - //涓荤閮ㄩ棬杞垚list - String competentDepartment = entity.getCompetentDepartment(); - if(!StringUtils.isBlank(competentDepartment)){ - List<Long> list = Arrays.stream(competentDepartment.split(",")) - .map(Long::parseLong) - .collect(Collectors.toList()); - vo.setCompetentDepartmentList(list); - } + //绠$悊褰掑彛杞崲 String managementCentralization = entity.getManagementCentralization(); if(!StringUtils.isBlank(managementCentralization)){ @@ -233,14 +230,6 @@ } //杞崲瀛楃涓查泦鍚堝瓧娈� public static void transform(@NonNull ProjectInfoVO vo) { - //涓荤閮ㄩ棬杞垚list - String competentDepartment = vo.getCompetentDepartment(); - if(!StringUtils.isBlank(competentDepartment)){ - List<Long> list = Arrays.stream(competentDepartment.split(",")) - .map(Long::parseLong) - .collect(Collectors.toList()); - vo.setCompetentDepartmentList(list); - } //绠$悊褰掑彛杞崲 String managementCentralization = vo.getManagementCentralization(); if(!StringUtils.isBlank(managementCentralization)){ @@ -248,7 +237,6 @@ } //鍒嗙被绫诲瀷杞崲 - String importanceType = vo.getImportanceType(); if (!StringUtils.isBlank(importanceType)) { vo.setImportanceTypeList(Arrays.asList(importanceType.split(","))); diff --git a/business/src/main/java/com/ycl/domain/vo/ProjectInvestmentFundingVO.java b/business/src/main/java/com/ycl/domain/vo/ProjectInvestmentFundingVO.java index fa229ab..684962b 100644 --- a/business/src/main/java/com/ycl/domain/vo/ProjectInvestmentFundingVO.java +++ b/business/src/main/java/com/ycl/domain/vo/ProjectInvestmentFundingVO.java @@ -30,6 +30,9 @@ @ApiModelProperty("瓒呴暱鏈熺壒鍒浗鍊�") private String nationalDebt; + @ApiModelProperty("2023骞村鍙戝浗鍊鸿祫閲�") + private String additionalNationalDebt; + /** 椤圭洰鎬绘姇璧勯 */ @ApiModelProperty("椤圭洰鎬绘姇璧勯") private String totalInvestment; diff --git a/business/src/main/java/com/ycl/domain/vo/ProjectProcessVO.java b/business/src/main/java/com/ycl/domain/vo/ProjectProcessVO.java index 703f8e9..356b9c3 100644 --- a/business/src/main/java/com/ycl/domain/vo/ProjectProcessVO.java +++ b/business/src/main/java/com/ycl/domain/vo/ProjectProcessVO.java @@ -9,7 +9,9 @@ import org.springframework.lang.NonNull; import java.math.BigDecimal; +import java.util.ArrayList; import java.util.Date; +import java.util.List; /** * 娴佺▼鎺ㄨ繘鍒楄〃淇℃伅琛ㄥ睍绀� @@ -36,4 +38,13 @@ @ApiModelProperty("娴佺▼鏄惁鎸傝捣/鏆傚仠") private boolean suspended; + + @ApiModelProperty("鎶曡祫棰�") + private String investmentAmount; + + @ApiModelProperty("寮�宸ョ姸鎬�") + private String status; + + @ApiModelProperty("宸ョ▼鍒楄〃") + private List<ProjectEngineeringVO> children = new ArrayList<>(); } diff --git a/business/src/main/java/com/ycl/mapper/ProjectEngineeringMapper.java b/business/src/main/java/com/ycl/mapper/ProjectEngineeringMapper.java new file mode 100644 index 0000000..4166216 --- /dev/null +++ b/business/src/main/java/com/ycl/mapper/ProjectEngineeringMapper.java @@ -0,0 +1,34 @@ +package com.ycl.mapper; + +import com.ycl.domain.entity.ProjectEngineering; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ycl.domain.vo.ProjectEngineeringVO; +import com.ycl.domain.form.ProjectEngineeringForm; +import com.ycl.domain.query.ProjectEngineeringQuery; +import java.util.List; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * 椤圭洰宸ョ▼ Mapper 鎺ュ彛 + * + * @author xp + * @since 2025-02-26 + */ +@Mapper +public interface ProjectEngineeringMapper extends BaseMapper<ProjectEngineering> { + + /** + * id鏌ユ壘椤圭洰宸ョ▼ + * @param id + * @return + */ + ProjectEngineeringVO getById(String id); + + /** + * 鍒嗛〉 + */ + IPage getPage(IPage page, @Param("query") ProjectEngineeringQuery query); + +} diff --git a/business/src/main/java/com/ycl/mapper/ProjectInfoMapper.java b/business/src/main/java/com/ycl/mapper/ProjectInfoMapper.java index 8667a1f..97b7358 100644 --- a/business/src/main/java/com/ycl/mapper/ProjectInfoMapper.java +++ b/business/src/main/java/com/ycl/mapper/ProjectInfoMapper.java @@ -35,7 +35,7 @@ * 鍒嗛〉 */ @DataScope(deptAlias = "d") - @InterceptorIgnore(tenantLine = "true") +// @InterceptorIgnore(tenantLine = "true") IPage getPage(@Param("query") ProjectInfoQuery query, IPage page); @DataScope(deptAlias = "d") diff --git a/business/src/main/java/com/ycl/service/ProjectEngineeringService.java b/business/src/main/java/com/ycl/service/ProjectEngineeringService.java new file mode 100644 index 0000000..a68e5a8 --- /dev/null +++ b/business/src/main/java/com/ycl/service/ProjectEngineeringService.java @@ -0,0 +1,65 @@ +package com.ycl.service; + +import com.ycl.domain.entity.ProjectEngineering; +import com.baomidou.mybatisplus.extension.service.IService; +import com.ycl.common.base.Result; +import com.ycl.domain.form.ProjectEngineeringForm; +import com.ycl.domain.query.ProjectEngineeringQuery; +import java.util.List; + +/** + * 椤圭洰宸ョ▼ 鏈嶅姟绫� + * + * @author xp + * @since 2025-02-26 + */ +public interface ProjectEngineeringService extends IService<ProjectEngineering> { + + /** + * 娣诲姞 + * @param form + * @return + */ + Result add(ProjectEngineeringForm form); + + /** + * 淇敼 + * @param form + * @return + */ + Result update(ProjectEngineeringForm form); + + /** + * 鎵归噺鍒犻櫎 + * @param ids + * @return + */ + Result remove(List<String> ids); + + /** + * id鍒犻櫎 + * @param id + * @return + */ + Result removeById(String id); + + /** + * 鍒嗛〉鏌ヨ + * @param query + * @return + */ + Result page(ProjectEngineeringQuery query); + + /** + * 鏍规嵁id鏌ユ壘 + * @param id + * @return + */ + Result detail(String id); + + /** + * 鍒楄〃 + * @return + */ + Result all(); +} diff --git a/business/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java b/business/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java index d638720..7fb7052 100644 --- a/business/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java +++ b/business/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java @@ -74,6 +74,7 @@ import java.io.InputStream; import java.lang.reflect.Field; +import java.math.BigDecimal; import java.nio.charset.StandardCharsets; import java.util.*; import java.util.concurrent.ConcurrentHashMap; @@ -160,7 +161,14 @@ newV.put(task.getTaskDefinitionKey() + "&" + key, variables.get(key)); //瀛楀吀閲屾湁灏辨斁鍏ユ祦绋嬪彉閲忎腑 if (!CollectionUtils.isEmpty(dictList) && dictList.contains(key)) { - processVariables.put(key,variables.get(key)); + if ("money".equals(key)) { + // 涓囧厓杞厓 + Object w = variables.get(key); + BigDecimal y = new BigDecimal(w.toString()).multiply(new BigDecimal(10000)); + processVariables.put(key, y); + } else { + processVariables.put(key,variables.get(key)); + } } } } @@ -1264,13 +1272,14 @@ // 鍒ゆ柇鍓嶇疆浠诲姟鏄笉鏄拰褰撳墠浠诲姟涓哄悓涓�涓猠xecuteId // 鍒ゆ柇褰撳墠浠诲姟鏄惁琚寕璧蜂腑 String finalProcessInsId = processInsId; - beforeNodes.stream().filter(node -> { + beforeNodes = beforeNodes.stream().filter(node -> { if (node.getCurrent()) { return Boolean.TRUE; } HistoricTaskInstance beforeTask = historyService.createHistoricTaskInstanceQuery().processInstanceId(finalProcessInsId).finished().taskDefinitionKey(node.getBeforeNodeDefId()).singleResult(); return Objects.nonNull(beforeTask); - }).forEach(node -> { + }).collect(Collectors.toList()); + beforeNodes.forEach(node -> { if (node.getCurrent()) { if (processLogService.taskIsHangup(taskId, finalProcessInsId)) { node.setTaskStatus(TaskStatusEnum.HANGUP); diff --git a/business/src/main/java/com/ycl/service/impl/ProjectEngineeringServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProjectEngineeringServiceImpl.java new file mode 100644 index 0000000..90c7d79 --- /dev/null +++ b/business/src/main/java/com/ycl/service/impl/ProjectEngineeringServiceImpl.java @@ -0,0 +1,119 @@ +package com.ycl.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.ycl.domain.entity.ProjectEngineering; +import com.ycl.mapper.ProjectEngineeringMapper; +import com.ycl.service.ProjectEngineeringService; +import com.ycl.common.base.Result; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ycl.domain.form.ProjectEngineeringForm; +import com.ycl.domain.vo.ProjectEngineeringVO; +import com.ycl.domain.query.ProjectEngineeringQuery; +import org.springframework.stereotype.Service; +import lombok.RequiredArgsConstructor; +import com.ycl.framework.utils.PageUtil; +import org.springframework.beans.BeanUtils; +import org.springframework.util.Assert; + +import java.util.List; +import java.util.stream.Collectors; + +/** + * 椤圭洰宸ョ▼ 鏈嶅姟瀹炵幇绫� + * + * @author xp + * @since 2025-02-26 + */ +@Service +@RequiredArgsConstructor +public class ProjectEngineeringServiceImpl extends ServiceImpl<ProjectEngineeringMapper, ProjectEngineering> implements ProjectEngineeringService { + + private final ProjectEngineeringMapper projectEngineeringMapper; + + /** + * 娣诲姞 + * @param form + * @return + */ + @Override + public Result add(ProjectEngineeringForm form) { + ProjectEngineering entity = ProjectEngineeringForm.getEntityByForm(form, null); + baseMapper.insert(entity); + return Result.ok("娣诲姞鎴愬姛"); + } + + /** + * 淇敼 + * @param form + * @return + */ + @Override + public Result update(ProjectEngineeringForm form) { + ProjectEngineering entity = baseMapper.selectById(form.getId()); + + // 涓虹┖鎶汭llegalArgumentException锛屽仛鍏ㄥ眬寮傚父澶勭悊 + Assert.notNull(entity, "璁板綍涓嶅瓨鍦�"); + BeanUtils.copyProperties(form, entity); + baseMapper.updateById(entity); + return Result.ok("淇敼鎴愬姛"); + } + + /** + * 鎵归噺鍒犻櫎 + * @param ids + * @return + */ + @Override + public Result remove(List<String> ids) { + baseMapper.deleteBatchIds(ids); + return Result.ok("鍒犻櫎鎴愬姛"); + } + + /** + * id鍒犻櫎 + * @param id + * @return + */ + @Override + public Result removeById(String id) { + baseMapper.deleteById(id); + return Result.ok("鍒犻櫎鎴愬姛"); + } + + /** + * 鍒嗛〉鏌ヨ + * @param query + * @return + */ + @Override + public Result page(ProjectEngineeringQuery query) { + IPage<ProjectEngineeringVO> page = PageUtil.getPage(query, ProjectEngineeringVO.class); + baseMapper.getPage(page, query); + return Result.ok().data(page.getRecords()).total(page.getTotal()); + } + + /** + * 鏍规嵁id鏌ユ壘 + * @param id + * @return + */ + @Override + public Result detail(String id) { + ProjectEngineeringVO vo = baseMapper.getById(id); + Assert.notNull(vo, "璁板綍涓嶅瓨鍦�"); + return Result.ok().data(vo); + } + + /** + * 鍒楄〃 + * @return + */ + @Override + public Result all() { + List<ProjectEngineering> entities = baseMapper.selectList(null); + List<ProjectEngineeringVO> vos = entities.stream() + .map(entity -> ProjectEngineeringVO.getVoByEntity(entity, null)) + .collect(Collectors.toList()); + return Result.ok().data(vos); + } +} diff --git a/business/src/main/java/com/ycl/service/impl/ProjectInfoServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProjectInfoServiceImpl.java index 62ae364..42058b6 100644 --- a/business/src/main/java/com/ycl/service/impl/ProjectInfoServiceImpl.java +++ b/business/src/main/java/com/ycl/service/impl/ProjectInfoServiceImpl.java @@ -11,12 +11,15 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; +import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.common.base.Result; import com.ycl.common.config.SysConfig; import com.ycl.common.constant.Constants; import com.ycl.common.core.domain.BaseEntity; import com.ycl.common.core.domain.entity.SysDictData; +import com.ycl.common.enums.YesOrNo; import com.ycl.common.enums.business.FileTypeEnum; import com.ycl.common.enums.business.ImportanceTypeEnum; import com.ycl.common.enums.business.ProjectCategoryEnum; @@ -109,8 +112,6 @@ //娣诲姞鍩烘湰淇℃伅 ProjectInfo entity = ProjectInfoForm.getEntityByForm(form, null); Long userId = SecurityUtils.getUserId(); -// Long deptId = SecurityUtils.getDeptId(); -// entity.setProjectOwnerUnit(deptId); entity.setCreateBy(userId); entity.setUpdateBy(userId); //濡傛灉鏄偍澶囬」鐩�(鏈紑宸ラ」鐩�)涓嶉渶瑕佸鏍� @@ -122,18 +123,28 @@ } baseMapper.insert(entity); addPlan(entity.getId()); //娣诲姞璁″垝琛� - //娣诲姞鏂囦欢 - List<File> fileList = form.getFileList(); - fileList.forEach(item -> { - item.setBusId(entity.getId()); - item.setType(FileTypeEnum.PROJECT_INFO); - }); - fileService.saveBatch(fileList); - //娣诲姞椤圭洰涓爣鍗曚綅 - saveUnit(entity.getId(), form.getWinUnitList()); + List<ProjectInfoWinUnit> projectInfoWinUnits = new ArrayList<>(); + for (ProjectInfoWinUnitForm winUnitForm : form.getWinUnitList()) { + ProjectInfoWinUnit projectInfoWinUnit = ProjectInfoWinUnitForm.getEntityByForm(winUnitForm, null); + projectInfoWinUnit.setId(null); + projectInfoWinUnit.setProjectInfoId(entity.getId()); + projectInfoWinUnits.add(projectInfoWinUnit); + } + if (!CollectionUtils.isEmpty(projectInfoWinUnits)) { + projectInfoWinUnitService.saveBatch(projectInfoWinUnits); + } //娣诲姞骞村害鎶曡祫璁″垝 - saveYearPlan(entity.getId(), form.getYearPlanList()); + List<ProjectInfoYearPlan> projectInfoYearPlans = new ArrayList<>(); + for (ProjectInfoYearPlanForm yearPlanForm : form.getYearPlanList()) { + ProjectInfoYearPlan yearPlan = ProjectInfoYearPlanForm.getEntityByForm(yearPlanForm, null); + yearPlan.setId(null); + yearPlan.setProjectInfoId(entity.getId()); + projectInfoYearPlans.add(yearPlan); + } + if (!CollectionUtils.isEmpty(projectInfoYearPlans)) { + projectInfoYearPlanService.saveBatch(projectInfoYearPlans); + } return Result.ok("娣诲姞鎴愬姛").data(entity.getId()); } @@ -145,20 +156,18 @@ public boolean checkProjectNameAndIdIsUnique(ProjectInfo entity,Long updateId){ LambdaQueryWrapper<ProjectInfo> queryWrapper = new LambdaQueryWrapper<>(); if (updateId == null) { - queryWrapper.eq(ProjectInfo::getProjectName, entity.getProjectName()); - queryWrapper.eq(ProjectInfo::getDeleted,0); - if (StringUtils.isNotEmpty(entity.getProjectCode())) { - queryWrapper.eq(ProjectInfo::getProjectCode, entity.getProjectCode()); - } - - List<ProjectInfo> project = projectInfoMapper.selectList(queryWrapper); - - return project == null || project.isEmpty(); - }else { - - List<ProjectInfo> project = projectInfoMapper.checkProjectNameAndIdIsUnique(updateId,entity.getProjectName(),entity.getProjectCode()); - - return project == null || project.isEmpty(); + List<ProjectInfo> list = new LambdaQueryChainWrapper<>(baseMapper) + .eq(ProjectInfo::getProjectName, entity.getProjectName()) + .eq(ProjectInfo::getProjectCode, entity.getProjectCode()) + .list(); + return list == null || list.isEmpty(); + } else { + List<ProjectInfo> list = new LambdaQueryChainWrapper<>(baseMapper) + .eq(ProjectInfo::getProjectName, entity.getProjectName()) + .eq(ProjectInfo::getProjectCode, entity.getProjectCode()) + .ne(ProjectInfo::getId, updateId) + .list(); + return list == null || list.isEmpty(); } } @@ -202,35 +211,39 @@ } //鏇存柊椤圭洰淇℃伅 baseMapper.updateById(entity); - List<File> fileList = form.getFileList(); - fileList.forEach(item -> { - item.setId(null); - item.setBusId(entity.getId()); - item.setType(FileTypeEnum.PROJECT_INFO); - }); - //鍒犻櫎鍘熸湁鏂囦欢 - QueryWrapper<File> fileQueryWrapper = new QueryWrapper<>(); - fileQueryWrapper.eq("type", FileTypeEnum.PROJECT_INFO.getType()); - fileQueryWrapper.eq("bus_id", entity.getId()); - fileMapper.delete(fileQueryWrapper); - //鏇挎崲鎴愮幇鏈� - fileService.saveBatch(fileList); - //淇敼椤圭洰涓爣鍗曚綅 //鍒犻櫎鍘熸暟鎹� - QueryWrapper<ProjectInfoWinUnit> unitWrapper = new QueryWrapper<>(); - unitWrapper.eq("project_info_id", form.getId()); - projectInfoWinUnitService.remove(unitWrapper); + new LambdaUpdateChainWrapper<>(projectInfoWinUnitService.getBaseMapper()) + .eq(ProjectInfoWinUnit::getProjectInfoId, entity.getId()) + .remove(); //娣诲姞椤圭洰涓爣鍗曚綅 - saveUnit(entity.getId(), form.getWinUnitList()); + List<ProjectInfoWinUnit> projectInfoWinUnits = new ArrayList<>(); + for (ProjectInfoWinUnitForm winUnitForm : form.getWinUnitList()) { + ProjectInfoWinUnit projectInfoWinUnit = ProjectInfoWinUnitForm.getEntityByForm(winUnitForm, null); + projectInfoWinUnit.setId(null); + projectInfoWinUnit.setProjectInfoId(entity.getId()); + projectInfoWinUnits.add(projectInfoWinUnit); + } + if (!CollectionUtils.isEmpty(projectInfoWinUnits)) { + projectInfoWinUnitService.saveBatch(projectInfoWinUnits); + } //淇敼骞村害鎶曡祫璁″垝 //鍒犻櫎鍘熸暟鎹� - QueryWrapper<ProjectInfoYearPlan> yearPlanWrapper = new QueryWrapper<>(); - unitWrapper.eq("project_info_id", form.getId()); - projectInfoYearPlanService.remove(yearPlanWrapper); + new LambdaUpdateChainWrapper<>(projectInfoYearPlanService.getBaseMapper()) + .eq(ProjectInfoYearPlan::getProjectInfoId, entity.getId()) + .remove(); //娣诲姞骞村害鎶曡祫璁″垝 - saveYearPlan(entity.getId(), form.getYearPlanList()); + List<ProjectInfoYearPlan> projectInfoYearPlans = new ArrayList<>(); + for (ProjectInfoYearPlanForm yearPlanForm : form.getYearPlanList()) { + ProjectInfoYearPlan yearPlan = ProjectInfoYearPlanForm.getEntityByForm(yearPlanForm, null); + yearPlan.setId(null); + yearPlan.setProjectInfoId(entity.getId()); + projectInfoYearPlans.add(yearPlan); + } + if (!CollectionUtils.isEmpty(projectInfoYearPlans)) { + projectInfoYearPlanService.saveBatch(projectInfoYearPlans); + } return Result.ok("淇敼鎴愬姛"); } @@ -311,25 +324,13 @@ if (query.getProjectEndTime() != null) { query.setProjectEndTime(DateUtils.getDayEnd(query.getProjectEndTime())); } - String projectCategory = query.getProjectCategory(); - //瀹炴柦闃舵鏈変袱涓�兼斁鍦╯ql澶勭悊 - if (ProjectCategoryEnum.RESERVE.getType().equals(projectCategory)) { - query.setProjectStatus(ProjectCategoryEnum.RESERVE.getStatus()); - query.setReserveOrPrevious(ProjectCategoryEnum.RESERVE.getCode()); - } else if (ProjectCategoryEnum.PREVIOUS.getType().equals(projectCategory)) { - query.setProjectStatus(ProjectCategoryEnum.PREVIOUS.getStatus()); - query.setReserveOrPrevious(ProjectCategoryEnum.PREVIOUS.getCode()); - } else if (ProjectCategoryEnum.FINISH.getType().equals(projectCategory)) { - query.setProjectStatus(ProjectCategoryEnum.FINISH.getStatus()); - } else if (ProjectCategoryEnum.EXCEPTION.getType().equals(projectCategory)) { - //TODO - //鍏堟煡鍑哄紓甯告祦绋嬫垨鑰呭紓甯歌繘搴︽垨鑰呭紓甯歌鍒掔殑projectId鍜屽紓甯哥绫� - //閫氳繃projectId鏌ュ嚭椤圭洰鏁版嵁 - //琛ュ厖鐩稿簲鐨勫紓甯告暟鎹紙寮傚父绉嶇被銆佸紓甯告祦绋嬭妭鐐圭瓑锛� - List<ProjectVO> list = new ArrayList<>(); - return Result.ok().data(list).total(0); + if (YesOrNo.YES.getCode().equals(query.getCenter())) { + query.setProjectPhase("6"); } - + // 寮傚父椤圭洰鏆傛椂杩斿洖绌� + if (YesOrNo.YES.getCode().equals(query.getExe())) { + return Result.ok().data(new ArrayList<>()).total(0); + } Long userId = SecurityUtils.getUserId(); String ancestors = sysDeptMapper.selectAncestors(userId); String[] ancestorArr = ancestors.split(","); @@ -339,10 +340,12 @@ query.setProjectOwnerUnit(SecurityUtils.getDeptId()); //涓氫富 query.setRole(0); - } else if (!CollectionUtils.isEmpty(ancestorList) && ancestorList.contains("102")) { + } else if ((!CollectionUtils.isEmpty(ancestorList) && ancestorList.contains("102"))) { query.setCompetentDepartment(SecurityUtils.getDeptId()); //瀹℃壒 瀵瑰簲涓荤閮ㄩ棬 query.setRole(1); + } else if (SecurityUtils.isAdmin(userId)) { + query.setRole(3); } IPage<ProjectInfoVO> page = PageUtil.getPage(query, ProjectInfoVO.class); @@ -353,10 +356,10 @@ ProjectInfoVO.transform(vo); ProjectVO projectVO = new ProjectVO(); copyToProjectVO(vo, projectVO); - List<Long> departmentList = vo.getCompetentDepartmentList(); - projectVO.setAuditRole(SecurityUtils.isAdmin(SecurityUtils.getUserId()) || (!CollectionUtils.isEmpty(departmentList) && departmentList.contains(SecurityUtils.getDeptId()))); + String competentDepartment = vo.getCompetentDepartment(); + projectVO.setAuditRole(SecurityUtils.isAdmin(SecurityUtils.getUserId()) || (StringUtils.isNotEmpty(competentDepartment) && competentDepartment.equals(SecurityUtils.getDeptId() + ""))); // 缈昏瘧椤圭洰闃舵 - String phase = ProjectCategoryEnum.getPhaseByProjectStatus(projectVO.getProjectStatus(), projectVO.getProcessId() != null); + String phase = ProjectCategoryEnum.getPhaseByProjectStatus(projectVO.getProjectPhase()); projectVO.setProjectPhase(phase); if (StringUtils.isNotEmpty(projectVO.getProjectSubType())) { // 缈昏瘧椤圭洰瀛愮被鍨� @@ -394,14 +397,11 @@ ProjectInfo entity = baseMapper.getById(id); Assert.notNull(entity, "璁板綍涓嶅瓨鍦�"); ProjectInfoVO vo = ProjectInfoVO.getVoByEntity(entity, null); - List<Long> departmentList = vo.getCompetentDepartmentList(); - vo.setAuditRole(SecurityUtils.isAdmin(SecurityUtils.getUserId()) || (!CollectionUtils.isEmpty(departmentList) && departmentList.contains(SecurityUtils.getDeptId()))); + String competentDepartment = vo.getCompetentDepartment(); + vo.setAuditRole(SecurityUtils.isAdmin(SecurityUtils.getUserId()) || (StringUtils.isNotEmpty(competentDepartment) && competentDepartment.equals(SecurityUtils.getDeptId() + ""))); QueryWrapper<File> fileQueryWrapper = new QueryWrapper<>(); fileQueryWrapper.eq("type", FileTypeEnum.PROJECT_INFO.getType()); fileQueryWrapper.eq("bus_id", vo.getId()); - - List<File> files = fileMapper.selectList(fileQueryWrapper); - vo.setFileList(files); //涓爣鍗曚綅 List<ProjectInfoWinUnitVO> unitVOS = new ArrayList<>(); @@ -458,25 +458,32 @@ List<ProjectVO> city = new ArrayList<>(); List<ProjectVO> county = new ArrayList<>(); projectVOS.forEach(item -> { - if (ProjectCategoryEnum.RESERVE.getDesc().equals(ProjectCategoryEnum.getPhaseByProjectStatus(item.getProjectStatus(), item.getProcessId() != null))) { + if (ProjectCategoryEnum.RESERVE.getDesc().equals(ProjectCategoryEnum.getPhaseByProjectStatus(item.getProjectPhase()))) { reserve.add(item); - } else if (ProjectCategoryEnum.PREVIOUS.getDesc().equals(ProjectCategoryEnum.getPhaseByProjectStatus(item.getProjectStatus(), item.getProcessId() != null))) { + } else if (ProjectCategoryEnum.PREVIOUS.getDesc().equals(ProjectCategoryEnum.getPhaseByProjectStatus(item.getProjectPhase()))) { previous.add(item); - } else if (ProjectCategoryEnum.IMPLEMENT.getDesc().equals(ProjectCategoryEnum.getPhaseByProjectStatus(item.getProjectStatus(), item.getProcessId() != null))) { + } else if (ProjectCategoryEnum.IMPLEMENT.getDesc().equals(ProjectCategoryEnum.getPhaseByProjectStatus(item.getProjectPhase()))) { implement.add(item); - } else if (ProjectCategoryEnum.FINISH.getDesc().equals(ProjectCategoryEnum.getPhaseByProjectStatus(item.getProjectStatus(), item.getProcessId() != null))) { + } else if (ProjectCategoryEnum.FINISH.getDesc().equals(ProjectCategoryEnum.getPhaseByProjectStatus(item.getProjectPhase()))) { finish.add(item); } - if (ImportanceTypeEnum.PROVINCIAL_KEY.getType().equals(item.getImportanceType())) { - province.add(item); - } else if (ImportanceTypeEnum.SUINING_KEY.getType().equals(item.getImportanceType())) { - city.add(item); - } else if (ImportanceTypeEnum.SHEHONG_KEY.getType().equals(item.getImportanceType())) { - county.add(item); - } else // if (ImportanceTypeEnum.NORMAL.getType().equals(item.getImportanceType())) - { + if (StringUtils.isBlank(item.getImportanceType())) { normal.add(item); + // 浣跨敤contains锛屽洜涓洪噸鐐瑰垎绫诲彲澶氶�夛紝浣跨敤,鍒嗗壊瀛樺偍鐨� + } else { + if (item.getImportanceType().contains(ImportanceTypeEnum.PROVINCIAL_KEY.getType())) { + province.add(item); + } + if (item.getImportanceType().contains(ImportanceTypeEnum.SUINING_KEY.getType())) { + city.add(item); + } + if (item.getImportanceType().contains(ImportanceTypeEnum.SHEHONG_KEY.getType())) { + county.add(item); + } + if (item.getImportanceType().contains(ImportanceTypeEnum.NORMAL.getType())) { + normal.add(item); + } } }); //鍗曚綅鍏堥粯璁や负鍏� @@ -589,7 +596,7 @@ ProjectExcelTemplate excel = new ProjectExcelTemplate(); BeanUtils.copyProperties(item, excel); //椤圭洰闃舵 - excel.setProjectPhase(ProjectCategoryEnum.getPhaseByProjectStatus(item.getProjectStatus(), item.getProcessId() != null)); + excel.setProjectPhase(ProjectCategoryEnum.getPhaseByProjectStatus(item.getProjectPhase())); excelList.add(excel); }); Set<Integer> indexes = OutputExcelUtils.getSelectFields(query.getFieldList(), ProjectExcelTemplate.class); @@ -815,53 +822,123 @@ if (ObjectUtil.isNotNull(form.getProjectInfoForm())) { if (ObjectUtil.isNull(form.getProjectInfoForm().getId())) { //鏂板 - projectId = (Long) ((ProjectInfoServiceImpl) AopContext.currentProxy()).add(form.getProjectInfoForm()).get("data"); + ProjectInfo entity = ProjectInfoForm.getEntityByForm(form.getProjectInfoForm(), null); + Long userId = SecurityUtils.getUserId(); + entity.setCreateBy(userId); + entity.setUpdateBy(userId); + //濡傛灉鏄偍澶囬」鐩�(鏈紑宸ラ」鐩�)涓嶉渶瑕佸鏍� + if (ProjectCategoryEnum.RESERVE.getType().equals(entity.getProjectPhase())) { + entity.setUsedStatus(ProjectConstant.PASS); + } + // 绠$悊鍛樹慨鏀圭殑鐩存帴閫氳繃 + if (SecurityUtils.isAdmin(SecurityUtils.getUserId())) { + entity.setUsedStatus(ProjectConstant.PASS); + } + if(!checkProjectNameAndIdIsUnique(entity,null)){ + throw new RuntimeException("椤圭洰閲嶅锛岄」鐩悕绉般�侀」鐩爜宸插瓨鍦�"); + } + baseMapper.insert(entity); + projectId = entity.getId(); + addPlan(entity.getId()); //娣诲姞璁″垝琛� + //娣诲姞椤圭洰涓爣鍗曚綅 + List<ProjectInfoWinUnit> projectInfoWinUnits = new ArrayList<>(); + for (ProjectInfoWinUnitForm winUnitForm : form.getProjectInfoForm().getWinUnitList()) { + ProjectInfoWinUnit projectInfoWinUnit = ProjectInfoWinUnitForm.getEntityByForm(winUnitForm, null); + projectInfoWinUnit.setId(null); + projectInfoWinUnit.setProjectInfoId(entity.getId()); + projectInfoWinUnits.add(projectInfoWinUnit); + } + if (!CollectionUtils.isEmpty(projectInfoWinUnits)) { + projectInfoWinUnitService.saveBatch(projectInfoWinUnits); + } + //娣诲姞骞村害鎶曡祫璁″垝 + List<ProjectInfoYearPlan> projectInfoYearPlans = new ArrayList<>(); + for (ProjectInfoYearPlanForm yearPlanForm : form.getProjectInfoForm().getYearPlanList()) { + ProjectInfoYearPlan yearPlan = ProjectInfoYearPlanForm.getEntityByForm(yearPlanForm, null); + yearPlan.setId(null); + yearPlan.setProjectInfoId(entity.getId()); + projectInfoYearPlans.add(yearPlan); + } + if (!CollectionUtils.isEmpty(projectInfoYearPlans)) { + projectInfoYearPlanService.saveBatch(projectInfoYearPlans); + } } else { //鏇存柊 - ((ProjectInfoServiceImpl) AopContext.currentProxy()).update(form.getProjectInfoForm()); - } - } - if (ObjectUtil.isNotNull(form.getProjectInvestmentInfoForm())) { - if (ObjectUtil.isNull(form.getProjectInvestmentInfoForm().getId())) { - form.getProjectInvestmentInfoForm().setProjectId(projectId); - projectInvestmentInfoServiceImpl.add(form.getProjectInvestmentInfoForm()); - } else { - projectInvestmentInfoServiceImpl.update(form.getProjectInvestmentInfoForm()); - } - } - if (ObjectUtil.isNotNull(form.getProjectInvestmentFundingForm())) { - if (ObjectUtil.isNull(form.getProjectInvestmentFundingForm().getId())) { - form.getProjectInvestmentFundingForm().setProjectId(projectId); - projectInvestmentFundingServiceImpl.add(form.getProjectInvestmentFundingForm()); - } else { - projectInvestmentFundingServiceImpl.update(form.getProjectInvestmentFundingForm()); - } - } - if (ObjectUtil.isNotNull(form.getProjectInvestmentPolicyComplianceForm())) { - if (ObjectUtil.isNull(form.getProjectInvestmentPolicyComplianceForm().getId())) { - form.getProjectInvestmentPolicyComplianceForm().setProjectId(projectId); - projectInvestmentPolicyComplianceServiceImpl.add(form.getProjectInvestmentPolicyComplianceForm()); - } else { - projectInvestmentPolicyComplianceServiceImpl.update(form.getProjectInvestmentPolicyComplianceForm()); - } - } - if (ObjectUtil.isNotNull(form.getProjectUnitRegistrationInfoForm())) { - if (ObjectUtil.isNull(form.getProjectUnitRegistrationInfoForm().getId())) { - form.getProjectUnitRegistrationInfoForm().setProjectId(projectId); - projectUnitRegistrationInfoServiceImpl.add(form.getProjectUnitRegistrationInfoForm()); - } else { - projectUnitRegistrationInfoServiceImpl.update(form.getProjectUnitRegistrationInfoForm()); - } - } - if (ObjectUtil.isNotNull(form.getDocumentInfoForm())) { - if (ObjectUtil.isNull(form.getDocumentInfoForm().getProjectId())) { - return Result.error("璇峰厛淇濆瓨鎶曡祫绠$悊鍩烘湰淇℃伅"); - } else { - addDoc(form.getDocumentInfoForm()); - } - } + ProjectInfo entity = baseMapper.selectById(form.getProjectInfoForm().getId()); - return Result.ok("鎻愪氦鎴愬姛"); + // 涓虹┖鎶汭llegalArgumentException锛屽仛鍏ㄥ眬寮傚父澶勭悊 + Assert.notNull(entity, "璁板綍涓嶅瓨鍦�"); + ProjectInfoForm.getEntityByForm(form.getProjectInfoForm(), entity); + Long userId = SecurityUtils.getUserId(); + entity.setUpdateBy(userId); + //濡傛灉鏄偍澶囬」鐩�(鏈紑宸ラ」鐩�)涓嶉渶瑕佸鏍� + if (ProjectCategoryEnum.RESERVE.getType().equals(entity.getProjectPhase())) { + entity.setUsedStatus(ProjectConstant.PASS); + } + // 绠$悊鍛樹慨鏀圭殑鐩存帴閫氳繃 + if (SecurityUtils.isAdmin(SecurityUtils.getUserId())) { + entity.setUsedStatus(ProjectConstant.PASS); + } + if(!checkProjectNameAndIdIsUnique(entity, entity.getId())){ + throw new RuntimeException("椤圭洰閲嶅锛岄」鐩悕绉般�侀」鐩爜宸插瓨鍦�"); + } + //鏇存柊椤圭洰淇℃伅 + baseMapper.updateById(entity); + //淇敼椤圭洰涓爣鍗曚綅 + //鍒犻櫎鍘熸暟鎹� + new LambdaUpdateChainWrapper<>(projectInfoWinUnitService.getBaseMapper()) + .eq(ProjectInfoWinUnit::getProjectInfoId, entity.getId()) + .remove(); + //娣诲姞椤圭洰涓爣鍗曚綅 + List<ProjectInfoWinUnit> projectInfoWinUnits = new ArrayList<>(); + for (ProjectInfoWinUnitForm winUnitForm : form.getProjectInfoForm().getWinUnitList()) { + ProjectInfoWinUnit projectInfoWinUnit = ProjectInfoWinUnitForm.getEntityByForm(winUnitForm, null); + projectInfoWinUnit.setId(null); + projectInfoWinUnit.setProjectInfoId(entity.getId()); + projectInfoWinUnits.add(projectInfoWinUnit); + } + if (!CollectionUtils.isEmpty(projectInfoWinUnits)) { + projectInfoWinUnitService.saveBatch(projectInfoWinUnits); + } + + //淇敼骞村害鎶曡祫璁″垝 + //鍒犻櫎鍘熸暟鎹� + new LambdaUpdateChainWrapper<>(projectInfoYearPlanService.getBaseMapper()) + .eq(ProjectInfoYearPlan::getProjectInfoId, entity.getId()) + .remove(); + //娣诲姞骞村害鎶曡祫璁″垝 + List<ProjectInfoYearPlan> projectInfoYearPlans = new ArrayList<>(); + for (ProjectInfoYearPlanForm yearPlanForm : form.getProjectInfoForm().getYearPlanList()) { + ProjectInfoYearPlan yearPlan = ProjectInfoYearPlanForm.getEntityByForm(yearPlanForm, null); + yearPlan.setId(null); + yearPlan.setProjectInfoId(entity.getId()); + projectInfoYearPlans.add(yearPlan); + } + if (!CollectionUtils.isEmpty(projectInfoYearPlans)) { + projectInfoYearPlanService.saveBatch(projectInfoYearPlans); + } + } + + // 鏇存柊鍏跺畠椤圭洰淇℃伅琛� + if (Objects.nonNull(form.getProjectInvestmentFundingForm())) { + if (Objects.nonNull(form.getProjectInvestmentFundingForm().getId())) { + projectInvestmentFundingServiceImpl.update(form.getProjectInvestmentFundingForm()); + } else { + form.getProjectInvestmentFundingForm().setProjectId(projectId); + projectInvestmentFundingServiceImpl.add(form.getProjectInvestmentFundingForm()); + } + } + if (Objects.nonNull(form.getProjectUnitRegistrationInfoForm())) { + if (Objects.nonNull(form.getProjectUnitRegistrationInfoForm().getId())) { + projectUnitRegistrationInfoServiceImpl.update(form.getProjectUnitRegistrationInfoForm()); + } else { + form.getProjectUnitRegistrationInfoForm().setProjectId(projectId); + projectUnitRegistrationInfoServiceImpl.add(form.getProjectUnitRegistrationInfoForm()); + } + + } + } + return Result.ok("淇濆瓨鎴愬姛"); } @Override diff --git a/business/src/main/java/com/ycl/service/impl/ProjectInvestmentFundingServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProjectInvestmentFundingServiceImpl.java index a23d64c..d9a9e1b 100644 --- a/business/src/main/java/com/ycl/service/impl/ProjectInvestmentFundingServiceImpl.java +++ b/business/src/main/java/com/ycl/service/impl/ProjectInvestmentFundingServiceImpl.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.ycl.common.utils.SecurityUtils; import com.ycl.domain.entity.ProjectInvestmentFunding; import com.ycl.domain.entity.ProjectInvestmentInfo; @@ -109,9 +110,9 @@ */ @Override public Result detail(Integer id) { - QueryWrapper<ProjectInvestmentFunding> queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("project_id",id); - ProjectInvestmentFunding entity = baseMapper.selectOne(queryWrapper); + ProjectInvestmentFunding entity = new LambdaQueryChainWrapper<>(baseMapper) + .eq(ProjectInvestmentFunding::getProjectId, id) + .one(); ProjectInvestmentFundingVO vo =new ProjectInvestmentFundingVO(); if(entity!=null){ vo = ProjectInvestmentFundingVO.getVoByEntity(entity, null); diff --git a/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java index c68e060..ca1ea6f 100644 --- a/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java +++ b/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java @@ -102,6 +102,7 @@ IPage<ProjectProcessVO> page = PageUtil.getPage(query, ProjectProcessVO.class); baseMapper.getPage(query, page); for (ProjectProcessVO vo : page.getRecords()) { + vo.setStatus(vo.getProjectStatus()); if (Objects.nonNull(vo.getProcessDefId())) { ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(vo.getProcessDefId()).singleResult(); if (Objects.nonNull(processDefinition)) { @@ -203,8 +204,6 @@ SysUser sysUser = SecurityUtils.getLoginUser().getUser(); identityService.setAuthenticatedUserId(sysUser.getUserId().toString()); variables.put(ProcessConstants.PROCESS_INITIATOR, sysUser.getUserId()); - //娴嬭瘯瀹圭己 - variables.put("miss", true); // 灏嗚椤圭洰鐨勭敵璇蜂汉锛堜笟涓绘柟锛変綔涓烘祦绋嬩腑鏌愪簺鐜妭鐨勫鐞嗕汉 variables.put(ProcessConstants.DATA_LAUNCH, "dept:" + createBy); ProcessInstance processInstance = runtimeService.startProcessInstanceById(processDefId, projectId + "", variables); @@ -285,7 +284,7 @@ this.getRemainingTask(query.getProjectId(), query.getProcessDefId(), projectProcess.getProcessInsId(), query.getTaskName(), (int) query.getCurrentPage(), (int) query.getPageSize(), ok); break; case TaskTypeConstant.TIMELY: - this.getTimelyTask(query.getProcessDefId(), projectProcess.getProcessInsId(), query.getTaskName(), (int) query.getCurrentPage(), (int) query.getPageSize(), ok); + this.getTimelyTask(query.getProjectId(), query.getProcessDefId(), projectProcess.getProcessInsId(), query.getTaskName(), (int) query.getCurrentPage(), (int) query.getPageSize(), ok); break; case TaskTypeConstant.OVERTIME: this.getOvertimeTask(query.getProjectId(), query.getProcessDefId(), projectProcess.getProcessInsId(), query.getTaskName(), (int) query.getCurrentPage(), (int) query.getPageSize(), ok); @@ -899,11 +898,16 @@ List<String> handlerNames = new ArrayList<>(2); List<Long> handlerUnitIds = new ArrayList<>(2); List<String> handlerUnitNames = new ArrayList<>(2); + List<String> promoterNames = new ArrayList<>(2); + List<String> promoterUnitNames = new ArrayList<>(2); vo.setHandlerId(handlerIds); vo.setHandlerName(handlerNames); vo.setHandlerUnitId(handlerUnitIds); vo.setHandlerUnitName(handlerUnitNames); + vo.setPromoterName(promoterNames); + vo.setPromoterUnitName(promoterUnitNames); + this.setCandidateInfo(userTask, vo, projectId, processInsId); if (Objects.isNull(task)) { // 濡傛灉浠诲姟鍦ㄨ繍琛屾椂娌℃壘鍒帮紝閭d箞鍙兘涓烘湭寮�濮嬫垨鑰呭凡瀹屾垚锛岄渶瑕佷粠鍘嗗彶浠诲姟涓啀鎵句竴涓� List<HistoricTaskInstance> historicTasks = historyService.createHistoricTaskInstanceQuery() @@ -914,28 +918,25 @@ .desc() .list(); if (CollectionUtils.isEmpty(historicTasks)) { - vo.setPromoterName("鏆傛棤"); - vo.setPromoterUnitName("鏆傛棤"); // 鏈紑濮嬬殑浠诲姟锛屽叾鍏宠仈鐨勭敤鎴风粍杩欎簺閮藉彲浠ヤ粠UserTask涓嬁鍒帮紝鍥犱负鏈韩鏈紑濮嬬殑浠诲姟鏄病鏈塼ask鐨勶紝鎵�浠ヨ繖閲岀洿鎺ユ煡 if (StringUtils.isNotBlank(userTask.getAssignee())) { vo.setHandlerType(HandlerTypeEnum.USER); SysUser sysUser = sysUserService.selectUserById(Long.parseLong(userTask.getAssignee())); if (Objects.nonNull(sysUser)) { handlerIds.add(sysUser.getUserId()); - handlerNames.add(sysUser.getNickName()); + handlerNames.add(this.getUserShowName(sysUser)); if (Objects.nonNull(sysUser.getDept())) { handlerUnitIds.add(sysUser.getDept().getDeptId()); handlerUnitNames.add(sysUser.getDept().getDeptName()); } } - } else if (CollectionUtil.isNotEmpty(userTask.getCandidateGroups())) { List<String> groupIds = userTask.getCandidateGroups(); for (String groupId : groupIds) { // 澶勭悊鍙橀噺琛ㄨ揪寮忥紝DATA_LAUNCH鍙彲鑳芥槸閮ㄩ棬涓嶄細鏄鑹诧紝鍥犱负浠h〃鐨勬槸涓氫富閮ㄩ棬 if (groupId.contains(ProcessConstants.DATA_LAUNCH)) { vo.setHandlerType(HandlerTypeEnum.DEPT); - this.varYzReview(vo, projectId, processInsId, HandlerTypeEnum.DEPT); + this.varYzReview(vo, projectId, processInsId, HandlerTypeEnum.DEPT, 1); } else if (groupId.startsWith("dept")) { // 閮ㄩ棬鐨刬d鏄姞浜嗗墠缂�鐨勫锛歞ept:1 vo.setHandlerType(HandlerTypeEnum.DEPT); String[] split = groupId.split(":"); @@ -945,6 +946,7 @@ if (Objects.nonNull(dept)) { handlerUnitIds.add(dept.getDeptId()); handlerUnitNames.add(dept.getDeptName()); + handlerNames.add(this.getDeptLeaderShowName(dept)); } } } else { @@ -970,9 +972,11 @@ SysUser handlerUser = sysUserService.selectUserById(handlerUserId); if (Objects.nonNull(handlerUser)) { handlerIds.add(handlerUserId); - handlerNames.add(handlerUser.getNickName()); - vo.setActualHandlerUserId(historicTasks.get(0).getAssignee()); - vo.setActualHandlerUserName(handlerUser.getNickName()); + handlerNames.add(this.getUserShowName(handlerUser)); + if (Objects.nonNull(handlerUser.getDept())) { + handlerUnitNames.add(handlerUser.getDept().getDeptName()); + handlerUnitIds.add(handlerUser.getDept().getDeptId()); + } } vo.setTaskDefinitionKey(historicTasks.get(0).getTaskDefinitionKey()); this.setPromoterAndHandler(vo, historicTasks.get(0).getIdentityLinks()); @@ -1004,6 +1008,9 @@ */ private List<CustomerTaskVO> getFinishedProcessTaskInfo(List<UserTask> userTasks, String processInsId, String processDefId) { HistoricProcessInstance hisProcess = historyService.createHistoricProcessInstanceQuery().processInstanceId(processInsId).singleResult(); + if (Objects.isNull(hisProcess)) { + return new ArrayList<>(); + } List<CustomerTaskVO> vos = userTasks.stream().map(userTask -> { CustomerTaskVO vo = new CustomerTaskVO(); vo.setProcessInsId(hisProcess.getId()); @@ -1073,18 +1080,19 @@ taskVO.setProcessInsId(task.getProcessInstanceId()); taskVO.setTaskDefinitionKey(task.getTaskDefinitionKey()); - // 娴佺▼鍙戣捣浜轰俊鎭� - this.setPromoterInfo(taskVO); - // 涓�涓换鍔″彲鑳芥湁澶氫釜鍊欓�変汉/缁勶紝鎵�浠ラ渶瑕佷娇鐢╨ist List<Long> handlerIds = new ArrayList<>(2); List<String> handlerNames = new ArrayList<>(2); List<Long> handlerUnitIds = new ArrayList<>(2); List<String> handlerUnitNames = new ArrayList<>(2); + List<String> promoterNames = new ArrayList<>(2); + List<String> promoterUnitNames = new ArrayList<>(2); taskVO.setHandlerId(handlerIds); taskVO.setHandlerName(handlerNames); taskVO.setHandlerUnitId(handlerUnitIds); taskVO.setHandlerUnitName(handlerUnitNames); + taskVO.setPromoterName(promoterNames); + taskVO.setPromoterUnitName(promoterUnitNames); // 娴佺▼澶勭悊浜轰俊鎭� List<IdentityLink> identityLinksForTask = taskService.getIdentityLinksForTask(task.getId()); @@ -1100,10 +1108,12 @@ SysUser sysUser = sysUserService.selectUserById(Long.parseLong(identityLink.getUserId())); if (Objects.nonNull(sysUser)) { taskVO.getHandlerId().add(sysUser.getUserId()); - taskVO.getHandlerName().add(sysUser.getNickName()); + taskVO.getHandlerName().add(this.getUserShowName(sysUser)); if (Objects.nonNull(sysUser.getDept())) { taskVO.getHandlerUnitId().add(sysUser.getDept().getDeptId()); taskVO.getHandlerUnitName().add(sysUser.getDept().getDeptName()); + taskVO.getPromoterName().add(this.getUserShowName(sysUser)); + taskVO.getPromoterUnitName().add(sysUser.getDept().getDeptName()); } } // 缁戝畾鐨勬槸瑙掕壊鎴栬�呴儴闂� @@ -1117,6 +1127,8 @@ if (Objects.nonNull(dept)) { taskVO.getHandlerUnitId().add(dept.getDeptId()); taskVO.getHandlerUnitName().add(dept.getDeptName()); + taskVO.getPromoterName().add(this.getDeptLeaderShowName(dept)); + taskVO.getPromoterUnitName().add(dept.getDeptName()); } } } else { @@ -1128,7 +1140,6 @@ } } } - this.distinctVo(taskVO); } } @@ -1187,7 +1198,7 @@ * @param result * @return */ - private List<CustomerTaskVO> getTimelyTask(String processDefinitionId, String processInsId, String taskName, Integer pageNum, Integer pageSize, Result result) { + private List<CustomerTaskVO> getTimelyTask(Long projectId, String processDefinitionId, String processInsId, String taskName, Integer pageNum, Integer pageSize, Result result) { int startNum = pageSize * (pageNum - 1); int endNum = startNum + pageSize; @@ -1270,11 +1281,16 @@ List<String> handlerNames = new ArrayList<>(2); List<Long> handlerUnitIds = new ArrayList<>(2); List<String> handlerUnitNames = new ArrayList<>(2); + List<String> promoterNames = new ArrayList<>(2); + List<String> promoterUnitNames = new ArrayList<>(2); vo.setHandlerId(handlerIds); vo.setHandlerName(handlerNames); vo.setHandlerUnitId(handlerUnitIds); vo.setHandlerUnitName(handlerUnitNames); + vo.setPromoterName(promoterNames); + vo.setPromoterUnitName(promoterUnitNames); + this.setCandidateInfo(userTask, vo, projectId, processInsId); HistoricTaskInstance hisTask = keyMap.get(userTask.getId()); if (Objects.nonNull(hisTask)) { vo.setTaskStatus(TaskStatusEnum.FINISHED); @@ -1288,9 +1304,7 @@ SysUser handlerUser = sysUserService.selectUserById(handlerUserId); if (Objects.nonNull(handlerUser)) { vo.getHandlerId().add(handlerUserId); - vo.getHandlerName().add(handlerUser.getNickName()); - vo.setActualHandlerUserId(hisTask.getAssignee()); - vo.setActualHandlerUserName(handlerUser.getNickName()); + vo.getHandlerName().add(this.getUserShowName(handlerUser)); } vo.setTaskDefinitionKey(hisTask.getTaskDefinitionKey()); this.setPromoterAndHandler(vo, hisTask.getIdentityLinks()); @@ -1301,6 +1315,26 @@ }).collect(Collectors.toList()); result.data(vos); return vos; + } + + /** + * 鐢ㄦ埛鍚嶇О鍚庨潰璺熺數璇濆彿鐮� + * + * @param user + * @return + */ + private String getUserShowName(SysUser user) { + return user.getNickName() + (StringUtils.isNotBlank(user.getPhonenumber()) ? "(" + user.getPhonenumber() + ")" : ""); + } + + /** + * 閮ㄩ棬璐熻矗浜哄悕绉板悗闈㈣窡鐢佃瘽鍙风爜 + * + * @param dept + * @return + */ + private String getDeptLeaderShowName(SysDept dept) { + return dept.getLeader() + (StringUtils.isNotBlank(dept.getPhone()) ? "(" + dept.getPhone() + ")" : ""); } /** @@ -1610,10 +1644,14 @@ List<String> handlerNames = new ArrayList<>(2); List<Long> handlerUnitIds = new ArrayList<>(2); List<String> handlerUnitNames = new ArrayList<>(2); + List<String> promoterNames = new ArrayList<>(2); + List<String> promoterUnitNames = new ArrayList<>(2); vo.setHandlerId(handlerIds); vo.setHandlerName(handlerNames); vo.setHandlerUnitId(handlerUnitIds); vo.setHandlerUnitName(handlerUnitNames); + vo.setPromoterName(promoterNames); + vo.setPromoterUnitName(promoterUnitNames); vo.setProcessInsId(process.getId()); vo.setProcessDefId(processDefinitionId); @@ -1621,6 +1659,9 @@ vo.setTaskName(userTask.getName()); vo.setProcessName(process.getProcessDefinitionName()); vo.setTaskStatus(TaskStatusEnum.NOT_START); + + this.setCandidateInfo(userTask, vo, projectId, processInsId); + // 鏈紑濮嬬殑浠诲姟锛屽叾鍏宠仈鐨勭敤鎴风粍杩欎簺閮藉彲浠ヤ粠UserTask涓嬁鍒帮紝鍥犱负鏈韩鏈紑濮嬬殑浠诲姟鏄病鏈塼ask鐨勶紝鎵�浠ヨ繖閲岀洿鎺ユ煡 if (StringUtils.isNotBlank(userTask.getAssignee())) { vo.setHandlerType(HandlerTypeEnum.USER); @@ -1639,7 +1680,7 @@ // 澶勭悊鍙橀噺琛ㄨ揪寮忥紝DATA_LAUNCH鍙彲鑳芥槸閮ㄩ棬涓嶄細鏄鑹诧紝鍥犱负浠h〃鐨勬槸涓氫富閮ㄩ棬 if (groupId.contains(ProcessConstants.DATA_LAUNCH)) { vo.setHandlerType(HandlerTypeEnum.DEPT); - this.varYzReview(vo, projectId, processInsId, HandlerTypeEnum.DEPT); + this.varYzReview(vo, projectId, processInsId, HandlerTypeEnum.DEPT, 1); } else if (groupId.startsWith("dept")) { // 閮ㄩ棬鐨刬d鏄姞浜嗗墠缂�鐨勫锛歞ept:1 vo.setHandlerType(HandlerTypeEnum.DEPT); String[] split = groupId.split(":"); @@ -1682,10 +1723,10 @@ /** * 澶勭悊娴佺▼鍙橀噺-涓氫富鍗曚綅 - * + * @param setType 0 璁剧疆璐d换鍗曚綅 1 璁剧疆鍔炵悊鍗曚綅 * @param vo */ - private void varYzReview(CustomerTaskVO vo, Long projectId, String processInsId, HandlerTypeEnum type) { + private void varYzReview(CustomerTaskVO vo, Long projectId, String processInsId, HandlerTypeEnum type, Integer setType) { ProjectProcess projectProcess = new LambdaQueryChainWrapper<>(projectProcessMapper) .eq(ProjectProcess::getProjectId, projectId) .eq(ProjectProcess::getProcessInsId, processInsId) @@ -1702,8 +1743,14 @@ } else if (HandlerTypeEnum.DEPT.equals(type)) { SysDept dept = deptService.selectDeptById(projectProcess.getDataLaunch()); if (Objects.nonNull(dept)) { - vo.getHandlerUnitId().add(dept.getDeptId()); - vo.getHandlerUnitName().add(dept.getDeptName()); + if (setType == 1) { + vo.getHandlerUnitId().add(dept.getDeptId()); + vo.getHandlerUnitName().add(dept.getDeptName()); + vo.getHandlerName().add(this.getDeptLeaderShowName(dept)); + } else { + vo.getPromoterUnitName().add(dept.getDeptName()); + vo.getPromoterName().add(this.getDeptLeaderShowName(dept)); + } } } else if (HandlerTypeEnum.ROLE.equals(type)) { SysRole role = sysRoleService.selectRoleById(projectProcess.getDataLaunch()); @@ -1741,6 +1788,52 @@ return totalNum - num; } + /** + * 璁剧疆鍊欓�変汉淇℃伅/璐d换鍗曚綅 + * + * @param userTask + * @param vo + * @param projectId + * @param processInsId + */ + private void setCandidateInfo(UserTask userTask, CustomerTaskVO vo, Long projectId, String processInsId) { + if (StringUtils.isNotBlank(userTask.getAssignee())) { + SysUser sysUser = sysUserService.selectUserById(Long.parseLong(userTask.getAssignee())); + if (Objects.nonNull(sysUser)) { + if (Objects.nonNull(sysUser.getDept())) { + // 濡傛灉鏄寚瀹氱殑鏌愪釜浜猴紝閭d箞璐d换鍗曚綅鏄繖涓汉鎵�鍦ㄧ殑閮ㄩ棬 + vo.getPromoterUnitName().add(sysUser.getDept().getDeptName()); + vo.getPromoterName().add(this.getUserShowName(sysUser)); + } + } + } else if (CollectionUtil.isNotEmpty(userTask.getCandidateGroups())) { + List<String> groupIds = userTask.getCandidateGroups(); + for (String groupId : groupIds) { + // 澶勭悊鍙橀噺琛ㄨ揪寮忥紝DATA_LAUNCH鍙彲鑳芥槸閮ㄩ棬涓嶄細鏄鑹诧紝鍥犱负浠h〃鐨勬槸涓氫富閮ㄩ棬 + if (groupId.contains(ProcessConstants.DATA_LAUNCH)) { + vo.setHandlerType(HandlerTypeEnum.DEPT); + this.varYzReview(vo, projectId, processInsId, HandlerTypeEnum.DEPT, 0); + } else if (groupId.startsWith("dept")) { // 閮ㄩ棬鐨刬d鏄姞浜嗗墠缂�鐨勫锛歞ept:1 + vo.setHandlerType(HandlerTypeEnum.DEPT); + String[] split = groupId.split(":"); + if (split.length > 1) { + // 閮ㄩ棬 + SysDept dept = sysDeptService.selectDeptById(Long.parseLong(split[1])); + if (Objects.nonNull(dept)) { + vo.getPromoterUnitName().add(dept.getDeptName()); + vo.getPromoterName().add(this.getDeptLeaderShowName(dept)); + } + } + } else { + vo.setHandlerType(HandlerTypeEnum.ROLE); + SysRole role = sysRoleService.selectRoleById(Long.parseLong(groupId)); + if (Objects.nonNull(role)) { + vo.getPromoterUnitName().add(role.getRoleName()); + } + } + } + } + } /** * 璁剧疆浠诲姟鐨勫彂璧蜂汉&澶勭悊浜� 鍙湁寰呭姙浠诲姟鍜屽凡瀹屾垚浠诲姟鎵嶄細鎺夎繖涓柟娉� @@ -1749,7 +1842,7 @@ * @param identityLinkInfos 濡傛灉鏄凡瀹屾垚鐨勪换鍔★紝鐢ㄨ繖涓幓鍙栧叧鑱旂殑鐢ㄦ埛/鐢ㄦ埛缁� */ private void setPromoterAndHandler(CustomerTaskVO taskVO, List<? extends IdentityLinkInfo> identityLinkInfos) { - this.setPromoterInfo(taskVO); +// this.setPromoterInfo(taskVO); // 涓�涓换鍔″彲鑳芥湁澶氫釜鍊欓�変汉/缁勶紝鎵�浠ラ渶瑕佷娇鐢╨ist List<Long> handlerIds = new ArrayList<>(2); @@ -1774,7 +1867,7 @@ if (Objects.nonNull(sysUser)) { taskVO.setHandlerType(HandlerTypeEnum.USER); handlerIds.add(sysUser.getUserId()); - handlerNames.add(sysUser.getNickName()); + handlerNames.add(this.getUserShowName(sysUser)); if (Objects.nonNull(sysUser.getDept())) { handlerUnitIds.add(sysUser.getDept().getDeptId()); handlerUnitNames.add(sysUser.getDept().getDeptName()); @@ -1811,7 +1904,7 @@ SysUser sysUser = sysUserService.selectUserById(Long.parseLong(identityLink.getUserId())); if (Objects.nonNull(sysUser)) { handlerIds.add(sysUser.getUserId()); - handlerNames.add(sysUser.getNickName()); + handlerNames.add(this.getUserShowName(sysUser)); if (Objects.nonNull(sysUser.getDept())) { handlerUnitIds.add(sysUser.getDept().getDeptId()); handlerUnitNames.add(sysUser.getDept().getDeptName()); @@ -1841,7 +1934,6 @@ } } } - this.distinctVo(taskVO); } @@ -1851,41 +1943,41 @@ * @param taskVO */ private void setPromoterInfo(CustomerTaskVO taskVO) { - // 鍙戣捣浜哄簲涓轰笂涓�鑺傜偣鐨勫鐞嗕汉 - List<String> beforeNodeKey = taskCommonService.getBeforeNodeInfo(taskVO.getProcessDefId(), taskVO.getTaskDefinitionKey()); - List<SysUser> userList = beforeNodeKey.stream().map(key -> { - List<HistoricTaskInstance> historicTaskInstances = historyService.createHistoricTaskInstanceQuery() - .processInstanceId(taskVO.getProcessInsId()) - .taskDefinitionKey(key) - .orderByHistoricTaskInstanceStartTime() - .desc() - .list(); // 涔嬫墍浠ョ敤list鏄洜涓哄鏋滄煇涓换鍔¤椹冲洖杩囷紝涓斿鏋滆浠诲姟鍐嶆鎵ц鏃朵細鏈夊鏉℃暟鎹紝鍙栨渶鏂扮殑涓�鏉� - if (!CollectionUtils.isEmpty(historicTaskInstances)) { - // 瀹為檯棰嗗彇杩欎釜浠诲姟鐨勪汉锛屼篃灏辨槸澶勭悊浜� - String assignee = historicTaskInstances.get(0).getAssignee(); - SysUser startUser = sysUserService.selectUserById(Long.parseLong(assignee)); - return startUser; - } else { - return null; - } - }).filter(user -> Objects.nonNull(user)).collect(Collectors.toList()); - if (CollectionUtils.isEmpty(userList)) { - taskVO.setPromoterName("鏆傛棤"); - taskVO.setPromoterUnitName("鏆傛棤"); - } else { - taskVO.setPromoterId(userList.stream().map(user -> { - return user.getUserId() + ""; - }).collect(Collectors.joining("銆�"))); - taskVO.setPromoterName(userList.stream().map(user -> { - return user.getNickName(); - }).collect(Collectors.joining("銆�"))); - taskVO.setPromoterUnitId(userList.stream().filter(user -> Objects.nonNull(user.getDept())).map(user -> { - return user.getDept().getDeptId() + ""; - }).collect(Collectors.joining("銆�"))); - taskVO.setPromoterUnitName(userList.stream().filter(user -> Objects.nonNull(user.getDept())).map(user -> { - return user.getDept().getDeptName() + ""; - }).collect(Collectors.joining("銆�"))); - } +// // 鍙戣捣浜哄簲涓轰笂涓�鑺傜偣鐨勫鐞嗕汉 +// List<String> beforeNodeKey = taskCommonService.getBeforeNodeInfo(taskVO.getProcessDefId(), taskVO.getTaskDefinitionKey()); +// List<SysUser> userList = beforeNodeKey.stream().map(key -> { +// List<HistoricTaskInstance> historicTaskInstances = historyService.createHistoricTaskInstanceQuery() +// .processInstanceId(taskVO.getProcessInsId()) +// .taskDefinitionKey(key) +// .orderByHistoricTaskInstanceStartTime() +// .desc() +// .list(); // 涔嬫墍浠ョ敤list鏄洜涓哄鏋滄煇涓换鍔¤椹冲洖杩囷紝涓斿鏋滆浠诲姟鍐嶆鎵ц鏃朵細鏈夊鏉℃暟鎹紝鍙栨渶鏂扮殑涓�鏉� +// if (!CollectionUtils.isEmpty(historicTaskInstances)) { +// // 瀹為檯棰嗗彇杩欎釜浠诲姟鐨勪汉锛屼篃灏辨槸澶勭悊浜� +// String assignee = historicTaskInstances.get(0).getAssignee(); +// SysUser startUser = sysUserService.selectUserById(Long.parseLong(assignee)); +// return startUser; +// } else { +// return null; +// } +// }).filter(user -> Objects.nonNull(user)).collect(Collectors.toList()); +// if (CollectionUtils.isEmpty(userList)) { +// taskVO.setPromoterName("鏆傛棤"); +// taskVO.setPromoterUnitName("鏆傛棤"); +// } else { +// taskVO.setPromoterId(userList.stream().map(user -> { +// return user.getUserId() + ""; +// }).collect(Collectors.joining("銆�"))); +// taskVO.setPromoterName(userList.stream().map(user -> { +// return this.getUserShowName(user); +// }).collect(Collectors.joining("銆�"))); +// taskVO.setPromoterUnitId(userList.stream().filter(user -> Objects.nonNull(user.getDept())).map(user -> { +// return user.getDept().getDeptId() + ""; +// }).collect(Collectors.joining("銆�"))); +// taskVO.setPromoterUnitName(userList.stream().filter(user -> Objects.nonNull(user.getDept())).map(user -> { +// return user.getDept().getDeptName() + ""; +// }).collect(Collectors.joining("銆�"))); +// } } /** diff --git a/business/src/main/java/com/ycl/service/impl/ProjectUnitRegistrationInfoServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProjectUnitRegistrationInfoServiceImpl.java index 0b5678b..8bd303d 100644 --- a/business/src/main/java/com/ycl/service/impl/ProjectUnitRegistrationInfoServiceImpl.java +++ b/business/src/main/java/com/ycl/service/impl/ProjectUnitRegistrationInfoServiceImpl.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.ycl.common.utils.SecurityUtils; import com.ycl.domain.entity.ProjectInvestmentInfo; import com.ycl.domain.entity.ProjectUnitRegistrationInfo; @@ -116,9 +117,9 @@ */ @Override public Result detail(Integer id) { - QueryWrapper<ProjectUnitRegistrationInfo> queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("project_id", id); - ProjectUnitRegistrationInfo entity = baseMapper.selectOne(queryWrapper); + ProjectUnitRegistrationInfo entity = new LambdaQueryChainWrapper<>(baseMapper) + .eq(ProjectUnitRegistrationInfo::getProjectId, id) + .one(); ProjectUnitRegistrationInfoVO vo = new ProjectUnitRegistrationInfoVO(); if (entity != null) { vo = ProjectUnitRegistrationInfoVO.getVoByEntity(entity, null); diff --git a/business/src/main/resources/mapper/ProjectEngineeringMapper.xml b/business/src/main/resources/mapper/ProjectEngineeringMapper.xml new file mode 100644 index 0000000..5b9b9b5 --- /dev/null +++ b/business/src/main/resources/mapper/ProjectEngineeringMapper.xml @@ -0,0 +1,64 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.ycl.mapper.ProjectEngineeringMapper"> + + <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 --> + <resultMap id="BaseResultMap" type="com.ycl.domain.vo.ProjectEngineeringVO"> + <result column="project_info_id" property="projectInfoId" /> + <result column="projectInfoName" property="projectInfoName" /> + <result column="project_name" property="projectName" /> + <result column="project_type" property="projectType" /> + <result column="investment_amount" property="investmentAmount" /> + <result column="status" property="status" /> + </resultMap> + + + + + + + + <select id="getById" resultMap="BaseResultMap"> + SELECT + TPE.project_info_id, + TPE.project_name, + TPE.project_type, + TPE.investment_amount, + TPE.status, + TPE.id + FROM + t_project_engineering TPE + WHERE + TPE.id = #{id} AND TPE.deleted = 0 + </select> + + + <select id="getPage" resultMap="BaseResultMap"> + SELECT + TPE.project_info_id, + TPE.project_name, + TPE.project_type, + TPE.investment_amount, + TPE.status, + TPE.id, + TPI.project_name as projectInfoName + FROM + t_project_engineering TPE + INNER JOIN t_project_info TPI ON TPI.id = TPE.project_info_id AND TPI.deleted = 0 + WHERE + TPE.deleted = 0 + <if test="query.projectName != null and query.projectName != ''"> + AND TPE.project_name LIKE concat('%', #{query.projectName}, '%') + </if> + <if test="query.projectInfoId != null"> + AND TPE.project_info_id = #{query.projectInfoId} + </if> + <if test="query.status != null and query.status != ''"> + AND TPE.status = #{query.status} + </if> + <if test="query.projectType != null and query.projectType != ''"> + AND TPE.project_type = #{query.projectType} + </if> + </select> + +</mapper> diff --git a/business/src/main/resources/mapper/ProjectInfoMapper.xml b/business/src/main/resources/mapper/ProjectInfoMapper.xml index fffefae..ea83801 100644 --- a/business/src/main/resources/mapper/ProjectInfoMapper.xml +++ b/business/src/main/resources/mapper/ProjectInfoMapper.xml @@ -26,6 +26,8 @@ TPI.project_phase, TPI.tag, TPI.competent_department, + TPI.competent_department_phone, + TPI.competent_department_person, TPI.area, TPI.management_centralization, TPI.project_approval_type, @@ -74,7 +76,7 @@ TPIF.county_fiscal_investment as TPIF_county_fiscal_investment,TPIF.county_special_fund_investment as TPIF_county_special_fund_investment, TPIF.domestic_loan_total as TPIF_domestic_loan_total,TPIF.bank_loan as TPIF_bank_loan,TPIF.foreign_investment_total as TPIF_foreign_investment_total, TPIF.enterprise_self_raised_total as TPIF_enterprise_self_raised_total,TPIF.other_investment_total as TPIF_other_investment_total, - TPIF.dept_bond as TPIF_dept_bond,TPIF.national_debt as TPID_national_debt, + TPIF.dept_bond as TPIF_dept_bond,TPIF.national_debt as TPIF_national_debt, TPIF.additional_national_debt as TPIF_additional_national_debt, TPII.be_cross_region as TPII_be_cross_region,TPII.construction_location as TPII_construction_location, TPII.detailed_address as TPII_detailed_address,TPII.be_compensation_project as TPII_be_compensation_project,TPII.compensation_reason as TPII_compensation_reason, TPII.planned_start_date as TPII_planned_start_date,TPII.expected_completion_date as TPII_expected_completion_date, @@ -124,7 +126,12 @@ and TPI.project_type = #{query.projectType} </if> <if test="query.importanceType !=null and query.importanceType!=''"> - and TPI.importance_type = #{query.importanceType} + and ( + TPI.importance_type like concat('%',#{query.importanceType},'%') + <if test="query.importanceType == 'normal'"> + or TPI.importance_type is null or TPI.importance_type = '' + </if> + ) </if> <if test="query.tag !=null and query.tag!=''"> and TPI.tag like concat('%',#{query.tag},'%') @@ -132,17 +139,15 @@ <if test="query.projectStatus !=null and query.projectStatus!=''"> and TPI.project_status = #{query.projectStatus} </if> - <if test="query.projectPhase !=null and query.projectPhase!=''"> + <if test="query.projectPhase !=null and query.projectPhase!='' and query.projectPhase!=6 and query.projectPhase!=5"> and TPI.project_phase = #{query.projectPhase} </if> -<!-- <if test=" assignmentStatus !=null and assignmentStatus!=''">--> -<!-- and TPI.project_phase = #{projectPhase}--> -<!-- </if>--> + /* 鍙涓嶆槸6灏辨煡瀹℃牳閫氳繃鐨勶紝6鏄」鐩腑蹇� */ + <if test="query.projectPhase != 6"> + and TPI.used_status = 2 + </if> <if test="query.fundType !=null and query.fundType!=''"> and TPI.fund_type = #{query.fundType} - </if> - <if test="query.projectPhase !=null and query.projectPhase!=''"> - and TPI.project_phase = #{query.projectPhase} </if> <if test="query.investType !=null and query.investType!=''"> and TPI.invest_type = #{query.investType} @@ -153,28 +158,20 @@ <if test="query.projectStartTime !=null and query.projectEndTime !=null"> and TPI.create_project_time between #{query.projectStartTime} and #{query.projectEndTime} </if> - <if test="query.reserveOrPrevious != null and query.reserveOrPrevious == 'reserve'"> - and TPP.process_ins_id is null - </if> - <if test="query.reserveOrPrevious != null and query.reserveOrPrevious == 'previous'"> - and TPP.process_ins_id is not null - </if> - <if test="query.projectCategory != 6"> - and TPI.used_status = 2 - </if> - <if test="query.projectCategory == 3"> - and (TPI.project_status = 'working' or TPI.project_status = 'stop') - </if> - <if test="query.projectCategory == 6"> -<!-- <if test="query.role == 0">--> -<!-- and TPI.used_status != 2--> +<!-- <if test="query.reserveOrPrevious != null and query.reserveOrPrevious == 'reserve'">--> +<!-- and TPP.process_ins_id is null--> +<!-- </if>--> +<!-- <if test="query.reserveOrPrevious != null and query.reserveOrPrevious == 'previous'">--> +<!-- and TPP.process_ins_id is not null--> +<!-- </if>--> +<!-- <if test="query.projectPhase == 3">--> +<!-- and (TPI.project_status = 'working' or TPI.project_status = 'stop')--> +<!-- </if>--> +<!-- <if test="query.role != null and query.role == 1">--> +<!-- and TPI.competent_department = #{query.competentDepartment}--> <!-- </if>--> - <if test="query.role == 1"> - and TPI.used_status = 1 and FIND_IN_SET(#{query.competentDepartment}, TPI.competent_department) > 0 - </if> - </if> <!-- 涓氫富鏁版嵁鏉冮檺 --> - <if test="query.role == 0"> + <if test="query.role != null and query.role == 0"> ${query.params.dataScope} </if> </where> @@ -197,7 +194,8 @@ <select id="selectProjectDetailByIds" resultType="com.ycl.domain.vo.ProjectVO"> select TPI.id as id,TPI.project_name,TPI.project_code,TPI.attract_investment,TPI.content,TPI.construction_nature,TPI.project_type,TPI.project_sub_type,TPI.project_status,TPI.fund_type,TPI.invest_type,TPI.project_phase, - TPI.tag,TPI.competent_department,TPI.area,TPI.management_centralization,TPI.project_approval_type,TPI.importance_type,TPI.year,TPI.year_invest_amount,TPI.create_project_time,TPI.plan_start_time, + TPI.tag,TPI.competent_department, TPI.competent_department_person, TPI.competent_department_phone, + TPI.area,TPI.management_centralization,TPI.project_approval_type,TPI.importance_type,TPI.year,TPI.year_invest_amount,TPI.create_project_time,TPI.plan_start_time, TPI.plan_complete_time,TPI.win_unit,TPI.win_amount,TPI.win_time,TPI.project_address,TPI.longitude,TPI.latitude, TPI.project_owner_unit,TPI.project_contact_person,TPI.contact,TPI.gmt_create,TPI.gmt_update,TPI.update_by,TPI.create_by, TPIF.id,TPIF.project_id,TPIF.total_investment,TPIF.principal,TPIF.government_investment_total,TPIF.central_investment_total,TPIF.central_budget_investment,TPIF.central_fiscal_investment,TPIF.central_special_bond_investment, @@ -208,6 +206,7 @@ TPIF.create_by,TPIF.gmt_update,TPIF.update_by, TPIF.dept_bond, TPIF.national_debt, + TPIF.additional_national_debt, TPII.id,TPII.project_id,TPII.be_cross_region,TPII.construction_location,TPII.detailed_address,TPII.be_compensation_project,TPII.compensation_reason,TPII.planned_start_date, TPII.expected_completion_date,TPII.national_industry_classification,TPII.industry_classification,TPII.project_nature,TPII.project_attribute, TPII.use_earth,TPII.content_scale,TPII.code,TPII.gmt_create,TPII.create_by,TPII.gmt_update, TPII.update_by, diff --git a/business/src/main/resources/mapper/ProjectInvestmentFundingMapper.xml b/business/src/main/resources/mapper/ProjectInvestmentFundingMapper.xml index 3ccb767..f91aca6 100644 --- a/business/src/main/resources/mapper/ProjectInvestmentFundingMapper.xml +++ b/business/src/main/resources/mapper/ProjectInvestmentFundingMapper.xml @@ -9,6 +9,7 @@ <result column="principal" property="principal" /> <result column="dept_bond" property="deptBond" /> <result column="national_debt" property="nationalDebt" /> + <result column="additional_national_debt" property="additionalNationalDebt" /> <result column="government_investment_total" property="governmentInvestmentTotal" /> <result column="central_investment_total" property="centralInvestmentTotal" /> <result column="central_budget_investment" property="centralBudgetInvestment" /> @@ -49,6 +50,7 @@ TPIF.project_id, TPIF.dept_bond, TPIF.national_debt, + TPIF.additional_national_debt, TPIF.total_investment, TPIF.principal, TPIF.government_investment_total, @@ -91,6 +93,7 @@ TPIF.project_id, TPIF.dept_bond, TPIF.national_debt, + TPIF.additional_national_debt, TPIF.total_investment, TPIF.principal, TPIF.government_investment_total, diff --git a/business/src/main/resources/mapper/ProjectProcessMapper.xml b/business/src/main/resources/mapper/ProjectProcessMapper.xml index 80450e4..c51819b 100644 --- a/business/src/main/resources/mapper/ProjectProcessMapper.xml +++ b/business/src/main/resources/mapper/ProjectProcessMapper.xml @@ -9,17 +9,14 @@ <result column="project_code" property="projectCode" /> <result column="content" property="content" /> <result column="project_type" property="projectType" /> + <result column="investmentAmount" property="investmentAmount" /> <result column="project_status" property="projectStatus" /> <result column="fund_type" property="fundType" /> <result column="invest_type" property="investType" /> <result column="project_phase" property="projectPhase" /> <result column="tag" property="tag" /> -<!-- <result column="competent_department" property="competentDepartment" />--> -<!-- <result column="management_centralization" property="managementCentralization" />--> <result column="project_approval_type" property="projectApprovalType" /> <result column="importance_type" property="importanceType" /> -<!-- <result column="year" property="year" />--> -<!-- <result column="year_invest_amount" property="yearInvestAmount" />--> <result column="create_project_time" property="createProjectTime" /> <result column="plan_start_time" property="planStartTime" /> <result column="plan_complete_time" property="planCompleteTime" /> @@ -34,10 +31,42 @@ <result column="create_by" property="createBy" /> <result column="process_def_id" property="processDefId" /> <result column="process_ins_id" property="processInsId" /> -<!-- <association property="id" column=""--> </resultMap> + <resultMap id="PageResultMap" type="com.ycl.domain.vo.ProjectProcessVO"> + <id column="id" property="id"/> + <result column="project_name" property="projectName" /> + <result column="project_code" property="projectCode" /> + <result column="content" property="content" /> + <result column="project_type" property="projectType" /> + <result column="investmentAmount" property="investmentAmount" /> + <result column="project_status" property="projectStatus" /> + <result column="fund_type" property="fundType" /> + <result column="invest_type" property="investType" /> + <result column="project_phase" property="projectPhase" /> + <result column="tag" property="tag" /> + <result column="project_approval_type" property="projectApprovalType" /> + <result column="importance_type" property="importanceType" /> + <result column="create_project_time" property="createProjectTime" /> + <result column="plan_start_time" property="planStartTime" /> + <result column="plan_complete_time" property="planCompleteTime" /> + <result column="project_address" property="projectAddress" /> + <result column="longitude" property="longitude" /> + <result column="latitude" property="latitude" /> + <result column="project_owner_unit" property="projectOwnerUnit" /> + <result column="project_owner_unit_name" property="projectOwnerUnitName" /> + <result column="project_contact_person" property="projectContactPerson" /> + <result column="contact" property="contact" /> + <result column="update_by" property="updateBy" /> + <result column="create_by" property="createBy" /> + <result column="process_def_id" property="processDefId" /> + <result column="process_ins_id" property="processInsId" /> + <collection property="children" ofType="com.ycl.domain.vo.ProjectEngineeringVO" select="getProjectEngineering" column="id"></collection> + </resultMap> + <select id="getProjectEngineering" parameterType="long" resultMap="com.ycl.mapper.ProjectEngineeringMapper.BaseResultMap"> + SELECT * FROM t_project_engineering WHERE project_info_id = #{id} and deleted = 0 ORDER BY gmt_create + </select> <select id="getById" resultMap="BaseResultMap"> @@ -52,14 +81,16 @@ </select> - <select id="getPage" resultMap="BaseResultMap"> + <select id="getPage" resultMap="PageResultMap"> SELECT PI.*, TPP.process_def_id, TPP.process_ins_id, + TPIF.total_investment as investmentAmount, d.dept_name as project_owner_unit_name FROM t_project_info PI + LEFT JOIN t_project_investment_funding TPIF ON TPIF.project_id = PI.id AND TPIF.deleted = 0 LEFT JOIN t_project_process TPP ON TPP.project_id = PI.id AND TPP.deleted = 0 LEFT JOIN sys_dept d ON d.dept_id = PI.project_owner_unit <where> diff --git a/common/pom.xml b/common/pom.xml index 7ee7272..8d500a4 100644 --- a/common/pom.xml +++ b/common/pom.xml @@ -20,7 +20,20 @@ <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> + <exclusions> + <exclusion> + <artifactId>jsqlparser</artifactId> + <groupId>com.github.jsqlparser</groupId> + </exclusion> + </exclusions> </dependency> + + <dependency> + <groupId>com.github.jsqlparser</groupId> + <artifactId>jsqlparser</artifactId> + <version>4.2</version> + </dependency> + <!-- lombok --> <dependency> <groupId>org.projectlombok</groupId> diff --git a/common/src/main/java/com/ycl/common/enums/YesOrNo.java b/common/src/main/java/com/ycl/common/enums/YesOrNo.java new file mode 100644 index 0000000..f0d4a2b --- /dev/null +++ b/common/src/main/java/com/ycl/common/enums/YesOrNo.java @@ -0,0 +1,32 @@ +package com.ycl.common.enums; + +/** + * 鏄�/鍚� + * + * @author ycl + */ +public enum YesOrNo +{ + NO(0, "涓嶆槸"), + YES(1, "鏄�") + ; + + private final Integer code; + private final String info; + + YesOrNo(Integer code, String info) + { + this.code = code; + this.info = info; + } + + public Integer getCode() + { + return code; + } + + public String getInfo() + { + return info; + } +} diff --git a/common/src/main/java/com/ycl/common/enums/business/ProjectCategoryEnum.java b/common/src/main/java/com/ycl/common/enums/business/ProjectCategoryEnum.java index f152d46..94bfd53 100644 --- a/common/src/main/java/com/ycl/common/enums/business/ProjectCategoryEnum.java +++ b/common/src/main/java/com/ycl/common/enums/business/ProjectCategoryEnum.java @@ -8,10 +8,10 @@ @AllArgsConstructor public enum ProjectCategoryEnum { - RESERVE("1", "pendding", "鍌ㄥ椤圭洰","reserve","鍌ㄥ瑙勫垝闃舵"), - PREVIOUS("2", "pendding","鍓嶆湡椤圭洰","previous","椤圭洰鍓嶆湡闃舵"), + RESERVE("1", "pendding", "鍌ㄥ椤圭洰","reserve","鍌ㄥ闃舵"), + PREVIOUS("2", "pendding","鍓嶆湡椤圭洰","previous","鍓嶆湡闃舵"), IMPLEMENT("3", "working,stop","瀹炴柦椤圭洰","implement","瀹炴柦闃舵"), - FINISH("4", "finish","绔e伐椤圭洰","finish","绔e伐鎶曠敤闃舵"), + FINISH("4", "finish","绔e伐椤圭洰","finish","绔e伐闃舵"), EXCEPTION("5", "","寮傚父椤圭洰","exception",""); @@ -19,7 +19,7 @@ private final String status; private final String name; private final String code; - private final String desc; + private final String desc; //鍒ゆ柇浼犲叆鏁版嵁鏄惁瀛樺湪鍥涚椤圭洰鎺ㄨ繘鐘舵�� public static boolean isValidType(String type) { @@ -33,16 +33,12 @@ /** * 鑾峰彇椤圭洰闃舵 - * @param projectStatus - * @param hasProcess 鏄惁鍚姩娴佺▼ + * @param projectPhase * @return */ - public static String getPhaseByProjectStatus(String projectStatus, boolean hasProcess) { + public static String getPhaseByProjectStatus(String projectPhase) { for (ProjectCategoryEnum projectCategoryEnum : ProjectCategoryEnum.values()) { - if (hasProcess && PREVIOUS.status.contains(projectStatus)) { - return PREVIOUS.desc; - } - if (projectCategoryEnum.status.contains(projectStatus)) { + if (projectCategoryEnum.type.equals(projectPhase)) { return projectCategoryEnum.desc; } } diff --git a/flowable/src/main/java/com/ycl/domain/vo/FormDetailVO.java b/flowable/src/main/java/com/ycl/domain/vo/FormDetailVO.java index 3528539..f83c194 100644 --- a/flowable/src/main/java/com/ycl/domain/vo/FormDetailVO.java +++ b/flowable/src/main/java/com/ycl/domain/vo/FormDetailVO.java @@ -3,6 +3,7 @@ import com.alibaba.fastjson2.JSONObject; import com.ycl.common.enums.business.TaskStatusEnum; import lombok.Data; +import org.flowable.bpmn.model.UserTask; import java.util.Map; @@ -63,5 +64,9 @@ */ private Map<String, Object> formJsonObj; - + /** + * 浠诲姟鍏冩暟鎹� + * + */ + private UserTask userTask; } diff --git a/flowable/src/main/java/com/ycl/service/common/TaskCommonService.java b/flowable/src/main/java/com/ycl/service/common/TaskCommonService.java index 240eba2..b5b0797 100644 --- a/flowable/src/main/java/com/ycl/service/common/TaskCommonService.java +++ b/flowable/src/main/java/com/ycl/service/common/TaskCommonService.java @@ -110,7 +110,7 @@ formDetailVO.setCanJump(this.checkHasExeProperty(currentElement.getExtensionElements().get("properties"), ProcessConstants.EXTENSION_PROPERTY_CAN_JUMP_TEXT)); formDetailVO.setCanWait(this.checkHasExeProperty(currentElement.getExtensionElements().get("properties"), ProcessConstants.EXTENSION_PROPERTY_CAN_WAIT_TEXT)); formDetailVO.setCanHangup(this.checkHasExeProperty(currentElement.getExtensionElements().get("properties"), ProcessConstants.EXTENSION_PROPERTY_CAN_HANGUP_TEXT)); - + formDetailVO.setUserTask(currentElement); defKeys.add(formDetailVO); this.beforeNodeInfo(currentElement, defKeys); @@ -180,6 +180,7 @@ formDetailVO.setBeforeNodeName(incomingFlow.getSourceFlowElement().getName()); formDetailVO.setCanJump(this.checkHasExeProperty(currentElement.getExtensionElements().get("properties"), ProcessConstants.EXTENSION_PROPERTY_CAN_JUMP_TEXT)); formDetailVO.setCanWait(this.checkHasExeProperty(currentElement.getExtensionElements().get("properties"), ProcessConstants.EXTENSION_PROPERTY_CAN_WAIT_TEXT)); + formDetailVO.setUserTask((UserTask) incomingFlow.getSourceFlowElement()); defKeys.add(formDetailVO); } else { beforeNodeInfo(incomingFlow.getSourceFlowElement(), defKeys); @@ -196,6 +197,7 @@ formDetailVO.setBeforeNodeName(incomingFlow.getSourceFlowElement().getName()); formDetailVO.setCanJump(this.checkHasExeProperty(currentElement.getExtensionElements().get("properties"), ProcessConstants.EXTENSION_PROPERTY_CAN_JUMP_TEXT)); formDetailVO.setCanWait(this.checkHasExeProperty(currentElement.getExtensionElements().get("properties"), ProcessConstants.EXTENSION_PROPERTY_CAN_WAIT_TEXT)); + formDetailVO.setUserTask((UserTask) incomingFlow.getSourceFlowElement()); defKeys.add(formDetailVO); } else { beforeNodeInfo(incomingFlow.getSourceFlowElement(), defKeys); @@ -207,7 +209,7 @@ /** - * 鑾峰彇褰撳墠鑺傜偣鐨勪笂涓�鑺傜偣id锛屼笉鍙嶆倲褰撳墠鑺傜偣淇℃伅锛屽鏋滃墠闈㈡槸骞惰锛岄偅涔堜細杩斿洖澶氫釜 + * 鑾峰彇褰撳墠鑺傜偣鐨勪笂涓�鑺傜偣id锛屼笉杩斿洖褰撳墠鑺傜偣淇℃伅锛屽鏋滃墠闈㈡槸骞惰锛岄偅涔堜細杩斿洖澶氫釜 * * @param processDefId 娴佺▼瀹氫箟id * @param currentNodeDefId 褰撳墠鑺傜偣瀹氫箟id diff --git a/project_management.sql b/project_management.sql index 396fc4c..327fbb8 100644 --- a/project_management.sql +++ b/project_management.sql @@ -3379,7 +3379,7 @@ `project_status` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '1' COMMENT '椤圭洰鐘舵�� (0鏈紑宸ワ紝1宸插紑宸ワ紝2宸茬宸ワ紝3鏆傚仠)', `fund_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '璧勯噾绫诲瀷锛�0涓璧勯噾锛�1鍥藉�鸿祫閲戯紝2瓒呴暱鏈熷浗鍊猴紝3鍦版柟鏀垮簻涓撻」鍊猴級', `invest_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '鎶曡祫绫诲埆锛�0浼佷笟鎶曡祫锛�1鏀垮簻鎶曡祫锛�2澶栧晢鎶曡祫锛�3澧冨鎶曡祫锛�', - `project_phase` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '椤圭洰闃舵(0鍌ㄥ瑙勫垝闃舵, 1椤圭洰鍓嶆湡闃舵, 2瀹炴柦闃舵, 3绔e伐鎶曠敤闃舵)', + `project_phase` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '椤圭洰闃舵(1鍌ㄥ瑙勫垝闃舵, 2椤圭洰鍓嶆湡闃舵, 3瀹炴柦闃舵, 4绔e伐鎶曠敤闃舵)', `tag` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '鏍囩', `competent_department` int NULL DEFAULT NULL COMMENT '涓荤閮ㄩ棬(瀵瑰簲瀹℃壒閮ㄩ棬id)', `area_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '琛屾斂鍖哄煙', diff --git a/start/src/main/java/com/ycl/Application.java b/start/src/main/java/com/ycl/Application.java index 89ff8a4..93d6a96 100644 --- a/start/src/main/java/com/ycl/Application.java +++ b/start/src/main/java/com/ycl/Application.java @@ -12,7 +12,7 @@ * @author ycl */ @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class},proxyBeanMethods = false) -@EnableAspectJAutoProxy(exposeProxy = true) +//@EnableAspectJAutoProxy(exposeProxy = true) public class Application { public static void main(String[] args) diff --git a/start/src/main/java/com/ycl/web/controller/system/SysDeptController.java b/start/src/main/java/com/ycl/web/controller/system/SysDeptController.java index 6ba80ff..bc4529d 100644 --- a/start/src/main/java/com/ycl/web/controller/system/SysDeptController.java +++ b/start/src/main/java/com/ycl/web/controller/system/SysDeptController.java @@ -43,10 +43,11 @@ private final static Long userPortId = 101L; //瀹℃壒绔痠d private final static Long approvalPortId = 102L; + /** * 鑾峰彇閮ㄩ棬鍒楄〃 */ - @PreAuthorize("@ss.hasPermi('system:dept:list')") +// @PreAuthorize("@ss.hasPermi('system:dept:list')") @GetMapping("/list") public AjaxResult list(SysDept dept) { @@ -151,6 +152,6 @@ public Result approvalList() { SysDept dept = new SysDept(); dept.setParentId(approvalPortId); - return deptService.all(dept); + return Result.ok().data(deptService.selectDeptListNoAuth(dept)); } } diff --git a/start/src/main/resources/application.yml b/start/src/main/resources/application.yml index 5e1ce3d..3f36860 100644 --- a/start/src/main/resources/application.yml +++ b/start/src/main/resources/application.yml @@ -7,7 +7,7 @@ configuration: shrink-whitespaces-in-sql: true #浠嶴QL涓垹闄ゅ浣欑殑绌烘牸瀛楃 default-enum-type-handler: com.baomidou.mybatisplus.core.handlers.MybatisEnumTypeHandler # 閫氱敤鏋氫妇澶勭悊鍣� - # log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 鏃ュ織鎵撳嵃 +# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 鏃ュ織鎵撳嵃 global-config: db-config: id-type: auto @@ -41,6 +41,7 @@ logging: level: com.ruoyi: debug + com.ycl: debug org.springframework: warn org.flowable.engine.impl.persistence.entity.*: debug org.flowable.task.service.impl.persistence.entity.*: debug diff --git a/system/src/main/java/com/ycl/system/domain/base/AbsUUIDEntity.java b/system/src/main/java/com/ycl/system/domain/base/AbsUUIDEntity.java new file mode 100644 index 0000000..4d87235 --- /dev/null +++ b/system/src/main/java/com/ycl/system/domain/base/AbsUUIDEntity.java @@ -0,0 +1,34 @@ +package com.ycl.system.domain.base; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.Data; + +import java.util.Date; + +/** + * @author xp + * @date 2022/11/29 + */ +@Data +public abstract class AbsUUIDEntity { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.ASSIGN_UUID) + private String id; + + /** 鍒涘缓鏃堕棿 */ + @TableField(value = "gmt_create", fill = FieldFill.INSERT) + private Date gmtCreate; + + /** 淇敼鏃堕棿 */ + @TableField(value = "gmt_update", fill = FieldFill.INSERT_UPDATE) + private Date gmtUpdate; + + @TableField(value = "deleted", fill = FieldFill.INSERT) + private Integer deleted; + +} diff --git a/system/src/main/java/com/ycl/system/domain/base/AbsUUIDForm.java b/system/src/main/java/com/ycl/system/domain/base/AbsUUIDForm.java new file mode 100644 index 0000000..c820bdf --- /dev/null +++ b/system/src/main/java/com/ycl/system/domain/base/AbsUUIDForm.java @@ -0,0 +1,20 @@ +package com.ycl.system.domain.base; + +import com.ycl.common.group.Update; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @author xp + * @date 2022/11/29 + */ +@Data +public abstract class AbsUUIDForm { + + @ApiModelProperty(value = "id,淇敼蹇呬紶", required = false) + @NotNull(message = "璇烽�夋嫨鏁版嵁", groups = {Update.class}) + private String id; + +} diff --git a/system/src/main/java/com/ycl/system/domain/base/AbsUUIDVo.java b/system/src/main/java/com/ycl/system/domain/base/AbsUUIDVo.java new file mode 100644 index 0000000..53a4191 --- /dev/null +++ b/system/src/main/java/com/ycl/system/domain/base/AbsUUIDVo.java @@ -0,0 +1,24 @@ +package com.ycl.system.domain.base; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @author xp + * @date 2022/11/29 + */ +@Data +public abstract class AbsUUIDVo { + + @ApiModelProperty("id") + private String id; + + @ApiModelProperty("鍒涘缓鏃堕棿") + private Date gmtCreate; + + @ApiModelProperty("淇敼鏃堕棿") + private Date gmtUpdate; + +} diff --git a/system/src/main/java/com/ycl/system/mapper/SysDeptMapper.java b/system/src/main/java/com/ycl/system/mapper/SysDeptMapper.java index 6d587cf..87948b6 100644 --- a/system/src/main/java/com/ycl/system/mapper/SysDeptMapper.java +++ b/system/src/main/java/com/ycl/system/mapper/SysDeptMapper.java @@ -19,6 +19,8 @@ */ public List<SysDept> selectDeptList(SysDept dept); + public List<SysDept> selectDeptListNoAuth(SysDept dept); + /** * 鏍规嵁瑙掕壊ID鏌ヨ閮ㄩ棬鏍戜俊鎭� * diff --git a/system/src/main/java/com/ycl/system/service/ISysDeptService.java b/system/src/main/java/com/ycl/system/service/ISysDeptService.java index 6d0bf90..0db2984 100644 --- a/system/src/main/java/com/ycl/system/service/ISysDeptService.java +++ b/system/src/main/java/com/ycl/system/service/ISysDeptService.java @@ -23,6 +23,14 @@ public List<SysDept> selectDeptList(SysDept dept); /** + * 鏌ヨ閮ㄩ棬绠$悊鏁版嵁-鏃犳暟鎹潈闄� + * + * @param dept + * @return + */ + public List<SysDept> selectDeptListNoAuth(SysDept dept); + + /** * 鏌ヨ閮ㄩ棬鏍戠粨鏋勪俊鎭� * * @param dept 閮ㄩ棬淇℃伅 diff --git a/system/src/main/java/com/ycl/system/service/impl/SysDeptServiceImpl.java b/system/src/main/java/com/ycl/system/service/impl/SysDeptServiceImpl.java index 358a7eb..af26005 100644 --- a/system/src/main/java/com/ycl/system/service/impl/SysDeptServiceImpl.java +++ b/system/src/main/java/com/ycl/system/service/impl/SysDeptServiceImpl.java @@ -50,6 +50,11 @@ return deptMapper.selectDeptList(dept); } + @Override + public List<SysDept> selectDeptListNoAuth(SysDept dept) { + return deptMapper.selectDeptListNoAuth(dept); + } + /** * 鏌ヨ閮ㄩ棬鏍戠粨鏋勪俊鎭� * diff --git a/system/src/main/resources/mapper/system/SysDeptMapper.xml b/system/src/main/resources/mapper/system/SysDeptMapper.xml index 8de6205..f4faa92 100644 --- a/system/src/main/resources/mapper/system/SysDeptMapper.xml +++ b/system/src/main/resources/mapper/system/SysDeptMapper.xml @@ -47,6 +47,18 @@ order by d.parent_id, d.order_num </select> + <select id="selectDeptListNoAuth" parameterType="SysDept" resultMap="SysDeptResult"> + <include refid="selectDeptVo"/> + where d.del_flag = '0' + <if test="parentId != null"> + AND FIND_IN_SET(#{parentId}, ancestors) > 0 + </if> + <if test="deptName != null and deptName != ''"> + AND dept_name like concat('%', #{deptName}, '%') + </if> + order by d.parent_id, d.order_num + </select> + <select id="selectDeptListByRoleId" resultType="Long"> select d.dept_id from sys_dept d @@ -94,7 +106,7 @@ where dept_name=#{deptName} and parent_id = #{parentId} and del_flag = '0' limit 1 </select> <select id="selectAncestors" resultType="java.lang.String"> - select ancestors + select SD.ancestors from sys_user SU INNER JOIN sys_dept SD ON SU.dept_id = SD.dept_id where SU.user_id = #{userId} diff --git a/system/src/main/resources/mapper/system/SysUserMapper.xml b/system/src/main/resources/mapper/system/SysUserMapper.xml index 725195f..1eb7d74 100644 --- a/system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/system/src/main/resources/mapper/system/SysUserMapper.xml @@ -34,6 +34,7 @@ <result property="ancestors" column="ancestors" /> <result property="orderNum" column="order_num" /> <result property="leader" column="leader" /> + <result property="phone" column="phone" /> <result property="status" column="dept_status" /> </resultMap> @@ -48,7 +49,7 @@ <sql id="selectUserVo"> select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, - d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status, + d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.status as dept_status, r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status from sys_user u left join sys_dept d on u.dept_id = d.dept_id @@ -227,6 +228,6 @@ </delete> <select id="getByDept" resultMap="SysUserResult"> - select * from sys_user where dept_id = #{deptId} + select * from sys_user where dept_id = #{deptId} and del_flag = '0' </select> </mapper> -- Gitblit v1.8.0