Commit 95ceb825 by 杨浩

查询供应商绑定商品

parent 68132d17
......@@ -16,6 +16,7 @@ import cn.iocoder.foodnexus.module.erp.controller.admin.purchase.vo.supplier.Erp
import cn.iocoder.foodnexus.module.erp.controller.admin.purchase.vo.supplier.ErpSupplierSaveReqVO;
import cn.iocoder.foodnexus.module.erp.dal.dataobject.purchase.ErpSupplierDO;
import cn.iocoder.foodnexus.module.erp.service.purchase.ErpSupplierService;
import cn.iocoder.foodnexus.module.product.controller.admin.spu.vo.ProductSpuRespVO;
import cn.iocoder.foodnexus.module.system.annotations.AppSystemAuth;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
......@@ -87,6 +88,13 @@ public class ErpSupplierController {
return success(Boolean.TRUE);
}
@GetMapping("bind-product")
@Operation(summary = "查询供应商绑定商品")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
public CommonResult<List<ProductSpuRespVO>> queryBindProduct(@RequestParam("id") Long id) {
return success(BeanUtils.toBean(supplierService.queryBindProduct(id), ProductSpuRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得供应商分页")
@PreAuthorize("@ss.hasPermission('erp:supplier:query')")
......
......@@ -67,6 +67,12 @@ public class ErpPurchaseReturnSaveReqVO {
*/
private Long deliveryStaffId;
@Schema(description = "客户订单id")
private Long customerOrderId;
@Schema(description = "销售订单id")
private Long saleOrderId;
@Schema(description = "退货清单列表")
private List<Item> items;
......
......@@ -173,4 +173,9 @@ public class ErpPurchaseReturnDO extends BaseDO {
*/
private Long customerOrderId;
/**
* 销售订单id
*/
private Long saleOrderId;
}
\ No newline at end of file
......@@ -16,37 +16,37 @@ import java.util.Arrays;
@Getter
public enum SaleOrderPickUpStatus implements ArrayValuable<String> {
CANCEL("CANCEL", "取消"),
CANCEL("CANCEL", "取消", Boolean.FALSE),
TO_BE("TO_BE", "待拣"),
TO_BE("TO_BE", "待拣", Boolean.FALSE),
PICK_UP("PICK_UP", "待接单"),
PICK_UP("PICK_UP", "待接单", Boolean.FALSE),
ACCEPT("ACCEPT", "待配送"),
ACCEPT("ACCEPT", "待配送", Boolean.FALSE),
ALREADY("ALREADY", "配送中"),
ALREADY("ALREADY", "配送中", Boolean.FALSE),
ARRIVAL("ARRIVAL", "已到货"),
ARRIVAL("ARRIVAL", "已到货", Boolean.FALSE),
SIGN("SIGN", "已签收"),
SIGN("SIGN", "已签收", Boolean.FALSE),
/* ----- 退款 ------ */
// 生成销售退货单
RETURNS_PROCESS("RETURNS_PROCESS", "退款 - 审核中"),
RETURNS_PROCESS("RETURNS_PROCESS", "退款 - 审核中", Boolean.TRUE),
// 销售退货单申请通过
RETURNS_APPROVE("RETURNS_APPROVE", "退款 - 已审核"),
RETURNS_APPROVE("RETURNS_APPROVE", "退款 - 已审核", Boolean.TRUE),
// 销售退货单根据供应商拆分为采购退货单
// 配送员接受采购退货单
RETURNS_STAFF_ACCEPT("RETURNS_STAFF_ACCEPT", "退款 - 配送员接单"),
RETURNS_STAFF_ACCEPT("RETURNS_STAFF_ACCEPT", "退款 - 配送员接单", Boolean.TRUE),
// 配送员取件发货
RETURNS_STAFF_ALREADY("RETURNS_STAFF_ALREADY", "退款 - 配送员已取件"),
RETURNS_STAFF_ALREADY("RETURNS_STAFF_ALREADY", "退款 - 配送员已取件", Boolean.TRUE),
// 确认收获
RETURNS_FINISH("RETURNS_FINISH", "退款 - 退货完成"),
RETURNS_FINISH("RETURNS_FINISH", "退款 - 退货完成", Boolean.TRUE),
;
......@@ -61,6 +61,11 @@ public enum SaleOrderPickUpStatus implements ArrayValuable<String> {
*/
private final String name;
/**
* 是否为退款流程
*/
private final boolean isReturns;
public static SaleOrderPickUpStatus getByType(String pickUpStatus) {
if (CommonUtil.isBlank(pickUpStatus)) {
return null;
......
......@@ -5,6 +5,7 @@ import cn.iocoder.foodnexus.module.erp.controller.admin.purchase.vo.supplier.Erp
import cn.iocoder.foodnexus.module.erp.controller.admin.purchase.vo.supplier.ErpSupplierPageReqVO;
import cn.iocoder.foodnexus.module.erp.controller.admin.purchase.vo.supplier.ErpSupplierSaveReqVO;
import cn.iocoder.foodnexus.module.erp.dal.dataobject.purchase.ErpSupplierDO;
import cn.iocoder.foodnexus.module.product.dal.dataobject.spu.ProductSpuDO;
import cn.iocoder.foodnexus.module.system.controller.admin.vo.AuditCommonReqVO;
import jakarta.validation.Valid;
......@@ -96,4 +97,7 @@ public interface ErpSupplierService {
void audit(AuditCommonReqVO auditReqVO);
void bindProduct(ErpProductSupplierBindReqVO bindReqVO);
List<ProductSpuDO> queryBindProduct(Long id);
}
\ No newline at end of file
......@@ -15,6 +15,8 @@ import cn.iocoder.foodnexus.module.erp.dal.dataobject.purchase.ErpSupplierDO;
import cn.iocoder.foodnexus.module.erp.dal.mysql.product.ProductSupplierMapper;
import cn.iocoder.foodnexus.module.erp.dal.mysql.purchase.ErpSupplierMapper;
import cn.iocoder.foodnexus.module.erp.api.enums.ErpAuditStatus;
import cn.iocoder.foodnexus.module.product.dal.dataobject.spu.ProductSpuDO;
import cn.iocoder.foodnexus.module.product.service.spu.ProductSpuService;
import cn.iocoder.foodnexus.module.system.controller.admin.vo.AuditCommonReqVO;
import cn.iocoder.foodnexus.module.system.dal.dataobject.dept.DeptDO;
import cn.iocoder.foodnexus.module.system.dal.dataobject.user.AdminUserDO;
......@@ -55,6 +57,9 @@ public class ErpSupplierServiceImpl implements ErpSupplierService, ErpSupplierAp
private ProductSupplierMapper productSupplierMapper;
@Autowired
private ProductSpuService productSpuService;
@Autowired
@Lazy
private AdminUserService userService;
......@@ -163,6 +168,13 @@ public class ErpSupplierServiceImpl implements ErpSupplierService, ErpSupplierAp
}));
}
@Override
public List<ProductSpuDO> queryBindProduct(Long id) {
List<ProductSupplierDO> productSupplierDOS = productSupplierMapper.selectList(ProductSupplierDO::getSupplierId, id);
return productSpuService.getSpuList(CommonUtil.listConvertSet(productSupplierDOS, ProductSupplierDO::getProductId));
}
/* --------------- api --------------- */
......
......@@ -97,6 +97,10 @@ public class ErpSaleOrderServiceImpl implements ErpSaleOrderService {
@Autowired
private ErpPurchaseOrderMapper purchaseOrderMapper;
@Autowired
@Lazy
private ErpSaleReturnService saleReturnService;
@Override
@Transactional(rollbackFor = Exception.class)
public Long createSaleOrder(ErpSaleOrderSaveReqVO createReqVO) {
......@@ -400,6 +404,10 @@ public class ErpSaleOrderServiceImpl implements ErpSaleOrderService {
@Transactional(rollbackFor = Exception.class)
public void delivery(Long id, Long deliveryStaffId) {
ErpSaleOrderDO saleOrder = this.validateSaleOrder(id);
if (saleOrder.getPickUpStatus().isReturns()) {
saleReturnService.delivery(id, deliveryStaffId);
return ;
}
if (!SaleOrderPickUpStatus.ACCEPT.equals(saleOrder.getPickUpStatus())) {
throw exception(SALE_ORDER_PICKUP_STATUS_FAIL);
}
......@@ -480,6 +488,10 @@ public class ErpSaleOrderServiceImpl implements ErpSaleOrderService {
@Transactional(rollbackFor = Exception.class)
public void accept(Long id, Long deliveryStaffId) {
ErpSaleOrderDO saleOrder = this.validateSaleOrder(id);
if (saleOrder.getPickUpStatus().isReturns()) {
saleReturnService.accept(id, deliveryStaffId);
return ;
}
if (!SaleOrderPickUpStatus.PICK_UP.equals(saleOrder.getPickUpStatus())) {
throw exception(SALE_ORDER_PICKUP_STATUS_FAIL);
}
......@@ -556,8 +568,10 @@ public class ErpSaleOrderServiceImpl implements ErpSaleOrderService {
updateBatch.add(updateItem);
}
});
if (CommonUtil.isNotEmpty(updateBatch)) {
saleOutItemMapper.updateBatch(updateBatch);
}
}
DeliveryStaffSimpleInfo deliveryStaffSimpleInfo = deliveryStaffApi.querybyStaffId(saleOrder.getDeliveryStaffId());
CustomerOrderRecordEvent event = new CustomerOrderRecordEvent();
......
......@@ -7,6 +7,8 @@ import cn.iocoder.foodnexus.framework.common.pojo.PageResult;
import cn.iocoder.foodnexus.framework.common.util.CommonUtil;
import cn.iocoder.foodnexus.framework.common.util.object.BeanUtils;
import cn.iocoder.foodnexus.framework.redis.utils.RedisUtils;
import cn.iocoder.foodnexus.module.erp.dal.dataobject.purchase.ErpPurchaseReturnDO;
import cn.iocoder.foodnexus.module.erp.dal.mysql.purchase.ErpPurchaseReturnMapper;
import cn.iocoder.foodnexus.module.erp.dal.mysql.sale.ErpSaleOrderMapper;
import cn.iocoder.foodnexus.module.erp.enums.SaleOrderPickUpStatus;
import cn.iocoder.foodnexus.module.erp.controller.admin.purchase.vo.returns.ErpPurchaseReturnSaveReqVO;
......@@ -87,6 +89,9 @@ public class ErpSaleReturnServiceImpl implements ErpSaleReturnService {
private ErpPurchaseReturnService purchaseReturnService;
@Autowired
private ErpPurchaseReturnMapper purchaseReturnMapper;
@Autowired
private ErpPurchaseOrderMapper purchaseOrderMapper;
@Autowired
......@@ -242,6 +247,8 @@ public class ErpSaleReturnServiceImpl implements ErpSaleReturnService {
purchaseReturnSave.setWarehouseAreaId(saleReturn.getWarehouseAreaId());
purchaseReturnSave.setWarehouseInfo(saleReturn.getWarehouseInfo());
purchaseReturnSave.setDeliveryStaffId(saleReturn.getDeliveryStaffId());
purchaseReturnSave.setCustomerOrderId(saleReturn.getCustomerOrderId());
purchaseReturnSave.setSaleOrderId(saleReturn.getOrderId());
Map<Long, ErpPurchaseOrderItemDO> purchaseOrderMap = CommonUtil.listConvertMap(purchaseOrderItems, ErpPurchaseOrderItemDO::getCustomerOrderItemId);
for (ErpSaleReturnItemDO saleReturnsItem : saleReturnsItems) {
ErpPurchaseReturnSaveReqVO.Item item = new ErpPurchaseReturnSaveReqVO.Item();
......@@ -420,6 +427,11 @@ public class ErpSaleReturnServiceImpl implements ErpSaleReturnService {
.set(ErpSaleReturnDO::getDeliveryStaffId, deliveryStaffId)
.eq(ErpSaleReturnDO::getId, saleReturn.getId()));
purchaseReturnMapper.update(Wrappers.<ErpPurchaseReturnDO>lambdaUpdate()
.set(ErpPurchaseReturnDO::getDeliveryStaffId, deliveryStaffId)
.set(ErpPurchaseReturnDO::getReturnsStatus, SaleOrderPickUpStatus.RETURNS_STAFF_ACCEPT.getType())
.set(ErpPurchaseReturnDO::getSaleOrderId, saleOrder.getId()));
} finally {
RedisUtils.unLockRds(key);
}
......@@ -451,6 +463,11 @@ public class ErpSaleReturnServiceImpl implements ErpSaleReturnService {
.set(ErpSaleReturnDO::getDeliveryStaffId, deliveryStaffId)
.eq(ErpSaleReturnDO::getId, saleReturn.getId()));
purchaseReturnMapper.update(Wrappers.<ErpPurchaseReturnDO>lambdaUpdate()
.set(ErpPurchaseReturnDO::getDeliveryStaffId, deliveryStaffId)
.set(ErpPurchaseReturnDO::getReturnsStatus, SaleOrderPickUpStatus.RETURNS_STAFF_ALREADY.getType())
.set(ErpPurchaseReturnDO::getSaleOrderId, saleOrder.getId()));
} finally {
RedisUtils.unLockRds(key);
}
......
......@@ -2,6 +2,7 @@ package cn.iocoder.foodnexus.module.operations.controller.admin.inquireprice;
import cn.iocoder.foodnexus.module.operations.controller.admin.inquirepriceitem.vo.InquirePriceItemRespVO;
import cn.iocoder.foodnexus.module.operations.service.inquirepriceitem.InquirePriceItemService;
import cn.iocoder.foodnexus.module.product.service.spu.ProductSpuService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import jakarta.annotation.Resource;
......@@ -44,6 +45,9 @@ public class InquirePriceController {
@Autowired
private InquirePriceItemService inquirePriceItemService;
@Autowired
private ProductSpuService productService;
@PostMapping("/create")
@Operation(summary = "创建询价管理")
@PreAuthorize("@ss.hasPermission('operations:inquire-price:create')")
......@@ -92,7 +96,9 @@ public class InquirePriceController {
public CommonResult<InquirePriceRespVO> getInquirePrice(@RequestParam("id") Long id) {
InquirePriceDO inquirePrice = inquirePriceService.getInquirePrice(id);
return success(BeanUtils.toBean(inquirePrice, InquirePriceRespVO.class, item -> {
item.setItems(BeanUtils.toBean(inquirePriceItemService.queryByInquireId(item.getId()), InquirePriceItemRespVO.class));
item.setItems(BeanUtils.toBean(inquirePriceItemService.queryByInquireId(item.getId()), InquirePriceItemRespVO.class, inquireItem -> {
inquireItem.setProductName(productService.queryName(inquireItem.getProductId()));
}));
}));
}
......
......@@ -3,9 +3,11 @@ package cn.iocoder.foodnexus.module.operations.service.inquirepriceitem;
import cn.iocoder.foodnexus.framework.common.util.CommonUtil;
import cn.iocoder.foodnexus.module.operations.controller.admin.inquiresupplierpush.vo.AppInquireSupplierPushDetailsRespVO;
import cn.iocoder.foodnexus.module.operations.dal.dataobject.inquiresupplierpush.InquireSupplierPushDO;
import cn.iocoder.foodnexus.module.product.service.category.ProductCategoryService;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.apache.commons.compress.utils.Lists;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated;
......@@ -38,6 +40,9 @@ public class InquirePriceItemServiceImpl implements InquirePriceItemService {
@Resource
private InquirePriceItemMapper inquirePriceItemMapper;
@Autowired
private ProductCategoryService productCategoryService;
@Override
public Long createInquirePriceItem(InquirePriceItemSaveReqVO createReqVO) {
// 插入
......@@ -112,6 +117,7 @@ public class InquirePriceItemServiceImpl implements InquirePriceItemService {
item.setInquireId(inquireId);
// 重新计算下浮后价格
item.setFloatingPrice(this.calculateFloatingPrice(item.getMarketPrice(), item.getFloatingRate()));
item.setCategoryName(productCategoryService.queryNameById(item.getCategoryId()));
if (CommonUtil.isEmpty(item.getId())) {
this.createInquirePriceItem(item);
......
......@@ -83,7 +83,7 @@ public class DeliverySaleReturnController {
return success(result);
}
@PostMapping("/accept")
/*@PostMapping("/accept")
@Operation(summary = "确认接单")
@Parameter(name = "id", description = "配送单id(deliveryInfo.id)", required = true)
public CommonResult<Boolean> accept(@RequestParam("id") Long id) {
......@@ -98,7 +98,7 @@ public class DeliverySaleReturnController {
public CommonResult<Boolean> delivery(@RequestParam("id") Long id) {
saleReturnService.delivery(id, deliveryStaffApi.queryStaffIdByUserId(getLoginUserId()));
return success(Boolean.TRUE);
}
}*/
// 订单到货 - 运营后台
/*@PostMapping("/arrival")
......
......@@ -20,14 +20,17 @@ import java.time.LocalDateTime;
@Data
public class DeliverySaleReturnRespVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "17386")
@ExcelProperty("编号")
@Schema(description = "退款单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "17386")
@ExcelProperty("退款单编号")
private Long id;
@Schema(description = "销售退货单号", requiredMode = Schema.RequiredMode.REQUIRED, example = "XS001")
@ExcelProperty("销售退货单号")
private String no;
@Schema(description = "销售订单id")
private Long orderId;
@Schema(description = "客户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1724")
private Long customerId;
......
......@@ -58,8 +58,11 @@ public class ProductSpuPageReqVO extends PageParam {
@Schema(description = "前端请求的tab类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Integer tabType;
/*@Schema(description = "商品分类编号", example = "1")
private Long categoryId;*/
@Schema(description = "商品分类编号", example = "1")
private Long categoryId;
private List<Long> categoryId;
@Schema(description = "创建时间", example = "[2022-07-01 00:00:00, 2022-07-01 23:59:59]")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
......
......@@ -26,7 +26,7 @@ public interface ProductSpuConvert {
ProductSpuConvert INSTANCE = Mappers.getMapper(ProductSpuConvert.class);
ProductSpuPageReqVO convert(AppProductSpuPageReqVO bean);
// ProductSpuPageReqVO convert(AppProductSpuPageReqVO bean);
default ProductSpuRespVO convert(ProductSpuDO spu, List<ProductSkuDO> skus) {
ProductSpuRespVO spuVO = BeanUtils.toBean(spu, ProductSpuRespVO.class);
......
......@@ -36,7 +36,7 @@ public interface ProductSpuMapper extends BaseMapperX<ProductSpuDO> {
.inIfPresent(ProductSpuDO::getId, reqVO.getIdList())
.eqIfPresent(ProductSpuDO::getStatus, reqVO.getStatus())
.eqIfPresent(ProductSpuDO::getAuditStatus, reqVO.getAuditStatus())
.eqIfPresent(ProductSpuDO::getCategoryId, reqVO.getCategoryId())
.inIfPresent(ProductSpuDO::getCategoryId, reqVO.getCategoryId())
.betweenIfPresent(ProductSpuDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(ProductSpuDO::getSort)
.orderByDesc(ProductSpuDO::getId);
......
......@@ -57,9 +57,10 @@ public class UserProfileController {
List<RoleDO> userRoles = roleService.getRoleListFromCache(permissionService.getUserRoleIdListByUserId(user.getId()));
// 获得部门信息
DeptDO dept = user.getDeptId() != null ? deptService.getDept(user.getDeptId()) : null;
DeptDO topDept = deptService.getTopDept(user.getDeptId());
// 获得岗位信息
List<PostDO> posts = CollUtil.isNotEmpty(user.getPostIds()) ? postService.getPostList(user.getPostIds()) : null;
return success(UserConvert.INSTANCE.convert(user, userRoles, dept, posts));
return success(UserConvert.INSTANCE.convert(user, userRoles, dept, topDept, posts));
}
@PutMapping("/update")
......
......@@ -52,6 +52,10 @@ public class UserProfileRespVO {
*/
private DeptSimpleRespVO dept;
/**
* 所在顶级部门
*/
private DeptSimpleRespVO topDept;
/**
* 所属岗位数组
*/
private List<PostSimpleRespVO> posts;
......
......@@ -57,9 +57,10 @@ public class AppUserProfileController {
List<RoleDO> userRoles = roleService.getRoleListFromCache(permissionService.getUserRoleIdListByUserId(user.getId()));
// 获得部门信息
DeptDO dept = user.getDeptId() != null ? deptService.getDept(user.getDeptId()) : null;
DeptDO topDept = deptService.getTopDept(user.getDeptId());
// 获得岗位信息
List<PostDO> posts = CollUtil.isNotEmpty(user.getPostIds()) ? postService.getPostList(user.getPostIds()) : null;
return success(UserConvert.INSTANCE.convert(user, userRoles, dept, posts));
return success(UserConvert.INSTANCE.convert(user, userRoles, dept, topDept, posts));
}
@PutMapping("/update")
......
......@@ -45,10 +45,11 @@ public interface UserConvert {
}
default UserProfileRespVO convert(AdminUserDO user, List<RoleDO> userRoles,
DeptDO dept, List<PostDO> posts) {
DeptDO dept, DeptDO topDept, List<PostDO> posts) {
UserProfileRespVO userVO = BeanUtils.toBean(user, UserProfileRespVO.class);
userVO.setRoles(BeanUtils.toBean(userRoles, RoleSimpleRespVO.class));
userVO.setDept(BeanUtils.toBean(dept, DeptSimpleRespVO.class));
userVO.setTopDept(BeanUtils.toBean(topDept, DeptSimpleRespVO.class));
userVO.setPosts(BeanUtils.toBean(posts, PostSimpleRespVO.class));
return userVO;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment