Pārlūkot izejas kodu

Merge branch 'master' into zengjun

# Conflicts:
#	app/Http/Controllers/TestController.php
ajun 5 gadi atpakaļ
vecāks
revīzija
ca27ac7b75

+ 2 - 2
app/Commodity.php

@@ -16,8 +16,8 @@ class Commodity extends Model
     public function setNameAttribute($value){
         $this->attributes['name']=str_replace(PHP_EOL,'',$value);
     }
-    public function getNameAttAttribute(){
-        return $this['name']=str_replace(array("\r\n","\n","\r"),'',$this['name']);
+    public function getNameAttribute($value){
+        return str_replace(array("\r\n","\n","\r","\""),' ',$value);
     }
     public function barcodes()
     {

+ 19 - 19
app/Console/Commands/WASSyncWMSOrderInformation.php

@@ -47,24 +47,24 @@ class WASSyncWMSOrderInformation extends Command
 
     public function WasSyncWmsOrder(){
 
-//        /** @var OrderTrackingService $orderTrackingService */
-//        $orderTrackingService  = app('orderTrackingService');
-//
-//        $dataInterval = intval(data_get(config('sync'), 'order_tracking_import.interval')) * 60 + 5;
-//
-//        $startDate = Carbon::now()->subSeconds($dataInterval);
-//
-//        $syncStartDate = data_get(config('sync'), 'order_tracking_import.start_at');
-//
-//        if($syncStartDate ?? false){
-//            $syncStartDate = Carbon::parse($syncStartDate);
-//            if ($startDate->lt($syncStartDate)) {
-//                $startDate = $syncStartDate;
-//            }
-//        }
-//
-////        $startDate = Carbon::parse('2020-05-06 13:16:51')->toDateTimeString();
-////        $orderTrackingService->根据设置从WMS同步追踪货主的订单($startDate);
-//        $orderTrackingService->trackingWmsOrder($startDate);
+        /** @var OrderTrackingService $orderTrackingService */
+        $orderTrackingService  = app('orderTrackingService');
+
+        $dataInterval = intval(data_get(config('sync'), 'order_tracking_import.interval')) * 60 + 5;
+
+        $startDate = Carbon::now()->subSeconds($dataInterval);
+
+        $syncStartDate = data_get(config('sync'), 'order_tracking_import.start_at');
+
+        if($syncStartDate ?? false){
+            $syncStartDate = Carbon::parse($syncStartDate);
+            if ($startDate->lt($syncStartDate)) {
+                $startDate = $syncStartDate;
+            }
+        }
+
+//        $startDate = Carbon::parse('2020-05-06 13:16:51')->toDateTimeString();
+//        $orderTrackingService->根据设置从WMS同步追踪货主的订单($startDate);
+        $orderTrackingService->trackingWmsOrder($startDate);
     }
 }

+ 8 - 1
app/Http/Controllers/InventoryController.php

@@ -111,7 +111,14 @@ class InventoryController extends Controller
             $sql=app('inventoryDailyLogService')->getSql($params);
 
         }else $sql=app('inventoryDailyLogService')->getSql(['id'=>$request->data]);
-        $post = Http::post(config('go.export.url'),['type'=>'inventoryDailyLog','sql'=>$sql]);
+
+        $row = ["货主","日期","商品名称","商品编码","商品条码","在库数量","长","宽","高","体积","总占用体积","总毛重"];
+        $column = ["owner_name", "created_at", "commodity_name", "commodity_sku", "commodity_barcode_code",
+            "amount", "commodity_length", "commodity_width", "commodity_height", "commodity_volumn", "volumn_occupied", "gross_weight"];
+        $rule = ["created_at"=> "mysqlDate"];
+        $post = Http::post(config('go.export.url'),['type'=>'unify','sql'=>$sql, 'connection'=>'mysql',
+            'row'=>json_encode($row,JSON_UNESCAPED_UNICODE), 'column'=>json_encode($column), 'rule'=>json_encode($rule)]);
+
         if ($post->status() == 500){
             throw new Exception($post->header("Msg"));
         }

+ 1 - 1
app/Http/Controllers/LaborReportController.php

@@ -90,7 +90,7 @@ class LaborReportController extends Controller
                 "exit_at" => $laborReport->exit_at,
                 "verify_at" => $laborReport->verify_at,
                 "group_user_id" => $laborReport->user ? $laborReport->user->name : null,
