Commit a8c9e0c7 authored by solho's avatar solho

1,新增關帳相關

2.新增案件統計SP
parent 023fdbdf
...@@ -207,5 +207,62 @@ namespace WebAPI.Controllers ...@@ -207,5 +207,62 @@ namespace WebAPI.Controllers
result.Content = new StringContent(JsonConvert.SerializeObject(response), System.Text.Encoding.UTF8, "application/json"); result.Content = new StringContent(JsonConvert.SerializeObject(response), System.Text.Encoding.UTF8, "application/json");
return result; return result;
} }
/// <summary>
/// 案件統計 SP測試1
/// </summary>
/// <param name="param"></param>
/// <returns></returns>
[Route("rpt_CustCaseTot_board")]
[CorsHandle]
[HttpPost]
public HttpResponseMessage rpt_CustCaseTot_board(ParamModel param)
{
if (param != null && param.Input != null && !string.IsNullOrWhiteSpace((param.Input.ToString())))
{
string input = param.Input.ToString();
JObject obj_input = JObject.Parse(input.ToString());
try
{
using (SqlConnection Conn = new SqlConnection(connString))
{
String sqlstr = "[dbo].[rpt_CustCaseTot_board] @Start_YM,@End_YM,@RptType,@CustName,@DisplayType,@DataMode ;";
SqlCommand cmd = new SqlCommand("", Conn)
{
CommandText = sqlstr
};
cmd.Parameters.AddWithValue("@Start_YM", obj_input["Start_YM"].ToString());
cmd.Parameters.AddWithValue("@End_YM", obj_input["End_YM"].ToString());
cmd.Parameters.AddWithValue("@RptType", obj_input["RptType"].ToString());
cmd.Parameters.AddWithValue("@CustName", obj_input["CustName"].ToString());
cmd.Parameters.AddWithValue("@DisplayType", obj_input["DisplayType"].ToString());
cmd.Parameters.AddWithValue("@DataMode", obj_input["DataMode"].ToString());
DataTable dt = SqlToDt(cmd);
DataRow dr;
for (int i = 0; i < dt.Rows.Count; i++)
{
dr = dt.Rows[i];
}
response.Code = "1";
string JSONString = string.Empty;
JSONString = JsonConvert.SerializeObject(dt);
response.Msg = JSONString;
}
}
catch (Exception e)
{
response.Code = "0";
response.Msg = "Exception:" + e.StackTrace;
}
}
else
{
response.Code = "0";
response.Msg = "no input or format error";
}
result.Content = new StringContent(JsonConvert.SerializeObject(response), System.Text.Encoding.UTF8, "application/json");
return result;
}
} }
} }
...@@ -6,6 +6,7 @@ using System.Data; ...@@ -6,6 +6,7 @@ using System.Data;
using System.Data.SqlClient; using System.Data.SqlClient;
using System.Net; using System.Net;
using System.Net.Http; using System.Net.Http;
using System.Text;
using System.Web.Http; using System.Web.Http;
using WebAPI.Models; using WebAPI.Models;
using static WebAPI.Tool.Common; using static WebAPI.Tool.Common;
...@@ -49,9 +50,11 @@ namespace WebAPI.Controllers ...@@ -49,9 +50,11 @@ namespace WebAPI.Controllers
CommandText = @" CommandText = @"
SELECT top 1 isClosed, Settle_Date SELECT top 1 isClosed, Settle_Date
FROM esn_todos_Settle a FROM esn_todos_Settle a
where [settle_date] between @Settle_Date and @Settle_Date ; inner join esn_todos_Settle_config b on a.DeptNum=b.DeptNum and a.DSNum=b.DSNum and a.ItemNum=b.ItemNum
where [settle_date] between @Settle_Date and @Settle_Date and b.is_enabled = 1;
SELECT top 1 DATEADD(month,1,[settle_date]) as settle_date_next SELECT top 1 DATEADD(month,1,[settle_date]) as settle_date_next
FROM esn_todos_Settle FROM esn_todos_Settle a
inner join esn_todos_Settle_config b on a.DeptNum=b.DeptNum and a.DSNum=b.DSNum and a.ItemNum=b.ItemNum
where isClosed=1 where isClosed=1
order by [settle_date] desc; order by [settle_date] desc;
" "
...@@ -59,6 +62,7 @@ namespace WebAPI.Controllers ...@@ -59,6 +62,7 @@ namespace WebAPI.Controllers
string Settle_Date = obj_input["Settle_Date"].ToString() == "" ? "" : obj_input["Settle_Date"].ToString() + "-01"; string Settle_Date = obj_input["Settle_Date"].ToString() == "" ? "" : obj_input["Settle_Date"].ToString() + "-01";
cmd.Parameters.AddWithValue("@Settle_Date", Settle_Date); cmd.Parameters.AddWithValue("@Settle_Date", Settle_Date);
cmd.Parameters.AddWithValue("@user_id", obj_input["gWadeID"].ToString());
DataSet ds = SqlToDs(cmd); DataSet ds = SqlToDs(cmd);
JObject jdata = new JObject(); JObject jdata = new JObject();
if (ds.Tables[0].Rows.Count > 0) if (ds.Tables[0].Rows.Count > 0)
...@@ -106,7 +110,7 @@ namespace WebAPI.Controllers ...@@ -106,7 +110,7 @@ namespace WebAPI.Controllers
result.Content = new StringContent(JsonConvert.SerializeObject(response), System.Text.Encoding.UTF8, "application/json"); result.Content = new StringContent(JsonConvert.SerializeObject(response), System.Text.Encoding.UTF8, "application/json");
return result; return result;
} }
[Route("UpdateSettle")] [Route("UpdateEsntodosSettle")]
[CorsHandle] [CorsHandle]
[HttpPost] [HttpPost]
public HttpResponseMessage Update_Esn_todos_Settle(ParamModel param) public HttpResponseMessage Update_Esn_todos_Settle(ParamModel param)
...@@ -119,60 +123,61 @@ namespace WebAPI.Controllers ...@@ -119,60 +123,61 @@ namespace WebAPI.Controllers
{ {
using (SqlConnection Conn = new SqlConnection(connString)) using (SqlConnection Conn = new SqlConnection(connString))
{ {
String sqlstr = @"select * from esn_todos_Settle_config a
String sns = obj_input["SN"].ToString(); where a. user_id=@user_id and is_enabled=1;";
String sqlstr = @"select td.SN, tdp.SN as SN_tdp,td.points,AssignedTo_userid FROM esn_todos td
left join esn_todos_points tdp on tdp.sn=td.sn
WHERE td.sn in ("+ sns +")";
String value = obj_input["value"].ToString();
value = value == "" ? "null" : obj_input["value"].ToString();
SqlCommand cmd = new SqlCommand("",Conn) SqlCommand cmd = new SqlCommand("",Conn)
{ {
CommandText = sqlstr CommandText = sqlstr
}; };
cmd.Parameters.AddWithValue("@SN", obj_input["SN"].ToString()); cmd.Parameters.AddWithValue("@user_id", obj_input["gWadeID"].ToString());
DataTable dt = SqlToDt(cmd); DataTable dtL1 = SqlToDt(cmd);
String point, AssignedTo_userID ; //cmd.Parameters.Clear();
DataRow dr; StringBuilder strsql = new StringBuilder();
sqlstr = "declare @TempTable TABLE(id INT) declare @FlowId int; "; String wherecase ;
cmd.Parameters.Clear(); DataRow drL1;
for (int i = 0;i< dt.Rows.Count;i++ ) for(int i=0;i< dtL1.Rows.Count;i++)
{ {
dr = dt.Rows[i]; drL1 = dtL1.Rows[i];
point = dr["points"].ToString(); wherecase = "";
AssignedTo_userID = dr["AssignedTo_userID"].ToString();
if (dr["SN_tdp"] == DBNull.Value)
{
sqlstr += string.Format(@"insert into esn_todos_points(sn,date_points_settlement,date_points_settlement_AssignTo,date_points_settlement_Point,update_user_id,update_time)
values (@SN{0},@value,@AssignedTo_userID{0},@points{0},@gWadeID,getdate()); ", i);
}
else
{
sqlstr += string.Format(@"update esn_todos_points set date_points_settlement=@value,date_points_settlement_AssignTo=@AssignedTo_userID{0}
,date_points_settlement_Point=@points{0} ,update_user_id=@gWadeID,Update_time=GETDATE() where SN =@SN{0};", i);
} wherecase += " and DSNum = @DSNum" + i;
cmd.Parameters.AddWithValue(string.Format("@SN{0}",i), dr["SN"].ToString()); cmd.Parameters.AddWithValue("@DSNum" + i, drL1["DSNum"].ToString());
cmd.Parameters.AddWithValue(string.Format("@AssignedTo_userID{0}", i), AssignedTo_userID); wherecase += " and DeptNum = @DeptNum" + i;
cmd.Parameters.AddWithValue(string.Format("@points{0}", i), point); cmd.Parameters.AddWithValue("@DeptNum" + i, drL1["DeptNum"].ToString());
wherecase += " and ItemNum = @ItemNum" + i;
cmd.Parameters.AddWithValue("@ItemNum" + i, drL1["ItemNum"].ToString());
#region MERGE
//strsql.Append(String.Format(@"MERGE INTO esn_todos_Settle WITH(HOLDLOCK) as target
//USING(select DSNum, DeptNum, ItemNum, Settle_Date from esn_todos_Settle where Settle_Date
//between @Settle_Date and @Settle_Date " + wherecase + @" ) as source(DSNum, DeptNum, ItemNum, Settle_Date)
//on(target.DSNum = source.DSNum and target.DeptNum = source.DeptNum and target.ItemNum = source.ItemNum and target.Settle_Date = source.Settle_Date)
//WHEN MATCHED THEN UPDATE SET isClosed = 1, update_time = getdate(), update_user_id = @user_id, Create_user_id = @user_id, Create_time = getdate()
//WHEN NOT MATCHED THEN INSERT(DSNum,DeptNum,ItemNum,isClosed, update_time, update_user_id, Create_user_id, Create_time)
//VALUES(@DSNum{0},@DeptNum{0},@ItemNum{0},1,@user_id,getdate(),@user_id,getdate())", i));
#endregion
sqlstr += string.Format(@"update esn_todos_Flow Set Is_Settlement = 1,update_user_id = @gWadeID,Update_time = GETDATE() #region MERGE
,StepType_id =(select id from esn_todos_Flow_StepType a where a.Map_Class='HR') output INSERTED.id INTO @TempTable where esn_todos_sn =@SN{0};
select @FlowId=id from @TempTable;
insert into esn_todos_Flow_his(Flow_id,ConfirmTime,FromType_id,ToType_id,ConfirmUserId,ConfirmUserClass,ConfirmMethod,Description,Create_User_id,Create_time)
select id as Flow_id,@value,a.StepType_id,StepType_id,@gWadeID,'HR','SL','確認日期:' + @value,@gWadeID,GETDATE() from esn_todos_Flow a where a.id=@FlowId;
", i);
strsql.Append(String.Format(@"MERGE INTO esn_todos_Settle WITH(HOLDLOCK) as target
USING(select @DSNum{0}, @DeptNum{0}, @ItemNum{0} ,@Settle_Date as Settle_Date ) as source(DSNum, DeptNum, ItemNum, Settle_Date)
on(target.DSNum = source.DSNum and target.DeptNum = source.DeptNum and target.ItemNum = source.ItemNum and target.Settle_Date = source.Settle_Date)
WHEN MATCHED THEN UPDATE SET isClosed = 1, update_time = getdate(), update_user_id = @user_id, Create_user_id = @user_id, Create_time = getdate()
WHEN NOT MATCHED THEN INSERT(Settle_Date,DSNum,DeptNum,ItemNum,isClosed, update_user_id, update_time, Create_user_id, Create_time)
VALUES(@Settle_Date,@DSNum{0},@DeptNum{0},@ItemNum{0},1,@user_id,getdate(),@user_id,getdate())
OUTPUT $action ", i));
#endregion
//strsql.Append(@"update esn_todos_Settle set isClosed=0,update_time=getdate(),update_user_id=@user_id
// where Settle_Date between @Settle_Date and @Settle_Date ");
strsql.Append(";");
} }
cmd.Parameters.AddWithValue("@value", value); cmd.Parameters.AddWithValue("@Settle_Date", Convert.ToDateTime(obj_input["Settle_Date"].ToString()));
cmd.Parameters.AddWithValue("@gWadeID", obj_input["gWadeID"].ToString()); cmd.CommandText = strsql.ToString();
cmd.CommandText = sqlstr; DataTable dt = SqlToDt(cmd);
dt = SqlToDt(cmd);
response.Code = "1"; response.Code = "1";
string JSONString = string.Empty; response.Msg = "已關帳";
JSONString = JsonConvert.SerializeObject(dt);
response.Msg = "確認完畢";
} }
} }
catch (Exception e) catch (Exception e)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment