Merge branch 'master' of http://gitea.zianxin.com/zianxin-tec/biz-api-cloud
This commit is contained in:
commit
6c2bf7935a
16 files changed
+211
-30
No files matched your search
+3
-1
@@ -13,7 +13,9 @@ public enum InventoryTypeEnum {
|
||||
CGRK(1, "CGSQ"),
|
||||
CKDD(2, "CGDD"),
|
||||
CKRK(3, "CGRK"),
|
||||
CKTH(4, "CGTH")
|
||||
CKTH(4, "CGTH"),
|
||||
LSCK(5, "LSCK"),
|
||||
LSTH(6, "LSTH")
|
||||
;
|
||||
private final Integer type;
|
||||
private final String value;
|
||||
|
||||
+2
-2
@@ -22,13 +22,13 @@ public class ErpCgDDEditDTO {
|
||||
* 采购计划编号
|
||||
*/
|
||||
@Schema(description="采购计划编号")
|
||||
private String planCode;
|
||||
private String code;
|
||||
|
||||
/**
|
||||
* 采购计划单据日期
|
||||
*/
|
||||
@Schema(description="采购计划单据日期")
|
||||
private LocalDate planDate;
|
||||
private LocalDate ddDate;
|
||||
|
||||
/**
|
||||
* 仓库id
|
||||
|
||||
+4
-4
@@ -19,14 +19,14 @@ public class ErpCgDDSaveDTO {
|
||||
/**
|
||||
* 采购计划编号
|
||||
*/
|
||||
@Schema(description="采购计划编号")
|
||||
private String planCode;
|
||||
@Schema(description="编号")
|
||||
private String code;
|
||||
|
||||
/**
|
||||
* 采购计划单据日期
|
||||
*/
|
||||
@Schema(description="采购计划单据日期")
|
||||
private LocalDate planDate;
|
||||
@Schema(description="单据日期")
|
||||
private LocalDate ddDate;
|
||||
|
||||
/**
|
||||
* 仓库id
|
||||
|
||||
+3
-1
@@ -40,7 +40,7 @@ public class SmErpCgDdEntity extends Model<SmErpCgDdEntity> {
|
||||
* 单据日期
|
||||
*/
|
||||
@Schema(description="单据日期")
|
||||
private LocalDate dDate;
|
||||
private LocalDate ddDate;
|
||||
|
||||
/**
|
||||
* 经办人id
|
||||
@@ -156,6 +156,8 @@ public class SmErpCgDdEntity extends Model<SmErpCgDdEntity> {
|
||||
@Schema(description="租户编号")
|
||||
private Long tenantId;
|
||||
|
||||
@Schema(description="关联状态")
|
||||
private String linkStatus;
|
||||
|
||||
@Schema(description="关联编码")
|
||||
private String linkCode;
|
||||
|
||||
+7
@@ -132,4 +132,11 @@ public class SmErpCgPlanEntity extends Model<SmErpCgPlanEntity> {
|
||||
*/
|
||||
@Schema(description="租户编号")
|
||||
private Long tenantId;
|
||||
|
||||
@Schema(description="关联状态")
|
||||
private String linkStatus;
|
||||
|
||||
@TableField(exist = false)
|
||||
@Schema(description="商品名称")
|
||||
private String productName;
|
||||
}
|
||||
+97
-6
@@ -1,15 +1,106 @@
|
||||
package com.bsd.pjcloud.supermarket.vo.stockwarn;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.bsd.pjcloud.common.core.util.MoneyDeserializer;
|
||||
import com.bsd.pjcloud.common.core.util.MoneySerializer;
|
||||
import com.bsd.pjcloud.supermarket.entity.SmErpAuxiliaryCodeEntity;
|
||||
import com.bsd.pjcloud.supermarket.entity.SmErpSpuEntity;
|
||||
import com.bsd.pjcloud.supermarket.entity.SmErpUnitEntity;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class StockWarnVO extends SmErpSpuEntity {
|
||||
public class StockWarnVO {
|
||||
/**
|
||||
* 商品 SPU 编号,自增
|
||||
*/
|
||||
@TableId(type = IdType.ASSIGN_ID)
|
||||
@Schema(description="商品 SPU 编号,自增")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 货号
|
||||
*/
|
||||
@Schema(description="货号")
|
||||
private String productCode;
|
||||
|
||||
/**
|
||||
* 自编码/条码
|
||||
*/
|
||||
@Schema(description="自编码/条码")
|
||||
private String barcode;
|
||||
|
||||
/**
|
||||
* 商品名称
|
||||
*/
|
||||
@Schema(description="商品名称")
|
||||
private String productName;
|
||||
|
||||
/**
|
||||
* 单位
|
||||
*/
|
||||
@Schema(description="单位")
|
||||
private String unit;
|
||||
|
||||
|
||||
/**
|
||||
* 商品分类编号
|
||||
*/
|
||||
@Schema(description="商品分类编号")
|
||||
private Long categoryId;
|
||||
|
||||
/**
|
||||
* 商品封面图
|
||||
*/
|
||||
@Schema(description="商品封面图")
|
||||
private String picUrl;
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 库存
|
||||
*/
|
||||
@Schema(description="库存")
|
||||
@TableField(exist = false)
|
||||
private Integer stock;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 规格
|
||||
*/
|
||||
@Schema(description="规格")
|
||||
private String spec;
|
||||
|
||||
|
||||
/**
|
||||
* 装数
|
||||
*/
|
||||
@Schema(description="基础装数")
|
||||
private Integer packageNum;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 库存上限
|
||||
*/
|
||||
@Schema(description="库存上限")
|
||||
private Integer inventoryUpperLimit;
|
||||
|
||||
/**
|
||||
* 库存下限
|
||||
*/
|
||||
@Schema(description="库存下限")
|
||||
private Integer inventoryLowerLimit;
|
||||
|
||||
@Schema(description="预警类型,1,库存不足,2 库存超额")
|
||||
private String warnType; // 预警类型字段
|
||||
|
||||
private Long spuId;
|
||||
|
||||
private Integer baseStock;
|
||||
|
||||
private Integer currentStock;
|
||||
}
|
||||
+1
-1
@@ -180,7 +180,7 @@ public class SmErpCgDdController {
|
||||
|
||||
//todo 审核成功条件
|
||||
// wrapper.eq(SmErpCgPlanEntity::getCheckStatus,);
|
||||
return R.ok(smErpCgPlanService.pageScope(page, wrapper));
|
||||
return R.ok(smErpCgPlanService.pageCgsqScope(page, wrapper));
|
||||
}
|
||||
|
||||
}
|
||||
+1
-1
@@ -73,7 +73,7 @@ public class SmErpCgPlanController {
|
||||
wrapper.eq(Objects.nonNull(smErpCgPlan.getPlanDate()),SmErpCgPlanEntity::getPlanDate,smErpCgPlan.getPlanDate());
|
||||
wrapper.eq(Objects.nonNull(smErpCgPlan.getHandlerUserId()),SmErpCgPlanEntity::getHandlerUserId,smErpCgPlan.getHandlerUserId());
|
||||
wrapper.eq(StrUtil.isNotBlank(smErpCgPlan.getCheckStatus()),SmErpCgPlanEntity::getCheckStatus,smErpCgPlan.getCheckStatus());
|
||||
return R.ok(smErpCgPlanService.page(page, wrapper));
|
||||
return R.ok(smErpCgPlanService.pageScope(page, wrapper));
|
||||
}
|
||||
|
||||
|
||||
|
||||
+1
-1
@@ -216,7 +216,7 @@ public class SmErpInventoryRecordsController {
|
||||
|
||||
LambdaQueryWrapper<SmErpCgDdEntity> wrapper = Wrappers.lambdaQuery();
|
||||
wrapper.like(StrUtil.isNotBlank(cgDdLinkQueryDTO.getCode()),SmErpCgDdEntity::getCode,cgDdLinkQueryDTO.getCode());
|
||||
wrapper.eq(Objects.nonNull(cgDdLinkQueryDTO.getDDate()),SmErpCgDdEntity::getDDate,cgDdLinkQueryDTO.getDDate());
|
||||
wrapper.eq(Objects.nonNull(cgDdLinkQueryDTO.getDDate()),SmErpCgDdEntity::getDdDate,cgDdLinkQueryDTO.getDDate());
|
||||
|
||||
//todo 审核成功条件
|
||||
// wrapper.eq(SmErpCgPlanEntity::getCheckStatus,);
|
||||
|
||||
+5
-1
@@ -36,5 +36,9 @@ public interface SmErpCgPlanService extends IService<SmErpCgPlanEntity> {
|
||||
* @param wrapper
|
||||
* @return
|
||||
*/
|
||||
Page<SmErpCgPlanVo> pageScope(Page page, LambdaQueryWrapper<SmErpCgPlanEntity> wrapper);
|
||||
Page<SmErpCgPlanVo> pageCgsqScope(Page page, LambdaQueryWrapper<SmErpCgPlanEntity> wrapper);
|
||||
|
||||
|
||||
|
||||
Object pageScope(Page page, LambdaQueryWrapper<SmErpCgPlanEntity> wrapper);
|
||||
}
|
||||
+12
@@ -19,6 +19,7 @@ import com.bsd.pjcloud.supermarket.entity.SmErpCgPlanEntity;
|
||||
import com.bsd.pjcloud.supermarket.entity.SmErpCgPlanItemEntity;
|
||||
import com.bsd.pjcloud.supermarket.mapper.SmErpCgDdItemMapper;
|
||||
import com.bsd.pjcloud.supermarket.mapper.SmErpCgDdMapper;
|
||||
import com.bsd.pjcloud.supermarket.mapper.SmErpCgPlanMapper;
|
||||
import com.bsd.pjcloud.supermarket.service.SmErpCgDdService;
|
||||
import com.bsd.pjcloud.supermarket.vo.cgdd.SmErpCgDdVo;
|
||||
import com.bsd.pjcloud.supermarket.vo.cgdd.SmeErpCgDdItemVo;
|
||||
@@ -26,6 +27,7 @@ import com.bsd.pjcloud.supermarket.vo.cgplan.SmErpCgPlanItemVo;
|
||||
import com.bsd.pjcloud.supermarket.vo.cgplan.SmErpCgPlanVo;
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
@@ -45,7 +47,10 @@ public class SmErpCgDdServiceImpl extends ServiceImpl<SmErpCgDdMapper, SmErpCgDd
|
||||
|
||||
private final SmErpCgDdItemMapper smErpCgDDItemMapper;
|
||||
|
||||
private final SmErpCgPlanMapper smErpCgPlanMapper;
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public Object saveCGDD(ErpCgDDSaveDTO erpCgDDSaveDTO) {
|
||||
Long deptId = SecurityUtils.getUser().getDeptId();
|
||||
SmErpCgDdEntity smErpCgDdEntity = BeanUtils.toBean(erpCgDDSaveDTO, SmErpCgDdEntity.class);
|
||||
@@ -61,6 +66,13 @@ public class SmErpCgDdServiceImpl extends ServiceImpl<SmErpCgDdMapper, SmErpCgDd
|
||||
cgPlanItemEntity.setDeptId(deptId);
|
||||
}
|
||||
smErpCgDDItemMapper.insert(cgPlanItemEntities);
|
||||
//更新已关联的采购计划,标记为已使用
|
||||
LambdaQueryWrapper<SmErpCgPlanEntity> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(SmErpCgPlanEntity::getPlanCode, erpCgDDSaveDTO.getCode());
|
||||
SmErpCgPlanEntity smErpCgPlanEntity = new SmErpCgPlanEntity();
|
||||
smErpCgPlanEntity.setLinkStatus("1");
|
||||
smErpCgPlanMapper.update(smErpCgPlanEntity,queryWrapper);
|
||||
|
||||
return insert;
|
||||
}
|
||||
|
||||
|
||||
+52
-6
@@ -14,9 +14,11 @@ import com.bsd.pjcloud.supermarket.dto.cgplan.SmCgPlanEditItemDTO;
|
||||
import com.bsd.pjcloud.supermarket.dto.cgplan.SmCgPlanSaveItemDTO;
|
||||
import com.bsd.pjcloud.supermarket.entity.SmErpCgPlanEntity;
|
||||
import com.bsd.pjcloud.supermarket.entity.SmErpCgPlanItemEntity;
|
||||
import com.bsd.pjcloud.supermarket.entity.SmErpSpuEntity;
|
||||
import com.bsd.pjcloud.supermarket.entity.SmErpUnitEntity;
|
||||
import com.bsd.pjcloud.supermarket.mapper.SmErpCgPlanItemMapper;
|
||||
import com.bsd.pjcloud.supermarket.mapper.SmErpCgPlanMapper;
|
||||
import com.bsd.pjcloud.supermarket.mapper.SmErpSpuMapper;
|
||||
import com.bsd.pjcloud.supermarket.mapper.SmErpUnitMapper;
|
||||
import com.bsd.pjcloud.supermarket.service.SmErpCgPlanService;
|
||||
import com.bsd.pjcloud.supermarket.vo.cgdd.SmErpCgDdVo;
|
||||
@@ -26,10 +28,7 @@ import lombok.AllArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@@ -46,6 +45,8 @@ public class SmErpCgPlanServiceImpl extends ServiceImpl<SmErpCgPlanMapper, SmErp
|
||||
|
||||
private final SmErpUnitMapper smErpUnitMapper;
|
||||
|
||||
private final SmErpSpuMapper smErpSpuMapper;
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
@@ -93,7 +94,7 @@ public class SmErpCgPlanServiceImpl extends ServiceImpl<SmErpCgPlanMapper, SmErp
|
||||
}
|
||||
|
||||
@Override
|
||||
public Page<SmErpCgPlanVo> pageScope(Page page, LambdaQueryWrapper<SmErpCgPlanEntity> wrapper) {
|
||||
public Page<SmErpCgPlanVo> pageCgsqScope(Page page, LambdaQueryWrapper<SmErpCgPlanEntity> wrapper) {
|
||||
// 1. 查询主表分页数据
|
||||
Page<SmErpCgPlanEntity> pageData = baseMapper.selectPageByScope(page, wrapper, DataScope.of());
|
||||
List<SmErpCgPlanEntity> records = pageData.getRecords();
|
||||
@@ -122,6 +123,7 @@ public class SmErpCgPlanServiceImpl extends ServiceImpl<SmErpCgPlanMapper, SmErp
|
||||
|
||||
} else {
|
||||
itemMap = Collections.emptyMap();
|
||||
unitList = Collections.emptyList();
|
||||
}
|
||||
|
||||
|
||||
@@ -134,7 +136,15 @@ public class SmErpCgPlanServiceImpl extends ServiceImpl<SmErpCgPlanMapper, SmErp
|
||||
SmErpCgPlanItemVo.class
|
||||
);
|
||||
itemVos.forEach(item -> {
|
||||
|
||||
List<SmErpUnitEntity> unitEntities = unitList.stream().filter(unit -> unit.getSpuId().equals(item.getErpSpuId())).collect(Collectors.toList());
|
||||
unitEntities.stream().forEach(unit -> {
|
||||
if(unit.getId().equals(item.getUnitId())){
|
||||
item.setSpec(unit.getSpec());
|
||||
item.setUnit(unit.getUnit());
|
||||
item.setPackageNum(unit.getPackageNum());
|
||||
item.setPurchasePrice(unit.getPurchasePrice());
|
||||
}
|
||||
});
|
||||
});
|
||||
vo.setItems(itemVos);
|
||||
});
|
||||
@@ -145,4 +155,40 @@ public class SmErpCgPlanServiceImpl extends ServiceImpl<SmErpCgPlanMapper, SmErp
|
||||
return resultPage;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object pageScope(Page page, LambdaQueryWrapper<SmErpCgPlanEntity> wrapper) {
|
||||
Page pageData = baseMapper.selectPageByScope(page, wrapper, DataScope.of());
|
||||
List<SmErpCgPlanEntity> records = pageData.getRecords();
|
||||
|
||||
// 2. 提前收集所有主表ID(去重处理)
|
||||
Set<Long> planIds = records.stream()
|
||||
.map(SmErpCgPlanEntity::getId)
|
||||
.collect(Collectors.toSet());
|
||||
LambdaQueryWrapper<SmErpCgPlanItemEntity> smErpCgPlanItemEntityLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
smErpCgPlanItemEntityLambdaQueryWrapper.in(SmErpCgPlanItemEntity::getPlanId,planIds);
|
||||
List<SmErpCgPlanItemEntity> cgPlanItemEntities = smErpCgPlanItemMapper.selectList(smErpCgPlanItemEntityLambdaQueryWrapper);
|
||||
|
||||
Set<Long> erpSpuIds = cgPlanItemEntities.stream().map(SmErpCgPlanItemEntity::getErpSpuId).collect(Collectors.toSet());
|
||||
List<SmErpSpuEntity> smErpSpuEntities = smErpSpuMapper.selectList(new LambdaQueryWrapper<SmErpSpuEntity>().in(SmErpSpuEntity::getId, erpSpuIds));
|
||||
Map<Long,SmErpSpuEntity> spuMap = smErpSpuEntities.stream().collect(Collectors.toMap(SmErpSpuEntity::getId, spu -> spu));
|
||||
|
||||
|
||||
// 按采购计划分组商品名称
|
||||
Map<Long, List<String>> planGoodsMap = cgPlanItemEntities.stream()
|
||||
.collect(Collectors.groupingBy(
|
||||
SmErpCgPlanItemEntity::getPlanId,
|
||||
Collectors.mapping(
|
||||
item -> spuMap.getOrDefault(item.getErpSpuId(), new SmErpSpuEntity()).getProductName(),
|
||||
Collectors.toList()
|
||||
)
|
||||
));
|
||||
// 设置商品名称到主表实体
|
||||
records.forEach(plan -> {
|
||||
List<String> names = planGoodsMap.getOrDefault(plan.getId(), Collections.emptyList());
|
||||
plan.setProductName(String.join(", ", names));
|
||||
});
|
||||
|
||||
return pageData;
|
||||
}
|
||||
|
||||
}
|
||||
+11
-4
@@ -1,5 +1,6 @@
|
||||
package com.bsd.pjcloud.supermarket.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.bsd.pjcloud.common.core.util.BeanUtils;
|
||||
import com.bsd.pjcloud.common.security.util.SecurityUtils;
|
||||
@@ -7,10 +8,8 @@ import com.bsd.pjcloud.supermarket.dto.cgdd.SmCgDDSaveItemDTO;
|
||||
import com.bsd.pjcloud.supermarket.dto.inventoryrecords.InventoryRecordSaveDTO;
|
||||
import com.bsd.pjcloud.supermarket.dto.inventoryrecords.InventoryRecordSaveItemDTO;
|
||||
import com.bsd.pjcloud.supermarket.dto.inventoryrecords.UpdateStockDTO;
|
||||
import com.bsd.pjcloud.supermarket.entity.SmErpCgDdEntity;
|
||||
import com.bsd.pjcloud.supermarket.entity.SmErpCgDdItemEntity;
|
||||
import com.bsd.pjcloud.supermarket.entity.SmErpInventoryRecordsEntity;
|
||||
import com.bsd.pjcloud.supermarket.entity.SmErpInventoryRecordsItemEntity;
|
||||
import com.bsd.pjcloud.supermarket.entity.*;
|
||||
import com.bsd.pjcloud.supermarket.mapper.SmErpCgDdMapper;
|
||||
import com.bsd.pjcloud.supermarket.mapper.SmErpInventoryRecordsItemMapper;
|
||||
import com.bsd.pjcloud.supermarket.mapper.SmErpInventoryRecordsMapper;
|
||||
import com.bsd.pjcloud.supermarket.mapper.SmErpStockMapper;
|
||||
@@ -36,6 +35,8 @@ public class SmErpInventoryRecordsServiceImpl extends ServiceImpl<SmErpInventory
|
||||
private final SmErpInventoryRecordsItemMapper smErpInventoryRecordsItemMapper;
|
||||
|
||||
private final SmErpStockService smErpStockService;
|
||||
|
||||
private final SmErpCgDdMapper smErpCgDdMapper;
|
||||
@Override
|
||||
@Transactional
|
||||
public Object saveInventoryRecord(InventoryRecordSaveDTO inventoryRecordSaveDTO) {
|
||||
@@ -65,6 +66,12 @@ public class SmErpInventoryRecordsServiceImpl extends ServiceImpl<SmErpInventory
|
||||
//更新库存
|
||||
smErpStockService.updateStock(updateStockDTOS);
|
||||
|
||||
//更新已关联的采购,标记为已使用
|
||||
LambdaQueryWrapper<SmErpCgDdEntity> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(SmErpCgDdEntity::getCode, inventoryRecordSaveDTO.getInventoryCode());
|
||||
SmErpCgDdEntity updateSmErpCgDdEntity = new SmErpCgDdEntity();
|
||||
updateSmErpCgDdEntity.setLinkStatus("1");
|
||||
smErpCgDdMapper.update(updateSmErpCgDdEntity,queryWrapper);
|
||||
return insert;
|
||||
}
|
||||
|
||||
|
||||
+2
-1
@@ -6,7 +6,7 @@
|
||||
<resultMap id="smErpCgDdMap" type="com.bsd.pjcloud.supermarket.entity.SmErpCgDdEntity">
|
||||
<id property="id" column="id"/>
|
||||
<result property="code" column="code"/>
|
||||
<result property="dDate" column="d_date"/>
|
||||
<result property="ddDate" column="dd_date"/>
|
||||
<result property="handlerUserId" column="handler_user_id"/>
|
||||
<result property="checkStatus" column="check_status"/>
|
||||
<result property="checkUserId" column="check_user_id"/>
|
||||
@@ -26,5 +26,6 @@
|
||||
<result property="delFlag" column="del_flag"/>
|
||||
<result property="tenantId" column="tenant_id"/>
|
||||
<result property="linkCode" column="link_code"/>
|
||||
<result property="linkStatus" column="link_status"/>
|
||||
</resultMap>
|
||||
</mapper>
|
||||
+1
@@ -21,5 +21,6 @@
|
||||
<result property="updateTime" column="update_time"/>
|
||||
<result property="delFlag" column="del_flag"/>
|
||||
<result property="tenantId" column="tenant_id"/>
|
||||
<result property="linkStatus" column="link_status"/>
|
||||
</resultMap>
|
||||
</mapper>
|
||||
+9
-1
@@ -38,10 +38,18 @@
|
||||
|
||||
<select id="selectWarnStockWithSpu" resultMap="stockWarnResultMap">
|
||||
SELECT
|
||||
stock.*,
|
||||
stock.inventory_upper_limit,
|
||||
stock.inventory_lower_limit,
|
||||
stock.current_stock+stock+base_stock as stock,
|
||||
spu.product_code,
|
||||
spu.product_name,
|
||||
spu.barcode,
|
||||
spu.spec,
|
||||
spu.unit,
|
||||
spu.package_num,
|
||||
spu.pic_url,
|
||||
spu.category_id,
|
||||
spu.id,
|
||||
CASE
|
||||
WHEN (stock.base_stock + stock.current_stock) > stock.inventory_upper_limit THEN '2'
|
||||
ELSE '1'
|
||||
|
||||
Reference in new issue
Block a user