song.jun
3 天以前 a3f4e4f2423a8d71b4c65e90920db34f2001aa7d
sbcLabSystem.Service/QC/QCService.cs
@@ -1034,6 +1034,23 @@
            LogHelper.Debug("准备保存对象:" + qcDistributionRegister.AnswerJSON);
            if (qcDistributionRegister.Id == 0)
            {
                var existing = _qcDistributionRegisters.Table.FirstOrDefault(
                    p => p.QCDistributionId == qcDistributionRegister.QCDistributionId
                      && p.LabId == qcDistributionRegister.LabId
                      && p.ProjectId == qcDistributionRegister.ProjectId);
                if (existing != null)
                {
                    MergeRegisterInfo(existing, qcDistributionRegister);
                    _qcDistributionRegisters.Update(existing);
                    qcDistributionRegister.Id = existing.Id;
                    LogHelper.Info(string.Format(
                        "[WARN] SaveQcDistributionRegister 命中已有行 Id={0}(入参 Id=0),已重定向 UPDATE:QCDist={1}, Lab={2}, Project={3}。请检查上层为何未先查重。",
                        existing.Id,
                        qcDistributionRegister.QCDistributionId,
                        qcDistributionRegister.LabId,
                        qcDistributionRegister.ProjectId));
                    return;
                }
                _qcDistributionRegisters.Insert(qcDistributionRegister);
            }
            else
@@ -1041,6 +1058,31 @@
                _qcDistributionRegisters.Update(qcDistributionRegister);
            }
        }
        private static void MergeRegisterInfo(QCDistributionRegisterInfo target, QCDistributionRegisterInfo source)
        {
            if (source.LetterNo != null) target.LetterNo = source.LetterNo;
            if (source.ChargeRemark != null) target.ChargeRemark = source.ChargeRemark;
            if (source.SampleNo != null) target.SampleNo = source.SampleNo;
            if (source.EMSNo != null) target.EMSNo = source.EMSNo;
            if (source.PacketContent != null) target.PacketContent = source.PacketContent;
            if (source.Remark != null) target.Remark = source.Remark;
            if (source.ModifyUser != null) target.ModifyUser = source.ModifyUser;
            if (source.AnswerJSON != null) target.AnswerJSON = source.AnswerJSON;
            if (source.SubmitUserNo != null) target.SubmitUserNo = source.SubmitUserNo;
            if (source.Score_Detail != null) target.Score_Detail = source.Score_Detail;
            if (source.ChargeTime.HasValue) target.ChargeTime = source.ChargeTime;
            if (source.SendEMSTime.HasValue) target.SendEMSTime = source.SendEMSTime;
            if (source.SubmitTime.HasValue) target.SubmitTime = source.SubmitTime;
            if (source.FirstTimeSubmitTime.HasValue) target.FirstTimeSubmitTime = source.FirstTimeSubmitTime;
            if (source.LastPageModifyTime.HasValue) target.LastPageModifyTime = source.LastPageModifyTime;
            if (source.ModifyTime != default(DateTime)) target.ModifyTime = source.ModifyTime;
            if (source.IsCharged) target.IsCharged = true;
            if (source.IsSendEMS) target.IsSendEMS = true;
            if (source.IsSubmit) target.IsSubmit = true;
            if (source.IsModified) target.IsModified = true;
            if (source.IsEnding) target.IsEnding = true;
        }
        public QCDistributionRegisterInfo GetNextOneQCDistRegInfo(QCDistributionRegisterInfo prevRegInfo)
        {
            var results = this.GetQcDistributionRegisters()