快乐的昕的电脑
2025-11-21 f4fb143d106e331b19d4292e20693ae2e3331cbd
Services/MesInvItemBarcodesManager.cs
@@ -288,26 +288,71 @@
            .Where(s => s.Daa001 == query.orderNo)
            .First();
        if (womdaa.Daa018 != "开工" && query.type != "tiaoji") throw new Exception("工单未开工");
        if (womdaa.Daa018 == "开工" && query.type == "tiaoji") throw new Exception("工单已开工");
        if (womdaa == null) throw new Exception("工单单号不存在");
        var okQty = query.currentCjNum - query.initCjNum - query.bf;//良品数量
        // 判断是否为调机报工
        string remark = "";
        if (query.type == "tiaoji")
            remark = "调机报工";
        else
            remark = "开工报工";
        // 创建报工记录
        var mesReporting = new MesReporting
            {
                CheckType = 1,
                // ItemNoCade = itemBarCode,
                // CreateBy = strings[0],
                BgDate = DateTime.Now,
                // BgPerson = strings[0],
                AddressCode = womdaa.AddressCode,
                MachineNo = womdaa.MachineNo,
                BfQty = query.bf,//不良数量
                OkQty = okQty,//良品数量
                CsQty = query.initCjNum,//初始采集数
                CjQty = query.currentCjNum,//报工时采集数
                ItemNo = womdaa.Daa002,
                BillNo = womdaa.Daa001,
                BgPerson = query.staffNo,
                Remark = remark // 新增:调机报工时写入备注
            };
        //非调机报工触发更新工单良品和不良品数量
        if (query.type != "tiaoji")
        {
            // 更新工单Daa011为原值加上本次良品数量,Daa012为原值加上本次不良品数量
            Db.Updateable<Womdaa>()
            .SetColumns(x => x.Daa011 == (womdaa.Daa011 ?? 0) + (okQty ?? 0))
            .SetColumns(x => x.Daa012 == (womdaa.Daa012 ?? 0) + (query.bf ?? 0))
            .Where(x => x.Daa001 == womdaa.Daa001)
            .ExecuteCommand();
        }
        // 判断是否全部完工,若是则写入实际完工日期
        var womdaaAfter = Db.Queryable<Womdaa>()
            .Where(s => s.Daa001 == query.orderNo)
            .First();
        if (womdaaAfter != null && womdaaAfter.Daa011 >= womdaaAfter.Daa008)
        {
            CheckType = 1,
            // ItemNoCade = itemBarCode,
            // CreateBy = strings[0],
            BgDate = DateTime.Now,
            // BgPerson = strings[0],
            AddressCode = womdaa.AddressCode,
            MachineNo = womdaa.MachineNo,
            BfQty = query.bf,//不良数量
            OkQty = query.currentCjNum - query.initCjNum - query.bf,//良品数量
            CsQty = query.initCjNum,//初始采集数
            CjQty = query.currentCjNum,//报工时采集数
            ItemNo = womdaa.Daa002,
            BillNo = womdaa.Daa001,
            BgPerson = query.staffNo // 新增:报工人编号
        };
            var finishTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
            Db.Updateable<Womdaa>()
                .SetColumns(x => x.Daa017 == DateTime.Parse(finishTime))
                .SetColumns(x => x.Daa018 == "完工")
                .Where(x => x.Daa001 == womdaaAfter.Daa001)
                .ExecuteCommand();
            // 同步更新MES_ORDER_STA的END_TIME
            Db.Updateable<object>()
                .AS("MES_ORDER_STA")
                .SetColumns("END_TIME", finishTime)
                .Where($"ORDER_NO = '{womdaaAfter.Daa001}'")
                .ExecuteCommand();
        }
        // 插入报工记录和条码记录
        return Db.Insertable(mesReporting)