库位分布看板(库位管理)

一:看板效果


二:客户需求

1、客户需求:XX是一家汽车零部件(胶管,硅胶管等)的生产厂家,因此对原料,半成品的有效期有严格的要求。
    多次调研得知厂长对看板需要展示的内容需求如下:
①、体现每个库位的现在放置何种料,库存多少,入库时间(精确到小时)
②、要有颜色标识:白色表示空库位;白色表示入库时间不满8小时,严格禁止领用;绿色表示正常可以领用;橙色表示即将达到有效期;红色表示必须经过经理的审批才能够领用。(通过CHECK或者扫描时的提示来实现这些限制)

 

三:系统实现

1、提前在系统中维护好库位信息,并打印出条码:

我们是通过制作自定以业务“库位登记”然后EXCLE整理好库位通过EDI导入最后打印标签。(这里需自行制作自定义单据【库位登记】,EDI【库位信息导入】,打印样式【库位打印】


2.   入库通过扫描入库:

半成品管胚入库通过扫描管制卡号,扫描库位号进行入库,同时将管制卡号当成批次号。

①、系统局限:我们需要取BCIbt表(批次余额表)中的InDate字段作为入库时间,但是客户要求精确到小时,然而由于我们系统这个时间只会写进日期型不会写进去日期时间型,通过扫描直接取GetDate()写进InDate也不行,最后通过CHECK来实现。

3.   看板制作

需要考虑两种空库位的情况:

①、从系统使用库位开始,一直没有用过的库位

②、正常入库,领料导致的空库位

考虑到以上两个问题就可以写查询,在系统中制作看板了,详细制作步骤不再说明。

-------------分------------------------割-----------------------线-------------

【查询语句】

</pre><pre name="code" class="sql">
SELECT S.*
FROM ( --库位存在物料--

      SELECT DISTINCT (LEFT(TM.LcnID,3) + '货架  ' + SUBSTRING(TM.LcnID,5,1) + '层  ' + SUBSTRING(TM.LcnID,7,2)+' 库位') AS Tag,TM.LcnID, TM.ItmID,(SUM(TM.InQty)-sUM(TM.OutQty))onHand,
                                                                                                                                                                            Cast(DATEDIFF(HH,TM.InDate,GETDATE()) AS int)Tag5,(Cast(DATEDIFF(HH,TM.InDate,GETDATE())/24 AS Nvarchar(10))+' 天'+ Cast((DATEDIFF(HH,TM.InDate,GETDATE())-(DATEDIFF(HH,TM.InDate,GETDATE())/24)*24)AS Nvarchar(10)) +' 小时') RKXH
      FROM BCIbt TM
      WHERE TM.WhsID='6'
        AND LEFT(TM.LcnID,3) IN ('006',
                                 '007',
                                 '008',
                                 '009',
                                 '010')
      GROUP BY TM.LcnID,
               TM.ItmID,
               TM.InDate HAVING (SUM(TM.InQty)-sUM(TM.OutQty))>0
      UNION ALL --入库,领料导致的空库位--

      SELECT DISTINCT LEFT(TM.LcnID,3) + '货架  ' + SUBSTRING(TM.LcnID,5,1) + '层  ' + SUBSTRING(TM.LcnID,7,2)+' 库位') AS Tag,
     TM.LcnID,
     NULLItmID,
     NULL AS onHand ,
     -1 AS Tag5,
     NULL RKXH
FROM BCIbt TM
WHERE TM.WhsID='6'
  AND LEFT(TM.LcnID,3) IN ('006',
                           '007',
                           '008',
                           '009',
                           '010')
GROUP BY TM.LcnID ,
         TM.InDate HAVING (SUM(TM.InQty)-sUM(TM.OutQty))=0
UNION ALL --期初空库位--

SELECT DISTINCT (LEFT(TD.LcnID,3) + '货架  ' + SUBSTRING(TD.LcnID,5,1) + '层  ' + SUBSTRING(TD.LcnID,7,2)+' 库位')AS Tag,
                TD.LcnID,
                NULLItmID,
                NULL AS onHand ,
                -1 AS Tag5,
                NULL RKXH
FROM ZZKEHA TD
LEFT JOIN BCIbt TM ON TD.LcnID=TM.LcnID
WHERE LEFT(TD.LcnID,3) IN ('006',
                           '007',
                           '008',
                           '009',
                           '010')
  AND TM.BatchNum IS NULL ) S
ORDER BY S.LcnID


  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
在C++中,可以使用std::thread来创建多线程,使用std::async来异步执行任务。因此可以利用这两个工具来实现多线程套多线程的功能。 具体来说,可以在一个线程中创建多个std::thread对象,每个std::thread对象都可以执行一个任务。每个任务本身也可以是一个多线程的程序,这样就完成了多线程套多线程的功能。 例如,可以使用如下代码来创建多线程: ``` #include <iostream> #include <thread> #include <future> #include <vector> void task(int tid) { std::cout << "Thread " << tid << " started." << std::endl; // 这里可以编写多线程程序的代码 } int main() { std::vector<std::thread> threads; for (int i = 0; i < 10; i++) { std::thread t(task, i); threads.push_back(std::move(t)); } for (auto& t : threads) { t.join(); } return 0; } ``` 上述代码中创建了10个线程,每个线程执行一个任务。每个任务都是一个函数,可以在其中编写多线程程序的代码。 同时,也可以使用std::async来异步执行任务,示例代码如下: ``` #include <iostream> #include <future> #include <vector> void task(int tid) { std::cout << "Thread " << tid << " started." << std::endl; // 这里可以编写多线程程序的代码 } int main() { std::vector<std::future<void>> futures; for (int i = 0; i < 10; i++) { std::future<void> f = std::async(std::launch::async, task, i); futures.push_back(std::move(f)); } for (auto& f : futures) { f.get(); } return 0; } ``` 上述代码中使用了std::async来异步执行任务,返回的std::future对象可以用来获取任务执行的结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值