失业倒计时,做计算机有多难!
下面内容过于专业,非计算机专业慎入。 一年前,车间上了一套信息化系统。每一个成品都会有一个二维码,按照二维码扫出来的重量信息卖货。 但成品是含有水分的,导致重量不准确,无法按照扫出来的重量去卖。 我们想着等水分控完之后,移库的时候,进行二次称重。 二次称重是用PDA手机操作的,本来很简单的一件事,修改下扫码软件的逻辑就好了。但是集团信息中心以需要改动的流程工作量巨大,拒绝了。 信息中心设计的流程是以不含水分的前提下进行的。 这下好了,如果这个完不成,厂子几百万的投入就白搭了。我这边也因为没什么项目成绩,年终奖没有,工作也保不住了。 项目完不成,工作都快没了。靠谁都没用,只能自己想办法。 我躺在椅子上,手指不断地扣着手掌下的一本美国新数学丛书,祈祷上帝能给一点灵感。 终于,我还是拨通了老大哥的电话,咨询下有没有什么解决方案。 大哥给出了一个方法,给龙门吊上一个远程传数据的吊泵,操作员用手机pda移库的时候,把这件产品的重量改成吊泵称出来的重量。 扫码软件无法修改,那只能用触发器修改。 然后我兴高采烈的去做触发器,以为找到了救命良方。之后的经历,简直比TM小说还玄幻。 我需要判断a操作员移库,然后改成品重量。 操作员信息字段在扫描主表里。 这里有三个表,扫描主表,扫描子表,产品表。 我想着在产品表上做触发器。产品表移库被修改后,通过产品ID找到扫描子表,再通过扫描子表refid找到扫描主表,如果操作员是a,就修改重量。 我做了三天,发现总是取不到最新的扫描信息。一问信息中心,才知道,只有成品表修改成功的时候,数据才回写到扫描主表和扫描子表中。 我想的生成顺序是,扫描子表,扫描主表,产品表。信息中心给的是产品表,扫描子表,扫描主表。 那就只能在扫码主表上做触发器。如果insert数据发现是a操作员,那么关联扫描子表,再修改产品表重量。 又测了三天,总是取不到扫描子表的信息。后来把时间精确到十万分之一秒,才发现正确的生成顺序是产品表,扫描主表,扫描子表。 因为扫描主表是先生成的,这时候通过扫描主表去找扫描子表,扫描子表还没生成呢,肯定找不到数据。 我和信息中心沟通,问能不能把PDA软件程序让扫描子表先生成,主表后生成。 但是,开发者两年前已经离职了。 没办法,又只能在扫码子表上写触发器。这次取得数据了,感觉终于要看到曙光了。 可惜造化弄人,这里面有一个致命的错误。懂数据库的人应该已经看出来了,上面的逻辑还是有问题。 取得数据后,发现怎么也修改不了重量,update总是报错。 我想了想,a操作员移库的时候在修改产品表,这个修改过程在手机PDA程序里被写成了一个事务,也就是说,产品表,扫描主表,扫描子表是一个事务。产品表已经在被a操作员修改了,a操作员占用的时候,我不能对产品表有修改操作。我把修过产品表的触发器写到了扫描子表中,就相当于人家还没修改完呢,我又去修改了。 这不是死锁了嘛。又问了大哥,大哥说如果把手机PDA程序的事务去掉还可以。但开发员... 这么复杂的东西,领导肯定听不懂。领导一直在催,已经生气了。 失业倒计时中,没办法了。