Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
F
foodNexus-admin
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
副食品筹措管理平台
foodNexus-admin
Commits
266040c5
Commit
266040c5
authored
Jan 06, 2026
by
杨浩
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
采购订单发货;
jimu报表; 质检附件
parent
b6e17bf3
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
129 additions
and
55 deletions
+129
-55
foodnexus-framework/foodnexus-spring-boot-starter-biz-customer-permission/src/main/java/cn/iocoder/foodnexus/module/customerpermission/core/db/CustomerPermissionRuleHandler.java
+3
-0
foodnexus-framework/foodnexus-spring-boot-starter-biz-customer-permission/src/main/java/cn/iocoder/foodnexus/module/customerpermission/core/rule/customer/CustomerVisiblePermissionRule.java
+21
-2
foodnexus-module-erp/src/main/java/cn/iocoder/foodnexus/module/erp/controller/admin/purchase/ErpPurchaseOrderController.java
+5
-4
foodnexus-module-erp/src/main/java/cn/iocoder/foodnexus/module/erp/controller/admin/purchase/vo/supplier/SupplierPurchaseOrderDeliveryReqVO.java
+46
-0
foodnexus-module-erp/src/main/java/cn/iocoder/foodnexus/module/erp/service/purchase/ErpPurchaseOrderService.java
+2
-1
foodnexus-module-erp/src/main/java/cn/iocoder/foodnexus/module/erp/service/purchase/ErpPurchaseOrderServiceImpl.java
+14
-5
foodnexus-module-mall/foodnexus-module-operations/src/main/java/cn/iocoder/foodnexus/module/operations/service/inquirecustomerpush/InquireCustomerPushServiceImpl.java
+9
-1
foodnexus-module-mall/foodnexus-module-operations/src/main/java/cn/iocoder/foodnexus/module/operations/service/inquireprice/InquirePriceServiceImpl.java
+6
-0
foodnexus-module-mall/foodnexus-module-order/src/main/java/cn/iocoder/foodnexus/module/order/service/customerorder/CustomerOrderServiceImpl.java
+1
-0
foodnexus-module-mall/foodnexus-module-product/src/main/java/cn/iocoder/foodnexus/module/product/controller/admin/spu/ProductSpuController.java
+3
-3
foodnexus-module-mall/foodnexus-module-product/src/main/java/cn/iocoder/foodnexus/module/product/controller/admin/spu/vo/ProductSpuUpdateStatusBatchReqVO.java
+0
-23
foodnexus-module-mall/foodnexus-module-product/src/main/java/cn/iocoder/foodnexus/module/product/service/spu/ProductSpuService.java
+1
-2
foodnexus-module-mall/foodnexus-module-product/src/main/java/cn/iocoder/foodnexus/module/product/service/spu/ProductSpuServiceImpl.java
+16
-12
foodnexus-server/pom.xml
+2
-2
foodnexus-server/src/main/resources/application-pro.yaml
+0
-0
No files found.
foodnexus-framework/foodnexus-spring-boot-starter-biz-customer-permission/src/main/java/cn/iocoder/foodnexus/module/customerpermission/core/db/CustomerPermissionRuleHandler.java
View file @
266040c5
package
cn
.
iocoder
.
foodnexus
.
module
.
customerpermission
.
core
.
db
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.iocoder.foodnexus.framework.common.exception.ServiceException
;
import
cn.iocoder.foodnexus.module.customerpermission.core.rule.CustomerPermissionRule
;
import
cn.iocoder.foodnexus.module.customerpermission.core.rule.CustomerPermissionRuleFactory
;
import
cn.iocoder.foodnexus.framework.mybatis.core.util.MyBatisUtils
;
...
...
@@ -12,8 +13,10 @@ import net.sf.jsqlparser.schema.Table;
import
org.springframework.stereotype.Component
;
import
java.util.List
;
import
java.util.Objects
;
import
static
cn
.
iocoder
.
foodnexus
.
framework
.
security
.
core
.
util
.
SecurityFrameworkUtils
.
skipPermissionCheck
;
import
static
cn
.
iocoder
.
foodnexus
.
module
.
customerpermission
.
core
.
rule
.
customer
.
CustomerVisiblePermissionRule
.
NULL_PERMISSION_ERROR
;
/**
* 基于 {@link CustomerPermissionRule} 的数据权限处理器
...
...
foodnexus-framework/foodnexus-spring-boot-starter-biz-customer-permission/src/main/java/cn/iocoder/foodnexus/module/customerpermission/core/rule/customer/CustomerVisiblePermissionRule.java
View file @
266040c5
...
...
@@ -3,6 +3,7 @@ package cn.iocoder.foodnexus.module.customerpermission.core.rule.customer;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.map.MapUtil
;
import
cn.iocoder.foodnexus.framework.common.enums.UserSystemEnum
;
import
cn.iocoder.foodnexus.framework.common.exception.ServiceException
;
import
cn.iocoder.foodnexus.framework.common.util.CommonUtil
;
import
cn.iocoder.foodnexus.framework.common.util.collection.CollectionUtils
;
import
cn.iocoder.foodnexus.framework.common.util.json.JsonUtils
;
...
...
@@ -17,9 +18,11 @@ import lombok.extern.slf4j.Slf4j;
import
net.sf.jsqlparser.expression.Alias
;
import
net.sf.jsqlparser.expression.Expression
;
import
net.sf.jsqlparser.expression.LongValue
;
import
net.sf.jsqlparser.expression.operators.relational.EqualsTo
;
import
net.sf.jsqlparser.expression.operators.relational.ExpressionList
;
import
net.sf.jsqlparser.expression.operators.relational.InExpression
;
import
net.sf.jsqlparser.expression.operators.relational.ParenthesedExpressionList
;
import
net.sf.jsqlparser.schema.Column
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
...
...
@@ -47,6 +50,8 @@ public class CustomerVisiblePermissionRule implements CustomerPermissionRule {
public
static
final
String
PRODUCT_ID_COLUMN
=
"id"
;
public
static
final
Integer
NULL_PERMISSION_ERROR
=
100010
;
/**
* 根据表名和别名,生成对应的 WHERE / OR 过滤条件
*
...
...
@@ -74,8 +79,9 @@ public class CustomerVisiblePermissionRule implements CustomerPermissionRule {
CustomerVisibleProductRespDTO
customerVisibleDto
=
inquireCustomerApi
.
queryCustomerIdByCustomerId
(
customerId
);
if
(
customerVisibleDto
==
null
||
CommonUtil
.
isEmpty
(
customerVisibleDto
.
getItems
()))
{
log
.
error
(
"[getExpression][LoginUser({}) 获取数据权限为 null]"
,
JsonUtils
.
toJsonString
(
loginUser
));
throw
new
NullPointerException
(
String
.
format
(
"LoginUser(%d) Table(%s/%s) 未返回数据权限"
,
loginUser
.
getId
(),
tableName
,
tableAlias
.
getName
()));
/*throw new ServiceException(NULL_PERMISSION_ERROR, String.format("LoginUser(%d) Table(%s/%s) 未返回数据权限",
loginUser.getId(), tableName, tableAlias.getName()));*/
return
this
.
buildNoDataExpression
();
}
/* // 添加到上下文中,避免重复计算
loginUser.setContext(CONTEXT_KEY, customerVisibleDto);
...
...
@@ -98,4 +104,17 @@ public class CustomerVisiblePermissionRule implements CustomerPermissionRule {
// Parenthesis 的目的,是提供 (1,2,3) 的 () 左右括号
new
ParenthesedExpressionList
(
new
ExpressionList
<
LongValue
>(
CollectionUtils
.
convertList
(
productIds
,
LongValue:
:
new
))));
}
/**
* 构建返回空结果的表达式(恒不成立条件)
*/
private
Expression
buildNoDataExpression
()
{
// 方式1:通用版 - 构造 "1 = 0"(推荐,不依赖任何表字段)
EqualsTo
equalsTo
=
new
EqualsTo
();
// 左值:1(LongValue适配JSqlParser 5.1的数值类型)
equalsTo
.
setLeftExpression
(
new
LongValue
(
1
));
// 右值:0
equalsTo
.
setRightExpression
(
new
LongValue
(
0
));
return
equalsTo
;
}
}
foodnexus-module-erp/src/main/java/cn/iocoder/foodnexus/module/erp/controller/admin/purchase/ErpPurchaseOrderController.java
View file @
266040c5
...
...
@@ -20,6 +20,7 @@ import cn.iocoder.foodnexus.module.erp.api.vo.warehouse.WarehouseInfo;
import
cn.iocoder.foodnexus.module.erp.controller.admin.purchase.vo.order.ErpPurchaseOrderExportVO
;
import
cn.iocoder.foodnexus.module.erp.controller.admin.purchase.vo.order.ErpPurchaseOrderPageReqVO
;
import
cn.iocoder.foodnexus.module.erp.controller.admin.purchase.vo.order.ErpPurchaseOrderRespVO
;
import
cn.iocoder.foodnexus.module.erp.controller.admin.purchase.vo.supplier.SupplierPurchaseOrderDeliveryReqVO
;
import
cn.iocoder.foodnexus.module.erp.dal.dataobject.purchase.ErpPurchaseOrderDO
;
import
cn.iocoder.foodnexus.module.erp.dal.dataobject.purchase.ErpPurchaseOrderItemDO
;
import
cn.iocoder.foodnexus.module.erp.dal.dataobject.purchase.ErpSupplierDO
;
...
...
@@ -108,7 +109,7 @@ public class ErpPurchaseOrderController {
@Operation
(
summary
=
"到货"
)
@Parameter
(
name
=
"ids"
,
description
=
"编号"
,
required
=
true
)
public
CommonResult
<
Boolean
>
arrival
(
@RequestParam
(
"ids"
)
List
<
Long
>
ids
)
{
purchaseOrderService
.
delivery
(
ids
,
null
,
purchaseOrderService
.
delivery
(
SupplierPurchaseOrderDeliveryReqVO
.
transform
(
ids
)
,
null
,
ErpDeliveryStatus
.
ALREADY
,
ErpDeliveryStatus
.
ARRIVAL
,
CustomerOrderStatus
.
SUPPLIER_ARRIVE
);
return
success
(
Boolean
.
TRUE
);
}
...
...
@@ -187,7 +188,7 @@ public class ErpPurchaseOrderController {
@Parameter
(
name
=
"ids"
,
description
=
"编号"
,
required
=
true
)
@AppSystemAuth
(
UserSystemEnum
.
SUPPLIER
)
public
CommonResult
<
Boolean
>
supplierAcceptingOrders
(
@RequestParam
(
"ids"
)
List
<
Long
>
ids
)
{
purchaseOrderService
.
delivery
(
ids
,
supplierApi
.
querySupplierIdByUserId
(
SecurityFrameworkUtils
.
getLoginUserId
()),
purchaseOrderService
.
delivery
(
SupplierPurchaseOrderDeliveryReqVO
.
transform
(
ids
)
,
supplierApi
.
querySupplierIdByUserId
(
SecurityFrameworkUtils
.
getLoginUserId
()),
ErpDeliveryStatus
.
MATCHED
,
ErpDeliveryStatus
.
NOT_YET
,
CustomerOrderStatus
.
SUPPLIER_ACCEPT_ORDER
);
return
success
(
Boolean
.
TRUE
);
}
...
...
@@ -196,8 +197,8 @@ public class ErpPurchaseOrderController {
@Operation
(
summary
=
"供应商 - 发货"
)
@Parameter
(
name
=
"ids"
,
description
=
"编号"
,
required
=
true
)
@AppSystemAuth
(
UserSystemEnum
.
SUPPLIER
)
public
CommonResult
<
Boolean
>
supplierPurchaseOrderDelivery
(
@Request
Param
(
"ids"
)
List
<
Long
>
ids
)
{
purchaseOrderService
.
delivery
(
ids
,
supplierApi
.
querySupplierIdByUserId
(
SecurityFrameworkUtils
.
getLoginUserId
()),
public
CommonResult
<
Boolean
>
supplierPurchaseOrderDelivery
(
@Request
Body
@Valid
SupplierPurchaseOrderDeliveryReqVO
reqVO
)
{
purchaseOrderService
.
delivery
(
reqVO
,
supplierApi
.
querySupplierIdByUserId
(
SecurityFrameworkUtils
.
getLoginUserId
()),
ErpDeliveryStatus
.
NOT_YET
,
ErpDeliveryStatus
.
ALREADY
,
CustomerOrderStatus
.
SUPPLIER_SHIP
);
return
success
(
Boolean
.
TRUE
);
}
...
...
foodnexus-module-erp/src/main/java/cn/iocoder/foodnexus/module/erp/controller/admin/purchase/vo/supplier/SupplierPurchaseOrderDeliveryReqVO.java
0 → 100644
View file @
266040c5
package
cn
.
iocoder
.
foodnexus
.
module
.
erp
.
controller
.
admin
.
purchase
.
vo
.
supplier
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
jakarta.validation.constraints.NotNull
;
import
lombok.Data
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* @author : yanghao
* create at: 2026/1/5 15:12
* @description:
*/
@Data
@Schema
(
description
=
"供应商后台发货"
)
public
class
SupplierPurchaseOrderDeliveryReqVO
{
@Schema
(
description
=
"items"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
)
@NotNull
(
message
=
"items不能为空"
)
private
List
<
Item
>
items
;
@Data
public
static
class
Item
{
@Schema
(
description
=
"id"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
)
@NotNull
(
message
=
"id不能为空"
)
private
Long
id
;
@Schema
(
description
=
"文件附件url"
)
private
String
file
;
}
public
static
SupplierPurchaseOrderDeliveryReqVO
transform
(
List
<
Long
>
ids
)
{
SupplierPurchaseOrderDeliveryReqVO
data
=
new
SupplierPurchaseOrderDeliveryReqVO
();
List
<
Item
>
items
=
new
ArrayList
<>(
ids
.
size
());
for
(
Long
id
:
ids
)
{
Item
item
=
new
Item
();
item
.
setId
(
id
);
items
.
add
(
item
);
}
data
.
setItems
(
items
);
return
data
;
}
}
foodnexus-module-erp/src/main/java/cn/iocoder/foodnexus/module/erp/service/purchase/ErpPurchaseOrderService.java
View file @
266040c5
...
...
@@ -4,6 +4,7 @@ import cn.iocoder.foodnexus.framework.common.pojo.PageResult;
import
cn.iocoder.foodnexus.module.erp.api.enums.ErpDeliveryStatus
;
import
cn.iocoder.foodnexus.module.erp.controller.admin.purchase.vo.order.ErpPurchaseOrderPageReqVO
;
import
cn.iocoder.foodnexus.module.erp.controller.admin.purchase.vo.order.ErpPurchaseOrderSaveReqVO
;
import
cn.iocoder.foodnexus.module.erp.controller.admin.purchase.vo.supplier.SupplierPurchaseOrderDeliveryReqVO
;
import
cn.iocoder.foodnexus.module.erp.dal.dataobject.purchase.ErpPurchaseOrderDO
;
import
cn.iocoder.foodnexus.module.erp.dal.dataobject.purchase.ErpPurchaseOrderItemDO
;
import
cn.iocoder.foodnexus.module.erp.controller.admin.purchase.vo.order.SupplierMonthOrderPageReqVO
;
...
...
@@ -116,7 +117,7 @@ public interface ErpPurchaseOrderService {
* @param ids
* @param supplierId
*/
void
delivery
(
List
<
Long
>
ids
,
Long
supplierId
,
ErpDeliveryStatus
oriStatus
,
ErpDeliveryStatus
updateStatus
,
CustomerOrderStatus
updateOrderStatus
);
void
delivery
(
SupplierPurchaseOrderDeliveryReqVO
reqVO
,
Long
supplierId
,
ErpDeliveryStatus
oriStatus
,
ErpDeliveryStatus
updateStatus
,
CustomerOrderStatus
updateOrderStatus
);
Map
<
String
,
Long
>
queryCountByDeliveryStatus
(
ErpPurchaseOrderPageReqVO
pageReqVO
);
...
...
foodnexus-module-erp/src/main/java/cn/iocoder/foodnexus/module/erp/service/purchase/ErpPurchaseOrderServiceImpl.java
View file @
266040c5
...
...
@@ -13,6 +13,7 @@ import cn.iocoder.foodnexus.module.erp.api.enums.ErpDeliveryStatus;
import
cn.iocoder.foodnexus.module.erp.controller.admin.purchase.vo.in.ErpPurchaseInSaveReqVO
;
import
cn.iocoder.foodnexus.module.erp.controller.admin.purchase.vo.order.ErpPurchaseOrderPageReqVO
;
import
cn.iocoder.foodnexus.module.erp.controller.admin.purchase.vo.order.ErpPurchaseOrderSaveReqVO
;
import
cn.iocoder.foodnexus.module.erp.controller.admin.purchase.vo.supplier.SupplierPurchaseOrderDeliveryReqVO
;
import
cn.iocoder.foodnexus.module.erp.dal.dataobject.purchase.ErpPurchaseOrderDO
;
import
cn.iocoder.foodnexus.module.erp.dal.dataobject.purchase.ErpPurchaseOrderItemDO
;
import
cn.iocoder.foodnexus.module.erp.dal.mysql.purchase.ErpPurchaseOrderItemMapper
;
...
...
@@ -41,6 +42,7 @@ import org.springframework.transaction.annotation.Transactional;
import
org.springframework.transaction.event.TransactionPhase
;
import
org.springframework.transaction.event.TransactionalEventListener
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
...
...
@@ -325,12 +327,13 @@ public class ErpPurchaseOrderServiceImpl implements ErpPurchaseOrderService {
/**
* 发货/接单
*
* @param ids
* @param supplierId
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
,
propagation
=
Propagation
.
REQUIRES_NEW
)
public
void
delivery
(
List
<
Long
>
ids
,
Long
supplierId
,
ErpDeliveryStatus
oriStatus
,
ErpDeliveryStatus
updateStatus
,
CustomerOrderStatus
updateOrderStatus
)
{
public
void
delivery
(
SupplierPurchaseOrderDeliveryReqVO
reqVO
,
Long
supplierId
,
ErpDeliveryStatus
oriStatus
,
ErpDeliveryStatus
updateStatus
,
CustomerOrderStatus
updateOrderStatus
)
{
Map
<
Long
,
String
>
idMap
=
CommonUtil
.
listConvertMap
(
reqVO
.
getItems
(),
SupplierPurchaseOrderDeliveryReqVO
.
Item
::
getId
,
SupplierPurchaseOrderDeliveryReqVO
.
Item
::
getFile
);
Set
<
Long
>
ids
=
CommonUtil
.
listConvertSet
(
reqVO
.
getItems
(),
SupplierPurchaseOrderDeliveryReqVO
.
Item
::
getId
);
List
<
ErpPurchaseOrderDO
>
orderList
=
purchaseOrderMapper
.
selectList
(
Wrappers
.<
ErpPurchaseOrderDO
>
lambdaQuery
()
.
in
(
ErpPurchaseOrderDO:
:
getId
,
ids
)
.
eq
(
CommonUtil
.
isNotEmpty
(
supplierId
)
,
ErpPurchaseOrderDO:
:
getSupplierId
,
supplierId
));
...
...
@@ -365,11 +368,17 @@ public class ErpPurchaseOrderServiceImpl implements ErpPurchaseOrderService {
orderRecordApi
.
recordEvent
(
event
);
customerOrderSet
.
add
(
item
.
getCustomerOrderId
());
}
}
String
fileUrl
=
idMap
.
get
(
item
.
getId
());
if
(
CommonUtil
.
isNotBlank
(
fileUrl
))
{
item
.
setFileUrl
(
fileUrl
);
}
purchaseOrderMapper
.
update
(
Wrappers
.<
ErpPurchaseOrderDO
>
lambdaUpdate
()
.
set
(
ErpPurchaseOrderDO:
:
getDeliveryStatus
,
updateStatus
)
.
in
(
ErpPurchaseOrderDO:
:
getId
,
ids
));
.
set
(
CommonUtil
.
isNotBlank
(
fileUrl
),
ErpPurchaseOrderDO:
:
getFileUrl
,
fileUrl
)
.
eq
(
ErpPurchaseOrderDO:
:
getId
,
item
.
getId
()));
}
if
(
updateStatus
.
equals
(
ErpDeliveryStatus
.
ARRIVAL
))
{
orderList
.
forEach
(
purchaseOrder
->
{
...
...
@@ -529,7 +538,7 @@ public class ErpPurchaseOrderServiceImpl implements ErpPurchaseOrderService {
throw
new
RuntimeException
(
e
);
}
// 通过代理对象调用,事务生效
proxyService
.
delivery
(
CommonUtil
.
asList
(
purchaseOrderId
),
supplierId
,
proxyService
.
delivery
(
SupplierPurchaseOrderDeliveryReqVO
.
transform
(
CommonUtil
.
asList
(
purchaseOrderId
)
),
supplierId
,
ErpDeliveryStatus
.
MATCHED
,
ErpDeliveryStatus
.
NOT_YET
,
CustomerOrderStatus
.
SUPPLIER_ACCEPT_ORDER
);
}
}
...
...
foodnexus-module-mall/foodnexus-module-operations/src/main/java/cn/iocoder/foodnexus/module/operations/service/inquirecustomerpush/InquireCustomerPushServiceImpl.java
View file @
266040c5
...
...
@@ -24,6 +24,8 @@ import org.springframework.validation.annotation.Validated;
import
java.time.LocalDateTime
;
import
java.util.*
;
import
java.util.stream.Collectors
;
import
cn.iocoder.foodnexus.module.operations.controller.admin.inquirecustomerpush.vo.*
;
import
cn.iocoder.foodnexus.module.operations.dal.dataobject.inquirecustomerpush.InquireCustomerPushDO
;
import
cn.iocoder.foodnexus.framework.common.pojo.PageResult
;
...
...
@@ -176,7 +178,13 @@ public class InquireCustomerPushServiceImpl implements InquireCustomerPushServic
if
(
list
.
size
()
==
1
)
{
currentItemList
.
add
(
list
.
get
(
0
));
}
else
if
(
list
.
size
()
>
1
)
{
currentItemList
.
add
(
list
.
stream
().
max
(
Comparator
.
comparing
(
InquirePriceItemDO:
:
getCreateTime
)).
get
());
List
<
InquirePriceItemDO
>
collect
=
list
.
stream
().
filter
(
itemPrice
->
supplierPushMapper
.
exists
(
Wrappers
.<
InquireSupplierPushDO
>
lambdaQuery
()
.
eq
(
InquireSupplierPushDO:
:
getInquirePriceItemId
,
itemPrice
.
getId
())
.
eq
(
InquireSupplierPushDO:
:
getConfirm
,
Boolean
.
TRUE
))).
toList
();
if
(
CommonUtil
.
isNotEmpty
(
collect
))
{
currentItemList
.
add
(
collect
.
stream
().
max
(
Comparator
.
comparing
(
InquirePriceItemDO:
:
getCreateTime
)).
get
());
}
}
});
...
...
foodnexus-module-mall/foodnexus-module-operations/src/main/java/cn/iocoder/foodnexus/module/operations/service/inquireprice/InquirePriceServiceImpl.java
View file @
266040c5
...
...
@@ -96,6 +96,9 @@ public class InquirePriceServiceImpl implements InquirePriceService {
// 插入
InquirePriceDO
inquirePrice
=
BeanUtils
.
toBean
(
createReqVO
,
InquirePriceDO
.
class
);
inquirePrice
.
setIsPush
(
Boolean
.
FALSE
);
if
(
CommonUtil
.
isNotEmpty
(
createReqVO
.
getInquiryYearMonth
()))
{
createReqVO
.
setInquiryYearMonth
(
createReqVO
.
getInquiryYearMonth
().
length
()
>=
7
?
createReqVO
.
getInquiryYearMonth
().
substring
(
0
,
7
)
:
createReqVO
.
getInquiryYearMonth
());
}
inquirePriceMapper
.
insert
(
inquirePrice
);
inquirePriceItemService
.
addOrUpdateBatch
(
inquirePrice
.
getId
(),
createReqVO
.
getItems
(),
Boolean
.
FALSE
);
...
...
@@ -112,6 +115,9 @@ public class InquirePriceServiceImpl implements InquirePriceService {
if
(
inquirePriceDO
.
getIsPush
())
{
throw
exception
(
"询价已推送,无法修改"
);
}
if
(
CommonUtil
.
isNotEmpty
(
updateReqVO
.
getInquiryYearMonth
()))
{
updateReqVO
.
setInquiryYearMonth
(
updateReqVO
.
getInquiryYearMonth
().
length
()
>=
7
?
updateReqVO
.
getInquiryYearMonth
().
substring
(
0
,
7
)
:
updateReqVO
.
getInquiryYearMonth
());
}
// 更新
InquirePriceDO
updateObj
=
BeanUtils
.
toBean
(
updateReqVO
,
InquirePriceDO
.
class
);
inquirePriceMapper
.
updateById
(
updateObj
);
...
...
foodnexus-module-mall/foodnexus-module-order/src/main/java/cn/iocoder/foodnexus/module/order/service/customerorder/CustomerOrderServiceImpl.java
View file @
266040c5
...
...
@@ -222,6 +222,7 @@ public class CustomerOrderServiceImpl implements CustomerOrderService, CustomerO
Long
customerId
=
customerApi
.
queryCustomerIdByUserId
(
loginUser
.
getId
());
List
<
CustomerWarehouseDO
>
customerWarehouse
=
customerWarehouseService
.
getCustomerWarehouseByCustomerId
(
customerId
);
if
(
CommonUtil
.
isEmpty
(
customerWarehouse
)
||
CommonUtil
.
isEmpty
(
customerWarehouse
.
get
(
0
)))
{
log
.
error
(
"客户订单下单失败,1_019_100_004, \"仓库不存在\", req:{}"
,
createReqVO
);
throw
exception
(
CUSTOMER_ORDER_ADDRESS_NOEXISTS
);
}
else
{
// TODO 理论上客户只对应一个库区
...
...
foodnexus-module-mall/foodnexus-module-product/src/main/java/cn/iocoder/foodnexus/module/product/controller/admin/spu/ProductSpuController.java
View file @
266040c5
...
...
@@ -80,10 +80,10 @@ public class ProductSpuController {
}
@PutMapping
(
"/pass-all"
)
@Operation
(
summary
=
"
审核通过
所有产品"
)
@Operation
(
summary
=
"
上架
所有产品"
)
@PreAuthorize
(
"@ss.hasPermission('product:spu:update')"
)
public
CommonResult
<
Boolean
>
passAll
(
@RequestBody
ProductSpuUpdateStatusBatchReqVO
updateReqVO
)
{
productSpuService
.
passAll
(
updateReqVO
);
public
CommonResult
<
Boolean
>
passAll
()
{
productSpuService
.
passAll
();
return
success
(
Boolean
.
TRUE
);
}
...
...
foodnexus-module-mall/foodnexus-module-product/src/main/java/cn/iocoder/foodnexus/module/product/controller/admin/spu/vo/ProductSpuUpdateStatusBatchReqVO.java
deleted
100644 → 0
View file @
b6e17bf3
package
cn
.
iocoder
.
foodnexus
.
module
.
product
.
controller
.
admin
.
spu
.
vo
;
import
cn.iocoder.foodnexus.framework.common.validation.InEnum
;
import
cn.iocoder.foodnexus.module.product.enums.spu.ProductSpuStatusEnum
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
jakarta.validation.constraints.NotNull
;
import
lombok.Data
;
import
java.util.List
;
@Schema
(
description
=
"管理后台 - 商品 SPU Status 更新 Request VO"
)
@Data
public
class
ProductSpuUpdateStatusBatchReqVO
{
@Schema
(
description
=
"商品id集合(不传默认所有数据)"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"1"
)
private
List
<
Long
>
ids
;
@Schema
(
description
=
"商品状态"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"1"
)
@NotNull
(
message
=
"商品状态不能为空"
)
@InEnum
(
ProductSpuStatusEnum
.
class
)
private
Integer
status
;
}
foodnexus-module-mall/foodnexus-module-product/src/main/java/cn/iocoder/foodnexus/module/product/service/spu/ProductSpuService.java
View file @
266040c5
...
...
@@ -6,7 +6,6 @@ import cn.iocoder.foodnexus.framework.common.util.collection.CollectionUtils;
import
cn.iocoder.foodnexus.module.customerpermission.core.annotation.CustomerVisible
;
import
cn.iocoder.foodnexus.module.product.controller.admin.spu.vo.ProductSpuPageReqVO
;
import
cn.iocoder.foodnexus.module.product.controller.admin.spu.vo.ProductSpuSaveReqVO
;
import
cn.iocoder.foodnexus.module.product.controller.admin.spu.vo.ProductSpuUpdateStatusBatchReqVO
;
import
cn.iocoder.foodnexus.module.product.controller.admin.spu.vo.ProductSpuUpdateStatusReqVO
;
import
cn.iocoder.foodnexus.module.product.controller.app.spu.vo.AppProductSpuPageReqVO
;
import
cn.iocoder.foodnexus.module.product.controller.app.spu.vo.AppProductSpuStatusRespVO
;
...
...
@@ -156,7 +155,7 @@ public interface ProductSpuService {
void
audit
(
AuditCommonReqVO
auditReqVO
);
void
passAll
(
ProductSpuUpdateStatusBatchReqVO
updateReqVO
);
void
passAll
();
default
Map
<
Long
,
ProductSpuDO
>
getProductVOMap
(
Set
<
Long
>
longs
)
{
return
this
.
getSpuMap
(
longs
);
...
...
foodnexus-module-mall/foodnexus-module-product/src/main/java/cn/iocoder/foodnexus/module/product/service/spu/ProductSpuServiceImpl.java
View file @
266040c5
...
...
@@ -13,7 +13,6 @@ import cn.iocoder.foodnexus.module.erp.api.enums.ErpAuditStatus;
import
cn.iocoder.foodnexus.module.product.controller.admin.category.vo.ProductCategoryListReqVO
;
import
cn.iocoder.foodnexus.module.product.controller.admin.spu.vo.ProductSpuPageReqVO
;
import
cn.iocoder.foodnexus.module.product.controller.admin.spu.vo.ProductSpuSaveReqVO
;
import
cn.iocoder.foodnexus.module.product.controller.admin.spu.vo.ProductSpuUpdateStatusBatchReqVO
;
import
cn.iocoder.foodnexus.module.product.controller.admin.spu.vo.ProductSpuUpdateStatusReqVO
;
import
cn.iocoder.foodnexus.module.product.controller.app.spu.vo.AppProductSpuPageReqVO
;
import
cn.iocoder.foodnexus.module.product.controller.app.spu.vo.AppProductSpuStatusRespVO
;
...
...
@@ -146,20 +145,25 @@ public class ProductSpuServiceImpl implements ProductSpuService {
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
passAll
(
ProductSpuUpdateStatusBatchReqVO
updateReqVO
)
{
List
<
ProductSpuDO
>
productSpuDOS
=
productSpuMapper
.
selectList
(
Wrappers
.<
ProductSpuDO
>
lambdaQuery
()
.
in
(
CommonUtil
.
isNotEmpty
(
updateReqVO
.
getIds
()),
ProductSpuDO:
:
getId
,
updateReqVO
.
getIds
())
.
eq
(
ProductSpuDO:
:
getAuditStatus
,
ErpAuditStatus
.
PROCESS
.
getStatus
()));
if
(
CommonUtil
.
isNotEmpty
(
productSpuDOS
))
{
AuditCommonReqVO
auditCommonReqVO
=
new
AuditCommonReqVO
();
public
void
passAll
()
{
productSpuMapper
.
update
(
Wrappers
.<
ProductSpuDO
>
lambdaUpdate
()
.
set
(
ProductSpuDO:
:
getStatus
,
ProductSpuStatusEnum
.
ENABLE
.
getStatus
()));
/*List<ProductSpuDO> productSpuDOS = productSpuMapper.selectList(Wrappers.<ProductSpuDO>lambdaQuery()
.eq(ProductSpuDO::getStatus, ProductSpuStatusEnum.)*/
// .in(CommonUtil.isNotEmpty(updateReqVO.getIds()), ProductSpuDO::getId, updateReqVO.getIds())
// .eq(ProductSpuDO::getAuditStatus, ErpAuditStatus.PROCESS.getStatus()));
/*if (CommonUtil.isNotEmpty(productSpuDOS)) {
*//*AuditCommonReqVO auditCommonReqVO = new AuditCommonReqVO();
auditCommonReqVO.setAuditReason("批量审核");
auditCommonReqVO
.
setAuditStatus
(
updateReqVO
.
getStatus
().
toString
());
auditCommonReqVO.setAuditStatus(updateReqVO.getStatus().toString());
*//*
for (ProductSpuDO item : productSpuDOS) {
auditCommonReqVO
.
setId
(
item
.
getId
());
this
.
audit
(
auditCommonReqVO
);
}
*//*auditCommonReqVO.setId(item.getId());
this.audit(auditCommonReqVO);*//*
productSpuMapper.update(Wrappers.<ProductSpuDO>lambdaUpdate()
.);
}
}*/
}
@Override
...
...
foodnexus-server/pom.xml
View file @
266040c5
...
...
@@ -40,11 +40,11 @@
</dependency>-->
<!-- 数据报表。默认注释,保证编译速度 -->
<
!--<
dependency>
<dependency>
<groupId>
cn.iocoder.boot
</groupId>
<artifactId>
foodnexus-module-report
</artifactId>
<version>
${revision}
</version>
</dependency>
-->
</dependency>
<!-- 工作流。默认注释,保证编译速度 -->
<!--<dependency>
<groupId>cn.iocoder.boot</groupId>
...
...
foodnexus-server/src/main/resources/application-pro.yaml
0 → 100644
View file @
266040c5
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
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 comment