去除引用common.props

This commit is contained in:
2023-11-06 19:35:59 +08:00
parent 6a2154edd9
commit c6b8dfc861
810 changed files with 3910 additions and 6695 deletions

View File

@@ -9,7 +9,7 @@ namespace Tnb.BasicData
/// 物料签收编码
/// </summary>
public const string MATERIAL_RECEIPT_CODE = "MaterialReceipt";
/// <summary>
/// 生产投料编码
/// </summary>
@@ -24,17 +24,17 @@ namespace Tnb.BasicData
/// 备件领用
/// </summary>
public const string SPAREPARTSREQUISITION_CODE = "SparePartsRequisition";
/// <summary>
/// 生产齐套领料
/// </summary>
public const string PRDKITTINGOUTSTOCK_CODE = "PrdKittingOutStocK";
/// <summary>
/// 设备维修单
/// </summary>
public const string EQPREPAIR_CODE = "EqpRepair";
}
}

View File

@@ -6,7 +6,7 @@ namespace Tnb.BasicData
/// 2024-10-27 10:10
/// </summary>
public const string MM = "yyyy-MM-dd HH:mi";
/// <summary>
/// 2024-10-27 10:10:10
/// </summary>

View File

@@ -76,7 +76,7 @@ public static class DictConst
/// 工单状态-code
/// </summary>
public const string MoTaskStatusCode = "OrderStatus";
/// <summary>
/// 工单状态 已下发字典Id
/// </summary>
@@ -137,12 +137,12 @@ public static class DictConst
/// 任务单状态key
/// </summary>
public const string TaskStatus = "TaskStatus";
/// <summary>
/// andon状态key
/// </summary>
public const string AndonStatus = "AndonStatus";
/// <summary>
/// andon状态呼叫中
/// </summary>
@@ -168,17 +168,17 @@ public static class DictConst
/// 产成品入库单
/// </summary>
public const string CHANCHENGPINRUKUDAN = "40";
/// <summary>
/// 生产领料单
/// </summary>
public const string SHENGCHANLINGLIAO = "23";
/// <summary>
/// 生产补料单
/// </summary>
public const string SHENGCHANBULIAO = "24";
#endregion

View File

@@ -9,7 +9,7 @@ namespace Tnb.BasicData
/// 报工是否允许超过工单计划数 是1 否 0
/// </summary>
public const string IS_SURPASS = "is_surpass";
/// <summary>
/// 报工允许超过工单计划数百分比 例填写10就是10%
/// </summary>

View File

@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Tnb.BasicData;
namespace Tnb.BasicData;
public class ModuleConst
{

View File

@@ -5,17 +5,17 @@ namespace Tnb.BasicData
#region wms
//mes生产入库接口
public const string MES_CREATE_INSTOCK = "/api/wms/wms-in-stock/mes-create-instock";
public const string MES_CREATE_INSTOCK = "/api/wms/wms-in-stock/mes-create-instock";
//载具签收接口
public const string MES_CARRY_SIGN = "/api/wms/wms-sign-for-delivery/mes-carry-sign";
public const string MES_CARRY_SIGN = "/api/wms/wms-sign-for-delivery/mes-carry-sign";
//生产出库接口
public const string MES_CREATE_OUTSTOCK = "/api/wms/wms-out-stock/mes-create-outstock";
public const string MES_CREATE_OUTSTOCK = "/api/wms/wms-out-stock/mes-create-outstock";
//齐套出库接口
public const string MES_KITTING_OUT_STK = "/api/wms/wmskitting-out/mes-kitting-out-stk";
public const string MES_KITTING_OUT_STK = "/api/wms/wmskitting-out/mes-kitting-out-stk";
//物料标签查询接口
public const string MES_FETCH_IN_OUT_STOCK_INFO_BY_BAR_CODE = "/api/wms/wms-in-stock/mes-fetch-in-out-stock-info-by-bar-code";

View File

@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Tnb.BasicData.Entities.Dto
namespace Tnb.BasicData.Entities.Dto
{
public class CalendarInput
{
@@ -12,9 +6,9 @@ namespace Tnb.BasicData.Entities.Dto
public string? datetype { get; set; }
public string? workhour { get; set; }
public string? worktype { get; set; }
public int? calendartype { get; set;}
public int? calendartype { get; set; }
public string? content { get; set;}
public string? content { get; set; }
}
public class CalendarBatchInput
{

View File

@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Tnb.BasicData.Entities.Dto.BasCalendar
namespace Tnb.BasicData.Entities.Dto.BasCalendar
{
public class CalendarOut
{

View File

@@ -4,7 +4,7 @@ namespace Tnb.BasicData.Entities.Dto
{
public string mbom_id { get; set; } = string.Empty;
public string mbom_process_id { get; set; } = string.Empty;
/// <summary>
/// 当前页码:pageIndex.
/// </summary>
@@ -14,7 +14,7 @@ namespace Tnb.BasicData.Entities.Dto
/// 每页行数.
/// </summary>
public virtual int pageSize { get; set; } = 50;
public string? queryJson { get; set; }
}
}

View File

@@ -25,9 +25,9 @@ namespace Tnb.BasicData.Entities.Dto
/// 附件对象.
/// </summary>
public string attachment { get; set; } = string.Empty;
public string version { get; set; } = string.Empty;
/// <summary>
/// 备注
/// </summary>

View File

@@ -30,54 +30,54 @@ namespace Tnb.BasicData.Entities.Dto
/// 是否有下级
/// </summary>
public bool hasChildren { get; set; }
/// <summary>
/// Desc:投料管控
/// Default:NULL::character varying
/// Nullable:True
/// </summary>
public string? feeding_control {get;set;}
public string? feeding_control { get; set; }
/// <summary>
/// Desc:损耗率
/// Default:NULL::character varying
/// Nullable:True
/// </summary>
public string? loss_rate {get;set;}
public string? loss_rate { get; set; }
/// </summary>
/// <summary>
/// 数量
/// </summary>
public decimal quantity { get; set; }
/// <summary>
/// Desc:需要称量
/// Default:NULL::character varying
/// Nullable:True
/// </summary>
public string? require_weight {get;set;}
public string? require_weight { get; set; }
/// <summary>
/// Desc:替代物料
/// Default:NULL::character varying
/// Nullable:True
/// </summary>
public string? substitute_material_id {get;set;}
public string? substitute_material_id { get; set; }
/// <summary>
/// Desc:工艺路线
/// Default:NULL::character varying
/// Nullable:True
/// </summary>
public string? route_name {get;set;}
public string? route_name { get; set; }
/// <summary>
/// Desc:版本号
/// Default:NULL::character varying
/// Nullable:True
/// </summary>
public string? version {get;set;}
public string? version { get; set; }
}
}

View File

@@ -10,8 +10,8 @@ namespace Tnb.BasicData.Entities.Dto
/// 物料id
/// </summary>
public string? materialId { get; set; }
}
}

View File

@@ -12,7 +12,7 @@ namespace Tnb.BasicData.Entities.Dto
/// 物料类型
/// </summary>
public string types { get; set; } = string.Empty;
/// <summary>
/// 当前页码:pageIndex.
/// </summary>

View File

@@ -9,27 +9,27 @@ namespace Tnb.BasicData.Entities.Dto
/// 物料id
/// </summary>
public string? id { get; set; }
/// <summary>
/// 编码
/// </summary>
public string? code { get; set; }
/// <summary>
/// 名称
/// </summary>
public string? name { get; set; }
public string? name { get; set; }
/// <summary>
/// 描述
/// </summary>
public string? descrip { get; set; }
/// <summary>
/// 主单位id
/// </summary>
public string? unit_id { get; set; }
/// <summary>
/// 主单位名称
/// </summary>

View File

@@ -11,7 +11,7 @@ namespace Tnb.BasicData.Entities.Dto
/// 物料编码名称查询
/// </summary>
public string material_info { get; set; } = string.Empty;
/// <summary>
/// 当前页码:pageIndex.
/// </summary>

View File

