Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
S
saas-cloudfactory
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
陆伟
saas-cloudfactory
Commits
beedd926
提交
beedd926
authored
12月 07, 2021
作者:
张警文
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add: 统计BOM原料汇总并导出
上级
772f347e
隐藏空白字符变更
内嵌
并排
正在显示
8 个修改的文件
包含
175 行增加
和
5 行删除
+175
-5
ComponentMapper.java
.../com/dalezhuang/cloudfactory/pms/dao/ComponentMapper.java
+9
-0
ComponentService.java
...dalezhuang/cloudfactory/pms/service/ComponentService.java
+10
-0
ComponentServiceImpl.java
...g/cloudfactory/pms/service/impl/ComponentServiceImpl.java
+25
-1
ComponentMapper.xml
...biz/src/main/resources/mapper_mes/pms/ComponentMapper.xml
+27
-0
ComponentController.java
...uang/cloudfactory/pms/controller/ComponentController.java
+23
-0
BomMaterialDTO.java
...a/com/dalezhuang/cloudfactory/pms/dto/BomMaterialDTO.java
+2
-2
BomRebarDTO.java
...java/com/dalezhuang/cloudfactory/pms/dto/BomRebarDTO.java
+2
-2
ComponentBomMaterialStatisticalVO.java
...loudfactory/pms/vo/ComponentBomMaterialStatisticalVO.java
+77
-0
没有找到文件。
cloudfactory-mes/cloudfactory-mes-biz/src/main/java/com/dalezhuang/cloudfactory/pms/dao/ComponentMapper.java
浏览文件 @
beedd926
...
...
@@ -6,6 +6,7 @@ import com.dalezhuang.basic.database.mybatis.auth.DataScope;
import
com.dalezhuang.cloudfactory.pms.dto.*
;
import
com.dalezhuang.cloudfactory.pms.entity.PmsComponent
;
import
com.dalezhuang.cloudfactory.pms.vo.BuildingUnitSquareAmountSourceVO
;
import
com.dalezhuang.cloudfactory.pms.vo.ComponentBomMaterialStatisticalVO
;
import
com.dalezhuang.cloudfactory.pms.vo.ComponentManagementVO
;
import
com.dalezhuang.cloudfactory.pms.vo.ComponentSummaryVO
;
import
org.apache.ibatis.annotations.Param
;
...
...
@@ -93,4 +94,12 @@ public interface ComponentMapper extends SuperMapper<PmsComponent> {
@Param
(
"extra"
)
Map
<
String
,
Object
>
extra
,
DataScope
dataScope
);
/**
* 构件Bom物料详情汇总
*
* @param projectId 项目id
* @return bom物料汇总
*/
List
<
ComponentBomMaterialStatisticalVO
>
statisticalBomMaterial
(
@Param
(
"projectId"
)
Long
projectId
);
}
cloudfactory-mes/cloudfactory-mes-biz/src/main/java/com/dalezhuang/cloudfactory/pms/service/ComponentService.java
浏览文件 @
beedd926
...
...
@@ -6,6 +6,7 @@ import com.dalezhuang.basic.base.service.SuperService;
import
com.dalezhuang.cloudfactory.pms.dto.*
;
import
com.dalezhuang.cloudfactory.pms.entity.PmsComponent
;
import
com.dalezhuang.cloudfactory.pms.vo.BuildingUnitSquareAmountVO
;
import
com.dalezhuang.cloudfactory.pms.vo.ComponentBomMaterialStatisticalVO
;
import
com.dalezhuang.cloudfactory.pms.vo.ComponentManagementVO
;
import
com.dalezhuang.cloudfactory.pms.vo.ComponentSummaryVO
;
...
...
@@ -107,4 +108,13 @@ public interface ComponentService extends SuperService<PmsComponent> {
* @return 删除是否成功
*/
Boolean
deleteByIds
(
List
<
String
>
idsList
);
/**
* 构件Bom物料详情汇总
*
* @param projectId 项目id
* @return bom物料汇总
*/
List
<
ComponentBomMaterialStatisticalVO
>
statisticalBomMaterial
(
Long
projectId
);
}
cloudfactory-mes/cloudfactory-mes-biz/src/main/java/com/dalezhuang/cloudfactory/pms/service/impl/ComponentServiceImpl.java
浏览文件 @
beedd926
...
...
@@ -3,6 +3,7 @@ package com.dalezhuang.cloudfactory.pms.service.impl;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.core.convert.Convert
;
import
cn.hutool.core.util.NumberUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
cn.hutool.core.util.StrUtil
;
...
...
@@ -36,7 +37,6 @@ import com.dalezhuang.cloudfactory.pms.vo.*;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
...
...
@@ -66,6 +66,8 @@ public class ComponentServiceImpl extends SuperServiceImpl<ComponentMapper, PmsC
@Autowired
private
PmsComponentMaterialService
componentMaterialService
;
@Autowired
private
PmsMaterialService
pmsMaterialService
;
@Autowired
private
CachePlusOps
cachePlusOps
;
@Autowired
private
DistributedLock
redisDistributedLock
;
...
...
@@ -1063,4 +1065,26 @@ public class ComponentServiceImpl extends SuperServiceImpl<ComponentMapper, PmsC
}
return
true
;
}
@Override
public
List
<
ComponentBomMaterialStatisticalVO
>
statisticalBomMaterial
(
Long
projectId
)
{
List
<
ComponentBomMaterialStatisticalVO
>
dataList
=
baseMapper
.
statisticalBomMaterial
(
projectId
);
//获取品类、单位转换
Map
<
String
,
Long
>
materialCategoryLabelMap
=
pmsMaterialService
.
getMaterialCategoryLabelMap
();
Map
<
Long
,
String
>
categoryMap
=
GeneralStrUtil
.
reverseMap
(
materialCategoryLabelMap
);
Map
<
String
,
String
>
unitLabelMap
=
pmsMaterialService
.
getMaterialUnitLabelMap
();
Map
<
String
,
String
>
unitMap
=
GeneralStrUtil
.
reverseMap
(
unitLabelMap
);
for
(
ComponentBomMaterialStatisticalVO
data
:
dataList
)
{
//设置对应物料 品类-名称-规格-单位
String
stringBuffer
=
categoryMap
.
get
(
data
.
getCategoryId
())
+
"-"
+
data
.
getName
()
+
"-"
+
data
.
getSpecification
()
+
"-"
+
unitMap
.
get
(
data
.
getMaterialUnit
());
data
.
setNameFull
(
stringBuffer
);
// 楼栋单元
data
.
setBuildingUnit
(
data
.
getBuilding
()
+
"#"
+
Convert
.
toStr
(
data
.
getUnit
(),
StrPool
.
EMPTY
));
}
return
dataList
;
}
}
cloudfactory-mes/cloudfactory-mes-biz/src/main/resources/mapper_mes/pms/ComponentMapper.xml
浏览文件 @
beedd926
...
...
@@ -228,4 +228,31 @@
ORDER BY floor
</select>
<select
id=
"statisticalBomMaterial"
resultType=
"com.dalezhuang.cloudfactory.pms.vo.ComponentBomMaterialStatisticalVO"
>
SELECT
pc.building, pc.unit,
SUM(IFNULL(material.cutting_length, 0)) AS 'quantity',
SUM(IFNULL(material.total, 0)) AS 'weight',
pm.`name`,
pm.`code`,
pm.category_id,
pm.specification,
pm.unit AS material_unit,
pm.note
FROM pms_component pc
LEFT JOIN (
SELECT
component_id, material_id, total, party_a_provides, '' AS sketch, '' AS sketch_crc64, '' AS cutting_length
FROM pms_component_material pcm
UNION ALL
SELECT
component_id, material_id, quantity AS total, '' AS party_a_provides, sketch, sketch_crc64, cutting_length
FROM pms_rebar pr
) material ON material.component_id = pc.id
LEFT JOIN pms_material pm ON pm.id = material.material_id
WHERE pc.project_id = #{projectId}
GROUP BY pc.building, pc.unit, material.material_id
</select>
</mapper>
cloudfactory-mes/cloudfactory-mes-controller/src/main/java/com/dalezhuang/cloudfactory/pms/controller/ComponentController.java
浏览文件 @
beedd926
package
com
.
dalezhuang
.
cloudfactory
.
pms
.
controller
;
import
cn.afterturn.easypoi.entity.vo.NormalExcelConstants
;
import
cn.afterturn.easypoi.excel.entity.ExportParams
;
import
cn.afterturn.easypoi.excel.entity.enmus.ExcelType
;
import
cn.afterturn.easypoi.view.PoiBaseView
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.dalezhuang.basic.annotation.log.SysLog
;
import
com.dalezhuang.basic.annotation.security.PreAuth
;
...
...
@@ -12,6 +16,7 @@ import com.dalezhuang.cloudfactory.pms.dto.*;
import
com.dalezhuang.cloudfactory.pms.entity.PmsComponent
;
import
com.dalezhuang.cloudfactory.pms.service.ComponentService
;
import
com.dalezhuang.cloudfactory.pms.vo.BuildingUnitSquareAmountVO
;
import
com.dalezhuang.cloudfactory.pms.vo.ComponentBomMaterialStatisticalVO
;
import
com.dalezhuang.cloudfactory.pms.vo.ComponentManagementVO
;
import
com.dalezhuang.cloudfactory.pms.vo.ComponentSummaryVO
;
import
io.swagger.annotations.Api
;
...
...
@@ -22,6 +27,9 @@ import lombok.extern.slf4j.Slf4j;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
...
...
@@ -161,4 +169,19 @@ public class ComponentController extends SuperController<ComponentService, Long,
return
R
.
success
(
delete
);
}
@ApiOperation
(
value
=
"统计BOM原料汇总并导出"
,
notes
=
"根据项目ID查询"
)
@RequestMapping
(
value
=
"/statisticalBomExport"
,
method
=
RequestMethod
.
POST
,
produces
=
"application/octet-stream"
)
@SysLog
(
"'统计BOM原料汇总并导出-项目ID: ' + #model?.id"
)
public
void
statisticalBomExport
(
@RequestBody
@Validated
IdModel
model
,
HttpServletRequest
request
,
HttpServletResponse
response
)
{
String
title
=
"原料汇总"
;
ExportParams
exportParams
=
new
ExportParams
(
title
,
title
,
ExcelType
.
XSSF
);
List
<
ComponentBomMaterialStatisticalVO
>
list
=
baseService
.
statisticalBomMaterial
(
model
.
getId
());
Map
<
String
,
Object
>
map
=
new
HashMap
<>(
7
);
map
.
put
(
NormalExcelConstants
.
DATA_LIST
,
list
);
map
.
put
(
NormalExcelConstants
.
CLASS
,
getExcelClass
());
map
.
put
(
NormalExcelConstants
.
PARAMS
,
exportParams
);
map
.
put
(
NormalExcelConstants
.
FILE_NAME
,
list
);
PoiBaseView
.
render
(
map
,
request
,
response
,
NormalExcelConstants
.
EASYPOI_EXCEL_VIEW
);
}
}
cloudfactory-mes/cloudfactory-mes-entity/src/main/java/com/dalezhuang/cloudfactory/pms/dto/BomMaterialDTO.java
浏览文件 @
beedd926
...
...
@@ -98,8 +98,8 @@ public class BomMaterialDTO extends BaseDTO implements EchoVO {
@ApiModelProperty
(
value
=
"物料单位"
)
private
String
unitName
;
@ApiModelProperty
(
value
=
"
使用数量
"
)
@Excel
(
name
=
"
使用数量
"
)
@ApiModelProperty
(
value
=
"
名称
"
)
@Excel
(
name
=
"
名称
"
)
private
String
nameFull
;
@ApiModelProperty
(
value
=
"物料图片,首张"
)
...
...
cloudfactory-mes/cloudfactory-mes-entity/src/main/java/com/dalezhuang/cloudfactory/pms/dto/BomRebarDTO.java
浏览文件 @
beedd926
...
...
@@ -109,8 +109,8 @@ public class BomRebarDTO extends BaseDTO implements EchoVO {
@ApiModelProperty
(
value
=
"物料单位"
)
private
String
unitName
;
@ApiModelProperty
(
value
=
"
使用数量
"
)
@Excel
(
name
=
"
使用数量
"
)
@ApiModelProperty
(
value
=
"
名称
"
)
@Excel
(
name
=
"
名称
"
)
private
String
nameFull
;
@ApiModelProperty
(
value
=
"物料图片,首张"
)
...
...
cloudfactory-mes/cloudfactory-mes-entity/src/main/java/com/dalezhuang/cloudfactory/pms/vo/ComponentBomMaterialStatisticalVO.java
0 → 100644
浏览文件 @
beedd926
package
com
.
dalezhuang
.
cloudfactory
.
pms
.
vo
;
import
cn.afterturn.easypoi.excel.annotation.Excel
;
import
com.dalezhuang.basic.base.domain.BaseVO
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.*
;
import
lombok.experimental.Accessors
;
/**
* <p>
* 实体类
* 构件Bom物料详情汇总
* </p>
*
* @author jawoo
* @since 2021-12-7
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Accessors
(
chain
=
true
)
@ToString
(
callSuper
=
true
)
@EqualsAndHashCode
(
callSuper
=
false
)
@ApiModel
(
value
=
"ComponentBomMaterialStatisticalDTO"
,
description
=
"构件Bom物料详情汇总"
)
public
class
ComponentBomMaterialStatisticalVO
extends
BaseVO
{
private
static
final
long
serialVersionUID
=
6462298111204114114L
;
@ApiModelProperty
(
value
=
"项目id"
)
private
Long
projectId
;
@ApiModelProperty
(
value
=
"楼栋"
)
private
String
building
;
@ApiModelProperty
(
value
=
"单元"
)
private
String
unit
;
@ApiModelProperty
(
value
=
"楼层"
)
private
Integer
floor
;
@ApiModelProperty
(
value
=
"楼栋"
)
@Excel
(
name
=
"楼栋单元"
)
private
String
buildingUnit
;
@ApiModelProperty
(
value
=
"物料名称,最多20个字符,必填"
)
private
String
name
;
@ApiModelProperty
(
value
=
"物料编号"
)
@Excel
(
name
=
"物料编码"
)
private
String
code
;
@ApiModelProperty
(
value
=
"品类id"
)
private
Long
categoryId
;
@ApiModelProperty
(
value
=
"规格参数,最多20个字符,必填"
)
private
String
specification
;
@ApiModelProperty
(
value
=
"物料单位"
)
private
String
materialUnit
;
@ApiModelProperty
(
value
=
"备注,最多50个字符,非必填"
)
private
String
note
;
@ApiModelProperty
(
value
=
"名称"
)
@Excel
(
name
=
"品类-物料名称-规格-单位"
)
private
String
nameFull
;
@ApiModelProperty
(
value
=
"数量"
)
@Excel
(
name
=
"汇总数量(PCS)"
)
private
Integer
quantity
;
@ApiModelProperty
(
value
=
"重量"
)
@Excel
(
name
=
"汇总重量(KG)"
)
private
Integer
weight
;
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论