Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
张雷
/
skboot-zhongye
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
构建
提交
问题看板
文件
提交
网络
比较
分支
标签
1ac4b16f
由
康伟
编写于
2025-02-08 15:09:19 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
kangwei: 2、药剂到货统计查询功能不对,没有按时间查询出来,药剂名称、供货单位未显示,数量不准确,另外增加导出excel功能
3、药剂入库审核中根据合同号搜索不出内容
1 个父辈
8cb3df17
隐藏空白字符变更
内嵌
并排
正在显示
9 个修改的文件
包含
482 行增加
和
112 行删除
sk-module-biz/src/main/java/com/skua/modules/erp/controller/ErpCommonController.java
sk-module-biz/src/main/java/com/skua/modules/erp/controller/MaterialINController.java
sk-module-biz/src/main/java/com/skua/modules/erp/entity/MaterialIN.java
sk-module-biz/src/main/java/com/skua/modules/erp/vo/MaterialINArrivalRecordVO.java
sk-module-biz/src/main/java/com/skua/modules/erp/vo/MaterialINXslVO.java
sk-module-biz/src/main/java/com/skua/modules/erp/vo/MaterialSearchVO.java
sk-module-biz/src/main/java/com/skua/modules/erp/vo/PurchaseMaterialVO.java
sk-module-equipment/src/main/java/com/skua/modules/equipment/vo/EquipmentOutExcel.java
sk-module-system/src/main/java/com/skua/config/mybatis/MybatisInterceptor.java
sk-module-biz/src/main/java/com/skua/modules/erp/controller/ErpCommonController.java
查看文件 @
1ac4b16
...
...
@@ -117,19 +117,18 @@ public class ErpCommonController {
sparepartTypeStr
=
String
.
join
(
","
,
sparepartTypeSet
);
}
materialSearchVO
.
setSparepartType
(
sparepartTypeStr
)
;
}
else
{
if
(
materialSearchVO
.
isMedicament
()){
//查询药剂物料清单
EquipmentSparepartType
equipmentSparepartType
=
new
EquipmentSparepartType
();
equipmentSparepartType
.
setMedicament
(
materialSearchVO
.
isMedicament
()
);
List
<
EquipmentSparepartType
>
sparepartTypeList
=
equipmentSparepartTypeService
.
querySparepartTypeList
(
equipmentSparepartType
);
if
(
sparepartTypeList
!=
null
&&
!
sparepartTypeList
.
isEmpty
()){
for
(
EquipmentSparepartType
sparepartType
:
sparepartTypeList
){
if
(
sparepartTypeStr
.
length
()
>
0
)
sparepartTypeStr
+=
","
;
sparepartTypeStr
+=
"'"
+
sparepartType
.
getId
()+
"'"
;
}
}
if
(
materialSearchVO
.
getMedicament
()){
//查询药剂物料清单
EquipmentSparepartType
equipmentSparepartType
=
new
EquipmentSparepartType
();
equipmentSparepartType
.
setMedicament
(
materialSearchVO
.
getMedicament
()
);
List
<
EquipmentSparepartType
>
sparepartTypeList
=
equipmentSparepartTypeService
.
querySparepartTypeList
(
equipmentSparepartType
);
if
(
sparepartTypeList
!=
null
&&
!
sparepartTypeList
.
isEmpty
()){
for
(
EquipmentSparepartType
sparepartType
:
sparepartTypeList
){
if
(
sparepartTypeStr
.
length
()
>
0
)
sparepartTypeStr
+=
","
;
sparepartTypeStr
+=
"'"
+
sparepartType
.
getId
()+
"'"
;
}
materialSearchVO
.
setSparepartType
(
sparepartTypeStr
)
;
}
materialSearchVO
.
setSparepartType
(
sparepartTypeStr
)
;
}
IPage
<
PurchaseMaterialVO
>
pageList
=
purchaseMaterialService
.
queryPurchaseMaterialListByIn
(
page
,
materialSearchVO
);
result
.
setSuccess
(
true
);
...
...
sk-module-biz/src/main/java/com/skua/modules/erp/controller/MaterialINController.java
查看文件 @
1ac4b16
package
com
.
skua
.
modules
.
erp
.
controller
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -31,7 +32,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.skua.modules.erp.util.PdfUtil
;
import
com.skua.modules.erp.vo.ArrivalRecordExcelExportVO
;
import
com.skua.modules.erp.vo.MaterialINArrivalRecordVO
;
import
com.skua.modules.erp.vo.MaterialINVO
;
import
com.skua.modules.erp.vo.MaterialINXslVO
;
import
com.skua.modules.supplies.entity.EquipmentSparepartSupplies
;
import
com.skua.modules.supplies.entity.EquipmentSparepartType
;
import
com.skua.modules.supplies.service.IEquipmentSparepartSuppliesService
;
...
...
@@ -49,6 +52,7 @@ import org.jeecgframework.poi.excel.entity.ExportParams;
import
org.jeecgframework.poi.excel.entity.ImportParams
;
import
org.jeecgframework.poi.excel.view.JeecgEntityExcelView
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.web.bind.annotation.*
;
...
...
@@ -148,24 +152,7 @@ public class MaterialINController {
Result
<
IPage
<
MaterialIN
>>
result
=
new
Result
<
IPage
<
MaterialIN
>>();
QueryWrapper
<
MaterialIN
>
queryWrapper
=
QueryGenerator
.
initQueryWrapper
(
materialIN
,
req
.
getParameterMap
());
Page
<
MaterialIN
>
page
=
new
Page
<
MaterialIN
>(
pageNo
,
pageSize
);
/*if(StringUtils.isNotBlank(materialIN.getDepartId())){
queryWrapper.eq("depart_id",materialIN.getDepartId());
}
if(StringUtils.isNotBlank(materialIN.getAuditStatus())){
queryWrapper.eq("audit_status",materialIN.getAuditStatus());
}
*//*if(StringUtils.isNotBlank(materialIN.getConfirmStatus())){
queryWrapper.eq("confirm_status",materialIN.getConfirmStatus());
}*//*
if(StringUtils.isNotBlank(materialIN.getGoodCode())){
queryWrapper.like("good_code",materialIN.getGoodCode());
}
if(StringUtils.isNotBlank(materialIN.getStartTime())){
queryWrapper.ge("arrive_time",materialIN.getStartTime());
}
if(StringUtils.isNotBlank(materialIN.getEndTime())){
queryWrapper.le("arrive_time",materialIN.getEndTime());
}*/
//全部确认的数据
queryWrapper
.
eq
(
"confirm_status"
,
"9"
);
//检索采购合同
...
...
@@ -173,14 +160,14 @@ public class MaterialINController {
List
<
String
>
purchaseContractIdList
=
purchaseContractService
.
selectIdsByCode
(
req
.
getParameter
(
"purchaseContractCode"
));
//purchaseContractIds
if
(
purchaseContractIdList
!=
null
&&
!
purchaseContractIdList
.
isEmpty
()){
queryWrapper
.
in
(
"purchase_contract_id"
,
JSUtils
.
quoteEach
(
purchaseContractIdList
,
","
));
queryWrapper
.
in
(
"purchase_contract_id"
,
purchaseContractIdList
);
//
JSUtils.quoteEach(purchaseContractIdList,","));
}
}
//检索分销合同
if
(
StringUtils
.
isNotEmpty
(
req
.
getParameter
(
"distributContractCode"
))){
List
<
String
>
distributContractIdList
=
distributContractService
.
selectIdsByCode
(
req
.
getParameter
(
"distributContractCode"
));
if
(
distributContractIdList
!=
null
&&
!
distributContractIdList
.
isEmpty
()){
queryWrapper
.
in
(
"distribut_contract_id"
,
JSUtils
.
quoteEach
(
distributContractIdList
,
","
));
queryWrapper
.
in
(
"distribut_contract_id"
,
distributContractIdList
);
//
JSUtils.quoteEach(distributContractIdList,","));
}
}
// 需要添加条件判断
...
...
@@ -199,39 +186,20 @@ public class MaterialINController {
@AutoLog
(
value
=
"erp--物料(药剂)入库--药剂到货日验收记录"
)
@ApiOperation
(
value
=
"erp--物料(药剂)入库-药剂到货日验收记录"
,
notes
=
"erp--物料(药剂)入库-药剂到货日验收记录"
)
@GetMapping
(
value
=
"/arrivalRecordList"
)
public
Result
<
List
<
MaterialIN
>>
arrivalRecordList
(
MaterialIN
materialIN
,
@RequestParam
(
name
=
"pageNo"
,
defaultValue
=
"1"
)
Integer
pageNo
,
@RequestParam
(
name
=
"pageSize"
,
defaultValue
=
"10"
)
Integer
pageSize
,
HttpServletRequest
req
)
{
Result
<
List
<
MaterialIN
>>
result
=
new
Result
<
List
<
MaterialIN
>>();
QueryWrapper
<
MaterialIN
>
queryWrapper
=
QueryGenerator
.
initQueryWrapper
(
materialIN
,
req
.
getParameterMap
());
/*if(StringUtils.isNotBlank(materialIN.getGoodCode())){
queryWrapper.like("good_code",materialIN.getGoodCode());
}
if(StringUtils.isNotBlank(materialIN.getStartTime())){
queryWrapper.ge("arrive_time",materialIN.getStartTime());
}
if(StringUtils.isNotBlank(materialIN.getEndTime())){
queryWrapper.le("arrive_time",materialIN.getEndTime());
}
if(StringUtils.isNotBlank(materialIN.getDepartId())){
queryWrapper.eq("depart_id",materialIN.getDepartId());
}
if(StringUtils.isNotBlank(materialIN.getSupplierId())){
queryWrapper.eq("supplier_id",materialIN.getSupplierId());
}
if(StringUtils.isNotBlank(materialIN.getPurchaseContractId())){
queryWrapper.eq("purchase_contract_id",materialIN.getPurchaseContractId());
}*/
queryWrapper
.
eq
(
"audit_status"
,
"3"
);
List
<
MaterialIN
>
pageList
=
materialINService
.
list
(
queryWrapper
);
//List<ArrivalRecordExcelExportVO> pageList = materialINService.queryArrivalRecordByList(materialIN);
result
.
setSuccess
(
true
);
result
.
setResult
(
pageList
);
return
result
;
}
public
Result
<
IPage
<
MaterialIN
>>
arrivalRecordList
(
MaterialIN
materialIN
,
@RequestParam
(
name
=
"pageNo"
,
defaultValue
=
"1"
)
Integer
pageNo
,
@RequestParam
(
name
=
"pageSize"
,
defaultValue
=
"10"
)
Integer
pageSize
,
HttpServletRequest
req
)
{
Result
<
IPage
<
MaterialIN
>>
result
=
new
Result
<
IPage
<
MaterialIN
>>();
QueryWrapper
<
MaterialIN
>
queryWrapper
=
QueryGenerator
.
initQueryWrapper
(
materialIN
,
req
.
getParameterMap
());
Page
<
MaterialIN
>
page
=
new
Page
<
MaterialIN
>(
pageNo
,
pageSize
);
queryWrapper
.
eq
(
"audit_status"
,
"3"
);
//审批通过
queryWrapper
.
orderByDesc
(
"arrive_time"
);
IPage
<
MaterialIN
>
pageList
=
materialINService
.
page
(
page
,
queryWrapper
);
result
.
setSuccess
(
true
);
result
.
setResult
(
pageList
);
return
result
;
}
@AutoLog
(
value
=
"erp--物料(药剂)入库--获取入库审批列表:根据部门、采购合同、供应商、药剂分组搜索"
)
@ApiOperation
(
value
=
"erp--物料(药剂)入库-获取入库审批列表:根据部门、采购合同、供应商、药剂分组搜索"
,
notes
=
"erp--物料(药剂)入库-获取入库审批列表:根据部门、采购合同、供应商、药剂分组搜索"
)
...
...
@@ -403,17 +371,70 @@ public class MaterialINController {
}
catch
(
UnsupportedEncodingException
e
)
{
e
.
printStackTrace
();
}
if
(
queryWrapper
==
null
){
queryWrapper
=
new
QueryWrapper
();
}
//到货时间排序
queryWrapper
.
orderByDesc
(
"arrive_time"
);
//Step.2 AutoPoi 导出Excel
ModelAndView
mv
=
new
ModelAndView
(
new
JeecgEntityExcelView
());
List
<
MaterialIN
>
pageList
=
materialINService
.
list
(
queryWrapper
);
//导出文件名称
mv
.
addObject
(
NormalExcelConstants
.
FILE_NAME
,
"药剂到货验收记录表"
);
mv
.
addObject
(
NormalExcelConstants
.
CLASS
,
MaterialIN
.
class
);
mv
.
addObject
(
NormalExcelConstants
.
PARAMS
,
new
ExportParams
(
"物料(药剂)入库单"
,
"导出人:
Jeecg
"
,
"导出信息"
));
mv
.
addObject
(
NormalExcelConstants
.
PARAMS
,
new
ExportParams
(
"物料(药剂)入库单"
,
"导出人:"
,
"导出信息"
));
mv
.
addObject
(
NormalExcelConstants
.
DATA_LIST
,
pageList
);
return
mv
;
}
//导出到货记录
@RequestMapping
(
value
=
"/exportArrivalRecord"
)
public
ModelAndView
exportArrivalRecord
(
HttpServletRequest
request
,
HttpServletResponse
response
)
{
// Step.1 组装查询条件
QueryWrapper
<
MaterialIN
>
queryWrapper
=
null
;
try
{
String
paramsStr
=
request
.
getParameter
(
"paramsStr"
);
if
(
ConvertUtils
.
isNotEmpty
(
paramsStr
))
{
String
deString
=
URLDecoder
.
decode
(
paramsStr
,
"UTF-8"
);
MaterialIN
materialIN
=
JSON
.
parseObject
(
deString
,
MaterialIN
.
class
);
queryWrapper
=
QueryGenerator
.
initQueryWrapper
(
materialIN
,
request
.
getParameterMap
());
}
}
catch
(
UnsupportedEncodingException
e
)
{
e
.
printStackTrace
();
}
if
(
queryWrapper
==
null
){
queryWrapper
=
new
QueryWrapper
();
}
//全部确认的数据
queryWrapper
.
eq
(
"confirm_status"
,
"9"
);
queryWrapper
.
eq
(
"audit_status"
,
"3"
);
queryWrapper
.
orderByDesc
(
"arrive_time"
);
//Step.2 AutoPoi 导出Excel
ModelAndView
mv
=
new
ModelAndView
(
new
JeecgEntityExcelView
());
List
<
MaterialIN
>
materialINList
=
materialINService
.
list
(
queryWrapper
);
List
<
MaterialINArrivalRecordVO
>
dataList
=
new
ArrayList
<>();
MaterialINArrivalRecordVO
arrivalRecordVO
=
null
;
int
index
=
1
;
if
(
materialINList
!=
null
&&
!
materialINList
.
isEmpty
()){
for
(
MaterialIN
materialIN
:
materialINList
){
arrivalRecordVO
=
new
MaterialINArrivalRecordVO
();
//BeanUtils.copyProperties(有值的对象, 要被赋值的对象);
BeanUtils
.
copyProperties
(
materialIN
,
arrivalRecordVO
);
arrivalRecordVO
.
setIndex
(
index
++);
dataList
.
add
(
arrivalRecordVO
)
;
}
}
//导出文件名称
mv
.
addObject
(
NormalExcelConstants
.
FILE_NAME
,
"药剂到货验收记录表"
);
mv
.
addObject
(
NormalExcelConstants
.
CLASS
,
MaterialINArrivalRecordVO
.
class
);
mv
.
addObject
(
NormalExcelConstants
.
PARAMS
,
new
ExportParams
(
"物料(药剂)入库单"
,
"导出人:"
,
"导出信息"
));
mv
.
addObject
(
NormalExcelConstants
.
DATA_LIST
,
dataList
);
return
mv
;
}
@AutoLog
(
value
=
"erp--药剂到货验收记录表"
)
@ApiOperation
(
value
=
"erp--药剂到货验收记录表"
,
notes
=
"erp--药剂到货验收记录表"
)
...
...
@@ -470,8 +491,8 @@ public class MaterialINController {
VelocityContext
context
=
new
VelocityContext
();
//Step.3 准备模版表单参数
context
.
put
(
"startTime"
,
materialIN
.
getStartTime
());
//开始时间
context
.
put
(
"endTime"
,
materialIN
.
getEndTime
());
//结束时间
//
context.put("startTime", materialIN.getStartTime());//开始时间
//
context.put("endTime", materialIN.getEndTime());//结束时间
context
.
put
(
"supplierName"
,
""
);
//供应商名称
if
(
StringUtils
.
isNotEmpty
(
materialIN
.
getSupplierId
())){
SupplierManage
supplierManage
=
supplierManageService
.
getById
(
materialIN
.
getSupplierId
());
...
...
sk-module-biz/src/main/java/com/skua/modules/erp/entity/MaterialIN.java
查看文件 @
1ac4b16
...
...
@@ -7,12 +7,15 @@ import com.baomidou.mybatisplus.annotation.TableId;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.skua.core.aspect.annotation.Dict
;
import
com.skua.tool.util.JSUtils
;
import
io.netty.util.internal.StringUtil
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
org.jeecgframework.poi.excel.annotation.Excel
;
...
...
@@ -40,15 +43,14 @@ public class MaterialIN {
@ApiModelProperty
(
value
=
"项目名称"
)
private
String
projectName
;
/**入库单号*/
@Excel
(
name
=
"入库单号"
,
width
=
15
)
@ApiModelProperty
(
value
=
"入库单号"
)
private
String
inOrder
;
/**采购合同*/
@Excel
(
name
=
"采购合同"
,
width
=
15
)
@Excel
(
name
=
"采购合同"
,
width
=
15
,
dictTable
=
"erp_purchase_contract"
,
dicCode
=
"id"
,
dicText
=
"contract_code"
)
@Dict
(
dictTable
=
"erp_purchase_contract"
,
dicCode
=
"id"
,
dicText
=
"contract_code"
)
private
String
purchaseContractId
;
/**分销合同*/
@Excel
(
name
=
"分销合同"
,
width
=
15
)
@Excel
(
name
=
"分销合同"
,
width
=
15
,
dictTable
=
"erp_distribut_contract"
,
dicCode
=
"id"
,
dicText
=
"contract_code"
)
@Dict
(
dictTable
=
"erp_distribut_contract"
,
dicCode
=
"id"
,
dicText
=
"contract_code"
)
private
String
distributContractId
;
/**到货时间*/
...
...
@@ -56,17 +58,17 @@ public class MaterialIN {
@ApiModelProperty
(
value
=
"到货时间"
)
private
String
arriveTime
;
/**收货人*/
@Excel
(
name
=
"收货人"
,
width
=
15
)
@Excel
(
name
=
"收货人"
,
width
=
15
,
dictTable
=
"sys_user"
,
dicCode
=
"id"
,
dicText
=
"realname"
)
@ApiModelProperty
(
value
=
"收货人"
)
@Dict
(
dictTable
=
"sys_user"
,
dicCode
=
"id"
,
dicText
=
"realname"
)
private
String
receiver
;
@Excel
(
name
=
"物料类别"
,
width
=
15
)
@Excel
(
name
=
"物料类别"
,
width
=
15
,
dictTable
=
"equipment_sparepart_type"
,
dicCode
=
"id"
,
dicText
=
"item_text"
)
@ApiModelProperty
(
value
=
"物料类别"
)
@Dict
(
dictTable
=
"equipment_sparepart_type"
,
dicCode
=
"id"
,
dicText
=
"item_text"
)
private
String
sparepartType
;
/**物料编号*/
@Excel
(
name
=
"物料编号"
,
width
=
15
)
@Excel
(
name
=
"物料编号"
,
width
=
15
,
dictTable
=
"equipment_sparepart_supplies"
,
dicCode
=
"id"
,
dicText
=
"sparepart_name"
)
@ApiModelProperty
(
value
=
"物料编号"
)
@Dict
(
dictTable
=
"equipment_sparepart_supplies"
,
dicCode
=
"id"
,
dicText
=
"sparepart_name"
)
private
String
sparepartId
;
...
...
@@ -85,18 +87,14 @@ public class MaterialIN {
@Excel
(
name
=
"计量单位"
,
width
=
15
)
@ApiModelProperty
(
value
=
"计量单位"
)
private
String
measuringUnit
;
/**数量*/
@ApiModelProperty
(
value
=
"数量"
)
private
String
purchaseNum
;
@Excel
(
name
=
"入库仓库"
,
width
=
15
)
@Excel
(
name
=
"入库仓库"
,
width
=
15
,
dictTable
=
"supplies_warehouse"
,
dicCode
=
"id"
,
dicText
=
"warehouse_name"
)
@ApiModelProperty
(
value
=
"入库仓库"
)
@Dict
(
dictTable
=
"supplies_warehouse"
,
dicCode
=
"id"
,
dicText
=
"warehouse_name"
)
private
String
inWarehouseId
;
/**供应商编号*/
@Excel
(
name
=
"供应商
编号"
,
width
=
15
)
@Excel
(
name
=
"供应商
"
,
width
=
15
,
dictTable
=
"ajh_supplier_manage"
,
dicCode
=
"id"
,
dicText
=
"supp_name"
)
@ApiModelProperty
(
value
=
"供应商编号"
)
@Dict
(
dictTable
=
"ajh_supplier_manage"
,
dicCode
=
"id"
,
dicText
=
"supp_name"
)
private
String
supplierId
;
...
...
@@ -110,33 +108,25 @@ public class MaterialIN {
/**分销单价*/
@ApiModelProperty
(
value
=
"分销单价"
)
private
String
distributPrice
;
/**采购总价*/
@ApiModelProperty
(
value
=
"采购总价"
)
private
String
purchaseTotalPrice
;
@Excel
(
name
=
"物料数量"
,
width
=
15
)
@ApiModelProperty
(
value
=
"物料数量"
)
private
String
materialNum
;
/**分销总价*/
@ApiModelProperty
(
value
=
"分销总价"
)
private
String
distributTotalPrice
;
/**税额*/
@Excel
(
name
=
"税额"
,
width
=
15
)
@ApiModelProperty
(
value
=
"税额"
)
private
String
taxAmount
;
/**价税合计*/
@ApiModelProperty
(
value
=
"价税合计"
)
private
String
totalPriceTax
;
/**分享地址*/
@ApiModelProperty
(
value
=
"分享地址"
)
private
String
shareUrl
;
/**确认状态:0 未确认 1 部分确认 2 全部确认*/
@Excel
(
name
=
"确认状态
:0 未确认 1 部分确认 2 全部确认"
,
width
=
15
)
@Excel
(
name
=
"确认状态
"
,
width
=
15
,
dicCode
=
"purchase_confirm_status"
)
@ApiModelProperty
(
value
=
"确认状态:0 未确认 1 部分确认 2 全部确认"
)
@Dict
(
dicCode
=
"purchase_confirm_status"
)
private
String
confirmStatus
;
/**审批状态:0 未发布 1 已发布(待审核)2 审核驳回 3 审核通过*/
@Excel
(
name
=
"审批状态
:0 未发布 1 已发布(待审核)2 审核驳回 3 审核通过"
,
width
=
15
)
@Excel
(
name
=
"审批状态
"
,
width
=
15
,
dicCode
=
"audit_status"
)
@ApiModelProperty
(
value
=
"审批状态:0 未发布 1 已发布(待审核)2 审核驳回 3 审核通过"
)
@Dict
(
dicCode
=
"audit_status"
)
private
String
auditStatus
;
...
...
@@ -148,7 +138,6 @@ public class MaterialIN {
private
String
applyUser
;
/**入库类型*/
@Excel
(
name
=
"入库类型"
,
width
=
15
)
@ApiModelProperty
(
value
=
"入库类型"
)
private
String
inType
;
/**备注*/
...
...
@@ -156,7 +145,7 @@ public class MaterialIN {
@ApiModelProperty
(
value
=
"备注"
)
private
String
remark
;
/**创建人id*/
@Excel
(
name
=
"创建人
id
"
,
width
=
15
)
@Excel
(
name
=
"创建人"
,
width
=
15
)
@ApiModelProperty
(
value
=
"创建人id"
)
private
String
createBy
;
/**创建时间*/
...
...
@@ -176,15 +165,12 @@ public class MaterialIN {
@ApiModelProperty
(
value
=
"修改时间"
)
private
Date
updateTime
;
/**所属部门*/
@Excel
(
name
=
"所属部门"
,
width
=
15
)
@ApiModelProperty
(
value
=
"所属部门"
)
private
String
createDept
;
/**所属公司*/
@Excel
(
name
=
"所属公司"
,
width
=
15
)
@ApiModelProperty
(
value
=
"所属公司"
)
private
String
createCmpy
;
/**删除标识,0:正常,1:删除*/
@Excel
(
name
=
"删除标识,0:正常,1:删除"
,
width
=
15
)
@ApiModelProperty
(
value
=
"删除标识,0:正常,1:删除"
)
private
Integer
delFlag
;
...
...
@@ -194,20 +180,25 @@ public class MaterialIN {
@ApiModelProperty
(
value
=
"出库编号"
)
private
String
equipmentOutId
;
@ApiModelProperty
(
value
=
"供应商结算,0:未结算,1::已申请,2:已结算"
)
@Excel
(
name
=
"供应商结算"
,
width
=
15
)
@ApiModelProperty
(
value
=
"供应商结算,0:申请,1::已申请,2:已结算"
)
@Dict
(
dicCode
=
"settlement_status"
)
private
Integer
supplierSettlementFlag
;
@ApiModelProperty
(
value
=
"水厂结算,0:未结算,1:已申请,2:已结算"
)
@Excel
(
name
=
"水厂结算"
,
width
=
15
)
@ApiModelProperty
(
value
=
"水厂结算,0:未申请,1:已申请,2:已结算"
)
@Dict
(
dicCode
=
"settlement_status"
)
private
Integer
waterDepartSettlementFlag
;
@TableField
(
exist
=
false
)
@ApiModelProperty
(
value
=
"结束时间"
)
private
String
endTime
;
@TableField
(
exist
=
false
)
@ApiModelProperty
(
value
=
"开始时间"
)
private
String
startTime
;
@TableField
(
exist
=
false
)
@ApiModelProperty
(
value
=
"结束时间"
)
private
String
endTime
;
@TableField
(
exist
=
false
)
@ApiModelProperty
(
value
=
"物料类别"
)
private
String
sparepartTypeName
;
...
...
@@ -216,7 +207,41 @@ public class MaterialIN {
private
String
supplierName
;
@TableField
(
exist
=
false
)
@Excel
(
name
=
"机构/部门名称"
,
width
=
15
)
private
String
departName
;
/**采购总价*/
@TableField
(
exist
=
false
)
@ApiModelProperty
(
value
=
"采购总价"
)
private
String
purchaseTotalPrice
;
/**价税合计*/
@TableField
(
exist
=
false
)
@ApiModelProperty
(
value
=
"总价(不含税)"
)
private
String
totalPriceTax
;
/**分销总价*/
@TableField
(
exist
=
false
)
@ApiModelProperty
(
value
=
"分销总价"
)
private
String
distributTotalPrice
;
public
String
getPurchaseTotalPrice
()
{
if
(
StringUtils
.
isNotEmpty
(
this
.
getPurchasePrice
())
&&
StringUtils
.
isNotEmpty
(
this
.
getMaterialNum
())){
purchaseTotalPrice
=
JSUtils
.
multiply
(
purchasePrice
,
materialNum
)
;
}
return
purchaseTotalPrice
;
}
public
String
getDistributTotalPrice
()
{
if
(
StringUtils
.
isNotEmpty
(
this
.
getDistributPrice
())
&&
StringUtils
.
isNotEmpty
(
this
.
getMaterialNum
())){
distributTotalPrice
=
JSUtils
.
multiply
(
distributPrice
,
materialNum
)
;
}
return
distributTotalPrice
;
}
public
String
getTotalPriceTax
()
{
//不含税总价 = 含税总价 / (1 + 税率)
if
(
StringUtils
.
isNotEmpty
(
this
.
getTaxAmount
())
&&
StringUtils
.
isNotEmpty
(
this
.
getDistributPrice
())
&&
StringUtils
.
isNotEmpty
(
this
.
getMaterialNum
())){
String
expression
=
distributPrice
+
" * "
+
materialNum
+
"/( 1 +"
+
taxAmount
+
"* 0.01)"
;
totalPriceTax
=
JSUtils
.
executeExpression
(
expression
,
"0.00"
)
;
}
return
totalPriceTax
;
}
}
...
...
sk-module-biz/src/main/java/com/skua/modules/erp/vo/MaterialINArrivalRecordVO.java
0 → 100644
查看文件 @
1ac4b16
package
com
.
skua
.
modules
.
erp
.
vo
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.skua.core.aspect.annotation.Dict
;
import
com.skua.tool.util.JSUtils
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
import
org.jeecgframework.poi.excel.annotation.Excel
;
/**
* @auther kangwei
* @create 2025-02-08-10:02
*/
@Data
@TableName
(
"erp_material_in"
)
@EqualsAndHashCode
(
callSuper
=
false
)
@Accessors
(
chain
=
true
)
@ApiModel
(
value
=
"药剂到货记录"
,
description
=
"药剂到货记录"
)
public
class
MaterialINArrivalRecordVO
{
/**项目名称*/
@Excel
(
name
=
"序号"
,
width
=
15
,
orderNum
=
"2"
)
@ApiModelProperty
(
value
=
"序号"
)
private
Integer
index
;
@Excel
(
name
=
"到货时间"
,
width
=
15
,
orderNum
=
"2"
)
@ApiModelProperty
(
value
=
"到货时间"
)
private
String
arriveTime
;
@Excel
(
name
=
"使用单位"
,
width
=
15
,
orderNum
=
"3"
,
dictTable
=
"sys_depart"
,
dicCode
=
"id"
,
dicText
=
"depart_name"
)
@ApiModelProperty
(
value
=
"所属机构"
)
@Dict
(
dictTable
=
"sys_depart"
,
dicCode
=
"id"
,
dicText
=
"depart_name"
)
private
String
departId
;
@Excel
(
name
=
"药剂名称"
,
width
=
15
,
orderNum
=
"4"
)
@ApiModelProperty
(
value
=
"药剂(物料)名称"
)
private
String
sparepartName
;
@Excel
(
name
=
"单位"
,
width
=
15
,
orderNum
=
"5"
)
@ApiModelProperty
(
value
=
"单位"
)
private
String
measuringUnit
;
@Excel
(
name
=
"数量"
,
width
=
15
,
orderNum
=
"6"
)
@ApiModelProperty
(
value
=
"数量"
)
private
String
materialNum
;
@Excel
(
name
=
"供货单位"
,
width
=
15
,
orderNum
=
"7"
,
dictTable
=
"ajh_supplier_manage"
,
dicCode
=
"id"
,
dicText
=
"supp_name"
)
@ApiModelProperty
(
value
=
"供应商编号"
)
@Dict
(
dictTable
=
"ajh_supplier_manage"
,
dicCode
=
"id"
,
dicText
=
"supp_name"
)
private
String
supplierId
;
/**货号*/
@Excel
(
name
=
"货号"
,
width
=
15
,
orderNum
=
"7"
)
@ApiModelProperty
(
value
=
"货号"
)
private
String
goodCode
;
@Excel
(
name
=
"采购合同"
,
width
=
15
,
orderNum
=
"8"
,
dictTable
=
"erp_purchase_contract"
,
dicCode
=
"id"
,
dicText
=
"contract_code"
)
@Dict
(
dictTable
=
"erp_purchase_contract"
,
dicCode
=
"id"
,
dicText
=
"contract_code"
)
private
String
purchaseContractId
;
/**分销合同*/
@Excel
(
name
=
"分销合同"
,
width
=
15
,
orderNum
=
"9"
,
dictTable
=
"erp_distribut_contract"
,
dicCode
=
"id"
,
dicText
=
"contract_code"
)
@Dict
(
dictTable
=
"erp_distribut_contract"
,
dicCode
=
"id"
,
dicText
=
"contract_code"
)
private
String
distributContractId
;
/**采购单价*/
@ApiModelProperty
(
value
=
"采购单价"
)
private
String
purchasePrice
;
/**分销单价*/
@ApiModelProperty
(
value
=
"分销单价"
)
private
String
distributPrice
;
/**采购总价*/
@Excel
(
name
=
"采购总价"
,
width
=
15
,
orderNum
=
"10"
)
@ApiModelProperty
(
value
=
"采购总价"
)
private
String
purchaseTotalPrice
;
/**分销总价*/
@Excel
(
name
=
"分销总价"
,
width
=
15
,
orderNum
=
"11"
)
@ApiModelProperty
(
value
=
"分销总价"
)
private
String
distributTotalPrice
;
public
String
getPurchaseTotalPrice
()
{
purchaseTotalPrice
=
JSUtils
.
multiply
(
purchasePrice
,
materialNum
)
;
return
purchaseTotalPrice
;
}
public
String
getDistributTotalPrice
()
{
distributTotalPrice
=
JSUtils
.
multiply
(
distributPrice
,
materialNum
)
;
return
distributTotalPrice
;
}
}
sk-module-biz/src/main/java/com/skua/modules/erp/vo/MaterialINXslVO.java
0 → 100644
查看文件 @
1ac4b16
package
com
.
skua
.
modules
.
erp
.
vo
;
/**
* @auther kangwei
* @create 2025-02-08-9:18
*/
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.skua.core.aspect.annotation.Dict
;
import
com.skua.tool.util.JSUtils
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
import
org.jeecgframework.poi.excel.annotation.Excel
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
java.util.Date
;
/**
* 物料(药剂)入库
*/
@Data
@TableName
(
"erp_material_in"
)
@EqualsAndHashCode
(
callSuper
=
false
)
@Accessors
(
chain
=
true
)
@ApiModel
(
value
=
"erp_material_in对象"
,
description
=
"物料(药剂)入库"
)
public
class
MaterialINXslVO
{
/**id*/
@TableId
(
type
=
IdType
.
ID_WORKER_STR
)
@ApiModelProperty
(
value
=
"id"
)
private
String
id
;
/**所属机构*/
@Excel
(
name
=
"所属机构"
,
width
=
15
)
@ApiModelProperty
(
value
=
"所属机构"
)
@Dict
(
dictTable
=
"sys_depart"
,
dicCode
=
"id"
,
dicText
=
"depart_name"
)
private
String
departId
;
/**项目名称*/
@Excel
(
name
=
"项目名称"
,
width
=
15
)
@ApiModelProperty
(
value
=
"项目名称"
)
private
String
projectName
;
/**入库单号*/
@Excel
(
name
=
"入库单号"
,
width
=
15
)
@ApiModelProperty
(
value
=
"入库单号"
)
private
String
inOrder
;
/**采购合同*/
@Excel
(
name
=
"采购合同"
,
width
=
15
)
@Dict
(
dictTable
=
"erp_purchase_contract"
,
dicCode
=
"id"
,
dicText
=
"contract_code"
)
private
String
purchaseContractId
;
/**分销合同*/
@Excel
(
name
=
"分销合同"
,
width
=
15
)
@Dict
(
dictTable
=
"erp_distribut_contract"
,
dicCode
=
"id"
,
dicText
=
"contract_code"
)
private
String
distributContractId
;
/**到货时间*/
@Excel
(
name
=
"到货时间"
,
width
=
15
)
@ApiModelProperty
(
value
=
"到货时间"
)
private
String
arriveTime
;
/**收货人*/
@Excel
(
name
=
"收货人"
,
width
=
15
)
@ApiModelProperty
(
value
=
"收货人"
)
@Dict
(
dictTable
=
"sys_user"
,
dicCode
=
"id"
,
dicText
=
"realname"
)
private
String
receiver
;
@Excel
(
name
=
"物料类别"
,
width
=
15
)
@ApiModelProperty
(
value
=
"物料类别"
)
@Dict
(
dictTable
=
"equipment_sparepart_type"
,
dicCode
=
"id"
,
dicText
=
"item_text"
)
private
String
sparepartType
;
/**物料编号*/
@Excel
(
name
=
"物料编号"
,
width
=
15
)
@ApiModelProperty
(
value
=
"物料编号"
)
@Dict
(
dictTable
=
"equipment_sparepart_supplies"
,
dicCode
=
"id"
,
dicText
=
"sparepart_name"
)
private
String
sparepartId
;
/**药剂(物料)名称*/
@Excel
(
name
=
"药剂(物料)名称"
,
width
=
15
)
@ApiModelProperty
(
value
=
"药剂(物料)名称"
)
private
String
sparepartName
;
@ApiModelProperty
(
value
=
"物料编码"
)
private
String
sparepartCode
;
/**规格型号*/
@Excel
(
name
=
"规格型号"
,
width
=
15
)
@ApiModelProperty
(
value
=
"规格型号"
)
private
String
specification
;
/**计量单位*/
@Excel
(
name
=
"计量单位"
,
width
=
15
)
@ApiModelProperty
(
value
=
"计量单位"
)
private
String
measuringUnit
;
/**数量*/
private
String
purchaseNum
;
@Excel
(
name
=
"入库仓库"
,
width
=
15
)
@ApiModelProperty
(
value
=
"入库仓库"
)
@Dict
(
dictTable
=
"supplies_warehouse"
,
dicCode
=
"id"
,
dicText
=
"warehouse_name"
)
private
String
inWarehouseId
;
/**供应商编号*/
@Excel
(
name
=
"供应商"
,
width
=
15
)
@ApiModelProperty
(
value
=
"供应商编号"
)
@Dict
(
dictTable
=
"ajh_supplier_manage"
,
dicCode
=
"id"
,
dicText
=
"supp_name"
)
private
String
supplierId
;
/**货号*/
@Excel
(
name
=
"货号"
,
width
=
15
)
@ApiModelProperty
(
value
=
"货号"
)
private
String
goodCode
;
/**采购单价*/
@Excel
(
name
=
"采购单价"
,
width
=
15
)
@ApiModelProperty
(
value
=
"采购单价"
)
private
String
purchasePrice
;
/**分销单价*/
@Excel
(
name
=
"分销单价"
,
width
=
15
)
@ApiModelProperty
(
value
=
"分销单价"
)
private
String
distributPrice
;
/**采购总价*/
@Excel
(
name
=
"采购总价"
,
width
=
15
)
@ApiModelProperty
(
value
=
"采购总价"
)
private
String
purchaseTotalPrice
;
@Excel
(
name
=
"物料数量"
,
width
=
15
)
@ApiModelProperty
(
value
=
"物料数量"
)
private
String
materialNum
;
/**分销总价*/
@Excel
(
name
=
"分销总价"
,
width
=
15
)
@ApiModelProperty
(
value
=
"分销总价"
)
private
String
distributTotalPrice
;
public
String
getPurchaseTotalPrice
()
{
purchaseTotalPrice
=
JSUtils
.
multiply
(
purchasePrice
,
materialNum
)
;
return
purchaseTotalPrice
;
}
public
String
getDistributTotalPrice
()
{
distributTotalPrice
=
JSUtils
.
multiply
(
distributPrice
,
materialNum
)
;
return
distributTotalPrice
;
}
/**税额*/
@ApiModelProperty
(
value
=
"税额"
)
private
String
taxAmount
;
/**价税合计*/
@ApiModelProperty
(
value
=
"价税合计"
)
private
String
totalPriceTax
;
/**分享地址*/
@ApiModelProperty
(
value
=
"分享地址"
)
private
String
shareUrl
;
/**确认状态:0 未确认 1 部分确认 2 全部确认*/
@Excel
(
name
=
"确认状态"
,
width
=
15
)
@ApiModelProperty
(
value
=
"确认状态:0 未确认 1 部分确认 2 全部确认"
)
@Dict
(
dicCode
=
"purchase_confirm_status"
)
private
String
confirmStatus
;
/**审批状态:0 未发布 1 已发布(待审核)2 审核驳回 3 审核通过*/
@Excel
(
name
=
"审批状态"
,
width
=
15
)
@ApiModelProperty
(
value
=
"审批状态:0 未发布 1 已发布(待审核)2 审核驳回 3 审核通过"
)
@Dict
(
dicCode
=
"audit_status"
)
private
String
auditStatus
;
/**审批意见*/
@ApiModelProperty
(
value
=
"审批意见"
)
private
String
approveMessage
;
@ApiModelProperty
(
value
=
"申请人"
)
private
String
applyUser
;
/**入库类型*/
@ApiModelProperty
(
value
=
"入库类型"
)
private
String
inType
;
/**备注*/
@Excel
(
name
=
"备注"
,
width
=
15
)
@ApiModelProperty
(
value
=
"备注"
)
private
String
remark
;
/**创建人id*/
@Excel
(
name
=
"创建人"
,
width
=
15
)
@ApiModelProperty
(
value
=
"创建人id"
)
private
String
createBy
;
/**创建时间*/
@Excel
(
name
=
"创建时间"
,
width
=
20
,
format
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
timezone
=
"GMT+8"
,
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@ApiModelProperty
(
value
=
"创建时间"
)
private
Date
createTime
;
/**修改人id*/
@Excel
(
name
=
"修改人id"
,
width
=
15
)
@ApiModelProperty
(
value
=
"修改人id"
)
private
String
updateBy
;
/**修改时间*/
@Excel
(
name
=
"修改时间"
,
width
=
20
,
format
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
timezone
=
"GMT+8"
,
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@ApiModelProperty
(
value
=
"修改时间"
)
private
Date
updateTime
;
/**所属部门*/
@ApiModelProperty
(
value
=
"所属部门"
)
private
String
createDept
;
/**所属公司*/
@ApiModelProperty
(
value
=
"所属公司"
)
private
String
createCmpy
;
/**删除标识,0:正常,1:删除*/
@ApiModelProperty
(
value
=
"删除标识,0:正常,1:删除"
)
private
Integer
delFlag
;
@ApiModelProperty
(
value
=
"入库编号"
)
private
String
equipmentInId
;
@ApiModelProperty
(
value
=
"出库编号"
)
private
String
equipmentOutId
;
@Excel
(
name
=
"供应商结算"
,
width
=
15
)
@ApiModelProperty
(
value
=
"供应商结算,0:申请,1::已申请,2:已结算"
)
@Dict
(
dicCode
=
"settlement_status"
)
private
Integer
supplierSettlementFlag
;
@Excel
(
name
=
"水厂结算"
,
width
=
15
)
@ApiModelProperty
(
value
=
"水厂结算,0:未申请,1:已申请,2:已结算"
)
@Dict
(
dicCode
=
"settlement_status"
)
private
Integer
waterDepartSettlementFlag
;
@TableField
(
exist
=
false
)
@ApiModelProperty
(
value
=
"开始时间"
)
private
String
startTime
;
@TableField
(
exist
=
false
)
@ApiModelProperty
(
value
=
"结束时间"
)
private
String
endTime
;
@TableField
(
exist
=
false
)
@ApiModelProperty
(
value
=
"物料类别"
)
private
String
sparepartTypeName
;
@TableField
(
exist
=
false
)
@ApiModelProperty
(
value
=
"供应商名称"
)
private
String
supplierName
;
@TableField
(
exist
=
false
)
@Excel
(
name
=
"机构/部门名称"
,
width
=
15
)
private
String
departName
;
}
sk-module-biz/src/main/java/com/skua/modules/erp/vo/MaterialSearchVO.java
查看文件 @
1ac4b16
...
...
@@ -34,7 +34,6 @@ public class MaterialSearchVO {
@ApiModelProperty
(
value
=
"物料类型"
)
private
String
sparepartType
;
@ApiModelProperty
(
value
=
"是否药剂"
)
private
b
oolean
medicament
=
false
;
private
B
oolean
medicament
=
false
;
}
...
...
sk-module-biz/src/main/java/com/skua/modules/erp/vo/PurchaseMaterialVO.java
查看文件 @
1ac4b16
...
...
@@ -74,6 +74,8 @@ public class PurchaseMaterialVO {
@ApiModelProperty
(
value
=
"备注"
)
private
java
.
lang
.
String
remark
;
@ApiModelProperty
(
value
=
"税额"
)
private
String
taxAmount
;
@TableField
(
exist
=
false
)
@ApiModelProperty
(
value
=
"物料类别名称"
)
...
...
sk-module-equipment/src/main/java/com/skua/modules/equipment/vo/EquipmentOutExcel.java
查看文件 @
1ac4b16
...
...
@@ -3,18 +3,13 @@ package com.skua.modules.equipment.vo;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.skua.core.aspect.annotation.Dict
;
import
com.skua.tool.annotation.BeanAnno
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
import
org.jeecgframework.poi.excel.annotation.Excel
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
java.util.Date
;
/**
* 入库
...
...
sk-module-system/src/main/java/com/skua/config/mybatis/MybatisInterceptor.java
查看文件 @
1ac4b16
...
...
@@ -100,7 +100,7 @@ public class MybatisInterceptor implements Interceptor {
add
(
"equipment_sparepart"
);
//material_info
add
(
"material_info"
);
//
add("material_info");
//三废
//add("ajh_waste_gas");
//噪音
...
...
@@ -145,7 +145,7 @@ public class MybatisInterceptor implements Interceptor {
||
"com.skua.modules.ajh.mapper.AjhRectificationInfoMapper.countByDate"
.
equalsIgnoreCase
(
sqlId
)
||
"com.skua.modules.ajh.mapper.AjhRectificationInfoMapper.levelHistogramList"
.
equalsIgnoreCase
(
sqlId
)
||
"com.skua.modules.ajh.mapper.AjhRectificationInfoMapper.dutyHistogramList"
.
equalsIgnoreCase
(
sqlId
)
||
"com.skua.modules.ajh.mapper.AjhRectificationInfoMapper.classifyList"
.
equalsIgnoreCase
(
sqlId
)
||
"com.skua.modules.ajh.mapper.AjhRectificationInfoMa
MaterialIN
pper.classifyList"
.
equalsIgnoreCase
(
sqlId
)
||
"com.skua.modules.ajh.mapper.AjhMeetingMinutesMapper.getDataById"
.
equalsIgnoreCase
(
sqlId
)
||
"com.skua.modules.system.mapper.SysDepartMapper.queryUserDeparts"
.
equalsIgnoreCase
(
sqlId
)
||
"com.skua.modules.system.mapper.SysAnnouncementMapper.querySysCementListByUserId"
.
equals
(
sqlId
)
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论