From 595df5dac0a782bfdadab766b4dd62d326b0a383 Mon Sep 17 00:00:00 2001
From: 小飞侠 <8277136+liaoxujun@user.noreply.gitee.com>
Date: 星期二, 21 十月 2025 14:53:04 +0800
Subject: [PATCH] 增加川印设备维修回写
---
cylsg/cylsg.Application/CyOS/CyOSBaoXiaoJingLiController.cs | 153 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 152 insertions(+), 1 deletions(-)
diff --git a/cylsg/cylsg.Application/CyOS/CyOSBaoXiaoJingLiController.cs b/cylsg/cylsg.Application/CyOS/CyOSBaoXiaoJingLiController.cs
index c4aa2a1..821e15c 100644
--- a/cylsg/cylsg.Application/CyOS/CyOSBaoXiaoJingLiController.cs
+++ b/cylsg/cylsg.Application/CyOS/CyOSBaoXiaoJingLiController.cs
@@ -1,5 +1,6 @@
锘縰sing cylsg.Model.ECTEModel;
using cylsg.Model.utilityViewModel;
+using cylsg.utility.Extend;
using ECTESTOA;
using Furion.LinqBuilder;
using Models;
@@ -16,6 +17,7 @@
/// 宸濆嵃鎶ラ攢缁忕悊API
/// </summary>
[Authorize]
+ [ApiDescriptionSettings("CYOA")]
public class CyOSBaoXiaoJingLiController: IDynamicApiController
{
private readonly IOAServices _OAServices;
@@ -42,6 +44,7 @@
Expression<Func<OaWorkPlan, bool>> SearchList = (x) => true;
//宸濆嵃宸ヤ綔鍗�
+ SearchList = SearchList.And(x => x.ApprovalStatus != PlanStatusType.Uncommitted);
SearchList = SearchList.And(x => x.MemberId == _OAServices.firmId);
SearchList = SearchList.And(x => x.PlanType == 3);
SearchList = SearchList.And(x => x.PlanDataType == 17);
@@ -135,6 +138,10 @@
throw Oops.Oh("娌℃湁鎵惧埌鎶ラ攢鍗�");
if ( data.ApprovalStatus != PlanStatusType.unApproval)
throw Oops.Oh("鎶ラ攢鍗曞凡缁忔壒澶嶅畬姣�");
+ if (data.ApprovalStatus == PlanStatusType.Uncommitted)
+ {
+ throw Oops.Oh("鎶ラ攢鍗曟湭鎻愪氦涓嶅彲瀹℃壒");
+ }
OaWorkPlanShenpi shenpi = data.OaWorkPlanShenpis.Where(x => x.ApprovalStaffId == Permissions.MemberId&&x.Buzhou==2).FirstOrDefault();
await _SugarClient.AsTenant().BeginTranAsync();
try
@@ -159,7 +166,7 @@
ApprovalContent = param.ApprovalContent,
ApprovalStatus = param.ApprovalStatus,
ApprovalTime = DateTime.Now,
- ///鎬荤粡鐞嗗鎵逛负2
+ //鎬荤粡鐞嗗鎵逛负2
Buzhou = 2,
CreateTime = DateTime.Now,
Operator = Permissions.Name,
@@ -168,6 +175,17 @@
};
await _SugarClient.Insertable(shenpi).ExecuteCommandAsync();
}
+ if(!(param.RewardResult?.isPureNum()==true))
+ {
+ throw Oops.Oh("绉戠洰閫夋嫨閿欒");
+ }
+ //瀹℃壒鏃跺彲淇敼鍐呭
+ data.RewardResult = param.RewardResult;
+ data.PlanContent = param.PlanContent;
+ if(param.PlanMoney>0&¶m.PlanMoney<=data.PlanMoney)
+ data.PlanMoney = param.PlanMoney;
+
+
data.ApprovalTime = DateTime.Now;
data.ApprovalStatus = param.ApprovalStatus;
@@ -178,6 +196,15 @@
await _SugarClient.Updateable(data).ExecuteCommandAsync();
+
+ //璁剧疆璁惧weixiu鐘舵�佷负鎷掔粷
+ var shenpis = await _SugarClient.Queryable<OA_ShebeiWeixiu>().Where(x => x.FukuanShebeiId == data.Keyid).FirstAsync();
+ if (shenpis != null)
+ {
+ shenpis.ApprovalStatus =(int ) data.ApprovalStatus;
+
+ await _SugarClient.Updateable(shenpis).ExecuteCommandAsync();
+ }
await _SugarClient.AsTenant().CommitTranAsync();
return true;
}
@@ -187,6 +214,108 @@
await _SugarClient.AsTenant().RollbackTranAsync();
throw;
}
+
+ }
+
+ /// <summary>
+ /// 鎵归噺瀹℃壒
+ /// </summary>
+ [HttpPost]
+ public async Task<bool> BatchShenPi(BatchShenPiIn param)
+ {
+ if (param.ApprovalStatus == PlanStatusType.unApproval)
+ throw Oops.Oh("涓嶅彲璁剧疆涓烘湭瀹℃壒鐘舵��");
+ if (!param.OA_WorkPlanIds.Any())
+ throw Oops.Oh("鏈�変腑浠讳綍鎶ラ攢鍗�");
+ if (!await CheckRols())
+ {
+ throw Oops.Oh("娌℃湁鏉冮檺");
+ }
+
+ var dataList = await _SugarClient.Queryable<OaWorkPlan>().Includes(x => x.OaWorkPlanShenpis).In(param.OA_WorkPlanIds).ToListAsync();
+ if (dataList == null||dataList.Count==0)
+ throw Oops.Oh("娌℃湁鎵惧埌鎶ラ攢鍗�");
+ try
+ {
+ await _SugarClient.AsTenant().BeginTranAsync();
+ foreach (var item in dataList)
+ {
+ if (item.ApprovalStatus != PlanStatusType.unApproval)
+ {
+ await _SugarClient.AsTenant().RollbackTranAsync();
+ throw Oops.Oh($"{item.SentStaff.Name} 鐨勬姤閿�鍗�:{item.PlanContent}---宸茬粡鎵瑰瀹屾瘯锛岀粓姝㈡湰娆℃搷浣�");
+ }
+ if (item.ApprovalStatus == PlanStatusType.Uncommitted)
+ {
+ await _SugarClient.AsTenant().RollbackTranAsync();
+ throw Oops.Oh($"{item.SentStaff.Name} 鐨勬姤閿�鍗�:{item.PlanContent}---宸茬粡鏈彁浜ゆ垨鑰呮湭瀹屾垚鍓嶇疆瀹℃壒锛岀粓姝㈡湰娆℃搷浣�");
+ }
+ if( item.OaWorkPlanShenpis.Where(x=>x.Buzhou == 1&&x.ApprovalStatus== PlanStatusType.Yes).Count()<2)
+ {
+ await _SugarClient.AsTenant().RollbackTranAsync();
+ throw Oops.Oh($"{item.SentStaff.Name} 鐨勬姤閿�鍗�:{item.PlanContent}---鏈畬鎴愬墠缃鎵癸紝缁堟鏈鎿嶄綔");
+ }
+ OaWorkPlanShenpi shenpi = item.OaWorkPlanShenpis.Where(x => x.ApprovalStaffId == Permissions.MemberId && x.Buzhou == 2).FirstOrDefault();
+ if (shenpi != null)
+ {
+ await _SugarClient.AsTenant().RollbackTranAsync();
+ //宸茬粡鎵瑰
+ throw Oops.Oh($"{item.SentStaff.Name} 鐨勬姤閿�鍗�:{item.PlanContent} ----鎶ラ攢鍗曞凡缁忔壒澶嶅畬姣� 涓嶅彲鏇存敼,鎿嶄綔缁堟");
+
+
+ }
+ else
+ {
+ shenpi = new OaWorkPlanShenpi()
+ {
+ ApprovalStaffId = Permissions.MemberId,
+ ApprovalContent = param.ApprovalContent,
+ ApprovalStatus = param.ApprovalStatus,
+ ApprovalTime = DateTime.Now,
+ //鎬荤粡鐞嗗鎵逛负2
+ Buzhou = 2,
+ CreateTime = DateTime.Now,
+ Operator = Permissions.Name,
+ OA_WorkPlanId = item.Keyid,
+
+ };
+ await _SugarClient.Insertable(shenpi).ExecuteCommandAsync();
+ }
+
+ //瀹℃壒鏃跺彲淇敼鍐呭
+
+
+
+
+
+ item.ApprovalTime = DateTime.Now;
+ item.ApprovalStatus = param.ApprovalStatus;
+ item.ApprovalContent = param.ApprovalContent;
+ item.LastUpdateTime = DateTime.Now;
+
+ //璁剧疆璁惧weixiu鐘舵��
+ var shenpis = await _SugarClient.Queryable<OA_ShebeiWeixiu>().Where(x => x.FukuanShebeiId == item.Keyid).FirstAsync();
+ if (shenpis != null)
+ {
+ shenpis.ApprovalStatus = (int)item.ApprovalStatus;
+
+ await _SugarClient.Updateable(shenpis).ExecuteCommandAsync();
+ }
+
+
+ await _SugarClient.Updateable(item).ExecuteCommandAsync();
+
+ }
+ await _SugarClient.AsTenant().CommitTranAsync();
+ return true;
+ }
+ catch (Exception)
+ {
+ await _SugarClient.AsTenant().RollbackTranAsync();
+ throw;
+ }
+
+
}
@@ -210,5 +339,27 @@
return false;
}
}
+ /// <summary>
+ /// 鎵归噺瀹℃壒鍙傛暟
+ /// </summary>
+ public class BatchShenPiIn
+ {
+ /// <summary>
+ /// 宸ヤ綔璁″垝ID 鎶ラ攢鍗旾D
+ /// </summary>
+ [Required]
+ public int[] OA_WorkPlanIds { get; set; }
+
+ /// <summary>
+ /// 瀹℃壒鐘舵��
+ /// </summary>
+ [Required]
+ public PlanStatusType? ApprovalStatus { get; set; }
+
+ /// <summary>
+ /// 瀹℃壒鍐呭
+ /// </summary>
+ public string ApprovalContent { get; set; }
+ }
}
--
Gitblit v1.9.1