@@ -1,5 +1,3 @@
using Tnb.BasicData.Entities;
namespace Tnb.BasicData.Entities.Dto
{
public class MbomDataOutput
@@ -8,57 +6,57 @@ namespace Tnb.BasicData.Entities.Dto
/// 生产bomid
/// </summary>
public string? id { get; set; }
/// <summary>
/// 物料id
/// </summary>
public string? material_id { get; set; }
/// <summary>
/// 数量
/// </summary>
public int num { get; set; }
/// <summary>
/// 单位id
/// </summary>
public string? unit_id { get; set; }
/// <summary>
/// 版本号
/// </summary>
public string? version { get; set; }
/// <summary>
/// 有效开始时间
/// </summary>
public DateTime? start_time { get; set; }
/// <summary>
/// 有效结束时间
/// </summary>
public DateTime? end_time { get; set; }
/// <summary>
/// 物料清单id
/// </summary>
public string? ebom_id { get; set; }
/// <summary>
/// 工艺路线id
/// </summary>
public string? route_id { get; set; }
/// <summary>
/// 物料均再首道工序投产
/// </summary>
public int? is_first { get; set; }
/// <summary>
/// 备注
/// </summary>
public string? remark { get; set; }
/// <summary>
/// 工序
/// </summary>
@@ -68,24 +66,24 @@ namespace Tnb.BasicData.Entities.Dto
public class MbomProcessOutDto
{
public string id { get; set; } = string.Empty;
/// <summary>
/// Desc:生产bomid
/// Default:
/// Nullable:False
/// </summary>
public string? mbom_id { get; set; }
/// <summary>
/// 工序编号
/// </summary>
public string? no { get; set; }
/// <summary>
/// 上道工序编号
/// </summary>
public string? last_process_no { get; set; }
/// <summary>
/// 下道工序编号
/// </summary>
@@ -111,26 +109,26 @@ namespace Tnb.BasicData.Entities.Dto
/// Nullable:True
/// </summary>
public string? station { get; set; }
/// <summary>
/// Desc:副产出管控 0 不启用 1 启用
/// Default:
/// Nullable:False
/// </summary>
public int byproduct_status { get; set; }
/// <summary>
/// Desc:投产方式
/// Default:NULL::character varying
/// Nullable:True
/// </summary>
public string? production_method {get;set;}
public string? production_method { get; set; }
/// <summary>
/// 投入物料
/// </summary>
public List<BasMbomInput>? inputs { get; set; }
/// <summary>
/// 产出物料
/// </summary>

View File

@@ -1,5 +1,3 @@
using Tnb.BasicData.Entities;
namespace Tnb.BasicData.Entities.Dto
{
public class MbomSaveDataInput
@@ -8,57 +6,57 @@ namespace Tnb.BasicData.Entities.Dto
/// 生产bomid
/// </summary>
public string id { get; set; } = string.Empty;
/// <summary>
/// 物料id
/// </summary>
public string material_id { get; set; } = string.Empty;
/// <summary>
/// 数量
/// </summary>
public int num { get; set; }
/// <summary>
/// 单位id
/// </summary>
public string unit_id { get; set; } = string.Empty;
/// <summary>
/// 版本号
/// </summary>
public string version { get; set; } = string.Empty;
/// <summary>
/// 有效开始时间
/// </summary>
public DateTime? start_time { get; set; }
/// <summary>
/// 有效结束时间
/// </summary>
public DateTime? end_time { get; set; }
/// <summary>
/// 物料清单id
/// </summary>
public string ebom_id { get; set; } = string.Empty;
/// <summary>
/// 工艺路线id
/// </summary>
public string route_id { get; set; } = string.Empty;
/// <summary>
/// 物料均再首道工序投产
/// </summary>
public int is_first { get; set; }
/// <summary>
/// 备注
/// </summary>
public string remark { get; set; } = string.Empty;
/// <summary>
/// 工序
/// </summary>
@@ -68,7 +66,7 @@ namespace Tnb.BasicData.Entities.Dto
public class MbomProcessDto
{
public string id { get; set; } = string.Empty;
/// <summary>
/// Desc:生产bomid
/// Default:
@@ -82,17 +80,17 @@ namespace Tnb.BasicData.Entities.Dto
/// Nullable:False
/// </summary>
public string? process_id { get; set; }
/// <summary>
/// 工序编号
/// </summary>
public string? no { get; set; }
/// <summary>
/// 上道工序编号
/// </summary>
public string? last_process_no { get; set; }
/// <summary>
/// 下道工序编号
/// </summary>
@@ -111,31 +109,31 @@ namespace Tnb.BasicData.Entities.Dto
/// Nullable:True
/// </summary>
public string? station { get; set; }
/// <summary>
/// Desc:副产出管控 0 不启用 1 启用
/// Default:
/// Nullable:False
/// </summary>
public int byproduct_status { get; set; }
/// <summary>
/// 工艺路线子表id
/// </summary>
public string route_detail_id { get; set; } = string.Empty;
/// <summary>
/// Desc:投产方式
/// Default:NULL::character varying
/// Nullable:True
/// </summary>
public string? production_method {get;set;}
public string? production_method { get; set; }
/// <summary>
/// 投入物料
/// </summary>
public List<BasMbomInput>? inputs { get; set; }
/// <summary>
/// 产出物料
/// </summary>

View File

@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Tnb.BasicData.Entitys.Dto.BasProcess
namespace Tnb.BasicData.Entitys.Dto.BasProcess
{
/// <summary>
/// 工序列表输出类
@@ -14,7 +8,7 @@ namespace Tnb.BasicData.Entitys.Dto.BasProcess
public string id { get; set; }
public string process_code { get; set; }
public string process_name { get; set; }
public string process_collection { get; set;}
public string process_collection { get; set; }
public string status { get; set; }
public string station { get; set; }
public string must_pass { get; set; }
@@ -27,6 +21,6 @@ namespace Tnb.BasicData.Entitys.Dto.BasProcess
public string org_id { get; set; }
public string create_id { get; set; }
public string modify_id { get; set; }
public DateTime? modify_time { get; set;}
public DateTime? modify_time { get; set; }
}
}

View File

@@ -6,7 +6,7 @@ namespace Tnb.BasicData.Entities.Dto
/// 工序id
/// </summary>
public string? process_id { get; set; }
/// <summary>
/// 工位id集合
/// </summary>

View File

@@ -3,13 +3,13 @@ namespace Tnb.BasicData.Entities.Dto
public class VaildRouteOutput
{
public string? id { get; set; }
public string? code { get; set; }
public string? name { get; set; }
public string start_time { get; set; } = string.Empty;
public string end_time { get; set; } = string.Empty;
}
}

View File

@@ -2,8 +2,8 @@ namespace Tnb.BasicData.Entitys
{
public class ElementSelectDto
{
public string?label { get; set; }
public string? label { get; set; }
public string? value { get; set; }
}
}

View File

@@ -1,9 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using JNPF.Common.Security;
using JNPF.Common.Security;
namespace Tnb.BasicData.Entities.Dto
{

View File

@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Tnb.BasicData.Entities.Dto
namespace Tnb.BasicData.Entities.Dto
{
/// <summary>
/// 子工单列表
@@ -34,7 +28,7 @@ namespace Tnb.BasicData.Entities.Dto
/// <summary>
/// 数量
/// </summary>
public string num { get; set;}
public string num { get; set; }
/// <summary>
/// 单位id
/// </summary>
@@ -64,7 +58,7 @@ namespace Tnb.BasicData.Entities.Dto
/// 工序排序序号
/// </summary>
public long? ordinal { get; set; }
/// <summary>
/// 生产bom工序id
/// </summary>

View File

@@ -1,9 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using JNPF.Common.Contracts;
using JNPF.Common.Contracts;
using JNPF.Common.Security;
using SqlSugar;

View File

@@ -1,7 +1,6 @@
using JNPF.Common.Contracts;
using JNPF.Common.Security;
using SqlSugar;
using SqlSugar.DbConvert;
namespace Tnb.BasicData.Entities;
@@ -44,7 +43,7 @@ public partial class BasLocation : BaseEntity<string>
/// 是否使用
/// </summary>
//[SugarColumn(ColumnDataType = "varchar(32)", SqlParameterDbType = typeof(CommonPropertyConvert))]
public string is_use { get; set; }
public string is_use { get; set; }
/// <summary>
/// 是否最小

View File

@@ -248,7 +248,7 @@ public partial class BasMaterial : BaseEntity<string>
/// 是否包含入库数
/// </summary>
public int? is_contain_into_num { get; set; }
/// <summary>
/// 是否创建子工单
/// </summary>

View File

@@ -43,7 +43,7 @@ public partial class BasMbomInput : BaseEntity<string>
/// 数量
/// </summary>
public decimal num { get; set; }
/// <summary>
/// 单位id
/// </summary>

View File

@@ -43,7 +43,7 @@ public partial class BasMbomOutput : BaseEntity<string>
/// 产出数量(可小数分数)
/// </summary>
public string num { get; set; } = string.Empty;
/// <summary>
/// 单位id
/// </summary>

View File

@@ -53,7 +53,7 @@ public partial class BasMbomProcess : BaseEntity<string>
/// 工艺路线子表id
/// </summary>
public string route_detail_id { get; set; } = string.Empty;
/// <summary>
/// 是否时最后一道工序
/// </summary>
@@ -63,7 +63,7 @@ public partial class BasMbomProcess : BaseEntity<string>
/// 排序
/// </summary>
public int ordinal { get; set; }
/// <summary>
/// 工序编号
/// </summary>

View File

@@ -113,7 +113,7 @@ public partial class BasRouteD : BaseEntity<string>
/// 产出比
/// </summary>
public decimal? output_ratio { get; set; }
/// <summary>
/// 工序编号
/// </summary>

View File

@@ -1,9 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using JNPF.Common.Contracts;
using JNPF.Common.Contracts;
using JNPF.Common.Security;
using SqlSugar;

View File

@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Tnb.BasicData.Entities.Enums
namespace Tnb.BasicData.Entities.Enums
{
public enum EnumCalendarType
{

View File

@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Tnb.BasicData.Entities.Enums
namespace Tnb.BasicData.Entities.Enums
{
/// <summary>
/// 库位类型

View File

@@ -1,5 +1,4 @@
using Mapster;
using SqlSugar;
using Tnb.BasicData.Entities.Dto;
namespace Tnb.BasicData.Entities

View File

@@ -1,12 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Tnb.BasicData.Entitys.Model
namespace Tnb.BasicData.Entitys.Model
{
public class RouteTree
public class RouteTree
{
/// <summary>
/// 工艺路线类型
@@ -19,7 +13,7 @@ namespace Tnb.BasicData.Entitys.Model
}
public class RouteName
public class RouteName
{
public string Tag { get; set; }
/// <summary>
@@ -29,5 +23,5 @@ namespace Tnb.BasicData.Entitys.Model
}
}

View File

@@ -1,5 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="$(SolutionDir)\common.props" />
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>

View File

@@ -1,9 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tnb.BasicData.Entities.Dto;
using Tnb.BasicData.Entities.Dto;
namespace Tnb.BasicData.Interfaces
{

View File

@@ -10,20 +10,20 @@ namespace Tnb.BasicData.Interfaces
/// <param name="input"></param>
/// <returns></returns>
public Task<dynamic> UploadNewVersion(UploadNewVersionInput input);
/// <summary>
/// 获取历史记录
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public Task<dynamic> GetHistoryList(EsopHistoryListQueryInput input);
/// <summary>
/// 根据生产bom工序id获取实体
/// </summary>
/// <param name="dic">mbomProcessId</param>
/// <returns></returns>
public Task<dynamic> GetEntityByMbomProcessId(Dictionary<string,string> dic);
public Task<dynamic> GetEntityByMbomProcessId(Dictionary<string, string> dic);
}
}

View File

@@ -1,9 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tnb.BasicData.Entities;
using Tnb.BasicData.Entities;
namespace Tnb.BasicData.Interfaces
{

View File

@@ -10,8 +10,8 @@ namespace Tnb.BasicData.Interfaces
/// <param name="queryInput"></param>
/// <returns></returns>
public Task<dynamic> GetMaterialSelectInfo(MaterialSelectQueryInput queryInput);
/// <summary>
/// 获取可创建子工单的物料
/// </summary>
@@ -25,7 +25,7 @@ namespace Tnb.BasicData.Interfaces
/// <param name="dic"></param>
/// <returns></returns>
public Task<dynamic> GetMaterialByType(Dictionary<string, string> dic);
/// <summary>
/// 根据物料类型获取物料列表
/// </summary>

View File

@@ -1,10 +1,6 @@
using JNPF.Common.Dtos.VisualDev;
using JNPF.VisualDev;
using Tnb.BasicData.Entities.Dto;
namespace Tnb.BasicData.Interfaces
{
public interface IBasProcessService
{
{
}
}

View File

@@ -1,6 +1,6 @@
namespace Tnb.BasicData.Interfaces
{
/// <summary>
/// 二维码
/// </summary>
@@ -12,14 +12,14 @@ namespace Tnb.BasicData.Interfaces
/// <param name="code"></param>
/// <returns></returns>
public Task<dynamic> GetQrcodeByCode(Dictionary<string, string> dic);
/// <summary>
/// 根据code获取工位信息
/// </summary>
/// <param name="code"></param>
/// <returns></returns>
public Task<dynamic> GetWorkStationByCode(Dictionary<string, string> dic);
/// <summary>
/// 获取工位信息
/// </summary>

View File

@@ -1,5 +1,4 @@
using JNPF.Common.Dtos.VisualDev;
using JNPF.Common.Filter;
namespace Tnb.BasicData.Interfaces
{
@@ -16,7 +15,7 @@ namespace Tnb.BasicData.Interfaces
/// </summary>
/// <param name="parameters">工艺路线id id</param>
public Task<string> Copy(Dictionary<string, string> parameters);
/// <summary>
/// 获取有效的已发布的工艺路线
/// </summary>

View File

@@ -1,5 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="$(SolutionDir)\common.props" />
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>

View File

@@ -1,19 +1,8 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Aop.Api.Domain;
using Aspose.Cells.Drawing;
using JNPF.Common.Core.Manager;
using JNPF.Common.Models.VisualDev;
using JNPF.Common.Core.Manager;
using JNPF.DependencyInjection;
using JNPF.DynamicApiController;
using JNPF.JsonSerialization;
using JNPF.Systems.Interfaces.System;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc;
using NPOI.SS.Formula.Functions;
using SqlSugar;
using Tnb.BasicData.Entities;
using Tnb.BasicData.Entities.Dto;
@@ -28,7 +17,7 @@ namespace Tnb.BasicData
/// </summary>
[ApiDescriptionSettings(Tag = ModuleConst.Tag, Area = ModuleConst.Area, Order = 1102)]
[Route("api/[area]/[controller]/[action]")]
public class BasCalendarService: IBasCalendarService, IDynamicApiController, ITransient
public class BasCalendarService : IBasCalendarService, IDynamicApiController, ITransient
{
private readonly ISqlSugarRepository<BasCalendar> _repository;
private readonly IUserManager _userManager;
@@ -38,6 +27,7 @@ namespace Tnb.BasicData
_repository = repository;
_userManager = userManager;
}
/// <summary>
/// 保存工作日历
/// </summary>
@@ -46,17 +36,20 @@ namespace Tnb.BasicData
[HttpPost]
public async Task SaveData(CalendarInput CalendarInput)
{
var db = _repository.AsSugarClient();
await db.Deleteable<BasCalendar>(p=>p.datetext== CalendarInput.datetext).ExecuteCommandAsync();
BasCalendar BasCalendar = new BasCalendar();
BasCalendar.datetext = CalendarInput.datetext;
BasCalendar.datetype = CalendarInput.datetype;
BasCalendar.workhour = CalendarInput.workhour;
BasCalendar.worktype = CalendarInput.worktype;
BasCalendar.create_id = _userManager.UserId;
BasCalendar.create_time = DateTime.Now;
await db.Insertable(BasCalendar).ExecuteCommandAsync();
ISqlSugarClient db = _repository.AsSugarClient();
_ = await db.Deleteable<BasCalendar>(p => p.datetext == CalendarInput.datetext).ExecuteCommandAsync();
BasCalendar BasCalendar = new()
{
datetext = CalendarInput.datetext,
datetype = CalendarInput.datetype,
workhour = CalendarInput.workhour,
worktype = CalendarInput.worktype,
create_id = _userManager.UserId,
create_time = DateTime.Now
};
_ = await db.Insertable(BasCalendar).ExecuteCommandAsync();
}
/// <summary>
/// 获取工作日历
/// </summary>
@@ -64,95 +57,31 @@ namespace Tnb.BasicData
[HttpPost]
public async Task<dynamic> GetWorkData(CalendarInput CalendarInput)
{
List<CalendarOut> CalendarOuts = new List<CalendarOut>();
List<CalendarOut> CalendarOuts = new();
if (CalendarInput.calendartype == (int)EnumCalendarType.)
{
var db = _repository.AsSugarClient();
var lists = await db.Queryable<BasCalendar>().Where(p => p.worktype == CalendarInput.content).ToListAsync();
foreach (var list in lists)
ISqlSugarClient db = _repository.AsSugarClient();
List<BasCalendar> lists = await db.Queryable<BasCalendar>().Where(p => p.worktype == CalendarInput.content).ToListAsync();
foreach (BasCalendar list in lists)
{
CalendarOut CalendarOut = new CalendarOut();
CalendarOut.datetext = list.datetext;
CalendarOut.datetype = list.datetype;
CalendarOut.workhour = JSON.Deserialize<List<WorkHour>>(list.workhour);
CalendarOut.worktype = list.worktype;
CalendarOut CalendarOut = new()
{
datetext = list.datetext,
datetype = list.datetype,
workhour = JSON.Deserialize<List<WorkHour>>(list.workhour),
worktype = list.worktype
};
CalendarOuts.Add(CalendarOut);
}
}
else if (CalendarInput.calendartype == (int)EnumCalendarType.)
{
var db = _repository.AsSugarClient();
var Shifts = await db.Queryable<BasShiftWorkgroup>().Where(p => p.workgroup_id == CalendarInput.content).Select(p=>p.shift_id).ToListAsync();
ISqlSugarClient db = _repository.AsSugarClient();
List<string> Shifts = await db.Queryable<BasShiftWorkgroup>().Where(p => p.workgroup_id == CalendarInput.content).Select(p => p.shift_id).ToListAsync();
if (Shifts != null && Shifts.Count > 0)
{
var BasTimePeriods = await db.Queryable<BasTimePeriod, BasShift>((a, b) => new object[] { JoinType.Inner, a.shifttype_id == b.id })
.Where((a,b) => Shifts.Contains(a.shifttype_id!))
.Select((a, b) =>
new Shift
{
startday = b.shiftb_time,
endday = b.shifte_time,
workhour = new WorkHour { start=a.tpb_time,end=a.tpe_time },
}
).ToListAsync();
var BasTimePeriodRests = await db.Queryable<BasTimePeriodRest, BasShift>((a, b) => new object[] { JoinType.Inner, a.shift_type_id == b.id })
.Where((a, b) => Shifts.Contains(a.shift_type_id!))
.Select((a, b) =>
new Shift
{
startday = b.shiftb_time,
endday = b.shifte_time,
workhour = new WorkHour { start = a.tp_b_time, end = a.tp_e_time },
}).ToListAsync();
foreach (var BasTimePeriod in BasTimePeriods)
{
var start = DateTime.Parse(BasTimePeriod.startday!);
var end = DateTime.Parse(BasTimePeriod.endday!);
for (DateTime date = start; date <= end; date = date.AddDays(1))
{
if (CalendarOuts.Where(p => p.datetext == date.ToString("yyyy-MM-dd")).Any())
CalendarOuts.Where(p => p.datetext == date.ToString("yyyy-MM-dd")).First().workhour!.Add(BasTimePeriod.workhour!);
else
{
CalendarOut CalendarOut = new CalendarOut();
CalendarOut.datetext = date.ToString("yyyy-MM-dd");
CalendarOut.datetype = "workDay";
CalendarOut.workhour = new List<WorkHour> { BasTimePeriod.workhour! };
CalendarOuts.Add(CalendarOut);
}
}
}
foreach (var BasTimePeriodRest in BasTimePeriodRests)
{
var start = DateTime.Parse(BasTimePeriodRest.startday!);
var end = DateTime.Parse(BasTimePeriodRest.endday!);
for (DateTime date = start; date <= end; date = date.AddDays(1))
{
if (CalendarOuts.Where(p => p.datetext == date.ToString("yyyy-MM-dd")).Any())
CalendarOuts.Where(p => p.datetext == date.ToString("yyyy-MM-dd")).First().workhour!.Add(BasTimePeriodRest.workhour!);
else
{
CalendarOut CalendarOut = new CalendarOut();
CalendarOut.datetext = date.ToString("yyyy-MM-dd");
CalendarOut.datetype = "dayOff";
CalendarOut.workhour = new List<WorkHour> { BasTimePeriodRest.workhour! };
CalendarOuts.Add(CalendarOut);
}
}
}
}
}
else if (CalendarInput.calendartype == (int)EnumCalendarType.)
{
var db = _repository.AsSugarClient();
var groups = await db.Queryable<BasWorkgroupEmployee>().Where(p => p.employee_id == CalendarInput.content).Select(p => p.group_id).ToListAsync();
var Shifts = await db.Queryable<BasShiftWorkgroup>().Where(p => groups.Contains(p.workgroup_id)).Select(p => p.shift_id).ToListAsync();
if (Shifts != null && Shifts.Count > 0)
{
var BasTimePeriods = await db.Queryable<BasTimePeriod, BasShift>((a, b) => new object[] { JoinType.Inner, a.shifttype_id == b.id })
List<Shift> BasTimePeriods = await db.Queryable<BasTimePeriod, BasShift>((a, b) => new object[] { JoinType.Inner, a.shifttype_id == b.id })
.Where((a, b) => Shifts.Contains(a.shifttype_id!))
.Select((a, b) =>
new Shift
@@ -163,8 +92,7 @@ namespace Tnb.BasicData
}
).ToListAsync();
var BasTimePeriodRests = await db.Queryable<BasTimePeriodRest, BasShift>((a, b) => new object[] { JoinType.Inner, a.shift_type_id == b.id })
List<Shift> BasTimePeriodRests = await db.Queryable<BasTimePeriodRest, BasShift>((a, b) => new object[] { JoinType.Inner, a.shift_type_id == b.id })
.Where((a, b) => Shifts.Contains(a.shift_type_id!))
.Select((a, b) =>
new Shift
@@ -173,38 +101,119 @@ namespace Tnb.BasicData
endday = b.shifte_time,
workhour = new WorkHour { start = a.tp_b_time, end = a.tp_e_time },
}).ToListAsync();
foreach (var BasTimePeriod in BasTimePeriods)
foreach (Shift? BasTimePeriod in BasTimePeriods)
{
var start = DateTime.Parse(BasTimePeriod.startday!);
var end = DateTime.Parse(BasTimePeriod.endday!);
DateTime start = DateTime.Parse(BasTimePeriod.startday!);
DateTime end = DateTime.Parse(BasTimePeriod.endday!);
for (DateTime date = start; date <= end; date = date.AddDays(1))
{
if (CalendarOuts.Where(p => p.datetext == date.ToString("yyyy-MM-dd")).Any())
{
CalendarOuts.Where(p => p.datetext == date.ToString("yyyy-MM-dd")).First().workhour!.Add(BasTimePeriod.workhour!);
}
else
{
CalendarOut CalendarOut = new CalendarOut();
CalendarOut.datetext = date.ToString("yyyy-MM-dd");
CalendarOut.datetype = "workDay";
CalendarOut.workhour = new List<WorkHour> { BasTimePeriod.workhour! };
CalendarOut CalendarOut = new()
{
datetext = date.ToString("yyyy-MM-dd"),
datetype = "workDay",
workhour = new List<WorkHour> { BasTimePeriod.workhour! }
};
CalendarOuts.Add(CalendarOut);
}
}
}
foreach (var BasTimePeriodRest in BasTimePeriodRests)
foreach (Shift? BasTimePeriodRest in BasTimePeriodRests)
{
var start = DateTime.Parse(BasTimePeriodRest.startday!);
var end = DateTime.Parse(BasTimePeriodRest.endday!);
DateTime start = DateTime.Parse(BasTimePeriodRest.startday!);
DateTime end = DateTime.Parse(BasTimePeriodRest.endday!);
for (DateTime date = start; date <= end; date = date.AddDays(1))
{
if (CalendarOuts.Where(p => p.datetext == date.ToString("yyyy-MM-dd")).Any())
{
CalendarOuts.Where(p => p.datetext == date.ToString("yyyy-MM-dd")).First().workhour!.Add(BasTimePeriodRest.workhour!);
}
else
{
CalendarOut CalendarOut = new CalendarOut();
CalendarOut.datetext = date.ToString("yyyy-MM-dd");
CalendarOut.datetype = "dayOff";
CalendarOut.workhour = new List<WorkHour> { BasTimePeriodRest.workhour! };
CalendarOut CalendarOut = new()
{
datetext = date.ToString("yyyy-MM-dd"),
datetype = "dayOff",
workhour = new List<WorkHour> { BasTimePeriodRest.workhour! }
};
CalendarOuts.Add(CalendarOut);
}
}
}
}
}
else if (CalendarInput.calendartype == (int)EnumCalendarType.)
{
ISqlSugarClient db = _repository.AsSugarClient();
List<string> groups = await db.Queryable<BasWorkgroupEmployee>().Where(p => p.employee_id == CalendarInput.content).Select(p => p.group_id).ToListAsync();
List<string> Shifts = await db.Queryable<BasShiftWorkgroup>().Where(p => groups.Contains(p.workgroup_id)).Select(p => p.shift_id).ToListAsync();
if (Shifts != null && Shifts.Count > 0)
{
List<Shift> BasTimePeriods = await db.Queryable<BasTimePeriod, BasShift>((a, b) => new object[] { JoinType.Inner, a.shifttype_id == b.id })
.Where((a, b) => Shifts.Contains(a.shifttype_id!))
.Select((a, b) =>
new Shift
{
startday = b.shiftb_time,
endday = b.shifte_time,
workhour = new WorkHour { start = a.tpb_time, end = a.tpe_time },
}
).ToListAsync();
List<Shift> BasTimePeriodRests = await db.Queryable<BasTimePeriodRest, BasShift>((a, b) => new object[] { JoinType.Inner, a.shift_type_id == b.id })
.Where((a, b) => Shifts.Contains(a.shift_type_id!))
.Select((a, b) =>
new Shift
{
startday = b.shiftb_time,
endday = b.shifte_time,
workhour = new WorkHour { start = a.tp_b_time, end = a.tp_e_time },
}).ToListAsync();
foreach (Shift? BasTimePeriod in BasTimePeriods)
{
DateTime start = DateTime.Parse(BasTimePeriod.startday!);
DateTime end = DateTime.Parse(BasTimePeriod.endday!);
for (DateTime date = start; date <= end; date = date.AddDays(1))
{
if (CalendarOuts.Where(p => p.datetext == date.ToString("yyyy-MM-dd")).Any())
{
CalendarOuts.Where(p => p.datetext == date.ToString("yyyy-MM-dd")).First().workhour!.Add(BasTimePeriod.workhour!);
}
else
{
CalendarOut CalendarOut = new()
{
datetext = date.ToString("yyyy-MM-dd"),
datetype = "workDay",
workhour = new List<WorkHour> { BasTimePeriod.workhour! }
};
CalendarOuts.Add(CalendarOut);
}
}
}
foreach (Shift? BasTimePeriodRest in BasTimePeriodRests)
{
DateTime start = DateTime.Parse(BasTimePeriodRest.startday!);
DateTime end = DateTime.Parse(BasTimePeriodRest.endday!);
for (DateTime date = start; date <= end; date = date.AddDays(1))
{
if (CalendarOuts.Where(p => p.datetext == date.ToString("yyyy-MM-dd")).Any())
{
CalendarOuts.Where(p => p.datetext == date.ToString("yyyy-MM-dd")).First().workhour!.Add(BasTimePeriodRest.workhour!);
}
else
{
CalendarOut CalendarOut = new()
{
datetext = date.ToString("yyyy-MM-dd"),
datetype = "dayOff",
workhour = new List<WorkHour> { BasTimePeriodRest.workhour! }
};
CalendarOuts.Add(CalendarOut);
}
}
@@ -213,6 +222,7 @@ namespace Tnb.BasicData
}
return CalendarOuts;
}
/// <summary>
/// 批量保存工作日历
/// </summary>
@@ -220,37 +230,39 @@ namespace Tnb.BasicData
/// <returns></returns>
public async Task SaveBatchData(CalendarBatchInput CalendarBatchInput)
{
var db = _repository.AsSugarClient();
ISqlSugarClient db = _repository.AsSugarClient();
DateTime start = DateTime.Parse(CalendarBatchInput.startenday![0]);
DateTime end = DateTime.Parse(CalendarBatchInput.startenday![1]);
List<BasCalendar> BasCalendars = new List<BasCalendar>();
var lists=await db.Queryable<BasCalendar>().Where(p=>start<=DateTime.Parse(p.datetext!)&&end>= DateTime.Parse(p.datetext!)&& p.worktype== CalendarBatchInput.worktype).ToListAsync();
var updatelist=new List<BasCalendar>();
List<BasCalendar> BasCalendars = new();
List<BasCalendar> lists = await db.Queryable<BasCalendar>().Where(p => start <= DateTime.Parse(p.datetext!) && end >= DateTime.Parse(p.datetext!) && p.worktype == CalendarBatchInput.worktype).ToListAsync();
List<BasCalendar> updatelist = new();
for (DateTime date = start; date <= end; date = date.AddDays(1))
{
if (CalendarBatchInput.weekday!.Contains((int)date.DayOfWeek))
{
if (lists.Where(p => p.datetext == date.ToString("yyyy-MM-dd")).Any())
{
var BasCalendar = lists.Where(p => p.datetext == date.ToString("yyyy-MM-dd")).First();
BasCalendar BasCalendar = lists.Where(p => p.datetext == date.ToString("yyyy-MM-dd")).First();
BasCalendar.datetype = CalendarBatchInput.datetype;
updatelist.Add(BasCalendar);
updatelist.Add(BasCalendar);
}
else
{
BasCalendar BasCalendar = new BasCalendar();
BasCalendar.datetext = date.ToString("yyyy-MM-dd");
BasCalendar.datetype = CalendarBatchInput.datetype;
BasCalendar.workhour = CalendarBatchInput.workhour;
BasCalendar.worktype = CalendarBatchInput.worktype;
BasCalendar.create_id = _userManager.UserId;
BasCalendar.create_time = DateTime.Now;
BasCalendar BasCalendar = new()
{
datetext = date.ToString("yyyy-MM-dd"),
datetype = CalendarBatchInput.datetype,
workhour = CalendarBatchInput.workhour,
worktype = CalendarBatchInput.worktype,
create_id = _userManager.UserId,
create_time = DateTime.Now
};
BasCalendars.Add(BasCalendar);
}
}
}
await db.Updateable(updatelist).ExecuteCommandAsync();
await db.Insertable(BasCalendars).ExecuteCommandAsync();
_ = await db.Updateable(updatelist).ExecuteCommandAsync();
_ = await db.Insertable(BasCalendars).ExecuteCommandAsync();
}
}
}
}

View File

@@ -2,11 +2,10 @@ using JNPF.Common.Core.Manager;
using JNPF.DependencyInjection;
using JNPF.DynamicApiController;
using JNPF.Systems.Interfaces.System;
using JNPF.VisualDev;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
using Tnb.BasicData.Entities.Dto;
using Tnb.BasicData.Entities;
using Tnb.BasicData.Entities.Dto;
using Tnb.BasicData.Interfaces;
namespace Tnb.BasicData
@@ -16,14 +15,14 @@ namespace Tnb.BasicData
/// </summary>
[ApiDescriptionSettings(Tag = ModuleConst.Tag, Area = ModuleConst.Area, Order = 1102)]
[Route("api/[area]/[controller]/[action]")]
public class BasDefectService: IBasDefectService,IDynamicApiController, ITransient
public class BasDefectService : IBasDefectService, IDynamicApiController, ITransient
{
private readonly ISqlSugarRepository<BasDefect> _repository;
private readonly DataBaseManager _dbManager;
private readonly IDictionaryDataService _dictionaryDataService;
public BasDefectService(
ISqlSugarRepository<BasDefect> repository,DataBaseManager dbManager,IDictionaryDataService dictionaryDataService)
ISqlSugarRepository<BasDefect> repository, DataBaseManager dbManager, IDictionaryDataService dictionaryDataService)
{
_repository = repository;
_dbManager = dbManager;
@@ -34,16 +33,16 @@ namespace Tnb.BasicData
public async Task<dynamic> GetDefectListByProcessId(Dictionary<string, string> dic)
{
string processId = dic["processId"];
var db = _repository.AsSugarClient();
List<string> defectIds = await db.Queryable<BasProcessDefective>().Where(x=>x.process_id==processId).Select(x=>x.defective_id).ToListAsync();
List<string?> defectTypeIds = await db.Queryable<BasDefect>().Where(x=>defectIds.Contains(x.id) && x.enabled==1).Select(x=>x.defect_type_id).ToListAsync();
ISqlSugarClient db = _repository.AsSugarClient();
List<string> defectIds = await db.Queryable<BasProcessDefective>().Where(x => x.process_id == processId).Select(x => x.defective_id).ToListAsync();
List<string?> defectTypeIds = await db.Queryable<BasDefect>().Where(x => defectIds.Contains(x.id) && x.enabled == 1).Select(x => x.defect_type_id).ToListAsync();
return await _repository.AsSugarClient().Queryable<BasDefectType>()
.Where((a) => defectTypeIds.Contains(a.id))
.Select(a => new
{
defect_type_id = a.id,
defect_type_name = a.defect_type_name,
children = SqlFunc.Subqueryable<BasDefect>().Where(x=>x.defect_type_id==a.id && defectIds.Contains(x.id)).ToList(x=>new DefectOutput()
a.defect_type_name,
children = SqlFunc.Subqueryable<BasDefect>().Where(x => x.defect_type_id == a.id && defectIds.Contains(x.id)).ToList(x => new DefectOutput()
{
id = x.id,
defect_code = x.defect_code,

View File

@@ -6,7 +6,6 @@ using JNPF.DependencyInjection;
using JNPF.DynamicApiController;
using JNPF.FriendlyException;
using JNPF.Systems.Entitys.Permission;
using JNPF.Systems.Interfaces.System;
using JNPF.VisualDev;
using JNPF.VisualDev.Entitys.Dto.VisualDevModelData;
using Microsoft.AspNetCore.Mvc;
@@ -24,13 +23,13 @@ namespace Tnb.BasicData
[ApiDescriptionSettings(Tag = ModuleConst.Tag, Area = ModuleConst.Area, Order = 1102)]
[Route("api/[area]/[controller]/[action]")]
[OverideVisualDev(ModelId)]
public class BasESopService : IBasESopService,IOverideVisualDevService,IDynamicApiController, ITransient
public class BasESopService : IBasESopService, IOverideVisualDevService, IDynamicApiController, ITransient
{
public const string ModelId = "26919620992277";
private readonly ISqlSugarRepository<BasESop> _repository;
private readonly IUserManager _userManager;
public OverideVisualDevFunc OverideFuncs { get; } = new OverideVisualDevFunc();
public BasESopService(
IUserManager userManager,
ISqlSugarRepository<BasESop> repository)
@@ -39,7 +38,7 @@ namespace Tnb.BasicData
_userManager = userManager;
OverideFuncs.GetListAsync = GetList;
}
/// <summary>
/// ESOP列表
/// </summary>
@@ -48,12 +47,12 @@ namespace Tnb.BasicData
[HttpPost]
public async Task<dynamic> GetList(VisualDevModelListQueryInput input)
{
var db = _repository.AsSugarClient();
ISqlSugarClient db = _repository.AsSugarClient();
Dictionary<string, object>? queryJson = string.IsNullOrEmpty(input.queryJson) ? null : input.queryJson.ToObject<Dictionary<string, object>>();
string? code = queryJson!=null && queryJson.ContainsKey("code") ? queryJson["code"].ToString() : "";
string? name = queryJson!=null && queryJson.ContainsKey("name") ? queryJson["name"].ToString() : "";
string? version = queryJson!=null && queryJson.ContainsKey("version") ? queryJson["version"].ToString() : "";
var list = await db.Queryable<BasESop, BasMbom, BasMbomProcess, UserEntity,BasProcess>((a, b, c, d,e) => new object[]
string? code = queryJson != null && queryJson.ContainsKey("code") ? queryJson["code"].ToString() : "";
string? name = queryJson != null && queryJson.ContainsKey("name") ? queryJson["name"].ToString() : "";
string? version = queryJson != null && queryJson.ContainsKey("version") ? queryJson["version"].ToString() : "";
SqlSugarPagedList<ESopListOutput> list = await db.Queryable<BasESop, BasMbom, BasMbomProcess, UserEntity, BasProcess>((a, b, c, d, e) => new object[]
{
JoinType.Left, a.mbom_id == b.id,
JoinType.Left, a.mbom_process_id == c.id,
@@ -63,8 +62,8 @@ namespace Tnb.BasicData
.WhereIF(!string.IsNullOrEmpty(code), (a, b, c, d) => a.code.Contains(code!))
.WhereIF(!string.IsNullOrEmpty(name), (a, b, c, d) => a.name.Contains(name!))
.WhereIF(!string.IsNullOrEmpty(version), (a, b, c, d) => a.version.Contains(version!))
.Where((a,b,c)=>a.enabled==1)
.Select((a, b, c, d,e) => new ESopListOutput
.Where((a, b, c) => a.enabled == 1)
.Select((a, b, c, d, e) => new ESopListOutput
{
id = a.id,
code = a.code,
@@ -72,31 +71,31 @@ namespace Tnb.BasicData
mbom_id = b.version!,
mbom_process_id = e.process_name!,
version = a.version,
enabled = a.enabled==1 ? "是" : "否",
enabled = a.enabled == 1 ? "是" : "否",
attachment = a.attachment,
remark = a.remark,
create_id = d.RealName,
create_time = a.create_time==null ? "" : a.create_time.Value.ToString("yyyy-MM-dd"),
create_time = a.create_time == null ? "" : a.create_time.Value.ToString("yyyy-MM-dd"),
mbom_id_id = a.mbom_id,
mbom_process_id_id = a.mbom_process_id
}).ToPagedListAsync((input?.currentPage??1), (input?.pageSize??50));
}).ToPagedListAsync(input?.currentPage ?? 1, input?.pageSize ?? 50);
return PageResult<ESopListOutput>.SqlSugarPageResult(list);
}
[HttpPost]
public async Task<dynamic> GetHistoryList(EsopHistoryListQueryInput input)
{
var db = _repository.AsSugarClient();
Dictionary<string, string>? queryJson = new Dictionary<string, string>();
if (input!=null && !string.IsNullOrEmpty(input.queryJson))
ISqlSugarClient db = _repository.AsSugarClient();
Dictionary<string, string>? queryJson = new();
if (input != null && !string.IsNullOrEmpty(input.queryJson))
{
queryJson = JsonConvert.DeserializeObject<Dictionary<string, string>>(input?.queryJson ?? "");
}
string code = queryJson!=null && queryJson.ContainsKey("code") ? queryJson["code"].ToString() : "";
string name = queryJson!=null && queryJson.ContainsKey("name") ? queryJson["name"].ToString() : "";
string version = queryJson!=null && queryJson.ContainsKey("version") ? queryJson["version"].ToString() : "";
var list = await db.Queryable<BasESop, BasMbom, BasMbomProcess, UserEntity,BasProcess>((a, b, c, d,e) => new object[]
string code = queryJson != null && queryJson.ContainsKey("code") ? queryJson["code"].ToString() : "";
string name = queryJson != null && queryJson.ContainsKey("name") ? queryJson["name"].ToString() : "";
string version = queryJson != null && queryJson.ContainsKey("version") ? queryJson["version"].ToString() : "";
SqlSugarPagedList<ESopListOutput> list = await db.Queryable<BasESop, BasMbom, BasMbomProcess, UserEntity, BasProcess>((a, b, c, d, e) => new object[]
{
JoinType.Left, a.mbom_id == b.id,
JoinType.Left, a.mbom_process_id == c.id,
@@ -106,8 +105,8 @@ namespace Tnb.BasicData
.WhereIF(!string.IsNullOrEmpty(code), (a, b, c, d) => a.code.Contains(code))
.WhereIF(!string.IsNullOrEmpty(name), (a, b, c, d) => a.name.Contains(name))
.WhereIF(!string.IsNullOrEmpty(version), (a, b, c, d) => a.version.Contains(version))
.Where((a,b,c)=>a.mbom_id==input!.mbom_id && a.mbom_process_id==input!.mbom_process_id)
.Select((a, b, c, d,e) => new ESopListOutput
.Where((a, b, c) => a.mbom_id == input!.mbom_id && a.mbom_process_id == input!.mbom_process_id)
.Select((a, b, c, d, e) => new ESopListOutput
{
id = a.id,
code = a.code,
@@ -115,27 +114,24 @@ namespace Tnb.BasicData
mbom_id = b.version!,
mbom_process_id = e.process_name!,
version = a.version,
enabled = a.enabled==1 ? "是" : "否",
enabled = a.enabled == 1 ? "是" : "否",
attachment = a.attachment,
remark = a.remark,
create_id = d.RealName,
create_time = a.create_time==null ? "" : a.create_time.Value.ToString("yyyy-MM-dd"),
create_time = a.create_time == null ? "" : a.create_time.Value.ToString("yyyy-MM-dd"),
mbom_id_id = a.mbom_id
}).ToPagedListAsync((input?.currentPage??1), (input?.pageSize??50));
}).ToPagedListAsync(input?.currentPage ?? 1, input?.pageSize ?? 50);
return PageResult<ESopListOutput>.SqlSugarPageResult(list);
}
[HttpPost]
public async Task<dynamic> GetEntityByMbomProcessId(Dictionary<string, string> dic)
public async Task<dynamic?> GetEntityByMbomProcessId(Dictionary<string, string> dic)
{
string mbomProcessId = dic["mbomProcessId"];
if (!string.IsNullOrEmpty(mbomProcessId))
{
return await _repository.GetFirstAsync(x => x.mbom_process_id == mbomProcessId && x.enabled == 1);
}
return null!;
return !string.IsNullOrEmpty(mbomProcessId)
? await _repository.GetFirstAsync(x => x.mbom_process_id == mbomProcessId && x.enabled == 1)
: (dynamic)null;
}
[HttpPost]
@@ -146,15 +142,15 @@ namespace Tnb.BasicData
throw Oops.Bah("已存在该版本");
}
var db = _repository.AsSugarClient();
ISqlSugarClient db = _repository.AsSugarClient();
DbResult<bool> result = await db.Ado.UseTranAsync(async () =>
{
await _repository.UpdateAsync(x => new BasESop()
_ = await _repository.UpdateAsync(x => new BasESop()
{
enabled = 0,
}, x => x.mbom_id == input.mbom_id && x.mbom_process_id == input.mbom_process_id);
BasESop basESop = new BasESop()
BasESop basESop = new()
{
code = input.code,
name = input.name,
@@ -169,13 +165,9 @@ namespace Tnb.BasicData
enabled = 1,
};
await _repository.InsertAsync(basESop);
_ = await _repository.InsertAsync(basESop);
});
if(!result.IsSuccess) throw Oops.Oh(ErrorCode.COM1008);
return result.IsSuccess ? "上传成功" : result.ErrorMessage;
return !result.IsSuccess ? throw Oops.Oh(ErrorCode.COM1008) : (dynamic)(result.IsSuccess ? "上传成功" : result.ErrorMessage);
}
}
}

View File

@@ -3,7 +3,6 @@ using JNPF.Common.Filter;
using JNPF.Common.Security;
using JNPF.DependencyInjection;
using JNPF.DynamicApiController;
using JNPF.Systems.Entitys.Permission;
using JNPF.Systems.Interfaces.System;
using JNPF.VisualDev;
using JNPF.VisualDev.Entitys.Dto.VisualDevModelData;
@@ -11,7 +10,6 @@ using Microsoft.AspNetCore.Mvc;
using SqlSugar;
using Tnb.BasicData.Entities;
using Tnb.BasicData.Entities.Dto;
using Tnb.BasicData.Entitys.Dto.BasProcess;
using Tnb.BasicData.Interfaces;
namespace Tnb.BasicData
@@ -22,23 +20,22 @@ namespace Tnb.BasicData
[ApiDescriptionSettings(Tag = ModuleConst.Tag, Area = ModuleConst.Area, Order = 1102)]
[Route("api/[area]/[controller]/[action]")]
[OverideVisualDev(ModelId)]
public class BasEbomService : IBasEbomService,IOverideVisualDevService,IDynamicApiController, ITransient
public class BasEbomService : IBasEbomService, IOverideVisualDevService, IDynamicApiController, ITransient
{
public const string ModelId = "25487105536805";
private readonly ISqlSugarRepository<BasMaterial> _repository;
private readonly DataBaseManager _dbManager;
private readonly IDictionaryDataService _dictionaryDataService;
public OverideVisualDevFunc OverideFuncs { get; } = new OverideVisualDevFunc();
public BasEbomService(
ISqlSugarRepository<BasMaterial> repository,DataBaseManager dbManager,IDictionaryDataService dictionaryDataService)
ISqlSugarRepository<BasMaterial> repository, DataBaseManager dbManager, IDictionaryDataService dictionaryDataService)
{
_repository = repository;
_dbManager = dbManager;
_dictionaryDataService = dictionaryDataService;
OverideFuncs.GetListAsync = GetList;
}
/// <summary>
/// 物料清单列表
@@ -47,15 +44,15 @@ namespace Tnb.BasicData
/// <returns></returns>
public async Task<dynamic> GetList(VisualDevModelListQueryInput input)
{
var db = _repository.AsSugarClient();
Dictionary<string, object>? queryJson = (input==null || string.IsNullOrEmpty(input.queryJson)) ? null : input.queryJson.ToObject<Dictionary<string, object>>();
ISqlSugarClient db = _repository.AsSugarClient();
Dictionary<string, object>? queryJson = (input == null || string.IsNullOrEmpty(input.queryJson)) ? null : input.queryJson.ToObject<Dictionary<string, object>>();
string materialInfo = queryJson?["query_info"]?.ToString() ?? "";
var list = await db.Queryable<BasEbomH, BasMaterial, BasRouteH>((a, b, c) => new object[]
SqlSugarPagedList<EbomListOutput> list = await db.Queryable<BasEbomH, BasMaterial, BasRouteH>((a, b, c) => new object[]
{
JoinType.Left, a.material_id == b.id,
JoinType.Left, a.route_id == c.id,
})
.WhereIF(!string.IsNullOrEmpty(materialInfo),(a,b,c)=>b.code.Contains(materialInfo) || b.name.Contains(materialInfo))
.WhereIF(!string.IsNullOrEmpty(materialInfo), (a, b, c) => b.code.Contains(materialInfo) || b.name.Contains(materialInfo))
.Select((a, b, c) => new EbomListOutput
{
id = a.id,
@@ -67,12 +64,11 @@ namespace Tnb.BasicData
version = a.version,
route_id = c.name,
route_id_id = c.id,
}).ToPagedListAsync(input?.currentPage ?? 1, input?.pageSize ?? 50);
}).ToPagedListAsync((input?.currentPage ?? 1), (input?.pageSize ?? 50));
return PageResult<EbomListOutput>.SqlSugarPageResult(list);
return PageResult<EbomListOutput>.SqlSugarPageResult(list);
}
/// <summary>
/// 获取物料清单树.
/// </summary>
@@ -80,9 +76,9 @@ namespace Tnb.BasicData
[HttpPost]
public async Task<dynamic> GetTree(EbomTreeQueryInput queryInput)
{
var db = _repository.AsSugarClient();
var dic = await _dictionaryDataService.GetDicByKey(DictConst.MeasurementUnit);
ISqlSugarClient db = _repository.AsSugarClient();
Dictionary<string, object> dic = await _dictionaryDataService.GetDicByKey(DictConst.MeasurementUnit);
// var momDbLink = await _repository.AsSugarClient().Queryable<DbLinkEntity>().FirstAsync(x => x.FullName == DbName.TNBMON);
// if (momDbLink != null)
// {
@@ -91,14 +87,14 @@ namespace Tnb.BasicData
if (string.IsNullOrEmpty(queryInput.materialId))
{
var data = await db.Queryable<BasEbomD>()
.LeftJoin<BasEbomH>((a,b)=>a.ebom_id==b.id)
.LeftJoin<BasMaterial>((a,b,c)=>a.material_id==c.id)
.LeftJoin<BasEbomH>((a,b,c,d)=>a.material_id==d.material_id)
.LeftJoin<BasRouteH>((a,b,c,d,e)=>d.route_id==e.id)
.LeftJoin<BasMaterial>((a,b,c,d,e,f)=>a.substitute_material_id==f.id)
.Where((a,b,c)=>a.ebom_id==queryInput.ebomId)
.Select((a,b,c,d,e,f)=>new EbomTreeOutput
List<EbomTreeOutput> data = await db.Queryable<BasEbomD>()
.LeftJoin<BasEbomH>((a, b) => a.ebom_id == b.id)
.LeftJoin<BasMaterial>((a, b, c) => a.material_id == c.id)
.LeftJoin<BasEbomH>((a, b, c, d) => a.material_id == d.material_id)
.LeftJoin<BasRouteH>((a, b, c, d, e) => d.route_id == e.id)
.LeftJoin<BasMaterial>((a, b, c, d, e, f) => a.substitute_material_id == f.id)
.Where((a, b, c) => a.ebom_id == queryInput.ebomId)
.Select((a, b, c, d, e, f) => new EbomTreeOutput
{
material_id = c.name,
material_id_descrip = c.descrip,
@@ -112,7 +108,7 @@ namespace Tnb.BasicData
route_name = e.name,
version = d.version,
substitute_material_id = f.name,
hasChildren = SqlFunc.Subqueryable<BasEbomH>().Where(x=>x.material_id==a.material_id).Any(),
hasChildren = SqlFunc.Subqueryable<BasEbomH>().Where(x => x.material_id == a.material_id).Any(),
}).Mapper(it =>
{
it.material_id_unit_id = !string.IsNullOrEmpty(it.material_id_unit_id) ? dic[it.material_id_unit_id].ToString() : "";
@@ -121,14 +117,14 @@ namespace Tnb.BasicData
}
else
{
var data = await db.Queryable<BasEbomD>()
.LeftJoin<BasEbomH>((a,b)=>a.ebom_id==b.id)
.LeftJoin<BasMaterial>((a,b,c)=>a.material_id==c.id)
.LeftJoin<BasEbomH>((a,b,c,d)=>a.material_id==d.material_id)
.LeftJoin<BasRouteH>((a,b,c,d,e)=>d.route_id==e.id)
.LeftJoin<BasMaterial>((a,b,c,d,e,f)=>a.substitute_material_id==f.id)
.Where((a,b,c)=>b.material_id==queryInput.materialId && a.ebom_id==b.id)
.Select((a,b,c,d,e,f)=>new EbomTreeOutput
List<EbomTreeOutput> data = await db.Queryable<BasEbomD>()
.LeftJoin<BasEbomH>((a, b) => a.ebom_id == b.id)
.LeftJoin<BasMaterial>((a, b, c) => a.material_id == c.id)
.LeftJoin<BasEbomH>((a, b, c, d) => a.material_id == d.material_id)
.LeftJoin<BasRouteH>((a, b, c, d, e) => d.route_id == e.id)
.LeftJoin<BasMaterial>((a, b, c, d, e, f) => a.substitute_material_id == f.id)
.Where((a, b, c) => b.material_id == queryInput.materialId && a.ebom_id == b.id)
.Select((a, b, c, d, e, f) => new EbomTreeOutput
{
material_id = c.name,
material_id_descrip = c.descrip,
@@ -142,15 +138,13 @@ namespace Tnb.BasicData
route_name = e.name,
version = d.version,
substitute_material_id = f.name,
hasChildren = SqlFunc.Subqueryable<BasEbomH>().Where(x=>x.material_id==a.material_id).Any(),
hasChildren = SqlFunc.Subqueryable<BasEbomH>().Where(x => x.material_id == a.material_id).Any(),
}).Mapper(it =>
{
it.material_id_unit_id = !string.IsNullOrEmpty(it.material_id_unit_id) ? dic[it.material_id_unit_id].ToString() : "";
}).ToListAsync();
return data;
}
}
/// <summary>
@@ -159,11 +153,11 @@ namespace Tnb.BasicData
/// <param name="parameters">物料id materialId</param>
/// <returns></returns>
[HttpPost]
public async Task<Dictionary<string,string>> GetEbomVersionAndRouteName(Dictionary<string,string> parameters)
public async Task<Dictionary<string, string>> GetEbomVersionAndRouteName(Dictionary<string, string> parameters)
{
string materialId = parameters["materialId"];
var db = _repository.AsSugarClient();
ISqlSugarClient db = _repository.AsSugarClient();
// var momDbLink = await _repository.AsSugarClient().Queryable<DbLinkEntity>().FirstAsync(x => x.FullName == DbName.TNBMON);
// if (momDbLink != null)
// {
@@ -171,16 +165,16 @@ namespace Tnb.BasicData
// }
var ebom = await db.Queryable<BasEbomH>()
.LeftJoin<BasRouteH>((a,b)=>a.route_id==b.id)
.OrderByDescending((a,b)=>a.create_time)
.Where((a,b) => a.material_id == materialId)
.Select((a,b)=>new
.LeftJoin<BasRouteH>((a, b) => a.route_id == b.id)
.OrderByDescending((a, b) => a.create_time)
.Where((a, b) => a.material_id == materialId)
.Select((a, b) => new
{
a.id,
a.version,
b.name,
}).FirstAsync();
return new Dictionary<string,string>()
return new Dictionary<string, string>()
{
["version"] = ebom?.version ?? "",
["routeName"] = ebom?.name ?? "",

View File

@@ -1,15 +1,8 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Aspose.Cells.Drawing;
using JNPF.DependencyInjection;
using JNPF.DependencyInjection;
using JNPF.DynamicApiController;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
using Tnb.BasicData.Entities;
using Tnb.BasicData.Entities.Enums;
using Tnb.BasicData.Interfaces;
using Tnb.WarehouseMgr.Entities.Enums;
@@ -32,19 +25,27 @@ namespace Tnb.BasicData
/// </summary>
/// <returns></returns>
[HttpGet]
public async Task<dynamic> GetUnStoreLocationListByCarryId([FromRoute]string carryId)
public async Task<dynamic> GetUnStoreLocationListByCarryId([FromRoute] string carryId)
{
var items = await _db.Queryable<BasLocation>().Where(it => !string.IsNullOrEmpty(it.is_type) && Convert.ToInt32(it.is_type) != (int)EnumLocationType.).ToListAsync();
List<BasLocation> items = await _db.Queryable<BasLocation>().Where(it => !string.IsNullOrEmpty(it.is_type) && Convert.ToInt32(it.is_type) != (int)EnumLocationType.).ToListAsync();
return items;
}
public async Task<List<BasLocation>> GetLocationInfobyIds(IEnumerable<string> locIds)
{
if (locIds == null) throw new ArgumentNullException(nameof(locIds));
if (!locIds.Any()) throw new ArithmeticException($"parameter locIds.Count is not be empty");
var items = await _db.Queryable<BasLocation>().Where(it => locIds.Contains(it.id)).ToListAsync();
if (locIds == null)
{
throw new ArgumentNullException(nameof(locIds));
}
if (!locIds.Any())
{
throw new ArithmeticException($"parameter locIds.Count is not be empty");
}
List<BasLocation> items = await _db.Queryable<BasLocation>().Where(it => locIds.Contains(it.id)).ToListAsync();
return items;
}
}

View File

@@ -21,20 +21,20 @@ namespace Tnb.BasicData
/// </summary>
[ApiDescriptionSettings(Tag = ModuleConst.Tag, Area = ModuleConst.Area, Order = 1102)]
[Route("api/[area]/[controller]/[action]")]
public class BasMaterialService : IBasMaterialService,IDynamicApiController, ITransient
public class BasMaterialService : IBasMaterialService, IDynamicApiController, ITransient
{
private readonly ISqlSugarRepository<BasMaterial> _repository;
private readonly DataBaseManager _dbManager;
private readonly IDictionaryDataService _dictionaryDataService;
public BasMaterialService(
ISqlSugarRepository<BasMaterial> repository,DataBaseManager dbManager,IDictionaryDataService dictionaryDataService)
ISqlSugarRepository<BasMaterial> repository, DataBaseManager dbManager, IDictionaryDataService dictionaryDataService)
{
_repository = repository;
_dbManager = dbManager;
_dictionaryDataService = dictionaryDataService;
}
/// <summary>
/// 复制物料
/// </summary>
@@ -44,7 +44,7 @@ namespace Tnb.BasicData
{
string id = parameters["id"];
BasMaterial basMaterial = await _repository.GetByIdAsync(id);
List<BasMaterialUnit> materialUnits = await _repository.AsSugarClient().Queryable<BasMaterialUnit>().Where(x => x.material_id == id).ToListAsync();
List<BasMaterialIntoFactorySpecifications> materialIntoFactorySpecifications = await _repository.AsSugarClient().Queryable<BasMaterialIntoFactorySpecifications>().Where(x => x.material_id == id).ToListAsync();
@@ -53,27 +53,26 @@ namespace Tnb.BasicData
basMaterial.code += "_复制的请修改";
basMaterial.name += "_复制的请修改";
DbResult<bool> result = await _repository.AsSugarClient().Ado.UseTranAsync(async () =>
DbResult<bool> result = await _repository.AsSugarClient().Ado.UseTranAsync(async () =>
{
await _repository.InsertAsync(basMaterial);
_ = await _repository.InsertAsync(basMaterial);
foreach (BasMaterialUnit basMaterialUnit in materialUnits)
{
basMaterialUnit.id = SnowflakeIdHelper.NextId();
basMaterialUnit.material_id = newId;
}
foreach (BasMaterialIntoFactorySpecifications basMaterialIntoFactorySpecification in materialIntoFactorySpecifications)
{
basMaterialIntoFactorySpecification.id = SnowflakeIdHelper.NextId();
basMaterialIntoFactorySpecification.material_id = newId;
}
await _repository.AsSugarClient().Insertable<BasMaterialUnit>(materialUnits).ExecuteCommandAsync();
await _repository.AsSugarClient().Insertable<BasMaterialIntoFactorySpecifications>(materialIntoFactorySpecifications).ExecuteCommandAsync();
_ = await _repository.AsSugarClient().Insertable<BasMaterialUnit>(materialUnits).ExecuteCommandAsync();
_ = await _repository.AsSugarClient().Insertable<BasMaterialIntoFactorySpecifications>(materialIntoFactorySpecifications).ExecuteCommandAsync();
});
if(!result.IsSuccess) throw Oops.Oh(ErrorCode.COM1008);
return result.IsSuccess ? "复制成功" : result.ErrorMessage;
return !result.IsSuccess ? throw Oops.Oh(ErrorCode.COM1008) : result.IsSuccess ? "复制成功" : result.ErrorMessage;
}
/// <summary>
@@ -84,14 +83,17 @@ namespace Tnb.BasicData
[HttpPost]
public async Task<dynamic> GetMaterialSelectInfo(MaterialSelectQueryInput queryInput)
{
var db = _repository.AsSugarClient();
ISqlSugarClient db = _repository.AsSugarClient();
if (!string.IsNullOrEmpty(queryInput.ebom_id))
{
List<string> ids = await GetAllChildrenMaterialId(queryInput.ebom_id,0);
List<string> ids = await GetAllChildrenMaterialId(queryInput.ebom_id, 0);
BasEbomH ebom = await db.Queryable<BasEbomH>().Where(x => x.id == queryInput.ebom_id).SingleAsync();
if(ebom!=null && !string.IsNullOrEmpty(ebom.material_id))
if (ebom != null && !string.IsNullOrEmpty(ebom.material_id))
{
ids.Add(ebom.material_id);
var result = await db.Queryable<BasMaterial>()
}
SqlSugarPagedList<MaterialSelectOutput> result = await db.Queryable<BasMaterial>()
.LeftJoin<DictionaryTypeEntity>((a, b) => b.EnCode == DictConst.MeasurementUnit && b.DeleteMark == null)
.LeftJoin<DictionaryDataEntity>((a, b, c) => c.DictionaryTypeId == b.Id && a.unit_id == c.EnCode)
.WhereIF(!string.IsNullOrEmpty(queryInput.material_info), (a, b, c) => a.code.Contains(queryInput.material_info) || a.name.Contains(queryInput.material_info))
@@ -107,11 +109,11 @@ namespace Tnb.BasicData
}).ToPagedListAsync(queryInput.currentPage, queryInput.pageSize);
return PageResult<MaterialSelectOutput>.SqlSugarPageResult(result);
}
else
{
var result = await db.Queryable<BasMaterial>()
SqlSugarPagedList<MaterialSelectOutput> result = await db.Queryable<BasMaterial>()
.LeftJoin<DictionaryTypeEntity>((a, b) => b.EnCode == DictConst.MeasurementUnit && b.DeleteMark == null)
.LeftJoin<DictionaryDataEntity>((a, b, c) => c.DictionaryTypeId == b.Id && a.unit_id == c.EnCode)
.WhereIF(!string.IsNullOrEmpty(queryInput.material_info), (a, b, c) => a.code.Contains(queryInput.material_info) || a.name.Contains(queryInput.material_info))
@@ -132,16 +134,16 @@ namespace Tnb.BasicData
[HttpPost]
public async Task<dynamic> GetCanCreateSubWorkOrderMaterial(MaterialSelectQueryInput queryInput)
{
var db = _repository.AsSugarClient();
ISqlSugarClient db = _repository.AsSugarClient();
if (!string.IsNullOrEmpty(queryInput.ebom_id))
{
List<string> ids = await GetAllChildrenMaterialId(queryInput.ebom_id,0);
var result = await db.Queryable<BasMaterial>()
List<string> ids = await GetAllChildrenMaterialId(queryInput.ebom_id, 0);
SqlSugarPagedList<MaterialSelectOutput> result = await db.Queryable<BasMaterial>()
.LeftJoin<DictionaryTypeEntity>((a, b) => b.EnCode == DictConst.MeasurementUnit && b.DeleteMark == null)
.LeftJoin<DictionaryDataEntity>((a, b, c) => c.DictionaryTypeId == b.Id && a.unit_id == c.EnCode)
.WhereIF(!string.IsNullOrEmpty(queryInput.material_info), (a, b, c) => a.code.Contains(queryInput.material_info) || a.name.Contains(queryInput.material_info))
.WhereIF(!string.IsNullOrEmpty(queryInput.ebom_id), (a, b, c) => ids.Contains(a.id))
.Where((a,b,c)=>a.is_create_sub_work_order=="1")
.Where((a, b, c) => a.is_create_sub_work_order == "1")
.Select((a, b, c) => new MaterialSelectOutput()
{
id = a.id,
@@ -153,7 +155,7 @@ namespace Tnb.BasicData
}).ToPagedListAsync(queryInput.currentPage, queryInput.pageSize);
return PageResult<MaterialSelectOutput>.SqlSugarPageResult(result);
}
else
{
@@ -166,32 +168,32 @@ namespace Tnb.BasicData
{
string types = dic["types"];
string[] typeArr = types.Split(",");
List<BasMaterial> list = await _repository.AsSugarClient().Queryable<BasMaterial>().Where(x => x.state=="1").ToListAsync();
List<BasMaterial> result = new List<BasMaterial>();
foreach (var type in typeArr)
List<BasMaterial> list = await _repository.AsSugarClient().Queryable<BasMaterial>().Where(x => x.state == "1").ToListAsync();
List<BasMaterial> result = new();
foreach (string type in typeArr)
{
result.AddRange(list.Where(x=>x.category_id.Contains(type)));
result.AddRange(list.Where(x => x.category_id.Contains(type)));
}
return result;
}
[HttpPost]
public async Task<dynamic> GetMaterialByQueryJson(MaterialQueryInput input)
{
var db = _repository.AsSugarClient();
Dictionary<string, string>? queryJson = new Dictionary<string, string>();
if (input!=null && !string.IsNullOrEmpty(input.queryJson))
ISqlSugarClient db = _repository.AsSugarClient();
Dictionary<string, string>? queryJson = new();
if (input != null && !string.IsNullOrEmpty(input.queryJson))
{
queryJson = JsonConvert.DeserializeObject<Dictionary<string, string>>(input?.queryJson ?? "");
}
List<string> typeList = new List<string>();
if(!string.IsNullOrEmpty(input!.types))
List<string> typeList = new();
if (!string.IsNullOrEmpty(input!.types))
{
typeList = JsonConvert.DeserializeObject<List<string>>((input?.types??"")) ?? new List<string>();
typeList = JsonConvert.DeserializeObject<List<string>>(input?.types ?? "") ?? new List<string>();
}
var query = db.Queryable<BasMaterial>()
ISugarQueryable<BasMaterial> query = db.Queryable<BasMaterial>()
.Where(x => x.state == "1")
.WhereIF(queryJson != null && queryJson.ContainsKey("name"), x => x.name.Contains(queryJson!["name"]))
.WhereIF(queryJson != null && queryJson.ContainsKey("code"), x => x.code.Contains(queryJson!["code"]))
@@ -199,43 +201,51 @@ namespace Tnb.BasicData
x => x.material_standard!.Contains(queryJson!["material_standard"]))
.Select(x => x);
var list = new List<ISugarQueryable<BasMaterial>>();
foreach (var type in typeList)
List<ISugarQueryable<BasMaterial>> list = new();
foreach (string type in typeList)
{
list.Add(query.Clone().Where(x=>x.category_id.Contains(type)));
list.Add(query.Clone().Where(x => x.category_id.Contains(type)));
}
if (list.Count <= 0)
{
var result = await query.ToPagedListAsync((input?.currentPage??1), (input?.pageSize??50));
SqlSugarPagedList<BasMaterial> result = await query.ToPagedListAsync(input?.currentPage ?? 1, input?.pageSize ?? 50);
return PageResult<BasMaterial>.SqlSugarPageResult(result);
}
else
{
var result = await db.UnionAll(list).Select<BasMaterial>().ToPagedListAsync((input?.currentPage??1), (input?.pageSize??50));
SqlSugarPagedList<BasMaterial> result = await db.UnionAll(list).Select<BasMaterial>().ToPagedListAsync(input?.currentPage ?? 1, input?.pageSize ?? 50);
return PageResult<BasMaterial>.SqlSugarPageResult(result);
}
}
/// <summary>
/// 获取物料清单下所子集物料id
/// </summary>
/// <returns></returns>
private async Task<List<string>> GetAllChildrenMaterialId(string ebomId,int index)
private async Task<List<string>> GetAllChildrenMaterialId(string ebomId, int index)
{
if (string.IsNullOrEmpty(ebomId)) return new List<string>();
List<string> ids = new List<string>();
if (index++ > 10) return ids;
var list = await _repository.AsSugarClient().Queryable<BasEbomD>().Where(x => x.ebom_id == ebomId)
if (string.IsNullOrEmpty(ebomId))
{
return new List<string>();
}
List<string> ids = new();
if (index++ > 10)
{
return ids;
}
List<string> list = await _repository.AsSugarClient().Queryable<BasEbomD>().Where(x => x.ebom_id == ebomId)
.Select<string>(x => x.material_id).ToListAsync();
if (list != null && list.Count > 0)
{
foreach (var id in list)
foreach (string id in list)
{
//获取最新创建的物料清单
var ebom = await _repository.AsSugarClient().Queryable<BasEbomH>().Where(x=>x.material_id==id).OrderByDescending(x=>x.create_time).FirstAsync();
ids.AddRange(await GetAllChildrenMaterialId(ebom?.id ?? "",index));
BasEbomH ebom = await _repository.AsSugarClient().Queryable<BasEbomH>().Where(x => x.material_id == id).OrderByDescending(x => x.create_time).FirstAsync();
ids.AddRange(await GetAllChildrenMaterialId(ebom?.id ?? "", index));
}
ids.AddRange(list);
}

View File

@@ -1,5 +1,6 @@
using JNPF.Common.Core.Manager;
using JNPF.Common.Enums;
using JNPF.Common.Extension;
using JNPF.Common.Filter;
using JNPF.Common.Security;
using JNPF.DependencyInjection;
@@ -11,10 +12,8 @@ using JNPF.VisualDev.Entitys.Dto.VisualDevModelData;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
using Tnb.BasicData.Entities;
using Tnb.BasicData.Interfaces;
using Tnb.BasicData.Entities.Dto;
using NPOI.OpenXmlFormats.Dml;
using JNPF.Common.Extension;
using Tnb.BasicData.Interfaces;
namespace Tnb.BasicData
{
@@ -56,10 +55,10 @@ namespace Tnb.BasicData
/// <returns></returns>
public async Task<dynamic> GetList(VisualDevModelListQueryInput input)
{
var db = _repository.AsSugarClient();
ISqlSugarClient db = _repository.AsSugarClient();
Dictionary<string, object>? queryJson = string.IsNullOrEmpty(input.queryJson) ? null : input.queryJson.ToObject<Dictionary<string, object>>();
string materialInfo = queryJson?["query_info"]?.ToString() ?? "";
var list = await db.Queryable<BasMbom, BasMaterial, BasEbomH, BasRouteH>((a, b, c, d) => new object[]
SqlSugarPagedList<MbomListOutput> list = await db.Queryable<BasMbom, BasMaterial, BasEbomH, BasRouteH>((a, b, c, d) => new object[]
{
JoinType.Left, a.material_id == b.id,
JoinType.Left, a.ebom_id == c.id,
@@ -75,8 +74,8 @@ namespace Tnb.BasicData
ebom_id = c.version,
route_id = d.name,
route_id_id = c.id,
start_time = a.start_time==null ? "" : a.start_time.Value.ToString("yyyy-MM-dd"),
end_time = a.end_time==null ? "" : a.end_time.Value.ToString("yyyy-MM-dd"),
start_time = a.start_time == null ? "" : a.start_time.Value.ToString("yyyy-MM-dd"),
end_time = a.end_time == null ? "" : a.end_time.Value.ToString("yyyy-MM-dd"),
is_first = SqlFunc.IIF(a.is_first == 0, "否", "是"),
}).ToPagedListAsync(input.currentPage, input.pageSize);
@@ -90,13 +89,13 @@ namespace Tnb.BasicData
/// <returns></returns>
public async Task<dynamic> GetInfo(string id)
{
var db = _repository.AsSugarClient();
ISqlSugarClient db = _repository.AsSugarClient();
BasMbom mbom = await _repository.GetSingleAsync(x => x.id == id);
List<BasMbomProcess> processes = await db.Queryable<BasMbomProcess>().Where(x => x.mbom_id == id).OrderBy(x=>x.ordinal).ToListAsync();
List<BasMbomProcess> processes = await db.Queryable<BasMbomProcess>().Where(x => x.mbom_id == id).OrderBy(x => x.ordinal).ToListAsync();
List<BasMbomInput> inputs = await db.Queryable<BasMbomInput>().Where(x => x.mbom_id == id).ToListAsync();
List<BasMbomOutput> outputs = await db.Queryable<BasMbomOutput>().Where(x => x.mbom_id == id).ToListAsync();
MbomDataOutput mbomDataOutput = new MbomDataOutput();
List<MbomProcessOutDto> mbomProcessOutDtos = new List<MbomProcessOutDto>();
MbomDataOutput mbomDataOutput = new();
List<MbomProcessOutDto> mbomProcessOutDtos = new();
mbomDataOutput.id = mbom.id;
mbomDataOutput.ebom_id = mbom.ebom_id;
@@ -158,9 +157,12 @@ namespace Tnb.BasicData
public async Task<dynamic> GetSubMoListByBomId([FromRoute] string bomId)
{
if (string.IsNullOrEmpty(bomId)) throw new ArgumentException($"parameter {nameof(bomId)} not be null or empty");
if (string.IsNullOrEmpty(bomId))
{
throw new ArgumentException($"parameter {nameof(bomId)} not be null or empty");
}
var result = await _db.Queryable<BasMbom>()
List<SubBomListOutput> result = await _db.Queryable<BasMbom>()
.LeftJoin<BasMbomProcess>((a, b) => a.id == b.mbom_id)
.LeftJoin<BasRouteH>((a, b, c) => a.route_id == c.id)
// .LeftJoin<BasRouteD>((a, b, c, d) => b.process_id == d.process_id && c.id == d.route_id)
@@ -182,7 +184,7 @@ namespace Tnb.BasicData
})
.Mapper(it => it.output_qty = it.num.ParseToInt())
.ToListAsync();
return result;
}
@@ -194,7 +196,7 @@ namespace Tnb.BasicData
.Where(x => x.mbom_process_id == id)
.Select(x => new
{
material_id = x.material_id,
x.material_id,
}).ToListAsync();
return result;
@@ -231,13 +233,13 @@ namespace Tnb.BasicData
material_name = b.name,
start_time = a.start_time.HasValue ? a.start_time.Value.ToString(DbTimeFormat.SS) : null,
end_time = a.end_time.HasValue ? a.end_time.Value.ToString(DbTimeFormat.SS) : null,
version = a.version,
a.version,
route_id = c.id,
route_name = c.name,
})
.ToListAsync();
}
// /// <summary>
// /// 保存生产bom
// /// </summary>
@@ -512,7 +514,7 @@ namespace Tnb.BasicData
// }
// return result.IsSuccess ? "保存成功" : result.ErrorMessage;
// }
/// <summary>
/// 保存生产bom
/// </summary>
@@ -529,7 +531,7 @@ namespace Tnb.BasicData
{
string mbomId = SnowflakeIdHelper.NextId();
string orgId = _userManager.GetUserInfo().Result.organizeId;
BasMbom mbom = new BasMbom()
BasMbom mbom = new()
{
id = mbomId,
org_id = orgId,
@@ -554,15 +556,15 @@ namespace Tnb.BasicData
errorCode = ErrorCode.COM1004;
throw Oops.Oh(ErrorCode.COM1004);
}
await _repository.InsertAsync(mbom);
List<BasMbomProcess> processes = new List<BasMbomProcess>();
List<BasMbomInput> inputs = new List<BasMbomInput>();
List<BasMbomOutput> outputs = new List<BasMbomOutput>();
_ = await _repository.InsertAsync(mbom);
List<BasMbomProcess> processes = new();
List<BasMbomInput> inputs = new();
List<BasMbomOutput> outputs = new();
if (mbomSaveDataInput != null && mbomSaveDataInput.processes != null)
{
int index = 0;
foreach (var process in mbomSaveDataInput.processes)
int index = 0;
foreach (MbomProcessDto? process in mbomSaveDataInput.processes)
{
string mbomProcessId = SnowflakeIdHelper.NextId();
processes.Add(new BasMbomProcess()
@@ -586,7 +588,7 @@ namespace Tnb.BasicData
if (process.inputs != null)
{
foreach (var input in process.inputs)
foreach (BasMbomInput input in process.inputs)
{
string inputId = SnowflakeIdHelper.NextId();
inputs.Add(new BasMbomInput()
@@ -605,7 +607,7 @@ namespace Tnb.BasicData
if (process.outputs != null)
{
foreach (var output in process.outputs)
foreach (BasMbomOutput output in process.outputs)
{
string outputId = SnowflakeIdHelper.NextId();
outputs.Add(new BasMbomOutput()
@@ -626,17 +628,17 @@ namespace Tnb.BasicData
if (processes.Count > 0)
{
await _repository.AsSugarClient().Insertable<BasMbomProcess>(processes).ExecuteCommandAsync();
_ = await _repository.AsSugarClient().Insertable<BasMbomProcess>(processes).ExecuteCommandAsync();
}
if (inputs.Count > 0)
{
await _repository.AsSugarClient().Insertable<BasMbomInput>(inputs).ExecuteCommandAsync();
_ = await _repository.AsSugarClient().Insertable<BasMbomInput>(inputs).ExecuteCommandAsync();
}
if (outputs.Count > 0)
{
await _repository.AsSugarClient().Insertable<BasMbomOutput>(outputs).ExecuteCommandAsync();
_ = await _repository.AsSugarClient().Insertable<BasMbomOutput>(outputs).ExecuteCommandAsync();
}
}
else//修改
@@ -651,7 +653,7 @@ namespace Tnb.BasicData
string orgId = _userManager.GetUserInfo().Result.organizeId;
if (mbomSaveDataInput != null)
{
await _repository.UpdateAsync(x => new BasMbom()
_ = await _repository.UpdateAsync(x => new BasMbom()
{
// org_id = orgId,
material_id = mbomSaveDataInput.material_id,
@@ -670,12 +672,12 @@ namespace Tnb.BasicData
}, x => x.id == mbomSaveDataInput.id);
}
// List<BasMbomProcess> processes = new List<BasMbomProcess>();
List<BasMbomInput> inputs = new List<BasMbomInput>();
List<BasMbomOutput> outputs = new List<BasMbomOutput>();
List<BasMbomInput> inputs = new();
List<BasMbomOutput> outputs = new();
if (mbomSaveDataInput != null && mbomSaveDataInput.processes != null)
{
foreach (var process in mbomSaveDataInput.processes)
foreach (MbomProcessDto? process in mbomSaveDataInput.processes)
{
string mbomProcessId = process.id;
// string mbomProcessId = SnowflakeIdHelper.NextId();
@@ -692,9 +694,9 @@ namespace Tnb.BasicData
// route_detail_id = process.route_detail_id,
//
// });
decimal preparation_time = process?.preparation_time ?? 0;
await _repository.AsSugarClient().Updateable<BasMbomProcess>()
_ = await _repository.AsSugarClient().Updateable<BasMbomProcess>()
.SetColumns(x => x.preparation_time == preparation_time)
.SetColumns(x => x.station == process!.station)
.SetColumns(x => x.byproduct_status == process!.byproduct_status)
@@ -703,7 +705,7 @@ namespace Tnb.BasicData
if (process!.inputs != null)
{
foreach (var input in process.inputs)
foreach (BasMbomInput input in process.inputs)
{
string inputId = SnowflakeIdHelper.NextId();
inputs.Add(new BasMbomInput()
@@ -722,7 +724,7 @@ namespace Tnb.BasicData
if (process.outputs != null)
{
foreach (var output in process.outputs)
foreach (BasMbomOutput output in process.outputs)
{
string outputId = SnowflakeIdHelper.NextId();
outputs.Add(new BasMbomOutput()
@@ -744,9 +746,9 @@ namespace Tnb.BasicData
if (mbomSaveDataInput != null && !string.IsNullOrEmpty(mbomSaveDataInput.id))
{
// await _repository.AsSugarClient().Deleteable<BasMbomProcess>().Where(x => x.mbom_id == mbomSaveDataInput.id).ExecuteCommandAsync();
await _repository.AsSugarClient().Deleteable<BasMbomInput>().Where(x => x.mbom_id == mbomSaveDataInput.id).ExecuteCommandAsync();
await _repository.AsSugarClient().Deleteable<BasMbomOutput>().Where(x => x.mbom_id == mbomSaveDataInput.id).ExecuteCommandAsync();
// await _repository.AsSugarClient().Deleteable<BasMbomProcess>().Where(x => x.mbom_id == mbomSaveDataInput.id).ExecuteCommandAsync();
_ = await _repository.AsSugarClient().Deleteable<BasMbomInput>().Where(x => x.mbom_id == mbomSaveDataInput.id).ExecuteCommandAsync();
_ = await _repository.AsSugarClient().Deleteable<BasMbomOutput>().Where(x => x.mbom_id == mbomSaveDataInput.id).ExecuteCommandAsync();
}
// if (processes.Count > 0)
// {
@@ -755,12 +757,12 @@ namespace Tnb.BasicData
if (inputs.Count > 0)
{
await _repository.AsSugarClient().Insertable<BasMbomInput>(inputs).ExecuteCommandAsync();
_ = await _repository.AsSugarClient().Insertable<BasMbomInput>(inputs).ExecuteCommandAsync();
}
if (outputs.Count > 0)
{
await _repository.AsSugarClient().Insertable<BasMbomOutput>(outputs).ExecuteCommandAsync();
_ = await _repository.AsSugarClient().Insertable<BasMbomOutput>(outputs).ExecuteCommandAsync();
}
}

View File

@@ -1,4 +1,3 @@
using Aop.Api.Domain;
using JNPF.Common.Core.Manager;
using JNPF.Common.Dtos.VisualDev;
using JNPF.Common.Enums;
@@ -7,20 +6,15 @@ using JNPF.DependencyInjection;
using JNPF.DynamicApiController;
using JNPF.FriendlyException;
using JNPF.Systems.Entitys.Permission;
using JNPF.Systems.Entitys.System;
using JNPF.Systems.Interfaces.System;
using JNPF.VisualDev;
using JNPF.VisualDev.Entitys;
using JNPF.VisualDev.Entitys.Dto.VisualDevModelData;
using JNPF.VisualDev.Interfaces;
using Mapster;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json.Linq;
using SqlSugar;
using Tnb.BasicData;
using Tnb.BasicData.Entities;
using Tnb.BasicData.Entitys.Dto.BasProcess;
using Tnb.BasicData.Interfaces;
namespace Tnb.BasicData
{
@@ -64,21 +58,16 @@ namespace Tnb.BasicData
/// <returns></returns>
private async Task<dynamic> GetList(VisualDevModelListQueryInput input)
{
var result = new SqlSugarPagedList<ProcessListOutput>();
var db = _repository.AsSugarClient();
var organize = await db.Queryable<OrganizeEntity>().FirstAsync(it => it.EnCode == input.station_code && it.Category == DictConst.RegionCategoryStationCode);
SqlSugarPagedList<ProcessListOutput> result = new();
ISqlSugarClient db = _repository.AsSugarClient();
OrganizeEntity organize = await db.Queryable<OrganizeEntity>().FirstAsync(it => it.EnCode == input.station_code && it.Category == DictConst.RegionCategoryStationCode);
if (organize != null)
{
var whereExpr = Expressionable.Create<BasProcess, BasProcessStation>();
var curProcessIds = await db.Queryable<BasProcessStation>().Where(it => it.station_id == organize.Id).Select(it => it.process_id).Distinct().ToListAsync();
if (curProcessIds?.Count > 0)
{
whereExpr = whereExpr.And((a, b) => curProcessIds.Contains(a.id)).Or((a, b) => string.IsNullOrEmpty(b.process_id));
}
else
{
whereExpr = whereExpr.And((a, b) => string.IsNullOrEmpty(b.process_id));
}
Expressionable<BasProcess, BasProcessStation> whereExpr = Expressionable.Create<BasProcess, BasProcessStation>();
List<string> curProcessIds = await db.Queryable<BasProcessStation>().Where(it => it.station_id == organize.Id).Select(it => it.process_id).Distinct().ToListAsync();
whereExpr = curProcessIds?.Count > 0
? whereExpr.And((a, b) => curProcessIds.Contains(a.id)).Or((a, b) => string.IsNullOrEmpty(b.process_id))
: whereExpr.And((a, b) => string.IsNullOrEmpty(b.process_id));
result = await db.Queryable<BasProcess>().LeftJoin<BasProcessStation>((a, b) => a.id == b.process_id).Where(whereExpr.ToExpression()).Select(a => new ProcessListOutput
{
id = a.id,
@@ -118,8 +107,8 @@ namespace Tnb.BasicData
string processId = visualDevModelDataCrInput.data["ReturnIdentity"].ToString() ?? "";
List<BasProcessStation> list = new List<BasProcessStation>();
foreach (var item in (JArray)visualDevModelDataCrInput.data["station"])
List<BasProcessStation> list = new();
foreach (JToken item in (JArray)visualDevModelDataCrInput.data["station"])
{
string processStationId = SnowflakeIdHelper.NextId();
@@ -134,11 +123,10 @@ namespace Tnb.BasicData
});
}
await _repository.AsSugarClient().Insertable<BasProcessStation>(list).ExecuteCommandAsync();
_ = await _repository.AsSugarClient().Insertable<BasProcessStation>(list).ExecuteCommandAsync();
});
if(!result.IsSuccess) throw Oops.Oh(ErrorCode.COM1008);
return result.IsSuccess ? "保存成功" : result.ErrorMessage;
return !result.IsSuccess ? throw Oops.Oh(ErrorCode.COM1008) : (dynamic)(result.IsSuccess ? "保存成功" : result.ErrorMessage);
}

View File

@@ -1,7 +1,5 @@
using JNPF.Common.Core.Manager;
using JNPF.DependencyInjection;
using JNPF.DynamicApiController;
using JNPF.VisualDev.Interfaces;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
using Tnb.BasicData.Entities;
@@ -28,7 +26,7 @@ namespace Tnb.BasicData
public async Task<dynamic> Stop(Dictionary<string, string> dic)
{
string id = dic["id"];
await _repository.UpdateAsync(x => new BasPushRuleLog()
_ = await _repository.UpdateAsync(x => new BasPushRuleLog()
{
is_push = 0,
}, x => x.biz_id == id);

View File

@@ -6,8 +6,6 @@ using JNPF.Systems.Interfaces.System;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
using Tnb.BasicData.Entities;
using Tnb.BasicData.Entities.Dto;
using Tnb.BasicData.Entitys.Dto.BasProcess;
using Tnb.BasicData.Interfaces;
using Tnb.EquipMgr.Entities;
using Tnb.WarehouseMgr.Entities;
@@ -19,14 +17,14 @@ namespace Tnb.BasicData
/// </summary>
[ApiDescriptionSettings(Tag = ModuleConst.Tag, Area = ModuleConst.Area, Order = 1102)]
[Route("api/[area]/[controller]/[action]")]
public class BasQrcodeService : IBasQrcodeService,IDynamicApiController, ITransient
public class BasQrcodeService : IBasQrcodeService, IDynamicApiController, ITransient
{
private readonly ISqlSugarRepository<BasMaterial> _repository;
private readonly DataBaseManager _dbManager;
private readonly IDictionaryDataService _dictionaryDataService;
public BasQrcodeService(
ISqlSugarRepository<BasMaterial> repository,DataBaseManager dbManager,IDictionaryDataService dictionaryDataService)
ISqlSugarRepository<BasMaterial> repository, DataBaseManager dbManager, IDictionaryDataService dictionaryDataService)
{
_repository = repository;
_dbManager = dbManager;
@@ -34,22 +32,26 @@ namespace Tnb.BasicData
}
[HttpPost]
public async Task<dynamic> GetQrcodeByCode(Dictionary<string, string> dic)
public async Task<dynamic?> GetQrcodeByCode(Dictionary<string, string> dic)
{
string code = dic.ContainsKey("code") ? dic["code"] : "";
if (string.IsNullOrEmpty(code)) return null;
if (string.IsNullOrEmpty(code))
{
return null;
}
var result = await _repository.AsSugarClient().Queryable<BasQrcode>()
.LeftJoin<OrganizeEntity>((a, b) => a.source_id == b.Id)
.LeftJoin<EqpEquipment>((a, b, c) => a.source_id == c.id)
.LeftJoin<ToolLocation>((a, b, c, d) => a.source_id == d.id)
.LeftJoin<BasLocation>((a,b,c,d,e)=>a.source_id==e.id)
.LeftJoin<WmsCarryH>((a,b,c,d,e,f)=>a.source_id==f.id)
.LeftJoin<BasLocation>((a, b, c, d, e) => a.source_id == e.id)
.LeftJoin<WmsCarryH>((a, b, c, d, e, f) => a.source_id == f.id)
.Where((a, b, c, d) => a.code == code)
.Select((a, b, c, d,e,f) => new
.Select((a, b, c, d, e, f) => new
{
id = a.id,
source_id = a.source_id,
source_name = a.source_name,
a.id,
a.source_id,
a.source_name,
org_code = b.EnCode,
org_name = b.FullName,
equip_code = a.code,
@@ -57,27 +59,31 @@ namespace Tnb.BasicData
tool_location_code = d.location_code,
bas_location_name = e.location_name,
bas_location_code = e.location_code,
carry_name = f.carry_name,
carry_code = f.carry_code,
f.carry_name,
f.carry_code,
}).FirstAsync();
return result;
}
[HttpPost]
public async Task<dynamic> GetWorkStationByCode(Dictionary<string, string> dic)
public async Task<dynamic?> GetWorkStationByCode(Dictionary<string, string> dic)
{
string code = dic.ContainsKey("code") ? dic["code"] : "";
if (string.IsNullOrEmpty(code)) return null;
if (string.IsNullOrEmpty(code))
{
return null;
}
var result = await _repository.AsSugarClient().Queryable<BasQrcode>()
.LeftJoin<OrganizeEntity>((a, b) => a.source_id == b.Id)
.LeftJoin<OrganizeRelationEntity>((a,b,c)=>a.source_id==c.ObjectId && c.ObjectType=="Eqp")
.LeftJoin<OrganizeEntity>((a,b,c,d)=>c.OrganizeId==d.Id)
.LeftJoin<OrganizeRelationEntity>((a, b, c) => a.source_id == c.ObjectId && c.ObjectType == "Eqp")
.LeftJoin<OrganizeEntity>((a, b, c, d) => c.OrganizeId == d.Id)
.Where((a, b, c) => a.code == code)
.Select((a, b, c,d) => new
.Select((a, b, c, d) => new
{
id = a.id,
source_id = a.source_id,
source_name = a.source_name,
a.id,
a.source_id,
a.source_name,
org_id = b.Id,
org_code = b.EnCode,
org_name = b.FullName,

View File

@@ -9,8 +9,8 @@ using JNPF.FriendlyException;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
using Tnb.BasicData.Entities;
using Tnb.BasicData.Interfaces;
using Tnb.BasicData.Entities.Dto;
using Tnb.BasicData.Interfaces;
namespace Tnb.BasicData
{
@@ -19,11 +19,11 @@ namespace Tnb.BasicData
/// </summary>
[ApiDescriptionSettings(Tag = ModuleConst.Tag, Area = ModuleConst.Area, Order = 701)]
[Route("api/[area]/[controller]/[action]")]
public class BasRouteService : IBasRouteService,IDynamicApiController, ITransient
public class BasRouteService : IBasRouteService, IDynamicApiController, ITransient
{
private readonly ISqlSugarRepository<BasRouteH> _repository;
public BasRouteService(
UserManager userManager,
ISqlSugarRepository<BasRouteH> repository)
@@ -40,12 +40,12 @@ namespace Tnb.BasicData
{
string id = parameters["id"];
await _repository.UpdateAsync(x => new BasRouteH()
_ = await _repository.UpdateAsync(x => new BasRouteH()
{
status = "1",
}, x => x.id == id);
}
/// <summary>
/// 复制工艺路线
/// </summary>
@@ -55,7 +55,7 @@ namespace Tnb.BasicData
{
string id = parameters["id"];
BasRouteH basRouteH = await _repository.GetByIdAsync(id);
List<BasRouteD> basRouteDs = await _repository.AsSugarClient().Queryable<BasRouteD>().Where(x => x.route_id == id).ToListAsync();
string newId = SnowflakeIdHelper.NextId();
@@ -64,42 +64,41 @@ namespace Tnb.BasicData
basRouteH.name += "_复制的请修改";
basRouteH.status = "0";
DbResult<bool> result = await _repository.AsSugarClient().Ado.UseTranAsync(async () =>
DbResult<bool> result = await _repository.AsSugarClient().Ado.UseTranAsync(async () =>
{
await _repository.InsertAsync(basRouteH);
_ = await _repository.InsertAsync(basRouteH);
foreach (BasRouteD basRouteD in basRouteDs)
{
basRouteD.id = SnowflakeIdHelper.NextId();
basRouteD.route_id = newId;
}
await _repository.AsSugarClient().Insertable<BasRouteD>(basRouteDs).ExecuteCommandAsync();
_ = await _repository.AsSugarClient().Insertable<BasRouteD>(basRouteDs).ExecuteCommandAsync();
});
if(!result.IsSuccess) throw Oops.Oh(ErrorCode.COM1008);
return result.IsSuccess ? "复制成功" : result.ErrorMessage;
return !result.IsSuccess ? throw Oops.Oh(ErrorCode.COM1008) : result.IsSuccess ? "复制成功" : result.ErrorMessage;
}
/// <summary>
/// 获取有效的已发布的工艺路线
/// </summary>
[HttpPost]
public async Task<dynamic> GetValidRouteList([FromBody]VisualDevDataFieldDataListInput pageInput)
public async Task<dynamic> GetValidRouteList([FromBody] VisualDevDataFieldDataListInput pageInput)
{
var db = _repository.AsSugarClient();
var result = await db.Queryable<BasRouteH>()
.Where(x => x.status == "1"
&& ((x.start_time != null && x.start_time.Value <= DateTime.Now && x.end_time != null && x.end_time.Value>=DateTime.Now)
|| (x.start_time==null && x.end_time>=DateTime.Now)
|| (x.end_time==null && x.start_time<=DateTime.Now)
ISqlSugarClient db = _repository.AsSugarClient();
SqlSugarPagedList<VaildRouteOutput> result = await db.Queryable<BasRouteH>()
.Where(x => x.status == "1"
&& ((x.start_time != null && x.start_time.Value <= DateTime.Now && x.end_time != null && x.end_time.Value >= DateTime.Now)
|| (x.start_time == null && x.end_time >= DateTime.Now)
|| (x.end_time == null && x.start_time <= DateTime.Now)
|| (x.start_time == null && x.end_time == null)
)).Select(x=>new VaildRouteOutput()
)).Select(x => new VaildRouteOutput()
{
id = x.id,
code = x.code,
name = x.name,
start_time = x.start_time==null ? "" : x.start_time.Value.ToString("yyyy-MM-dd"),
end_time = x.end_time==null ? "" : x.end_time.Value.ToString("yyyy-MM-dd"),
start_time = x.start_time == null ? "" : x.start_time.Value.ToString("yyyy-MM-dd"),
end_time = x.end_time == null ? "" : x.end_time.Value.ToString("yyyy-MM-dd"),
}).ToPagedListAsync(pageInput.currentPage, pageInput.pageSize);
return PageResult<VaildRouteOutput>.SqlSugarPageResult(result);
}

View File

@@ -1,5 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="$(SolutionDir)\common.props" />
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>

View File

@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Tnb.EquipMgr.Entities.Consts
namespace Tnb.EquipMgr.Entities.Consts
{
public class MoldPlanMaintainStatus
{

View File

@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Tnb.EquipMgr.Entities.Consts
namespace Tnb.EquipMgr.Entities.Consts
{
public class MoldUseStatus
{

View File

@@ -9,12 +9,12 @@ namespace Tnb.EquipMgr
/// 待执行
/// </summary>
public const string TOBEEXECUTED = "1";
/// <summary>
/// 待复核
/// </summary>
public const string TOBECHECK = "2";
/// <summary>
/// 已完成
/// </summary>

View File

@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Tnb.EquipMgr.Entities.Dto
namespace Tnb.EquipMgr.Entities.Dto
{
public class BaseMoldMaintainInput
{

View File

@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Tnb.EquipMgr.Entities.Dto
namespace Tnb.EquipMgr.Entities.Dto
{
public class CheckItemOutput
{

View File

@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Tnb.EquipMgr.Entities.Dto
namespace Tnb.EquipMgr.Entities.Dto
{
/// <summary>
/// 根据模具ID、计划ID获取保养组及项目信息

View File

@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Tnb.EquipMgr.Entities.Dto
namespace Tnb.EquipMgr.Entities.Dto
{
public class ClosedownEndListOutput
{

View File

@@ -14,11 +14,11 @@ namespace Tnb.EquipMgr.Entities.Dto
public string execute_time { get; set; }
public string repeat_user_id { get; set; }
public string repeat_user_id_id { get; set; }
public string execute_user_id{ get; set; }
public string execute_user_id { get; set; }
public string execute_user_id_id { get; set; }
public string repeat_time { get; set; }
public string last_execute_time { get; set; }
public string last_execute_time { get; set; }
public DateTime? date_repeat_time { get; set; }
public DateTime? date_create_time { get; set; }
public DateTime? date_execute_time { get; set; }

View File

@@ -12,10 +12,10 @@ namespace Tnb.EquipMgr.Entities.Dto
public string spot_record_date_time { get; set; }
public string repeat_user_id { get; set; }
public string repeat_user_id_id { get; set; }
public string spot_record_user_id{ get; set; }
public string spot_record_user_id { get; set; }
public string spot_record_user_id_id { get; set; }
public string repeat_time { get; set; }
public DateTime? date_repeat_time { get; set; }
public DateTime? date_create_time { get; set; }
public DateTime? date_spot_record_date_time { get; set; }

View File

@@ -5,7 +5,7 @@ namespace Tnb.EquipMgr.Entities.Dto
public string? id { get; set; }
public string? data_source { get; set; }
public string create_id { get; set; } = string.Empty;
public string? create_time { get; set; }
public string? create_time { get; set; }
public string? data_type { get; set; }
public string? enabled { get; set; }
public string? equip_id { get; set; }

View File

@@ -6,7 +6,7 @@ namespace Tnb.EquipMgr.Entities.Dto
public string? attachment { get; set; }
public string? create_id { get; set; }
public string? create_id_id { get; set; }
public string? create_time { get; set; }
public string? create_time { get; set; }
public string? equip_id { get; set; }
public string? equip_id_id { get; set; }
public string? file_name { get; set; }

View File

@@ -3,7 +3,7 @@ namespace Tnb.EquipMgr.Entities.Dto
public class EquipQueryInput
{
public string equip_id { get; set; } = string.Empty;
/// <summary>
/// 当前页码:pageIndex.
/// </summary>
@@ -13,7 +13,7 @@ namespace Tnb.EquipMgr.Entities.Dto
/// 每页行数.
/// </summary>
public virtual int pageSize { get; set; } = 50;
public string? queryJson { get; set; }
}
}

View File

@@ -4,6 +4,6 @@ namespace Tnb.EquipMgr.Entities.Dto
{
public string id { get; set; } = string.Empty;
public string reason { get; set; } = string.Empty;
}
}

View File

@@ -3,7 +3,7 @@ namespace Tnb.EquipMgr.Entities.Dto
public class EquipSparePartsInput
{
public string equip_id { get; set; } = string.Empty;
public List<string>? spare_parts_ids { get; set; }
}
}

View File

@@ -8,6 +8,6 @@ namespace Tnb.EquipMgr.Entities.Dto
public string? code { get; set; }
public string? name { get; set; }
public string? specification { get; set; }
}
}

View File

@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Tnb.EquipMgr.Entities.Dto
namespace Tnb.EquipMgr.Entities.Dto
{
/// <summary>
/// 设备列表输出类

View File

@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Tnb.EquipMgr.Entities.Dto
namespace Tnb.EquipMgr.Entities.Dto
{
public class MaintainInfoQueryinput
{

View File

@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Tnb.EquipMgr.Entities.Dto
namespace Tnb.EquipMgr.Entities.Dto
{
/// <summary>
/// 生成保养计划输入参数

View File

@@ -1,11 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using NPOI.HSSF.Record.Chart;
namespace Tnb.EquipMgr.Entities.Dto
namespace Tnb.EquipMgr.Entities.Dto
{
/// <summary>
/// 保养计划模具列表输出参数

View File

@@ -5,9 +5,9 @@ namespace Tnb.EquipMgr.Entities.Dto
public string id { get; set; } = string.Empty;
public string repeat_result { get; set; } = string.Empty;
public string? repeat_remark { get; set; }
public List<Dictionary<string,string>>? details { get; set; }
public List<Dictionary<string, string>>? details { get; set; }
}
}

View File

@@ -3,7 +3,7 @@ namespace Tnb.EquipMgr.Entities.Dto
public class MaintainRecordRepeatOutput
{
public EqpMaintainRecordH? model { get; set; }
public List<EqpMaintainRecordD>? details { get; set; }
}
}

View File

@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Tnb.EquipMgr.Entities.Dto
namespace Tnb.EquipMgr.Entities.Dto
{
/// <summary>
/// 保养规则关联模具列表输出参数

View File

@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Tnb.EquipMgr.Entities.Dto
namespace Tnb.EquipMgr.Entities.Dto
{
/// <summary>
/// 修改维修单任务状态输入参数
@@ -18,6 +12,6 @@ namespace Tnb.EquipMgr.Entities.Dto
/// <summary>
/// 维修单状态 DWX(待维修)、WXZ(维修中)、YWC(已维修)
/// </summary>
public string status { get; set; }
public string status { get; set; }
}
}

View File

@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Tnb.EquipMgr.Entities.Dto
namespace Tnb.EquipMgr.Entities.Dto
{
/// <summary>
/// 物料列表输出类

View File

@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Tnb.EquipMgr.Entities.Dto
namespace Tnb.EquipMgr.Entities.Dto
{
public class RelevanceMoldListOutput
{

View File

@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Tnb.EquipMgr.Entities.Dto
namespace Tnb.EquipMgr.Entities.Dto
{
/// <summary>
/// 模具保养删除参数

View File

@@ -1,15 +1,9 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Tnb.EquipMgr.Entities.Dto
namespace Tnb.EquipMgr.Entities.Dto
{
/// <summary>
/// 关联保养组与模具输入参数
/// </summary>
public class MoldMaintainGroupItemRelationInput :BaseMoldMaintainInput
public class MoldMaintainGroupItemRelationInput : BaseMoldMaintainInput
{
}
}

View File

@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Tnb.EquipMgr.Entities.Dto
namespace Tnb.EquipMgr.Entities.Dto
{
/// <summary>
/// 模具保养项输入参数

View File

@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Tnb.EquipMgr.Entities.Dto
namespace Tnb.EquipMgr.Entities.Dto
{
/// <summary>
/// 模具保养项列表输出

View File

@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Tnb.EquipMgr.Entities.Dto
namespace Tnb.EquipMgr.Entities.Dto
{
/// <summary>
/// 模具保养计划执行查询输出参数

View File

@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Tnb.EquipMgr.Entities.Dto
namespace Tnb.EquipMgr.Entities.Dto
{
/// <summary>
/// 模具保养执行输入参数
@@ -34,7 +28,7 @@ namespace Tnb.EquipMgr.Entities.Dto
public string starttime { get; set; }
}
public class MaintainItemInfo
public class MaintainItemInfo
{
public string item_group_id { get; set; }

View File

@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Tnb.EquipMgr.Entities.Dto
namespace Tnb.EquipMgr.Entities.Dto
{
public class MoldMaintainUpInput
{
@@ -15,6 +9,6 @@ namespace Tnb.EquipMgr.Entities.Dto
/// <summary>
/// 维修状态
/// </summary>
public string status{ get; set; }
public string status { get; set; }
}
}

View File

@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Tnb.EquipMgr.Entities.Dto
namespace Tnb.EquipMgr.Entities.Dto
{
/// <summary>
/// 模具规则选择列表输出类

View File

@@ -1,11 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Numerics;
using System.Text;
using System.Threading.Tasks;
namespace Tnb.EquipMgr.Entities.Dto
namespace Tnb.EquipMgr.Entities.Dto
{
public class PadMainListOutput
{

View File

@@ -5,11 +5,11 @@ namespace Tnb.EquipMgr.Entities.Dto
public class PadRepairListInput : PageInputBase
{
public string status { get; set; }
public string equip_info { get; set; }
public DateTime? start_time { get; set; }
public DateTime? end_time { get; set; }
}
}

View File

@@ -3,9 +3,9 @@ namespace Tnb.EquipMgr.Entities.Dto
public class PadRepairListOutput
{
public string id { get; set; }
public string code { get; set; }
public string name { get; set; }
public string equip_id { get; set; }
public string equip_id_id { get; set; }

View File

@@ -1,9 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using JNPF.Common.Filter;
using JNPF.Common.Filter;
namespace Tnb.EquipMgr.Entities.Dto
{

View File

@@ -13,9 +13,9 @@ namespace Tnb.EquipMgr.Entities.Dto
public string status { get; set; }
public string repairer_id { get; set; }
public string? repairer_id_id { get; set; }
public string apply_user_id { get; set; }
public string apply_user_id_id { get; set; }
}
}

View File

@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Tnb.EquipMgr.Entities.Dto
namespace Tnb.EquipMgr.Entities.Dto
{
/// <summary>
/// 模具保养计划制定-计划关联模具输入参数

View File

@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Tnb.EquipMgr.Entities.Dto
namespace Tnb.EquipMgr.Entities.Dto
{
/// <summary>
/// 模具规则定义,关键模具输入参数
@@ -27,7 +21,7 @@ namespace Tnb.EquipMgr.Entities.Dto
}
public class RowIdItem
public class RowIdItem
{
/// <summary>
/// 模具id

View File

@@ -3,22 +3,22 @@ namespace Tnb.EquipMgr.Entities.Dto
public class RepairApplyOutRegisterInput
{
public string? id { get; set; }
/// <summary>
/// 实际维修供应商id
/// </summary>
public string? real_supplier_id { get; set; }
/// <summary>
/// 附件
/// </summary>
public string? attachment { get; set; }
/// <summary>
/// 费用
/// </summary>
public decimal? cost { get; set; }
/// <summary>
/// 修复时间
/// </summary>
@@ -28,12 +28,12 @@ namespace Tnb.EquipMgr.Entities.Dto
/// 维修耗时
/// </summary>
public decimal? repair_take_time { get; set; }
/// <summary>
/// 维修备注
/// </summary>
public string? repair_remark { get; set; }
/// <summary>
/// 报修申请id
/// </summary>

View File

@@ -3,27 +3,27 @@ namespace Tnb.EquipMgr.Entities.Dto
public class RepairApplyRegisterInput
{
public string? id { get; set; }
/// <summary>
/// 故障ID
/// </summary>
public string? fault_id { get; set; }
/// <summary>
/// 是否完成
/// </summary>
public string? is_complete { get; set; }
/// <summary>
/// 完成时间
/// </summary>
public DateTime? complete_time { get; set; }
/// <summary>
/// 维修耗时
/// </summary>
public int? repair_take_time { get; set; }
/// <summary>
/// 是否停机
/// </summary>
@@ -33,17 +33,17 @@ namespace Tnb.EquipMgr.Entities.Dto
/// 停机时长
/// </summary>
public int? halt_take_time { get; set; }
/// <summary>
/// 维修描述
/// </summary>
public string? repair_description { get; set; }
/// <summary>
/// 维修图片
/// </summary>
public string? repair_img { get; set; }
/// <summary>
/// 是否外修
/// </summary>

View File

@@ -3,15 +3,15 @@ namespace Tnb.EquipMgr.Entities.Dto
public class RepairDelayInput
{
public string? repair_apply_id { get; set; }
public string? equip_id { get; set; }
public string? repair_request_sender_id { get; set; }
public string? repair_sender_id { get; set; }
public DateTime expected_time { get; set; }
public string? delay_reason { get; set; }
}
}

View File

@@ -10,6 +10,6 @@ namespace Tnb.EquipMgr.Entities.Dto
public string? construction_period_requirement { get; set; }
public string? out_apply_reason { get; set; }
public string? remark { get; set; }
}
}

Some files were not shown because too many files have changed in this diff Show More