123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384 |
- using NLog;
- using Org.BouncyCastle.Bcpg;
- using System;
- using WebAPIBase.API.Requests;
- using WebAPIBase.Service.Interface;
- using Newtonsoft.Json;
- using System.Net.Http;
- using System.Collections.Generic;
- using System.Threading.Tasks;
- using System.Net;
- using Sugar.Enties;
- using System.Text;
- using WebAPIBase.Utils;
- using Microsoft.Extensions.Configuration;
- using System.IO;
- using System.Collections.Specialized;
- using Microsoft.AspNetCore.Mvc;
- using Microsoft.Extensions.Caching.Memory;
- using Microsoft.AspNetCore.Authorization;
- using System.Drawing;
- using Microsoft.AspNetCore.Http;
- using System.Linq.Expressions;
- namespace WebAPIBase.API.Controllers
- {
- [Produces("application/json;charset=UTF-8")]
- [Route("api/Common")]
- public class CommonController : BaseController
- {
- public CommonController(IMemoryCache memoryCache, IHttpClientFactory httpclientfactory)
- : base()
- {
- }
- /// <summary>
- /// 获取部门用户
- /// </summary>
- /// <param name="projectid"></param>
- /// <returns></returns>
- [AllowAnonymous]
- [HttpGet]
- [Route("GetUnitUser")]
- public ActionResult GetUnitUser(string projectid)
- {
- var unitManager = new UnitManager();
- var tree = unitManager.GetUnitUser(projectid);
- var list = new List<TreeDTO>();
- list.Add(tree);
- logger.Info($"【getunituser】{JsonConvert.SerializeObject(list)}");
- return Json(list);
- }
- /// <summary>
- /// 获取部门信息
- /// </summary>
- /// <param name="projectid"></param>
- /// <returns></returns>
- [AllowAnonymous]
- [HttpGet]
- [Route("GetUnit")]
- public ActionResult GetUnit(string projectid)
- {
- var unitManager = new UnitManager();
- var tree = unitManager.GetUnit(projectid);
- var list = new List<TreeDTO>();
- list.Add(tree);
- logger.Info($"【GetUnit】{JsonConvert.SerializeObject(list)}");
- return Json(list);
- }
- /// <summary>
- /// 根据用户代码获取用户所属部门
- /// </summary>
- /// <param name="usercode"></param>
- /// <returns></returns>
- [AllowAnonymous]
- [HttpGet]
- [Route("GetUserDepartment")]
- public ActionResult GetUserDepartment(string usercode)
- {
- var unitManager = new UnitManager();
- var department = unitManager.GetUserDepartment(usercode);
- logger.Info($"【GetUserDepartment】{department}");
- return Json(department);
- }
- /// <summary>
- /// 获取项目列表
- /// </summary>
- /// <returns></returns>
- [AllowAnonymous]
- [HttpGet]
- [Route("GetProjectList")]
- public ActionResult GetProjectList()
- {
- var unitManager = new UnitManager();
- var list = unitManager.GetProjectList();
- logger.Info($"【GetProjectList】{JsonConvert.SerializeObject(list)}");
- return Json(list);
- }
- /// <summary>
- /// /图片上传
- /// </summary>
- /// <param name="formCollection"></param>
- /// <returns></returns>
- [HttpPost]
- [Route("UploadImage")]
- public ActionResult UploadImage([FromForm] IFormCollection formCollection)
- {
- var list = new List<AttachMent>();
- //logger.Info(Request.Body);
- var createPerson = Request.Form["createPerson"].ToString();
- var masterCode = Request.Form["masterCode"].ToString();
- var attachMentType = Request.Form["attachMentType"].ToString();
- //logger.Info(Request.Form["masterCode"]);
- FormFileCollection filelist = (FormFileCollection)formCollection.Files;
- //logger.Info(JsonConvert.SerializeObject(filelist));
- var manager = new AttachMentManager();
- foreach (IFormFile file in filelist)
- {
- var attachMent = new AttachMent();
- attachMent.FileName = file.FileName;
- attachMent.Content_Type = file.ContentType;
- attachMent.Length = (int?)file.Length;
- var stream = file.OpenReadStream();
- attachMent.Content = Utils.UploadFileHelper.StreamToBytes(stream);
- attachMent.AttachMentType = attachMentType;
- attachMent.CreatePerson = createPerson;
- attachMent.MasterCode = masterCode;
- manager.AddOrUpdate(attachMent);
- }
- return Json("success");
- }
- /// <summary>
- /// 附件显示
- /// </summary>
- /// <param name="code"></param>
- /// <returns></returns>
- [HttpGet]
- [Route("ShowImg")]
- public FileResult ShowImg(string code)
- {
- var bll = new AttachMentManager();
- var entity = bll.GetAttachMent(code);
- return File(entity.Content, entity.Content_Type);
- var filename = "e:\\file\\开元壹号程序实现.docx";
- FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read);
- byte[] infbytes = new byte[(int)fs.Length];
- fs.Read(infbytes, 0, infbytes.Length);
- fs.Close();
- return File(infbytes, "application/vnd.openxmlformats-officedocument.wordprocessingml.document");
- }
- /// <summary>
- /// 获取父子权限的数据列表
- /// </summary>
- /// <param name="classCode"></param>
- /// <returns></returns>
- [HttpGet]
- [Route("GetMaterialTree")]
- public ActionResult GetMaterialTree(string classCode)
- {
- var manager = new UnitManager();
- var list = manager.GetMaterial(classCode);
- return Json(list);
- }
- /// <summary>
- /// 根据功能模块代码返回有权限的岗位代码和用户代码列表
- /// </summary>
- /// <param name="functionStructureCode"></param>
- /// <returns></returns>
- [HttpGet]
- [Route("GetUserFunctions")]
- public ActionResult GetUserFunctions(string functionStructureCode)
- {
- var manager = new RoleManager();
- var list = manager.GetUserFunctions(functionStructureCode);
- return Json(list);
- }
- /// <summary>
- /// 根据功能模块代码和用户代码返回用户权限实例
- /// </summary>
- /// <param name="functionStructureCode"></param>
- /// <param name="usercode"></param>
- /// <returns></returns>
- [HttpGet]
- [Route("GetUserFunction")]
- public ActionResult GetUserFunction(string functionStructureCode, string usercode)
- {
- var manager = new RoleManager();
- var entity = manager.GetUserFunction(functionStructureCode, usercode);
- return Json(entity);
- }
- /// <summary>
- /// 根据项目代码获取材料合同
- /// </summary>
- /// <param name="projectcode"></param>
- /// <returns></returns>
- [HttpGet]
- [Route("GetContracts")]
- public ActionResult GetContracts(string projectcode, string searchValue)
- {
- var manager = new UnitManager();
- var list = manager.GetContracts(projectcode, searchValue);
- return Json(list);
- }
- /// <summary>
- /// 根据合同单号获取合同实体
- /// </summary>
- /// <param name="contractCode"></param>
- /// <returns></returns>
- [HttpGet]
- [Route("GetContract")]
- public ActionResult GetContract(string contractCode)
- {
- var manager = new UnitManager();
- var model = manager.GetContract(contractCode);
- return Json(model);
- }
- /// <summary>
- /// 根据项目代码获取工程合同
- /// </summary>
- /// <param name="projectcode"></param>
- /// <returns></returns>
- [HttpGet]
- [Route("GetEngineeringContracts")]
- public ActionResult GetEngineeringContracts(string projectcode, string searchValue)
- {
- var manager = new UnitManager();
- Expression<Func<Contract, bool>> lambda = m => m.ProjectCode == projectcode && m.contracttype == "工程合同" && (m.Status == 0 || m.Status == 2);
- if (!string.IsNullOrEmpty(searchValue))
- {
- lambda = lambda.And(m => m.ContractID.Contains(searchValue) || m.ContractName.Contains(searchValue));
- }
- var list = manager.GetContracts(lambda);
- return Json(list);
- }
- /// <summary>
- /// 获取供应商名称和类型
- /// </summary>
- /// <param name="supplierCode"></param>
- /// <param name="SupplierTypeCode"></param>
- /// <returns></returns>
- [HttpGet]
- [Route("GetSupplierNameAndType")]
- public ActionResult GetSupplierNameAndType(string supplierCode, string SupplierTypeCode)
- {
- var manager = new MaterialInManager();
- var str = manager.GetSupplierNameAndType(supplierCode, SupplierTypeCode);
- return Json(str);
- }
- /// <summary>
- /// 获取质量安全检查项
- /// </summary>
- /// <param name="type">0:质量检查 1:安全检查</param>
- /// <param name="searchvalue"></param>
- /// <returns></returns>
- [HttpGet]
- [Route("GetQualityAndSafeItems")]
- public ActionResult GetQualityAndSafeItems(int type = -1, string searchvalue = "")
- {
- logger.Info($"【GetQualityAndSafeItems】type:{type},searchvalue:{searchvalue}");
- //10034:质量检查项目 10035:安全检查项目
- var manager = new DictionaryNameManager();
- List<DictionaryItem> list;
- Expression<Func<DictionaryItem, bool>> lambda = m => true;
- if (type == 0)
- {
- lambda = lambda.And(m => m.dnCode == "10034");
- }
- else if (type == 1)
- {
- lambda = lambda.And(m => m.dnCode == "10035");
- }
- else if (type == 2)
- {
- lambda = lambda.And(m => m.dnCode == "100130");
- }
- else
- {
- lambda = lambda.And(m => m.dnCode == "10034" || m.dnCode == "10035");
- }
- if (!searchvalue.IsNullOrEmpty())
- {
- lambda = lambda.And(m => m.diName.Contains(searchvalue));
- }
- list = manager.GetDictionaryItems(lambda);
- return Json(list);
- }
- #region 流程审核
- /// <summary>
- /// 根据流程名,项目编号及是否活动获取可使用的工作流程审核列表
- /// </summary>
- /// <param name="procedureName"></param>
- /// <param name="projectCode"></param>
- /// <param name="activity"></param>
- [HttpGet]
- [Route("GetWorkFlowProcedureList")]
- public ActionResult GetWorkFlowProcedureList(string procedureName, string projectCode, int activity)
- {
- var manager = new WorkFlowProcedureManager();
- var list = manager.GetWorkFlowProcedureList(procedureName, projectCode, activity);
- return Json(list);
- }
- /// <summary>
- /// 流程审核
- /// </summary>
- /// <param name="userCode">用户编码</param>
- /// <param name="procedureCode">流程编码</param>
- /// <returns></returns>
- [HttpGet]
- [Route("WorkFlowAudit")]
- public ActionResult WorkFlowAudit(string userCode, string procedureCode)
- {
- var flowManager = new WorkFlowProcedureManager();
- var taskList = flowManager.GetWorkFlowTasks(procedureCode);
- var isShowHand = false; //是否显示手送资料
- var isShowUnit = false; //是否显示经办人部门
- var task = taskList.Find(m => m.TaskName == "申请人");
- isShowHand = task.ModuleState.Contains("Hand") ? true : false;
- isShowUnit = task.ModuleState.Contains("部门") ? true : false;
- var manager = new UnitManager();
- var list = manager.GetUnitDTOList(userCode);
- var data = new
- {
- isShowHand,
- isShowUnit,
- list
- };
- logger.Info($"【WorkFlowAudit】data:{JsonConvert.SerializeObject(data)}");
- return Json(data);
- }
- /// <summary>
- /// 流程保存事件
- /// </summary>
- /// <param name="dto"></param>
- /// <returns></returns>
- [HttpPost]
- [Route("WorkFlowSave")]
- public ActionResult WorkFlowSave([FromBody] WorkFlowDTO dto)
- {
- logger.Info($"【WorkFlowSave】dto:{JsonConvert.SerializeObject(dto)}");
- var actCode = new WorkFlowProcedureManager().WorkFlowSave(dto);
- var returnObject = new ReturnObject<string>();
- if (!actCode.IsInteger())
- {
- returnObject.IsSuccess = false;
- returnObject.ErrMsg = actCode;
- }
- else
- {
- returnObject.IsSuccess = true;
- returnObject.ErrMsg = "";
- returnObject.Data = actCode;
- }
- logger.Info($"【WorkFlowSave】returnObject:{JsonConvert.SerializeObject(returnObject)}");
- return Json(returnObject);
- }
- #endregion
- }
- }
|