| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284 | 
							- <?php
 
- namespace app\api\controller\v1;
 
- use app\api\controller\Base;
 
- use app\hander\HelpHander;
 
- use think\Db;
 
- use think\Exception;
 
- class MateGoods extends Base
 
- {
 
-     public function lists(){
 
-         $page = input('page',1);
 
-         $size = input('size',10);
 
-         $title = input('title','','trim');
 
-         if($title !=''){
 
-             $map[] = ['title','like','%'.$title.'%'];
 
-         }
 
-         $map[] = ['org_id','=',$this->orgId];
 
-         $map[] = ['del','=',0];
 
-         $list = Db::name('mate_goods')
 
-             ->field('id as goods_id,price,nums,type,title,unit,brand,spec,consume,create_time')
 
-             ->where($map)
 
-             ->page($page,$size)
 
-             ->order('id desc')
 
-             ->select();
 
-         foreach ($list as $k=>$v){
 
-             if($v['type'] == 1){
 
-                 $list[$k]['cate_name'] ='固定资产';
 
-             }elseif ($v['type'] == 2){
 
-                 $list[$k]['cate_name'] ='消耗品';
 
-             }else{
 
-                 $list[$k]['cate_name'] = '';
 
-             }
 
-         }
 
-       HelpHander::success($list);
 
-     }
 
-     //入库/出库记录
 
-     public function storageList(){
 
-         $type = input('type/d',0);
 
-         $length = input('size',10);   //每页条数
 
-         $page = input('page',1);      //第几页
 
-         $start = ($page - 1) * $length;     //分页开始位置
 
-         $map[] = ['org_id','=',$this->orgId];
 
-         $map[] = ['del','=',0];
 
-         $map[] = ['user_id','=',$this->userId];
 
-         if($type == 0){
 
-             $type = 1;
 
-         }else if($type == 1){
 
-             $type = 2;
 
-         }
 
-         $map[] = ['type','=',$type];
 
-         $lists = Db::name('mate_apply')
 
-             ->where($map)
 
-              ->field('id,org_id,user_id,remark,name,phone,create_time')
 
-             ->limit($start,$length)
 
-             ->order('id','desc')
 
-             ->select();
 
-         foreach ($lists as $k=>$v){
 
-             $lists[$k]['userName'] = Db::name('user')
 
-                 ->where('id',$v['user_id'])
 
-                 ->value('real_name');
 
-         }
 
-         HelpHander::success($lists);
 
-     }
 
-     public function storageDetail(){
 
-         $id = input('id/d',0);
 
-         $info = db('mate_apply')
 
-             ->where('id',$id)
 
-             ->where('del',0)
 
-             ->field('id,org_id,user_id,remark,name,phone,create_time,sign')
 
-             ->find();
 
-         if(!$info){
 
-             HelpHander::error('信息不存在');
 
-         }
 
-         $info['sign'] = $info['sign']?$info['sign']:'';
 
-         $info['userName'] = Db::name('user')
 
-             ->where('id',$info['user_id'])
 
-             ->value('real_name');
 
-         $info['goods'] = Db::name('mate_apply_goods')
 
-             ->alias('a')
 
-             ->join('mate_goods b','a.goods_id=b.id')
 
-             ->where('a.apply_id',$info['id'])
 
-             ->field('a.*,b.title,b.unit,b.brand,b.spec')
 
-             ->select();
 
-         HelpHander::success($info);
 
-     }
 
-     public function scanGoods(){
 
-         $code = input('code','');
 
-         if(empty($code)){
 
-             HelpHander::error('二维码为空');
 
-         }
 
-         $info = get_qrcode_arr($code);
 
-         if(!$info || $info['ucode'] != config('app.ucode') || $info['type'] != 'mate_goods'){
 
-             HelpHander::error('二维码不正确');
 
-         }
 
-         $goods = Db::name('mate_goods')
 
-             ->where('id',$info['id'])
 
-             ->field('img,news_status,total_price,consume,buy_time,update_time,del,often',true)
 
-             ->find();
 
-         HelpHander::success($goods);
 
-     }
 
-     public function addStorage(){
 
-         $name =input('name','');
 
-         $phone = input('phone','');
 
-         $remark = input('remark','');
 
-         $sign = input('sign','');
 
-         $options = input('options');
 
-         $type = input('type/d',2);
 
-         if(empty($name)){
 
-             HelpHander::error($type==2?'入库':'出库'.'人不能为空');
 
-         }
 
-         if(empty($phone)){
 
-             HelpHander::error('电话');
 
-         }
 
-         if(empty($options)){
 
-             HelpHander::error('物品信息不能为空');
 
-         }
 
-         $option = json_decode($options,true);
 
-         if(empty($option)){
 
-             HelpHander::error('物品信息不能为空');
 
-         }
 
-         Db::startTrans();
 
-         try{
 
-             foreach($option as $k=>$v){
 
-                 $g  = Db::name('mate_goods')
 
-                     ->where('id',$v['id'])
 
-                     ->find();
 
-                 if($type==2){
 
- //                    if(empty($v['price']) || $v['price'] <=0){
 
- //                        exception($g['title'].'价格不能为空');
 
- //                    }
 
-                 }else{
 
-                     $goods = db('mate_goods')
 
-                         ->where('id',$v['id'])
 
-                         ->find();
 
-                     if($goods['nums']<$v['nums']){
 
-                         exception($g['title'].'出库数量超过库存数量');
 
-                     }
 
-                 }
 
-                 if(empty($v['nums']) || $v['nums'] <=0){
 
-                     exception($g['title'].'数量不能为空');
 
-                 }
 
-             }
 
-             //$post['type']==2 入库单 else 调拨单
 
-             $apply = [
 
-                 'org_id'=>$this->orgId,
 
-                 'name'=>$name,
 
-                 'phone'=>$phone,
 
-                 'remark'=>$remark,
 
-                 'sign'=>$sign,
 
-                 'type'=>$type==2?1:2,
 
-                 'create_time'=>getTime(),
 
-                 'user_id'=>$this->userId,
 
-                 'sn'=>get_unique_id()
 
-             ];
 
-             $applyid = db('mate_apply')->insertGetId($apply);
 
-             if(!$applyid){
 
-                exception('添加入库单失败');
 
-             }
 
-             foreach($option as $k=>$v){
 
-                 $goods = db('mate_goods')
 
-                     ->where('id',$v['id'])
 
-                     ->find();
 
-                 $items =[
 
-                     'apply_id'=>$applyid,
 
-                     'goods_id'=>$v['id'],
 
-                     'nums'=>$v['nums'],
 
-                     //'price'=>$type==2?$v['price']:$goods['price'],
 
-                     'price'=>$type==1?$goods['price']:$goods['price'],
 
-                 ];
 
-                 $res = db('mate_apply_goods')
 
-                     ->insertGetId($items);
 
-                 if(!$res){
 
-                    exception($v['title'].'添加mate_apply_goods失败');
 
-                 }
 
-                 $old = $goods['nums']*$goods['price'];
 
-                 $new = $items['nums']*$items['price'];
 
-                 $nums = $goods['nums']+$items['nums'];
 
-                 $price = ($old+$new)/$nums;
 
-                 if($type==1){ //调拨单
 
-                     $u = [
 
-                         'nums'=>$goods['nums']-$items['nums'],
 
-                         'total_price'=>($goods['nums']-$items['nums'])*$goods['price'],
 
-                         'update_time'=>getTime(),
 
-                     ];
 
-                 }else{ //入库单
 
-                     $u =   [
 
-                         'nums'=>$nums,
 
-                         'price'=>$price,
 
-                         'total_price'=>$nums*$price,
 
-                         'update_time'=>getTime(),
 
-                     ];
 
-                 }
 
-                 $ret = db('mate_goods')
 
-                     ->where('id',$v['id'])->update($u);
 
-                 if(!$ret){
 
-                     exception($v['title'].'更新数量失败');
 
-                 }
 
-             }
 
-             Db::commit();
 
-             HelpHander::success([],'操作成功');
 
-        }catch (Exception $e) {
 
-             Db::rollback();
 
-             HelpHander::error($e->getmessage());
 
-         }
 
-    }
 
-     public function goodsDetail(){
 
-         $code = input('code','');
 
-         if(empty($code)){
 
-             HelpHander::error('二维码为空');
 
-         }
 
-         $info = get_qrcode_arr($code);
 
-         if(!$info || $info['ucode'] != config('app.ucode') || $info['type'] != 'mate_goods'){
 
-             HelpHander::error('二维码不正确');
 
-         }
 
-         $goods = Db::name('mate_goods')
 
-             ->where('id',$info['id'])
 
-             ->field('img,news_status,total_price,consume,buy_time,update_time,del,often',true)
 
-             ->find();
 
-         $rk = Db::name('mate_apply_goods')
 
-             ->alias('a')
 
-             ->join('mate_apply c','a.apply_id=c.id')
 
-             ->join('mate_goods b','a.goods_id=b.id')
 
-             ->where('c.type',1)
 
-             ->where('c.del',0)
 
-             ->where('c.org_id',$this->orgId)
 
-             ->where('b.id',$goods['id'])
 
-             ->field('a.*,b.title,b.unit,b.brand,b.spec')
 
-             ->select();
 
-         foreach ($rk as $k=>$v){
 
-             $dispatch =  Db::name('mate_apply')
 
-                 ->where('id',$v['apply_id'])
 
-                 ->find();
 
-             $rk[$k]['userName'] = Db::name('user')
 
-                 ->where('id',$dispatch['user_id'])
 
-                 ->value('real_name');
 
-             $rk[$k]['create_time'] = $dispatch['create_time'];
 
-             $rk[$k]['remark'] = $dispatch['remark'];
 
-             $rk[$k]['name'] = $dispatch['name'];
 
-             $rk[$k]['phone'] = $dispatch['phone'];
 
-         }
 
-         $goods['rk'] = $rk;
 
-         $ck = Db::name('mate_apply_goods')
 
-             ->alias('a')
 
-             ->join('mate_apply c','a.apply_id=c.id')
 
-             ->join('mate_goods b','a.goods_id=b.id')
 
-             ->where('c.type',2)
 
-             ->where('c.del',0)
 
-             ->where('c.org_id',$this->orgId)
 
-             ->where('b.id',$goods['id'])
 
-             ->field('a.*,b.title,b.unit,b.brand,b.spec')
 
-             ->select();
 
-         foreach ($ck as $k=>$v){
 
-             $dispatch =  Db::name('mate_apply')
 
-                 ->where('id',$v['apply_id'])
 
-                 ->find();
 
-             $ck[$k]['userName'] = Db::name('user')
 
-                 ->where('id',$dispatch['user_id'])
 
-                 ->value('real_name');
 
-             $ck[$k]['create_time'] = $dispatch['create_time'];
 
-             $ck[$k]['remark'] = $dispatch['remark'];
 
-             $ck[$k]['name'] = $dispatch['name'];
 
-             $ck[$k]['phone'] = $dispatch['phone'];
 
-         }
 
-         $goods['ck'] = $ck;
 
-         HelpHander::success($goods);
 
-     }
 
- }
 
 
  |