服装行业智能配货实现

来源:互联网 发布:淘宝联盟优惠券转换器 编辑:程序博客网 时间:2024/06/09 16:50
前段时间,由于公司业务需要,开发了智能配货系统。

业务需求:服装行业的商品是按款号、颜色、尺码来确定一个SKU,同一款色,有好几个尺码,每次配货时,都需要一个一个尺码去根据库存数量来分配配货数量,工作量非常大。

经过与业务部门的详细沟通,确定解决方案:
1、只需填写款色的总数量,由程序自动分配尺码
2、概念:
    1)统计该款色的所有现有库存尺码总数(总库存数intQtyStockSum)
    2) 配货时输入的数量(配货数intQtyOrder)
    3)该款色的尺码库存数(库存码数intQtyStock)
    4)分配完后,所有尺码的剩余库存总数(最小剩余数intQtySurplus)
    5)库存码数 / 总库存数 (库存码数比重flotRate)
    6)配货数与第一次循环库存码数分配结果的差额(分配差额intQtyDiff)
3、自动分配的规则:
    1) 配货数intQtyOrder > 总库存数intQtyStockSum,按库存码数全部分配
    2) 配货数intQtyOrder >总库存数intQtySotckSum - 最小剩余数intQTySurplus,按库存码数全部分配
    3)循环库存码数,根据库存码数比重分配:
             比如库存有S、M、L三个码,数量分别为10、15、20,配货数为20,则分配结果为:
             S码:20 × 10 / (10+15+20) 结果向下取整 = 4
             M码:20 × 15 /  (10+15+20) 结果向下取整 = 6
             L码:20 × 20 / (10+15+20) 结果向下取整 = 8
             分配总数=4+6+8=18,和配货数20相差2(分配差额intQtyDiff),需要进一步做调整,调整规则:根据库存码数比重来进一步分配intQtyDiff,循环库存码数比重flotRate,如果intQtyDiff=0,则退出循环,否则按 flotRate × intQtyDiff (计算时采用四舍五入)分配,分配完后intQtyDiff减去已分配数(验证分配完后的intQtyDiff如果<0,则要将本次调整的数量减去intQtyDiff的绝对值)。调整完后结果如下:
            分配数:S码:4,M码:7, L码:9
            剩余库存: S码:6,M码:8, L码:11
原创粉丝点击