-                "relax_time" => $laborReport->relax_time,
+                "relax_time" => (string)$laborReport->relax_time,
                 "online_duration" => $laborReport->online_duration,
                 "working_duration" => $laborReport->working_duration,
                 "remark" => $laborReport->remark,

+ 26 - 12
app/Http/Controllers/TestController.php

@@ -419,10 +419,8 @@ class TestController extends Controller
     }
 
     public function test2(){
-        $wmsCommodities = app('oracleBasSkuService')->getPiece([],0,5000);
-        dd(count($wmsCommodities));
-        dd(json_encode($wmsCommodities,JSON_UNESCAPED_UNICODE));
-        //json_decode(json_encode($wmsCommodities,JSON_UNESCAPED_UNICODE),true);
+        $c = Commodity::find(325434);
+        dd($c['name']);
     }
 
     /*1*/
@@ -497,11 +495,13 @@ class TestController extends Controller
 
     public function test3()
     {
-////        dd(bcmul(0.3,0.3,5));
-//        $logistic = Logistic::query()->where('code','XJWL')->first();
-//        if(!$logistic){
-//            Logistic::query()->create(['code'=>'XJWL','name'=>'新杰物流']);
-//        }
+
+
+//        dd(bcmul(0.3,0.3,5));
+        $logistic = Logistic::query()->where('code','XJWL')->first();
+        if(!$logistic){
+            Logistic::query()->create(['code'=>'XJWL','name'=>'新杰物流']);
+        }
 
         /** @var DataHandlerService $dataHandlerService */
         $dataHandlerService = app(DataHandlerService::class);
@@ -520,14 +520,30 @@ class TestController extends Controller
         $orderHeaders = OracleDOCOrderHeader::query()
             ->with(['oracleDOCOrderDetails', 'actAllocationDetails','oracleBASCode'])
             ->where('addTime','>=',$startDate)
-            ->where('addTime','<=',$endData)
+//            ->where('addTime','<=',$endData)
             ->whereIn('customerID',data_get($owners,'*.code'))
             ->get();
+
 //        $orderHeaders = app(OracleDOCOrderHeaderService::class)->getWmsOrderOnStartDateCreate($startData);
         $orderService->createByWmsOrder($orderHeaders);
         $orderTrackingService->createByWmsOrderHeader($orderHeaders);
         $orderService->updateByWmsOrders($orderHeaders);
         $orderTrackingService->updateByWmsOrderHeaders($orderHeaders);
+
+    }
+    public function test4()
+    {
+
+        $owners = app(OrderTrackingOwnerService::class)->getTrackingOrderOwner();
+        $startDate = \Illuminate\Support\Carbon::parse('2020-09-25 00:00:00')->toDateTimeString();
+        $orderHeaders = OracleDOCOrderHeader::query()
+            ->with(['oracleDOCOrderDetails', 'actAllocationDetails','oracleBASCode'])
+            ->where('addTime','>=',$startDate)
+//            ->where('addTime','<=',$endData)
+            ->whereIn('customerID',data_get($owners,'*.code'))
+            ->get();
+        dd($orderHeaders);
+
     }
 
 //    public function syncWmsOrder(){
@@ -667,6 +683,4 @@ class TestController extends Controller
         }
     }
 
-
-
 }

+ 1 - 1
app/Services/InventoryDailyLogService.php

@@ -25,7 +25,7 @@ Class InventoryDailyLogService
     }
 
     public function getSql(array $params){
-        return $this->conditionQuery($params)->selectRaw("inventory_daily_logs.created_at,inventory_daily_logs.amount,inventory_daily_logs.volumn_occupied")
+        return $this->conditionQuery($params)->selectRaw("inventory_daily_logs.created_at,inventory_daily_logs.amount,inventory_daily_logs.volumn_occupied,inventory_daily_logs.gross_weight")
             ->leftJoin('owners','inventory_daily_logs.owner_id','owners.id')
                 ->selectRaw('owners.name owner_name')
             ->leftJoin('commodities','inventory_daily_logs.commodity_id','commodities.id')

+ 10 - 5
app/Services/OrderPackageService.php

@@ -265,8 +265,10 @@ class OrderPackageService
                     if($commodity['weight'] == 0  || !$commodity['bulk'] == 0 ){
                         array_push($noAttributeCommodity,$commodity);
                     }
-                    $updateArr['weight'] += bcmul($commodity['weight'], $packageCommodity['amount'],5);
-                    $updateArr['bulk'] += bcmul($commodity['bulk'], $packageCommodity['amount'],5);
+//                    $updateArr['weight'] += bcmul($commodity['weight'], $packageCommodity['amount'],5);
+//                    $updateArr['bulk'] += bcmul($commodity['bulk'], $packageCommodity['amount'],5);
+//                    $updateArr['weight'] += round($commodity['weight']*$packageCommodity['amount'],5);
+                    $updateArr['bulk'] += round($commodity['bulk']*$packageCommodity['amount'],5);
                     //$updateArr['weight'] +=(intval($commodity['weight'] ?? 0) )  * ( intval($packageCommodity['amount'] ?? 0) );
                     //$updateArr['bulk'] += (intval($commodity['bulk']  ?? 0)) * (intval($packageCommodity['amount'] ?? 0) );
                 }
