From 02d60b1885ae6b27822e01c95ff2e19fb3b6ac22 Mon Sep 17 00:00:00 2001
From: 快乐的昕的电脑 <快乐的昕的电脑@DESKTOP-C2BQPQU>
Date: 星期四, 16 十月 2025 16:43:01 +0800
Subject: [PATCH] 显式转换类型

---
 Services/WomdaaManager.cs |   95 +++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 79 insertions(+), 16 deletions(-)

diff --git a/Services/WomdaaManager.cs b/Services/WomdaaManager.cs
index b763544..4885b49 100644
--- a/Services/WomdaaManager.cs
+++ b/Services/WomdaaManager.cs
@@ -1,6 +1,7 @@
 锘縰sing PadApplication.DB;
 using PadApplication.Entites.DbModels;
 using PadApplication.Entites.Dto;
+using SqlSugar;
 
 namespace PadApplication.Services;
 
@@ -24,12 +25,6 @@
             list = list.Where(p => p.Daa018 != null && query.OrderStatus.Contains(p.Daa018)).ToList();
         }
 
-        //// 鍒嗙粍閫昏緫锛堝闇�鍒嗙粍锛屾寜鍒�鍏稩D鍒嗙粍鍙栫涓�鏉★級
-        //var vOrders = list.GroupBy(p => p.cutterId)
-        //    .Select(g => g.First()).ToList();
-
-        //return vOrders;
-        // 濡傞渶鍒嗙粍鍙姞鍒嗙粍閫昏緫锛屽惁鍒欑洿鎺ヨ繑鍥�
         return list;
     }
 
@@ -126,7 +121,7 @@
     {
         var date = DateTime.Now.ToString("yyyy-MM-dd");
 
-        var count = Db.Queryable<DeviceStatus>()
+        var count = Db.Queryable<DeviceStatusBycl>()
             .Where(b => b.OrderNo == query.orderNo && b.EditDate == date)
             .Count();
 
@@ -165,35 +160,103 @@
 
         VOrdrerBycl.wjQty = VOrdrerBycl.Daa008 - VOrdrerBycl.Daa011;
 
-        //DevMachine
         var devMachine = Db.Queryable<DevMacBycl>()
             .Where(s => s.MachineNo == VOrdrerBycl.MachineNo)
             .First();
-
 
         var sql = string.Format(
             "select FINAL_RESULT from MES_EQ_SPOT_CHECKS where department_no = 'XS0101' and EQ_NO = '{0}' and substr(SUBMIT_DATE, 1, 10) = to_char(sysdate, 'yyyy-mm-dd')",
             devMachine.UniqueBarcode);
 
         var sqlQuerySingle = Db.Ado.SqlQuerySingle<string>(sql);
-
         VOrdrerBycl.finalResult = sqlQuerySingle;
+
+        // 鏂板锛氭煡璇㈡渶鏃╀笌鏈�鏂版暟閲囪褰�
+        var baseQuery = Db.Queryable<MesNumericalBycl>()
+            .Where(n => n.OrderId == Convert.ToDecimal(query.OrderId) && n.MachineNo == VOrdrerBycl.MachineNo);
+
+        var startCjNum = baseQuery.OrderBy(n => n.Id)
+            .Select(n => n.CjNum).First();
+
+        var currentCjNum = baseQuery.OrderBy(n => n.Id, OrderByType.Desc)
+            .Select(n => n.CjNum).First();
+
+        VOrdrerBycl.StartCjNum = startCjNum ?? 0;
+        VOrdrerBycl.CurrentCjNum = currentCjNum ?? 0;
 
         return VOrdrerBycl;
     }
 
     /// <summary>
-    ///     鏍规嵁宸ュ崟ID鑾峰彇鎵撳嵃淇℃伅
+    ///     鏍规嵁宸ュ崟ID鑾峰彇鎶ュ伐淇℃伅
     /// </summary>
     /// <param name="query">鍖呭惈宸ュ崟ID鐨勬煡璇㈡潯浠�</param>
