解决关于仓库管理系统借入、归还的数量相关问题

来源:互联网 发布:软件项目介绍ppt模板 编辑:程序博客网 时间:2024/05/16 06:08

项目需求:原有功能不支持将借出物品分批次归还,只允许要么借出,要么全部归还。此博文记录问题解决过程。
因为是二次开发,所以我的思路暂时是依据原有代码进行修改。涉及字段OsrCount领用数,IsrCount归还数

//物品归还入库    @Rights(id=6058)    public String addBackStock(){                Employ employ = employService.getJobById(inStockRunning.getEmployByGmEmpId().getEmpId());        Article article = articleService.find(inStockRunning.getArticle().getArtId());        //判断库存是否有记录        Stock sto = stockService.getStockByArtIdAndWarId(inStockRunning.getArticle().getArtId(),inStockRunning.getWarehouse().getWarId());        if(sto.getSId()!=null){            //判断归还的物品是损坏的物品            //如果损坏:领用数-归还数   其它的不变            if(inStockRunning.getArtState()==0){                Integer sum2=sto.getSLyNum()-inStockRunning.getIsrCount();                sto.setSLyNum(sum2);                sto.setDestoryNum(inStockRunning.getIsrCount());            }else{                Integer sum1=sto.getSKcNum()+inStockRunning.getIsrCount();                sto.setSKcNum(sum1);                Integer sum2=sto.getSLyNum()-inStockRunning.getIsrCount();                sto.setSLyNum(sum2);            }            stockService.update(sto);            //创建入库对象并赋值            InStockRunning ir = new InStockRunning();                        ir.setArticle(inStockRunning.getArticle());            ir.setEmployByGmEmpId(inStockRunning.getEmployByGmEmpId());            ir.setEmployByLrEmpId(inStockRunning.getEmployByLrEmpId());            ir.setIsrCgnum(inStockRunning.getIsrCgnum());            ir.setArtState(inStockRunning.getArtState());            ir.setIsrComment(inStockRunning.getIsrComment());            ir.setIsrCount(inStockRunning.getIsrCount());            ir.setIsrIndate(inStockRunning.getIsrIndate());            ir.setIsrReimMd(inStockRunning.getIsrReimMd());            if(inStockRunning.getIsrReimSum()==null&& !"".equals(inStockRunning.getIsrReimSum())){                ir.setIsrReimSum(inStockRunning.getIsrReimSum());            }else{                ir.setIsrReimSum(0.0);            }            ir.setIsrState(2);            if(inStockRunning.getIsrSum()==null&& !"".equals(inStockRunning.getIsrSum())){                ir.setIsrSum(inStockRunning.getIsrSum());            }else{                ir.setIsrSum(0.0);            }            ir.setIsrSysTime(new Date());            ir.setIsrUnitPice(inStockRunning.getIsrUnitPice());            ir.setOrganization(inStockRunning.getOrganization());            ir.setWarehouse(inStockRunning.getWarehouse());                        inStockRunningService.save(ir);                        //修改出库记录,状态设为2            OutStockRunning or = outStockRunningService.find(outStockRunning.getOsrId());            or.setOsrState(2);                        outStockRunningService.update(or);                                    if(employ.getEmpEmail()==null){                WebUtil.getRequest().setAttribute("message", "物品已入库,领用人邮箱为空,发送邮件失败,请及时通知该同事到个人信息中设置有效邮箱!");                WebUtil.getRequest().setAttribute(ReturnUrl.URL_KEY, SiteUrl.readUrl("stockaction.outSetStock.list"));                return "message";            }else{                //发送邮件                SiteMail setmail = new SiteMail();                setmail.sendBackStock(employ,ir,article);                WebUtil.getRequest().setAttribute("message", "物品入库成功!");                WebUtil.getRequest().setAttribute(ReturnUrl.URL_KEY, SiteUrl.readUrl("stockaction.outSetStock.list"));                return "message";            }                    }else{            WebUtil.getRequest().setAttribute("message", "归还失败!");            WebUtil.getRequest().setAttribute(ReturnUrl.URL_KEY, SiteUrl.readUrl("stockaction.outSetStock.list"));            return "message";        }    }

OK,虽然找到了相关源码,个人认为现在应该把现有代码的流程整理通顺。


0 0
原创粉丝点击