瀏覽代碼

二次加工管理-统计-增加时间字段

Zhouzhendong 5 年之前
父節點
當前提交
f8c9a3ddfa

+ 6 - 4
app/Http/Controllers/ProcessController.php

@@ -525,6 +525,7 @@ class ProcessController extends Controller
             'process_method_id'=>$request->input('process_method_id'),
             'unit_price'=>$request->input('unit_price'),
             'remark'=>$request->input('remark'),
+            'balance_remark'=>$request->input('balance_remark'),
             'amount'=>$request->input('amount'),
             'status'=>'待审核',
         ]);
@@ -715,12 +716,13 @@ class ProcessController extends Controller
             if (count($error)>0)$errors[$processContent['wms_code']]=$error;
         }
         if (count($errors)>0)return ['error'=>$errors];
-        $process=Process::find($id);
+        $process=Process::query()->find($id);
         if (!$request->is_hide){
             $process->owner_id=$request->input('owner_id');
             $process->process_method_id=$request->input('process_method_id');
             $process->unit_price=$request->input('unit_price');
             $process->remark=$request->input('remark');
+            $process->balance_remark=$request->input('balance_remark');
             $process->amount=$request->input('amount');
             if ($process->status=='已驳回')$process->status='待接单';
             $process->update();
@@ -737,7 +739,7 @@ class ProcessController extends Controller
         }else{
             $ProcessesContents=ProcessesContent::where('process_id',$process->id)->get();
             $ids=array_column($ProcessesContents->toArray(),'id');
-            Sign::where('signable_type','processes_contents')->whereIn('signable_id',$ids)->delete();
+            Sign::query()->where('signable_type','processes_contents')->whereIn('signable_id',$ids)->delete();
             ProcessesContent::where('process_id',$process->id)->delete();
             foreach ($request->input('processContents') as $processContent){
                 if ($processContent['addBtnShow'])continue;
@@ -805,7 +807,7 @@ class ProcessController extends Controller
     function rollback(Request $request){
         if(!Gate::allows('二次加工管理-回滚')){ return ['success'=>false,'data'=>'您无权进行该操作!'];  }
         if (!$request->id)return ['success'=>false];
-        $process=Process::find($request->id);
+        $process=Process::query()->find($request->id);
         switch ($process->status){
             case '待接单':
                 $process->status='待审核';break;
@@ -828,7 +830,7 @@ class ProcessController extends Controller
     //加工完成
     function processAccomplish(Request $request){
         if(!Gate::allows('二次加工管理-登记工时')){ return ['success'=>false,'data'=>'您无权进行该操作!'];  }
-        $process= Process::find($request->id);
+        $process= Process::query()->find($request->id);
         if (!$process)return ['success'=>false];
         $process->update([
             'status'=>'待验收'

+ 11 - 1
app/Http/Controllers/ProcessStatisticController.php

@@ -26,7 +26,17 @@ class ProcessStatisticController extends Controller
             unset($params['checkAllSign']);
             $sql = app('processStatisticService')->getSql($params);
         }else $sql = app('processStatisticService')->getSql(["process_id"=>$request->data]);
-        $post = Http::post(config('go.export.url'),['type'=>'processStatistic','sql'=>$sql]);
+
+        $row = ["任务号", "货主", "开始日期", "完成日期","创建日期", "单价", "预期数量", "完成数量", "收入合计",
+            "完成时间(天)'", "总工时", "加工类型", "最高日产能", "最低日产能", "日均产能", "合计成本", "毛利润",
+            "毛利率", "状态","加工备注","结算备注"];
+        $column = ["process_code", "owner_name", "started_at", "ended_at","process_created_at", "process_unit_price", "process_amount", "process_completed_amount", "revenue",
+		"duration_days", "duration_man_hours", "process_method_name", "top_capacity", "bottom_capacity",
+		"average_capacity", "total_cost", "gross_profit", "gross_profit_rate", "process_status", "process_remark", "process_balance_remark"];
+        $rule = ["gross_profit_rate"=> "percent", "started_at"=>"mysqlDate", "ended_at"=>"mysqlDate", "process_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"));
         }

+ 5 - 5
app/Process.php

@@ -12,7 +12,7 @@ class Process extends Model
     use ModelTimeFormat;
     use SoftDeletes;
     protected $fillable=[
-        'code','owner_id','process_method_id','unit_price','status','remark','amount','completed_amount','created_at','updated_at','deleted_at'
+        'code','owner_id','process_method_id','unit_price','status','remark','balance_remark','amount','completed_amount','created_at','updated_at','deleted_at'
     ];
     protected $appends=[
         'owner_name','process_method_name',
@@ -72,7 +72,7 @@ class Process extends Model
 
 
     public function createOperatorLog($operation){
-        OperatorLog::create([
+        OperatorLog::query()->create([
             'operator_logable_type'=>'processes',
             'operator_logable_id'=>$this->id,
             'user_id'=>Auth::id(),
@@ -81,7 +81,7 @@ class Process extends Model
     }
 
     public function createSign($mark){
-        return Sign::create([
+        return Sign::query()->create([
             'signable_type'=>'processes',
             'signable_id'=>$this->id,
             'field'=>'unit_price',
@@ -90,7 +90,7 @@ class Process extends Model
     }
 
     public function createSignUnitPrice($unit_price){
-        return Sign::create([
+        return Sign::query()->create([
             'signable_type'=>'processes',
             'signable_id'=>$this->id,
             'field'=>'update_unit_price_value',
@@ -99,7 +99,7 @@ class Process extends Model
     }
 
     public function destroySign(){
-        Sign::where('signable_type','processes')->where('signable_id',$this->id)->where('field','unit_price')
+        Sign::query()->where('signable_type','processes')->where('signable_id',$this->id)->where('field','unit_price')
             ->orWhere('field','update_unit_price_value')->delete();
     }
 }

+ 4 - 0
app/ProcessStatistic.php

@@ -26,4 +26,8 @@ class ProcessStatistic extends Model
         return $this->hasOne('App\OperatorLog','operator_logable_id','process_id')
             ->where('operator_logable_type','processes');
     }
+    /*public function operatorLogSubmit(){
+        return $this->hasOne('App\OperatorLog','operator_logable_id','process_id')
+            ->where('operator_logable_type','processes')->where('operation','质量验收');
+    }*/
 }

+ 2 - 2
app/Services/ProcessStatisticService.php

@@ -9,7 +9,7 @@ use Illuminate\Database\Eloquent\Builder;
 Class ProcessStatisticService
 { 
     private function conditionQuery(array $params){
-        $query = ProcessStatistic::with(['process'])->orderBy('process_statistics.process_id','DESC')
+        $query = ProcessStatistic::with(['process'/*,'operatorLogSubmit'*/])->orderBy('process_statistics.process_id','DESC')
             ->has('process');
         if ($params["owner_id"] ?? false){
             $owner_id=$params["owner_id"];
@@ -55,7 +55,7 @@ Class ProcessStatisticService
     public function getSql(array $params){
         return $this->conditionQuery($params)->selectRaw('process_statistics.*')
             ->leftJoin('processes','process_statistics.process_id','processes.id')
-                ->selectRaw('processes.code process_code,processes.unit_price process_unit_price,processes.amount process_amount,processes.completed_amount process_completed_amount,processes.status process_status,processes.remark process_remark,processes.balance_remark process_balance_remark')
+                ->selectRaw('processes.created_at process_created_at,processes.code process_code,processes.unit_price process_unit_price,processes.amount process_amount,processes.completed_amount process_completed_amount,processes.status process_status,processes.remark process_remark,processes.balance_remark process_balance_remark')
             ->leftJoin('owners','processes.owner_id','owners.id')
                 ->selectRaw('owners.name owner_name')
             ->leftJoin('process_methods','processes.process_method_id','process_methods.id')

+ 8 - 2
resources/views/process/create.blade.php

@@ -270,9 +270,13 @@
                     </span>
                 </div>
                 <div class="form-group row">
-                    <label class="col-3 col-form-label text-right" >备注(选填)</label>
+                    <label class="col-3 col-form-label text-right" >加工备注(选填)</label>
                     <textarea :readonly="is_hide" v-model="process.remark" type="text" class="form-control col-8"></textarea>
                 </div>
+                <div class="form-group row">
+                    <label class="col-3 col-form-label text-right" >结算备注(选填)</label>
+                    <textarea :readonly="is_hide" v-model="process.balance_remark" type="text" class="form-control col-8"></textarea>
+                </div>
                 {{--<div class="form-group row">
                     <label class="col-3 col-form-label text-right" >引用教程(选填)</label>
                     <span class=" col-8 input-group p-0" style="max-height: 150px; overflow-y: scroll;border-radius:5px;opacity:0.7;text-align: center;">
@@ -307,6 +311,7 @@
                     amount:'{{old('amount')??($process->amount??'')}}',owner_name:'{{old('owner_name')??($process->owner_name??'')}}',
                     process_method_id:'{{old('process_method_id')??($process->process_method_id??'')}}',
                     unit_price:'{{old('unit_price')??($process->unit_price??'')}}',remark:'{{old('remark')??($process->remark??'')}}',
+                    balance_remark:'{{old('balance_remark')??($process->balance_remark??'')}}',
                     wms_code_full:'',status:'{{$process->status??''}}'},
                 error:{wms_code:[],owner_id:[],process_method_id:[],unit_price:[],amount:[]},
                 processContents:[
@@ -580,6 +585,7 @@
                     let process_method_id=_this.process.process_method_id;
                     let unit_price=_this.process.unit_price;
                     let remark=_this.process.remark;
+                    let balance_remark=_this.process.balance_remark;
                     let amount=_this.process.amount;
                     if (!owner_id || !process_method_id || !unit_price || !amount) {
                         tempTip.setDuration(3000);
@@ -621,7 +627,7 @@
                     };
                     let param = {
                         owner_id:owner_id,process_method_id:process_method_id,unit_price:unit_price,
-                        remark:remark,amount:amount,processContents:_this.processContents,/*tutorials:_this.selectedTutorials*/
+                        remark:remark,balance_remark:balance_remark,amount:amount,processContents:_this.processContents,/*tutorials:_this.selectedTutorials*/
                         is_hide:_this.is_hide
                     };
                     if (this.process.id) {

+ 2 - 0
resources/views/process/statistic.blade.php

@@ -30,6 +30,7 @@
                 <th>货主</th>
                 <th>开始日期</th>
                 <th>完成日期</th>
+                <th>创建日期</th>
                 <th>单价</th>
                 <th>预期数量</th>
                 <th>完成数量</th>
@@ -54,6 +55,7 @@
                 <td><span v-if="processStatistic.process">@{{ processStatistic.process.owner_name }}</span></td>
                 <td>@{{ processStatistic.started_at }}</td>
                 <td>@{{ processStatistic.ended_at }}</td>
+                <td><span v-if="processStatistic.process">@{{ processStatistic.process.created_at }}</span></td>
                 <td><span v-if="processStatistic.process">@{{ processStatistic.process.unit_price }}</span></td>
                 <td><span v-if="processStatistic.process">@{{ processStatistic.process.amount }}</span></td>
                 <td><span v-if="processStatistic.process">@{{ processStatistic.process.completed_amount }}</span></td>

+ 12 - 9
serves/excelExportGo/api/controller/controller.go

@@ -6,6 +6,7 @@ import (
 	"bswas/utilities"
 	"encoding/json"
 	"net/http"
+	"strconv"
 )
 
 func Export(w http.ResponseWriter,req *http.Request)  {
@@ -114,20 +115,17 @@ func selectModule(params map[string]string) (row []interface{}, list [][]interfa
 		mergeColumn = []string{
 			"A","B","C","D","E","F","G","H","I",
 		}
-	case "processStatistic":
-		data = orm.GetMysqlData(params["sql"])
-		row, list = ProcessStatisticFormat(data)
 	case "laborReport":
 		err := json.Unmarshal([]byte(params["data"]), &data)
 		if err != nil {
-			utilities.WriteLog("/api/controller/controller.go:123   临时工报表数据json解析失败!","ERROR")
+			utilities.WriteLog("/api/controller/controller.go:121   临时工报表数据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:130   订单问题件数据json解析失败!","ERROR")
+			utilities.WriteLog("/api/controller/controller.go:128   订单问题件数据json解析失败!","ERROR")
 		}
 		if sqlList["orderPackageSql"] == "" || sqlList["secondOrderPackageSql"] == "" || sqlList["orderIssueSql"] == "" || sqlList["rejectedBillItemSql"] == "" || sqlList["logSql"] == ""{
 			return
@@ -183,13 +181,13 @@ 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:186   称重统计数据json解析失败!","ERROR")
+			utilities.WriteLog("/api/controller/controller.go:184   称重统计数据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:192   库存盘点数据json解析失败!","ERROR")
+			utilities.WriteLog("/api/controller/controller.go:190   库存盘点数据json解析失败!","ERROR")
 		}
 		row, list = InventoryAccountMissionFormat(data)
 	case "inventoryCompare":
@@ -200,11 +198,11 @@ func selectModule(params map[string]string) (row []interface{}, list [][]interfa
 		var rule map[string]string
 		err := json.Unmarshal([]byte(params["row"]), &row)
 		if err != nil {
-			utilities.WriteLog("/api/controller/controller.go:203   参数传递错误!","ERROR")
+			utilities.WriteLog("/api/controller/controller.go:201   参数传递错误!","ERROR")
 		}
 		err = json.Unmarshal([]byte(params["column"]), &column)
 		if err != nil {
-			utilities.WriteLog("/api/controller/controller.go:207   参数传递错误!","ERROR")
+			utilities.WriteLog("/api/controller/controller.go:205   参数传递错误!","ERROR")
 		}
 		err = json.Unmarshal([]byte(params["rule"]), &rule)
 		if params["connection"] == "oracle" {
@@ -245,6 +243,11 @@ func dataFormat(ruleType string,value string)string{
 			value = utilities.DateFormat(value, "2006-01-02T15:04:05+08:00")
 		case "mysqlDate":
 			value = utilities.DateFormat(value,"2006-01-02T15:04:05Z")
+		case "percent":
+			rate,_ := strconv.ParseFloat(value,64)
+			if rate != 0 {
+				value = strconv.FormatFloat(rate * 100, 'f', 2, 64)+"%"
+			}
 	}
 	return value
 }

+ 0 - 50
serves/excelExportGo/api/controller/processController.go

@@ -68,53 +68,3 @@ func ProcessFormat(data []map[string]string) ([]interface{}, [][]interface{}, ma
 	}
 	return row,list,mergeRow
 }
-
-func ProcessStatisticFormat(data []map[string]string) ([]interface{}, [][]interface{}) {
-	row := []interface{}{
-		"任务号", "货主", "开始日期", "完成日期", "单价", "预期数量", "完成数量", "收入合计",
-		"完成时间(天)'", "总工时", "加工类型", "最高日产能", "最低日产能", "日均产能", "合计成本", "毛利润",
-		"毛利率", "状态","加工备注","结算备注",
-	}
-	column := map[string]int{
-		"process_code" : 0,
-		"owner_name" : 1,
-		"started_at" : 2,
-		"ended_at" : 3,
-		"process_unit_price" : 4,
-		"process_amount" : 5,
-		"process_completed_amount" : 6,
-		"revenue" : 7,
-		"duration_days" : 8,
-		"duration_man_hours" : 9,
-		"process_method_name" : 10,
-		"top_capacity" : 11,
-		"bottom_capacity" : 12,
-		"average_capacity" : 13,
-		"total_cost" : 14,
-		"gross_profit" : 15,
-		"gross_profit_rate" : 16,
-		"process_status" : 17,
-		"process_remark" : 18,
-		"process_balance_remark" : 19,
-	}
-	list := make([][]interface{},len(data))
-	for k,v := range data{
-		line := make([]interface{},len(row))
-		for key,value := range column {
-			if key == "gross_profit_rate" {
-				rate,_ := strconv.ParseFloat(v[key],64)
-				if rate != 0 {
-					line[value] = strconv.FormatFloat(rate * 100, 'f', 2, 64)+"%"
-				}
-				continue
-			}
-			if key == "started_at" || key == "ended_at" {
-				line[value] = utilities.DateFormat(v[key],"2006-01-02T15:04:05Z");
-				continue
-			}
-			line[value] = v[key]
-		}
-		list[k] = line
-	}
-	return row,list
-}