-    /// <returns>宸ュ崟鎵撳嵃淇℃伅</returns>
+    /// <returns>宸ュ崟鎶ュ伐淇℃伅</returns>
     public VPrint GetWomdaaPrintById(OrderMachineDto query)
     {
         var vPrint = Db.Queryable<VPrint>()
-            .Where(s => s.Id == query.OrderId).First();
-        vPrint.RmiPrQty =
-            (int)Math.Ceiling(
-                (double)((vPrint.Bqty - vPrint.SQuantity) / vPrint.Qqty));
+            .Where(s => s.Id == query.OrderId)
+            .First();
+
+        if (vPrint == null)
+            return null;
+
+        // 闃叉闄ら浂鍜岀┖鍊煎紓甯�
+        var bqty = vPrint.Bqty ?? 0;
+        var sQuantity = vPrint.SQuantity ?? 0;
+        var qqty = vPrint.Qqty ?? 0;
+
+        if (qqty == 0)
+        {
+            vPrint.RmiPrQty = 0;
+        }
+        else
+        {
+            // 鍓╀綑鍙墦鍗板紶鏁� = (鍙墦鍗版�绘暟閲� - 宸叉墦鍗版暟閲�) / 鏍囧噯鍖呰鏁帮紝鍚戜笂鍙栨暣
+            var remain = bqty - sQuantity;
+            vPrint.RmiPrQty = remain > 0 ? (int)Math.Ceiling((double)remain / (double)qqty) : 0;
+        }
+
         return vPrint;
     }
+
+    public (List<MesReportingBgDto> tbBillList, int totalCount) GetByBillNoBG(
+        string billNo, string machineNo, DateTime? from, DateTime? to, int pageIndex, int pageSize)
+    {
+        var query = Db.Queryable<MesReporting>()
+            // 鍏宠仈鍛樺伐淇℃伅琛紝浣跨敤鎶ュ伐浜虹紪鐮佸尮閰嶅憳宸ョ紪鐮�
+            .LeftJoin<MesStaff>((r, s) => r.BgPerson == s.StaffNo)
+            .Where((r, s) => r.BillNo == billNo);
+
+        if (!string.IsNullOrWhiteSpace(machineNo))
+            query = query.Where((r, s) => r.MachineNo == machineNo);
+
+        if (from.HasValue)
+            query = query.Where((r, s) => r.BgDate >= from.Value);
+
+        if (to.HasValue)
+            query = query.Where((r, s) => r.BgDate < to.Value.AddDays(1));
+
+        var totalCount = query.Count();
+
+        var tbBillList = query.OrderBy((r, s) => r.BgDate, OrderByType.Desc)
+            .Select((r, s) => new MesReportingBgDto
+            {
+                Id = (long)r.Id,
+                BillNo = r.BillNo,
+                ItemNo = r.ItemNo,
+                MachineNo = r.MachineNo,
+                StaffNo = r.BgPerson,//鎶ュ伐浜虹紪鍙�
+                StaffName = SqlFunc.IsNullOrEmpty(s.StaffName) ? r.BgPerson : s.StaffName, // 濡傛湁鐙珛濮撳悕瀛楁鍙浛鎹�
+                BgDate = r.BgDate,//鎶ュ伐鏃堕棿
+                CsQty = SqlFunc.ToInt32(r.CsQty),//鍒濆閲囬泦鏁�
+                CjQty = SqlFunc.ToInt32(r.CjQty),//鎶ュ伐鏃堕噰闆嗘暟
+                BfQty = SqlFunc.ToInt32(r.BfQty),//涓嶈壇鏁伴噺
+                OkQty = SqlFunc.ToInt32(r.OkQty)//鑹搧鏁伴噺
+            })
+            .ToPageList((pageIndex < 1 ? 1 : pageIndex),
+                (pageSize < 1 ? 200 : (pageSize > 1000 ? 1000 : pageSize)), ref totalCount);
+
+        return (tbBillList, totalCount);
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.3