BaoKai_202508-Wms-Jingwang..../WMS.Business/SystemManage/BussCompany.cs

480 lines
19 KiB
C#
Raw Permalink Normal View History

2025-08-24 09:35:55 +08:00
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using WMS.Model.Base;
using WMS.IData;
using System.Data;
using WMS.Model.SystemManage;
using WMS.Common;
namespace WMS.Business.Base
{
public class BussCompany : IBussFactory
{
#region
/// <summary>
/// <summary>
/// 根据查询条件获取公司信息结果集
/// </summary>
/// <param name="strComName">公司名称</param>
/// <param name="strComShortName">公司简称</param>
/// <returns>公司信息结果集</returns>
public List<CompanyModel> getCompanytDataSet(string strComName, string strComShortName)
{
List<CompanyModel> ds = DataProvider.Instance.Company.GetCompanytDataSet(strComName, strComShortName);
return ds;
}
#endregion
/// <summary>
/// <summary>
/// 根据查询条件获取公司信息结果集
/// </summary>
/// <param name="strComName">公司名称</param>
/// <param name="strComShortName">公司简称</param>
/// <returns>公司信息结果集</returns>
public List<CompanyModel> GetCompanyData(string strComName, string strComShortName)
{
DataTable dt = DataProvider.Instance.Company.GetCompanyData(strComName, strComShortName);
List<CompanyModel> list = null;
if (DataLogErrWrite(dt, "根据查询条件获取公司信息结果集"))
{
list = ConvertHelper<CompanyModel>.ConvertToList(dt);
}
else
{
return list;
}
return list;
}
/// <summary>
/// 以实体为参数 获得 数据集
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public List<CompanyModel> GetCompanyData(CompanyModel model)
{
DataTable dt = DataProvider.Instance.Company.GetCompanyData(model);
List<CompanyModel> list = null;
if (DataLogErrWrite(dt, "根据查询条件获取公司信息结果集"))
{
list = ConvertHelper<CompanyModel>.ConvertToList(dt);
}
else
{
return list;
}
return list;
}
#region
/// <summary>
/// 根据公司编号获取单个公司信息
/// </summary>
/// <param name="strComID">公司编号</param>
/// <returns>公司信息</returns>
public DataSet getCompanytByComID(string strComID)
{
DataSet ds = DataProvider.Instance.Company.getCompanytByComID(strComID);
return ds;
}
#endregion
#region
/// <summary>
/// 公司信息增删改
/// </summary>
/// <param name="strCompanyModel">公司信息Model</param>
/// <param name="opeFlag">增删改的标识</param>
/// <param name="error_row">错误行</param>
/// <param name="error_msg">错误信息</param>
/// <returns>执行结果标识</returns>
public string OperateCompany(CompanyModel companyModel, int opeFlag)
{
string errText = string.Empty;
///1为新增新增时首先判断是否唯一性
if (opeFlag == 0)
{
string valExist = DataProvider.Instance.Company.GetComPanyId(companyModel.COM_ID);
if (valExist != "0")
{
errText = "机构代码已经存在,请重新输入!";
return errText;
}
DataProvider.Instance.Company.OperateAddCompany(companyModel);
}
else
{
DataProvider.Instance.Company.OperateUpdateCompany(companyModel);
}
return errText;
}
#endregion
#region
/// <summary>
/// 获取生成的公司所属集团编号
/// </summary>
/// <returns>公司所属集团编号</returns>
public string GetGroupId()
{
string strGroupId = "";
strGroupId = DataProvider.Instance.Company.GetGroupId();
return strGroupId;
}
#endregion
public int CompanyDel(string com_id)
{
return DataProvider.Instance.Company.CompanyDel(com_id);
}
/// <summary>
/// 验证机构编号是否已经存在
/// </summary>
/// <param name="com_id"></param>
/// <returns></returns>
public string Exists(string com_id)
{
string strResult = DataProvider.Instance.Company.Exists(com_id);
Transaction = DataProvider.Instance.TranOracle;
logList.Add(DataProvider.Instance.logData);
TaCmtOrRak();
return strResult;
}
/// <summary>
/// 新增一条组织机构信息
/// </summary>
/// <param name="model">公司Model</param>
/// <returns></returns>
public string AddCompanyData(CompanyModel model)
{
if (model.COM_TYPE == "3" || model.COM_TYPE == "4")
{ //如果是仓库 同时添加仓库
////仓库的编号是否知道生成
StorageInfoModel storageInfoModel = new StorageInfoModel();
try
{
string tabNum = DataProvider.Instance.SystemParam.GetParamValue("warehousenum");
if (tabNum == "1")
{
storageInfoModel.STORAGE_ID = model.COM_ID;
}
else
{
storageInfoModel.STORAGE_ID = IBussFactory<BussDocumentTable>.Instance().GetDocumentStream("仓库编号");
if (storageInfoModel.STORAGE_ID=="")
{
return "仓库编号不能为空";
}
}
}
catch (Exception ex)
{
string errMsg = ex.Message;
}
storageInfoModel.ADDRESS = model.COM_ADD;
storageInfoModel.CITY_ID = model.COM_CITY;
storageInfoModel.FAX = model.COM_FAX;
storageInfoModel.LINKMAN = model.USER_ID;
storageInfoModel.PHONE = model.COM_PHONE;
storageInfoModel.POSTCODE = model.COM_ZIP;
storageInfoModel.PROVINCE_ID = model.COM_PROVINCE;
storageInfoModel.PY_NAME = model.SHORT;
storageInfoModel.SORT = model.COM_ORDER;
storageInfoModel.STATUS = model.COM_STATUS;
storageInfoModel.STORAGE_ID = model.COM_ID;//暂时维护仓库编号
storageInfoModel.STORAGE_NAME = model.COM_NAME;
storageInfoModel.STORAGE_SHORT_NAME = model.COM_SNAME;
storageInfoModel.TOWN_ID = model.COM_TOWN;
storageInfoModel.ID = model.ID;
DataProvider.Instance.StorageInfo.InsOrUpdStorageInfo(storageInfoModel, 0);//添加仓库信息
logList.Add(DataProvider.Instance.logData);
Transaction = DataProvider.Instance.TranOracle;
model.COM_ID = storageInfoModel.STORAGE_ID;
DataProvider.Instance.Company.AddCompanyData(model);//添加部门信息
logList.Add(DataProvider.Instance.logData);
// StorageAreaModel areaModel = new StorageAreaModel();
// areaModel.STORAGE_ID = "0";
// //库区用于List显示
// areaModel.STORAGE_AREA_ID = storageInfoModel.STORAGE_ID;
//areaModel.STORAGE_AREA_NAME = storageInfoModel.STORAGE_NAME;// 2018年12月23日 18:03:40 暂时只要一个默认库区
// DataProvider.Instance.StorageArea.InsOrUpdAreaInfo(areaModel, 0);//添加库区信息
// logList.Add(DataProvider.Instance.logData);
#region 2018-12-23 10:56:08
//areaModel.EDIT = "0";
//areaModel.OPERATORID = storageInfoModel.OPERATORID;
//areaModel.STATUS = "0";
//areaModel.STORAGE_ID = storageInfoModel.STORAGE_ID;
//areaModel.PARENT_ID = storageInfoModel.STORAGE_ID;
//areaModel.STORAGE_NAME = storageInfoModel.STORAGE_NAME;
//areaModel.VERSION = "Verson 1.0";
//areaModel.STORAGE_AREA_ID = null;
////4生产仓 同时生成库区
//if (model.COM_TYPE == "4") {
// //整箱区
// areaModel.SORT = 0;
// areaModel.STORAGE_AREA_NAME = "整箱区";
// areaModel.STORAGE_AREA_SHORT_NAME = "整箱";
// //areaModel.PY_NAME = "ZXQ";
// areaModel.STORAGE_AREA_ID = null;
// string zhengxiang = DataProvider.Instance.StorageArea.InsOrUpdAreaInfo(areaModel, 0);
// logList.Add(DataProvider.Instance.logData);
// //拣配区
// areaModel.SORT = 0;
// areaModel.STORAGE_AREA_NAME = "拣配区";
// areaModel.STORAGE_AREA_SHORT_NAME = "拣配";
// //areaModel.PY_NAME = "JPQ";
// areaModel.STORAGE_AREA_ID = null;
// DataProvider.Instance.StorageArea.InsOrUpdAreaInfo(areaModel, 0);
// logList.Add(DataProvider.Instance.logData);
// //包材区
// areaModel.SORT = 0;
// areaModel.STORAGE_AREA_NAME = "包材区";
// areaModel.STORAGE_AREA_SHORT_NAME = "包材";
// //areaModel.PY_NAME = "BCQ";
// areaModel.STORAGE_AREA_ID = null;
// string baocai = DataProvider.Instance.StorageArea.InsOrUpdAreaInfo(areaModel, 0);
// logList.Add(DataProvider.Instance.logData);
// //残品区
// areaModel.SORT = 0;
// areaModel.STORAGE_AREA_NAME = "残品区";
// areaModel.STORAGE_AREA_SHORT_NAME = "残品";
// //areaModel.PY_NAME = "CPQ";
// areaModel.STORAGE_AREA_ID = null;
// DataProvider.Instance.StorageArea.InsOrUpdAreaInfo(areaModel, 0);
// logList.Add(DataProvider.Instance.logData);
// //退货区
// areaModel.SORT = 0;
// areaModel.STORAGE_AREA_NAME = "退货区";
// areaModel.STORAGE_AREA_SHORT_NAME = "退货";
// //areaModel.PY_NAME = "THQ";
// areaModel.STORAGE_AREA_ID = null;
// DataProvider.Instance.StorageArea.InsOrUpdAreaInfo(areaModel, 0);
// logList.Add(DataProvider.Instance.logData);
// ////冷藏区
// //areaModel.SORT = 0;
// //areaModel.STORAGE_AREA_NAME = "冷藏区";
// //areaModel.STORAGE_AREA_SHORT_NAME = "冷藏";
// //areaModel.PY_NAME = "LCQ";
// //areaModel.STORAGE_AREA_ID = null;
// //areaModel.PARENT_ID = zhengxiang;
// //DataProvider.Instance.StorageArea.InsOrUpdAreaInfo(areaModel, 0);
// //logList.Add(DataProvider.Instance.logData);
// ////冷冻区
// //areaModel.SORT = 0;
// //areaModel.STORAGE_AREA_NAME = "冷冻区";
// //areaModel.STORAGE_AREA_SHORT_NAME = "冷冻";
// //areaModel.PY_NAME = "LDQ";
// //areaModel.STORAGE_AREA_ID = null;
// //areaModel.PARENT_ID = zhengxiang;
// //DataProvider.Instance.StorageArea.InsOrUpdAreaInfo(areaModel, 0);
// //logList.Add(DataProvider.Instance.logData);
// ////桶贴区
// //areaModel.SORT = 0;
// //areaModel.STORAGE_AREA_NAME = "桶贴区";
// //areaModel.STORAGE_AREA_SHORT_NAME = "桶贴";
// //areaModel.PY_NAME = "TTQ";
// //areaModel.STORAGE_AREA_ID = null;
// //areaModel.PARENT_ID = baocai;
// //DataProvider.Instance.StorageArea.InsOrUpdAreaInfo(areaModel, 0);
// //logList.Add(DataProvider.Instance.logData);
// ////真空袋区
// //areaModel.SORT = 0;
// //areaModel.STORAGE_AREA_NAME = "真空袋区";
// //areaModel.STORAGE_AREA_SHORT_NAME = "真空袋";
// //areaModel.PY_NAME = "ZKDQ";
// //areaModel.STORAGE_AREA_ID = null;
// //areaModel.PARENT_ID = baocai;
// //DataProvider.Instance.StorageArea.InsOrUpdAreaInfo(areaModel, 0);
// //logList.Add(DataProvider.Instance.logData);
//}
#endregion
}
else {
DataProvider.Instance.Company.AddCompanyData(model);
logList.Add(DataProvider.Instance.logData);
Transaction = DataProvider.Instance.TranOracle;
}
TaCmtOrRak();
return this.ErrText;
}
/// <summary>
/// 更新组织机构信息
/// </summary>
/// <param name="model">公司Model</param>
/// <param name="hadChanged">false:Status未改变</param>
/// <returns></returns>
public string UpdateCompanyData(CompanyModel model,bool hadChanged)
{
DataProvider.Instance.Company.UpdateCompanyData(model);
Transaction = DataProvider.Instance.TranOracle;
logList.Add(DataProvider.Instance.logData);
if (model.COM_TYPE == "3")
{
StorageInfoModel storageInfoModel = new StorageInfoModel();
storageInfoModel.ADDRESS = model.COM_ADD;
storageInfoModel.CITY_ID = model.COM_CITY;
storageInfoModel.FAX = model.COM_FAX;
storageInfoModel.LINKMAN = model.USER_ID;
storageInfoModel.PHONE = model.COM_PHONE;
storageInfoModel.POSTCODE = model.COM_ZIP;
storageInfoModel.PROVINCE_ID = model.COM_PROVINCE;
storageInfoModel.PY_NAME = model.SHORT;
storageInfoModel.SORT = model.COM_ORDER;
storageInfoModel.STATUS = model.COM_STATUS;
storageInfoModel.STORAGE_ID = model.COM_ID;//暂时维护仓库编号
storageInfoModel.STORAGE_NAME = model.COM_NAME;
storageInfoModel.STORAGE_SHORT_NAME = model.COM_SNAME;
storageInfoModel.TOWN_ID = model.COM_TOWN;
storageInfoModel.ID = model.ID;
DataProvider.Instance.StorageArea.UpdateAreaDataName(model.COM_ID, model.COM_NAME);
logList.Add(DataProvider.Instance.logData);
DataProvider.Instance.StorageInfo.UpCompanyStorageInfo(storageInfoModel);
logList.Add(DataProvider.Instance.logData);
}
if (hadChanged) {
DataTable dt = DataProvider.Instance.Company.getCompanytByGroupID(model.COM_ID);
List<CompanyModel> list = null;
if (DataLogErrWrite(dt, "根据父编号获取其下公司信息"))
{
list = ConvertHelper<CompanyModel>.ConvertToList(dt);
if (list.Count > 0) {
foreach (CompanyModel com in list)
{
if (com.COM_STATUS != model.COM_STATUS) {
com.COM_STATUS = model.COM_STATUS;
DataProvider.Instance.Company.UpdateCompanyState(com);
logList.Add(DataProvider.Instance.logData);
}
}
}
}
else
{
return ErrText;
}
}
TaCmtOrRak();
return ErrText;
}
/// <summary>
/// 根据部门编号 查询出改部门下的所有角色
/// </summary>
/// <param name="com_id">部门编号</param>
/// <returns></returns>
public List<RoleModel> GetRoleDataByComID(string com_id)
{
DataTable dt = DataProvider.Instance.Company.GetRoleDataByComID(com_id);
List<RoleModel> list = null;
if (DataLogErrWrite(dt, "根据部门编号获取该部门下的所有角色结果集"))
{
list = ConvertHelper<RoleModel>.ConvertToList(dt);
}
else
{
return list;
}
return list;
}
/// <summary>
/// 根据用户编号获得 最底层部门
/// </summary>
/// <param name="userid"></param>
/// <returns></returns>
public List<CompanyModel> GetChildrenNodeCompanyData(string userid)
{
DataTable dt = DataProvider.Instance.Company.GetChildrenNodeCompanyData(userid);
List<CompanyModel> list = null;
if (DataLogErrWrite(dt, "获取组织机构下所有最底层部门"))
{
list = ConvertHelper<CompanyModel>.ConvertToList(dt);
}
else
{
return list;
}
return list;
}
/// <summary>
/// 删除一条组织机构数据
/// </summary>
/// <param name="com_id">机构编号</param>
/// <returns></returns>
public string DeleteCompanyData(string com_id)
{
DeleteCompany(com_id);
logList.Add(DataProvider.Instance.logData);
Transaction = DataProvider.Instance.TranOracle;
TaCmtOrRak();
return ErrText;
}
/// <summary>
/// 递归删除选中节点下所有子节点方法
/// </summary>
/// <param name="com_id">机构编号</param>
public void DeleteCompany(string com_id)
{
//DataProvider.Instance.Company.DeleteCompanyData(com_id);
CompanyModel co = new CompanyModel();
co.GROUP_ID = com_id;
List<CompanyModel> list = GetCompanyData(co);
if (list.Count > 0)
{
foreach (CompanyModel mode in list)
{
DeleteCompany(mode.COM_ID);
}
}
DataProvider.Instance.Company.DeleteCompanyData(com_id);
}
}
}