| | |
| | | //即时库存 |
| | | case "TB_ERPTOMES_JSKC1": |
| | | result = TB_ERPTOMES_JSKC1(inputds, operatype, ref msg); |
| | | // result = TB_ERPTOMES_JSKC(inputds, operatype, ref msg); |
| | | break; |
| | | |
| | | //9.ERPBOMA(同步推送) |
| | |
| | | DataRow dr = (DataRow)obj2; |
| | | //2025-01-22 修改审核字段 |
| | | string FDOCUMENTSTATUS = dr["FDOCUMENTSTATUS"].ToString(); |
| | | //20250724 如果mes有发货记录,那么不能更新 |
| | | |
| | | string sql2 = string.Format("SELECT COUNT(1) FROM MES_INV_ITEM_OUTS WHERE TASK_NO = '{0}'", dr["FBillNo"]); |
| | | string cntStr = this._sqlHelper.GetSingle(sql2)?.ToString(); |
| | | |
| | | // 转换为整数 |
| | | int cnt = 0; |
| | | if (!string.IsNullOrEmpty(cntStr) && int.TryParse(cntStr, out cnt)) |
| | | { |
| | | if (cnt > 0) |
| | | { |
| | | // 存在发货记录,不能更新,返回失败 |
| | | |
| | | ErrorMsg = "[该单据已在 MES 中有发货记录,无法更新。"; |
| | | result = false; |
| | | } |
| | | } |
| | | |
| | | if (FDOCUMENTSTATUS == "C") |
| | | { |
| | | mid = dr["ERPID"].ToString(); |
| | |
| | | ArrayList list = new ArrayList(); |
| | | |
| | | list.Add(bj1); |
| | | |
| | | var kc_json = new kcjson() |
| | | { |
| | | /* FormId = "STK_Inventory", |
| | |
| | | |
| | | } |
| | | |
| | | private bool TB_ERPTOMES_JSKC(DataSet ds, string operatype, ref string errorMsg) |
| | | { |
| | | ArrayList SQLStringList = new ArrayList(); |
| | | DataTable dt = ds.Tables[0]; |
| | | string sql = ""; |
| | | |
| | | foreach (DataRow dr in dt.Rows) |
| | | { |
| | | try |
| | | { |
| | | // 初始化金蝶 API 客户端 |
| | | K3CloudApiClient client = new K3CloudApiClient("http://192.168.0.40/k3cloud/"); |
| | | var loginResult = client.ValidateLogin("64c5000ed94a48", "沈子博", "Ss123123@", 2052); |
| | | var resultType = JObject.Parse(loginResult)["LoginResultType"].Value<int>(); |
| | | |
| | | if (resultType != 1) |
| | | { |
| | | errorMsg = "登录金蝶系统失败"; |
| | | return false; |
| | | } |
| | | |
| | | // 读取物料编码和仓库编码 |
| | | string PD1 = dr["ITEM_NO"]?.ToString() ?? ""; |
| | | string PD2 = dr["CKBM"]?.ToString() ?? ""; |
| | | |
| | | // 基础条件(你的 MES1 仓位条件) |
| | | string bjString1 = "(FStockLocId.FF100001.FNumber='MES1' " + |
| | | "or FStockLocId.FF100002.FNumber='MES1' " + |
| | | "or FStockLocId.FF100003.FNumber='MES1' " + |
| | | "or FStockLocId.FF100004.FNumber='MES1' " + |
| | | "or FStockLocId.FF100006.FNumber='MES1' " + |
| | | "or FStockLocId.FF100008.FNumber='MES1' " + |
| | | "or FStockLocId.FF100009.FNumber='MES1' " + |
| | | "or FStockLocId.FF100010.FNumber='MES1' " + |
| | | "or FStockLocId.FF100012.FNumber='MES1' " + |
| | | "or FStockLocId.FF100013.FNumber='MES1')"; |
| | | |
| | | // 动态追加物料、仓库过滤 |
| | | if (!string.IsNullOrEmpty(PD1) && string.IsNullOrEmpty(PD2)) |
| | | bjString1 += $" and fmaterialid.Fnumber='{PD1}'"; |
| | | else if (!string.IsNullOrEmpty(PD2) && string.IsNullOrEmpty(PD1)) |
| | | bjString1 += $" and fstockid='{PD2}'"; |
| | | else if (!string.IsNullOrEmpty(PD1) && !string.IsNullOrEmpty(PD2)) |
| | | bjString1 += $" and fmaterialid.Fnumber='{PD1}' and fstockid='{PD2}'"; |
| | | |
| | | // 分页参数 |
| | | int pageSize = 10000; |
| | | int startRow = 0; |
| | | |
| | | while (true) |
| | | { |
| | | var kc_json = new kcjson() |
| | | { |
| | | FormId = "STK_Inventory", |
| | | FieldKeys = "fmaterialid, fbaseqty, fstockid, fbaseunitid, fstockunitid, fstocklocid, FStockOrgId, fmaterialid.Fnumber, FStockLocId.FF100001.FNumber, FStockLocId.FF100002.FNumber, FStockLocId.FF100003.FNumber, FStockLocId.FF100004.FNumber, FStockLocId.FF100006.FNumber, FStockLocId.FF100008.FNumber, FStockLocId.FF100009.FNumber, FStockLocId.FF100010.FNumber, FStockLocId.FF100012.FNumber, FStockLocId.FF100013.FNumber", |
| | | FilterString = bjString1, |
| | | OrderString = "", |
| | | TopRowCount = 0, |
| | | StartRow = startRow, |
| | | Limit = pageSize, |
| | | SubSystemId = "" |
| | | }; |
| | | |
| | | string jsonString = JsonConvert.SerializeObject(kc_json); |
| | | var BJ = jsonString.Replace("\\", string.Empty); |
| | | var BJ1 = BJ.Replace("[\"", "["); |
| | | var BJ2 = BJ1.Replace("\"]", "]"); |
| | | |
| | | // 执行查询 |
| | | var inventoryData = client.ExecuteBillQuery(BJ2); |
| | | |
| | | if (inventoryData == null || inventoryData.Count == 0) |
| | | break; // 数据取完了 |
| | | |
| | | // 拼接插入 SQL |
| | | for (int i = 0; i < inventoryData.Count; i++) |
| | | { |
| | | sql = string.Format( |
| | | @"INSERT INTO MES_ERP_KC(CPBM, SL, CKBM, DWBM, DW, ID, GXSJ, CW, ZZ, bm) |
| | | VALUES ('{0}', '{1}', '{2}', '{3}', '{4}', KC.NEXTVAL, to_char(sysdate,'YYYY-MM-DD HH24:MI:SS'), '{5}', '{6}', '{7}')", |
| | | inventoryData[i][0], inventoryData[i][1], inventoryData[i][2], |
| | | inventoryData[i][3], inventoryData[i][4], inventoryData[i][5], |
| | | inventoryData[i][6], inventoryData[i][7] |
| | | ); |
| | | |
| | | SQLStringList.Add(sql); |
| | | |
| | | if (SQLStringList.Count >= 500) |
| | | { |
| | | _sqlHelper.ExecuteSqlTran(SQLStringList); |
| | | SQLStringList.Clear(); |
| | | } |
| | | } |
| | | |
| | | // 下一页 |
| | | startRow += pageSize; |
| | | } |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | errorMsg = e.Message; |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | // 最后一次批量插入 |
| | | if (SQLStringList.Count > 0) |
| | | return _sqlHelper.ExecuteSqlTran(SQLStringList); |
| | | |
| | | return true; |
| | | } |
| | | |
| | | |
| | | private bool TB_ERPTOMES_SYS(DataSet ds, string operatype, ref string ErrorMsg) |
| | | { |