From ac8cd71489628366930b48ed650e2559ec98d339 Mon Sep 17 00:00:00 2001 From: 啊鑫 <t2856754968@163.com> Date: 星期五, 15 十一月 2024 15:24:50 +0800 Subject: [PATCH] 来料入库检 --- entity/MesQaIqc.cs | 91 ++ entity/MesQaItemsDetect01.cs | 397 +++++++++++ entity/MesQaItemsDetectDetail5.cs | 194 +++++ entity/LLJView.cs | 157 ++++ entity/QsItemOqcReq.cs | 105 +++ Dto/service/LLJDto.cs | 36 + NewPdaSqlServer.csproj | 4 entity/MesQaItemsDetectDetail12.cs | 76 ++ Dto/service/XJPageResult.cs | 11 Controllers/QC/LljController.cs | 276 ++++++++ Dto/service/ResultClass.cs | 7 service/QC/LljService.cs | 683 ++++++++++++++++++++ 12 files changed, 2,033 insertions(+), 4 deletions(-) diff --git a/Controllers/QC/LljController.cs b/Controllers/QC/LljController.cs new file mode 100644 index 0000000..553b613 --- /dev/null +++ b/Controllers/QC/LljController.cs @@ -0,0 +1,276 @@ +锘縰sing System.Dynamic; +using Microsoft.AspNetCore.Mvc; +using NewPdaSqlServer.Dto.service; +using NewPdaSqlServer.entity; +using NewPdaSqlServer.service.QC; +using NewPdaSqlServer.util; +using Newtonsoft.Json.Linq; + +namespace NewPdaSqlServer.Controllers.QC; + +[Route("api/[controller]")] +[ApiController] +public class LljController : ControllerBase +{ + [HttpPost("getPage")] + public ResponseResult getPage([FromBody] XJPageResult queryObj) + { + try + { + dynamic resultInfos = new ExpandoObject(); + var (item, totalCount) = new LljService().GetPage(queryObj); + var tbBillList = + resultInfos.tbBillList = item; + return new ResponseResult + { + status = 0, + message = "OK", + data = resultInfos, + TotalCount = totalCount + }; + } + catch (Exception ex) + { + return ResponseResult.ResponseError(ex); + } + } + + + [HttpPost("setJYItem")] + public ResponseResult setJYItem([FromBody] JObject data) + { + var itemNo = data["itemNo"].ToString(); + var quantity = Convert.ToDecimal(data["quantity"].ToString()); + var releaseNo = data["releaseNo"].ToString(); + try + { + dynamic resultInfos = new ExpandoObject(); + var tbBillList = + new LljService().SetItems(itemNo, quantity, releaseNo); + resultInfos.tbBillList = tbBillList; + return new ResponseResult + { + status = 0, + message = "OK", + data = resultInfos + }; + } + catch (Exception ex) + { + return ResponseResult.ResponseError(ex); + } + } + + [HttpPost("saveItem")] + public ResponseResult saveItem([FromBody] LLJDto lljDto) + { + try + { + dynamic resultInfos = new ExpandoObject(); + var tbBillList = + new LljService().saveItem(lljDto); + resultInfos.tbBillList = tbBillList; + return new ResponseResult + { + status = 0, + message = "OK", + data = resultInfos + }; + } + catch (Exception ex) + { + return ResponseResult.ResponseError(ex); + } + } + + //getItems + [HttpPost("getJYItem")] + public ResponseResult getJYItem([FromBody] JObject data) + { + var id = data["id"]?.ToString(); + var releaseNo = data["releaseNo"]?.ToString(); + try + { + dynamic resultInfos = new ExpandoObject(); + var tbBillList = + new LljService().GetItems(releaseNo, + Convert.ToDecimal(id)); + resultInfos.tbBillList = tbBillList; + return new ResponseResult + { + status = 0, + message = "OK", + data = resultInfos + }; + } + catch (Exception ex) + { + return ResponseResult.ResponseError(ex); + } + } + + //getXjDetail02ById + [HttpPost("getXjDetail02ById")] + public ResponseResult getXjDetail02ById([FromBody] JObject data) + { + var id = data["id"]?.ToString(); + + try + { + dynamic resultInfos = new ExpandoObject(); + var tbBillList = + new LljService().getXjDetail02ById(id); + resultInfos.tbBillList = tbBillList; + return new ResponseResult + { + status = 0, + message = "OK", + data = resultInfos + }; + } + catch (Exception ex) + { + return ResponseResult.ResponseError(ex); + } + } + + + [HttpPost("SetQSItemDetail")] + public ResponseResult SetQSItemDetail( + [FromBody] MesQaItemsDetectDetail12 detail) + { + try + { + dynamic resultInfos = new ExpandoObject(); + var tbBillList = new LljService(); + var detail021 = tbBillList.SetQSItemDetail(detail); + resultInfos.tbBillList = detail021; + return new ResponseResult + { + status = 0, + message = "OK", + data = resultInfos + }; + } + catch (Exception ex) + { + return ResponseResult.ResponseError(ex); + } + } + + [HttpPost("UpdateQSItemDetail")] + public ResponseResult UpdateQSItemDetail( + [FromBody] MesQaItemsDetectDetail12 detail) + { + try + { + dynamic resultInfos = new ExpandoObject(); + var tbBillList = new LljService(); + var detail021 = tbBillList.UpdateQSItemDetail(detail); + resultInfos.tbBillList = detail021; + return new ResponseResult + { + status = 0, + message = "OK", + data = resultInfos + }; + } + catch (Exception ex) + { + return ResponseResult.ResponseError(ex); + } + } + + //saveRemarksGid 涓昏〃娣诲姞涓嶅悎鏍兼弿杩� + [HttpPost("saveRemarksGid")] + public ResponseResult saveRemarksGid([FromBody] LLJDto rkjDto) + { + try + { + dynamic resultInfos = new ExpandoObject(); + var tbBillList = + new LljService().saveRemarksGid(rkjDto); + resultInfos.tbBillList = tbBillList; + return new ResponseResult + { + status = 0, + message = "OK", + data = resultInfos + }; + } + catch (Exception ex) + { + return ResponseResult.ResponseError(ex); + } + } + + //saveRemarksPid 瀛愯〃娣诲姞涓嶅悎鏍兼弿杩� + [HttpPost("saveRemarksPid")] + public ResponseResult saveRemarksPid([FromBody] LLJDto rkjDto) + { + try + { + dynamic resultInfos = new ExpandoObject(); + var tbBillList = + new LljService().saveRemarksPid(rkjDto); + resultInfos.tbBillList = tbBillList; + return new ResponseResult + { + status = 0, + message = "OK", + data = resultInfos + }; + } + catch (Exception ex) + { + return ResponseResult.ResponseError(ex); + } + } + + //removeXJ 鍒犻櫎 + [HttpPost("removeXJ")] + public ResponseResult removeXJ([FromBody] JObject data) + { + var releaseNo = data["releaseNo"]?.ToString(); + try + { + dynamic resultInfos = new ExpandoObject(); + var tbBillList = + new LljService().removeXJ(releaseNo); + resultInfos.tbBillList = tbBillList; + return new ResponseResult + { + status = 0, + message = "OK", + data = resultInfos + }; + } + catch (Exception ex) + { + return ResponseResult.ResponseError(ex); + } + } + + //IqcQaSubmit + [HttpPost("IqcQaSubmit")] + public ResponseResult IqcQaSubmit(LLJDto rkjDto) + { + try + { + dynamic resultInfos = new ExpandoObject(); + var tbBillList = + new LljService().IqcQaSubmit(rkjDto); + resultInfos.tbBillList = tbBillList; + return new ResponseResult + { + status = 0, + message = "OK", + data = resultInfos + }; + } + catch (Exception ex) + { + return ResponseResult.ResponseError(ex); + } + } +} \ No newline at end of file diff --git a/Dto/service/LLJDto.cs b/Dto/service/LLJDto.cs new file mode 100644 index 0000000..10a2f7c --- /dev/null +++ b/Dto/service/LLJDto.cs @@ -0,0 +1,36 @@ +锘縰sing NewPdaSqlServer.entity; + +namespace NewPdaSqlServer.Dto.service; + +public class LLJDto +{ + public string? userNo { get; set; } + + //妫�楠屽崟鍙� + public string? releaseNo { get; set; } + + //涓昏〃id + public string? gid { get; set; } + + //瀛愯〃id + public string? pid { get; set; } + + //瀛欒〃id + public string? id { get; set; } + + //澶囨敞 + public string? Remarks { get; set; } + + //========================================== + //宸℃涓诲瓙琛ㄩ渶瑕佺殑鏁版嵁 + public QsItemOqcReq? from { get; set; } + + public List<MesQaItemsDetectDetail5>? items { get; set; } + + //========================================== + //宸℃瀛愬瓩琛ㄩ渶瑕佺殑鏁版嵁 + + public MesQaItemsDetectDetail5? ItemXj01 { get; set; } + + public List<MesQaItemsDetectDetail12>? ItemXj02s { get; set; } +} \ No newline at end of file diff --git a/Dto/service/ResultClass.cs b/Dto/service/ResultClass.cs new file mode 100644 index 0000000..72bd2b7 --- /dev/null +++ b/Dto/service/ResultClass.cs @@ -0,0 +1,7 @@ +锘縩amespace NewPdaSqlServer.Dto.service; + +public class ResultClass +{ + public decimal FSAMPLE_SIZE_WORD { get; set; } + public decimal Result { get; set; } +} \ No newline at end of file diff --git a/Dto/service/XJPageResult.cs b/Dto/service/XJPageResult.cs new file mode 100644 index 0000000..385520d --- /dev/null +++ b/Dto/service/XJPageResult.cs @@ -0,0 +1,11 @@ +锘縰sing NewPdaSqlServer.Dto.@base; + +namespace NewPdaSqlServer.Dto.service; + +public class XJPageResult : Page +{ + public string? createUser { get; set; } + public string? result { get; set; } + + public string? id { get; set; } +} \ No newline at end of file diff --git a/NewPdaSqlServer.csproj b/NewPdaSqlServer.csproj index 095432a..55d24ed 100644 --- a/NewPdaSqlServer.csproj +++ b/NewPdaSqlServer.csproj @@ -13,8 +13,4 @@ <PackageReference Include="Swashbuckle.AspNetCore" Version="6.8.0" /> </ItemGroup> - <ItemGroup> - <Folder Include="Dto\" /> - </ItemGroup> - </Project> diff --git a/entity/LLJView.cs b/entity/LLJView.cs new file mode 100644 index 0000000..11013c8 --- /dev/null +++ b/entity/LLJView.cs @@ -0,0 +1,157 @@ +锘縰sing SqlSugar; + +namespace NewPdaSqlServer.entity; + +/// <summary> +/// 鏁版嵁婧愬鍏� +/// </summary> +[SugarTable("V_LLJ")] +public class LLJView +{ + /// <summary> + /// + ///</summary> + [SugarColumn(ColumnName = "guid")] + public Guid guid { get; set; } + + [SugarColumn(ColumnName = "fsubmit")] + public int? fsubmit{ get; set; } + + /// <summary> + /// 瀹℃牳鏍囪瘑 + /// </summary> + [SugarColumn(ColumnName = "MODIFY1_FLAG")] + public decimal? Modify1Flag { get; set; } + + /// <summary> + /// 閫佹鎵规 + /// </summary> + [SugarColumn(ColumnName = "LOT_NO")] + public string LotNo { get; set; } + + /// <summary> + /// 澶勭悊鏂规硶 + /// </summary> + [SugarColumn(ColumnName = "FNG_HANDLE")] + public string FngHandle { get; set; } + + /// <summary> + /// 鐗╂枡鐗堟湰 + /// </summary> + [SugarColumn(ColumnName = "FVERSION")] + public decimal? Fversion { get; set; } + + /// <summary> + /// 澶囨敞淇℃伅 + /// </summary> + [SugarColumn(ColumnName = "LOT_NO1")] + public string LotNo1 { get; set; } + + /// <summary> + /// 杞崲鏁伴噺 + /// </summary> + [SugarColumn(ColumnName = "FCOVERT_QTY")] + public string FcovertQty { get; set; } + + /// <summary> + /// 妫�楠岀粨鏋� + /// </summary> + [SugarColumn(ColumnName = "FCHECK_RESU")] + public string FcheckResu { get; set; } + + /// <summary> + /// 渚涘簲鍟嗙紪鐮� + /// </summary> + [SugarColumn(ColumnName = "SUPP_NO")] + public string SuppNo { get; set; } + + /// <summary> + /// 妫�楠屽崟鍙� + /// </summary> + [SugarColumn(ColumnName = "RELEASE_NO")] + public string ReleaseNo { get; set; } + + /// <summary> + /// 閲囪喘鏁伴噺 + /// </summary> + [SugarColumn(ColumnName = "FBATCH_QTY")] + public string FbatchQty { get; set; } + + /// <summary> + /// 鐗╂枡缂栫爜 + /// </summary> + [SugarColumn(ColumnName = "ITEM_NO")] + public string ItemNo { get; set; } + + /// <summary> + /// 妫�楠屼汉鍛� + /// </summary> + [SugarColumn(ColumnName = "FCHECK_BY")] + public string FcheckBy { get; set; } + + /// <summary> + /// 涓嶈壇鎻忚堪 + /// </summary> + [SugarColumn(ColumnName = "FNG_DESC")] + public string FngDesc { get; set; } + + /// <summary> + /// 鍒涘缓浜� + /// </summary> + [SugarColumn(ColumnName = "CREATE_BY")] + public string CreateBy { get; set; } + + /// <summary> + /// 鍒涘缓鏃堕棿 + /// </summary> + [SugarColumn(ColumnName = "CREATE_DATE")] + public string CreateDate { get; set; } + + /// <summary> + /// 鏄惁鎬ユ枡 + /// </summary> + [SugarColumn(ColumnName = "URGENT_FLAG")] + public short? UrgentFlag { get; set; } + + /// <summary> + /// 鐗╂枡鍚嶇О + /// </summary> + [SugarColumn(ColumnName = "ITEM_NAME")] + public string ItemName { get; set; } + + /// <summary> + /// 妫�楠岀被鍨� + /// </summary> + [SugarColumn(ColumnName = "QATYPE")] + public string Qatype { get; set; } + + /// <summary> + /// 妫�楠屾棩鏈� + /// </summary> + [SugarColumn(ColumnName = "DATE_01")] + public string Date01 { get; set; } + + /// <summary> + /// 渚涘簲鍟嗗悕绉� + /// </summary> + [SugarColumn(ColumnName = "SUPP_NAME")] + public string SuppName { get; set; } + + /// <summary> + /// 鐗╂枡瑙勬牸 + /// </summary> + [SugarColumn(ColumnName = "ITEM_MODEL")] + public string ItemModel { get; set; } + + /// <summary> + /// 鍗曟嵁鐘舵�� + /// </summary> + [SugarColumn(ColumnName = "STATUS")] + public string STATUS { get; set; } + + /// <summary> + /// 濮斿鏍囪瘑锛�0锛氶噰璐� 銆�1锛氬澶栵級 + /// </summary> + [SugarColumn(ColumnName = "F_TYPE")] + public bool? Ftype { get; set; } +} \ No newline at end of file diff --git a/entity/MesQaIqc.cs b/entity/MesQaIqc.cs new file mode 100644 index 0000000..35177e0 --- /dev/null +++ b/entity/MesQaIqc.cs @@ -0,0 +1,91 @@ +锘縰sing SqlSugar; + +namespace NewPdaSqlServer.entity; + +/// <summary> +/// 鏁版嵁婧愬鍏� +/// </summary> +[SugarTable("Mes_Qa_Iqc")] +public class MesQaIqc +{ + /// <summary> + /// 鐗╂枡id + /// </summary> + [SugarColumn(ColumnName = "ITEM_ID")] + public string ItemId { get; set; } + + /// <summary> + /// 鐗╂枡缂栫爜 + /// </summary> + [SugarColumn(ColumnName = "ITEM_NO")] + public string ItemNo { get; set; } + + /// <summary> + /// 鎺ユ敹姘村钩 + /// </summary> + [SugarColumn(ColumnName = "FAC_LEVEL")] + public string FacLevel { get; set; } + + /// <summary> + /// 妫�楠岄」鐩� + /// </summary> + [SugarColumn(ColumnName = "FCHECK_ITEM")] + public string FcheckItem { get; set; } + + /// <summary> + /// 妫�楠屽伐鍏� + /// </summary> + [SugarColumn(ColumnName = "FCHECK_TOOL")] + public string FcheckTool { get; set; } + + /// <summary> + /// 涓嬮檺 + /// </summary> + [SugarColumn(ColumnName = "FDOWN_ALLOW")] + public string FdownAllow { get; set; } + + /// <summary> + /// 妫�楠屾按骞� + /// </summary> + [SugarColumn(ColumnName = "FREQUENCY")] + public string FREQUENCY { get; set; } + + /// <summary> + /// 鏍囧噯 + /// </summary> + [SugarColumn(ColumnName = "FSTAND")] + public string FSTAND { get; set; } + + /// <summary> + /// 涓婇檺 + /// </summary> + [SugarColumn(ColumnName = "FUP_ALLOW")] + public string FupAllow { get; set; } + + /// <summary> + /// 妫�楠屾按鍑嗙紪鐮� + /// </summary> + [SugarColumn(ColumnName = "SAMPLE_SIZE_NO")] + public string SampleSizeNo { get; set; } + + /// <summary> + /// 瑙勬牸瑕佹眰 + /// </summary> + [SugarColumn(ColumnName = "FSPEC_REQU")] + public string FspecRequ { get; set; } + + /// <summary> + /// </summary> + [SugarColumn(ColumnName = "ISENABLED")] + public short? ISENABLED { get; set; } + + /// <summary> + /// </summary> + [SugarColumn(ColumnName = "EE")] + public short? EE { get; set; } + + /// <summary> + /// </summary> + [SugarColumn(ColumnName = "FTYPE")] + public string FTYPE { get; set; } +} \ No newline at end of file diff --git a/entity/MesQaItemsDetect01.cs b/entity/MesQaItemsDetect01.cs new file mode 100644 index 0000000..1040d23 --- /dev/null +++ b/entity/MesQaItemsDetect01.cs @@ -0,0 +1,397 @@ +锘縰sing SqlSugar; + +namespace NewPdaSqlServer.entity +{ + /// <summary> + /// + ///</summary> + [SugarTable("MES_QA_ITEMS_DETECT_01")] + public class MesQaItemsDetect01 + { + /// <summary> + /// + /// 榛樿鍊�: (newid()) + ///</summary> + [SugarColumn(ColumnName = "guid", IsPrimaryKey = true)] + public Guid Guid { get; set; } + + /// <summary> + /// + ///</summary> + [SugarColumn(ColumnName = "about_Guid")] + public Guid? AboutGuid { get; set; } + + /// <summary> + /// 妫�楠屽崟鍙� + ///</summary> + [SugarColumn(ColumnName = "release_no")] + public string ReleaseNo { get; set; } + + /// <summary> + /// 妫�楠屾棩鏈� + ///</summary> + [SugarColumn(ColumnName = "fcheck_date")] + public DateTime? FcheckDate { get; set; } + + /// <summary> + /// 妫�楠屼汉鍛� + ///</summary> + [SugarColumn(ColumnName = "fcheck_by")] + public string FcheckBy { get; set; } + + /// <summary> + /// 鐗╂枡缂栫爜 + ///</summary> + [SugarColumn(ColumnName = "item_no")] + public string ItemNo { get; set; } + + /// <summary> + /// 鏉ユ枡鏁伴噺 + ///</summary> + [SugarColumn(ColumnName = "fbatch_qty")] + public decimal? FbatchQty { get; set; } + + /// <summary> + /// 鍒ゅ畾缁撴灉 + ///</summary> + [SugarColumn(ColumnName = "frece_qty")] + public string FreceQty { get; set; } + + /// <summary> + /// 渚涘簲鍟咺D + ///</summary> + [SugarColumn(ColumnName = "supp_id")] + public string SuppId { get; set; } + + /// <summary> + /// + ///</summary> + [SugarColumn(ColumnName = "fng_desc")] + public string FngDesc { get; set; } + + /// <summary> + /// 妫�楠岀粨鏋� + ///</summary> + [SugarColumn(ColumnName = "fcheck_resu")] + public string FcheckResu { get; set; } + + /// <summary> + /// + ///</summary> + [SugarColumn(ColumnName = "freview")] + public string Freview { get; set; } + + /// <summary> + /// 妫�楠屾按鍑� + ///</summary> + [SugarColumn(ColumnName = "sample_size_no")] + public string SampleSizeNo { get; set; } + + /// <summary> + /// 妫�楠屾按骞� + ///</summary> + [SugarColumn(ColumnName = "fcheck_level")] + public string FcheckLevel { get; set; } + + /// <summary> + /// 鎷掓敹姘村钩 + ///</summary> + [SugarColumn(ColumnName = "fac_level")] + public string FacLevel { get; set; } + + /// <summary> + /// 鎶芥鏁伴噺 + ///</summary> + [SugarColumn(ColumnName = "check_qty")] + public string CheckQty { get; set; } + + /// <summary> + /// 鎵规鍙� --鍒拌揣鍗曞彿 + ///</summary> + [SugarColumn(ColumnName = "lot_no")] + public string LotNo { get; set; } + + /// <summary> + /// 鏄惁鎺ㄩ�� + ///</summary> + [SugarColumn(ColumnName = "fmove")] + public string Fmove { get; set; } + + /// <summary> + /// 鏄惁澶勭悊 + ///</summary> + [SugarColumn(ColumnName = "fhandle")] + public string Fhandle { get; set; } + + /// <summary> + /// 鍒涘缓浜� + ///</summary> + [SugarColumn(ColumnName = "create_by")] + public string CreateBy { get; set; } + + /// <summary> + /// 鍒涘缓鏃ユ湡 + ///</summary> + [SugarColumn(ColumnName = "create_date")] + public DateTime? CreateDate { get; set; } + + /// <summary> + /// 鏇存柊浜� + ///</summary> + [SugarColumn(ColumnName = "lastupdate_by")] + public string LastupdateBy { get; set; } + + /// <summary> + /// 鏇存柊鏃ユ湡 + ///</summary> + [SugarColumn(ColumnName = "lastupdate_date")] + public DateTime? LastupdateDate { get; set; } + + /// <summary> + /// 鏄惁瀹℃牳 + ///</summary> + [SugarColumn(ColumnName = "modify1_flag")] + public int? Modify1Flag { get; set; } + + /// <summary> + /// + ///</summary> + [SugarColumn(ColumnName = "modify1_by")] + public string Modify1By { get; set; } + + /// <summary> + /// + ///</summary> + [SugarColumn(ColumnName = "modify1_date")] + public DateTime? Modify1Date { get; set; } + + /// <summary> + /// + ///</summary> + [SugarColumn(ColumnName = "factory")] + public string Factory { get; set; } + + /// <summary> + /// XRF娴嬭瘯鎶ュ憡缂栧彿 + ///</summary> + [SugarColumn(ColumnName = "fcheck_repno")] + public string FcheckRepno { get; set; } + + /// <summary> + /// 绗笁鏂规姤鍛� + ///</summary> + [SugarColumn(ColumnName = "fthird_rep")] + public string FthirdRep { get; set; } + + /// <summary> + /// 鏄惁浣滃簾 + ///</summary> + [SugarColumn(ColumnName = "fcancel")] + public int? Fcancel { get; set; } + + /// <summary> + /// 鎻愪氦鏍囪瘑 + ///</summary> + [SugarColumn(ColumnName = "fsubmit")] + public int? Fsubmit { get; set; } + + /// <summary> + /// 妫�楠屼緷鎹� + ///</summary> + [SugarColumn(ColumnName = "fcheck_accord")] + public string FcheckAccord { get; set; } + + /// <summary> + /// 绫诲瀷(0 鏉ユ枡 1 鍦ㄥ簱) + ///</summary> + [SugarColumn(ColumnName = "ftype")] + public int? Ftype { get; set; } + + /// <summary> + /// 鍗曚綅 + ///</summary> + [SugarColumn(ColumnName = "item_unit")] + public string ItemUnit { get; set; } + + /// <summary> + /// 鍑鸿揣鏃ユ湡 + ///</summary> + [SugarColumn(ColumnName = "out_date")] + public string OutDate { get; set; } + + /// <summary> + /// 鏄惁鍏嶆 + ///</summary> + [SugarColumn(ColumnName = "fexemption")] + public int? Fexemption { get; set; } + + /// <summary> + /// 妗d綅鏍囧噯 + ///</summary> + [SugarColumn(ColumnName = "fgear_stand")] + public string FgearStand { get; set; } + + /// <summary> + /// 涓嶈壇澶勭悊鏂规硶 + ///</summary> + [SugarColumn(ColumnName = "fng_handle")] + public string FngHandle { get; set; } + + /// <summary> + /// 绠$悊缂栧彿 + ///</summary> + [SugarColumn(ColumnName = "fmanage_no")] + public string FmanageNo { get; set; } + + /// <summary> + /// 杞崲鏁伴噺 + ///</summary> + [SugarColumn(ColumnName = "fcovert_qty")] + public string FcovertQty { get; set; } + + /// <summary> + /// 鐗堟湰 + ///</summary> + [SugarColumn(ColumnName = "fversion")] + public int? Fversion { get; set; } + + /// <summary> + /// + ///</summary> + [SugarColumn(ColumnName = "company")] + public string Company { get; set; } + + /// <summary> + /// + ///</summary> + [SugarColumn(ColumnName = "fsecond_resu")] + public string FsecondResu { get; set; } + + /// <summary> + /// 鏈�澶ф娊妫�鏁� + ///</summary> + [SugarColumn(ColumnName = "max_check_qty")] + public int? MaxCheckQty { get; set; } + + /// <summary> + /// 鐗瑰畾淇敼鏄惁瀹℃牳 + ///</summary> + [SugarColumn(ColumnName = "modify1_flag1")] + public int? Modify1Flag1 { get; set; } + + /// <summary> + /// 鐗瑰畾淇敼瀹℃牳浜� + ///</summary> + [SugarColumn(ColumnName = "modify1_by1")] + public string Modify1By1 { get; set; } + + /// <summary> + /// 鐗瑰畾淇敼瀹℃牳鏃堕棿 + ///</summary> + [SugarColumn(ColumnName = "modify1_date1")] + public DateTime? Modify1Date1 { get; set; } + + /// <summary> + /// 灏忔壒娆″彿 + ///</summary> + [SugarColumn(ColumnName = "lot_no1")] + public string LotNo1 { get; set; } + + /// <summary> + /// 閲囪喘鍗曞彿 + ///</summary> + [SugarColumn(ColumnName = "lot_no2")] + public string LotNo2 { get; set; } + + /// <summary> + /// 浜у搧鍨嬪彿 + ///</summary> + [SugarColumn(ColumnName = "board_style")] + public string BoardStyle { get; set; } + + /// <summary> + /// 浠诲姟鍗曞彿 + ///</summary> + [SugarColumn(ColumnName = "work_no")] + public string WorkNo { get; set; } + + /// <summary> + /// 鍒拌揣鏃堕棿 + ///</summary> + [SugarColumn(ColumnName = "dha018")] + public string Dha018 { get; set; } + + /// <summary> + /// 琛屽彿 + ///</summary> + [SugarColumn(ColumnName = "dhb002")] + public int? Dhb002 { get; set; } + + /// <summary> + /// 鍒拌揣鍗曞彿 + ///</summary> + [SugarColumn(ColumnName = "dhb001")] + public string Dhb001 { get; set; } + + /// <summary> + /// 渚涘簲鍟� + ///</summary> + [SugarColumn(ColumnName = "lifnr")] + public string Lifnr { get; set; } + + /// <summary> + /// 閫�鏂欐柟寮� + ///</summary> + [SugarColumn(ColumnName = "fmrmode")] + public string Fmrmode { get; set; } + + /// <summary> + /// erp杩斿洖淇℃伅 + ///</summary> + [SugarColumn(ColumnName = "msg")] + public string Msg { get; set; } + + /// <summary> + /// 鐘舵�� + ///</summary> + [SugarColumn(ColumnName = "states")] + public string States { get; set; } + + /// <summary> + /// IQC鎻愪氦鏃堕棿 + ///</summary> + [SugarColumn(ColumnName = "iqc_date")] + public DateTime? IqcDate { get; set; } + + /// <summary> + /// 閲囪喘璁㈠崟ID + ///</summary> + [SugarColumn(ColumnName = "ebeln_k3id")] + public int? EbelnK3id { get; set; } + + /// <summary> + /// 閲囪喘璁㈠崟琛孖D + ///</summary> + [SugarColumn(ColumnName = "line_k3id")] + public int? LineK3id { get; set; } + + /// <summary> + /// 璐ㄩ噺瀹℃牳鏍囪瘑 + /// 榛樿鍊�: ((0)) + ///</summary> + [SugarColumn(ColumnName = "quality_audit")] + public int? QualityAudit { get; set; } + + /// <summary> + /// 鐗╂枡ID + ///</summary> + [SugarColumn(ColumnName = "item_id")] + public int? ItemId { get; set; } + + /// <summary> + /// 涓嶈壇鎻忚堪 + ///</summary> + [SugarColumn(ColumnName = "remarks")] + public string Remarks { get; set; } + } +} \ No newline at end of file diff --git a/entity/MesQaItemsDetectDetail12.cs b/entity/MesQaItemsDetectDetail12.cs new file mode 100644 index 0000000..73da3ee --- /dev/null +++ b/entity/MesQaItemsDetectDetail12.cs @@ -0,0 +1,76 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace NewPdaSqlServer.entity +{ + /// <summary> + /// + ///</summary> + [SugarTable("MES_QA_ITEMS_DETECT_DETAIL12")] + public class MesQaItemsDetectDetail12 + { + /// <summary> + /// + ///</summary> + [SugarColumn(ColumnName = "guid", IsPrimaryKey = true)] + public Guid Guid { get; set; } + + /// <summary> + /// 鐖朵翰Guid + ///</summary> + [SugarColumn(ColumnName = "parent_guid")] + public Guid? ParentGuid { get; set; } + + /// <summary> + /// 鐖风埛Guid + ///</summary> + [SugarColumn(ColumnName = "grandpa_guid")] + public Guid? GrandpaGuid { get; set; } + + /// <summary> + /// 妫�楠岀粨鏋� + ///</summary> + [SugarColumn(ColumnName = "fcheck_resu")] + public string? FcheckResu { get; set; } + + /// <summary> + /// 妫�楠岄」鐩� + ///</summary> + [SugarColumn(ColumnName = "fcheck_item")] + public string? FcheckItem { get; set; } + + /// <summary> + /// 鐗╂枡鏉$爜 + ///</summary> + [SugarColumn(ColumnName = "item_barcode")] + public string? ItemBarcode { get; set; } + + /// <summary> + /// + ///</summary> + [SugarColumn(ColumnName = "create_date")] + public DateTime? CreateDate { get; set; } + + /// <summary> + /// 鍒ゅ畾鏍囧織 + ///</summary> + [SugarColumn(ColumnName = "fstand")] + public string? Fstand { get; set; } + + /// <summary> + /// 鐢熸垚浜� + ///</summary> + [SugarColumn(ColumnName = "lastupdate_by")] + public string? LastupdateBy { get; set; } + + /// <summary> + /// + ///</summary> + [SugarColumn(ColumnName = "create_by")] + public string? CreateBy { get; set; } + + [SugarColumn(IsIgnore = true)] public int? count { get; set; } + } +} \ No newline at end of file diff --git a/entity/MesQaItemsDetectDetail5.cs b/entity/MesQaItemsDetectDetail5.cs new file mode 100644 index 0000000..274d3bb --- /dev/null +++ b/entity/MesQaItemsDetectDetail5.cs @@ -0,0 +1,194 @@ +锘縰sing SqlSugar; + +namespace NewPdaSqlServer.entity +{ + /// <summary> + /// + ///</summary> + [SugarTable("MES_QA_ITEMS_DETECT_DETAIL5")] + public class MesQaItemsDetectDetail5 + { + /// <summary> + /// + ///</summary> + [SugarColumn(ColumnName = "guid", IsPrimaryKey = true)] + public Guid Guid { get; set; } + + /// <summary> + /// + ///</summary> + [SugarColumn(ColumnName = "parent_guid")] + public Guid? ParentGuid { get; set; } + + /// <summary> + /// 鏍囧噯鍊肩被鍨� + ///</summary> + [SugarColumn(ColumnName = "ftext_type")] + public string? FtextType { get; set; } + + /// <summary> + /// 鏍囧噯鍊� + ///</summary> + [SugarColumn(ColumnName = "fstand")] + public int? Fstand { get; set; } + + /// <summary> + /// 涓婂叕宸� + ///</summary> + [SugarColumn(ColumnName = "fup_allow")] + public string? FupAllow { get; set; } + + /// <summary> + /// 涓嬪叕宸� + ///</summary> + [SugarColumn(ColumnName = "fdown_allow")] + public string? FdownAllow { get; set; } + + /// <summary> + /// 妫�楠屾按鍑� + ///</summary> + [SugarColumn(ColumnName = "sample_size_no")] + public string? SampleSizeNo { get; set; } + + /// <summary> + /// 妫�楠屾按骞� + ///</summary> + [SugarColumn(ColumnName = "fcheck_level")] + public string? FcheckLevel { get; set; } + + /// <summary> + /// 鎷掓敹姘村钩 + ///</summary> + [SugarColumn(ColumnName = "fac_level")] + public string? FacLevel { get; set; } + + /// <summary> + /// 妫�楠岄」鐩� + ///</summary> + [SugarColumn(ColumnName = "fcheck_item")] + public string? FcheckItem { get; set; } + + /// <summary> + /// 瑙勬牸瑕佹眰 + ///</summary> + [SugarColumn(ColumnName = "fspec_requ")] + public string? FspecRequ { get; set; } + + /// <summary> + /// 鎶芥鏁伴噺 + ///</summary> + [SugarColumn(ColumnName = "check_qyt")] + public int? CheckQyt { get; set; } + + /// <summary> + /// 妫�楠岀粨鏋� + ///</summary> + [SugarColumn(ColumnName = "fcheck_resu")] + public string? FcheckResu { get; set; } + + /// <summary> + /// AC鏁伴噺 + ///</summary> + [SugarColumn(ColumnName = "fac_qty")] + public int? FacQty { get; set; } + + /// <summary> + /// RE鏁伴噺 + ///</summary> + [SugarColumn(ColumnName = "fre_qty")] + public int? FreQty { get; set; } + + /// <summary> + /// 涓嶅悎鏍兼暟 + ///</summary> + [SugarColumn(ColumnName = "fng_qty")] + public int? FngQty { get; set; } + + /// <summary> + /// 涓嶈壇鐜� + ///</summary> + [SugarColumn(ColumnName = "fng_rate")] + public decimal? FngRate { get; set; } + + /// <summary> + /// 宸插綍鍏ユ暟閲� + ///</summary> + [SugarColumn(ColumnName = "fenter_qty")] + public decimal? FenterQty { get; set; } + + /// <summary> + /// + ///</summary> + [SugarColumn(ColumnName = "release_no")] + public string? ReleaseNo { get; set; } + + /// <summary> + /// + ///</summary> + [SugarColumn(ColumnName = "company")] + public string? Company { get; set; } + + /// <summary> + /// + ///</summary> + [SugarColumn(ColumnName = "factory")] + public string? Factory { get; set; } + + /// <summary> + /// 妫�楠岄」鐩弿杩� + ///</summary> + [SugarColumn(ColumnName = "fcheck_item_desc")] + public string? FcheckItemDesc { get; set; } + + /// <summary> + /// 宸ュ簭鍙� + ///</summary> + [SugarColumn(ColumnName = "proc_no")] + public string? ProcNo { get; set; } + + /// <summary> + /// 宸ヤ綔涓績缂栫爜 + ///</summary> + [SugarColumn(ColumnName = "workshop_center_code")] + public string? WorkshopCenterCode { get; set; } + + /// <summary> + /// 鍗曚綅 + ///</summary> + [SugarColumn(ColumnName = "funit")] + public string? Funit { get; set; } + + /// <summary> + /// 鐗瑰畾淇敼 + /// 榛樿鍊�: ((0)) + ///</summary> + [SugarColumn(ColumnName = "given_modify")] + public int? GivenModify { get; set; } + + /// <summary> + /// 妫�楠屽伐鍏� + ///</summary> + [SugarColumn(ColumnName = "fcheck_tool")] + public string? FcheckTool { get; set; } + + /// <summary> + /// 鏇存柊浜� + ///</summary> + [SugarColumn(ColumnName = "lastupdate_by")] + public string? LastupdateBy { get; set; } + + /// <summary> + /// 鏇存柊鏃堕棿 + ///</summary> + [SugarColumn(ColumnName = "lastupdate_date")] + public DateTime? LastupdateDate { get; set; } + + /// <summary> + /// 涓嶅悎鏍兼弿杩� + ///</summary> + [SugarColumn(ColumnName = "remarks")] + public string? Remarks { get; set; } + + [SugarColumn(IsIgnore = true)] public int? Unqualified { get; set; } + } +} \ No newline at end of file diff --git a/entity/QsItemOqcReq.cs b/entity/QsItemOqcReq.cs new file mode 100644 index 0000000..337a7f1 --- /dev/null +++ b/entity/QsItemOqcReq.cs @@ -0,0 +1,105 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; +namespace NewPdaSqlServer.entity +{ + /// <summary> + /// 鍏ュ簱妫�妫�楠岃〃澶� + ///</summary> + [SugarTable("QS_ITEM_OQC_REQ")] + public class QsItemOqcReq + { + /// <summary> + /// + /// 榛樿鍊�: (newid()) + ///</summary> + [SugarColumn(ColumnName="guid" ,IsPrimaryKey = true )] + public Guid Guid { get; set; } + /// <summary> + /// 妫�楠屽崟鍙� + ///</summary> + [SugarColumn(ColumnName="RELEASE_NO" )] + public string ReleaseNo { get; set; } + /// <summary> + /// 妫�楠屾棩鏈� + ///</summary> + [SugarColumn(ColumnName="FCHECK_DATE" )] + public DateTime? FcheckDate { get; set; } + /// <summary> + /// 妫�楠屼汉鍛� + ///</summary> + [SugarColumn(ColumnName="FCHECK_BY" )] + public string FcheckBy { get; set; } + /// <summary> + /// 鐗╂枡缂栫爜 + ///</summary> + [SugarColumn(ColumnName="ITEM_NO" )] + public string ItemNo { get; set; } + /// <summary> + /// 妫�楠岀粨鏋� + ///</summary> + [SugarColumn(ColumnName="FCHECK_RESU" )] + public string FcheckResu { get; set; } + /// <summary> + /// 鍒涘缓浜� + ///</summary> + [SugarColumn(ColumnName="CREATE_BY" )] + public string CreateBy { get; set; } + /// <summary> + /// 鍒涘缓鏃ユ湡 + ///</summary> + [SugarColumn(ColumnName="CREATE_DATE" )] + public DateTime? CreateDate { get; set; } + /// <summary> + /// 鏇存柊浜� + ///</summary> + [SugarColumn(ColumnName="LASTUPDATE_BY" )] + public string LastupdateBy { get; set; } + /// <summary> + /// 鏇存柊鏃ユ湡 + ///</summary> + [SugarColumn(ColumnName="LASTUPDATE_DATE" )] + public DateTime? LastupdateDate { get; set; } + /// <summary> + /// + ///</summary> + [SugarColumn(ColumnName="MODIFY1_BY" )] + public string Modify1By { get; set; } + /// <summary> + /// 鍏ュ簱鐢宠鍗曞彿 + ///</summary> + [SugarColumn(ColumnName="BILL_NO" )] + public string BillNo { get; set; } + /// <summary> + /// 妯″叿鍙� + ///</summary> + [SugarColumn(ColumnName="MOID_NUM" )] + public string MoidNum { get; set; } + /// <summary> + /// + ///</summary> + [SugarColumn(ColumnName="FSUBMIT_BY" )] + public string FsubmitBy { get; set; } + /// <summary> + /// + ///</summary> + [SugarColumn(ColumnName="FSUBMIT_DATE" )] + public DateTime? FsubmitDate { get; set; } + /// <summary> + /// + ///</summary> + [SugarColumn(ColumnName="FSUBMIT" )] + public int? Fsubmit { get; set; } + /// <summary> + /// 澶囨敞 + ///</summary> + [SugarColumn(ColumnName="REMARKS" )] + public string Remarks { get; set; } + /// <summary> + /// 鐗╂枡ID + ///</summary> + [SugarColumn(ColumnName="ITEM_ID" )] + public int? ItemId { get; set; } + } +} diff --git a/service/QC/LljService.cs b/service/QC/LljService.cs new file mode 100644 index 0000000..d46b42c --- /dev/null +++ b/service/QC/LljService.cs @@ -0,0 +1,683 @@ +锘縰sing System.Data; +using Microsoft.IdentityModel.Tokens; +using NewPdaSqlServer.DB; +using NewPdaSqlServer.Dto.service; +using NewPdaSqlServer.entity; +using NewPdaSqlServer.util; +using SqlSugar; +using DbType = System.Data.DbType; + + +namespace NewPdaSqlServer.service.QC; + +public class LljService : RepositoryNoEntity +{ + public (List<LLJView> item, int TotalCount) GetPage(XJPageResult queryObj) + { + var parsedGuid = Guid.Empty; + if (!queryObj.id.IsNullOrEmpty()) + { + bool isValid = Guid.TryParse(queryObj.id, out parsedGuid); + if (!isValid) + throw new ApplicationException("GUID杞崲閿欒"); + } + + + var totalCount = 0; + + var pageList = Db.Queryable<LLJView>() + .WhereIF( + StringUtil.IsNotNullOrEmpty(queryObj.result) && + "鏈畬鎴�".Equals(queryObj.result), + a => a.FcheckResu == null) + .WhereIF( + StringUtil.IsNotNullOrEmpty(queryObj.result) && + !"鏈畬鎴�".Equals(queryObj.result), + a => a.FcheckResu != null) + .WhereIF(UtilityHelper.CheckGuid(parsedGuid), + a => a.guid == parsedGuid) + .OrderByDescending(a => a.CreateDate) + .ToPageList(queryObj.PageIndex, queryObj.Limit, ref totalCount); + + return (pageList, totalCount); + } + + //鏍规嵁妫�楠屾爣鍑嗘潵璁$畻妫�楠屼釜鏁� + public List<MesQaItemsDetectDetail5> SetItems(string itemId, + decimal quantity, string releaseNo) + { + var count = Db.Queryable<MesQaIqc>().Where(s => s.EE == 1 && + s.ISENABLED == 1 + && s.ItemId == itemId && s.FTYPE == "1").Count(); + + if (count <= 0) return []; + + var mesQaIqcItem = Db + .Queryable<MesQaIqc>().Where(s => s.EE == 1 && s.ISENABLED == 1 + && s.ItemId == itemId && s.FTYPE == "1").Select( + b => new MesQaItemsDetectDetail5 + { + ReleaseNo = releaseNo, + FacLevel = b.FacLevel, + FcheckItem = b.FcheckItem, + FdownAllow = b.FdownAllow, + FcheckLevel = b.FREQUENCY, + Fstand = Convert.ToInt32(b.FSTAND), + FupAllow = b.FupAllow, + SampleSizeNo = b.SampleSizeNo, + FenterQty = 0, + Factory = "1000", + Company = "1000", + FcheckTool = b.FcheckTool, + FspecRequ = b.FspecRequ + }).ToList(); + + mesQaIqcItem.ForEach(item => + { + string LEV = item.FcheckLevel switch + { + null => "" // 榛樿鍊� + , + { } s when s.Contains("S1") => "B.FLEVEL_S1", + { } s when s.Contains("S2") => "B.FLEVEL_S2", + { } s when s.Contains("S3") => "B.FLEVEL_S3", + { } s when s.Contains("S4") => "B.FLEVEL_S4", + { } s when s.Contains("(I)") => "B.FLEVEL_I", + { } s when s.Contains("(II)") => "B.FLEVEL_II", + { } s when s.Contains("(III)") => "B.FLEVEL_III", + _ => "" + }; + + if (string.IsNullOrEmpty(LEV)) + throw new Exception(item.SampleSizeNo + "鐨勬楠屾按骞充笉姝g‘"); + + var sql = + "SELECT " + LEV + + " FROM MES_QM_AQL1 A LEFT JOIN MES_QM_AQL2 B ON B.AQL1_ID=A.guid WHERE A.SAMPLE_SIZE_NO='" + + item.SampleSizeNo + "' AND B.LOT_FROM<= " + quantity + + " AND " + + quantity + "<=B.LOT_TO"; + + var maxBillNo = Db.Ado.SqlQuerySingle<string>(sql); + + if (string.IsNullOrEmpty(maxBillNo)) + throw new Exception(item.SampleSizeNo + "涓嬬殑" + quantity + + "杩欎釜鑼冨洿涓嬫病鏈夊尮閰嶅埌妫�楠岄」鐩�"); + + var result = ExtractSubstring(item.FacLevel, '(', ')'); + + if (string.IsNullOrEmpty(result)) + throw new Exception(item.SampleSizeNo + "涓嬬殑" + quantity + + "鎷掓敹姘村钩涓嶆纭�"); + + sql = "SELECT FSAMPLE_SIZE_WORD, " + result + + " Result FROM MES_QM_AQL1 A LEFT JOIN MES_QM_AQL3 C ON C.AQL1_ID=A.ID WHERE A.SAMPLE_SIZE_NO= '" + + item.SampleSizeNo + "' AND SAMPLE_SIZE_WORD= '" + maxBillNo + + "'"; + var resultClass = Db.Ado.SqlQuerySingle<ResultClass>(sql); + + item.CheckQyt = (int)resultClass.FSAMPLE_SIZE_WORD; + item.FreQty = (int)resultClass.Result; + }); + + return mesQaIqcItem; + } + + private string ExtractSubstring(string input, char startChar, char endChar) + { + var startIndex = input.IndexOf(startChar); + var endIndex = input.IndexOf(endChar, startIndex); + + if (startIndex == -1 || endIndex == -1) + // 濡傛灉鏈壘鍒拌捣濮嬪瓧绗︽垨缁撴潫瀛楃锛屽垯杩斿洖绌哄瓧绗︿覆鎴栬�呮姏鍑哄紓甯革紝鏍规嵁瀹為檯鎯呭喌閫夋嫨 + return string.Empty; + // 鎴栬�呮姏鍑哄紓甯� + // throw new ArgumentException("Start or end character not found"); + // 鎻愬彇瀛愬瓧绗︿覆 + var length = endIndex - startIndex - 1; + return input.Substring(startIndex + 1, length); + } + + public int saveItem(LLJDto rkjDto) + { + var items = rkjDto.items; + var userNo = rkjDto.userNo; + + UseTransaction(db => + { + foreach (var item in items) item.ReleaseNo = rkjDto.releaseNo; + + return db.Insertable(items).ExecuteCommand(); + }); + + rkjDto.items = GetItems(rkjDto.releaseNo, null); + + + rkjDto.items.ForEach(s => + { + if (s.FupAllow != null || s.Fstand != null || + s.FdownAllow != null) return; + + // 娌℃湁褰曞叆鍙傝�冨�硷紝鍒ゆ柇鏈夊灏戜釜NG锛岄偅涔堝綍鍏ョ殑鎶芥缁撴灉蹇呴』鏄疧K鎴栬�匩G锛孨G浠h〃涓嶅悎鏍� + var ifck = Db.Queryable<MesQaItemsDetectDetail12>() + .Where(x => x.FcheckResu == "NG" && x.ParentGuid == s.Guid) + .Count(); + + //妫�楠屾槑缁嗘�绘暟 + var count = Db.Queryable<MesQaItemsDetectDetail12>() + .Where(x1 => x1.ParentGuid == s.Guid).Count(); + + if (ifck > s.FreQty && s.CheckQyt == count) + s.FcheckResu = "涓嶅悎鏍�"; + else if (ifck < s.FreQty && s.CheckQyt == count) + s.FcheckResu = "鍚堟牸"; + else + s.FcheckResu = "鏈畬鎴�"; + + + var detail = new MesQaItemsDetectDetail12(); + detail.ParentGuid = s.Guid; + // detail.ReleaseNo = rkjDto.releaseNo; + detail.Fstand = "鈭�"; + detail.FcheckResu = "OK"; + detail.LastupdateBy = rkjDto.userNo; + detail.count = s.CheckQyt; + SetQSItemDetail(detail); + }); + + return Convert.ToInt32(rkjDto.gid); + } + + public List<MesQaItemsDetectDetail5> GetItems(string? releaseNo, + decimal? id) + { + return Db.Queryable<MesQaItemsDetectDetail5, MesQaItemsDetectDetail12>( + (a, b) => + new JoinQueryInfos(JoinType.Left, a.Guid == b.ParentGuid)) + .Where((a, b) => a.ReleaseNo == releaseNo) + // .WhereIF(id > 0, (a, b) => a.Id == id) + .GroupBy((a, b) => new + { + a.Guid, + a.ReleaseNo, + a.FacLevel, + a.FcheckItem, + a.FcheckTool, + a.FdownAllow, + a.FcheckLevel, + a.Fstand, + a.FupAllow, + a.SampleSizeNo, + a.FspecRequ, + a.FreQty, + a.CheckQyt, + a.FcheckResu + }).Select((a, b) => new MesQaItemsDetectDetail5 + { + Guid = a.Guid, + ReleaseNo = a.ReleaseNo, + CheckQyt = a.CheckQyt, + FacLevel = a.FacLevel, + FcheckItem = a.FcheckItem, + FcheckTool = a.FcheckTool, + FdownAllow = a.FdownAllow, + FcheckLevel = a.FcheckLevel, + Fstand = a.Fstand, + FupAllow = a.FupAllow, + SampleSizeNo = a.SampleSizeNo, + FspecRequ = a.FspecRequ, + FreQty = a.FreQty, + Factory = "1000", + Company = "1000", + FenterQty = SqlFunc.AggregateCount(b.Guid), + FcheckResu = a.FcheckResu + }).ToList(); + } + + public int SetQSItemDetail(MesQaItemsDetectDetail12 detail) + { + var oracle = UseTransaction(db => + { + List<MesQaItemsDetectDetail12> result = new(); + for (var i = 0; i < detail.count; i++) + { + var item = new MesQaItemsDetectDetail12(); + item.ParentGuid = detail.ParentGuid; + item.Fstand = detail.Fstand; + item.FcheckResu = detail.FcheckResu; + item.CreateBy = detail.LastupdateBy; + item.CreateDate = DateTime.Now; + result.Add(item); + } + + return db.Insertable(result).ExecuteCommand(); + }); + + detail.CreateBy = detail.LastupdateBy; + + + autoResult(detail); + + return oracle; + } + + + private int autoResult(MesQaItemsDetectDetail12 detail) + { + // Single 娌℃湁鏌ヨ鍒扮粨鏋滄椂杩斿洖Null锛屽鏋滅粨鏋滃ぇ浜�1鏉′細鎶涘嚭閿欒 + var QsItemOqcItem = Db.Queryable<MesQaItemsDetectDetail5>() + .Single(s => s.Guid == detail.ParentGuid); + + if (QsItemOqcItem == null) return 0; + + //鏌ヨ杩欎釜妫�楠岄」鐩笅鐨勬楠岀粨鏋� + var count = Db.Queryable<MesQaItemsDetectDetail12>() + .Where(s => s.ParentGuid == detail.ParentGuid).Count(); + + updateDetail5(detail); + var result = ""; + + //妫�楠屽疄闄呯粨鏋滀笉绛変簬搴旇妫�楠岀殑涓暟鏃剁洿鎺ユ帹鍑� + if (QsItemOqcItem.CheckQyt != count) return 0; + + //鍚堟牸鐨勬湁澶氬皯涓� + var passCount = Db.Queryable<MesQaItemsDetectDetail12>() + .Where(s => s.ParentGuid == detail.ParentGuid && s.Fstand == "鈭�") + .Count(); + //涓嶅悎鏍肩殑鏈夊灏戜釜 + var noCount = Db.Queryable<MesQaItemsDetectDetail12>() + .Where(s => s.ParentGuid == detail.ParentGuid && s.Fstand == "脳") + .Count(); + + if (count == passCount) + result = "鍚堟牸"; + //else if (count - passCount < QsItemOqcItem.FreQty) + // result = "涓嶅悎鏍�"; + else if (noCount >= QsItemOqcItem.FreQty) + result = "涓嶅悎鏍�"; + var useTransactionWithOracle = UseTransaction( + db => + { + var commit = 0; + commit += db.Updateable<MesQaItemsDetectDetail5>() + .SetColumns(s => s.FcheckResu == result) + .SetColumns(s => s.FenterQty == count) + .Where(s => s.Guid == detail.ParentGuid) + .ExecuteCommand(); + + return commit; + }); + + var isNull = Db.Queryable<MesQaItemsDetectDetail5>() + .Where(s => s.Guid == detail.ParentGuid && s.FcheckResu == null) + .Count(); + + if (isNull > 0) return 1; + + + //鑾峰彇妫�楠屽崟鐨勬楠岄」鐩殑涓暟 + var sum = Db.Queryable<MesQaItemsDetectDetail5>() + .Where(s => s.Guid == detail.ParentGuid).Count(); + + if (sum == 0) return 1; + + //鑾峰彇妫�楠屽崟涓嬬殑鍚堟牸鐨勬楠岄」鐩釜鏁� + var icount = Db.Queryable<MesQaItemsDetectDetail5>() + .Where(s => s.Guid == detail.ParentGuid && s.FcheckResu == "鍚堟牸") + .Count(); + + var FcheckResu = "涓嶅悎鏍�"; + + //瀹為檯涓暟绛変簬鐞嗚涓暟鏃跺妫�楠屽崟杩涜鍒ゅ畾 + if (sum == icount) + //鍚堟牸鐨勬楠岀粨鏋滅瓑浜庢�绘楠屾暟瑙嗕负鍚堟牸 + FcheckResu = "鍚堟牸"; + + var sysUser = Db.Queryable<SysUser>() + .Where(s => s.Account == detail.CreateBy).First(); + + UseTransaction(db => + { + return db.Updateable<MesQaItemsDetect01>() + .SetColumns(s => s.FcheckResu == FcheckResu) + .SetColumns(s => s.FcheckDate == DateTime.Now) + .SetColumns(s => s.FcheckBy == sysUser.Account) + .SetColumns(s => s.LastupdateBy == detail.CreateBy) + .SetColumns(s => s.LastupdateDate == DateTime.Now) + .Where(s => s.Guid == detail.GrandpaGuid) + .ExecuteCommand(); + }); + // if (FcheckResu.Equals("涓嶅悎鏍�")) + //鑷姩鐢熸垚鍏ュ簱妫�寮傚父瀵圭瓥 + /// saveDetect02(detail.Id, detail.CreateBy); + + return useTransactionWithOracle; + } + /* public int saveDetect02(decimal? gid, string? createBy) + { + var db = SqlSugarHelper.GetInstance(); + + var qsItemOqcReq = + db.Queryable<QsItemOqcReq>().Single(s => s.Id == gid); + + var mesInvItemIns = db.Queryable<MesInvItemIns>() + .Single(s => s.BillNo == qsItemOqcReq.BillNo); + + var mesSchemeResult = db.Queryable<MesSchemeResult>() + .Single(s => s.BillNo == mesInvItemIns.CbillNo); + + var entity = new MesQaItemsDetect02(); + entity.ItemNo = mesSchemeResult.BoardItem; + entity.BoardItem = mesSchemeResult.BoardItem; + entity.LineNo = mesSchemeResult.LineNo; + entity.Aufnr = mesSchemeResult.TaskNo; + entity.ReleaseNo = qsItemOqcReq.ReleaseNo; + entity.LotNo = qsItemOqcReq.BillNo; + entity.FcheckDate = qsItemOqcReq.FcheckDate; + entity.FcheckMemo = qsItemOqcReq.Remarks; + entity.Gid = qsItemOqcReq.Id; + // entity.PlanQty = qsItemOqcReq.FcheckDate; + + + entity.FcheckResu = "涓嶅悎鏍�"; + entity.FcheckLevel = "涓ラ噸"; + entity.CreateDate = DateTime.Now; + entity.Factory = "10000"; + entity.Company = "1000"; + entity.Ftype = "4"; + entity.Fversion = 0; + entity.Modify1Flag = 0; + entity.IpqcStatus = 0; + entity.Fsubmit = 1; + entity.CreateBy = createBy; + entity.FcheckBy = createBy; + + return SqlSugarHelper.UseTransactionWithOracle(db => db + .Insertable(entity) + .ExecuteCommand()); + } + */ + + public LLJDto getXjDetail02ById(string? id) + { + var rkjDto = new LLJDto(); + + bool isValid = Guid.TryParse(id, out var parsedGuid); + + if (!isValid) + { + throw new Exception("GUID杞崲閿欒"); + } + + var qsItemOqcItem = + Db.Queryable<MesQaItemsDetectDetail5>() + .Single(s => s.Guid == parsedGuid); + + /* if (qsItemOqcItem.IsPass == 0) + qsItemOqcItem.Result = "涓嶅悎鏍�"; + else if (qsItemOqcItem.IsPass == 1) + qsItemOqcItem.Result = "鍚堟牸"; + else + qsItemOqcItem.Result = "鏈畬鎴�"; + + if (qsItemOqcItem.Picture is { Length: > 0 }) + qsItemOqcItem.imageData = + Convert.ToBase64String(qsItemOqcItem.Picture); + */ + //鑾峰彇涓嶅悎鏍兼暟 + var count = Db.Queryable<MesQaItemsDetectDetail12>() + .Where(s => s.Fstand == "脳" && s.ParentGuid == parsedGuid).Count(); + + qsItemOqcItem.Unqualified = count; + + rkjDto.ItemXj01 = qsItemOqcItem; + + + rkjDto.ItemXj02s = Db.Queryable<MesQaItemsDetectDetail12>() + .Where(s => s.ParentGuid == parsedGuid) + .ToList(); + + return rkjDto; + } + + public int UpdateQSItemDetail(MesQaItemsDetectDetail12 detail) + { + var withOracle = UseTransaction(db => + { + return db.Updateable<MesQaItemsDetectDetail12>() + .SetColumns(s => s.LastupdateBy == detail.LastupdateBy) + .SetColumnsIF(StringUtil.IsNotNullOrEmpty(detail.Fstand), + s => s.Fstand == detail.Fstand) + .SetColumnsIF(StringUtil.IsNotNullOrEmpty(detail.FcheckResu), + s => s.FcheckResu == detail.FcheckResu) + .Where(s => s.ParentGuid + == detail.ParentGuid && s.Guid == detail.Guid) + .ExecuteCommand(); + }); + + detail.CreateBy = detail.LastupdateBy; + + withOracle += autoResult(detail); + + return withOracle; + } + +//鏇存柊妫�楠屾槑缁嗗凡妫�銆佷笉鍚堟牸鏁伴噺 + private int updateDetail5(MesQaItemsDetectDetail12 detail) + { + //鏌ヨ杩欎釜妫�楠岄」鐩笅鐨勬楠屾暟閲� + var count = Db.Queryable<MesQaItemsDetectDetail12>() + .Where(s => s.ParentGuid == detail.ParentGuid).Count(); + + //鑾峰彇涓嶅悎鏍兼暟 + var countNo = Db.Queryable<MesQaItemsDetectDetail12>() + .Where(s => s.ParentGuid == detail.ParentGuid && s.Fstand == "脳") + .Count(); + //鏇存柊妫�楠屾槑缁嗗凡妫�鏁伴噺 + var withOracle = UseTransaction(db => + { + return db.Updateable<MesQaItemsDetectDetail5>() + .SetColumns(s => s.FenterQty == count) + .SetColumns(s => s.FngQty == countNo) + .Where(s => s.Guid == detail.ParentGuid) + .ExecuteCommand(); + }); + + return withOracle; + } + + //涓昏〃淇敼澶囨敞瀛楁 + public int saveRemarksGid(LLJDto dto) + { + return UseTransaction(db => + { + return db.Updateable<MesQaItemsDetect01>() + .SetColumns(it => + it.Remarks == dto.Remarks) //SetColumns鏄彲浠ュ彔鍔犵殑 鍐�2涓氨2涓瓧娈佃祴鍊� + .Where(it => it.ReleaseNo == dto.releaseNo) + .ExecuteCommand(); + }); + } + + //瀛愯〃淇敼澶囨敞瀛楁 + public int saveRemarksPid(LLJDto dto) + { + bool isValid = Guid.TryParse(dto.pid, out var parsedGuid); + + if (isValid) + { + return UseTransaction(db => + { + return db.Updateable<MesQaItemsDetectDetail5>() + .SetColumns(it => + it.Remarks == dto.Remarks) + .Where(it => it.Guid == parsedGuid) + .ExecuteCommand(); + }); + } + + throw new Exception("GUID杞崲閿欒"); + } + + //鍒犻櫎涓昏〃骞朵笖杩炵骇鍒犻櫎瀛愯〃鍜屽瓩琛� + public int removeXJ(string? releaseNo) + { + var withOracle = UseTransaction(db => + { + var commit = 0; + //鍒犻櫎涓昏〃 + commit += db.Deleteable<MesQaItemsDetect01>() + .Where(s => s.ReleaseNo == releaseNo) + .ExecuteCommand(); + //鍒犻櫎瀛愯〃 + commit += db.Deleteable<MesQaItemsDetectDetail5>() + .Where(s => s.ReleaseNo == releaseNo) + .ExecuteCommand(); + //鍒犻櫎瀛欒〃 + // commit += db.Deleteable<MesQaItemsDetectDetail12>() + // .Where(s => s.ReleaseNo == releaseNo) + // .ExecuteCommand(); + return commit; + }); + + return withOracle; + } + + public bool IqcQaSubmit(LLJDto dto) + { + //var (factory, company) = UserUtil.GetFactory(dto.userNo); + var sysUser = Db.Queryable<SysUser>() + .Where(s => s.Account == dto.userNo).First(); + + if (sysUser == null) + return false; + + var mesQaItemsDetect01 = Db.Queryable<MesQaItemsDetect01>() + .Where(s => s.ReleaseNo == dto.releaseNo).First(); + + if (mesQaItemsDetect01 == null) + return false; + + if (mesQaItemsDetect01.Fsubmit == 1) + throw new Exception("璇ユ楠屽崟宸叉彁浜�"); + + if (mesQaItemsDetect01.FcheckDate == null) + throw new Exception("璇ユ娴嬪崟鏈緭鍏ユ楠屾棩鏈燂紝璇锋牳瀵广��"); + + if (mesQaItemsDetect01.FcheckBy.IsNullOrEmpty()) + throw new Exception("璇ユ娴嬪崟鏈緭鍏ユ楠屼汉鍛橈紝璇锋牳瀵广��"); + + var list = Db.Queryable<MesQaItemsDetectDetail5>() + .Where(s => s.ReleaseNo == dto.releaseNo).ToList(); + + if (CollectionUtil.IsNullOrEmpty(list)) + throw new Exception("鎶芥牱淇℃伅浠庤〃涓嶅厑璁镐负绌�,璇风淮鎶ゆ楠岄」鐩�"); + + foreach (var mesQaItemsDetectDetail5 in list) + { + mesQaItemsDetectDetail5.FenterQty ??= 0; + if (mesQaItemsDetectDetail5.FenterQty == 0) + { + throw new Exception("妫�楠岄」鐩�:" + + mesQaItemsDetectDetail5.FcheckItem + + " 宸插綍鍏ユ暟閲忎负0锛岃纭銆�"); + } + } + + var com = UseTransaction(db => + { + var executeCommand = db.Updateable<MesQaItemsDetect01>() + .SetColumns(s => s.Fsubmit == 1) + .Where(s => s.ReleaseNo == dto.releaseNo) + .ExecuteCommand(); + + var mesInvItemArn = db.Queryable<MesInvItemArn>() + .Where(b => b.BillNo == mesQaItemsDetect01.LotNo).First(); + + if (mesInvItemArn == null) + throw new Exception(mesQaItemsDetect01.LotNo + "鍒拌揣鍗曚笉瀛樺湪锛岃鏍稿銆�"); + + if ("鍚堟牸".Equals(mesQaItemsDetect01.FcheckResu)) + { + executeCommand += db.Updateable<MesInvItemArnDetail>() + .SetColumns(s => s.CheckStates == "宸叉") + .SetColumns(s => s.CheckRes == "鍚堟牸") + .SetColumns(s => s.Ischeck == 1) + .SetColumns(s => s.CheckDate == DateTime.Now) + .Where(s => s.ParentGuid == mesInvItemArn.Guid + && s.ItemId == mesQaItemsDetect01.ItemId) + .ExecuteCommand(); + + executeCommand += db.Updateable<MesQaItemsDetect01>() + .SetColumns(s => s.Modify1Flag == 1) + .SetColumns(s => s.Modify1By == sysUser.Account) + .SetColumns(s => s.Modify1Date == DateTime.Now) + .SetColumns(s => s.FngHandle == "") + .SetColumns(s => s.IqcDate == DateTime.Now) + .SetColumns(s => s.FcheckDate == DateTime.Now) + .SetColumns(s => s.FcheckBy == sysUser.Account) + .Where(s => s.Guid == mesQaItemsDetect01.Guid) + .ExecuteCommand(); + + //MesInvItemStocks + executeCommand += db.Updateable<MesInvItemStocks>() + .SetColumns(t => t.CheckDate == DateTime.Now) + .SetColumns(t => t.IqcStatus == "宸叉") + .Where(t => t.ItemId == mesQaItemsDetect01.ItemId + && t.BillNo == mesQaItemsDetect01.LotNo) + .ExecuteCommand(); + + var first = db + .Queryable<MesInvItemArnDetail, MesInvItemArn>( + (b, a) => new object[] + { + JoinType.Left, b.ParentGuid == a.Guid + }) + .Where((b, a) => + a.BillNo == mesQaItemsDetect01.LotNo && + b.ReturnFlag == 0) + .Select((b, a) => new + { + TotalQuantity = + SqlFunc.AggregateSum(b.Quantity), + TotalOkRkQty = SqlFunc.AggregateSum(b.OkRkqty) + }) + .First(); + + var totalQuantity = first.TotalQuantity ?? 0; + var totalOkRkQty = first.TotalOkRkQty ?? 0; + + if (totalQuantity == totalOkRkQty) + executeCommand += db.Updateable<MesInvItemArn>() + .SetColumns(s => s.Status == 1) + .Where(s => s.BillNo == mesQaItemsDetect01.LotNo) + .ExecuteCommand(); + } + else + { + executeCommand += db.Updateable<MesInvItemArnDetail>() + .SetColumns(s => s.CheckStates == "涓嶅悎鏍煎緟瀹℃壒") + .SetColumns(s => s.Ischeck == 1) + .SetColumns(s => s.CheckRes == mesQaItemsDetect01.FcheckResu) + .SetColumns(s => s.CheckDate == DateTime.Now) + .Where(s => s.ParentGuid == mesInvItemArn.Guid + && s.ItemId == mesQaItemsDetect01.ItemId) + .ExecuteCommand(); + + executeCommand += db.Updateable<MesQaItemsDetect01>() + .SetColumns(s => s.IqcDate == DateTime.Now) + .SetColumns(s => s.FcheckDate == DateTime.Now) + .SetColumns(s => s.FcheckBy == sysUser.Account) + .Where(s => s.Guid == mesQaItemsDetect01.Guid) + .ExecuteCommand(); + } + + if (executeCommand >=3) + return executeCommand; + + throw new Exception("鏇存柊澶辫触"); + }); + + return com > 0; + } +} \ No newline at end of file -- Gitblit v1.9.3