Commit 8dc06376 by 杨浩

bug修复;

采购入库新增调整
parent 745aedec
...@@ -83,7 +83,9 @@ public class ErpSupplierController { ...@@ -83,7 +83,9 @@ public class ErpSupplierController {
@Operation(summary = "获得供应商精简列表", description = "只包含被开启的供应商,主要用于前端的下拉选项") @Operation(summary = "获得供应商精简列表", description = "只包含被开启的供应商,主要用于前端的下拉选项")
public CommonResult<List<ErpSupplierRespVO>> getSupplierSimpleList() { public CommonResult<List<ErpSupplierRespVO>> getSupplierSimpleList() {
List<ErpSupplierDO> list = supplierService.getSupplierListByStatus(CommonStatusEnum.ENABLE.getStatus()); List<ErpSupplierDO> list = supplierService.getSupplierListByStatus(CommonStatusEnum.ENABLE.getStatus());
return success(convertList(list, supplier -> new ErpSupplierRespVO().setId(supplier.getId()))); return success(convertList(list, supplier -> new ErpSupplierRespVO().setId(supplier.getId())
.setSystemDeptId(supplier.getSystemDeptId())
.setName(supplier.getName())));
} }
@GetMapping("/export-excel") @GetMapping("/export-excel")
......
...@@ -119,11 +119,11 @@ public class ErpPurchaseInRespVO { ...@@ -119,11 +119,11 @@ public class ErpPurchaseInRespVO {
private String productUnit; private String productUnit;
@Schema(description = "产品单价", example = "100.00") @Schema(description = "产品单价", example = "100.00")
private BigDecimal productPrice; private Integer productPrice;
@Schema(description = "产品数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "100.00") @Schema(description = "产品数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "100.00")
@NotNull(message = "产品数量不能为空") @NotNull(message = "产品数量不能为空")
private BigDecimal count; private Integer count;
@Schema(description = "税率,百分比", example = "99.88") @Schema(description = "税率,百分比", example = "99.88")
private BigDecimal taxPercent; private BigDecimal taxPercent;
......
...@@ -70,11 +70,11 @@ public class ErpPurchaseInSaveReqVO { ...@@ -70,11 +70,11 @@ public class ErpPurchaseInSaveReqVO {
private String productUnit; private String productUnit;
@Schema(description = "产品单价", example = "100.00") @Schema(description = "产品单价", example = "100.00")
private BigDecimal productPrice; private Integer productPrice;
@Schema(description = "产品数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "100.00") @Schema(description = "产品数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "100.00")
@NotNull(message = "产品数量不能为空") @NotNull(message = "产品数量不能为空")
private BigDecimal count; private Integer count;
@Schema(description = "税率,百分比", example = "99.88") @Schema(description = "税率,百分比", example = "99.88")
private BigDecimal taxPercent; private BigDecimal taxPercent;
......
...@@ -130,4 +130,10 @@ public class ErpSupplierRespVO { ...@@ -130,4 +130,10 @@ public class ErpSupplierRespVO {
@Schema(description = "审核意见") @Schema(description = "审核意见")
private String auditReason; private String auditReason;
/**
* 关联部门id
*/
private String systemDeptId;
} }
package cn.iocoder.foodnexus.module.erp.controller.admin.sale.vo.order; package cn.iocoder.foodnexus.module.erp.controller.admin.sale.vo.order;
import cn.iocoder.foodnexus.framework.common.pojo.PageParam; import cn.iocoder.foodnexus.framework.common.pojo.PageParam;
import cn.iocoder.foodnexus.module.erp.enums.SaleOrderPickUpStatus;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
...@@ -77,4 +78,10 @@ public class ErpSaleOrderPageReqVO extends PageParam { ...@@ -77,4 +78,10 @@ public class ErpSaleOrderPageReqVO extends PageParam {
@Schema(description = "是否可退货", example = "true") @Schema(description = "是否可退货", example = "true")
private Boolean returnEnable; private Boolean returnEnable;
@Schema(description = "配送人员")
private Long deliveryStaffId;
@Schema(description = "拣货状态")
private SaleOrderPickUpStatus pickUpStatus;
} }
\ No newline at end of file
...@@ -2,6 +2,7 @@ package cn.iocoder.foodnexus.module.erp.controller.admin.sale.vo.order; ...@@ -2,6 +2,7 @@ package cn.iocoder.foodnexus.module.erp.controller.admin.sale.vo.order;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated; import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty; import cn.idev.excel.annotation.ExcelProperty;
import cn.iocoder.foodnexus.module.erp.enums.SaleOrderPickUpStatus;
import cn.iocoder.foodnexus.module.order.dto.CustomerAddressInfo; import cn.iocoder.foodnexus.module.order.dto.CustomerAddressInfo;
import cn.iocoder.foodnexus.module.order.enums.DeliveryMode; import cn.iocoder.foodnexus.module.order.enums.DeliveryMode;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
...@@ -123,6 +124,9 @@ public class ErpSaleOrderRespVO { ...@@ -123,6 +124,9 @@ public class ErpSaleOrderRespVO {
@TableField(typeHandler = JacksonTypeHandler.class) @TableField(typeHandler = JacksonTypeHandler.class)
private CustomerAddressInfo addressInfo; private CustomerAddressInfo addressInfo;
@Schema(description = "拣货状态")
private SaleOrderPickUpStatus pickUpStatus;
@Data @Data
public static class Item { public static class Item {
...@@ -178,7 +182,7 @@ public class ErpSaleOrderRespVO { ...@@ -178,7 +182,7 @@ public class ErpSaleOrderRespVO {
@Schema(description = "供应商id") @Schema(description = "供应商id")
private Long supplierId; private Long supplierId;
@Schema(description = "拣货状态") @Schema(description = "拣货状态")
private String pickUpStatus; private SaleOrderPickUpStatus pickUpStatus;
} }
......
package cn.iocoder.foodnexus.module.erp.controller.admin.sale.vo.order; package cn.iocoder.foodnexus.module.erp.controller.admin.sale.vo.order;
import cn.iocoder.foodnexus.module.erp.enums.SaleOrderPickUpStatus;
import cn.iocoder.foodnexus.module.order.dto.CustomerAddressInfo; import cn.iocoder.foodnexus.module.order.dto.CustomerAddressInfo;
import cn.iocoder.foodnexus.module.order.enums.DeliveryMode; import cn.iocoder.foodnexus.module.order.enums.DeliveryMode;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
...@@ -102,7 +103,7 @@ public class ErpSaleOrderSaveReqVO { ...@@ -102,7 +103,7 @@ public class ErpSaleOrderSaveReqVO {
private Long supplierId; private Long supplierId;
@Schema(description = "拣货状态") @Schema(description = "拣货状态")
private String pickUpStatus; private SaleOrderPickUpStatus pickUpStatus;
} }
......
...@@ -113,7 +113,7 @@ public class ErpSaleOutRespVO { ...@@ -113,7 +113,7 @@ public class ErpSaleOutRespVO {
private Long productId; private Long productId;
@Schema(description = "产品单位单位", requiredMode = Schema.RequiredMode.REQUIRED, example = "3113") @Schema(description = "产品单位单位", requiredMode = Schema.RequiredMode.REQUIRED, example = "3113")
private Long productUnitId; private String productUnit;
@Schema(description = "产品单价", example = "100.00") @Schema(description = "产品单价", example = "100.00")
private BigDecimal productPrice; private BigDecimal productPrice;
......
...@@ -64,7 +64,7 @@ public class ErpSaleOutSaveReqVO { ...@@ -64,7 +64,7 @@ public class ErpSaleOutSaveReqVO {
@Schema(description = "产品单位单位", requiredMode = Schema.RequiredMode.REQUIRED, example = "3113") @Schema(description = "产品单位单位", requiredMode = Schema.RequiredMode.REQUIRED, example = "3113")
@NotNull(message = "产品单位单位不能为空") @NotNull(message = "产品单位单位不能为空")
private Long productUnitId; private String productUnit;
@Schema(description = "产品单价", example = "100.00") @Schema(description = "产品单价", example = "100.00")
private BigDecimal productPrice; private BigDecimal productPrice;
......
...@@ -74,7 +74,7 @@ public class ErpPurchaseInDO extends BaseDO { ...@@ -74,7 +74,7 @@ public class ErpPurchaseInDO extends BaseDO {
/** /**
* 合计数量 * 合计数量
*/ */
private BigDecimal totalCount; private Integer totalCount;
/** /**
* 最终合计价格,单位:元 * 最终合计价格,单位:元
* *
......
...@@ -65,11 +65,11 @@ public class ErpPurchaseInItemDO extends BaseDO { ...@@ -65,11 +65,11 @@ public class ErpPurchaseInItemDO extends BaseDO {
/** /**
* 产品单位单价,单位:元 * 产品单位单价,单位:元
*/ */
private BigDecimal productPrice; private Integer productPrice;
/** /**
* 数量 * 数量
*/ */
private BigDecimal count; private Integer count;
/** /**
* 总价,单位:元 * 总价,单位:元
* *
......
...@@ -3,6 +3,7 @@ package cn.iocoder.foodnexus.module.erp.dal.dataobject.sale; ...@@ -3,6 +3,7 @@ package cn.iocoder.foodnexus.module.erp.dal.dataobject.sale;
import cn.iocoder.foodnexus.framework.mybatis.core.dataobject.BaseDO; import cn.iocoder.foodnexus.framework.mybatis.core.dataobject.BaseDO;
import cn.iocoder.foodnexus.module.erp.api.enums.ErpAuditStatus; import cn.iocoder.foodnexus.module.erp.api.enums.ErpAuditStatus;
import cn.iocoder.foodnexus.module.erp.dal.dataobject.finance.ErpAccountDO; import cn.iocoder.foodnexus.module.erp.dal.dataobject.finance.ErpAccountDO;
import cn.iocoder.foodnexus.module.erp.enums.SaleOrderPickUpStatus;
import cn.iocoder.foodnexus.module.order.dto.CustomerAddressInfo; import cn.iocoder.foodnexus.module.order.dto.CustomerAddressInfo;
import cn.iocoder.foodnexus.module.order.enums.DeliveryMode; import cn.iocoder.foodnexus.module.order.enums.DeliveryMode;
import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.KeySequence;
...@@ -157,4 +158,9 @@ public class ErpSaleOrderDO extends BaseDO { ...@@ -157,4 +158,9 @@ public class ErpSaleOrderDO extends BaseDO {
*/ */
@TableField(typeHandler = JacksonTypeHandler.class) @TableField(typeHandler = JacksonTypeHandler.class)
private CustomerAddressInfo addressInfo; private CustomerAddressInfo addressInfo;
/**
* 拣货状态
*/
private SaleOrderPickUpStatus pickUpStatus;
} }
\ No newline at end of file
...@@ -106,6 +106,6 @@ public class ErpSaleOrderItemDO extends BaseDO { ...@@ -106,6 +106,6 @@ public class ErpSaleOrderItemDO extends BaseDO {
* *
* {@link SaleOrderPickUpStatus} * {@link SaleOrderPickUpStatus}
*/ */
private String pickUpStatus; private SaleOrderPickUpStatus pickUpStatus;
} }
\ No newline at end of file
...@@ -61,7 +61,7 @@ public class ErpSaleOutItemDO extends BaseDO { ...@@ -61,7 +61,7 @@ public class ErpSaleOutItemDO extends BaseDO {
* *
* 冗余 {@link ErpProductDO#getUnitId()} * 冗余 {@link ErpProductDO#getUnitId()}
*/ */
private Long productUnitId; private String productUnit;
/** /**
* 产品单位单价,单位:元 * 产品单位单价,单位:元
......
...@@ -29,6 +29,8 @@ public interface ErpSaleOrderMapper extends BaseMapperX<ErpSaleOrderDO> { ...@@ -29,6 +29,8 @@ public interface ErpSaleOrderMapper extends BaseMapperX<ErpSaleOrderDO> {
.eqIfPresent(ErpSaleOrderDO::getStatus, reqVO.getStatus()) .eqIfPresent(ErpSaleOrderDO::getStatus, reqVO.getStatus())
.likeIfPresent(ErpSaleOrderDO::getRemark, reqVO.getRemark()) .likeIfPresent(ErpSaleOrderDO::getRemark, reqVO.getRemark())
.eqIfPresent(ErpSaleOrderDO::getCreator, reqVO.getCreator()) .eqIfPresent(ErpSaleOrderDO::getCreator, reqVO.getCreator())
.eqIfPresent(ErpSaleOrderDO::getDeliveryStaffId, reqVO.getDeliveryStaffId())
.eqIfPresent(ErpSaleOrderDO::getPickUpStatus, reqVO.getPickUpStatus())
.orderByDesc(ErpSaleOrderDO::getId); .orderByDesc(ErpSaleOrderDO::getId);
// 入库状态。为什么需要 t. 的原因,是因为联表查询时,需要指定表名,不然会报 out_count 错误 // 入库状态。为什么需要 t. 的原因,是因为联表查询时,需要指定表名,不然会报 out_count 错误
if (Objects.equals(reqVO.getOutStatus(), ErpSaleOrderPageReqVO.OUT_STATUS_NONE)) { if (Objects.equals(reqVO.getOutStatus(), ErpSaleOrderPageReqVO.OUT_STATUS_NONE)) {
......
...@@ -69,6 +69,7 @@ ErrorCode PURCHASE_ORDER_ITEM_RETURN_FAIL_IN_EXCEED = new ErrorCode(1_030_101_00 ...@@ -69,6 +69,7 @@ ErrorCode PURCHASE_ORDER_ITEM_RETURN_FAIL_IN_EXCEED = new ErrorCode(1_030_101_00
ErrorCode SALE_ORDER_PROCESS_FAIL_EXISTS_OUT = new ErrorCode(1_020_201_008, "反审核失败,已存在对应的销售出库单"); ErrorCode SALE_ORDER_PROCESS_FAIL_EXISTS_OUT = new ErrorCode(1_020_201_008, "反审核失败,已存在对应的销售出库单");
ErrorCode SALE_ORDER_ITEM_RETURN_FAIL_OUT_EXCEED = new ErrorCode(1_020_201_009, "销售订单项({})超过最大允许退货数量({})"); ErrorCode SALE_ORDER_ITEM_RETURN_FAIL_OUT_EXCEED = new ErrorCode(1_020_201_009, "销售订单项({})超过最大允许退货数量({})");
ErrorCode SALE_ORDER_PROCESS_FAIL_EXISTS_RETURN = new ErrorCode(1_020_201_010, "反审核失败,已存在对应的销售退货单"); ErrorCode SALE_ORDER_PROCESS_FAIL_EXISTS_RETURN = new ErrorCode(1_020_201_010, "反审核失败,已存在对应的销售退货单");
ErrorCode SALE_ORDER_PICKUP_STATUS_FAIL = new ErrorCode(1_020_201_011, "销售订单状态异常");
// ========== ERP 销售出库(1-030-202-000) ========== // ========== ERP 销售出库(1-030-202-000) ==========
ErrorCode SALE_OUT_NOT_EXISTS = new ErrorCode(1_020_202_000, "销售出库单不存在"); ErrorCode SALE_OUT_NOT_EXISTS = new ErrorCode(1_020_202_000, "销售出库单不存在");
......
...@@ -20,6 +20,7 @@ public enum SaleOrderPickUpStatus implements ArrayValuable<String> { ...@@ -20,6 +20,7 @@ public enum SaleOrderPickUpStatus implements ArrayValuable<String> {
PICK_UP("PICK_UP", "已拣"), PICK_UP("PICK_UP", "已拣"),
ALREADY("ALREADY", "已发货"),
; ;
......
...@@ -131,7 +131,7 @@ public class ErpPurchaseInServiceImpl implements ErpPurchaseInService { ...@@ -131,7 +131,7 @@ public class ErpPurchaseInServiceImpl implements ErpPurchaseInService {
} }
private void calculateTotalPrice(ErpPurchaseInDO purchaseIn, List<ErpPurchaseInItemDO> purchaseInItems) { private void calculateTotalPrice(ErpPurchaseInDO purchaseIn, List<ErpPurchaseInItemDO> purchaseInItems) {
purchaseIn.setTotalCount(getSumValue(purchaseInItems, ErpPurchaseInItemDO::getCount, BigDecimal::add)); purchaseIn.setTotalCount(purchaseInItems.stream().mapToInt(ErpPurchaseInItemDO::getCount).sum());
purchaseIn.setTotalProductPrice(getSumValue(purchaseInItems, ErpPurchaseInItemDO::getTotalPrice, BigDecimal::add, BigDecimal.ZERO)); purchaseIn.setTotalProductPrice(getSumValue(purchaseInItems, ErpPurchaseInItemDO::getTotalPrice, BigDecimal::add, BigDecimal.ZERO));
purchaseIn.setTotalTaxPrice(getSumValue(purchaseInItems, ErpPurchaseInItemDO::getTaxPrice, BigDecimal::add, BigDecimal.ZERO)); purchaseIn.setTotalTaxPrice(getSumValue(purchaseInItems, ErpPurchaseInItemDO::getTaxPrice, BigDecimal::add, BigDecimal.ZERO));
purchaseIn.setTotalPrice(purchaseIn.getTotalProductPrice().add(purchaseIn.getTotalTaxPrice())); purchaseIn.setTotalPrice(purchaseIn.getTotalProductPrice().add(purchaseIn.getTotalTaxPrice()));
...@@ -180,9 +180,9 @@ public class ErpPurchaseInServiceImpl implements ErpPurchaseInService { ...@@ -180,9 +180,9 @@ public class ErpPurchaseInServiceImpl implements ErpPurchaseInService {
Integer bizType = approve ? ErpStockRecordBizTypeEnum.PURCHASE_IN.getType() Integer bizType = approve ? ErpStockRecordBizTypeEnum.PURCHASE_IN.getType()
: ErpStockRecordBizTypeEnum.PURCHASE_IN_CANCEL.getType(); : ErpStockRecordBizTypeEnum.PURCHASE_IN_CANCEL.getType();
purchaseInItems.forEach(purchaseInItem -> { purchaseInItems.forEach(purchaseInItem -> {
BigDecimal count = approve ? purchaseInItem.getCount() : purchaseInItem.getCount().negate(); Integer count = approve ? purchaseInItem.getCount() : - purchaseInItem.getCount();
stockRecordService.createStockRecord(new ErpStockRecordCreateReqBO( stockRecordService.createStockRecord(new ErpStockRecordCreateReqBO(
purchaseInItem.getProductId(), purchaseInItem.getWarehouseId(), count, purchaseInItem.getProductId(), purchaseInItem.getWarehouseId(), BigDecimal.valueOf(count),
bizType, purchaseInItem.getInId(), purchaseInItem.getId(), purchaseIn.getNo())); bizType, purchaseInItem.getInId(), purchaseInItem.getId(), purchaseIn.getNo()));
}); });
} }
...@@ -207,7 +207,7 @@ public class ErpPurchaseInServiceImpl implements ErpPurchaseInService { ...@@ -207,7 +207,7 @@ public class ErpPurchaseInServiceImpl implements ErpPurchaseInService {
// 2. 转化为 ErpPurchaseInItemDO 列表 // 2. 转化为 ErpPurchaseInItemDO 列表
return convertList(list, o -> BeanUtils.toBean(o, ErpPurchaseInItemDO.class, item -> { return convertList(list, o -> BeanUtils.toBean(o, ErpPurchaseInItemDO.class, item -> {
// item.setProductUnitId(productMap.get(item.getProductId()).getUnitId()); // item.setProductUnitId(productMap.get(item.getProductId()).getUnitId());
item.setTotalPrice(MoneyUtils.priceMultiply(item.getProductPrice(), item.getCount())); item.setTotalPrice(BigDecimal.valueOf(item.getProductPrice() * item.getCount()));
if (item.getTotalPrice() == null) { if (item.getTotalPrice() == null) {
return; return;
} }
......
...@@ -8,11 +8,13 @@ import cn.iocoder.foodnexus.framework.common.util.number.MoneyUtils; ...@@ -8,11 +8,13 @@ import cn.iocoder.foodnexus.framework.common.util.number.MoneyUtils;
import cn.iocoder.foodnexus.framework.common.util.object.BeanUtils; import cn.iocoder.foodnexus.framework.common.util.object.BeanUtils;
import cn.iocoder.foodnexus.module.erp.api.PurchaseOrderSplitEvent; import cn.iocoder.foodnexus.module.erp.api.PurchaseOrderSplitEvent;
import cn.iocoder.foodnexus.module.erp.api.enums.ErpDeliveryStatus; 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.ErpPurchaseOrderPageReqVO;
import cn.iocoder.foodnexus.module.erp.controller.admin.purchase.vo.order.ErpPurchaseOrderSaveReqVO; import cn.iocoder.foodnexus.module.erp.controller.admin.purchase.vo.order.ErpPurchaseOrderSaveReqVO;
import cn.iocoder.foodnexus.module.erp.dal.dataobject.product.ErpProductDO; import cn.iocoder.foodnexus.module.erp.dal.dataobject.product.ErpProductDO;
import cn.iocoder.foodnexus.module.erp.dal.dataobject.purchase.ErpPurchaseOrderDO; 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.ErpPurchaseOrderItemDO;
import cn.iocoder.foodnexus.module.erp.dal.dataobject.sale.ErpSaleOrderItemDO;
import cn.iocoder.foodnexus.module.erp.dal.mysql.purchase.ErpPurchaseOrderItemMapper; import cn.iocoder.foodnexus.module.erp.dal.mysql.purchase.ErpPurchaseOrderItemMapper;
import cn.iocoder.foodnexus.module.erp.dal.mysql.purchase.ErpPurchaseOrderMapper; import cn.iocoder.foodnexus.module.erp.dal.mysql.purchase.ErpPurchaseOrderMapper;
import cn.iocoder.foodnexus.module.erp.dal.redis.no.ErpNoRedisDAO; import cn.iocoder.foodnexus.module.erp.dal.redis.no.ErpNoRedisDAO;
...@@ -38,6 +40,7 @@ import org.springframework.transaction.event.TransactionalEventListener; ...@@ -38,6 +40,7 @@ import org.springframework.transaction.event.TransactionalEventListener;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.*; import java.util.*;
import static cn.iocoder.foodnexus.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.foodnexus.framework.common.exception.util.ServiceExceptionUtil.exception;
...@@ -61,6 +64,9 @@ public class ErpPurchaseOrderServiceImpl implements ErpPurchaseOrderService { ...@@ -61,6 +64,9 @@ public class ErpPurchaseOrderServiceImpl implements ErpPurchaseOrderService {
@Resource @Resource
private ErpPurchaseOrderItemMapper purchaseOrderItemMapper; private ErpPurchaseOrderItemMapper purchaseOrderItemMapper;
@Autowired
private ErpPurchaseInService purchaseInService;
@Resource @Resource
private ErpNoRedisDAO noRedisDAO; private ErpNoRedisDAO noRedisDAO;
...@@ -355,6 +361,34 @@ public class ErpPurchaseOrderServiceImpl implements ErpPurchaseOrderService { ...@@ -355,6 +361,34 @@ public class ErpPurchaseOrderServiceImpl implements ErpPurchaseOrderService {
purchaseOrderMapper.update(Wrappers.<ErpPurchaseOrderDO>lambdaUpdate() purchaseOrderMapper.update(Wrappers.<ErpPurchaseOrderDO>lambdaUpdate()
.set(ErpPurchaseOrderDO::getDeliveryStatus, updateStatus) .set(ErpPurchaseOrderDO::getDeliveryStatus, updateStatus)
.in(ErpPurchaseOrderDO::getId, ids)); .in(ErpPurchaseOrderDO::getId, ids));
if (updateStatus.equals(ErpDeliveryStatus.ARRIVAL)) {
orderList.forEach(purchaseOrder -> {
// 新增采购入库单
ErpPurchaseInSaveReqVO inSaveReqVO = new ErpPurchaseInSaveReqVO();
inSaveReqVO.setInTime(LocalDateTime.now());
inSaveReqVO.setOrderId(purchaseOrder.getId());
inSaveReqVO.setFileUrl(purchaseOrder.getFileUrl());
inSaveReqVO.setRemark(purchaseOrder.getRemark());
List<ErpPurchaseOrderItemDO> purchaseOrderItems = purchaseOrderItemMapper.selectListByOrderId(purchaseOrder.getId());
inSaveReqVO.setItems(CommonUtil.listConvert(purchaseOrderItems, purchaseOrderItem ->
getItem(purchaseOrderItem, customerOrderApi.queryById(purchaseOrderItem.getCustomerOrderId()))));
purchaseInService.createPurchaseIn(inSaveReqVO);
});
}
}
private static ErpPurchaseInSaveReqVO.Item getItem(ErpPurchaseOrderItemDO purchaseOrderItemDO, CustomerOrderDTO customerOrder) {
ErpPurchaseInSaveReqVO.Item item = new ErpPurchaseInSaveReqVO.Item();
item.setOrderItemId(purchaseOrderItemDO.getId());
item.setWarehouseId(customerOrder.getWarehouseAreaId());
item.setProductId(purchaseOrderItemDO.getProductId());
item.setProductUnit(purchaseOrderItemDO.getProductUnit());
item.setProductPrice(purchaseOrderItemDO.getProductPrice());
item.setCount(purchaseOrderItemDO.getCount());
item.setTaxPercent(purchaseOrderItemDO.getTaxPercent());
item.setRemark(purchaseOrderItemDO.getRemark());
return item;
} }
@Override @Override
......
...@@ -114,5 +114,16 @@ public interface ErpSaleOrderService { ...@@ -114,5 +114,16 @@ public interface ErpSaleOrderService {
*/ */
boolean updateDeliveryStaff(Long id, Long deliveryStaffId); boolean updateDeliveryStaff(Long id, Long deliveryStaffId);
/**
* 更新拣货
* @param id
* @param itemId
*/
void updatePickUp(Long id, Long itemId); void updatePickUp(Long id, Long itemId);
/**
* 配送
* @param id
*/
void delivery(Long id, Long deliveryStaffId);
} }
\ No newline at end of file
...@@ -10,6 +10,7 @@ import cn.iocoder.foodnexus.module.erp.api.vo.warehouse.WarehouseInfo; ...@@ -10,6 +10,7 @@ import cn.iocoder.foodnexus.module.erp.api.vo.warehouse.WarehouseInfo;
import cn.iocoder.foodnexus.module.erp.controller.admin.purchase.vo.in.ErpPurchaseInSaveReqVO; import cn.iocoder.foodnexus.module.erp.controller.admin.purchase.vo.in.ErpPurchaseInSaveReqVO;
import cn.iocoder.foodnexus.module.erp.controller.admin.sale.vo.order.ErpSaleOrderPageReqVO; import cn.iocoder.foodnexus.module.erp.controller.admin.sale.vo.order.ErpSaleOrderPageReqVO;
import cn.iocoder.foodnexus.module.erp.controller.admin.sale.vo.order.ErpSaleOrderSaveReqVO; import cn.iocoder.foodnexus.module.erp.controller.admin.sale.vo.order.ErpSaleOrderSaveReqVO;
import cn.iocoder.foodnexus.module.erp.controller.admin.sale.vo.out.ErpSaleOutSaveReqVO;
import cn.iocoder.foodnexus.module.erp.dal.dataobject.product.ErpProductDO; import cn.iocoder.foodnexus.module.erp.dal.dataobject.product.ErpProductDO;
import cn.iocoder.foodnexus.module.erp.dal.dataobject.purchase.ErpPurchaseOrderDO; import cn.iocoder.foodnexus.module.erp.dal.dataobject.purchase.ErpPurchaseOrderDO;
import cn.iocoder.foodnexus.module.erp.dal.dataobject.sale.ErpSaleOrderDO; import cn.iocoder.foodnexus.module.erp.dal.dataobject.sale.ErpSaleOrderDO;
...@@ -89,6 +90,9 @@ public class ErpSaleOrderServiceImpl implements ErpSaleOrderService { ...@@ -89,6 +90,9 @@ public class ErpSaleOrderServiceImpl implements ErpSaleOrderService {
@Autowired @Autowired
private DeliveryStaffApi deliveryStaffApi; private DeliveryStaffApi deliveryStaffApi;
@Autowired
private ErpSaleOutService saleOutService;
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Long createSaleOrder(ErpSaleOrderSaveReqVO createReqVO) { public Long createSaleOrder(ErpSaleOrderSaveReqVO createReqVO) {
...@@ -360,14 +364,7 @@ public class ErpSaleOrderServiceImpl implements ErpSaleOrderService { ...@@ -360,14 +364,7 @@ public class ErpSaleOrderServiceImpl implements ErpSaleOrderService {
.eq(ErpSaleOrderItemDO::getId, itemId)); .eq(ErpSaleOrderItemDO::getId, itemId));
// 插入采购入库单 // 插入采购入库单
ErpPurchaseInSaveReqVO inSaveReqVO = new ErpPurchaseInSaveReqVO();
inSaveReqVO.setInTime(LocalDateTime.now());
inSaveReqVO.setOrderId(saleOrder.getCustomerOrderId());
inSaveReqVO.setSaleOrderId(saleOrder.getId());
inSaveReqVO.setSaleOrderItemId(saleItemOrder.getId());
ErpPurchaseInSaveReqVO.Item item = getItem(saleItemOrder, customerOrder);
inSaveReqVO.setItems(CommonUtil.asList(item));
purchaseInService.createPurchaseIn(inSaveReqVO);
Long allCount = saleOrderItemMapper.selectCount(ErpSaleOrderItemDO::getOrderId, saleOrder.getId()); Long allCount = saleOrderItemMapper.selectCount(ErpSaleOrderItemDO::getOrderId, saleOrder.getId());
...@@ -375,6 +372,10 @@ public class ErpSaleOrderServiceImpl implements ErpSaleOrderService { ...@@ -375,6 +372,10 @@ public class ErpSaleOrderServiceImpl implements ErpSaleOrderService {
.eq(ErpSaleOrderItemDO::getOrderId, saleOrder.getId()) .eq(ErpSaleOrderItemDO::getOrderId, saleOrder.getId())
.eq(ErpSaleOrderItemDO::getPickUpStatus, SaleOrderPickUpStatus.PICK_UP.getType())); .eq(ErpSaleOrderItemDO::getPickUpStatus, SaleOrderPickUpStatus.PICK_UP.getType()));
if (allCount > 0 && Objects.equals(pickUpCount, allCount)) { if (allCount > 0 && Objects.equals(pickUpCount, allCount)) {
saleOrderMapper.update(Wrappers.<ErpSaleOrderDO>lambdaUpdate()
.set(ErpSaleOrderDO::getPickUpStatus, SaleOrderPickUpStatus.PICK_UP.getType())
.eq(ErpSaleOrderDO::getId, saleOrder.getId()));
String deliveryName = deliveryStaffApi.queryNameByStaffId(saleOrder.getDeliveryStaffId()); String deliveryName = deliveryStaffApi.queryNameByStaffId(saleOrder.getDeliveryStaffId());
String warehouseName = Optional.ofNullable(customerOrder.getWarehouseInfo()).map(WarehouseInfo::getName).orElse(""); String warehouseName = Optional.ofNullable(customerOrder.getWarehouseInfo()).map(WarehouseInfo::getName).orElse("");
ErpPurchaseOrderDO purchaseOrder = purchaseOrderService.getPurchaseOrder(saleItemOrder.getPurchaseOrderId()); ErpPurchaseOrderDO purchaseOrder = purchaseOrderService.getPurchaseOrder(saleItemOrder.getPurchaseOrderId());
...@@ -388,17 +389,46 @@ public class ErpSaleOrderServiceImpl implements ErpSaleOrderService { ...@@ -388,17 +389,46 @@ public class ErpSaleOrderServiceImpl implements ErpSaleOrderService {
} }
private static ErpPurchaseInSaveReqVO.Item getItem(ErpSaleOrderItemDO saleItemOrder, CustomerOrderDTO customerOrder) { /**
ErpPurchaseInSaveReqVO.Item item = new ErpPurchaseInSaveReqVO.Item(); * 配送
item.setOrderItemId(saleItemOrder.getPurchaseOrderId()); *
item.setWarehouseId(customerOrder.getWarehouseAreaId()); * @param id
item.setProductId(saleItemOrder.getProductId()); */
item.setProductUnit(saleItemOrder.getProductUnit()); @Override
item.setProductPrice(saleItemOrder.getProductPrice()); public void delivery(Long id, Long deliveryStaffId) {
item.setCount(saleItemOrder.getCount()); ErpSaleOrderDO saleOrder = this.validateSaleOrder(id);
item.setTaxPercent(saleItemOrder.getTaxPercent()); if (!SaleOrderPickUpStatus.PICK_UP.equals(saleOrder.getPickUpStatus())) {
item.setRemark(saleItemOrder.getRemark()); throw exception(SALE_ORDER_PICKUP_STATUS_FAIL);
return item; }
saleOrderMapper.update(Wrappers.<ErpSaleOrderDO>lambdaUpdate()
.set(ErpSaleOrderDO::getPickUpStatus, SaleOrderPickUpStatus.ALREADY.getType())
.set(ErpSaleOrderDO::getDeliveryStaffId, deliveryStaffId)
.eq(ErpSaleOrderDO::getId, saleOrder.getId()));
List<ErpSaleOrderItemDO> saleOrderItems = saleOrderItemMapper.selectListByOrderId(id);
// 新增销售出库单
ErpSaleOutSaveReqVO saleOutSaveReqVO = new ErpSaleOutSaveReqVO();
saleOutSaveReqVO.setSaleUserId(saleOrder.getSaleUserId());
saleOutSaveReqVO.setAccountId(saleOrder.getAccountId());
saleOutSaveReqVO.setOutTime(LocalDateTime.now());
saleOutSaveReqVO.setOrderId(saleOrder.getId());
saleOutSaveReqVO.setDiscountPercent(saleOrder.getDiscountPercent());
saleOutSaveReqVO.setFileUrl(saleOrder.getFileUrl());
saleOutSaveReqVO.setRemark(saleOrder.getRemark());
saleOutSaveReqVO.setItems(CommonUtil.listConvert(saleOrderItems, saleOrderItem -> {
ErpSaleOutSaveReqVO.Item item = new ErpSaleOutSaveReqVO.Item();
item.setOrderItemId(saleOrderItem.getId());
// item.setWarehouseId();
item.setProductId(saleOrderItem.getProductId());
item.setProductUnit(saleOrderItem.getProductUnit());
item.setProductPrice(saleOrderItem.getProductPrice());
item.setCount(saleOrderItem.getCount());
item.setTaxPercent(saleOrderItem.getTaxPercent());
item.setRemark(saleOrderItem.getRemark());
return item;
}));
saleOutService.createSaleOut(saleOutSaveReqVO);
} }
} }
...@@ -20,6 +20,8 @@ import cn.iocoder.foodnexus.module.erp.service.finance.ErpAccountService; ...@@ -20,6 +20,8 @@ import cn.iocoder.foodnexus.module.erp.service.finance.ErpAccountService;
import cn.iocoder.foodnexus.module.erp.service.product.ErpProductService; import cn.iocoder.foodnexus.module.erp.service.product.ErpProductService;
import cn.iocoder.foodnexus.module.erp.service.stock.ErpStockRecordService; import cn.iocoder.foodnexus.module.erp.service.stock.ErpStockRecordService;
import cn.iocoder.foodnexus.module.erp.service.stock.bo.ErpStockRecordCreateReqBO; import cn.iocoder.foodnexus.module.erp.service.stock.bo.ErpStockRecordCreateReqBO;
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.api.user.AdminUserApi; import cn.iocoder.foodnexus.module.system.api.user.AdminUserApi;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Lazy;
...@@ -57,7 +59,7 @@ public class ErpSaleOutServiceImpl implements ErpSaleOutService { ...@@ -57,7 +59,7 @@ public class ErpSaleOutServiceImpl implements ErpSaleOutService {
private ErpNoRedisDAO noRedisDAO; private ErpNoRedisDAO noRedisDAO;
@Resource @Resource
private ErpProductService productService; private ProductSpuService productSpuService;
@Resource @Resource
@Lazy // 延迟加载,避免循环依赖 @Lazy // 延迟加载,避免循环依赖
private ErpSaleOrderService saleOrderService; private ErpSaleOrderService saleOrderService;
...@@ -209,12 +211,10 @@ public class ErpSaleOutServiceImpl implements ErpSaleOutService { ...@@ -209,12 +211,10 @@ public class ErpSaleOutServiceImpl implements ErpSaleOutService {
private List<ErpSaleOutItemDO> validateSaleOutItems(List<ErpSaleOutSaveReqVO.Item> list) { private List<ErpSaleOutItemDO> validateSaleOutItems(List<ErpSaleOutSaveReqVO.Item> list) {
// 1. 校验产品存在 // 1. 校验产品存在
List<ErpProductDO> productList = productService.validProductList( Map<Long, ProductSpuDO> productMap = productSpuService.getSpuMap(convertSet(list, ErpSaleOutSaveReqVO.Item::getProductId));
convertSet(list, ErpSaleOutSaveReqVO.Item::getProductId));
Map<Long, ErpProductDO> productMap = convertMap(productList, ErpProductDO::getId);
// 2. 转化为 ErpSaleOutItemDO 列表 // 2. 转化为 ErpSaleOutItemDO 列表
return convertList(list, o -> BeanUtils.toBean(o, ErpSaleOutItemDO.class, item -> { return convertList(list, o -> BeanUtils.toBean(o, ErpSaleOutItemDO.class, item -> {
item.setProductUnitId(productMap.get(item.getProductId()).getUnitId()); item.setProductUnit(productMap.get(item.getProductId()).getUnitName());
item.setTotalPrice(MoneyUtils.priceMultiply(item.getProductPrice(), item.getCount())); item.setTotalPrice(MoneyUtils.priceMultiply(item.getProductPrice(), item.getCount()));
if (item.getTotalPrice() == null) { if (item.getTotalPrice() == null) {
return; return;
......
...@@ -152,4 +152,10 @@ public class DeliveryStaffServiceImpl implements DeliveryStaffService, DeliveryS ...@@ -152,4 +152,10 @@ public class DeliveryStaffServiceImpl implements DeliveryStaffService, DeliveryS
public String queryNameByStaffId(Long staffId) { public String queryNameByStaffId(Long staffId) {
return Optional.ofNullable(deliveryStaffMapper.selectById(staffId)).map(DeliveryStaffDO::getName).orElse(""); return Optional.ofNullable(deliveryStaffMapper.selectById(staffId)).map(DeliveryStaffDO::getName).orElse("");
} }
@Override
public Long queryStaffIdByUserId(Long loginUserId) {
return Optional.ofNullable(deliveryStaffMapper.selectOne(DeliveryStaffDO::getUserId, loginUserId))
.map(DeliveryStaffDO::getId).orElse(null);
}
} }
\ No newline at end of file
...@@ -9,4 +9,5 @@ public interface DeliveryStaffApi { ...@@ -9,4 +9,5 @@ public interface DeliveryStaffApi {
String queryNameByStaffId(Long staffId); String queryNameByStaffId(Long staffId);
Long queryStaffIdByUserId(Long loginUserId);
} }
package cn.iocoder.foodnexus.module.order.controller.app.delivery; package cn.iocoder.foodnexus.module.order.controller.app.delivery;
import cn.hutool.core.collection.CollUtil;
import cn.iocoder.foodnexus.framework.common.enums.UserSystemEnum; import cn.iocoder.foodnexus.framework.common.enums.UserSystemEnum;
import cn.iocoder.foodnexus.framework.common.pojo.CommonResult;
import cn.iocoder.foodnexus.framework.common.pojo.PageResult;
import cn.iocoder.foodnexus.framework.common.util.collection.MapUtils;
import cn.iocoder.foodnexus.framework.common.util.object.BeanUtils;
import cn.iocoder.foodnexus.framework.security.core.util.SecurityFrameworkUtils;
import cn.iocoder.foodnexus.module.erp.controller.admin.product.vo.product.ErpProductRespVO;
import cn.iocoder.foodnexus.module.erp.controller.admin.sale.vo.order.ErpSaleOrderPageReqVO;
import cn.iocoder.foodnexus.module.erp.controller.admin.sale.vo.order.ErpSaleOrderRespVO;
import cn.iocoder.foodnexus.module.erp.dal.dataobject.sale.ErpCustomerDO;
import cn.iocoder.foodnexus.module.erp.dal.dataobject.sale.ErpSaleOrderDO;
import cn.iocoder.foodnexus.module.erp.dal.dataobject.sale.ErpSaleOrderItemDO;
import cn.iocoder.foodnexus.module.erp.enums.SaleOrderPickUpStatus;
import cn.iocoder.foodnexus.module.erp.service.product.ErpProductService;
import cn.iocoder.foodnexus.module.erp.service.sale.ErpCustomerService;
import cn.iocoder.foodnexus.module.erp.service.sale.ErpSaleOrderService;
import cn.iocoder.foodnexus.module.order.api.DeliveryStaffApi;
import cn.iocoder.foodnexus.module.system.annotations.AppSystemAuth; import cn.iocoder.foodnexus.module.system.annotations.AppSystemAuth;
import cn.iocoder.foodnexus.module.system.api.user.AdminUserApi;
import cn.iocoder.foodnexus.module.system.api.user.dto.AdminUserRespDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
import jakarta.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
import static cn.iocoder.foodnexus.framework.common.pojo.CommonResult.success;
import static cn.iocoder.foodnexus.framework.common.util.collection.CollectionUtils.convertMultiMap;
import static cn.iocoder.foodnexus.framework.common.util.collection.CollectionUtils.convertSet;
/** /**
* @author : yanghao * @author : yanghao
* create at: 2025/9/26 09:49 * create at: 2025/9/26 09:49
* @description: 订单 - 配送 * @description: 订单 - 配送
*/ */
@Tag(name = "管理后台 - 订单 - 配送") @Tag(name = "配送员 - 订单 - 配送")
@RestController @RestController
@RequestMapping("/delivery/order") @RequestMapping("/delivery/order")
@Validated @Validated
@AppSystemAuth(UserSystemEnum.DELIVERY) @AppSystemAuth(UserSystemEnum.DELIVERY)
public class DeliveryOrderController { public class DeliveryOrderController {
@Autowired
private DeliveryStaffApi deliveryStaffApi;
@Autowired
private ErpSaleOrderService saleOrderService;
@Resource
private ErpProductService productService;
@Resource
private ErpCustomerService customerService;
@Resource
private AdminUserApi adminUserApi;
// 查询所有已拣销售订单
@GetMapping("/page")
@Operation(summary = "获得销售订单分页")
public CommonResult<PageResult<ErpSaleOrderRespVO>> getSaleOrderPage(@Valid ErpSaleOrderPageReqVO pageReqVO) {
pageReqVO.setDeliveryStaffId(deliveryStaffApi.queryStaffIdByUserId(SecurityFrameworkUtils.getLoginUserId()));
pageReqVO.setPickUpStatus(SaleOrderPickUpStatus.PICK_UP);
PageResult<ErpSaleOrderDO> pageResult = saleOrderService.getSaleOrderPage(pageReqVO);
return success(buildSaleOrderVOPageResult(pageResult));
}
// 配送订单,生成销售出库单
@PostMapping("/delivery")
@Operation(summary = "配送订单")
@Parameter(name = "id", description = "销售订单id", required = true)
public CommonResult<Boolean> delivery(@RequestParam("id") Long id) {
saleOrderService.delivery(id, deliveryStaffApi.queryStaffIdByUserId(SecurityFrameworkUtils.getLoginUserId()));
return success(Boolean.TRUE);
}
// 订单修改
private PageResult<ErpSaleOrderRespVO> buildSaleOrderVOPageResult(PageResult<ErpSaleOrderDO> pageResult) {
if (CollUtil.isEmpty(pageResult.getList())) {
return PageResult.empty(pageResult.getTotal());
}
// 1.1 订单项
List<ErpSaleOrderItemDO> saleOrderItemList = saleOrderService.getSaleOrderItemListByOrderIds(
convertSet(pageResult.getList(), ErpSaleOrderDO::getId));
Map<Long, List<ErpSaleOrderItemDO>> saleOrderItemMap = convertMultiMap(saleOrderItemList, ErpSaleOrderItemDO::getOrderId);
// 1.2 产品信息
Map<Long, ErpProductRespVO> productMap = productService.getProductVOMap(
convertSet(saleOrderItemList, ErpSaleOrderItemDO::getProductId));
// 1.3 客户信息
Map<Long, ErpCustomerDO> customerMap = customerService.getCustomerMap(
convertSet(pageResult.getList(), ErpSaleOrderDO::getCustomerId));
// 1.4 管理员信息
Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(
convertSet(pageResult.getList(), saleOrder -> Long.parseLong(saleOrder.getCreator())));
// 2. 开始拼接
return BeanUtils.toBean(pageResult, ErpSaleOrderRespVO.class, saleOrder -> {
saleOrder.setItems(BeanUtils.toBean(saleOrderItemMap.get(saleOrder.getId()), ErpSaleOrderRespVO.Item.class,
item -> MapUtils.findAndThen(productMap, item.getProductId(), product -> item.setProductName(product.getName())
.setProductBarCode(product.getBarCode()).setProductUnitName(product.getUnitName()))));
saleOrder.setProductNames(CollUtil.join(saleOrder.getItems(), ",", ErpSaleOrderRespVO.Item::getProductName));
MapUtils.findAndThen(customerMap, saleOrder.getCustomerId(), supplier -> saleOrder.setCustomerName(supplier.getName()));
MapUtils.findAndThen(userMap, Long.parseLong(saleOrder.getCreator()), user -> saleOrder.setCreatorName(user.getNickname()));
});
}
} }
...@@ -75,9 +75,9 @@ public class DeptController { ...@@ -75,9 +75,9 @@ public class DeptController {
@GetMapping(value = {"/list-all-simple", "/simple-list"}) @GetMapping(value = {"/list-all-simple", "/simple-list"})
@Operation(summary = "获取部门精简信息列表", description = "只包含被开启的部门,主要用于前端的下拉选项") @Operation(summary = "获取部门精简信息列表", description = "只包含被开启的部门,主要用于前端的下拉选项")
public CommonResult<List<DeptSimpleRespVO>> getSimpleDeptList() { public CommonResult<List<DeptSimpleRespVO>> getSimpleDeptList(@RequestParam(value = "userSystem", required = false) String userSystem) {
List<DeptDO> list = deptService.getDeptList( List<DeptDO> list = deptService.getDeptList(
new DeptListReqVO().setStatus(CommonStatusEnum.ENABLE.getStatus())); new DeptListReqVO().setUserSystem(userSystem).setStatus(CommonStatusEnum.ENABLE.getStatus()));
return success(BeanUtils.toBean(list, DeptSimpleRespVO.class)); return success(BeanUtils.toBean(list, DeptSimpleRespVO.class));
} }
......
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