// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。 // // 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。 // // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! using Admin.NET.Core; using DocumentFormat.OpenXml.Drawing.Charts; using Furion.DependencyInjection; using Furion.DynamicApiController; using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; using Vistar.Application.Const; using Vistar.Application.Entity; using Vistar.Application.Service.OaOpenInterface.Dto; using Vistar.Application.SolidWorksManageService.Dto; namespace Vistar.Application.Service.OaOpenInterface; /// /// 开放接口给OA /// [ApiDescriptionSettings(ApplicationConst.GroupName, Name = "OaOpenInterfaceService", Order = 100)] public class OaOpenInterfaceService : IDynamicApiController, ITransient { public SqlSugarRepository _obj109Rep; public SolidWorksManageService.SolidWorksManageService _solidWorksManageService; public SqlSugarRepository _objectFieldsGroupsRep; public SqlSugarRepository _fieldGroupDefaultRep; public OaOpenInterfaceService( SqlSugarRepository obj109Rep, SolidWorksManageService.SolidWorksManageService solidWorksManageService, SqlSugarRepository objectFieldsGroupsRep, SqlSugarRepository fieldGroupDefaultRep) { _obj109Rep = obj109Rep; _solidWorksManageService = solidWorksManageService; _objectFieldsGroupsRep = objectFieldsGroupsRep; _fieldGroupDefaultRep = fieldGroupDefaultRep; } /// /// OA创建、修改项目 /// /// /// [Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme + "," + SignatureAuthenticationDefaults.AuthenticationScheme)] [ApiDescriptionSettings(Name = "OaCreateProject"), HttpPost] [DisplayName("OA创建、修改项目")] public async Task OaCreateProject(OaCreateProjectInput input) { var response = new ManageResponse(); if (string.IsNullOrWhiteSpace(input._System_objNBS) || string.IsNullOrWhiteSpace(input._System_objDescription)) { response.Success = true; response.Message = "请输入必填字段"; return response; } if (input._System_objDescription.Length > 40) { response.Success = true; response.Message = "项目名称不能超过40字符"; return response; } //判断是否存在项目记录 var clientExists = await _obj109Rep.AsQueryable().AnyAsync(x => x._System_objNBS == input._System_objNBS && x.deleted == false); if (clientExists == false) { var fieldList = new List(); if (input.fld004503 != null) { fieldList.Add(new Field { key = "fld004503", value = input.fld004503.ToString() }); } if (input.fld004503 != null) { fieldList.Add(new Field { key = "fld004504", value = input.fld004504.ToString() }); } fieldList.Add(new Field { key = "fld004684", value = input.fld004684 }); fieldList.Add(new Field { key = "_System_objNBS", value = input._System_objNBS }); fieldList.Add(new Field { key = "_System_objDescription", value = input._System_objDescription }); fieldList.Add(new Field { key = "fld004728", value = input.fld004728 }); fieldList.Add(new Field { key = "fld005299", value = input.fld005299 }); fieldList.Add(new Field { key = "fld005300", value = input.fld005300 }); fieldList.Add(new Field { key = "fld005281", value = "SET" }); fieldList.Add(new Field { key = "fld004521", value = "M" }); fieldList.Add(new Field { key = "fld004519", value = "FERT" }); fieldList.Add(new Field { key = "fld004522", value = "1000" }); fieldList.Add(new Field { key = "fld004928", value = "E" }); fieldList.Add(new Field { key = "fld004935", value = "X" }); fieldList.Add(new Field { key = "fld004510", value = "A" }); fieldList.Add(new Field { key = "fld004514", value = "A" }); fieldList.Add(new Field { key = "fld004517", value = "A" }); fieldList.Add(new Field { key = "fld005753", value = "OA" }); var fieldGroupValue = await _fieldGroupDefaultRep.AsQueryable().Where(x => x.GroupObjid == input.object_id).ToListAsync(); for (int i = 0; i < fieldGroupValue.Count; i++) { fieldList.Add(new Field { key = "fld00" + fieldGroupValue[i].ColumnId, value = fieldGroupValue[i].DefaultValue }); } var fieldGroup = await _objectFieldsGroupsRep.AsQueryable().Where(x => x.GroupName == input.field_group).FirstAsync(); var data = new CreateProjectInput { object_id = input.object_id, field_group_id = fieldGroup.GroupObjId, fields = fieldList }; response = await _solidWorksManageService.CreateProject(data); var projectData = await _obj109Rep.AsQueryable().Where(x=>x._System_objNBS==input._System_objNBS).FirstAsync(); var CheckData = new CheckDataInput() { object_id=input.object_id, record_guid=projectData.RecordGuid, bom_level=1 }; await _solidWorksManageService.CheckOut(CheckData); await _solidWorksManageService.CheckIn(CheckData); } else if (clientExists == true) { var updateable = await _obj109Rep.AsUpdateable() .SetColumns(it => new Obj109 { fld004684 = input.fld004684, _System_ObjDescription = input._System_objDescription, fld004728 = input.fld004728, fld005299 = input.fld005299, fld005300 = input.fld005300, fld004503 = input.fld004503, fld004504 = input.fld004504 }) .Where(x => x._System_objNBS == input._System_objNBS && x.deleted == false) .ExecuteCommandHasChangeAsync(); response.Success = true; response.Message = updateable ? "修改成功" : "修改失败"; } return response; } }