wugg 3 years ago
parent
commit
9748afd1eb
6 changed files with 114 additions and 17 deletions
  1. 3 0
      .gitignore
  2. 18 0
      LICENSE.txt
  3. 86 16
      app/admin/controller/Check.php
  4. 4 0
      app/admin/route/app.php
  5. 1 0
      app/common.php
  6. 2 1
      composer.json

+ 3 - 0
.gitignore

@@ -4,6 +4,9 @@
 *.log
 /config
 composer.lock
+composer.json
+LICENSE.txt
 /public/nginx.htaccess
+/public/storage/
 /config/
 

+ 18 - 0
LICENSE.txt

@@ -30,3 +30,21 @@ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
 ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 POSSIBILITY OF SUCH DAMAGE.
+GY202104290049
+GY202105080818
+GY202105080581
+GY202105070540
+GY202105260101
+GY202107290104
+GY202105070306
+GY202105071529
+GY202105071682
+GY202109300075
+GY202105070510
+GY202105081005
+GY202107090047
+GY202105071525
+GY202105081695
+GY202107230083
+GY202105081442
+GY202106240105

+ 86 - 16
app/admin/controller/Check.php

@@ -53,12 +53,9 @@ public function flist(){
         if(empty($supplier)){
             return error_show(1004,"未找到供应商信息");
         }
-//                $typecode = Db::name("good_stock")->alias("a")->join("warehouse_info b","a.wsm_code=b.wsm_code","left")->where(["a.is_del"=>0,
-//                    "b.is_del"=>0,"b.supplierNo"=>$supplierNo])->column("a.good_type_code");
-//                if(empty($typecode)){
-//                    return error_show(1004,"未找到供应商有关的商品信息");
-//                }
-        $condtion["a.gys_code"] = $supplierNo;
+                $wsmcode = Db::name("warehouse_info")->where([
+                    "is_del"=>0,"supplierNo"=>$supplierNo])->column("wsm_code");
+        $condtion["c.wsm_code"] = $wsmcode;
     }
 
     $count = Db::name("good_type")->alias("b")
