You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1045 lines
49 KiB
C#
1045 lines
49 KiB
C#
|
|
using System;
|
|
using System.Data;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using DSWeb.MvcShipping.Models.MsOpTask;
|
|
using Microsoft.Practices.EnterpriseLibrary.Data;
|
|
using DSWeb.EntityDA;
|
|
using HcUtility.Comm;
|
|
using DSWeb.MvcShipping.Models.MsUserAuthority;
|
|
using DSWeb.MvcShipping.DAL.MsChFeeDAL;
|
|
using DSWeb.Areas.CommMng.Models;
|
|
using DSWeb.Areas.CommMng.DAL;
|
|
using DSWeb.Common.DB;
|
|
using System.Data.Entity.Migrations;
|
|
using DSWeb.TruckMng.Helper;
|
|
using static DSWeb.Areas.Dispatch.Controllers.InterfaceController;
|
|
using System.Linq;
|
|
|
|
namespace DSWeb.Areas.MvcShipping.DAL
|
|
{
|
|
public class MsOpTaskDAL
|
|
{
|
|
#region Inquery DataList
|
|
|
|
static public List<OpTask> GetDataList(int start, int limit, string strCondition, string userid, string usercode, string companyid, string sort = null)
|
|
{
|
|
//var rangestr = BasicDataRefDAL.GetVisableRange("任务管理", userid, "b.CORPID", new string[] { "b.OP", "b.CUSTSERVICE" } , "b.SALEDEPT");
|
|
var rangstr = GetRangDAStr("index", userid, usercode, companyid);
|
|
if (!string.IsNullOrEmpty(rangstr))
|
|
{
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
{
|
|
strCondition = strCondition + " and " + rangstr;
|
|
}
|
|
else
|
|
{
|
|
strCondition = rangstr;
|
|
}
|
|
}
|
|
var strSql = new StringBuilder();
|
|
strSql.Append(@"SELECT * from (SELECT row_number() over (");
|
|
var sortstring = DatasetSort.Getsortstring(sort);
|
|
if (!string.IsNullOrEmpty(sortstring))
|
|
{
|
|
sortstring = sortstring.Replace("CREATETIME", "t.CREATETIME");
|
|
sortstring = sortstring.Replace("OP", "t.OP");
|
|
strSql.Append(" order by " + sortstring);
|
|
}
|
|
else
|
|
{
|
|
strSql.Append(" order by TASKNO DESC ");
|
|
}
|
|
strSql.Append(@") as num , ");
|
|
strSql.Append("t.GID,t.TASKNO,t.PTASKNO,t.TASKTYPE,t.TASKSOURCE,t.TASKSTATUS,t.TASKTITLE,t.TASKDESCRIP,t.CREATEUSER,t.CORPID,t.CREATETIME,t.TASKBEGINDATE");
|
|
strSql.Append(",t.COMPLETETYPE,t.COMPLETETIME,t.KPI,ISNULL(b.MBLNO,t.MBLNO) MBLNO,t.FILENO,t.MAILNO,t.FILEPATH,t.ISPUBLIC,t.OP,t.BSNO,t.ISCOMPLETE,t.REMARK,b.CUSTOMERNAME,b.ETD,b.CARRIER,b.CUSTNO ");
|
|
strSql.Append(" from op_task t left join v_op_bs b on (b.BSNO=t.BSNO) ");
|
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
{
|
|
strSql.Append(" where t.TASKSTATUS!='待挂单' and " + strCondition);
|
|
}
|
|
if (!string.IsNullOrEmpty(rangstr))
|
|
{
|
|
strSql.Append(" and " + rangstr);
|
|
}
|
|
strSql.Append(@")as t ");
|
|
strSql.Append(string.Format("where t.num>{0} and t.num<={1} order by t.num ", start, start + limit)); //
|
|
|
|
return SetData(strSql);
|
|
}
|
|
|
|
|
|
public static int getTotalCount(string strCondition, string userid, string usercode, string companyid)
|
|
{
|
|
var rangstr = GetRangDAStr("index", userid, usercode, companyid);
|
|
if (!string.IsNullOrEmpty(rangstr))
|
|
{
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
{
|
|
strCondition = strCondition + " and " + rangstr;
|
|
}
|
|
else
|
|
{
|
|
strCondition = rangstr;
|
|
}
|
|
}
|
|
StringBuilder strSql = new StringBuilder();
|
|
strSql.Append("select count(*) ");
|
|
strSql.Append(" from op_task t left join v_op_bs b on (b.BSNO=t.BSNO) ");
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
{
|
|
strSql.Append(" where t.TASKSTATUS!='待挂单' and " + strCondition);
|
|
}
|
|
int cnt = 0;
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
{
|
|
while (reader.Read())
|
|
{
|
|
cnt = Convert.ToInt32(reader[0]);
|
|
}
|
|
}
|
|
return cnt;
|
|
}
|
|
|
|
static public OpTask GetData(string condition)
|
|
{
|
|
var strSql = new StringBuilder();
|
|
strSql.Append("SELECT ");
|
|
strSql.Append("t.GID,t.TASKNO,t.PTASKNO,t.TASKTYPE,t.TASKSOURCE,t.TASKSTATUS,t.TASKTITLE,t.TASKDESCRIP,t.CREATEUSER,t.CORPID,t.CREATETIME,t.TASKBEGINDATE");
|
|
strSql.Append(",t.COMPLETETYPE,t.COMPLETETIME,t.KPI,ISNULL(b.MBLNO,t.MBLNO) MBLNO,t.FILENO,t.MAILNO,t.FILEPATH,t.ISPUBLIC,t.OP,t.BSNO,t.ISCOMPLETE,t.REMARK,b.CUSTOMERNAME,b.ETD,b.CARRIER,b.CUSTNO ");
|
|
strSql.Append(" from op_task t left join v_op_bs b on (b.BSNO=t.BSNO) ");
|
|
if (!string.IsNullOrEmpty(condition))
|
|
{
|
|
strSql.Append(" where " + condition);
|
|
}
|
|
var list = SetData(strSql);
|
|
if (list.Count > 0)
|
|
return list[0];
|
|
|
|
return new OpTask();
|
|
}
|
|
|
|
|
|
private static List<OpTask> SetData(StringBuilder strSql)
|
|
{
|
|
var headList = new List<OpTask>();
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
{
|
|
while (reader.Read())
|
|
{
|
|
OpTask data = new OpTask();
|
|
#region Set DB data to Object
|
|
data.GID = Convert.ToString(reader["GID"]);
|
|
data.TASKNO = Convert.ToString(reader["TASKNO"]);
|
|
data.PTASKNO = Convert.ToString(reader["PTASKNO"]);
|
|
data.TASKTYPE = Convert.ToString(reader["TASKTYPE"]);
|
|
data.TASKSOURCE = Convert.ToString(reader["TASKSOURCE"]);
|
|
data.TASKSTATUS = Convert.ToString(reader["TASKSTATUS"]);
|
|
data.TASKTITLE = Convert.ToString(reader["TASKTITLE"]);
|
|
data.TASKDESCRIP = Convert.ToString(reader["TASKDESCRIP"]);
|
|
data.CREATEUSER = Convert.ToString(reader["CREATEUSER"]);
|
|
data.CORPID = Convert.ToString(reader["CORPID"]);
|
|
if (reader["CREATETIME"] != DBNull.Value)
|
|
data.CREATETIME = Convert.ToDateTime(reader["CREATETIME"]).ToString("yyyy-MM-dd HH:mm:ss");//截港日期
|
|
if (reader["TASKBEGINDATE"] != DBNull.Value)
|
|
data.TASKBEGINDATE = Convert.ToDateTime(reader["TASKBEGINDATE"]).ToString("yyyy-MM-dd HH:mm:ss");//截港日期
|
|
if (reader["COMPLETETIME"] != DBNull.Value)
|
|
data.COMPLETETIME = Convert.ToDateTime(reader["COMPLETETIME"]).ToString("yyyy-MM-dd HH:mm:ss");//截港日期
|
|
data.COMPLETETYPE = Convert.ToString(reader["COMPLETETYPE"]);
|
|
data.KPI = Convert.ToString(reader["KPI"]);
|
|
data.MBLNO = Convert.ToString(reader["MBLNO"]);
|
|
data.FILENO = Convert.ToString(reader["FILENO"]);
|
|
data.MAILNO = Convert.ToString(reader["MAILNO"]);
|
|
data.FILEPATH = Convert.ToString(reader["FILEPATH"]);
|
|
data.ISPUBLIC = Convert.ToString(reader["ISPUBLIC"]);
|
|
data.OP = Convert.ToString(reader["OP"]);
|
|
data.BSNO = Convert.ToString(reader["BSNO"]);
|
|
data.ISCOMPLETE = Convert.ToString(reader["ISCOMPLETE"]);
|
|
data.REMARK = Convert.ToString(reader["REMARK"]);
|
|
if (reader["ETD"] != DBNull.Value)
|
|
data.ETD = Convert.ToDateTime(reader["ETD"]).ToString("yyyy-MM-dd");//到港日期
|
|
data.CUSTOMERNAME = Convert.ToString(reader["CUSTOMERNAME"]);
|
|
data.CARRIER = Convert.ToString(reader["CARRIER"]);
|
|
data.CUSTNO = Convert.ToString(reader["CUSTNO"]);
|
|
|
|
#endregion
|
|
headList.Add(data);
|
|
}
|
|
reader.Close();
|
|
}
|
|
return headList;
|
|
}
|
|
#endregion
|
|
|
|
|
|
static public List<UserTreeRefModel> GetTaskTreeRefList(string PARENTID, string strCondition, string userid, string usercode, string companyid)
|
|
{
|
|
var rangstr = GetRangDAStr("index", userid, usercode, companyid);
|
|
if (!string.IsNullOrEmpty(rangstr))
|
|
{
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
{
|
|
strCondition = strCondition + " and " + rangstr;
|
|
}
|
|
else
|
|
{
|
|
strCondition = rangstr;
|
|
}
|
|
}
|
|
|
|
var strSql = new StringBuilder();
|
|
strSql.Append("SELECT ");
|
|
strSql.Append(" GID,NAME,DESCRIPTION,PARENTID,TYPE,TASTCOUNT from (SELECT GID,NAME,DESCRIPTION,PARENTID,TYPE,sum(TASTCOUNT) TASTCOUNT ");
|
|
strSql.Append(" from ( select DISTINCT convert(varchar(20),isnull(ISCOMPLETE,0)) GID,(CASE WHEN ISCOMPLETE=1 THEN '已完成' ELSE '未完成' END) NAME,(CASE WHEN ISCOMPLETE=1 THEN '已完成' ELSE '未完成' END) DESCRIPTION ,'-1' PARENTID,'0' TYPE,COUNT(*) TASTCOUNT from op_task t left join v_op_bs b on (b.BSNO=t.BSNO) ");
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
{
|
|
strSql.Append(" where TASKSTATUS!='待挂单' and " + strCondition);
|
|
}
|
|
strSql.Append(" GROUP BY t.ISCOMPLETE) as z group by GID,NAME,DESCRIPTION,PARENTID,TYPE ");
|
|
strSql.Append(" union select DISTINCT TASKTYPE+''+convert(varchar(20),isnull(ISCOMPLETE,0)) GID, TASKTYPE NAME, TASKTYPE DESCRIPTION,isnull(ISCOMPLETE,0) PARENTID, '1' TYPE, COUNT(*) TASTCOUNT from op_task t left join v_op_bs b on (b.BSNO=t.BSNO) ");
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
{
|
|
strSql.Append(" where TASKSTATUS!='待挂单' and " + strCondition);
|
|
}
|
|
strSql.Append(" GROUP BY TASKTYPE, ISNULL(ISCOMPLETE,0)) as v ");
|
|
strSql.Append(" where parentid='" + PARENTID + "' ");
|
|
|
|
return SetUserTreeRefData(strSql);
|
|
}
|
|
|
|
private static List<UserTreeRefModel> SetUserTreeRefData(StringBuilder strSql)
|
|
{
|
|
var headList = new List<UserTreeRefModel>();
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
{
|
|
while (reader.Read())
|
|
{
|
|
UserTreeRefModel data = new UserTreeRefModel();
|
|
#region Set DB data to Object
|
|
data.id = Convert.ToString(reader["GID"]);
|
|
data.NAME = Convert.ToString(reader["NAME"]);
|
|
data.DESCRIPTION = Convert.ToString(reader["DESCRIPTION"]);
|
|
data.PARENTID = Convert.ToString(reader["PARENTID"]);
|
|
data.TYPE = Convert.ToString(reader["TYPE"]);
|
|
if (reader["TASTCOUNT"] != DBNull.Value)
|
|
data.TASTCOUNT = Convert.ToInt32(reader["TASTCOUNT"]);
|
|
data.DESCRIPTION = data.DESCRIPTION + "(" + data.TASTCOUNT + ")";
|
|
|
|
if (data.TYPE == "1")
|
|
{
|
|
data.leaf = true;
|
|
data.expanded = true;
|
|
}
|
|
else
|
|
{
|
|
data.leaf = false;
|
|
data.expanded = true;
|
|
|
|
};
|
|
#endregion
|
|
headList.Add(data);
|
|
}
|
|
reader.Close();
|
|
}
|
|
return headList;
|
|
}
|
|
|
|
|
|
#region 保存,删除
|
|
|
|
|
|
public static DBResult DeleteTask(List<OpTask> bodyList)
|
|
{
|
|
var result = new DBResult();
|
|
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (var conn = db.CreateConnection())
|
|
{
|
|
conn.Open();
|
|
var tran = conn.BeginTransaction();
|
|
|
|
try
|
|
{
|
|
|
|
var cmdInsert =
|
|
db.GetSqlStringCommand(
|
|
@"delete from op_task where GID=@GID ");
|
|
|
|
if (bodyList != null)
|
|
{
|
|
foreach (var enumValue in bodyList)
|
|
{
|
|
|
|
cmdInsert.Parameters.Clear();
|
|
db.AddInParameter(cmdInsert, "@GID", DbType.String, enumValue.GID);
|
|
db.ExecuteNonQuery(cmdInsert, tran);
|
|
|
|
}
|
|
}
|
|
|
|
tran.Commit();
|
|
}
|
|
catch (Exception)
|
|
{
|
|
tran.Rollback();
|
|
|
|
result.Success = false;
|
|
result.Message = "删除出现错误,请重试或联系系统管理员";
|
|
|
|
return result;
|
|
}
|
|
}
|
|
|
|
result.Success = true;
|
|
result.Message = "删除成功" + result.Message;
|
|
|
|
return result;
|
|
}
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
public static DBResult UpTransStatus(List<OpTask> bodyList, string transstatus, string op)
|
|
{
|
|
var result = new DBResult();
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (var conn = db.CreateConnection())
|
|
{
|
|
conn.Open();
|
|
var tran = conn.BeginTransaction();
|
|
try
|
|
{
|
|
|
|
if (bodyList != null)
|
|
{
|
|
|
|
var cmdInsertFee =
|
|
db.GetSqlStringCommand(
|
|
@"delete from ch_fee where BSNO=@BSNO AND CARGO_GID=@CARGO_GID ");
|
|
foreach (var enumValue in bodyList)
|
|
{
|
|
|
|
if (((enumValue.TASKTYPE == "待派车") || (enumValue.TASKTYPE == "待派车(重新提交)") || (enumValue.TASKTYPE == "派车中") || (enumValue.TASKTYPE == "已派车") || (enumValue.TASKTYPE == "派车已发单")) && (transstatus == "取消任务"))
|
|
{
|
|
var cmdupdate = db.GetSqlStringCommand("update op_task set TASKTYPE='驳回派车',OP='',ISPUBLIC=1,ISCOMPLETE=0,COMPLETETIME=null where GID=@GID");
|
|
cmdupdate.Parameters.Clear();
|
|
db.AddInParameter(cmdupdate, "@GID", DbType.String, enumValue.GID);
|
|
db.ExecuteNonQuery(cmdupdate, tran);
|
|
var cmdinsertState = db.GetSqlStringCommand("update op_letter_truck set TRUCKSTATUS='待派车',ISFEE='0' where LE_ID=@LE_ID");
|
|
cmdinsertState.Parameters.Clear();
|
|
db.AddInParameter(cmdinsertState, "@LE_ID", DbType.String, enumValue.TASKNO);
|
|
db.ExecuteNonQuery(cmdinsertState, tran);
|
|
|
|
cmdInsertFee.Parameters.Clear();
|
|
|
|
db.AddInParameter(cmdInsertFee, "@BSNO", DbType.String, enumValue.BSNO);
|
|
db.AddInParameter(cmdInsertFee, "@CARGO_GID", DbType.String, enumValue.TASKNO);
|
|
|
|
db.ExecuteNonQuery(cmdInsertFee, tran);
|
|
|
|
|
|
}
|
|
else
|
|
{
|
|
var cmdupdate = db.GetSqlStringCommand("update op_task set TASKSTATUS=@TASKSTATUS where GID=@GID");
|
|
if (transstatus == "取消任务") cmdupdate = db.GetSqlStringCommand("update op_task set TASKSTATUS=@TASKSTATUS,ISCOMPLETE=1,COMPLETETYPE='人工',COMPLETETIME=GETDATE(),OP='" + op + "' where GID=@GID");
|
|
cmdupdate.Parameters.Clear();
|
|
db.AddInParameter(cmdupdate, "@GID", DbType.String, enumValue.GID);
|
|
db.AddInParameter(cmdupdate, "@TASKSTATUS", DbType.String, transstatus);
|
|
db.ExecuteNonQuery(cmdupdate, tran);
|
|
var cmdinsertState = db.GetSqlStringCommand("insert into op_task_state (GID,TASKNO,TASKSTATUS,OP,OPTIME) values (newid(),@TASKNO,@TASKSTATUS,@OP,GETDATE())");
|
|
cmdinsertState.Parameters.Clear();
|
|
db.AddInParameter(cmdinsertState, "@TASKNO", DbType.String, enumValue.TASKNO);
|
|
db.AddInParameter(cmdinsertState, "@TASKSTATUS", DbType.String, transstatus);
|
|
db.AddInParameter(cmdinsertState, "@OP", DbType.String, op);
|
|
db.ExecuteNonQuery(cmdinsertState, tran);
|
|
}
|
|
|
|
}
|
|
}
|
|
tran.Commit();
|
|
result.Success = true;
|
|
result.Message = "更新完成!";
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
tran.Rollback();
|
|
|
|
result.Success = false;
|
|
result.Message = "更新出现错误,请重试或联系系统管理员" + e.Message;
|
|
|
|
return result;
|
|
}
|
|
|
|
|
|
}
|
|
return result;
|
|
}
|
|
|
|
public static DBResult ImpInvoice(OpTask headData, string op, string userid, string companyid)
|
|
{
|
|
var result = new DBResult();
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA();
|
|
|
|
var edifeelist = MsChFeeDAL.GetEdiDataList(" reportid='" + headData.TASKNO + "'");
|
|
|
|
if (edifeelist.Count == 0) {
|
|
result.Success = false;
|
|
result.Message = result.Message + " 提单号:" + headData.MBLNO + " 没有需要引入的费用!";
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
var BSNO = T_ALL_DA.GetStrSQL("BSNO", "select BSNO from V_OP_BS where FEESTATUS=0 AND BSNO='" + headData.BSNO + "'");
|
|
if (BSNO == "")
|
|
{
|
|
result.Success = false;
|
|
result.Message = result.Message + " 提单号:" + headData.MBLNO + " 无法导入,请确认提单号正确并未费用封账!";
|
|
return result;
|
|
}
|
|
|
|
var FEECOUNT = T_ALL_DA.GetStrSQL("FEECOUNT", "select COUNT(*) FEECOUNT from CH_FEE where F_NO='" + edifeelist[0].InvoiceNum + "' and isnull(SETTLEMENT,0)<>0 and isnull(INVOICE,0)<>0 and isnull(ORDERAMOUNT,0)<>0 and isnull(ORDERINVOICE,0)<>0 ");
|
|
if (FEECOUNT != "0")
|
|
{
|
|
result.Success = false;
|
|
result.Message = result.Message + " 提单号:" + headData.MBLNO + " 已经导入,不能重复导入,请手动处理!";
|
|
return result;
|
|
}
|
|
if (edifeelist[0].INPUTMODE != "更正发票") {
|
|
var FEECOUNT2 = T_ALL_DA.GetStrSQL("FEECOUNT2", "select COUNT(*) FEECOUNT2 from CH_FEE where F_NO='" + edifeelist[0].InvoiceNum + "' ");
|
|
if (FEECOUNT2 != "0")
|
|
{
|
|
result.Success = false;
|
|
result.Message = result.Message + " 提单号:" + headData.MBLNO + " 已经导入,不能重复导入,请手动处理!";
|
|
return result;
|
|
}
|
|
|
|
}
|
|
|
|
var feecurrlist = MsChFeeDAL.GetFeeDateCurrList("op_Seae", headData.BSNO, userid, companyid);
|
|
|
|
using (var conn = db.CreateConnection())
|
|
{
|
|
conn.Open();
|
|
var tran = conn.BeginTransaction();
|
|
try
|
|
{
|
|
var cmddelete = db.GetSqlStringCommand("delete from ch_fee where F_NO=@F_NO and BSNO=@BSNO");
|
|
cmddelete.Parameters.Clear();
|
|
db.AddInParameter(cmddelete, "@F_NO", DbType.String, edifeelist[0].InvoiceNum);
|
|
db.AddInParameter(cmddelete, "@BSNO", DbType.String, headData.BSNO);
|
|
db.ExecuteNonQuery(cmddelete, tran);
|
|
|
|
var cmdInsert =
|
|
db.GetSqlStringCommand(
|
|
@"INSERT INTO ch_fee(GID, BSNO, FEETYPE, FEENAME, FEEDESCRIPTION, CUSTOMERTYPE, CUSTOMERNAME, UNIT, UNITPRICE, QUANTITY, AMOUNT, CURRENCY,
|
|
EXCHANGERATE, REASON, REMARK, COMMISSIONRATE,ENTEROPERATOR, ENTERDATE,ISOPEN, ISADVANCEDPAY, SORT, FEESTATUS, FEEFRT,
|
|
TAXRATE,NOTAXAMOUNT,ACCTAXRATE,LINENUM,TAXUNITPRICE,MODIFIEDUSER,MODIFIEDTIME,WMSOUTBSNO,PREAMOUNT,INPUTMODE,F_NO)
|
|
VALUES
|
|
(@gid,@bsno,@fee_type,@fee_name,@fee_description,@customer_type,@customer_name,@unit,@unit_price,@quantity,@amount,@currency,
|
|
@exchange_rate,@reason,@remark,@comm_rate,@enter_operator,@enter_date,@is_open,@is_advance_pay,@sort,@fee_status,@fee_frt,
|
|
@taxrate,@notaxamount,@acctaxrate,@LINENUM,@taxunit_price,@MODIFIEDUSER,@MODIFIEDTIME,@WMSOUTBSNO,@PREAMOUNT,@INPUTMODE,@F_NO) ");
|
|
|
|
|
|
foreach (var enumValue in edifeelist)
|
|
{
|
|
|
|
var exchangerate = enumValue.ExChangerate;
|
|
if (enumValue.Currency != "RMB" && exchangerate == 1) {
|
|
foreach (var enumcurr in feecurrlist)
|
|
{
|
|
if (enumcurr.CURR == enumValue.Currency)
|
|
exchangerate = enumcurr.CRDEFRATE;
|
|
}
|
|
|
|
}
|
|
|
|
cmdInsert.Parameters.Clear();
|
|
db.AddInParameter(cmdInsert, "@gid", DbType.String, Guid.NewGuid().ToString());
|
|
db.AddInParameter(cmdInsert, "@bsno", DbType.String, headData.BSNO);
|
|
db.AddInParameter(cmdInsert, "@fee_type", DbType.Int16, 2);
|
|
db.AddInParameter(cmdInsert, "@fee_name", DbType.String, enumValue.FeeName);
|
|
db.AddInParameter(cmdInsert, "@customer_type", DbType.String, enumValue.CustomerType);
|
|
db.AddInParameter(cmdInsert, "@customer_name", DbType.String, enumValue.CustomerName);
|
|
db.AddInParameter(cmdInsert, "@unit", DbType.String, enumValue.Unit);
|
|
db.AddInParameter(cmdInsert, "@unit_price", DbType.Decimal, enumValue.UnitPrice);
|
|
db.AddInParameter(cmdInsert, "@fee_description", DbType.String, enumValue.FeeDescription);
|
|
db.AddInParameter(cmdInsert, "@quantity", DbType.Decimal, 1);
|
|
db.AddInParameter(cmdInsert, "@amount", DbType.Decimal, enumValue.Amount);
|
|
db.AddInParameter(cmdInsert, "@currency", DbType.String, enumValue.Currency);
|
|
db.AddInParameter(cmdInsert, "@exchange_rate", DbType.Decimal, exchangerate);
|
|
db.AddInParameter(cmdInsert, "@reason", DbType.String, "");
|
|
db.AddInParameter(cmdInsert, "@remark", DbType.String, enumValue.Remark);
|
|
|
|
|
|
db.AddInParameter(cmdInsert, "@comm_rate", DbType.Decimal, 0);
|
|
db.AddInParameter(cmdInsert, "@enter_operator", DbType.String, userid);
|
|
db.AddInParameter(cmdInsert, "@enter_date", DbType.String, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
|
db.AddInParameter(cmdInsert, "@is_open", DbType.String, "0");
|
|
db.AddInParameter(cmdInsert, "@is_advance_pay", DbType.String, "0");
|
|
db.AddInParameter(cmdInsert, "@sort", DbType.Int16, enumValue.Sort);
|
|
db.AddInParameter(cmdInsert, "@fee_status", DbType.Int16, 1);
|
|
db.AddInParameter(cmdInsert, "@fee_frt", DbType.String, "");
|
|
db.AddInParameter(cmdInsert, "@taxrate", DbType.Decimal, 0);
|
|
db.AddInParameter(cmdInsert, "@notaxamount", DbType.Decimal, enumValue.NoTaxAmount);
|
|
db.AddInParameter(cmdInsert, "@acctaxrate", DbType.Decimal, 0);
|
|
db.AddInParameter(cmdInsert, "@LINENUM", DbType.Int16, enumValue.Sort);
|
|
db.AddInParameter(cmdInsert, "@taxunit_price", DbType.Decimal, enumValue.Amount);
|
|
db.AddInParameter(cmdInsert, "@MODIFIEDUSER", DbType.String, userid);
|
|
db.AddInParameter(cmdInsert, "@MODIFIEDTIME", DbType.String, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
|
db.AddInParameter(cmdInsert, "@WMSOUTBSNO", DbType.String, "");
|
|
db.AddInParameter(cmdInsert, "@PREAMOUNT", DbType.Decimal, 0);
|
|
db.AddInParameter(cmdInsert, "@INPUTMODE", DbType.String, "EDI引入");
|
|
db.AddInParameter(cmdInsert, "@F_NO", DbType.String, enumValue.InvoiceNum);
|
|
|
|
db.ExecuteNonQuery(cmdInsert, tran);
|
|
|
|
}
|
|
|
|
|
|
var cmdupdate = db.GetSqlStringCommand("update op_task set TASKSTATUS=@TASKSTATUS,ISCOMPLETE=1,COMPLETETYPE='人工',COMPLETETIME=GETDATE(),OP='" + op + "' where GID=@GID");
|
|
cmdupdate.Parameters.Clear();
|
|
db.AddInParameter(cmdupdate, "@GID", DbType.String, headData.GID);
|
|
db.AddInParameter(cmdupdate, "@TASKSTATUS", DbType.String, "已引入");
|
|
db.ExecuteNonQuery(cmdupdate, tran);
|
|
|
|
var cmdinsertState = db.GetSqlStringCommand("insert into op_task_state (GID,TASKNO,TASKSTATUS,OP,OPTIME) values (newid(),@TASKNO,@TASKSTATUS,@OP,GETDATE())");
|
|
cmdinsertState.Parameters.Clear();
|
|
db.AddInParameter(cmdinsertState, "@TASKNO", DbType.String, headData.TASKNO);
|
|
db.AddInParameter(cmdinsertState, "@TASKSTATUS", DbType.String, "已引入");
|
|
db.AddInParameter(cmdinsertState, "@OP", DbType.String, op);
|
|
db.ExecuteNonQuery(cmdinsertState, tran);
|
|
|
|
|
|
tran.Commit();
|
|
result.Success = true;
|
|
result.Message = "更新完成!";
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
tran.Rollback();
|
|
|
|
result.Success = false;
|
|
result.Message = "更新出现错误,请重试或联系系统管理员" + e.Message;
|
|
|
|
return result;
|
|
}
|
|
|
|
|
|
}
|
|
return result;
|
|
}
|
|
|
|
static public string GETFEENAME(string FEECODE)
|
|
{
|
|
|
|
var strSql = new StringBuilder();
|
|
strSql.Append("select top 1 [FEENAME] from code_fee_edi where [FEEENAME]='" + FEECODE + "'");
|
|
var FEENAME = "";
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
{
|
|
while (reader.Read())
|
|
{
|
|
FEENAME = Convert.ToString(reader["FEENAME"]);
|
|
}
|
|
reader.Close();
|
|
}
|
|
if (string.IsNullOrEmpty(FEENAME))
|
|
{
|
|
FEENAME = FEECODE;
|
|
}
|
|
return FEENAME;
|
|
}
|
|
static public string GetCustEDICode(string EDICODE)
|
|
{
|
|
string CUST = "";
|
|
var strSql = new StringBuilder();
|
|
strSql.Append("select CUST from code_cust_edi where EDICODE='" + EDICODE + "'");
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
{
|
|
while (reader.Read())
|
|
{
|
|
CUST = Convert.ToString(reader["CUST"]).Trim();
|
|
}
|
|
reader.Close();
|
|
}
|
|
if (CUST.Trim() == "")
|
|
{
|
|
var strSql2 = new StringBuilder();
|
|
strSql2.Append("select SHORTNAME from info_client WHERE EDICODE='" + EDICODE + "'");
|
|
db = DatabaseFactory.CreateDatabase();
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql2.ToString()))
|
|
{
|
|
while (reader.Read())
|
|
{
|
|
CUST = Convert.ToString(reader["SHORTNAME"]).Trim();
|
|
}
|
|
reader.Close();
|
|
}
|
|
}
|
|
return CUST;
|
|
}
|
|
|
|
public static DBResult ImpOrderFee(OpTask headData, string op, string userid, string companyid)
|
|
{
|
|
var result = new DBResult();
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA();
|
|
|
|
var edifeelist = MsChFeeDAL.GetOrderDataList(" BSNO='" + headData.TASKNO + "'");
|
|
|
|
if (edifeelist.Count == 0)
|
|
{
|
|
result.Success = false;
|
|
result.Message = result.Message + " 提单号:" + headData.MBLNO + " 没有需要引入的费用!";
|
|
return result;
|
|
|
|
}
|
|
var BSNO = headData.BSNO;
|
|
if (!String.IsNullOrEmpty(headData.BSNO))
|
|
{
|
|
BSNO = T_ALL_DA.GetStrSQL("BSNO", "select BSNO from V_OP_BS where FEESTATUS=0 AND BSNO='" + headData.BSNO + "'");
|
|
if (BSNO == "")
|
|
{
|
|
BSNO = T_ALL_DA.GetStrSQL("BSNO", "select BSNO from V_OP_BILL where FEESTATUS=0 AND PARENTID='" + headData.BSNO + "'");
|
|
if (BSNO == "")
|
|
{
|
|
result.Success = false;
|
|
result.Message = result.Message + " 提单号:" + headData.MBLNO + " 无法导入,请确认提单号正确并未费用封账!";
|
|
return result;
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
|
|
if (!String.IsNullOrEmpty(headData.MBLNO))
|
|
{
|
|
BSNO = T_ALL_DA.GetStrSQL("BSNO", "select BSNO from V_OP_BS where FEESTATUS=0 AND MBLNO='" + headData.MBLNO + "'");
|
|
if (BSNO == "")
|
|
{
|
|
BSNO = T_ALL_DA.GetStrSQL("BSNO", "select TOP 1 BSNO from V_OP_BILL where FEESTATUS=0 AND MBLNO='" + headData.MBLNO + "' ORDER BY CREATETIME ");
|
|
if (BSNO == "")
|
|
{
|
|
result.Success = false;
|
|
result.Message = result.Message + " 提单号:" + headData.MBLNO + " 无法导入,请确认提单号正确并未费用封账!";
|
|
return result;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
|
|
//var FEECOUNT = T_ALL_DA.GetStrSQL("FEECOUNT", "select COUNT(*) FEECOUNT from CH_FEE where F_NO='" + edifeelist[0].InvoiceNum + "' and isnull(SETTLEMENT,0)<>0 and isnull(INVOICE,0)<>0 and isnull(ORDERAMOUNT,0)<>0 and isnull(ORDERINVOICE,0)<>0 ");
|
|
//if (FEECOUNT != "0")
|
|
//{
|
|
// result.Success = false;
|
|
// result.Message = result.Message + " 提单号:" + headData.MBLNO + " 已经导入,不能重复导入,请手动处理!";
|
|
// return result;
|
|
//}
|
|
|
|
|
|
var feecurrlist = MsChFeeDAL.GetFeeDateCurrList("op_Seae", headData.BSNO, userid, companyid);
|
|
|
|
using (var conn = db.CreateConnection())
|
|
{
|
|
conn.Open();
|
|
var tran = conn.BeginTransaction();
|
|
try
|
|
{
|
|
|
|
var cmdInsert =
|
|
db.GetSqlStringCommand(
|
|
@"INSERT INTO ch_fee(GID, BSNO, FEETYPE, FEENAME, FEEDESCRIPTION, CUSTOMERTYPE, CUSTOMERNAME, UNIT, UNITPRICE, QUANTITY, AMOUNT, CURRENCY,
|
|
EXCHANGERATE, REASON, REMARK, COMMISSIONRATE,ENTEROPERATOR, ENTERDATE,ISOPEN, ISADVANCEDPAY, SORT, FEESTATUS, FEEFRT,
|
|
TAXRATE,NOTAXAMOUNT,ACCTAXRATE,LINENUM,TAXUNITPRICE,MODIFIEDUSER,MODIFIEDTIME,WMSOUTBSNO,PREAMOUNT,INPUTMODE,F_NO)
|
|
VALUES
|
|
(@gid,@bsno,@fee_type,@fee_name,@fee_description,@customer_type,@customer_name,@unit,@unit_price,@quantity,@amount,@currency,
|
|
@exchange_rate,@reason,@remark,@comm_rate,@enter_operator,@enter_date,@is_open,@is_advance_pay,@sort,@fee_status,@fee_frt,
|
|
@taxrate,@notaxamount,@acctaxrate,@LINENUM,@taxunit_price,@MODIFIEDUSER,@MODIFIEDTIME,@WMSOUTBSNO,@PREAMOUNT,@INPUTMODE,@F_NO) ");
|
|
|
|
|
|
foreach (var enumValue in edifeelist)
|
|
{
|
|
|
|
var exchangerate = enumValue.ExChangerate;
|
|
if (enumValue.Currency != "RMB" && exchangerate == 1)
|
|
{
|
|
foreach (var enumcurr in feecurrlist)
|
|
{
|
|
if (enumcurr.CURR == enumValue.Currency)
|
|
exchangerate = enumcurr.CRDEFRATE;
|
|
}
|
|
|
|
}
|
|
|
|
cmdInsert.Parameters.Clear();
|
|
db.AddInParameter(cmdInsert, "@gid", DbType.String, Guid.NewGuid().ToString());
|
|
db.AddInParameter(cmdInsert, "@bsno", DbType.String, BSNO);
|
|
db.AddInParameter(cmdInsert, "@fee_type", DbType.Int16, 2);
|
|
db.AddInParameter(cmdInsert, "@fee_name", DbType.String, GETFEENAME(enumValue.FeeDescription));
|
|
db.AddInParameter(cmdInsert, "@customer_type", DbType.String, enumValue.CustomerType);
|
|
db.AddInParameter(cmdInsert, "@customer_name", DbType.String, GetCustEDICode(enumValue.CustomerName));
|
|
db.AddInParameter(cmdInsert, "@unit", DbType.String, enumValue.Unit);
|
|
db.AddInParameter(cmdInsert, "@unit_price", DbType.Decimal, enumValue.UnitPrice);
|
|
db.AddInParameter(cmdInsert, "@fee_description", DbType.String, enumValue.FeeDescription);
|
|
db.AddInParameter(cmdInsert, "@quantity", DbType.Decimal, 1);
|
|
db.AddInParameter(cmdInsert, "@amount", DbType.Decimal, enumValue.Amount);
|
|
db.AddInParameter(cmdInsert, "@currency", DbType.String, enumValue.Currency);
|
|
db.AddInParameter(cmdInsert, "@exchange_rate", DbType.Decimal, exchangerate);
|
|
db.AddInParameter(cmdInsert, "@reason", DbType.String, "");
|
|
db.AddInParameter(cmdInsert, "@remark", DbType.String, enumValue.Remark);
|
|
|
|
|
|
db.AddInParameter(cmdInsert, "@comm_rate", DbType.Decimal, 0);
|
|
db.AddInParameter(cmdInsert, "@enter_operator", DbType.String, userid);
|
|
db.AddInParameter(cmdInsert, "@enter_date", DbType.String, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
|
db.AddInParameter(cmdInsert, "@is_open", DbType.String, "0");
|
|
db.AddInParameter(cmdInsert, "@is_advance_pay", DbType.String, "0");
|
|
db.AddInParameter(cmdInsert, "@sort", DbType.Int16, enumValue.Sort);
|
|
db.AddInParameter(cmdInsert, "@fee_status", DbType.Int16, 1);
|
|
db.AddInParameter(cmdInsert, "@fee_frt", DbType.String, "");
|
|
db.AddInParameter(cmdInsert, "@taxrate", DbType.Decimal, 0);
|
|
db.AddInParameter(cmdInsert, "@notaxamount", DbType.Decimal, enumValue.NoTaxAmount);
|
|
db.AddInParameter(cmdInsert, "@acctaxrate", DbType.Decimal, 0);
|
|
db.AddInParameter(cmdInsert, "@LINENUM", DbType.Int16, enumValue.Sort);
|
|
db.AddInParameter(cmdInsert, "@taxunit_price", DbType.Decimal, enumValue.Amount);
|
|
db.AddInParameter(cmdInsert, "@MODIFIEDUSER", DbType.String, userid);
|
|
db.AddInParameter(cmdInsert, "@MODIFIEDTIME", DbType.String, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
|
db.AddInParameter(cmdInsert, "@WMSOUTBSNO", DbType.String, headData.TASKNO);
|
|
db.AddInParameter(cmdInsert, "@PREAMOUNT", DbType.Decimal, 0);
|
|
db.AddInParameter(cmdInsert, "@INPUTMODE", DbType.String, "EDI引入");
|
|
db.AddInParameter(cmdInsert, "@F_NO", DbType.String, enumValue.InvoiceNum);
|
|
|
|
db.ExecuteNonQuery(cmdInsert, tran);
|
|
|
|
}
|
|
|
|
|
|
var cmdupdate = db.GetSqlStringCommand("update op_task set TASKSTATUS=@TASKSTATUS,ISCOMPLETE=1,COMPLETETYPE='人工',COMPLETETIME=GETDATE(),OP='" + op + "',BSNO='" + BSNO + "' where GID=@GID");
|
|
cmdupdate.Parameters.Clear();
|
|
db.AddInParameter(cmdupdate, "@GID", DbType.String, headData.GID);
|
|
db.AddInParameter(cmdupdate, "@TASKSTATUS", DbType.String, "已引入");
|
|
db.ExecuteNonQuery(cmdupdate, tran);
|
|
|
|
var cmdinsertState = db.GetSqlStringCommand("insert into op_task_state (GID,TASKNO,TASKSTATUS,OP,OPTIME) values (newid(),@TASKNO,@TASKSTATUS,@OP,GETDATE())");
|
|
cmdinsertState.Parameters.Clear();
|
|
db.AddInParameter(cmdinsertState, "@TASKNO", DbType.String, headData.TASKNO);
|
|
db.AddInParameter(cmdinsertState, "@TASKSTATUS", DbType.String, "已引入");
|
|
db.AddInParameter(cmdinsertState, "@OP", DbType.String, op);
|
|
db.ExecuteNonQuery(cmdinsertState, tran);
|
|
|
|
|
|
tran.Commit();
|
|
result.Success = true;
|
|
result.Message = "更新完成!";
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
tran.Rollback();
|
|
|
|
result.Success = false;
|
|
result.Message = "更新出现错误,请重试或联系系统管理员" + e.Message;
|
|
|
|
return result;
|
|
}
|
|
|
|
|
|
}
|
|
return result;
|
|
}
|
|
public static DBResult GetBcRemark(OpTask headData)
|
|
{
|
|
var result = new DBResult();
|
|
var strSql = new StringBuilder();
|
|
strSql.Append("SELECT top 1 m.F_Remark,m.F_HYH,(select top 1 F_EXT_IsMatchBusiRemark from op_seae_edi_rp_iftmbc where F_Base_ReportID='" + headData.FILENO + "' ) F_EXT_IsMatchBusiRemark,");
|
|
strSql.Append(" (select top 1 CONTRACTNO from op_seae where BSNO='" + headData.BSNO + "') CONTRACTNO FROM op_seae_edi_mail_bcinfo m where F_Base_MailID='" + headData.MAILNO + "'");
|
|
var yhstr = "";
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
{
|
|
while (reader.Read())
|
|
{
|
|
if (Convert.ToString(reader["F_Remark"]).Trim() != "")
|
|
result.Message = result.Message + Convert.ToString(reader["F_Remark"]);
|
|
if (Convert.ToString(reader["F_HYH"]).Trim() != Convert.ToString(reader["CONTRACTNO"]).Trim())
|
|
yhstr = "约号(合同号)与业务系统运费协议号不一致:" + Convert.ToString(reader["F_HYH"]).Trim() + "--" + Convert.ToString(reader["CONTRACTNO"]).Trim();
|
|
if (Convert.ToString(reader["F_EXT_IsMatchBusiRemark"]).Trim() != "" && Convert.ToString(reader["F_EXT_IsMatchBusiRemark"]) != "匹配BC报文无异常")
|
|
{
|
|
if (yhstr != "") result.Message = result.Message + " " + yhstr;
|
|
result.Message = result.Message + " " + Convert.ToString(reader["F_EXT_IsMatchBusiRemark"]);
|
|
}
|
|
else {
|
|
if (yhstr != "") result.Message = result.Message + " " + yhstr;
|
|
result.Message = result.Message;
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
reader.Close();
|
|
}
|
|
|
|
result.Success = true;
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
static public List<OpTaskFieldValue> GetTaskFieldValueDataList(string strCondition)
|
|
{
|
|
|
|
var strSql = new StringBuilder();
|
|
strSql.Append("SELECT ");
|
|
strSql.Append("*");
|
|
strSql.Append(" from op_task_fieldvalue ");
|
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
{
|
|
strSql.Append(" where " + strCondition);
|
|
}
|
|
strSql.Append(" order by OPDATE ");
|
|
|
|
return SetTaskFieldValueData(strSql);
|
|
}
|
|
|
|
private static List<OpTaskFieldValue> SetTaskFieldValueData(StringBuilder strSql)
|
|
{
|
|
var headList = new List<OpTaskFieldValue>();
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
{
|
|
while (reader.Read())
|
|
{
|
|
OpTaskFieldValue data = new OpTaskFieldValue();
|
|
#region Set DB data to Object
|
|
data.GID = Convert.ToString(reader["plfield_id"]);
|
|
data.TASKNO = Convert.ToString(reader["TASKNO"]);
|
|
data.FEILDNAME = Convert.ToString(reader["FEILDNAME"]);
|
|
data.FEILDVALUE = Convert.ToString(reader["FEILDVALUE"]);
|
|
if (reader["OPDATE"] != DBNull.Value)
|
|
data.OPDATE = Convert.ToDateTime(reader["OPDATE"]).ToString("yyyy-MM-dd HH:mm:ss");
|
|
|
|
#endregion
|
|
headList.Add(data);
|
|
}
|
|
reader.Close();
|
|
}
|
|
return headList;
|
|
}
|
|
|
|
|
|
|
|
#region Rang权限范围
|
|
public static string GetRangDAStr(string tb, string userid, string username, string companyid)
|
|
{
|
|
string str = "";
|
|
var strSql = new StringBuilder();
|
|
strSql.Append("SELECT");
|
|
strSql.Append(" VISIBLERANGE,OPERATERANGE");
|
|
strSql.Append(" from VW_User_Authority");
|
|
strSql.Append(" where [NAME]='modOpTask' and USERID='" + userid + "' and ISDELETE=0");
|
|
|
|
string visiblerange = "4";
|
|
string operaterange = "4";
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
{
|
|
while (reader.Read())
|
|
{
|
|
visiblerange = Convert.ToString(reader["VISIBLERANGE"]);
|
|
operaterange = Convert.ToString(reader["OPERATERANGE"]);
|
|
break;
|
|
}
|
|
reader.Close();
|
|
}
|
|
if (visiblerange == "4")
|
|
{
|
|
str = " (t.OP='" + username + "' or t.ISPUBLIC=1 or t.CREATEUSER='" + username + "') ";
|
|
}
|
|
else if (visiblerange == "3")
|
|
{
|
|
str = " (t.OP='" + username + "' or t.ISPUBLIC=1 or t.CREATEUSER='" + username + "') ";
|
|
}
|
|
else if (visiblerange == "2")
|
|
{
|
|
var rangeDa = new RangeDA();
|
|
var deptname = rangeDa.GetDEPTNAME(userid);
|
|
str = " (t.ISPUBLIC=1 or t.OP in (select showname from [user] where GID in (select USERID from user_company where COMPANYID='" + companyid + "') and GID in (select userid from user_baseinfo where DEPTNAME='" + deptname + "')) or t.CREATEUSER='" + username + "') ";
|
|
}
|
|
else if (visiblerange == "1")
|
|
{
|
|
str = " (t.ISPUBLIC=1 or t.OP in (select showname from [user] where GID in (select USERID from user_company where COMPANYID='" + companyid + "')) or t.CREATEUSER='" + username + "') ";
|
|
}
|
|
else if (visiblerange == "0")
|
|
{
|
|
str = " 1=1 ";
|
|
}
|
|
return str;
|
|
}
|
|
#endregion
|
|
|
|
#region 增加一条任务
|
|
|
|
public static op_task_md GetNewTask() {
|
|
|
|
var result = new op_task_md();
|
|
|
|
result.GID = Guid.NewGuid().ToString();
|
|
|
|
result.TASKNO = Guid.NewGuid().ToString();
|
|
result.TASKSTATUS = "未开始";
|
|
result.CREATEUSER = "ADMIN";
|
|
result.CREATETIME = DateTime.Now;
|
|
result.TASKBEGINDATE = DateTime.Now;
|
|
result.COMPLETETYPE = "手动";
|
|
result.ISPUBLIC = true;
|
|
return result;
|
|
}
|
|
#endregion
|
|
|
|
#region 关贸云业务和费用
|
|
|
|
public static DBResult 关贸云报关任务(string strJson)
|
|
{
|
|
var result = new DBResult();
|
|
result.OK();
|
|
try {
|
|
|
|
var cdc = new CommonDataContext();
|
|
var newtask = GetNewTask();
|
|
|
|
var head = JsonConvert.Deserialize<GuanMaoYun_Head>(strJson);
|
|
|
|
|
|
var 当前已有该bsno的任务台数据 = cdc.op_task.Where(x => x.BSNO == head.BUSINESS_ORDER_INFO.WORK_NO).ToList();
|
|
|
|
if (当前已有该bsno的任务台数据 != null && 当前已有该bsno的任务台数据.Count > 0) {
|
|
newtask = 当前已有该bsno的任务台数据[0];
|
|
}
|
|
|
|
newtask.TASKTYPE = "报关导入";
|
|
newtask.TASKSOURCE = "关贸云";
|
|
newtask.TASKTITLE = head.DECL_HEAD.CUSTOMS_NO;
|
|
newtask.MBLNO = head.DECL_HEAD.BILL_NO;
|
|
|
|
newtask.BSNO = head.BUSINESS_ORDER_INFO.WORK_NO;//记录关贸云业务的唯一编号
|
|
newtask.TASKNO = newtask.BSNO;
|
|
|
|
cdc.op_task.AddOrUpdate(newtask);
|
|
cdc.SaveChanges();
|
|
var HeadDic = new Dictionary<string, string>();
|
|
HeadDic.Add("JSONSTR", strJson);
|
|
|
|
BasicDataRefDAL.SaveLogicInfo(newtask.TASKNO, "关贸云报关", HeadDic);
|
|
} catch (Exception ex)
|
|
{
|
|
result.SetErrorInfo(ex.Message);
|
|
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
public static DBResult 关贸云报关费用(string strJson)
|
|
{
|
|
var result = new DBResult();
|
|
result.OK();
|
|
try {
|
|
|
|
//如当前有该业务 则update 否则新增
|
|
|
|
var newtask = GetNewTask();
|
|
|
|
var headinfo = JsonConvert.Deserialize<GuanMaoYun_Fee>(strJson);
|
|
|
|
var cdc = new CommonDataContext();
|
|
|
|
var tasklist = cdc.op_task.Where(x => x.BSNO == headinfo.JOB_ID).ToList();
|
|
|
|
if (tasklist == null || tasklist.Count == 0)
|
|
{
|
|
result.SetErrorInfo("还未导入业务信息");
|
|
return result;
|
|
}
|
|
else {
|
|
newtask = tasklist[0];
|
|
}
|
|
|
|
var HeadDic = new Dictionary<string, string>();
|
|
HeadDic.Add("JSONSTR", strJson);
|
|
|
|
BasicDataRefDAL.SaveLogicInfo(newtask.TASKNO, "关贸云费用", HeadDic);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
result.SetErrorInfo(ex.Message);
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
public static DBResult 关贸云报关从任务台导入报关业务(string TASKNO,string OP,string userid)
|
|
{
|
|
var result = new DBResult();
|
|
try
|
|
{
|
|
//提取两个op_logicinfo中的json
|
|
|
|
var 报关业务logic = BasicDataRefDAL.GetLogicInfo(TASKNO, "关贸云报关");
|
|
var 报关业务json = 报关业务logic["JSONSTR"];
|
|
|
|
var 报关费用logic = BasicDataRefDAL.GetLogicInfo(TASKNO, "关贸云费用");
|
|
var 报关费用json = 报关费用logic["JSONSTR"];
|
|
|
|
var headinfo = JsonConvert.Deserialize<GuanMaoYun_Head>(报关业务json);
|
|
|
|
var j1= PublicAPIDAL.GuanMaoYun_Head_Save(headinfo, OP,userid);
|
|
if (!j1.Success)
|
|
{
|
|
result.SetErrorInfo(j1.Message);
|
|
return result;
|
|
}
|
|
|
|
var feehead = JsonConvert.Deserialize<GuanMaoYun_Fee>(报关费用json);
|
|
var j2 = PublicAPIDAL.GuanMaoYun_Fee_Save(feehead);
|
|
|
|
if (!j2.Success) {
|
|
result.SetErrorInfo(j2.Message);
|
|
return result;
|
|
}
|
|
|
|
result.OK("导入完成");
|
|
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
result.SetErrorInfo(e.Message);
|
|
}
|
|
return result;
|
|
}
|
|
#endregion
|
|
|
|
|
|
#region 参照部分
|
|
|
|
|
|
#endregion
|
|
}
|
|
}
|