SELECT T1.REPAIRNO,
       T1.UNDERTAKER10,
       T3.FULLNAME          AS RECEIVERNAME,
       T1.WALKDISTANCE,
       T1.STATUSCODEDATE10  AS RECEIVETIME,
       t8.REPAIRTYPE,
       T5.DELIVEREDDATE,
       CASE 
            WHEN T2.REPAIRNO IS NULL THEN ''
            ELSE ''
       END                     ISINSURANCE,
       T2.FIXEDDATE,
       T4.FULLNAME          AS CLAIMSNNAME,
       T2.TotalFee
FROM   RT_REPAIR T1
       LEFT JOIN RT_INSURANCECLAIMS T2
            ON  T1.REPAIRNO = T2.REPAIRNO
            AND T1.FRAMENO = T2.FRAMENO
       LEFT JOIN CM_STAFF T3
            ON  T1.UNDERTAKER10 = T3.STAFFPKID
       LEFT JOIN CM_STAFF T4
            ON  T2.ClaimsID = T4.STAFFPKID
       LEFT JOIN RT_REPAIRPROCESS T5
            ON  T1.REPAIRNO = T5.REPAIRNO
       LEFT JOIN RT_CUSTOMERWISH T6
            ON  T1.REPAIRNO = T6.REPAIRNO
       LEFT JOIN RT_WORKCONTENT T7
            ON  T6.REPAIRNO = T7.REPAIRNO
            AND T6.WISHID = T7.WISHID
       LEFT JOIN RM_RepairType t8
            ON  t7.RepairTypeCode = t8.repairtypecode
WHERE  T1.FRAMENO = 'LHGRB186982000004'
       AND STATUSCODE = '99'
ORDER BY
       REPAIRNO                DESC   

 

     public DataSet GetCustomerSolicitRepairHisByFrameNo(string aFrameNo)
        {
            StringBuilder sql = new StringBuilder();
            sql.Append(" SELECT T1.REPAIRNO, ");
            sql.Append(" T1.UNDERTAKER10, ");
            sql.Append(" T3.FULLNAME          AS RECEIVERNAME, ");
            sql.Append(" T1.WALKDISTANCE, ");
            sql.Append(" T1.STATUSCODEDATE10  AS RECEIVETIME, ");
            sql.Append(" T8.REPAIRTYPE, ");
            sql.Append(" T5.DELIVEREDDATE, ");
            sql.Append(" CASE  ");
            sql.Append(" WHEN T2.REPAIRNO IS NULL THEN '否' ");
            sql.Append(" ELSE '是' ");
            sql.Append(" END                     ISINSURANCE, ");
            sql.Append(" T2.FIXEDDATE, ");
            sql.Append(" T4.FULLNAME          AS CLAIMSNNAME, ");
            sql.Append(" T2.TOTALFEE ");
            sql.Append(" FROM   RT_REPAIR T1 ");
            sql.Append(" LEFT JOIN RT_INSURANCECLAIMS T2 ");
            sql.Append(" ON  T1.REPAIRNO = T2.REPAIRNO ");
            sql.Append(" AND T1.FRAMENO = T2.FRAMENO ");
            sql.Append(" LEFT JOIN CM_STAFF T3 ");
            sql.Append(" ON  T1.UNDERTAKER10 = T3.STAFFPKID ");
            sql.Append(" LEFT JOIN CM_STAFF T4 ");
            sql.Append(" ON  T2.ClaimsID = T4.STAFFPKID ");
            sql.Append(" LEFT JOIN RT_REPAIRPROCESS T5 ");
            sql.Append(" ON  T1.REPAIRNO = T5.REPAIRNO ");
            sql.Append(" LEFT JOIN RT_CUSTOMERWISH T6 ");
            sql.Append(" ON  T1.REPAIRNO = T6.REPAIRNO ");
            sql.Append(" LEFT JOIN RT_WORKCONTENT T7 ");
            sql.Append(" ON  T6.REPAIRNO = T7.REPAIRNO ");
            sql.Append(" AND T6.WISHID = T7.WISHID ");
            sql.Append(" LEFT JOIN RM_REPAIRTYPE T8 ");
            sql.Append(" ON  T7.REPAIRTYPECODE = T8.REPAIRTYPECODE ");
            sql.Append(" WHERE  T1.FRAMENO = '" + aFrameNo + "' ");
            sql.Append(" AND STATUSCODE = '99' ");
            sql.Append(" ORDER BY ");
            sql.Append(" REPAIRNO DESC ");

            DataSet ds = new DataSet();
            FillDataSet(sql.ToString(), ds, new string[] { "Tmp_RepairHis" });

            //
            string repairNo = string.Empty;
            string repairType = string.Empty;
            DataSet cloneDS = new DataSet();
            cloneDS.Merge(ds);
            cloneDS.Tables["Tmp_RepairHis"].Clear();
            var cloneRow = cloneDS.Tables["Tmp_RepairHis"].NewRow();
            DataRow addRow = null;

            if (ds.Tables["Tmp_RepairHis"].Rows.Count == 0)
            {
                return cloneDS;
            }
            foreach (DataRow row in ds.Tables["Tmp_RepairHis"].Rows)
            {
                if (string.IsNullOrEmpty(repairNo))
                {
                    repairNo = row["REPAIRNO"].ToString();
                    repairType = row["REPAIRTYPE"].ToString();
                }
                else if (repairNo == row["REPAIRNO"].ToString())
                {
                    if (row["REPAIRTYPE"] != null && row["REPAIRTYPE"] != DBNull.Value)
                    {
                        repairType = repairType + "," + row["REPAIRTYPE"].ToString();
                    }
                }
                else
                {
                    AddNewCloneRow(addRow, cloneRow, repairNo, repairType, cloneDS);

                    cloneRow = cloneDS.Tables["Tmp_RepairHis"].NewRow();
                    repairNo = row["REPAIRNO"].ToString();
                    repairType = row["REPAIRTYPE"].ToString();
                }

                addRow = row;
            }
            AddNewCloneRow(addRow, cloneRow, repairNo, repairType, cloneDS);
            cloneDS.AcceptChanges();
            return cloneDS;
        }

 

     private static void AddNewCloneRow(DataRow row, DataRow cloneRow, string repairNo, string repairType, DataSet cloneDS)
        {
            cloneRow["REPAIRNO"] = repairNo;
            cloneRow["REPAIRTYPE"] = repairType;
            //补充完整其他的数据行
            cloneRow["UNDERTAKER10"] = row["UNDERTAKER10"];
            cloneRow["RECEIVERNAME"] = row["RECEIVERNAME"];
            cloneRow["WALKDISTANCE"] = row["WALKDISTANCE"];
            cloneRow["RECEIVETIME"] = row["RECEIVETIME"];
            cloneRow["DELIVEREDDATE"] = row["DELIVEREDDATE"];
            cloneRow["ISINSURANCE"] = row["ISINSURANCE"];
            cloneRow["FIXEDDATE"] = row["FIXEDDATE"];
            cloneRow["CLAIMSNNAME"] = row["CLAIMSNNAME"];
            cloneRow["TOTALFEE"] = row["TOTALFEE"];

            cloneDS.Tables["Tmp_RepairHis"].Rows.Add(cloneRow);
        }

 

相关文章:

  • 2022-02-02
  • 2022-12-23
  • 2022-12-23
  • 2021-10-22
  • 2022-01-15
  • 2021-12-18
  • 2022-12-23
  • 2021-11-21
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-09-02
  • 2022-02-17
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案