@@ -68,13 +65,11 @@ public function flist(){
     $page>=ceil($count/$size) ? $page=ceil($count/$size) :"";
     $list = Db::name("good_type")->alias("b")->join("good a","a.good_code = b.good_code","left")
         ->join("good_stock c","c.good_type_code=b.type_code","left")
-        ->where($condtion)->field("b.id,a.good_code,a.good_name,a.good_desc,a.brand,a.original_price,a.cg_saler,a.good_type,a.market_fee,a.gys_code,a.unit,
-                a.sort_f,a.sort_s,a.sort_t,b.color,b.material,b.specs,b.is_main,b.type_code,b.attribute,b.status as bstatus,a.addtime,c.usable_stock,a.updatetime")
+        ->where($condtion)->field("a.good_code,a.good_name,a.good_desc,a.brand,a.original_price,a.cg_saler,a.good_type,a.market_fee,a.gys_code,a.unit,
+                a.sort_f,a.sort_s,a.sort_t,b.color,b.material,b.specs,b.is_main,b.type_code,b.attribute,b.status as bstatus,a.addtime,c.usable_stock,c.warn_stock,a.updatetime")
         ->page($page,$size)->select();
     $data=[];
     foreach ($list as $key=>$value){
-        //$stock = Db::name("good_stock")->where(["good_type_code"=>$value['type_code'],"is_del"=>0])->sum("usable_stock");
-        //$value['usable_stock']=$stock;
         $supplier = Db::name("supplier")->where(["code"=>$value['gys_code']])->find();
         $value['supplier_name'] =isset($supplier['name']) ?$supplier['name'] :"";
         $data[]=$value;
@@ -275,6 +270,7 @@ public function edit()
         return error_show(1002, "盘点仓库不能为空");
     }
     $type = isset($this->post['type']) && $this->post['type'] !== "" ? trim($this->post['type']) : "";
+    $remark = isset($this->post['remark']) && $this->post['remark'] !== "" ? trim($this->post['remark']) : "";
     if ($type == "") {
         return error_show(1002, "盘点类型不能为空");
     }
@@ -309,6 +305,7 @@ public function edit()
             "type" => $type,
             "apply_id" => $rm,
             "apply_name" => $ri,
+            "remark" => $remark,
             "updatetime" => date("Y-m-d H:i:s")
         ];
         $up = Db::name('good_check')->where(['id'=>$id,'is_del' => 0])->save($var);
@@ -373,6 +370,7 @@ public function dell(){
         }
 
         $stauts = isset($this->post['status']) && $this->post['status'] !=="" ? intval($this->post['status']) :"";
+        $remark = isset($this->post['remark']) && $this->post['remark'] !=="" ? trim($this->post['remark']) :"";
         if($stauts===""){
             return error_show(1002,"状态不能为空");
         }
@@ -381,8 +379,14 @@ public function dell(){
             return error_show(1002,"盘点信息未找到");
         }
         $st['status']=$stauts;
+        $st['remark']=$remark;
         $st['updatetime']= date('Y-m-d H:i:s');
         $sv = Db::name('good_check')->save($st);
+        if($stauts==0){
+            $sv = Db::name('check_item')->where(['check_code'=>$st['check_code']])->save(['is_del'=>1,"updatetime"=>date
+            ("Y-m-d H:i:s")
+            ]);
+        }
         if($sv){
             return error_show(0,"状态更新成功");
         }else{
@@ -394,20 +398,86 @@ public function dell(){
     public function exportGood(){
         $id = isset($this->post['id']) && $this->post['id'] !=="" ? intval($this->post['id']) :"";
         if($id==""){
-            return error_show(1002,"盘点单号不能为空");
+            return error_show(1002,"参数id不能为空");
         }
         $fo = Db::name('good_check')->alias('a')->join('warehouse_info b',"b.wsm_code=a.wsm_code","left")
-            ->join('supplier c',"c.code=b.supplierNo","left")->field("c.name,c.code,a.*")
+            ->join('supplier c',"c.code=b.supplierNo","left")->field("c.name,c.code,b.name,a.*")
             ->where(['a.id'=>$id,'a.is_del'=>0])->find();
         if(empty($fo)){
             return error_show(1003,"未找到盘点信息");
         }
-        $fi = Db::name('check_item')->where(['check_code'=>$fo['check_code'],'is_del'=>0])->select();
-        $fo['item']=$fi;
+        $list = Db::name("good_type")->alias("b")->join("good a","a.good_code = b.good_code","left")
+            ->join("good_stock c","c.good_type_code=b.type_code","left")
+            ->where(['c.wsm_code'=>$fo['wsm_code'],"a.is_del"=>0,"b.is_del"=>0,"c.is_del"=>0])->field("a.good_code '商品编码',b.type_code '商品属性编码',
+            a.good_name '商品名称',a.good_desc '商品描述',a.brand '品牌',a.unit '单位',a.gys_code '供应商编码','' as '供应商名称',a.sort_f '一级分类',a.sort_s '二级分类',a.sort_t '三级分类',
+            a.addtime '新建时间',c.wsm_code '仓库编码','' as '仓库名称',c.usable_stock '可用库存','' as '盘点库存'")
+            ->select();
+        $data=[];
+        foreach ($list as $key=>$value){
+            $wsm = Db::name("warehouse_info")->where(['wsm_code'=>$value['仓库编码']])->find();
+            $supplier = Db::name("supplier")->where(["code"=>$value['供应商编码']])->find();
+            $value['供应商名称'] =isset($supplier['name']) ?$supplier['name'] :"";
+            $value['仓库名称'] =isset($wsm['name']) ?$wsm['name'] :"";
+            $data[]=$value;
+        }
+        if(empty($data)){
+            $data[]=["暂无商品信息"=>''];
+        }
+        $headerArr= array_keys($data[0]);
+        excelSave('盘点商品',$headerArr,$data);
+       // return app_show(0,"获取成功",$data);
+    }
+
+    public function importGood(){
+        $id = isset($this->post['id']) && $this->post['id'] !=="" ? intval($this->post['id']) :"";
+        if($id==""){
+            return error_show(1002,"参数id不能为空");
+        }
+        $fo = Db::name('good_check')->alias('a')->join('warehouse_info b',"b.wsm_code=a.wsm_code","left")
+            ->join('supplier c',"c.code=b.supplierNo","left")->field("c.name,c.code,b.name,a.*")
+            ->where(['a.id'=>$id,'a.is_del'=>0])->find();
         if(empty($fo)){
-            return error_show(1002,"未找到盘点编号");
+            return error_show(1003,"未找到盘点信息");
+        }
+        if($fo['status']>=1){
+            return error_show(1003,"盘点已提交审核,不可提交盘点数据");
+        }
+       $data = isset($this->post['data']) && $this->post['data'] !=="" ?$this->post['data'] :"";
+        if($data=="" || empty($data)){
+            return error_show(1003,"盘点数据不能为空");
+        }
+        $insert=[];
+        foreach ($data as $value){
+            if($value[1]==""){
+                return error_show(1003,"商品属性code 不能为空");
+            }
+            if($value[15]===""){
+                continue;
+            }
+            $stock = Db::name("good_stock")->where(["good_type_code"=>$value[1],"wsm_code"=>$fo['wsm_code'],
+                "is_del"=>0])->find();
+            $stock_num = isset($stock) ? $stock['usable_stock']:0;
+            $insert[]=[
+                "good_type_code"=>$value[1],
+                "good_name"=>$value[2],
+                "origin_price"=>0,
+                "origin_num"=>isset($stock) ? $stock['usable_stock']:0,
+                "check_num"=>$value[15],
+                "is_profit"=>intval($value[15])>=$stock_num ?1:0,
+                "diff_num"=>intval($value[15])>=$stock_num ?intval($value[15])-$stock_num:$stock_num-intval($value[15]),
+                'addtime'=>date("Y-m-d H:i:s"),
+                'updatetime'=>date("Y-m-d H:i:s"),
+                "check_code"=>$fo['check_code']
+            ];
+        }
+        if(empty($insert)){
+            return error_show(1003,"盘点数据不可用");
+        }
+        $inst = Db::name("check_item")->insertAll($insert);
+        if($inst){
+            return app_show(0,"盘点数据导入成功");
         }else{
-            return app_show(0,"获取成功",$fo);
+            return app_show(0,"盘点数据导入失败");
         }
     }
 }

+ 4 - 0
app/admin/route/app.php

@@ -99,6 +99,8 @@ Route::rule('checkinfo','admin/Check/info');
 Route::rule('checkedit','admin/Check/edit');
 Route::rule('checkedell','admin/Check/dell');
 Route::rule('checkestatus','admin/Check/statu');
+Route::rule('checkexport','admin/Check/exportGood');
+Route::rule('checkimport','admin/Check/importGood');
 
 //Route::rule('veversioncreatersionlist','admin/Version/list');
 //Route::rule('','admin/Version/create');
@@ -158,3 +160,5 @@ Route::rule("feeddel","admin/Resign/delFeed");
 Route::rule("feedchange","admin/Resign/changeFeed");
 Route::rule("feedinfo","admin/Resign/infoFeed");
 
+
+

+ 1 - 0
app/common.php

@@ -3,6 +3,7 @@
 
 use think\facade\Config;
 use think\facade\Db;
+use think\facade\Filesystem;
 // 应用公共文件
 function app_show($code=0,$message="",$data=[]){
     $result = ['code'=>$code,"message"=>$message,"data"=>$data];

+ 2 - 1
composer.json

@@ -23,7 +23,8 @@
         "php": ">=7.1.0",
         "topthink/framework": "^6.0.0",
         "topthink/think-orm": "^2.0",
-        "topthink/think-multi-app": "^1.0"
+        "topthink/think-multi-app": "^1.0",
+        "phpoffice/phpexcel": "^1.8"
     },
     "require-dev": {
         "symfony/var-dumper": "^4.2",