1.销售退货优化——hyx
2.销售出库优化——hyx
3.库位查询——cdk
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System.Dynamic; |
| | | using Microsoft.AspNetCore.Mvc; |
| | | using NewPdaSqlServer.Dto.service; |
| | | using NewPdaSqlServer.entity; |
| | | using NewPdaSqlServer.service.Warehouse; |
| | | using NewPdaSqlServer.util; |
| | | |
| | | namespace NewPdaSqlServer.Controllers.Warehouse; |
| | | |
| | | [ApiController] |
| | | [Route("api/[controller]")] |
| | | public class MesKwcxController : BaseController |
| | | { |
| | | private readonly MesKwcxManager m = new(); |
| | | |
| | | /// <summary> |
| | | /// è·åæ¡ç ä¿¡æ¯åç©æä¿¡æ¯ |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [HttpPost("GetBarInfoList")] |
| | | public ResponseResult GetBarInfoList([FromBody] dynamic query) |
| | | { |
| | | try |
| | | { |
| | | dynamic resultInfos = new ExpandoObject(); |
| | | resultInfos.tbBarInfoList = m.GetBarInfoList(query); |
| | | return new ResponseResult |
| | | { |
| | | status = 0, |
| | | message = "OK", |
| | | data = resultInfos |
| | | }; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return ResponseResult.ResponseError(ex); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åæ¡ç ä¿¡æ¯åç©æä¿¡æ¯ |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [HttpPost("GetBarInfo")] |
| | | public ResponseResult GetBarInfo([FromBody] dynamic query) |
| | | { |
| | | try |
| | | { |
| | | dynamic resultInfos = new ExpandoObject(); |
| | | resultInfos.tbBarInfo = m.GetBarInfo(query); |
| | | if(resultInfos.tbBarInfo == null) |
| | | { |
| | | return new ResponseResult |
| | | { |
| | | status = -1, |
| | | message = "æ¤æ¡ç ä¸åå¨ï¼ï¼ï¼", |
| | | data = resultInfos |
| | | }; |
| | | } |
| | | return new ResponseResult |
| | | { |
| | | status = 0, |
| | | message = "OK", |
| | | data = resultInfos |
| | | }; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return ResponseResult.ResponseError(ex); |
| | | } |
| | | } |
| | | |
| | | [HttpPost("GetKWList")] |
| | | public ResponseResult GetKWList([FromBody] dynamic query) |
| | | { |
| | | try |
| | | { |
| | | dynamic resultInfos = new ExpandoObject(); |
| | | resultInfos.tbKWList = m.GetKWList(query); |
| | | return new ResponseResult |
| | | { |
| | | status = 0, |
| | | message = "OK", |
| | | data = resultInfos |
| | | }; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return ResponseResult.ResponseError(ex); |
| | | } |
| | | } |
| | | |
| | | [HttpPost("GetKWInfo")] |
| | | public ResponseResult GetKWInfo([FromBody] dynamic query) |
| | | { |
| | | try |
| | | { |
| | | dynamic resultInfos = new ExpandoObject(); |
| | | resultInfos.tbKWInfo = m.GetKWInfo(query); |
| | | return new ResponseResult |
| | | { |
| | | status = 0, |
| | | message = "OK", |
| | | data = resultInfos |
| | | }; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return ResponseResult.ResponseError(ex); |
| | | } |
| | | } |
| | | |
| | | [HttpPost("GetItemInfoList")] |
| | | public ResponseResult GetItemInfoList([FromBody] dynamic query) |
| | | { |
| | | try |
| | | { |
| | | dynamic resultInfos = new ExpandoObject(); |
| | | resultInfos.tbItemInfo = m.GetItemInfoList(query,RequestInfo); |
| | | return new ResponseResult |
| | | { |
| | | status = 0, |
| | | message = "OK", |
| | | data = resultInfos |
| | | }; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return ResponseResult.ResponseError(ex); |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Masuit.Tools; |
| | | using NewPdaSqlServer.DB; |
| | | using NewPdaSqlServer.Dto.service; |
| | | using NewPdaSqlServer.entity; |
| | | using SqlSugar; |
| | | using System.Data; |
| | | using System.Data.SqlClient; |
| | | using System.Text; |
| | | using static Microsoft.EntityFrameworkCore.DbLoggerCategory; |
| | | |
| | | namespace NewPdaSqlServer.service.Warehouse; |
| | | |
| | | public class MesKwcxManager : Repository<MesInvItemInCDetails> |
| | | { |
| | | public dynamic GetBarInfoList(dynamic unity) |
| | | { |
| | | var sqlParams = new List<SugarParameter> |
| | | { |
| | | new("@deptSectionCode", unity.deptSectionCode), |
| | | new("@rkDate", string.IsNullOrWhiteSpace(unity.rkDate?.ToString()) ? DBNull.Value : unity.rkDate), |
| | | new("@zkChecked", unity.zkChecked?.ToString() == "True" ? 1 : unity.zkChecked?.ToString() == "False" ? 0 : DBNull.Value) |
| | | }; |
| | | |
| | | var sql2 = new StringBuilder("exec prc_pda_kwcx_barInfoList @deptSectionCode, @rkDate, @zkChecked"); |
| | | |
| | | var list = Db.Ado.SqlQuery<dynamic>(sql2.ToString(), sqlParams); |
| | | |
| | | if (list.Count < 1) |
| | | { |
| | | throw new Exception("该æ¡ä»¶ä¸æ 对åºåºä½ä¿¡æ¯ï¼"); |
| | | } |
| | | |
| | | return list; |
| | | } |
| | | public dynamic GetBarInfo(dynamic unity) |
| | | { |
| | | var sqlParams = new List<SugarParameter> { }; |
| | | |
| | | var sql2 = new StringBuilder(@"exec prc_pda_kwcx_barInfo @BARCODE"); |
| | | sqlParams.Add(new("@BARCODE", unity.barcode)); |
| | | |
| | | var list = Db.Ado.SqlQuery<dynamic>(sql2.ToString(), sqlParams); |
| | | |
| | | if (list.Count < 1) |
| | | { |
| | | throw new Exception("该æ¡ä»¶ä¸æ å¯¹åºæ¡ç ä¿¡æ¯ï¼"); |
| | | } |
| | | |
| | | return list[0]; |
| | | } |
| | | |
| | | public dynamic GetKWList(dynamic unity) |
| | | { |
| | | |
| | | var sqlParams = new List<SugarParameter> { }; |
| | | |
| | | var sql2 = new StringBuilder(@" |
| | | select depot_code as code, depot_name as name from MES_DEPOTS"); |
| | | |
| | | |
| | | var XcslItem = Db.Ado.SqlQuery<dynamic>(sql2.ToString(), sqlParams); |
| | | |
| | | return XcslItem; |
| | | } |
| | | |
| | | public dynamic GetKWInfo(dynamic unity) |
| | | { |
| | | var sqlParams = new List<SugarParameter> |
| | | { |
| | | new("@depot_code", unity.code) |
| | | }; |
| | | |
| | | var sql2 = new StringBuilder("exec prc_pda_kwcx_kwInfo @depot_code"); |
| | | |
| | | var KWInfo = Db.Ado.SqlQuery<dynamic>(sql2.ToString(), sqlParams); |
| | | |
| | | return KWInfo; |
| | | } |
| | | |
| | | public dynamic GetItemInfoList(dynamic unity,dynamic RequestInfo) |
| | | { |
| | | var sqlParams = new List<SugarParameter> { }; |
| | | var orgId = RequestInfo.OrgId; |
| | | |
| | | var sql2 = new StringBuilder(@"exec prc_pda_kwcx_itemInfo @barCode,@itemNo,@orgId"); |
| | | sqlParams.Add(new("@barCode", unity.barCode)); |
| | | sqlParams.Add(new("@itemNo", unity.itemNo)); |
| | | sqlParams.Add(new("@orgId", unity.orgId)); |
| | | |
| | | var list = Db.Ado.SqlQuery<dynamic>(sql2.ToString(), sqlParams); |
| | | |
| | | if (list.Count < 1) |
| | | { |
| | | throw new Exception("该æ¡ä»¶ä¸æ å¯¹åºæ¡ç ä¿¡æ¯ï¼"); |
| | | } |
| | | |
| | | return list; |
| | | } |
| | | } |
| | |
| | | /// æ ¹æ®åè´§éç¥åè·å对åºä»£åè´§æç» prc_rf_pda_scan_zout_showbl |
| | | /// </summary> |
| | | /// <returns>åè´§éç¥åæç»å表</returns> |
| | | public List<ItemDetailModel> GetMesItemFHTZetailByBillNo( |
| | | WarehouseQuery query) |
| | | public dynamic GetMesItemFHTZetailByBillNo(dynamic query) |
| | | { |
| | | if (string.IsNullOrEmpty(query.billNo)) |
| | | throw new Exception("请éåæ®å·ï¼"); |
| | | |
| | | // æ£æ¥åè´§éç¥åæ¯å¦åå¨ä¸å®¡æ ¸ |
| | | var mesItem = Db.Queryable<SalesDeliver>() |
| | | .Where(a => a.BillNo == query.billNo && a.FApproverStatus == true) |
| | | .First(); |
| | | if (query == null) |
| | | throw new ArgumentNullException(nameof(query), "åæ°å¯¹è±¡ä¸è½ä¸ºnull"); |
| | | |
| | | if (mesItem == null) |
| | | throw new Exception("åæ®å·ä¸å卿æªå®¡æ ¸ï¼"); |
| | | |
| | | if (mesItem.FinishStatus == true) |
| | | throw new Exception("åæ®å·å·²å®ç»ï¼"); |
| | | if (string.IsNullOrEmpty(query.billNo?.ToString())) |
| | | throw new ArgumentException("åæ®å·ä¸è½ä¸ºç©º", nameof(query.billNo)); |
| | | |
| | | // è·åæªå®æçåè´§éç¥åæç» |
| | | var blDetails = Db.Queryable<SalesDeliver, SalesDeliverDetail, SalesOrderDetail,MesItems>((a, b, c, d) => |
| | | new JoinQueryInfos(JoinType.Left, a.Id == b.Pid, |
| | | JoinType.Left, b.SalesDetailId == c.Id, |
| | | JoinType.Left, c.MaterialId == d.ItemId.ToString())) |
| | | .Where((a, b) => a.BillNo == query.billNo |
| | | && (b.FMustQty ?? 0) - (b.FRealQty ?? 0) > 0) |
| | | .Select((a, b, c, d) => new ItemDetailModel |
| | | var parameters = new[] |
| | | { |
| | | new SugarParameter("@billNo", query.billNo), |
| | | new SugarParameter("@inP1", null), |
| | | new SugarParameter("@inP2", null), |
| | | new SugarParameter("@inP3", null), |
| | | new SugarParameter("@inP4", null) |
| | | }; |
| | | try |
| | | { |
| | | List<dynamic>? blDetails = Db.Ado.SqlQuery<dynamic>( |
| | | "EXEC Get_Mes_Item_FHTZetail_By_BillNo @billNo,@inP1,@inP2,@inP3,@inP4", parameters); |
| | | var items = blDetails.Where(x => x.DSQty > 0).ToList(); // å¾
æ«ç©æ |
| | | var ysitems = blDetails.Where(x => x.SQty > 0).ToList(); // å·²æ«ç©æ |
| | | return new |
| | | { |
| | | ItemNo = d.ItemNo, |
| | | ItemName = d.ItemName, |
| | | ItemModel = d.ItemModel, |
| | | FQty = b.FMustQty, |
| | | SQty = b.FRealQty, |
| | | FMaterialId = d.ItemId.ToString(), |
| | | Id = b.Id.ToString() |
| | | |
| | | }) |
| | | .ToList(); |
| | | |
| | | return blDetails; |
| | | items = items, |
| | | ysitems = ysitems |
| | | }; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | // ä¿çåæå¼å¸¸å¤çé»è¾ |
| | | throw new Exception($"{ex.Message}"); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | /// </summary> |
| | | /// <param name="query">ä»åºæ¥è¯¢åæ°</param> |
| | | /// <returns>ç©ææç»å表</returns> |
| | | public List<ItemDetailModel> GetMesItemDetailByBillNo( |
| | | WarehouseQuery query) |
| | | public dynamic GetMesItemDetailByBillNo(dynamic query) |
| | | { |
| | | // å
³èæ¥è¯¢ç©æè¡¨ãç©ææç»è¡¨åç©æåºç¡ä¿¡æ¯è¡¨ |
| | | var mesItemTblDetails = Db |
| | | .Queryable<SalesReturnNotice, SalesReturnNoticeDetail, MesItems>( |
| | | (a, b, c) => new JoinQueryInfos( |
| | | JoinType.Left, |
| | | a.Id == b.Pid, |
| | | JoinType.Left, |
| | | b.MaterialId == c.Id.ToString()) |
| | | ).Where((a, b, c) => a.BillNo == query.billNo && a.CheckStatus == true) |
| | | .Select<ItemDetailModel>((a, b, c) => new ItemDetailModel |
| | | if (string.IsNullOrEmpty(query.billNo)) |
| | | throw new Exception("请éåæ®å·ï¼"); |
| | | |
| | | if (query == null) |
| | | throw new ArgumentNullException(nameof(query), "åæ°å¯¹è±¡ä¸è½ä¸ºnull"); |
| | | |
| | | if (string.IsNullOrEmpty(query.billNo?.ToString())) |
| | | throw new ArgumentException("åæ®å·ä¸è½ä¸ºç©º", nameof(query.billNo)); |
| | | |
| | | // è·åæªå®æçéå®éè´§æç» |
| | | var parameters = new[] |
| | | { |
| | | new SugarParameter("@billNo", query.billNo), |
| | | new SugarParameter("@pi_orgId",null), |
| | | new SugarParameter("@inP1", null), |
| | | new SugarParameter("@inP2", null), |
| | | new SugarParameter("@inP3", null), |
| | | new SugarParameter("@inP4", null) |
| | | }; |
| | | try |
| | | { |
| | | List<dynamic>? blDetails = Db.Ado.SqlQuery<dynamic>( |
| | | "EXEC Get_Mes_Item_Detail_By_BillNo @billNo,@inP1,@inP2,@inP3,@inP4", parameters); |
| | | var items = blDetails.Where(x => x.DSQty > 0).ToList(); // å¾
æ«ç©æ |
| | | var ysitems = blDetails.Where(x => x.SQty > 0).ToList(); // å·²æ«ç©æ |
| | | return new |
| | | { |
| | | ItemNo = c.ItemNo, |
| | | ItemName = c.ItemName, |
| | | ItemModel = c.ItemModel, |
| | | FQty = b.SqQty, // ç³è¯·æ°é |
| | | SQty = b.YsQty, // å·²æ«æ°é |
| | | Pid = b.Pid.ToString(), |
| | | FMaterialId = b.MaterialId, |
| | | Id = b.Id.ToString() |
| | | }).ToList(); |
| | | |
| | | // çéåºå¾
éæ°é大äºå·²éæ°éçè®°å½ |
| | | //var itemTblDetails = mesItemTblDetails |
| | | // .Where(s => (s.Tld005 ?? 0) - (s.Tld006 ?? 0) > 0).ToList(); |
| | | |
| | | return mesItemTblDetails; |
| | | items = items, |
| | | ysitems = ysitems, |
| | | Count = items.Count + ysitems.Count |
| | | }; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | // ä¿çåæå¼å¸¸å¤çé»è¾ |
| | | throw new Exception($"{ex.Message}"); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |