生产管理,新增生产提报,自检报废接口
This commit is contained in:
@@ -29,13 +29,25 @@ public static class DictConst
|
||||
/// 工单状态-待排产
|
||||
/// </summary>
|
||||
public const string WaitProductId = "25019244276501";
|
||||
|
||||
/// <summary>
|
||||
/// 工单状态-强制接单
|
||||
/// </summary>
|
||||
public const string MoCloseId = "25501969636645";
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 工单状态 已下发字典Id
|
||||
/// </summary>
|
||||
public const string IssueId = "25019232867093";
|
||||
/// <summary>
|
||||
/// 工单状态已下发
|
||||
/// </summary>
|
||||
public const string MoIssueEnCode = "Issue";
|
||||
/// <summary>
|
||||
/// 工单状态-关闭
|
||||
/// </summary>
|
||||
public const string MoClosedEnCode = "Close";
|
||||
/// <summary>
|
||||
/// 任务单状态-待开工编码
|
||||
/// </summary>
|
||||
public const string ToBeStartedEnCode = "ToBeStarted";
|
||||
@@ -55,6 +67,8 @@ public static class DictConst
|
||||
/// 任务单状态-待排产
|
||||
/// </summary>
|
||||
public const string ToBeScheduledEncode = "ToBeScheduled";
|
||||
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
@@ -15,5 +15,11 @@ namespace Tnb.ProductionMgr.Entities.Dto
|
||||
/// 生产工单Id列表
|
||||
/// </summary>
|
||||
public List<string> WorkOrderIds { get; set; }
|
||||
/// <summary>
|
||||
/// 操作形式
|
||||
///<br/>Release 下发
|
||||
///<br/>Closed 强制接单
|
||||
/// </summary>
|
||||
public string Behavior { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,99 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Tnb.ProductionMgr.Entities.Dto.PrdManage
|
||||
{
|
||||
/// <summary>
|
||||
/// 生产提报输入参数
|
||||
/// </summary>
|
||||
public class PrdReportCrInput
|
||||
{
|
||||
/// <summary>
|
||||
/// Desc:创建时间
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public DateTime? create_time { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:修改时间
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public DateTime? modify_time { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:扩展字段
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string extras { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:备注
|
||||
/// Default:NULL::character varying
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string remark { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:创建用户
|
||||
/// Default:NULL::character varying
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string create_id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:修改用户
|
||||
/// Default:NULL::character varying
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string modify_id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:生产任务Id
|
||||
/// Default:NULL::character varying
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string icmo_id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:生产数量
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public int prd_qty { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:已报工数量
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public int reported_work_qty { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:提报数量
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public int reported_qty { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:生产任务编码
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string icmo_code { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:生产任务量
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public int icmo_qty { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Tnb.ProductionMgr.Entities.Dto.PrdManage
|
||||
{
|
||||
public class PrdReportOutput
|
||||
{
|
||||
/// <summary>
|
||||
/// 任务计划数
|
||||
/// </summary>
|
||||
public int? icmo_qty { get; set; }
|
||||
/// <summary>
|
||||
/// 已报工数量
|
||||
/// </summary>
|
||||
public int? reported_work_qty { get; set; }
|
||||
/// <summary>
|
||||
/// 提报数
|
||||
/// </summary>
|
||||
public int? reported_qty { get; set; }
|
||||
/// <summary>
|
||||
/// 生产数量
|
||||
/// </summary>
|
||||
public int? prd_qty { get; set; }
|
||||
|
||||
public int? scrap_qty { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -195,6 +195,8 @@ namespace Tnb.ProductionMgr.Entities.Dto
|
||||
/// </summary>
|
||||
public string eqp_type_code { get; set; }
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Tnb.ProductionMgr.Entities.Dto.PrdManage
|
||||
{
|
||||
/// <summary>
|
||||
/// 自检报废输入类
|
||||
/// </summary>
|
||||
public class SelfTestScrappedInput
|
||||
{
|
||||
/// <summary>
|
||||
/// Desc:任务单号
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string icmo_code { get; set; }
|
||||
/// <summary>
|
||||
/// Desc:报废数量
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public int scrap_qty { get; set; }
|
||||
/// <summary>
|
||||
/// Desc:备注
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string remark { get; set; }
|
||||
/// <summary>
|
||||
/// 自检报废集合
|
||||
/// </summary>
|
||||
public List<SelfTestScrappedInputItem> categoryItems { get; set; }
|
||||
|
||||
}
|
||||
|
||||
|
||||
public class SelfTestScrappedInputItem
|
||||
{
|
||||
public string defective_category { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:分类数量
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public int? category_qty { get; set; }
|
||||
public List<SelfTestScrappedItem> items { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using DbModels;
|
||||
using Tnb.ProductionMgr.Entities;
|
||||
|
||||
namespace Tnb.ProductionMgr.Entities.Dto.PrdManage
|
||||
{
|
||||
/// <summary>
|
||||
/// 提报记录统计明细
|
||||
/// </summary>
|
||||
public class SelfTestScrappedOutput
|
||||
{
|
||||
/// <summary>
|
||||
/// Desc:任务单号
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string icmo_code { get; set; }
|
||||
/// <summary>
|
||||
/// Desc:报废数量
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public int scrap_qty { get; set; }
|
||||
/// <summary>
|
||||
/// 自检报废集合
|
||||
/// </summary>
|
||||
public List<SelfTestScrappedOutputItem> categoryItems { get; set; }
|
||||
|
||||
}
|
||||
|
||||
public class SelfTestScrappedOutputItem
|
||||
{
|
||||
public string defective_category { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:分类数量
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public int? category_qty { get; set; }
|
||||
public List<PrdScrappedDefectiveItem> items { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
118
ProductionMgr/Tnb.ProductionMgr.Entities/Entity/PrdReport.cs
Normal file
118
ProductionMgr/Tnb.ProductionMgr.Entities/Entity/PrdReport.cs
Normal file
@@ -0,0 +1,118 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using SqlSugar;
|
||||
|
||||
namespace Tnb.ProductionMgr.Entities
|
||||
{
|
||||
///<summary>
|
||||
///生产提报记录
|
||||
///</summary>
|
||||
[SugarTable("prd_report")]
|
||||
public partial class PrdReport
|
||||
{
|
||||
public PrdReport(){
|
||||
|
||||
|
||||
}
|
||||
/// <summary>
|
||||
/// Desc:主键
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(IsPrimaryKey=true)]
|
||||
public string id {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:时间戳
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public DateTime? timestamp {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:创建时间
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public DateTime? create_time {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:修改时间
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public DateTime? modify_time {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:扩展字段
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string extras {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:备注
|
||||
/// Default:NULL::character varying
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string remark {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:创建用户
|
||||
/// Default:NULL::character varying
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string create_id {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:修改用户
|
||||
/// Default:NULL::character varying
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string modify_id {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:生产任务Id
|
||||
/// Default:NULL::character varying
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string icmo_id {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:生产数量
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public int prd_qty {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:已报工数量
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public int? reported_work_qty {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:报工数量
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
//public int? reported_qty {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:生产任务编码
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string icmo_code {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:生产任务量
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public int? icmo_qty {get;set;}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using SqlSugar;
|
||||
|
||||
namespace Tnb.ProductionMgr.Entities
|
||||
{
|
||||
///<summary>
|
||||
///
|
||||
///</summary>
|
||||
[SugarTable("prd_report_record")]
|
||||
public partial class PrdReportRecord
|
||||
{
|
||||
public PrdReportRecord(){
|
||||
|
||||
|
||||
}
|
||||
/// <summary>
|
||||
/// Desc:主键
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(IsPrimaryKey=true)]
|
||||
public string id {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:产品编码
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string item_code {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:产品名称
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string item_name {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:设备编码
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string eqp_code {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:计划开始时间
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public DateTime? plan_start_time {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:计划结束时间
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public DateTime? plan_end_time {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:计划生产数量
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public int? plan_qty {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:完成数量
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public int? completed_qty {get;set;}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using SqlSugar;
|
||||
|
||||
namespace DbModels
|
||||
{
|
||||
///<summary>
|
||||
///TODO
|
||||
///</summary>
|
||||
[SugarTable("prd_self_test_scrapped")]
|
||||
public class PrdScrapped
|
||||
{
|
||||
/// <summary>
|
||||
/// Desc:编号
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(IsPrimaryKey = true)]
|
||||
public string id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:任务单号
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string icmo_code { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Desc:报废数量
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public int scrap_qty { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:备注
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string remark { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:创建用户
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string create_id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:创建时间
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public DateTime? create_time { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using SqlSugar;
|
||||
|
||||
namespace DbModels
|
||||
{
|
||||
///<summary>
|
||||
///TODO
|
||||
///</summary>
|
||||
[SugarTable("prd_self_test_scrapped_defective_cagetory")]
|
||||
public partial class PrdScrappedDefectiveCagetory
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Desc:编号
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(IsPrimaryKey = true)]
|
||||
public string id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:任务单号
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string icmo_code { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:次品分类
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string defective_category { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:分类数量
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public int? category_qty { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Desc:创建用户
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string create_id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:创建时间
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public DateTime? create_time { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using SqlSugar;
|
||||
|
||||
namespace DbModels
|
||||
{
|
||||
///<summary>
|
||||
///TODO
|
||||
///</summary>
|
||||
[SugarTable("prd_self_test_scrapped_defective_item")]
|
||||
public partial class PrdScrappedDefectiveItem
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Desc:编号
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(IsPrimaryKey=true)]
|
||||
public string id {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:自检报废id
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string defective_cagetory_id { get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:次品项
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string defective_item {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:次品项数量
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public int defective_item_qty {get;set;}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,104 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using SqlSugar;
|
||||
|
||||
namespace Tnb.ProductionMgr.Entities
|
||||
{
|
||||
///<summary>
|
||||
///
|
||||
///</summary>
|
||||
[SugarTable("prd_self_test_scrapped_record")]
|
||||
public partial class PrdSelfTestScrappedRecord
|
||||
{
|
||||
public PrdSelfTestScrappedRecord(){
|
||||
|
||||
|
||||
}
|
||||
/// <summary>
|
||||
/// Desc:主键
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(IsPrimaryKey=true)]
|
||||
public string id {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:产品编码
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string item_code {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:产品名称
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string item_name {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:设备编码
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string eqp_code {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:模具名称
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string mold_name {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:预计开始时间
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public DateTime? estimated_start_date {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:预计结束时间
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public DateTime? estimated_end_date {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:计划生产数量
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public int? plan_qty {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:报废数量
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public int scrap_qty { get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:生产任务单状态
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string status {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:创建人Id
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string create_id {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:创建时间
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public DateTime? create_time {get;set;}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -232,6 +232,10 @@ namespace Tnb.ProductionMgr.Entities
|
||||
/// 同组标识
|
||||
/// </summary>
|
||||
public string group_flag { get; set; }
|
||||
/// <summary>
|
||||
/// 任务单号
|
||||
/// </summary>
|
||||
public string icmo_code { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using SqlSugar;
|
||||
|
||||
namespace Tnb.ProductionMgr.Entities
|
||||
{
|
||||
///<summary>
|
||||
/// 自检报废
|
||||
///</summary>
|
||||
[SugarTable("self_test_scrapped")]
|
||||
public partial class SelfTestScrapped
|
||||
{
|
||||
/// <summary>
|
||||
/// Desc:主键
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(IsPrimaryKey = true)]
|
||||
public string id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:任务单号
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string icmo_code { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:次品分类
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string defective_category { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:分类数量
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "category_qty")]
|
||||
public int? category_qty { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:报废数量
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public int? scrap_qty { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:备注
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string remark { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:创建人
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string create_id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:创建时间
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public DateTime? create_time { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using SqlSugar;
|
||||
|
||||
namespace Tnb.ProductionMgr.Entities
|
||||
{
|
||||
///<summary>
|
||||
///自检报废子表项
|
||||
///</summary>
|
||||
[SugarTable("self_test_scrapped_item")]
|
||||
public partial class SelfTestScrappedItem
|
||||
{
|
||||
/// <summary>
|
||||
/// Desc:主键
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(IsPrimaryKey = true)]
|
||||
public string id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:自检报废id
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string defective_cagetory_id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:次品项
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string defective_item { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:次品项数量
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public int defective_item_qty { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
21
ProductionMgr/Tnb.ProductionMgr.Entities/Enums/MoBehavior.cs
Normal file
21
ProductionMgr/Tnb.ProductionMgr.Entities/Enums/MoBehavior.cs
Normal file
@@ -0,0 +1,21 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Spire.License;
|
||||
|
||||
namespace Tnb.ProductionMgr.Entities.Enums
|
||||
{
|
||||
public enum MoBehavior
|
||||
{
|
||||
/// <summary>
|
||||
/// 下发
|
||||
/// </summary>
|
||||
Release=1,
|
||||
/// <summary>
|
||||
/// 强制结单
|
||||
/// </summary>
|
||||
Closed=2,
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
namespace Tnb.ProductionMgr.Entities.Enums
|
||||
{
|
||||
public enum Behavior
|
||||
public enum PrdTaskBehavior
|
||||
{
|
||||
/// <summary>
|
||||
/// 任务下发
|
||||
@@ -1,5 +1,7 @@
|
||||
using System.Reflection.Emit;
|
||||
using System.Text;
|
||||
using Aop.Api.Domain;
|
||||
using DbModels;
|
||||
using JNPF.Common.Core.Manager;
|
||||
using JNPF.Common.Enums;
|
||||
using JNPF.Common.Extension;
|
||||
@@ -14,13 +16,18 @@ using JNPF.VisualDev;
|
||||
using JNPF.VisualDev.Entitys.Dto.VisualDevModelData;
|
||||
using Mapster;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.Extensions.Logging.Abstractions;
|
||||
using NPOI.SS.Formula.Functions;
|
||||
using Org.BouncyCastle.Crypto.Generators;
|
||||
using Senparc.Weixin.Work.AdvancedAPIs.MailList;
|
||||
using SqlSugar;
|
||||
using Tnb.BasicData;
|
||||
using Tnb.BasicData.Entities;
|
||||
using Tnb.BasicData.Entitys.Entity;
|
||||
using Tnb.EquipMgr.Entities;
|
||||
using Tnb.ProductionMgr.Entities;
|
||||
using Tnb.ProductionMgr.Entities.Dto;
|
||||
using Tnb.ProductionMgr.Entities.Dto.PrdManage;
|
||||
using Tnb.ProductionMgr.Entities.Enums;
|
||||
using Tnb.ProductionMgr.Interfaces;
|
||||
|
||||
@@ -81,16 +88,16 @@ namespace Tnb.ProductionMgr
|
||||
public async Task<dynamic> GetMoldListByItemId(string itemId)
|
||||
{
|
||||
var db = _repository.AsSugarClient();
|
||||
var list = await db.Queryable<Molds>().InnerJoin<BasItem>((a, b) => a.item_id == b.id)
|
||||
var list = await db.Queryable<Molds>().InnerJoin<BasMaterial>((a, b) => a.item_id == b.id)
|
||||
.Where((a, b) => a.item_id == itemId)
|
||||
.Select((a, b) => new MoldListOutput
|
||||
{
|
||||
mold_id = a.id,
|
||||
mold_code = a.mold_code,
|
||||
mold_name = a.mold_name,
|
||||
item_name = b.product_name,
|
||||
item_name = b.name,
|
||||
cavity_qty = a.cavity_qty,
|
||||
item_code = b.product_code,
|
||||
item_code = b.code,
|
||||
})
|
||||
.ToListAsync();
|
||||
return list;
|
||||
@@ -180,6 +187,75 @@ namespace Tnb.ProductionMgr
|
||||
_repository.AsSugarClient().ThenMapper(data, x => x.statusName = dic.ContainsKey(x.status) ? dic[x.status].ToString() : "");
|
||||
return data;
|
||||
}
|
||||
/// <summary>
|
||||
/// 根据任务单号获取提报记录明细
|
||||
/// </summary>
|
||||
/// <param name="icmoCode">任务单号</param>
|
||||
/// <remarks>
|
||||
/// returns:
|
||||
///<br/> {
|
||||
///<br/> icmo_qty:任务计划数量
|
||||
///<br/> reported_work_qty:已报工数量
|
||||
///<br/> reported_qty:报工数量
|
||||
///<br/> prd_qty:生产数量
|
||||
///<br/> }
|
||||
/// </remarks>
|
||||
[HttpGet("{icmoCode}")]
|
||||
public async Task<dynamic> GetPrdReportByIcmoCode(string icmoCode)
|
||||
{
|
||||
var db = _repository.AsSugarClient();
|
||||
var res = await db.Queryable<PrdReport>().Where(it => it.icmo_code == icmoCode).Select(it => new PrdReportOutput
|
||||
{
|
||||
icmo_qty = it.icmo_qty,
|
||||
reported_work_qty = it.reported_work_qty,
|
||||
//reported_qty = it.reported_qty,
|
||||
prd_qty = it.prd_qty,
|
||||
scrap_qty = SqlFunc.Subqueryable<PrdScrapped>().Select(x => x.scrap_qty),
|
||||
})
|
||||
.Mapper(it =>
|
||||
{
|
||||
it.icmo_qty = it.icmo_qty ?? (db.Queryable<PrdTask>().First(it => it.icmo_code == icmoCode)?.scheduled_qty < 1 ? 0 : it.icmo_qty ?? db.Queryable<PrdTask>().First(it => it.icmo_code == icmoCode).scheduled_qty);
|
||||
it.reported_work_qty = it.reported_work_qty ?? 0;
|
||||
//it.reported_qty = it.reported_qty ?? 0;
|
||||
it.prd_qty = it.prd_qty ?? 0;
|
||||
it.scrap_qty = it.scrap_qty ?? 0;
|
||||
})
|
||||
.FirstAsync();
|
||||
res ??= new PrdReportOutput
|
||||
{
|
||||
icmo_qty = db.Queryable<PrdTask>().First(it => it.icmo_code == icmoCode)?.scheduled_qty,
|
||||
reported_work_qty = 0,
|
||||
//reported_qty = 0,
|
||||
prd_qty = 0,
|
||||
scrap_qty = 0,
|
||||
};
|
||||
return res;
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取提报生产记录
|
||||
/// </summary>
|
||||
/// <param name="icmoCode"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("{icmoCode}")]
|
||||
public async Task<dynamic> GetReportRecord(string icmoCode)
|
||||
{
|
||||
var db = _repository.AsSugarClient();
|
||||
var output = new SelfTestScrappedOutput();
|
||||
output.icmo_code = icmoCode;
|
||||
var scrap = (await db.Queryable<PrdScrapped>().FirstAsync(it => it.icmo_code == icmoCode));
|
||||
output.scrap_qty = scrap != null ? scrap.scrap_qty : 0;
|
||||
output.categoryItems = new List<SelfTestScrappedOutputItem>();
|
||||
var categorys = await db.Queryable<PrdScrappedDefectiveCagetory>().Where(it => it.icmo_code == icmoCode).ToListAsync();
|
||||
foreach (var category in categorys)
|
||||
{
|
||||
var categoryItem = category.Adapt<SelfTestScrappedOutputItem>();
|
||||
categoryItem.items = new List<PrdScrappedDefectiveItem>();
|
||||
var items = await db.Queryable<PrdScrappedDefectiveItem>().Where(it => it.defective_cagetory_id == category.id).ToListAsync();
|
||||
categoryItem.items.AddRange(items);
|
||||
output.categoryItems.Add(categoryItem);
|
||||
}
|
||||
return output;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -197,6 +273,10 @@ namespace Tnb.ProductionMgr
|
||||
{
|
||||
throw new ArgumentNullException(nameof(input));
|
||||
}
|
||||
if (input.Behavior.IsNullOrWhiteSpace())
|
||||
{
|
||||
throw new ArgumentException($"{nameof(input.Behavior)},not be null or empty");
|
||||
}
|
||||
|
||||
var db = _repository.AsSugarClient();
|
||||
//获取同组工单的Id,一起下发
|
||||
@@ -207,8 +287,26 @@ namespace Tnb.ProductionMgr
|
||||
input.WorkOrderIds = input.WorkOrderIds.Concat(moIds).ToList();
|
||||
}
|
||||
|
||||
|
||||
Tuple<string, string> getMoStatus(MoBehavior behavior)
|
||||
{
|
||||
Tuple<string, string> multi = null;
|
||||
switch (behavior)
|
||||
{
|
||||
case MoBehavior.Release:
|
||||
multi = Tuple.Create(DictConst.IssueId, DictConst.ToBeScheduledEncode);
|
||||
break;
|
||||
case MoBehavior.Closed:
|
||||
multi = Tuple.Create(DictConst.MoCloseId, DictConst.ClosedEnCode);
|
||||
break;
|
||||
}
|
||||
return multi!;
|
||||
}
|
||||
var behavior = input.Behavior.ToEnum<MoBehavior>();
|
||||
var multi = getMoStatus(behavior);
|
||||
|
||||
var row = await db.Updateable<PrdMo>()
|
||||
.SetColumns(it => new PrdMo { mo_status = DictConst.IssueId, icmo_status = DictConst.ToBeScheduledEncode })
|
||||
.SetColumns(it => new PrdMo { mo_status = multi.Item1, icmo_status = multi.Item2 })
|
||||
.Where(it => input.WorkOrderIds.Contains(it.id))
|
||||
.ExecuteCommandAsync();
|
||||
return (row > 0);
|
||||
@@ -309,6 +407,7 @@ namespace Tnb.ProductionMgr
|
||||
entity.create_id = _userManager.UserId;
|
||||
entity.create_time = DateTime.Now;
|
||||
entity.prd_task_id = input.id;
|
||||
|
||||
var db = _repository.AsSugarClient();
|
||||
try
|
||||
{
|
||||
@@ -368,6 +467,26 @@ namespace Tnb.ProductionMgr
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!input.mo_code.IsNullOrEmpty())
|
||||
{
|
||||
var icmoCode = await db.Queryable<PrdTask>().Where(it => !string.IsNullOrEmpty(it.icmo_code) && it.icmo_code.Contains(input.mo_code)).OrderByDescending(it => it.icmo_code).Select(it => it.icmo_code).FirstAsync();
|
||||
if (icmoCode.IsNullOrEmpty())
|
||||
{
|
||||
entity.icmo_code = $"{input.mo_code}-01";
|
||||
}
|
||||
else
|
||||
{
|
||||
var pos = icmoCode.IndexOf("-", StringComparison.Ordinal);
|
||||
if (pos > -1)
|
||||
{
|
||||
var sb = new StringBuilder();
|
||||
var num = icmoCode.AsSpan().Slice(pos + 1).ToString().ParseToInt();
|
||||
var code = icmoCode.AsSpan().Slice(pos + 1).ToString();
|
||||
var n = (num + 1).ToString().PadLeft(2, '0');
|
||||
entity.icmo_code = sb.Append(code).Append(n).ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
row = await db.Storageable(entity).ExecuteCommandAsync();
|
||||
var taskLogEntity = input.Adapt<PrdTaskLog>();
|
||||
taskLogEntity.id ??= SnowflakeIdHelper.NextId();
|
||||
@@ -454,7 +573,7 @@ namespace Tnb.ProductionMgr
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.Error("生产任务发布时发生错误", ex);
|
||||
JNPF.Logging.Log.Error("生产任务发布时发生错误", ex);
|
||||
await db.Ado.RollbackTranAsync();
|
||||
}
|
||||
}
|
||||
@@ -483,18 +602,18 @@ namespace Tnb.ProductionMgr
|
||||
{
|
||||
throw new ArgumentException($"{nameof(input.Behavior)} not be null or empty");
|
||||
}
|
||||
string SetTaskStatus(Behavior behavior) => behavior switch
|
||||
string SetTaskStatus(PrdTaskBehavior behavior) => behavior switch
|
||||
{
|
||||
Behavior.Release => DictConst.ToBeStartedEnCode,
|
||||
Behavior.Start => DictConst.InProgressEnCode,
|
||||
Behavior.Closed => DictConst.ClosedEnCode,
|
||||
Behavior.Compled => DictConst.ComplatedEnCode,
|
||||
PrdTaskBehavior.Release => DictConst.ToBeStartedEnCode,
|
||||
PrdTaskBehavior.Start => DictConst.InProgressEnCode,
|
||||
PrdTaskBehavior.Closed => DictConst.ClosedEnCode,
|
||||
PrdTaskBehavior.Compled => DictConst.ComplatedEnCode,
|
||||
_ => throw new NotImplementedException(),
|
||||
};
|
||||
Behavior behavior = input.Behavior.ToEnum<Behavior>();
|
||||
PrdTaskBehavior behavior = input.Behavior.ToEnum<PrdTaskBehavior>();
|
||||
var status = SetTaskStatus(behavior);
|
||||
var db = _repository.AsSugarClient();
|
||||
if (behavior == Behavior.Compled)
|
||||
if (behavior == PrdTaskBehavior.Compled)
|
||||
{
|
||||
var list = await db.Queryable<PrdTask>().Where(it => input.TaskIds.Contains(it.id)).Select(it => it).ToListAsync();
|
||||
if (list?.Count > 0)
|
||||
@@ -508,9 +627,9 @@ namespace Tnb.ProductionMgr
|
||||
}
|
||||
}
|
||||
row = await db.Updateable<PrdTask>()
|
||||
.SetColumns(it => new PrdTask { status = status })
|
||||
.Where(it => input.TaskIds.Contains(it.id))
|
||||
.ExecuteCommandAsync();
|
||||
.SetColumns(it => new PrdTask { status = status })
|
||||
.Where(it => input.TaskIds.Contains(it.id))
|
||||
.ExecuteCommandAsync();
|
||||
return (row > 0);
|
||||
}
|
||||
|
||||
@@ -551,6 +670,166 @@ namespace Tnb.ProductionMgr
|
||||
row = await db.Updateable(icmoItem).ExecuteCommandAsync();
|
||||
return (row > 0);
|
||||
}
|
||||
/// <summary>
|
||||
/// 生产提报
|
||||
/// </summary>
|
||||
/// <param name="input"></param>
|
||||
/// <remarks>
|
||||
/// input:
|
||||
/// <br/>{
|
||||
/// <br/> icmo_id:生产任务ID
|
||||
/// <br/> icmo_code:任务单号
|
||||
/// <br/> prd_qty:生产数量
|
||||
/// <br/> reported_work_qty:已报工数量
|
||||
/// <br/> reported_qty:提报数量
|
||||
/// <br/> icmo_qty:生产任务量
|
||||
/// <br/>}
|
||||
/// </remarks>
|
||||
[HttpPost]
|
||||
public async Task<dynamic> PrdReport(PrdReportCrInput input)
|
||||
{
|
||||
var row = -1;
|
||||
var db = _repository.AsSugarClient();
|
||||
var report = await db.Queryable<PrdReport>().FirstAsync(it => it.icmo_code == input.icmo_code);
|
||||
if (report is not null)
|
||||
{
|
||||
report.reported_work_qty += input.reported_qty;
|
||||
report.prd_qty += input.reported_qty;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
report = input.Adapt<PrdReport>();
|
||||
report.id = SnowflakeIdHelper.NextId();
|
||||
report.reported_work_qty = input.reported_qty;
|
||||
report.prd_qty = input.reported_qty;
|
||||
}
|
||||
row = await db.Storageable(report).ExecuteCommandAsync();
|
||||
var prdTask = await db.Queryable<PrdTask>().FirstAsync(it => it.icmo_code == input.icmo_code);
|
||||
var record = prdTask.Adapt<PrdReportRecord>();
|
||||
if (prdTask != null)
|
||||
{
|
||||
record.eqp_code = (await db.Queryable<EqpEquipment>().FirstAsync(it => it.id == prdTask.eqp_id))?.eqp_code;
|
||||
record.completed_qty = input.reported_qty;
|
||||
row = await db.Insertable(record).ExecuteCommandAsync();
|
||||
}
|
||||
return row > 0;
|
||||
}
|
||||
/// <summary>
|
||||
/// 自检报废提交
|
||||
/// </summary>
|
||||
/// <param name="input">自检报废输入参数</param>
|
||||
/// <returns>true/false</returns>
|
||||
/// <remarks>
|
||||
/// input:
|
||||
///<br/>{
|
||||
///<br/> "icmo_code": 任务单号,
|
||||
///<br/> "scrap_qty": 报废数量,
|
||||
///<br/> "remark": 备注,
|
||||
///<br/> "categoryItems": [
|
||||
///<br/> {
|
||||
///<br/> "defective_category":次品分类,
|
||||
///<br/> "category_qty": 分类数量,
|
||||
///<br/> "items": [
|
||||
///<br/> {
|
||||
///<br/> "defective_item": 次品项,
|
||||
///<br/> "defective_item_qty": 次品项数量
|
||||
///<br/> }
|
||||
///<br/> ]
|
||||
///<br/> }
|
||||
///<br/> ]
|
||||
///<br/>}
|
||||
/// </remarks>
|
||||
[HttpPost]
|
||||
public async Task<dynamic> SelfTestScrapped(SelfTestScrappedInput input)
|
||||
{
|
||||
var db = _repository.AsSugarClient();
|
||||
var prdScrapped = await db.Queryable<PrdScrapped>().FirstAsync(it => it.icmo_code == input.icmo_code);
|
||||
if (prdScrapped is null)
|
||||
{
|
||||
prdScrapped = input.Adapt<PrdScrapped>();
|
||||
prdScrapped.id = SnowflakeIdHelper.NextId();
|
||||
prdScrapped.create_id = _userManager.UserId;
|
||||
prdScrapped.create_time = DateTime.Now;
|
||||
}
|
||||
|
||||
var result = await db.Ado.UseTranAsync(async () =>
|
||||
{
|
||||
var categorys = new List<PrdScrappedDefectiveCagetory>();
|
||||
foreach (var categoryItem in input.categoryItems)
|
||||
{
|
||||
categorys = await db.Queryable<PrdScrappedDefectiveCagetory>().Where(it => it.icmo_code == input.icmo_code).ToListAsync();
|
||||
if (categorys?.Count > 0)
|
||||
{
|
||||
foreach (var category in categorys)
|
||||
{
|
||||
var defectiveItems = categoryItem.items?.Select(x => x.defective_item).ToList();
|
||||
var list = await db.Queryable<PrdScrappedDefectiveItem>().Where(it => defectiveItems!.Contains(it.defective_item)).ToListAsync();
|
||||
category.category_qty = list?.Sum(it => it.defective_item_qty) + categoryItem.items.Sum(x => x.defective_item_qty);
|
||||
if (list?.Count > 0)
|
||||
{
|
||||
if (categoryItem.items?.Count > 0)
|
||||
{
|
||||
foreach (var x in categoryItem.items)
|
||||
{
|
||||
var item = list.Find(f => f.defective_item == x.defective_item);
|
||||
if (item != null)
|
||||
{
|
||||
item.defective_item_qty += x.defective_item_qty;
|
||||
}
|
||||
}
|
||||
await db.Updateable(list).ExecuteCommandAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
await db.Updateable(categorys).ExecuteCommandAsync();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
var category = categoryItem.Adapt<PrdScrappedDefectiveCagetory>();
|
||||
category.id = SnowflakeIdHelper.NextId();
|
||||
category.icmo_code = input.icmo_code;
|
||||
category.create_id = _userManager.UserId;
|
||||
category.create_time = DateTime.Now;
|
||||
category.category_qty = categoryItem.items?.Sum(x => x.defective_item_qty);
|
||||
categorys!.Add(category);
|
||||
var items = new List<PrdScrappedDefectiveItem>();
|
||||
if (categoryItem.items?.Count > 0)
|
||||
{
|
||||
foreach (var item in categoryItem.items)
|
||||
{
|
||||
var defectiveItem = item.Adapt<PrdScrappedDefectiveItem>();
|
||||
defectiveItem.id = SnowflakeIdHelper.NextId();
|
||||
defectiveItem.defective_cagetory_id = category.id;
|
||||
items.Add(defectiveItem);
|
||||
}
|
||||
await db.Insertable(items).ExecuteCommandAsync();
|
||||
}
|
||||
await db.Insertable(category).ExecuteCommandAsync();
|
||||
}
|
||||
}
|
||||
|
||||
//var scrapQty = await db.Queryable<PrdScrappedDefectiveItem>().SumAsync(it => it.defective_item_qty);
|
||||
//prdScrapped.scrap_qty = scrapQty;
|
||||
var report = await db.Queryable<PrdReport>().FirstAsync(it => it.icmo_code == input.icmo_code);
|
||||
if (report != null)
|
||||
{
|
||||
report.prd_qty += input.scrap_qty;
|
||||
await db.Updateable<PrdReport>(report).ExecuteCommandAsync();
|
||||
}
|
||||
await db.Storageable(prdScrapped).ExecuteCommandAsync();
|
||||
var prdTask = await db.Queryable<PrdTask>().FirstAsync(it => it.icmo_code == input.icmo_code);
|
||||
var record = prdTask.Adapt<PrdSelfTestScrappedRecord>();
|
||||
if (prdTask != null)
|
||||
{
|
||||
record.eqp_code = (await db.Queryable<EqpEquipment>().FirstAsync(it => it.id == prdTask.eqp_id))?.eqp_code;
|
||||
record.scrap_qty = input.scrap_qty;
|
||||
await db.Insertable(record).ExecuteCommandAsync();
|
||||
}
|
||||
});
|
||||
return result.IsSuccess;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
67
visualdev/Tnb.VisualDev.Entitys/Entity/HmiEntity.cs
Normal file
67
visualdev/Tnb.VisualDev.Entitys/Entity/HmiEntity.cs
Normal file
@@ -0,0 +1,67 @@
|
||||
using JNPF.Common.Const;
|
||||
using JNPF.Common.Contracts;
|
||||
using SqlSugar;
|
||||
|
||||
namespace JNPF.VisualDev.Entitys;
|
||||
|
||||
/// <summary>
|
||||
/// 门户表.
|
||||
/// </summary>
|
||||
[SugarTable("base_hmi")]
|
||||
[Tenant(ClaimConst.TENANTID)]
|
||||
public class HmiEntity : CLDEntityBase
|
||||
{
|
||||
/// <summary>
|
||||
/// 描述.
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "F_DESCRIPTION")]
|
||||
public string Description { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 排序码.
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "F_SORTCODE")]
|
||||
public long? SortCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 名称.
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "F_FULLNAME")]
|
||||
public string FullName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 编码.
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "F_ENCODE")]
|
||||
public string EnCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 分类(数据字典维护).
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "F_CATEGORY")]
|
||||
public string Category { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 表单配置JSON.
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "F_FORMDATA")]
|
||||
public string FormData { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 类型(0-页面设计,1-自定义路径).
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "F_Type")]
|
||||
public int? Type { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 静态页面路径.
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "F_CustomUrl")]
|
||||
public string CustomUrl { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 链接类型(0-页面,1-外链).
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "F_LinkType")]
|
||||
public int? LinkType { get; set; }
|
||||
}
|
||||
23
visualdev/Tnb.VisualDev/HmiService.cs
Normal file
23
visualdev/Tnb.VisualDev/HmiService.cs
Normal file
@@ -0,0 +1,23 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Aspose.Cells;
|
||||
using JNPF.DependencyInjection;
|
||||
using JNPF.DynamicApiController;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
|
||||
namespace Tnb.VisualDev
|
||||
{
|
||||
/// <summary>
|
||||
/// 业务实现:人机界面
|
||||
/// </summary>
|
||||
[ApiDescriptionSettings(Tag = "VisualDev", Name = "Hmi", Order = 173)]
|
||||
[Route("api/visualdev/[controller]")]
|
||||
|
||||
public class HmiService : IDynamicApiController, ITransient
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user