@@ -448,9 +450,12 @@ class OrderPackageService
                 if(!$commodity['length'] || !$commodity['width'] || !$commodity['height']){
                     continue;
                 }
-                $bulk = bcmul($commodity['length'],$commodity['width'],5);
-                $bulk = bcmul($commodity['height'],$bulk,5);
-                $bulk = bcmul($bulk,$orderPackageCommodity->amount,5);
+//                $bulk = bcmul($commodity['length'],$commodity['width'],5);
+//                $bulk = bcmul($commodity['height'],$bulk,5);
+//                $bulk = bcmul($bulk,$orderPackageCommodity->amount,5);
+                $bulk = round($commodity['length']*$commodity['width'],5);
+                $bulk = round($commodity['height']*$bulk,5);
+                $bulk = round($bulk*$orderPackageCommodity->amount,5);
                 if($bulk>=1000000)bcdiv($bulk,1000000000,3);
                 $params['bulk'] +=  $bulk;
             }

+ 1 - 0
app/Services/OrderTrackingService.php

@@ -422,6 +422,7 @@ class OrderTrackingService
             ];
         }
 
+        dd($params);
         try {
             if (count($params) > 0) {
                 OrderTracking::query()->insert($params);

+ 3 - 4
public/t.php

@@ -1,6 +1,5 @@
 <?php
+$value=`·sdf
+aa·`;
+var_dump( preg_match('/[\r\n]/',$value));
 
-
-$arr1=[[11],[22]];
-$arr2=[22];
-var_dump(in_array($arr2,$arr1));

+ 7 - 3
resources/views/inventory/stockInventory/inventoryMission.blade.php

@@ -414,7 +414,7 @@
                             v-if="inventoryMission.checked==='是'||inventoryMission.checked==='跳过'||inventory.status==='复盘中'||listMode">@{{ inventoryMission.occupied_amount }}</span>
                     </td>
                     @can('库存管理-盘点')
-                        <td v-if="!listMode">
+                        <td>
 {{--                            <span class="btn  btn-sm btn-outline-danger" @click="删除盘点记录(inventoryMission.id,inventory.id,inventoryMission.commodity.name)">删除</span>--}}
                             <span class="btn  btn-sm btn-outline-secondary" v-if="inventoryMission.checked==='否'"
                                   @click="跳过盘点记录(inventoryMission.id,inventory.id,inventoryMission.commodity.name)">跳过</span>
@@ -1443,24 +1443,28 @@
                         allData = JSON.stringify(this.inventoryMissions);
                         let allData1 = JSON.parse(allData);
                         allData1.forEach(function (inventoryMission) {
-                            if (inventoryMission.stock_persons.length > 0) {
+                            if (inventoryMission.stock_persons&&inventoryMission.stock_persons.length > 0) {
                                 inventoryMission.stock_person = inventoryMission.stock_persons[inventoryMission.stock_persons.length - 1].name;
                             }
+                            delete inventoryMission.commodity_barcodes;
                             delete inventoryMission.stock_persons;
                             delete inventoryMission.stockInventoryPersons;
                             delete inventoryMission.commodity;
                         });
                         let data = JSON.stringify(allData1);
+                        console.log(data);
                         excelExport(false, data, url, this.sum, token);
                     } else {
                         this.checkData.forEach(function (inventoryMission) {
-                            if (inventoryMission.stock_persons.length > 0) {
+                            if (inventoryMission.stock_persons&&inventoryMission.stock_persons.length > 0) {
                                 inventoryMission.stock_person = inventoryMission.stock_persons[inventoryMission.stock_persons.length - 1].name;
                             }
+                            delete inventoryMission.commodity_barcodes;
                             delete inventoryMission.stock_persons;
                             delete inventoryMission.stockInventoryPersons;
                             delete inventoryMission.commodity;
                         });
+                        console.log(data);
                         let data = JSON.stringify(this.checkData);
                         excelExport(checkAllSign, data, url, this.sum, token);
                     }

+ 58 - 13
serves/excelExportGo/api/controller/controller.go

@@ -16,9 +16,7 @@ func Export(w http.ResponseWriter,req *http.Request)  {
 	e := decoder.Decode(&params)
 	if e != nil{
 		utilities.WriteLog("/api/controller/controller.go:18   参数解析失败!","ERROR")
-		return
 	}
-
 	file := excel.CreateFile(selectCreateFormat(params))
 	if errorMsg.GetMsg() != "" {
 		w.Header().Set("Msg",errorMsg.GetMsg())
@@ -26,7 +24,7 @@ func Export(w http.ResponseWriter,req *http.Request)  {
 		return
 	}
 	if _, err := file.WriteTo(w); err != nil {
-		utilities.WriteLog("/api/controller/controller.go:28   返回二进制流失败!","ERROR")
+		utilities.WriteLog("/api/controller/controller.go:27   返回二进制流失败!","ERROR")
 		return
 	}
 }
@@ -52,7 +50,7 @@ func selectModule(params map[string]string) (row []interface{}, list [][]interfa
 		var val base
 		err := json.Unmarshal([]byte(params["data"]),&val)
 		if err != nil {
-			utilities.WriteLog("/api/controller/controller.go:44  JSON解析失败!","ERROR")
+			utilities.WriteLog("/api/controller/controller.go:53  JSON解析失败!","ERROR")
 		}
 		row = val.ROW
 		list = val.LIST
@@ -99,7 +97,7 @@ func selectModule(params map[string]string) (row []interface{}, list [][]interfa
 		}else{
 			err := json.Unmarshal([]byte(params["data"]), &data)
 			if err != nil {
-				utilities.WriteLog("/api/controller/controller.go:91   库存数据json解析失败!","ERROR")
+				utilities.WriteLog("/api/controller/controller.go:100   库存数据json解析失败!","ERROR")
 			}
 		}
 		row, list = InventoryFormat(data, true)
@@ -109,13 +107,10 @@ func selectModule(params map[string]string) (row []interface{}, list [][]interfa
 		}else{
 			err := json.Unmarshal([]byte(params["data"]), &data)
 			if err != nil {
-				utilities.WriteLog("/api/controller/controller.go:101   全部库存数据json解析失败!","ERROR")
+				utilities.WriteLog("/api/controller/controller.go:110   全部库存数据json解析失败!","ERROR")
 			}
 		}
 		row, list = InventoryFormat(data, false)
-	case "inventoryDailyLog":
-		data = orm.GetMysqlData(params["sql"])
-		row, list = InventoryDailyLogFormat(data)
 	case "process":
 		data = orm.GetMysqlData(params["sql"])
 		row, list, mergeRow = ProcessFormat(data)
@@ -128,14 +123,14 @@ func selectModule(params map[string]string) (row []interface{}, list [][]interfa
 	case "laborReport":
 		err := json.Unmarshal([]byte(params["data"]), &data)
 		if err != nil {
-			utilities.WriteLog("/api/controller/controller.go:120   临时工报表数据json解析失败!","ERROR")
+			utilities.WriteLog("/api/controller/controller.go:126   临时工报表数据json解析失败!","ERROR")
 		}
 		row, list = LaborReportFormat(data)
 	case "orderIssue":
 		sqlList := make(map[string]string)
 		err := json.Unmarshal([]byte(params["sqlList"]), &sqlList)
 		if err != nil {
-			utilities.WriteLog("/api/controller/controller.go:129   订单问题件数据json解析失败!","ERROR")
+			utilities.WriteLog("/api/controller/controller.go:133   订单问题件数据json解析失败!","ERROR")
 		}
 		if sqlList["orderPackageSql"] == "" || sqlList["secondOrderPackageSql"] == "" || sqlList["orderIssueSql"] == "" || sqlList["rejectedBillItemSql"] == "" || sqlList["logSql"] == ""{
 			return
@@ -191,18 +186,68 @@ func selectModule(params map[string]string) (row []interface{}, list [][]interfa
 		request := paramList{}
 		err := json.Unmarshal([]byte(params["data"]), &request)
 		if err != nil {
-			utilities.WriteLog("/api/controller/controller.go:183   称重统计数据json解析失败!","ERROR")
+			utilities.WriteLog("/api/controller/controller.go:189   称重统计数据json解析失败!","ERROR")
 		}
 		row, list = PackageStatisticFormat(request.ROW, request.LIST)
 	case "inventoryAccountMission":
 		err := json.Unmarshal([]byte(params["data"]), &data)
 		if err != nil {
-			utilities.WriteLog("/api/controller/controller.go:189   库存盘点数据json解析失败!","ERROR")
+			utilities.WriteLog("/api/controller/controller.go:195   库存盘点数据json解析失败!","ERROR")
 		}
 		row, list = InventoryAccountMissionFormat(data)
 	case "inventoryCompare":
 		data = orm.GetMysqlData(params["sql"])
 		row, list = InventoryCompareFormat(data)
+	case "unify":
+		var column []string
+		var rule map[string]string
+		err := json.Unmarshal([]byte(params["row"]), &row)
+		if err != nil {
+			utilities.WriteLog("/api/controller/controller.go:206   参数传递错误!","ERROR")
+		}
+		err = json.Unmarshal([]byte(params["column"]), &column)
+		if err != nil {
+			utilities.WriteLog("/api/controller/controller.go:210   参数传递错误!","ERROR")
+		}
+		err = json.Unmarshal([]byte(params["rule"]), &rule)
+		if params["connection"] == "oracle" {
+			data = orm.GetOracleData(params["sql"])
+		}else{
+			data = orm.GetMysqlData(params["sql"])
+		}
+		list = unifyFormat(data, column, rule)
 	}
 	return row,list,mergeRow,mergeColumn
 }
+
+func unifyFormat(data []map[string]string, row []string, rule map[string]string) [][]interface{}{
+	rowLen := len(row)
+	column :=  make(map[string]int,rowLen)
+	for i,c := range row {
+		column[c] = i
+	}
+
+	list := make([][]interface{},len(data))
+	for k,v := range data{
+		line := make([]interface{},rowLen)
+		for key,value := range column {
+			if rule[key] != ""{
+				line[value] = dataFormat(rule[key], v[key])
+				continue
+			}
+			line[value] = v[key]
+		}
+		list[k] = line
+	}
+	return list
+}
+
+func dataFormat(ruleType string,value string)string{
+	switch ruleType {
+		case "oracleDate":
+			value = utilities.DateFormat(value, "2006-01-02T15:04:05+08:00")
+		case "mysqlDate":
+			value = utilities.DateFormat(value,"2006-01-02T15:04:05Z")
+	}
+	return value
+}

+ 0 - 39
serves/excelExportGo/api/controller/inventoryController.go

@@ -23,37 +23,6 @@ func InventoryFormat(data []map[string]string, requestType bool) ([]interface{},
 	return row, list
 }
 
-func InventoryDailyLogFormat(data []map[string]string) ([]interface{}, [][]interface{})  {
-	row := []interface{}{
-		"货主","日期","商品名称","商品编码","商品条码","在库数量","长","宽","高","体积","总占用体积",
-	}
-	column := map[string]int{
-		"owner_name" : 0,
-		"created_at" : 1,
-		"commodity_name" : 2,
-		"commodity_sku" : 3,
-		"commodity_barcode_code" : 4,
-		"amount" : 5,
-		"commodity_length" : 6,
-		"commodity_width" : 7,
-		"commodity_height" : 8,
-		"commodity_volumn" : 9,
-		"volumn_occupied" : 10,
-	}
-	list := make([][]interface{},len(data))
-	for k,v := range data{
-		line := make([]interface{},len(row))
-		for key,value := range column {
-			if key == "created_at" {
-				line[value] = utilities.DateFormat(v[key],"2006-01-02T15:04:05Z")
-				continue
-			}
-			line[value] = v[key]
-		}
-		list[k] = line
-	}
-	return row, list
-}
 func InventoryAccountMissionFormat(data []map[string]string) ([]interface{}, [][]interface{})  {
 	row := []interface{}{
 		"库位","产品名","商品条码","商品编码","生产日期","失效日期","批号","盘点人","ERP属性仓","质量状态","库存数量",
@@ -83,14 +52,6 @@ func InventoryAccountMissionFormat(data []map[string]string) ([]interface{}, [][
 	for k,v := range data{
 		line := make([]interface{},len(row))
 		for key,value := range column {
-			if key == "produced_at"{
-				line[value] = utilities.DateFormat(v[key],"2006-01-02T15:04:05Z")
-				continue
-			}
-			if key == "valid_at"{
-				line[value] = utilities.DateFormat(v[key],"2006-01-02T15:04:05Z")
-				continue
-			}
 			line[value] = v[key]
 		}
 		list[k] = line