diff --git a/Myshipping.Application/Entity/TrackingSystem/ServiceProjectBaseInfo.cs b/Myshipping.Application/Entity/TrackingSystem/ServiceProjectBaseInfo.cs
index 39b9919d..f7601827 100644
--- a/Myshipping.Application/Entity/TrackingSystem/ServiceProjectBaseInfo.cs
+++ b/Myshipping.Application/Entity/TrackingSystem/ServiceProjectBaseInfo.cs
@@ -28,12 +28,12 @@ namespace Myshipping.Application.Entity
}
///
- /// 产品代码
+ /// 服务项代码
///
public string SERVICE_PROJECT_CODE { get; set; }
///
- /// 产品名称
+ /// 服务项名称
///
public string SERVICE_PROJECT_NAME { get; set; }
diff --git a/Myshipping.Application/Entity/TrackingSystem/ServiceWorkFlowRunInfo.cs b/Myshipping.Application/Entity/TrackingSystem/ServiceWorkFlowRunInfo.cs
index 24fb6591..dd082c78 100644
--- a/Myshipping.Application/Entity/TrackingSystem/ServiceWorkFlowRunInfo.cs
+++ b/Myshipping.Application/Entity/TrackingSystem/ServiceWorkFlowRunInfo.cs
@@ -64,6 +64,16 @@ namespace Myshipping.Application.Entity
///
public string STATUS { get; set; }
+ ///
+ /// 服务项代码
+ ///
+ public string SERVICE_PROJECT_CODE { get; set; }
+
+ ///
+ /// 服务项名称
+ ///
+ public string SERVICE_PROJECT_NAME { get; set; }
+
///
/// 活动数量
///
diff --git a/Myshipping.Application/Service/TrackingSystem/Dtos/TrackingQueryMessageInfo.cs b/Myshipping.Application/Service/TrackingSystem/Dtos/TrackingQueryMessageInfo.cs
new file mode 100644
index 00000000..42b73403
--- /dev/null
+++ b/Myshipping.Application/Service/TrackingSystem/Dtos/TrackingQueryMessageInfo.cs
@@ -0,0 +1,56 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Myshipping.Application
+{
+ public class TrackingQueryMessageInfo
+ {
+ ///
+ /// 表头
+ ///
+ public TrackingMessageHeadInfo Head { get; set; }
+
+ ///
+ /// 表体
+ ///
+ public TrackingMessageQueryMainInfo Main { get; set; }
+ }
+
+ public class TrackingMessageQueryMainInfo
+ {
+ ///
+ /// 服务项目代码
+ ///
+ public List ServiceProjectCodeList { get; set; }
+
+ ///
+ /// 业务系统代码
+ ///
+ [Required(ErrorMessage = "必填")]
+ public string BusiSystemCode { get; set; }
+
+ ///
+ /// 业务主键
+ ///
+ public string BusiId { get; set; }
+
+ ///
+ /// 提单号
+ ///
+ public string MBlNo { get; set; }
+
+ ///
+ /// 船名航次
+ ///
+ public string VesselVoyno { get; set; }
+
+ ///
+ /// 订舱编号
+ ///
+ public string OrderNo { get; set; }
+ }
+}
diff --git a/Myshipping.Application/Service/TrackingSystem/Interface/IServiceWorkFlowManageService.cs b/Myshipping.Application/Service/TrackingSystem/Interface/IServiceWorkFlowManageService.cs
index cdc0c7f1..55ddb2e3 100644
--- a/Myshipping.Application/Service/TrackingSystem/Interface/IServiceWorkFlowManageService.cs
+++ b/Myshipping.Application/Service/TrackingSystem/Interface/IServiceWorkFlowManageService.cs
@@ -20,18 +20,18 @@ namespace Myshipping.Application
///
- /// 查询单票业务单服务项目查询
+ /// 单票单服务项目查询
///
- /// 服务流程详情
+ /// 查询服务流程详情
/// 返回回执
- Task QuerySingleBusinessPerServiceProject(ServiceWorkFlowBaseDto info);
+ Task QuerySingleBusinessPerServiceProject(TrackingQueryMessageInfo info);
///
- /// 查询单票所有相关服务项目查询
+ /// 单票所有相关服务项目查询
///
- /// 服务流程详情
+ /// 查询服务流程详情
/// 返回回执
- Task QuerySingleBusinessAll(ServiceWorkFlowBaseDto info);
+ Task QuerySingleBusinessAll(TrackingQueryMessageInfo info);
}
}
diff --git a/Myshipping.Application/Service/TrackingSystem/ServiceWorkFlowManageService.cs b/Myshipping.Application/Service/TrackingSystem/ServiceWorkFlowManageService.cs
index 02e7162d..20c6e3ee 100644
--- a/Myshipping.Application/Service/TrackingSystem/ServiceWorkFlowManageService.cs
+++ b/Myshipping.Application/Service/TrackingSystem/ServiceWorkFlowManageService.cs
@@ -40,6 +40,7 @@ namespace Myshipping.Application
private readonly SqlSugarRepository _serviceWorkFlowRunActivitiesInfoRepository;
private readonly SqlSugarRepository _statusSkuBaseInfoRepository;
private readonly SqlSugarRepository _sysUserRepository;
+ private readonly SqlSugarRepository _serviceProjectBaseInfoRepository;
private readonly IServiceWorkFlowBaseService _serviceWorkFlowBaseService;
@@ -53,7 +54,8 @@ namespace Myshipping.Application
SqlSugarRepository serviceWorkFlowRunInfoRepository,
SqlSugarRepository serviceWorkFlowRunActivitiesInfoRepository,
SqlSugarRepository statusSkuBaseInfoRepository,
- IServiceWorkFlowBaseService serviceWorkFlowBaseService, SqlSugarRepository sysUserRepository)
+ IServiceWorkFlowBaseService serviceWorkFlowBaseService, SqlSugarRepository sysUserRepository,
+ SqlSugarRepository serviceProjectBaseInfoRepository)
{
_serviceWorkFlowBaseRepository = serviceWorkFlowBaseRepository;
_serviceWorkFlowActivitiesInfoRepository = serviceWorkFlowActivitiesInfoRepository;
@@ -68,6 +70,7 @@ namespace Myshipping.Application
_statusSkuBaseInfoRepository = statusSkuBaseInfoRepository;
_serviceWorkFlowBaseService = serviceWorkFlowBaseService;
_sysUserRepository = sysUserRepository;
+ _serviceProjectBaseInfoRepository = serviceProjectBaseInfoRepository;
}
#region 推送状态
@@ -224,7 +227,9 @@ namespace Myshipping.Application
CreatedUserId = userTendInfo.userId,
CreatedUserName = userTendInfo.userName,
TenantId = userTendInfo.tendId,
- TenantName = userTendInfo.tenantName
+ TenantName = userTendInfo.tenantName,
+ SERVICE_PROJECT_CODE = wf.ServiceProject.ServiceProjectCode,
+ SERVICE_PROJECT_NAME = wf.ServiceProject.ServiceProjectName,
};
await _serviceWorkFlowRunInfoRepository.InsertAsync(serviceWorkFlowRunInfo);
@@ -251,7 +256,7 @@ namespace Myshipping.Application
SHOW_NAME = sku.ShowName,
IS_SUB = 0,
IS_SUB_JUST = 0,
- IS_YIELD = 1,
+ IS_YIELD = 0,
CreatedTime = nowDate,
UpdatedTime = nowDate,
CreatedUserId = userTendInfo.userId,
@@ -266,6 +271,7 @@ namespace Myshipping.Application
{
activitiesRunInfo.ACT_DATE = currReq.Req.StatusDate;
activitiesRunInfo.ACT_VAL = currReq.Req.StatusVal;
+ activitiesRunInfo.IS_YIELD = 1;
}
@@ -298,7 +304,7 @@ namespace Myshipping.Application
SHOW_NAME = sub.ShowName,
IS_SUB = 1,
IS_SUB_JUST = 1,
- IS_YIELD = 1,
+ IS_YIELD = 0,
CreatedTime = nowDate,
UpdatedTime = nowDate,
CreatedUserId = userTendInfo.userId,
@@ -306,13 +312,15 @@ namespace Myshipping.Application
TenantId = userTendInfo.tendId,
TenantName = userTendInfo.tenantName,
IsDeleted = false,
- SOURCE_TYPE = "AUTO"
+ SOURCE_TYPE = "AUTO",
+ PARENT_ID = activitiesRunInfo.PK_ID
};
if(currSubReq != null)
{
activitiesSubRunInfo.ACT_DATE = currSubReq.Req.StatusDate;
activitiesSubRunInfo.ACT_VAL = currSubReq.Req.StatusVal;
+ activitiesSubRunInfo.IS_YIELD = 1;
}
if (!string.IsNullOrWhiteSpace(lastSubActId))
@@ -343,28 +351,238 @@ namespace Myshipping.Application
}
#endregion
+ #region 单票单服务项目查询
///
- /// 查询单票业务单服务项目查询
+ /// 单票单服务项目查询
///
- /// 服务流程详情
+ /// 查询服务流程详情
/// 返回回执
[HttpPost("/ServiceWorkFlowManage/QuerySingleBusinessPerServiceProject")]
- public async Task QuerySingleBusinessPerServiceProject(ServiceWorkFlowBaseDto info)
+ public async Task QuerySingleBusinessPerServiceProject(TrackingQueryMessageInfo info)
{
- return new TaskManageOrderResultDto();
- }
+ TaskManageOrderResultDto result = new TaskManageOrderResultDto();
+
+ string batchNo = IDGen.NextID().ToString();
+ _logger.LogInformation("批次={no} 单票单服务项目查询 msg={msg}", batchNo, JSON.Serialize(info));
+ try
+ {
+
+
+ var runList = _serviceWorkFlowRunInfoRepository.AsQueryable().Filter(null, true)
+ .LeftJoin((m, s) => m.PK_ID == s.RUN_ID)
+ .LeftJoin((m, s, rela) =>
+ m.SERVICE_WF_ID == rela.SERVICE_WORKFLOW_ID && m.RELEASE_VERSION == rela.WF_VERSION)
+ .LeftJoin((m, s, rela, p) =>
+ rela.SERVICE_PROJECT_ID == p.PK_ID)
+ .Where((m, s, rela, p)
+ => m.BUSI_SYSTEM_CODE == info.Main.BusiSystemCode && m.BUSI_ID == info.Main.BusiId &&
+ info.Main.ServiceProjectCodeList.Contains(p.SERVICE_PROJECT_CODE))
+ .Select((m, s) => new { Run = m, Sub = s }).ToList();
+
+
+ var resultList = runList.GroupBy(a=>a.Run.PK_ID)
+ .Select(a => {
+ var currList = a.ToList();
+
+ var runInfo = currList.FirstOrDefault().Run;
+
+ var showModel = new ServiceWorkFlowRunDto();
+
+ showModel.PKId = runInfo.PK_ID;
+ showModel.ServiceProjectCode = runInfo.SERVICE_PROJECT_CODE;
+ showModel.ServiceProjectName = runInfo.SERVICE_PROJECT_NAME;
+
+ showModel.ActivitiesList = currList.Where(t => t.Sub.IS_SUB == 0)
+ .Select(t =>
+ {
+ var runModel = new ServiceWorkFlowActivitiesRunDto
+ {
+ PKId = t.Sub.PK_ID,
+ ActDate = t.Sub.ACT_DATE,
+ ActId = t.Sub.ACT_ID,
+ ExecSortNo = t.Sub.EXEC_SORT_NO,
+ ActVal = t.Sub.ACT_VAL,
+ IsStart = t.Sub.IS_START,
+ IsEnd = t.Sub.IS_END,
+ IsYield = t.Sub.IS_YIELD,
+ RunId = t.Sub.RUN_ID,
+ ShowName = t.Sub.SHOW_NAME,
+ SourceType = t.Sub.SOURCE_TYPE,
+ StatusSKUCode = t.Sub.STATUS_SKU_CODE,
+ StatusSKUId = t.Sub.STATUS_SKU_ID
+ };
+
+ return runModel;
+ }).ToList();
+
+ var subList =
+ currList.Where(t => t.Sub.IS_SUB == 1)
+ .Select(t => t.Sub).ToList();
+
+ showModel.ActivitiesList = showModel.ActivitiesList.GroupJoin(subList,
+ l => l.PKId, r => r.PARENT_ID,
+ (l, r) =>
+ {
+ var currList = r.ToList();
+
+ if (currList.Count > 0)
+ {
+ l.SubList = currList.Select(x => {
+
+ var subModel = new ServiceWorkFlowActivitiesRunSubDto
+ {
+ PKId = x.PK_ID,
+ ActDate = x.ACT_DATE,
+ ActId = x.ACT_ID,
+ ExecSortNo = x.EXEC_SORT_NO,
+ ActVal = x.ACT_VAL,
+ IsStart = x.IS_START,
+ IsEnd = x.IS_END,
+ IsYield = x.IS_YIELD,
+ RunId = x.RUN_ID,
+ ShowName = x.SHOW_NAME,
+ SourceType = x.SOURCE_TYPE,
+ StatusSKUCode = x.STATUS_SKU_CODE,
+ StatusSKUId = x.STATUS_SKU_ID
+ };
+
+ return subModel;
+ }).OrderBy(x=>x.ExecSortNo).ToList();
+ }
+
+ return l;
+ }).OrderBy(t => t.ExecSortNo).ToList();
+
+ return showModel;
+ }).ToList();
+
+ result.succ = true;
+ result.ext = resultList;
+ }
+ catch (Exception ex)
+ {
+ result.succ = false;
+ result.msg = $"单票单服务项目查询失败,原因:{ex.Message}";
+ }
+
+ return result;
+ }
+ #endregion
+
+ #region 单票所有相关服务项目查询
///
- /// 查询单票所有相关服务项目查询
+ /// 单票所有相关服务项目查询
///
- /// 服务流程详情
+ /// 查询服务流程详情
/// 返回回执
[HttpPost("/ServiceWorkFlowManage/QuerySingleBusinessAll")]
- public async Task QuerySingleBusinessAll(ServiceWorkFlowBaseDto info)
+ public async Task QuerySingleBusinessAll(TrackingQueryMessageInfo info)
{
- return new TaskManageOrderResultDto();
+ TaskManageOrderResultDto result = new TaskManageOrderResultDto();
+
+ string batchNo = IDGen.NextID().ToString();
+
+ _logger.LogInformation("批次={no} 单票所有相关服务项目查询 msg={msg}", batchNo, JSON.Serialize(info));
+
+ try
+ {
+ var runList = _serviceWorkFlowRunInfoRepository.AsQueryable().Filter(null, true)
+ .LeftJoin((m, s) => m.PK_ID == s.RUN_ID)
+ .Where((m, s)
+ => m.BUSI_SYSTEM_CODE == info.Main.BusiSystemCode && m.BUSI_ID == info.Main.BusiId)
+ .Select((m, s) => new { Run = m, Sub = s }).ToList();
+
+
+ var resultList = runList.GroupBy(a => a.Run.PK_ID)
+ .Select(a => {
+ var currList = a.ToList();
+
+ var runInfo = currList.FirstOrDefault().Run;
+
+ var showModel = new ServiceWorkFlowRunDto();
+
+ showModel.PKId = runInfo.PK_ID;
+ showModel.ServiceProjectCode = runInfo.SERVICE_PROJECT_CODE;
+ showModel.ServiceProjectName = runInfo.SERVICE_PROJECT_NAME;
+
+ showModel.ActivitiesList = currList.Where(t => t.Sub.IS_SUB == 0)
+ .Select(t =>
+ {
+ var runModel = new ServiceWorkFlowActivitiesRunDto
+ {
+ PKId = t.Sub.PK_ID,
+ ActDate = t.Sub.ACT_DATE,
+ ActId = t.Sub.ACT_ID,
+ ExecSortNo = t.Sub.EXEC_SORT_NO,
+ ActVal = t.Sub.ACT_VAL,
+ IsStart = t.Sub.IS_START,
+ IsEnd = t.Sub.IS_END,
+ IsYield = t.Sub.IS_YIELD,
+ RunId = t.Sub.RUN_ID,
+ ShowName = t.Sub.SHOW_NAME,
+ SourceType = t.Sub.SOURCE_TYPE,
+ StatusSKUCode = t.Sub.STATUS_SKU_CODE,
+ StatusSKUId = t.Sub.STATUS_SKU_ID
+ };
+
+ return runModel;
+ }).ToList();
+
+ var subList =
+ currList.Where(t => t.Sub.IS_SUB == 1)
+ .Select(t => t.Sub).ToList();
+
+ showModel.ActivitiesList = showModel.ActivitiesList.GroupJoin(subList,
+ l => l.PKId, r => r.PARENT_ID,
+ (l, r) =>
+ {
+ var currList = r.ToList();
+
+ if (currList.Count > 0)
+ {
+ l.SubList = currList.Select(x => {
+
+ var subModel = new ServiceWorkFlowActivitiesRunSubDto
+ {
+ PKId = x.PK_ID,
+ ActDate = x.ACT_DATE,
+ ActId = x.ACT_ID,
+ ExecSortNo = x.EXEC_SORT_NO,
+ ActVal = x.ACT_VAL,
+ IsStart = x.IS_START,
+ IsEnd = x.IS_END,
+ IsYield = x.IS_YIELD,
+ RunId = x.RUN_ID,
+ ShowName = x.SHOW_NAME,
+ SourceType = x.SOURCE_TYPE,
+ StatusSKUCode = x.STATUS_SKU_CODE,
+ StatusSKUId = x.STATUS_SKU_ID
+ };
+
+ return subModel;
+ }).OrderBy(x => x.ExecSortNo).ToList();
+ }
+
+ return l;
+ }).OrderBy(t => t.ExecSortNo).ToList();
+
+ return showModel;
+ }).ToList();
+
+ result.succ = true;
+ result.ext = resultList;
+ }
+ catch (Exception ex)
+ {
+ result.succ = false;
+ result.msg = $"单票所有相关服务项目查询失败,原因:{ex.Message}";
+ }
+
+ return result;
}
+ #endregion
#region 查询订舱表查询用户和租户信息
///