Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Administrator
/
framework-tools
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit 8bc5ee58
authored
Jul 09, 2024
by
renrui
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[add]项目信息维护
1 parent
17bc3f35
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
1072 additions
and
0 deletions
framework-clouds/common/src/main/java/org/arch/common/modules/archsysytem/dto/OrgDTO.java
framework-clouds/common/src/main/java/org/arch/common/modules/archsysytem/dto/PrjInfoDTO.java
framework-clouds/common/src/main/java/org/arch/common/modules/archsysytem/vo/CockpitOrgVO.java
framework-clouds/common/src/main/java/org/arch/common/modules/archsysytem/vo/PrjNeedFileVO.java
framework-system/src/main/java/org/arch/system/controller/PrjInfoController.java
framework-system/src/main/java/org/arch/system/mapper/OrgMapper.java
framework-system/src/main/java/org/arch/system/mapper/PrjNeedFileMapper.java
framework-system/src/main/java/org/arch/system/serive/PrjInfoService.java
framework-system/src/main/java/org/arch/system/serive/PrjNeedFileService.java
framework-system/src/main/java/org/arch/system/serive/impl/PrjInfoServiceImpl.java
framework-system/src/main/java/org/arch/system/serive/impl/PrjNeedFileServiceImpl.java
framework-system/src/main/resources/mapper/OrgMapper.xml
framework-system/src/main/resources/mapper/PrjNeedFileMapper.xml
framework-clouds/common/src/main/java/org/arch/common/modules/archsysytem/dto/OrgDTO.java
0 → 100644
View file @
8bc5ee5
package
org
.
arch
.
common
.
modules
.
archsysytem
.
dto
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
org.arch.common.modules.archoverall.dto.BasePageEntity
;
import
java.util.Date
;
import
java.util.List
;
/**
* <p>
*
* </p>
*
* @author audit
* @since 2020-08-21
*/
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
@ApiModel
(
value
=
"Org对象"
,
description
=
"Org对象"
)
public
class
OrgDTO
extends
BasePageEntity
{
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
value
=
"组织ID"
)
private
Long
orgId
;
@ApiModelProperty
(
value
=
"上级组织ID"
)
private
Long
parentOrgId
;
@ApiModelProperty
(
value
=
"上级组织名称"
)
private
String
parentOrgName
;
@ApiModelProperty
(
value
=
"组织编码"
)
private
String
orgNum
;
@ApiModelProperty
(
value
=
"组织名称"
)
private
String
orgName
;
@ApiModelProperty
(
value
=
"组织简称"
)
private
String
orgSimpleName
;
@ApiModelProperty
(
value
=
"组织描述"
)
private
String
orgDesc
;
@ApiModelProperty
(
value
=
"组织状态;1:启动 0:禁用"
)
private
String
orgStatus
;
@ApiModelProperty
(
value
=
"组织类型;1:内部组织 2:外部组织"
)
private
String
orgType
;
@ApiModelProperty
(
value
=
"排序字段"
)
private
Integer
orgSort
;
@ApiModelProperty
(
value
=
"创建人"
)
private
Long
createMan
;
@ApiModelProperty
(
value
=
"创建人名称"
)
private
String
createManName
;
@ApiModelProperty
(
value
=
"创建时间"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
private
Date
createTime
;
@ApiModelProperty
(
value
=
"最后一次修改时间"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
private
Date
lastUpdateTime
;
@ApiModelProperty
(
value
=
"最后一次修改人"
)
private
Long
lastUpdateMan
;
@ApiModelProperty
(
value
=
"父节点串"
)
private
String
ids
;
@ApiModelProperty
(
value
=
"子组织"
)
private
List
<
OrgDTO
>
children
;
@ApiModelProperty
(
value
=
"基准id"
)
private
String
depId
;
@ApiModelProperty
(
value
=
"基准父级id"
)
private
String
parentId
;
@ApiModelProperty
(
value
=
"组织性质,DEPT:部门 CORP:单位"
)
private
String
natureCode
;
@ApiModelProperty
(
value
=
"所属部门id"
)
private
String
branchOrgId
;
}
framework-clouds/common/src/main/java/org/arch/common/modules/archsysytem/dto/PrjInfoDTO.java
0 → 100644
View file @
8bc5ee5
package
org
.
arch
.
common
.
modules
.
archsysytem
.
dto
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
org.arch.common.modules.archoverall.dto.BasePageEntity
;
import
org.arch.common.modules.archsysytem.eneiity.PrjNeedFile
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
java.util.List
;
/**
* <p>
* 项目管理信息
* </p>
*
* @author java
* @since 2024-02-28
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@ApiModel
(
value
=
"PrjInfo对象"
,
description
=
"项目管理信息传输对象"
)
public
class
PrjInfoDTO
extends
BasePageEntity
{
@ApiModelProperty
(
value
=
"项目ID"
)
@TableId
(
value
=
"prj_id"
,
type
=
IdType
.
AUTO
)
private
Long
prjId
;
@ApiModelProperty
(
value
=
"项目编码"
)
@TableField
(
"prj_code"
)
private
String
prjCode
;
@ApiModelProperty
(
value
=
"项目名称"
)
@TableField
(
"prj_name"
)
private
String
prjName
;
@ApiModelProperty
(
value
=
"系统ID"
)
@TableField
(
"app_id"
)
private
Long
appId
;
@ApiModelProperty
(
value
=
"系统编码"
)
@TableField
(
"app_code"
)
private
String
appCode
;
@ApiModelProperty
(
value
=
"系统名称"
)
@TableField
(
"app_name"
)
private
String
appName
;
@ApiModelProperty
(
value
=
"项目经理"
)
@TableField
(
"project_manager"
)
private
String
projectManager
;
@ApiModelProperty
(
value
=
"实际竣工时间"
)
@TableField
(
"cmpl_date"
)
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
private
Date
cmplDate
;
@ApiModelProperty
(
value
=
"项目性质,1:新建、2:续建"
)
@TableField
(
"prj_plan_class"
)
private
Long
prjPlanClass
;
@ApiModelProperty
(
value
=
"建管单位"
)
@TableField
(
"manage_org_id"
)
private
Long
manageOrgId
;
@ApiModelProperty
(
value
=
"建管部门"
)
@TableField
(
"manage_dept_id"
)
private
Long
manageDeptId
;
@ApiModelProperty
(
value
=
"建设类型"
)
@TableField
(
"build_type"
)
private
Byte
buildType
;
@ApiModelProperty
(
value
=
"承建单位"
)
@TableField
(
"build_org"
)
private
Byte
buildOrg
;
@ApiModelProperty
(
value
=
"前期项目ID"
)
@TableField
(
"ago_prj_id"
)
private
Long
agoPrjId
;
@ApiModelProperty
(
value
=
"前期项目编码"
)
@TableField
(
"ago_prj_code"
)
private
String
agoPrjCode
;
@ApiModelProperty
(
value
=
"前期项目名称"
)
@TableField
(
"ago_prj_name"
)
private
String
agoPrjName
;
@ApiModelProperty
(
value
=
"创建人"
)
@TableField
(
"create_man"
)
private
Long
createMan
;
@ApiModelProperty
(
value
=
"创建时间"
)
@TableField
(
"create_time"
)
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
private
Date
createTime
;
@ApiModelProperty
(
value
=
"是否删除 1:已删除 0:未删除"
)
@TableField
(
"del_flag"
)
private
Integer
delFlag
;
@ApiModelProperty
(
value
=
"最后一次修改时间"
)
@TableField
(
"last_update_time"
)
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
private
Date
lastUpdateTime
;
@ApiModelProperty
(
value
=
"最后一次修改人"
)
@TableField
(
"last_update_man"
)
private
Long
lastUpdateMan
;
@ApiModelProperty
(
value
=
"开始时间"
)
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
private
Date
beginTime
;
@ApiModelProperty
(
value
=
"结束时间"
)
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
private
Date
endTime
;
@ApiModelProperty
(
value
=
"JSON综合字段"
)
private
List
<
PrjNeedFile
>
filesValue
;
/**
* 项目金额
*/
private
BigDecimal
projAmount
;
/**
* 项目启动时间
*/
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
private
Date
projectInitiationTime
;
private
Long
supervId
;
}
framework-clouds/common/src/main/java/org/arch/common/modules/archsysytem/vo/CockpitOrgVO.java
0 → 100644
View file @
8bc5ee5
package
org
.
arch
.
common
.
modules
.
archsysytem
.
vo
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
/**
* 组织架构 VO
*
* @author xh13k
* @date 2024/05/16
*/
@Data
@ApiModel
(
value
=
"Org对象"
,
description
=
"Org对象"
)
public
class
CockpitOrgVO
{
@ApiModelProperty
(
value
=
"组织ID"
)
private
Long
orgId
;
@ApiModelProperty
(
value
=
"组织名称"
)
private
String
orgName
;
@ApiModelProperty
(
value
=
"父组织ID"
)
private
Long
parentOrgId
;
}
framework-clouds/common/src/main/java/org/arch/common/modules/archsysytem/vo/PrjNeedFileVO.java
0 → 100644
View file @
8bc5ee5
package
org
.
arch
.
common
.
modules
.
archsysytem
.
vo
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
/**
* <p>
* 项目-需求资料信息
* </p>
*
* @author java
* @since 2024-03-14
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors
(
chain
=
true
)
@ApiModel
(
value
=
"PrjNeedFile对象"
,
description
=
"项目-需求资料信息"
)
public
class
PrjNeedFileVO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
value
=
"项目需求ID"
)
private
Long
prjNeedFileId
;
@ApiModelProperty
(
value
=
"业务ID"
)
private
Long
busiId
;
@ApiModelProperty
(
value
=
"业务ID类型:1项目附件,2需求附件"
)
private
Integer
busiIdType
;
@ApiModelProperty
(
value
=
"业务资料类型"
)
private
String
busiFileName
;
@ApiModelProperty
(
value
=
"附件ID"
)
private
Long
fileId
;
@ApiModelProperty
(
value
=
"附件URL"
)
private
String
fileUrl
;
@ApiModelProperty
(
value
=
"附件名称"
)
private
String
fileName
;
@ApiModelProperty
(
value
=
"存储名称"
)
private
String
storeFileName
;
}
framework-system/src/main/java/org/arch/system/controller/PrjInfoController.java
0 → 100644
View file @
8bc5ee5
package
org
.
arch
.
system
.
controller
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.arch.base.Result
;
import
org.arch.common.modules.archoverall.dto.BatchRemoveDTO
;
import
org.arch.common.modules.archsysytem.dto.PrjInfoDTO
;
import
org.arch.common.modules.archsysytem.eneiity.PrjInfo
;
import
org.arch.log.annotation.OperLog
;
import
org.arch.log.entity.DescContent
;
import
org.arch.log.logenum.LogOperTypeEnum
;
import
org.arch.log.logenum.LogTypeEnum
;
import
org.arch.system.serive.PrjInfoService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.List
;
/**
* <p>
* 项目管理信息 前端控制器
* </p>
*
* @author java
* @since 2024-02-28
*/
@Api
(
value
=
"/prj-info"
,
tags
=
{
"项目信息管理"
})
@RestController
@RequestMapping
(
"/prj-info"
)
public
class
PrjInfoController
{
@Autowired
private
PrjInfoService
prjInfoService
;
@ApiOperation
(
DescContent
.
QUERY_LIST_PROJECTS
)
@PostMapping
(
value
=
"/"
)
@OperLog
(
value
=
LogOperTypeEnum
.
QUERY
,
logTypeValue
=
LogTypeEnum
.
BUSI_LOG
,
operDes
=
"项目信息管理-查询列表"
,
moduleName
=
"项目信息管理"
)
public
Result
iPage
(
@RequestBody
PrjInfoDTO
params
)
{
IPage
<
PrjInfo
>
aPage
=
prjInfoService
.
iPage
(
params
,
PageDTO
.
of
(
params
.
getCurrent
(),
params
.
getPageSize
()));
return
Result
.
success
(
aPage
);
}
@ApiOperation
(
"新增"
)
@PostMapping
(
value
=
"/ad"
)
@OperLog
(
value
=
LogOperTypeEnum
.
QUERY
,
logTypeValue
=
LogTypeEnum
.
BUSI_LOG
,
operDes
=
"项目信息管理-新增项目信息管理"
,
moduleName
=
"新增项目信息管理"
)
public
Result
ad
(
@RequestBody
@Validated
PrjInfoDTO
params
)
{
return
Result
.
success
(
prjInfoService
.
insert
(
params
));
}
@ApiOperation
(
"修改"
)
@PostMapping
(
value
=
"/upd"
)
@OperLog
(
value
=
LogOperTypeEnum
.
QUERY
,
logTypeValue
=
LogTypeEnum
.
BUSI_LOG
,
operDes
=
"项目信息管理-修改项目信息管理"
,
moduleName
=
"修改项目信息管理"
)
public
Result
upd
(
@RequestBody
@Validated
PrjInfoDTO
params
)
{
return
Result
.
success
(
prjInfoService
.
update
(
params
));
}
@ApiOperation
(
value
=
"不分页查询"
,
notes
=
"不分页查询"
,
httpMethod
=
"POST"
)
@PostMapping
(
value
=
"/prjList"
)
@OperLog
(
value
=
LogOperTypeEnum
.
QUERY
,
logTypeValue
=
LogTypeEnum
.
BUSI_LOG
,
operDes
=
"项目信息管理-不分页查询项目信息管理"
,
moduleName
=
"不分页查询项目信息管理"
)
public
Result
prjList
(
@RequestBody
PrjInfoDTO
params
)
{
List
<
PrjInfo
>
prjList
=
prjInfoService
.
prjList
(
params
);
return
Result
.
success
(
prjList
);
}
@ApiOperation
(
"查询项目详情"
)
@PostMapping
(
value
=
"/qryPrj"
)
@OperLog
(
value
=
LogOperTypeEnum
.
DELETE
,
logTypeValue
=
LogTypeEnum
.
BUSI_LOG
,
operDes
=
"项目信息管理-查询项目详情"
,
moduleName
=
"查询项目详情"
)
public
Result
qryPrj
(
@RequestBody
PrjInfoDTO
params
)
{
return
Result
.
success
(
prjInfoService
.
qryPrj
(
params
));
}
@ApiOperation
(
"项目删除"
)
@PostMapping
(
value
=
"/dPrj"
)
@OperLog
(
value
=
LogOperTypeEnum
.
DELETE
,
logTypeValue
=
LogTypeEnum
.
BUSI_LOG
,
operDes
=
"项目信息管理-项目删除"
,
moduleName
=
"项目删除"
)
public
Result
delete
(
@RequestBody
@Validated
BatchRemoveDTO
params
)
{
boolean
b
=
prjInfoService
.
delBatch
(
params
);
return
b
?
Result
.
success
(
"删除成功"
)
:
Result
.
error
(
"删除失败"
);
}
}
framework-system/src/main/java/org/arch/system/mapper/OrgMapper.java
0 → 100644
View file @
8bc5ee5
package
org
.
arch
.
system
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
org.apache.ibatis.annotations.Param
;
import
org.arch.common.modules.archsysytem.dto.OrgDTO
;
import
org.arch.common.modules.archsysytem.vo.CockpitOrgVO
;
import
org.arch.common.modules.sysmange.entity.Org
;
import
java.util.List
;
/**
* <p>
* Mapper 接口
* </p>
*
* @author audit
* @since 2020-08-21
*/
public
interface
OrgMapper
extends
BaseMapper
<
Org
>
{
/**
* 查询组织机构列表
*
* @param objectPage 对象页面
* @param params 查询包装器
* @return {@link Page}<{@link Org}>
*/
Page
<
Org
>
selectForPage
(
Page
<
Object
>
objectPage
,
@Param
(
"params"
)
OrgDTO
params
);
/**
* 获取组织机构下拉框
*
* @return List<Org>
*/
List
<
Org
>
getOrgOption
();
/**
* 获取部门下拉框
*
* @return List<Org>
*/
List
<
Org
>
getDeptOption
();
/**
* 查询组织列表
*
* @return {@link List }<{@link Org }>
*/
List
<
CockpitOrgVO
>
queryOrgList
();
}
framework-system/src/main/java/org/arch/system/mapper/PrjNeedFileMapper.java
0 → 100644
View file @
8bc5ee5
package
org
.
arch
.
system
.
mapper
;
import
com.github.yulichang.base.MPJBaseMapper
;
import
org.apache.ibatis.annotations.Param
;
import
org.arch.common.modules.archoverall.dto.design.ArchiViewDTO
;
import
org.arch.common.modules.archsysytem.eneiity.PrjNeedFile
;
import
org.arch.common.modules.archsysytem.vo.PrjNeedFileVO
;
import
java.util.List
;
/**
* <p>
* 项目-需求资料信息 Mapper 接口
* </p>
*
* @author java
* @since 2024-03-14
*/
public
interface
PrjNeedFileMapper
extends
MPJBaseMapper
<
PrjNeedFile
>
{
/**
* 根据项目ID或者需求ID查询附件信息
*
* @param prjId 项目 ID
* @param needId 需求 ID
* @return {@link List}<{@link PrjNeedFile}>
*/
List
<
PrjNeedFile
>
fileInfo
(
@Param
(
"prjId"
)
Long
prjId
,
@Param
(
"needId"
)
Long
needId
);
/**
* 项目或者需求附件列表
*
* @param prjNeedFile 参数
* @return {@link List}<{@link PrjNeedFile}>
*/
List
<
PrjNeedFile
>
queryNeedFileByNeedId
(
PrjNeedFile
prjNeedFile
);
/**
* 根据项目ID或者需求ID或附件信息
*
* @param params 参数
* @return {@link PrjNeedFileVO}
*/
PrjNeedFileVO
queryByPriAndType
(
ArchiViewDTO
params
);
}
framework-system/src/main/java/org/arch/system/serive/PrjInfoService.java
0 → 100644
View file @
8bc5ee5
package
org
.
arch
.
system
.
serive
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
org.arch.common.modules.archoverall.dto.BatchRemoveDTO
;
import
org.arch.common.modules.archsysytem.dto.PrjInfoDTO
;
import
org.arch.common.modules.archsysytem.eneiity.PrjInfo
;
import
java.util.List
;
/**
* <p>
* 项目管理信息 服务类
* </p>
*
* @author java
* @since 2024-02-28
*/
public
interface
PrjInfoService
extends
IService
<
PrjInfo
>
{
/**
* 分页
*
* @param params 参数
* @param page 页
* @return {@link IPage }<{@link PrjInfo }>
*/
IPage
<
PrjInfo
>
iPage
(
PrjInfoDTO
params
,
Page
<
PrjInfo
>
page
);
/**
* 插入
*
* @param params 参数
* @return {@link Boolean }
*/
Boolean
insert
(
PrjInfoDTO
params
);
/**
* 更新
*
* @param params 参数
* @return {@link Boolean }
*/
Boolean
update
(
PrjInfoDTO
params
);
/**
* 列表
*
* @param params 参数
* @return {@link List }<{@link PrjInfo }>
*/
List
<
PrjInfo
>
prjList
(
PrjInfoDTO
params
);
/**
* 详情
*
* @param params 参数
* @return {@link PrjInfo }
*/
PrjInfo
qryPrj
(
PrjInfoDTO
params
);
/**
* 批量删除
*
* @param params 参数
*/
Boolean
delBatch
(
BatchRemoveDTO
params
);
}
framework-system/src/main/java/org/arch/system/serive/PrjNeedFileService.java
0 → 100644
View file @
8bc5ee5
package
org
.
arch
.
system
.
serive
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
org.arch.common.modules.archsysytem.eneiity.PrjNeedFile
;
import
java.util.List
;
/**
* <p>
* 项目-需求资料信息 服务类
* </p>
*
* @author java
* @since 2024-03-14
*/
public
interface
PrjNeedFileService
extends
IService
<
PrjNeedFile
>
{
Boolean
inster
(
PrjNeedFile
params
);
Boolean
update
(
PrjNeedFile
params
);
/**
* 项目或者需求附件列表
*
* @param params 参数
* @return {@link List }<{@link PrjNeedFile }>
*/
List
<
PrjNeedFile
>
fileList
(
PrjNeedFile
params
);
/**
* 项目附件关系表
*
* @param params 参数
* @param prjId 项目 ID
* @param needId 需要 ID
* @return {@link Boolean}
*/
void
insertPrjNeedFile
(
List
<
PrjNeedFile
>
params
,
Long
prjId
,
Long
needId
);
/**
* 根据项目ID或者需求ID查询附件信息
*
* @param prjId 项目 ID
* @param needId 需求 ID
* @return {@link List}<{@link PrjNeedFile}>
*/
List
<
PrjNeedFile
>
fileInfo
(
Long
prjId
,
Long
needId
);
}
framework-system/src/main/java/org/arch/system/serive/impl/PrjInfoServiceImpl.java
0 → 100644
View file @
8bc5ee5
package
org
.
arch
.
system
.
serive
.
impl
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.lang.Assert
;
import
cn.hutool.core.util.IdUtil
;
import
cn.hutool.core.util.StrUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
lombok.RequiredArgsConstructor
;
import
org.arch.common.modules.archoverall.dto.BatchRemoveDTO
;
import
org.arch.common.modules.archsysytem.dto.PrjInfoDTO
;
import
org.arch.common.modules.archsysytem.eneiity.AppInfo
;
import
org.arch.common.modules.archsysytem.eneiity.PrjInfo
;
import
org.arch.common.modules.archsysytem.eneiity.PrjNeedFile
;
import
org.arch.common.modules.sysmange.entity.Org
;
import
org.arch.system.mapper.AppInfoMapper
;
import
org.arch.system.mapper.OrgMapper
;
import
org.arch.system.mapper.PrjInfoMapper
;
import
org.arch.system.mapper.PrjNeedFileMapper
;
import
org.arch.system.serive.PrjInfoService
;
import
org.arch.system.serive.PrjNeedFileService
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.List
;
import
java.util.Objects
;
import
java.util.stream.Collectors
;
/**
* <p>
* 项目管理信息 服务实现类
* </p>
*
* @author java
* @since 2024-02-28
*/
@Service
@RequiredArgsConstructor
public
class
PrjInfoServiceImpl
extends
ServiceImpl
<
PrjInfoMapper
,
PrjInfo
>
implements
PrjInfoService
{
private
final
PrjNeedFileService
prjNeedFileService
;
private
final
PrjNeedFileMapper
prjNeedFileMapper
;
private
final
AppInfoMapper
appInfoMapper
;
private
final
OrgMapper
orgMapper
;
@Override
public
IPage
<
PrjInfo
>
iPage
(
PrjInfoDTO
params
,
Page
<
PrjInfo
>
page
)
{
return
baseMapper
.
selectPage
(
page
,
queryWrapper
(
params
));
}
@Override
@Transactional
public
Boolean
insert
(
PrjInfoDTO
params
)
{
PrjInfo
model
=
new
PrjInfo
();
AppInfo
appInfo
=
appInfoMapper
.
selectById
(
params
.
getAppId
());
Assert
.
notNull
(
appInfo
,
"系统ID不能为空"
);
Long
count
=
baseMapper
.
selectCount
(
Wrappers
.
lambdaQuery
(
PrjInfo
.
class
)
.
eq
(
PrjInfo:
:
getPrjName
,
params
.
getPrjName
()));
Assert
.
isFalse
(
count
>
0
,
"项目名称已存在"
);
BeanUtil
.
copyProperties
(
params
,
model
);
model
.
setPrjCode
(
IdUtil
.
fastUUID
());
model
.
setProjectManager
(
appInfo
.
getProjectManager
());
Org
org
=
orgMapper
.
selectById
(
params
.
getManageOrgId
());
Assert
.
notNull
(
org
,
"建管单位不存在"
);
model
.
setManageOrgCode
(
org
.
getOrgCode
());
boolean
save
=
save
(
model
);
prjNeedFileService
.
insertPrjNeedFile
(
params
.
getFilesValue
(),
model
.
getPrjId
(),
null
);
return
save
;
}
@Override
@Transactional
public
Boolean
update
(
PrjInfoDTO
params
)
{
PrjInfo
model
=
new
PrjInfo
();
AppInfo
appInfo
=
appInfoMapper
.
selectById
(
params
.
getAppId
());
Assert
.
notNull
(
appInfo
,
"系统ID不能为空"
);
Long
prjId
=
params
.
getPrjId
();
Assert
.
notNull
(
prjId
,
"项目ID不能为空"
);
Long
count
=
baseMapper
.
selectCount
(
Wrappers
.
lambdaQuery
(
PrjInfo
.
class
)
.
eq
(
PrjInfo:
:
getPrjName
,
params
.
getPrjName
())
.
notIn
(
PrjInfo:
:
getPrjId
,
prjId
));
Assert
.
isFalse
(
count
>
0
,
"项目名称已存在"
);
prjNeedFileService
.
insertPrjNeedFile
(
params
.
getFilesValue
(),
prjId
,
null
);
BeanUtil
.
copyProperties
(
params
,
model
);
Org
org
=
orgMapper
.
selectById
(
params
.
getManageOrgId
());
Assert
.
notNull
(
org
,
"建管单位不存在"
);
model
.
setManageOrgCode
(
org
.
getOrgCode
());
model
.
setProjectManager
(
appInfo
.
getProjectManager
());
return
updateById
(
model
);
}
@Override
public
List
<
PrjInfo
>
prjList
(
PrjInfoDTO
params
)
{
return
baseMapper
.
selectList
(
queryWrapper
(
params
));
}
private
LambdaQueryWrapper
<
PrjInfo
>
queryWrapper
(
PrjInfoDTO
params
)
{
return
Wrappers
.
lambdaQuery
(
PrjInfo
.
class
)
.
select
()
.
like
(
StrUtil
.
isNotBlank
(
params
.
getAppName
()),
PrjInfo:
:
getAppName
,
params
.
getAppName
())
.
like
(
StrUtil
.
isNotBlank
(
params
.
getPrjName
()),
PrjInfo:
:
getPrjName
,
params
.
getPrjName
())
.
like
(
StrUtil
.
isNotBlank
(
params
.
getProjectManager
()),
PrjInfo:
:
getProjectManager
,
params
.
getProjectManager
())
.
eq
(
Objects
.
nonNull
(
params
.
getAppId
()),
PrjInfo:
:
getAppId
,
params
.
getAppId
())
.
eq
(
Objects
.
nonNull
(
params
.
getAppCode
()),
PrjInfo:
:
getAppCode
,
params
.
getAppCode
())
.
eq
(
Objects
.
nonNull
(
params
.
getManageOrgId
()),
PrjInfo:
:
getManageOrgId
,
params
.
getManageOrgId
())
.
eq
(
Objects
.
nonNull
(
params
.
getManageDeptId
()),
PrjInfo:
:
getManageDeptId
,
params
.
getManageDeptId
())
.
eq
(
Objects
.
nonNull
(
params
.
getBuildType
()),
PrjInfo:
:
getBuildType
,
params
.
getBuildType
())
.
eq
(
Objects
.
nonNull
(
params
.
getBuildOrg
()),
PrjInfo:
:
getBuildOrg
,
params
.
getBuildOrg
())
.
eq
(
Objects
.
nonNull
(
params
.
getPrjPlanClass
()),
PrjInfo:
:
getPrjPlanClass
,
params
.
getPrjPlanClass
())
.
eq
(
Objects
.
nonNull
(
params
.
getCreateMan
()),
PrjInfo:
:
getCreateMan
,
params
.
getCreateMan
())
.
ge
(
Objects
.
nonNull
(
params
.
getBeginTime
()),
PrjInfo:
:
getCreateTime
,
DateUtil
.
format
(
params
.
getBeginTime
(),
"yyyy-MM-dd 00:00:00"
))
.
le
(
Objects
.
nonNull
(
params
.
getBeginTime
()),
PrjInfo:
:
getCreateTime
,
DateUtil
.
format
(
params
.
getEndTime
(),
"yyyy-MM-dd 23:59:59"
));
}
@Override
public
PrjInfo
qryPrj
(
PrjInfoDTO
params
)
{
PrjInfo
prjInfo
=
baseMapper
.
selectById
(
params
.
getPrjId
());
Assert
.
notNull
(
prjInfo
,
"项目不存在!"
);
prjInfo
.
setFilesValue
(
prjNeedFileMapper
.
fileInfo
(
prjInfo
.
getPrjId
(),
null
));
return
prjInfo
;
}
@Override
@Transactional
public
Boolean
delBatch
(
BatchRemoveDTO
params
)
{
// 项目 ids
List
<
Long
>
ids
=
params
.
getIds
();
// 项目附件
List
<
PrjNeedFile
>
prjNeedFiles
=
prjNeedFileMapper
.
selectList
(
Wrappers
.
lambdaQuery
(
PrjNeedFile
.
class
)
.
in
(
PrjNeedFile:
:
getBusiId
,
ids
)
.
eq
(
PrjNeedFile:
:
getBusiIdType
,
1
));
if
(
CollUtil
.
isNotEmpty
(
prjNeedFiles
))
{
prjNeedFileMapper
.
deleteBatchIds
(
prjNeedFiles
.
stream
()
.
map
(
PrjNeedFile:
:
getPrjNeedFileId
)
.
collect
(
Collectors
.
toList
()));
}
return
removeByIds
(
ids
);
}
}
framework-system/src/main/java/org/arch/system/serive/impl/PrjNeedFileServiceImpl.java
0 → 100644
View file @
8bc5ee5
package
org
.
arch
.
system
.
serive
.
impl
;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.core.lang.Assert
;
import
cn.hutool.core.util.StrUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
org.arch.common.modules.archsysytem.eneiity.PrjNeedFile
;
import
org.arch.system.mapper.PrjNeedFileMapper
;
import
org.arch.system.serive.PrjNeedFileService
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.List
;
import
java.util.Objects
;
import
java.util.stream.Collectors
;
/**
* <p>
* 项目-需求资料信息 服务实现类
* </p>
*
* @author java
* @since 2024-03-14
*/
@Service
public
class
PrjNeedFileServiceImpl
extends
ServiceImpl
<
PrjNeedFileMapper
,
PrjNeedFile
>
implements
PrjNeedFileService
{
@Override
public
Boolean
inster
(
PrjNeedFile
params
)
{
return
baseMapper
.
insert
(
params
)
>
0
;
}
@Override
public
Boolean
update
(
PrjNeedFile
params
)
{
LambdaQueryWrapper
<
PrjNeedFile
>
wrapper
=
Wrappers
.
lambdaQuery
(
PrjNeedFile
.
class
)
.
select
()
.
eq
(
Objects
.
nonNull
(
params
.
getBusiId
()),
PrjNeedFile:
:
getBusiId
,
params
.
getBusiId
())
.
eq
(
Objects
.
nonNull
(
params
.
getBusiIdType
()),
PrjNeedFile:
:
getBusiIdType
,
params
.
getBusiIdType
())
.
eq
(
StrUtil
.
isNotBlank
(
params
.
getBusiFileName
()),
PrjNeedFile:
:
getBusiFileName
,
params
.
getBusiFileName
());
List
<
PrjNeedFile
>
fileList
=
baseMapper
.
selectList
(
wrapper
);
if
(
fileList
.
isEmpty
())
{
throw
new
IllegalArgumentException
(
"附件信息不存在!"
);
}
PrjNeedFile
existingFile
=
fileList
.
get
(
0
);
params
.
setPrjNeedFileId
(
existingFile
.
getPrjNeedFileId
());
return
baseMapper
.
updateById
(
params
)
>
0
;
}
@Override
public
List
<
PrjNeedFile
>
fileList
(
PrjNeedFile
params
)
{
return
baseMapper
.
queryNeedFileByNeedId
(
params
);
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
insertPrjNeedFile
(
List
<
PrjNeedFile
>
params
,
Long
prjId
,
Long
needId
)
{
// 这块务必传入prjId或者needId,否则会删除所有数据
if
(
Objects
.
nonNull
(
prjId
))
{
List
<
PrjNeedFile
>
list
=
list
(
Wrappers
.
lambdaQuery
(
PrjNeedFile
.
class
)
.
eq
(
PrjNeedFile:
:
getBusiId
,
prjId
)
.
eq
(
PrjNeedFile:
:
getBusiIdType
,
1
));
if
(
CollectionUtil
.
isNotEmpty
(
list
))
{
removeByIds
(
list
.
stream
().
map
(
PrjNeedFile:
:
getPrjNeedFileId
).
collect
(
Collectors
.
toList
()));
}
}
if
(
Objects
.
nonNull
(
needId
))
{
List
<
PrjNeedFile
>
list
=
list
(
Wrappers
.
lambdaQuery
(
PrjNeedFile
.
class
)
.
eq
(
PrjNeedFile:
:
getBusiId
,
needId
)
.
eq
(
PrjNeedFile:
:
getBusiIdType
,
2
));
if
(
CollectionUtil
.
isNotEmpty
(
list
))
{
removeByIds
(
list
.
stream
().
map
(
PrjNeedFile:
:
getPrjNeedFileId
).
collect
(
Collectors
.
toList
()));
}
}
if
(
CollectionUtil
.
isNotEmpty
(
params
))
{
params
.
forEach
(
it
->
{
Long
busFileType
=
it
.
getBusiFileType
();
Long
fileId
=
it
.
getFileId
();
Assert
.
notNull
(
busFileType
,
"项目资料类型不能为空"
);
Assert
.
notNull
(
fileId
,
"文件ID不能为空"
);
if
(
Objects
.
nonNull
(
prjId
))
{
it
.
setBusiId
(
prjId
);
it
.
setBusiIdType
(
1
);
}
else
{
it
.
setBusiId
(
needId
);
it
.
setBusiIdType
(
2
);
}
});
}
saveBatch
(
params
);
}
@Override
public
List
<
PrjNeedFile
>
fileInfo
(
Long
prjId
,
Long
needId
)
{
return
baseMapper
.
fileInfo
(
prjId
,
needId
);
}
}
framework-system/src/main/resources/mapper/OrgMapper.xml
0 → 100644
View file @
8bc5ee5
<?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=
"org.arch.system.mapper.OrgMapper"
>
<resultMap
id=
"BaseResultMap"
type=
"org.arch.common.modules.sysmange.entity.Org"
>
<!--@mbg.generated-->
<!--@Table sys_org-->
<id
column=
"org_id"
jdbcType=
"BIGINT"
property=
"orgId"
/>
<result
column=
"parent_org_id"
jdbcType=
"BIGINT"
property=
"parentOrgId"
/>
<result
column=
"org_code"
jdbcType=
"VARCHAR"
property=
"orgCode"
/>
<result
column=
"org_name"
jdbcType=
"VARCHAR"
property=
"orgName"
/>
<result
column=
"org_simple_name"
jdbcType=
"VARCHAR"
property=
"orgSimpleName"
/>
<result
column=
"org_desc"
jdbcType=
"VARCHAR"
property=
"orgDesc"
/>
<result
column=
"org_status"
jdbcType=
"VARCHAR"
property=
"orgStatus"
/>
<result
column=
"org_type"
jdbcType=
"VARCHAR"
property=
"orgType"
/>
<result
column=
"org_sort"
jdbcType=
"INTEGER"
property=
"orgSort"
/>
<result
column=
"create_man"
jdbcType=
"BIGINT"
property=
"createMan"
/>
<result
column=
"create_man_name"
jdbcType=
"VARCHAR"
property=
"createManName"
/>
<result
column=
"create_time"
jdbcType=
"TIMESTAMP"
property=
"createTime"
/>
<result
column=
"last_update_time"
jdbcType=
"TIMESTAMP"
property=
"lastUpdateTime"
/>
<result
column=
"last_update_man"
jdbcType=
"BIGINT"
property=
"lastUpdateMan"
/>
<result
column=
"ids"
jdbcType=
"VARCHAR"
property=
"ids"
/>
<result
column=
"dep_id"
jdbcType=
"VARCHAR"
property=
"depId"
/>
<result
column=
"parent_id"
jdbcType=
"VARCHAR"
property=
"parentId"
/>
<result
column=
"nature_code"
jdbcType=
"VARCHAR"
property=
"natureCode"
/>
<result
column=
"is_show"
jdbcType=
"TINYINT"
property=
"isShow"
/>
<result
column=
"branch_org_id"
jdbcType=
"BIGINT"
property=
"branchOrgId"
/>
</resultMap>
<!--获取组织机构下拉框-->
<select
id=
"getOrgOption"
resultMap=
"BaseResultMap"
>
select so.org_id,
so.parent_org_id,
so.org_code,
so.org_name,
so.org_simple_name,
so.org_desc,
so.org_status,
so.org_type,
so.org_sort,
so.create_man,
so.create_time,
so.last_update_time,
so.last_update_man,
so.ids,
so.dep_id,
so.parent_id,
so.nature_code,
so.is_show,
so.branch_org_id
from sys_org so
where so.org_status = '1'
and so.parent_org_id = 0
order by so.org_sort
</select>
<!--获取部门下拉-->
<select
id=
"getDeptOption"
resultMap=
"BaseResultMap"
>
select so.org_id,
so.parent_org_id,
so.org_code,
so.org_name,
so.org_simple_name,
so.org_desc,
so.org_status,
so.org_type,
so.org_sort,
so.create_man,
so.create_time,
so.last_update_time,
so.last_update_man,
so.ids,
so.dep_id,
so.parent_id,
so.nature_code,
so.is_show,
so.branch_org_id
from sys_org so
where so.org_status = '1'
and so.parent_org_id = 0
order by so.org_sort
</select>
<!--查询组织机构列表-->
<select
id=
"selectForPage"
resultMap=
"BaseResultMap"
>
select a.*,
b.name as create_man_name
from sys_org a
left join sys_user b on a.create_man = b.id
<where>
<if
test=
"params.orgName != null and params.orgName != ''"
>
and a.org_name like concat('%', #{params.orgName}, '%')
</if>
<if
test=
"params.parentOrgId != null"
>
and a.parent_org_id = #{params.parentOrgId}
</if>
</where>
order by a.parent_org_id,
a.org_sort
</select>
<!--查询所有组织架构-->
<select
id=
"queryOrgList"
resultType=
"org.arch.common.modules.archsysytem.vo.CockpitOrgVO"
>
select so.org_id,
so.parent_org_id,
so.org_name
from sys_org so
where so.org_status = '1'
order by so.parent_org_id,
so.org_sort
</select>
</mapper>
\ No newline at end of file
framework-system/src/main/resources/mapper/PrjNeedFileMapper.xml
0 → 100644
View file @
8bc5ee5
<?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=
"org.arch.system.mapper.PrjNeedFileMapper"
>
<resultMap
id=
"BaseResultMap"
type=
"org.arch.common.modules.archsysytem.eneiity.PrjNeedFile"
>
<!--@mbg.generated-->
<!--@Table prj_need_file-->
<id
column=
"prj_need_file_id"
jdbcType=
"BIGINT"
property=
"prjNeedFileId"
/>
<result
column=
"busi_id"
jdbcType=
"BIGINT"
property=
"busiId"
/>
<result
column=
"busi_id_type"
jdbcType=
"BIGINT"
property=
"busiIdType"
/>
<result
column=
"busi_file_name"
jdbcType=
"VARCHAR"
property=
"busiFileName"
/>
<result
column=
"file_id"
jdbcType=
"BIGINT"
property=
"fileId"
/>
<result
column=
"file_name"
jdbcType=
"VARCHAR"
property=
"fileName"
/>
<result
column=
"busi_file_type"
property=
"busiFileType"
/>
</resultMap>
<!--项目或者需求附件信息-->
<select
id=
"fileInfo"
resultMap=
"BaseResultMap"
>
select pnf.prj_need_file_id,
pnf.busi_id,
pnf.busi_id_type,
pnf.busi_file_name,
pnf.busi_file_type,
pnf.file_id,
sf.file_name
from prj_need_file pnf
left join sys_file sf on (pnf.file_id = sf.id)
<where>
<if
test=
"prjId != null"
>
and pnf.busi_id = #{prjId}
and pnf.busi_id_type = 1
</if>
<if
test=
"needId != null"
>
and pnf.busi_id = #{needId}
and pnf.busi_id_type = 2
</if>
</where>
</select>
<!--项目或者需求附件列表-->
<select
id=
"queryNeedFileByNeedId"
resultMap=
"BaseResultMap"
>
select pnf.prj_need_file_id,
pnf.busi_id,
pnf.busi_id_type,
pnf.busi_file_name,
pnf.busi_file_type,
pnf.file_id,
sf.file_name
from prj_need_file pnf
left join sys_file sf on (pnf.file_id = sf.id)
WHERE busi_id = #{busiId}
AND busi_id_type = #{busiIdType}
<if
test=
"busiFileNameList != null and busiFileNameList.size() != 0"
>
AND busi_file_name IN
<foreach
collection=
"busiFileNameList"
item=
"item"
open=
"("
separator=
","
close=
")"
>
#{item}
</foreach>
</if>
</select>
<!--查询项目附件-->
<select
id=
"queryByPriAndType"
resultType=
"org.arch.common.modules.archsysytem.vo.PrjNeedFileVO"
>
select sf.id as file_id,
sf.url as file_url,
sf.file_name as file_name,
sf.ftp_store_file_name as store_file_name
from prj_need_file pnf
left join sys_file sf on pnf.file_id = sf.id
where pnf.busi_id = #{prjId}
and pnf.busi_file_name = #{busiFileName}
and pnf.busi_id_type = 1
limit 1
</select>
</mapper>
\ No newline at end of file
Write
Preview
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment