|
@@ -48,7 +48,159 @@ class Nbsch extends Command
|
|
|
|
|
|
|
|
public function nbschInsert()
|
|
public function nbschInsert()
|
|
|
{
|
|
{
|
|
|
- $id_list_data = DB::connection('mysql_nbsch')->select("SELECT ID
|
|
|
|
|
|
|
+// $id_list_data = DB::connection('mysql_nbsch')->select("SELECT ID
|
|
|
|
|
+// FROM SYS_FLOW_SCHEME S
|
|
|
|
|
+// WHERE EXISTS(
|
|
|
|
|
+// SELECT ID
|
|
|
|
|
+// FROM SYS_FLOW_MASTER M
|
|
|
|
|
+// WHERE EXISTS(
|
|
|
|
|
+// SELECT 1
|
|
|
|
|
+// FROM sys_flow_master_dept D
|
|
|
|
|
+// WHERE M.ID = D.PID
|
|
|
|
|
+// )
|
|
|
|
|
+// AND S.PID = M.ID
|
|
|
|
|
+// AND M.MENU_ID = '5ab7b937-19a0-47d4-b479-b9f58999abc8'
|
|
|
|
|
+// )
|
|
|
|
|
+// AND S.IS_DISABLE = 0");
|
|
|
|
|
+// $id_list = [];
|
|
|
|
|
+// if(count($id_list_data) > 0){
|
|
|
|
|
+// for($i=0;$i<count($id_list_data);$i++){
|
|
|
|
|
+// array_push($id_list,$id_list_data[$i]->ID);
|
|
|
|
|
+// }
|
|
|
|
|
+// }
|
|
|
|
|
+// // dd($id_list);
|
|
|
|
|
+// $bill_id_list = [];
|
|
|
|
|
+// if($id_list > 0){
|
|
|
|
|
+// for($i=0;$i<count($id_list);$i++){
|
|
|
|
|
+// // for($i=0;$i<3;$i++){
|
|
|
|
|
+// $bill_id_data = DB::connection('mysql_nbsch')->table('SYS_FLOW_APPROVAL_RECORD')->where('approve_scheme_id',$id_list[$i])->get(['bill_id', 'approve_node_name']);
|
|
|
|
|
+// if(count($bill_id_data) > 0){
|
|
|
|
|
+// for($j=0;$j<count($bill_id_data);$j++){
|
|
|
|
|
+// array_push($bill_id_list,$bill_id_data[$j]);
|
|
|
|
|
+// }
|
|
|
|
|
+// }
|
|
|
|
|
+// }
|
|
|
|
|
+// }
|
|
|
|
|
+//
|
|
|
|
|
+// $grouped = [];
|
|
|
|
|
+// foreach ($bill_id_list as $item) {
|
|
|
|
|
+//
|
|
|
|
|
+// $billId = $item->bill_id;
|
|
|
|
|
+//
|
|
|
|
|
+// if (!isset($grouped[$billId])) {
|
|
|
|
|
+// $grouped[$billId] = [];
|
|
|
|
|
+// }
|
|
|
|
|
+//
|
|
|
|
|
+// $grouped[$billId][] = $item->approve_node_name;
|
|
|
|
|
+// }
|
|
|
|
|
+//
|
|
|
|
|
+// $bill_array = [];
|
|
|
|
|
+// foreach ($grouped as $billId => $nodeNames) {
|
|
|
|
|
+// $bill_array[] = [
|
|
|
|
|
+// 'bill_id' => $billId,
|
|
|
|
|
+// 'approve_flow' => implode(',', array_unique($nodeNames))
|
|
|
|
|
+// ];
|
|
|
|
|
+// }
|
|
|
|
|
+//// dd($bill_array);
|
|
|
|
|
+// $filteredResult = array_filter($bill_array, function($item) {
|
|
|
|
|
+// return strpos($item['approve_flow'], '被服务') === false;
|
|
|
|
|
+// });
|
|
|
|
|
+//
|
|
|
|
|
+//
|
|
|
|
|
+//// 重置索引
|
|
|
|
|
+// $filteredResult = array_values($filteredResult);
|
|
|
|
|
+//
|
|
|
|
|
+// // dd($filteredResult);
|
|
|
|
|
+// $id_list = [];
|
|
|
|
|
+// foreach($filteredResult as $k=>$v){
|
|
|
|
|
+// array_push($id_list,$v['bill_id']);
|
|
|
|
|
+// }
|
|
|
|
|
+// // dd($id_list);
|
|
|
|
|
+// $master = DB::connection('mysql_nbsch')->table('RT_SERVICE_SETTLEMENT_MASTER')->where('DOCUMENT_DATE','like','%2025-06%')->where('APPROVE_NODE_NAME','已完成')->get(['ID','DOCUMENT_TYPE','DOCUMENT_DATE','SETTLEMENT_SUM_AMOUNT']);
|
|
|
|
|
+//
|
|
|
|
|
+// if(count($master) > 0){
|
|
|
|
|
+// for($i=0;$i<count($master);$i++){
|
|
|
|
|
+// $master[$i]->BILL_ID = null;
|
|
|
|
|
+// $master[$i]->isNull = 0;
|
|
|
|
|
+// $master[$i]->riqi = '2025-06';
|
|
|
|
|
+// }
|
|
|
|
|
+// for($i=0;$i<count($master);$i++){
|
|
|
|
|
+// if(count($id_list) > 0){
|
|
|
|
|
+// for($j=0;$j<count($id_list);$j++){
|
|
|
|
|
+// // dd($id_list[$j]);
|
|
|
|
|
+// // dd($master[$i]->ID);
|
|
|
|
|
+// if($master[$i]->ID == $id_list[$j]){
|
|
|
|
|
+// $master[$i]->BILL_ID = $id_list[$j];
|
|
|
|
|
+// $master[$i]->isNull = 1;
|
|
|
|
|
+// }
|
|
|
|
|
+// }
|
|
|
|
|
+// }
|
|
|
|
|
+// }
|
|
|
|
|
+// }
|
|
|
|
|
+//
|
|
|
|
|
+//
|
|
|
|
|
+// $groupedData = [];
|
|
|
|
|
+//
|
|
|
|
|
+// foreach ($master as $item) {
|
|
|
|
|
+//
|
|
|
|
|
+// $key = $item->DOCUMENT_TYPE;
|
|
|
|
|
+//
|
|
|
|
|
+// if (!isset($groupedData[$key])) {
|
|
|
|
|
+// $groupedData[$key] = [
|
|
|
|
|
+// 'DOCUMENT_TYPE' => $item->DOCUMENT_TYPE,
|
|
|
|
|
+// 'DOCUMENT_DATE' => $item->riqi,
|
|
|
|
|
+// 'total_amount' => 0,
|
|
|
|
|
+// 'normal_amount' => 0,
|
|
|
|
|
+// 'null_amount' => 0
|
|
|
|
|
+// ];
|
|
|
|
|
+// }
|
|
|
|
|
+//
|
|
|
|
|
+// $groupedData[$key]['total_amount'] += $item->SETTLEMENT_SUM_AMOUNT;
|
|
|
|
|
+//
|
|
|
|
|
+// if ($item->isNull == 0) {
|
|
|
|
|
+// $groupedData[$key]['normal_amount'] += $item->SETTLEMENT_SUM_AMOUNT;
|
|
|
|
|
+// } else {
|
|
|
|
|
+// $groupedData[$key]['null_amount'] += $item->SETTLEMENT_SUM_AMOUNT;
|
|
|
|
|
+// }
|
|
|
|
|
+// }
|
|
|
|
|
+//
|
|
|
|
|
+// $result = [];
|
|
|
|
|
+// foreach ($groupedData as $item) {
|
|
|
|
|
+// $sptgl_val = $item['total_amount'] > 0 ?
|
|
|
|
|
+// round($item['normal_amount'] / $item['total_amount'] * 100, 2) : 0;
|
|
|
|
|
+//
|
|
|
|
|
+// $result[] = [
|
|
|
|
|
+// 'DOCUMENT_TYPE' => $item['DOCUMENT_TYPE'],
|
|
|
|
|
+// 'DOCUMENT_DATE' => $item['DOCUMENT_DATE'],
|
|
|
|
|
+// 'dyjsje' => round($item['total_amount'] / 10000, 2),
|
|
|
|
|
+// 'zcspje' => round($item['normal_amount'] / 10000, 2),
|
|
|
|
|
+// 'qtje' => round($item['null_amount'] / 10000, 2),
|
|
|
|
|
+// 'sptgl' => $sptgl_val . '%',
|
|
|
|
|
+// 'sptgl_val' => $sptgl_val
|
|
|
|
|
+// ];
|
|
|
|
|
+// }
|
|
|
|
|
+
|
|
|
|
|
+ $result = DB::connection('mysql_nbsch')->select("SELECT
|
|
|
|
|
+ a.DOCUMENT_TYPE,
|
|
|
|
|
+ DATE_FORMAT(a.DOCUMENT_DATE, '%Y-%m') AS DOCUMENT_DATE,
|
|
|
|
|
+ ROUND(SUM(a.SETTLEMENT_SUM_AMOUNT) / 10000, 2) AS dyjsje,
|
|
|
|
|
+ ROUND((SUM(a.SETTLEMENT_SUM_AMOUNT) - SUM(CASE WHEN a.isNull = '1' THEN a.SETTLEMENT_SUM_AMOUNT ELSE 0 END)) / 10000, 2) AS zcspje,
|
|
|
|
|
+ ROUND(SUM(CASE WHEN a.isNull = '1' THEN a.SETTLEMENT_SUM_AMOUNT ELSE 0 END) / 10000, 2) AS qtje,
|
|
|
|
|
+ CONCAT(ROUND(SUM(CASE WHEN a.isNull = '0' THEN 1 ELSE 0 END) / COUNT(a.isNull) * 100, 2), '%') AS sptgl,
|
|
|
|
|
+ ROUND(SUM(CASE WHEN a.isNull = '0' THEN 1 ELSE 0 END) / COUNT(a.isNull) * 100, 2) AS sptgl_val
|
|
|
|
|
+FROM (
|
|
|
|
|
+ SELECT
|
|
|
|
|
+ fwjs.*,
|
|
|
|
|
+ (CASE WHEN lcjl.BILL_ID IS NOT NULL THEN '1' ELSE '0' END) AS isNull
|
|
|
|
|
+ FROM RT_SERVICE_SETTLEMENT_MASTER fwjs
|
|
|
|
|
+ LEFT JOIN (
|
|
|
|
|
+ SELECT * FROM (
|
|
|
|
|
+ SELECT
|
|
|
|
|
+ BILL_ID,
|
|
|
|
|
+ GROUP_CONCAT(approve_node_name ORDER BY approve_node_name SEPARATOR ',') AS lcjdhub
|
|
|
|
|
+ FROM SYS_FLOW_APPROVAL_RECORD
|
|
|
|
|
+ WHERE approve_scheme_id IN (
|
|
|
|
|
+ SELECT ID
|
|
|
FROM SYS_FLOW_SCHEME S
|
|
FROM SYS_FLOW_SCHEME S
|
|
|
WHERE EXISTS(
|
|
WHERE EXISTS(
|
|
|
SELECT ID
|
|
SELECT ID
|
|
@@ -61,124 +213,17 @@ class Nbsch extends Command
|
|
|
AND S.PID = M.ID
|
|
AND S.PID = M.ID
|
|
|
AND M.MENU_ID = '5ab7b937-19a0-47d4-b479-b9f58999abc8'
|
|
AND M.MENU_ID = '5ab7b937-19a0-47d4-b479-b9f58999abc8'
|
|
|
)
|
|
)
|
|
|
- AND S.IS_DISABLE = 0");
|
|
|
|
|
- $id_list = [];
|
|
|
|
|
- if(count($id_list_data) > 0){
|
|
|
|
|
- for($i=0;$i<count($id_list_data);$i++){
|
|
|
|
|
- array_push($id_list,$id_list_data[$i]->ID);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- // dd($id_list);
|
|
|
|
|
- $bill_id_list = [];
|
|
|
|
|
- if($id_list > 0){
|
|
|
|
|
- for($i=0;$i<count($id_list);$i++){
|
|
|
|
|
- // for($i=0;$i<3;$i++){
|
|
|
|
|
- $bill_id_data = DB::connection('mysql_nbsch')->table('SYS_FLOW_APPROVAL_RECORD')->where('approve_scheme_id',$id_list[$i])->get(['bill_id', 'approve_node_name']);
|
|
|
|
|
- if(count($bill_id_data) > 0){
|
|
|
|
|
- for($j=0;$j<count($bill_id_data);$j++){
|
|
|
|
|
- array_push($bill_id_list,$bill_id_data[$j]);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- $grouped = [];
|
|
|
|
|
- foreach ($bill_id_list as $item) {
|
|
|
|
|
-
|
|
|
|
|
- $billId = $item->bill_id;
|
|
|
|
|
-
|
|
|
|
|
- if (!isset($grouped[$billId])) {
|
|
|
|
|
- $grouped[$billId] = [];
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- $grouped[$billId][] = $item->approve_node_name;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- $bill_array = [];
|
|
|
|
|
- foreach ($grouped as $billId => $nodeNames) {
|
|
|
|
|
- $bill_array[] = [
|
|
|
|
|
- 'bill_id' => $billId,
|
|
|
|
|
- 'approve_flow' => implode(',', array_unique($nodeNames))
|
|
|
|
|
- ];
|
|
|
|
|
- }
|
|
|
|
|
-// dd($bill_array);
|
|
|
|
|
- $filteredResult = array_filter($bill_array, function($item) {
|
|
|
|
|
- return strpos($item['approve_flow'], '被服务') === false;
|
|
|
|
|
- });
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-// 重置索引
|
|
|
|
|
- $filteredResult = array_values($filteredResult);
|
|
|
|
|
-
|
|
|
|
|
- // dd($filteredResult);
|
|
|
|
|
- $id_list = [];
|
|
|
|
|
- foreach($filteredResult as $k=>$v){
|
|
|
|
|
- array_push($id_list,$v['bill_id']);
|
|
|
|
|
- }
|
|
|
|
|
- // dd($id_list);
|
|
|
|
|
- $master = DB::connection('mysql_nbsch')->table('RT_SERVICE_SETTLEMENT_MASTER')->where('DOCUMENT_DATE','like','%2025-06%')->where('APPROVE_NODE_NAME','已完成')->get(['ID','DOCUMENT_TYPE','DOCUMENT_DATE','SETTLEMENT_SUM_AMOUNT']);
|
|
|
|
|
-
|
|
|
|
|
- if(count($master) > 0){
|
|
|
|
|
- for($i=0;$i<count($master);$i++){
|
|
|
|
|
- $master[$i]->BILL_ID = null;
|
|
|
|
|
- $master[$i]->isNull = 0;
|
|
|
|
|
- $master[$i]->riqi = '2025-06';
|
|
|
|
|
- }
|
|
|
|
|
- for($i=0;$i<count($master);$i++){
|
|
|
|
|
- if(count($id_list) > 0){
|
|
|
|
|
- for($j=0;$j<count($id_list);$j++){
|
|
|
|
|
- // dd($id_list[$j]);
|
|
|
|
|
- // dd($master[$i]->ID);
|
|
|
|
|
- if($master[$i]->ID == $id_list[$j]){
|
|
|
|
|
- $master[$i]->BILL_ID = $id_list[$j];
|
|
|
|
|
- $master[$i]->isNull = 1;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- $groupedData = [];
|
|
|
|
|
-
|
|
|
|
|
- foreach ($master as $item) {
|
|
|
|
|
-
|
|
|
|
|
- $key = $item->DOCUMENT_TYPE;
|
|
|
|
|
-
|
|
|
|
|
- if (!isset($groupedData[$key])) {
|
|
|
|
|
- $groupedData[$key] = [
|
|
|
|
|
- 'DOCUMENT_TYPE' => $item->DOCUMENT_TYPE,
|
|
|
|
|
- 'DOCUMENT_DATE' => $item->riqi,
|
|
|
|
|
- 'total_amount' => 0,
|
|
|
|
|
- 'normal_amount' => 0,
|
|
|
|
|
- 'null_amount' => 0
|
|
|
|
|
- ];
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- $groupedData[$key]['total_amount'] += $item->SETTLEMENT_SUM_AMOUNT;
|
|
|
|
|
-
|
|
|
|
|
- if ($item->isNull == 0) {
|
|
|
|
|
- $groupedData[$key]['normal_amount'] += $item->SETTLEMENT_SUM_AMOUNT;
|
|
|
|
|
- } else {
|
|
|
|
|
- $groupedData[$key]['null_amount'] += $item->SETTLEMENT_SUM_AMOUNT;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- $result = [];
|
|
|
|
|
- foreach ($groupedData as $item) {
|
|
|
|
|
- $sptgl_val = $item['total_amount'] > 0 ?
|
|
|
|
|
- round($item['normal_amount'] / $item['total_amount'] * 100, 2) : 0;
|
|
|
|
|
-
|
|
|
|
|
- $result[] = [
|
|
|
|
|
- 'DOCUMENT_TYPE' => $item['DOCUMENT_TYPE'],
|
|
|
|
|
- 'DOCUMENT_DATE' => $item['DOCUMENT_DATE'],
|
|
|
|
|
- 'dyjsje' => round($item['total_amount'] / 10000, 2),
|
|
|
|
|
- 'zcspje' => round($item['normal_amount'] / 10000, 2),
|
|
|
|
|
- 'qtje' => round($item['null_amount'] / 10000, 2),
|
|
|
|
|
- 'sptgl' => $sptgl_val . '%',
|
|
|
|
|
- 'sptgl_val' => $sptgl_val
|
|
|
|
|
- ];
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ AND S.IS_DISABLE = 0
|
|
|
|
|
+ )
|
|
|
|
|
+ GROUP BY BILL_ID
|
|
|
|
|
+ ) t
|
|
|
|
|
+ WHERE lcjdhub NOT REGEXP '被服务'
|
|
|
|
|
+ ) lcjl ON fwjs.id = lcjl.BILL_ID
|
|
|
|
|
+ WHERE fwjs.APPROVE_NODE_NAME = '已完成'
|
|
|
|
|
+) a
|
|
|
|
|
+WHERE 1=1 AND DATE_FORMAT(a.DOCUMENT_DATE, '%Y-%m') = '2025-06' -- 日期筛选条件
|
|
|
|
|
+GROUP BY a.DOCUMENT_TYPE, DATE_FORMAT(a.DOCUMENT_DATE, '%Y-%m')
|
|
|
|
|
+ORDER BY DATE_FORMAT(a.DOCUMENT_DATE, '%Y-%m') DESC");
|
|
|
|
|
|
|
|
Log::info(332211);
|
|
Log::info(332211);
|
|
|
Log::info($result);
|
|
Log::info($result);
|