1.成品入库(初步)
2.仓库入参新增字段备注
3.采购入库,其他入库主表新增仓库id
4.其他出库优化
¶Ô±ÈÐÂÎļþ |
| | |
| | | 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 MesCprkController : ControllerBase |
| | | { |
| | | private readonly MesCprkManager m = new(); |
| | | |
| | | /// <summary> |
| | | /// è·åæ¡ç ä¿¡æ¯åç©æä¿¡æ¯ |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [HttpPost("GetBarInfo")] |
| | | public ResponseResult GetBarInfo(WarehouseQuery unity) |
| | | { |
| | | try |
| | | { |
| | | dynamic resultInfos = new ExpandoObject(); |
| | | resultInfos.tbBillList = m.GetBarInfo(unity); |
| | | if(resultInfos.tbBillList == null) |
| | | { |
| | | return new ResponseResult |
| | | { |
| | | status = -1, |
| | | message = "æ¤æ¡ç ä¸åå¨ï¼ï¼ï¼", |
| | | data = resultInfos |
| | | }; |
| | | } |
| | | resultInfos.tbMesItems = m.GetItemNo(resultInfos.tbBillList.ItemId); |
| | | return new ResponseResult |
| | | { |
| | | status = 0, |
| | | message = "OK", |
| | | data = resultInfos |
| | | }; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return ResponseResult.ResponseError(ex); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åæ¡ç ä¿¡æ¯åç©æä¿¡æ¯ |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [HttpPost("CPRK")] |
| | | public ResponseResult CPRK(WarehouseQuery unity) |
| | | { |
| | | try |
| | | { |
| | | dynamic resultInfos = new ExpandoObject(); |
| | | //resultInfos.tbBillList = m.CPRK(unity); |
| | | return new ResponseResult |
| | | { |
| | | status = 0, |
| | | message = resultInfos.tbBillList, |
| | | data = resultInfos |
| | | }; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return ResponseResult.ResponseError(ex); |
| | | } |
| | | } |
| | | } |
| | |
| | | public string? blNo { get; set; } //è¡¥æåå· |
| | | public string? id { get; set; } |
| | | public string? sectionCode { get; set; } |
| | | //æ¡ç ç¼å· |
| | | public string? barcode { get; set; } |
| | | public string? userName { get; set; } |
| | | public string? billNo { get; set; } |
| | |
| | | public DateTime? date { get; set; } |
| | | public string? Type { get; set; } |
| | | |
| | | //åºä½ç¼ç |
| | | public string? DepotCode { get; set; } |
| | | |
| | | public string? DepotSectionName { get; set; } |
| | |
| | | [SugarColumn(ColumnName = "ITEM_ID")] |
| | | public long? ItemId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»åºid |
| | | /// </summary> |
| | | [SugarColumn(ColumnName = "depot_id")] |
| | | public string? DepotId { get; set; } |
| | | |
| | | [SugarColumn(ColumnName = "SUPP_ID")] public string? SuppId { get; set; } |
| | | } |
| | |
| | | public DateTime? CheckDate { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å
¥åºå对åºçç³è¯·åå·ï¼æ²¡æç³è¯·æµç¨çå°±ä¸ºç©ºï¼ |
| | | /// </summary> |
| | | [SugarColumn(ColumnName = "TASK_NO")] |
| | | public string? TaskNo { get; set; } |
| | |
| | | public string? IqcReleaseNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å°è´§åå·/å
¶å®å
¥åºåå· |
| | | /// å
¥åºåçç¸å
³åå·ï¼ç产ç¸å
³å æä»¤åå· -1ï¼éè´ç¸å
³çåå°è´§åå·ï¼ |
| | | /// </summary> |
| | | [SugarColumn(ColumnName = "CBILL_NO")] |
| | | public string? CbillNo { get; set; } |
| | |
| | | [SugarColumn(ColumnName = "ReceiveOrgId")] |
| | | public string? ReceiveOrgId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å
¥åºåçç¸å
³åå·ï¼ç产ç¸å
³å æä»¤åå· -1ï¼éè´ç¸å
³çåå°è´§åå·ï¼ |
| | | /// </summary> |
| | | [SugarColumn(ColumnName = "work_no")] |
| | | public string? WorkNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å
¥åºç±»å«ï¼äºå¡ç±»ååç§°ï¼ |
| | | /// </summary> |
| | | [SugarColumn(ColumnName = "in_type")] |
| | | public string? InType { get; set; } |
| | | |
| | | |
| | | //卿°æ®åºæ¥è¯¢æ¶å¿½ç¥è¿ä¸ªå段 |
| | | [SugarColumn(IsIgnore = true)] public string? DepotName { get; set; } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System.Data; |
| | | using System.Data.SqlClient; |
| | | using Masuit.Tools; |
| | | using NewPdaSqlServer.DB; |
| | | using NewPdaSqlServer.Dto.service; |
| | | using NewPdaSqlServer.entity; |
| | | using SqlSugar; |
| | | using static Microsoft.EntityFrameworkCore.DbLoggerCategory; |
| | | |
| | | namespace NewPdaSqlServer.service.Warehouse; |
| | | |
| | | public class MesCprkManager : Repository<MesCgthSq> |
| | | { |
| | | public MesInvItemBarcodes GetBarInfo(WarehouseQuery unity) |
| | | { |
| | | return Db.Queryable<MesInvItemBarcodes>() |
| | | .Where(s => s.ItemBarcode == unity.barcode) |
| | | .First(); // è¿å第ä¸è¡æ°æ®ï¼å¦ææ²¡æåè¿å null |
| | | } |
| | | |
| | | public MesItems GetItemNo(decimal strItemId) |
| | | { |
| | | return Db.Queryable<MesItems>() |
| | | .Where(s => s.Id == strItemId) |
| | | .First(); |
| | | } |
| | | |
| | | public string CPRK(WarehouseQuery unity) |
| | | { |
| | | var _strMsg = ""; |
| | | var _intSum = ""; |
| | | using (var conn = new SqlConnection(DbHelperSQL.strConn)) |
| | | { |
| | | if (unity.userName.IsNullOrEmpty()) throw new Exception("ç¨æ·åä¸å
许为空"); |
| | | if (unity.CfNum <= 0) throw new Exception("æåæ°éé大äºçäº0"); |
| | | if (unity.barcode.IsNullOrEmpty()) throw new Exception("æ¡ç ä¸å
许为空"); |
| | | |
| | | using (var cmd = new SqlCommand("[prc_pda_bar_cf]", conn)) |
| | | { |
| | | try |
| | | { |
| | | conn.Open(); |
| | | cmd.CommandType = CommandType.StoredProcedure; |
| | | SqlParameter[] parameters = |
| | | { |
| | | new("@outMsg", SqlDbType.NVarChar, 300), |
| | | new("@outSum", SqlDbType.NVarChar, 300), |
| | | new("@barcode_new", SqlDbType.NVarChar, 300), |
| | | new("@c_user", unity.userName), |
| | | new("@p_old_barcode", unity.barcode), |
| | | new("@p_qty", unity.CfNum), |
| | | |
| | | }; |
| | | parameters[0].Direction = ParameterDirection.Output; |
| | | parameters[1].Direction = ParameterDirection.Output; |
| | | parameters[2].Direction = ParameterDirection.Output; |
| | | |
| | | foreach (var parameter in parameters) |
| | | cmd.Parameters.Add(parameter); |
| | | cmd.ExecuteNonQuery(); |
| | | _strMsg = parameters[0].Value.ToString(); |
| | | _intSum = parameters[1].Value.ToString(); |
| | | |
| | | var result = Convert.ToInt32(_intSum); |
| | | if (result <= 0) throw new Exception(_strMsg); |
| | | |
| | | return _strMsg; |
| | | |
| | | //return 0; |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw new Exception(ex.Message); |
| | | } |
| | | finally |
| | | { |
| | | conn.Close(); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | UseTransaction(db => |
| | | { |
| | | var existingRecord = db.Queryable<MesInvItemIns>() |
| | | .Where(it => it.InsDate.Value.Date == DateTime.Now.Date |
| | | .Where(it => it.InsDate.Value.ToString("yyyy-MM-dd") == DateTime.Now.ToString("yyyy-MM-dd") |
| | | && it.Status == 0 |
| | | && it.TransctionNo == transactionNo |
| | | && it.BillNo == itemBarcodeDetails.BillNo |
| | |
| | | throw new Exception($"å
¶ä»åºåºç³è¯·å {p_bill_no} ä¸åå¨ï¼è¯·ç¡®è®¤ï¼"); |
| | | |
| | | // æ£æ¥ä»åºæ¯å¦ä¸è´ |
| | | if (mesItemQt.Qt011 != stock.DepotsCode) |
| | | if (Convert.ToInt32(mesItemQt.Qt008) != stock.DepotId) |
| | | throw new Exception( |
| | | $"æ«ç åºè´§ä»åº{stock.DepotsCode}ä¸å
¶ä»åºåºç³è¯·ä»åº{mesItemQt.Qt011}ä¸ä¸è´ï¼è¯·æ ¸å¯¹ï¼"); |
| | | $"æ«ç åºè´§ä»åºid{mesItemQt.Qt008}ä¸å
¶ä»åºåºç³è¯·ä»åº{stock.DepotId}ä¸ä¸è´ï¼è¯·æ ¸å¯¹ï¼"); |
| | | |
| | | // è·ååºåºåæç» |
| | | var qtDetail = Db.Queryable<MesItemQtDatall>() |
| | |
| | | |
| | | // æ¥æ¾å½å¤©æ¯å¦å·²åå¨åºåºå |
| | | var existingOut = Db.Queryable<MesInvItemOuts>() |
| | | .Where(it => it.PbillNo == p_bill_no |
| | | .Where(it => it.TaskNo == p_bill_no |
| | | // && it.DepotCode == stock.DepotsCode |
| | | && it.DepotId == stock.DepotId |
| | | && it.OutDate.Value.Date.ToString("yyyy-MM-dd") == |
| | |
| | | { |
| | | // å建æ°çåºåºå |
| | | outId = Guid.NewGuid(); |
| | | outNo = BillNo.GetBillNo("INV_OUT_OTHER"); |
| | | outNo = BillNo.GetBillNo("QTCK(å
¶ä»åºåºå)"); |
| | | |
| | | var mesItemQt = Db.Queryable<MesItemQt>() |
| | | .Where(it => it.Qtck == p_bill_no) |
| | |
| | | : null, |
| | | OutPart = mesItemQt.Qt012, |
| | | FType = 0, |
| | | WorkNo = p_bill_no, |
| | | //WorkNo = p_bill_no, |
| | | OutType = "å
¶ä»åºåº", |
| | | PbillNo = p_bill_no, |
| | | //PbillNo = p_bill_no, |
| | | OutDate = DateTime.Now, |
| | | Nflag = 0, |
| | | Reason = mesItemQt.Qt010, |
| | |
| | | Guid = Guid.NewGuid(), |
| | | ItemOutId = outId, |
| | | ItemNo = qtDetail.Qd002, |
| | | Quantity = stock.Quantity, |
| | | Quantity = qtDetail.Qd007, |
| | | TlQty = stock.Quantity, |
| | | CreateBy = c_user, |
| | | CreateDate = DateTime.Now, |
| | | LastupdateBy = c_user, |
| | |
| | | // æ´æ°å·²åå¨çåºåºç©æè®°å½æ°é |
| | | commit += db.Updateable<MesInvItemOutItems>() |
| | | .SetColumns(it => |
| | | it.Quantity == (it.Quantity ?? 0) + stock.Quantity) |
| | | it.TlQty == (it.TlQty ?? 0) + stock.Quantity) |
| | | .Where(it => it.ItemOutId == outId && |
| | | it.ItemId == barcode.ItemId && |
| | | it.QtOutId == qtDetail.Guid) |
| | |
| | | // æ¥è¯¢æ¯å¦å卿ªå
¥åºçå
¥åºå |
| | | var existingInv = db.Queryable<MesInvItemIns>() |
| | | .Where(x => x.Status == 0 |
| | | && x.InsDate.Value.ToString("yyyy-MM-dd") == DateTime.Now.ToString("yyyy-MM-dd") |
| | | && x.TransctionNo == transactionNo.ToString() |
| | | && x.CbillNo == p_bill_no |
| | | && x.SuppNo == barcode.SuppNo |
| | | && x.TaskNo == p_bill_no |
| | | //&& x.CbillNo == p_bill_no |
| | | && x.BillTypeId == billTypeId |
| | | && x.DepotsId == Convert.ToInt64(c_depot_id)) |
| | | // && x.DepotsCode == c_depot_code) |
| | | && x.DepotsId == c_depot_id) |
| | | //&& x.SuppNo == barcode.SuppNo) |
| | | .First(); |
| | | |
| | | var newId = Guid.Empty; |
| | |
| | | if (existingInv == null) |
| | | { |
| | | newId = Guid.NewGuid(); |
| | | billNo = BillNo.GetBillNo("INV_IN_OTHER"); |
| | | billNo = BillNo.GetBillNo("QTRK(å
¶ä»å
¥åºå)"); |
| | | |
| | | barcode.UrgentFlag ??= false; |
| | | |
| | |
| | | CbillNo = p_bill_no, |
| | | Fstatus = 0, |
| | | Status = 0, |
| | | Reason = qtrk.Qt010 |
| | | Reason = qtrk.Qt010, |
| | | TaskNo = p_bill_no, |
| | | DepotsId = Convert.ToInt64(c_depot_id) , |
| | | InType = "å
¶ä»å
¥åº" |
| | | |
| | | }).IgnoreColumns(true).ExecuteCommand(); |
| | | } |
| | | else |
| | |
| | | var existingItem = db.Queryable<MesInvItemInCItems>() |
| | | .Where(x => x.ItemInId == newId |
| | | && x.ItemId == barcode.ItemId |
| | | && x.WorkNo == barcode.WorkNo |
| | | && x.WorkLine == barcode.WorkLine) |
| | | && x.DepotId == c_depot_id.ToString() |
| | | ) |
| | | //&& x.DepotCode = |
| | | .First(); |
| | | |
| | | if (existingItem == null) |
| | |
| | | Remark = barcode.Memo, |
| | | EbelnK3id = barcode.EbelnK3id, |
| | | LineK3id = barcode.LineK3id, |
| | | ItemId = barcode.ItemId |
| | | ItemId = barcode.ItemId, |
| | | DepotId = c_depot_id.ToString() |
| | | }).IgnoreColumns(true).ExecuteCommand(); |
| | | else |
| | | // åå¨åæ´æ°æ°é |
| | |
| | | LotNo = barcode.LotNo, |
| | | SuppId = barcode.SuppId, |
| | | SuppNo = barcode.SuppNo, |
| | | DepotId = c_depot_id, |
| | | DepotId = Convert.ToInt64(c_depot_id), |
| | | DepotCode = c_depot_code, |
| | | DepotSectionCode = p_section_code, |
| | | ItemSname = barcode.ItemSname, |
| | |
| | | // æ´æ°ç³è¯·åæç»å·²å
¥åºæ°é |
| | | res += db.Updateable<MesItemQtrrDetail>() |
| | | .SetColumns(x => x.Qd008 == (x.Qd008 ?? 0) + barcode.Quantity) |
| | | .Where(x => x.Guid == barcode.Guid) |
| | | .Where(x => x.QtrkGuid == qtrk.Guid && |
| | | x.ItemId == barcode.ItemId.ToString()) |
| | | .ExecuteCommand(); |
| | | |
| | | // æ£æ¥æ¯å¦å®å
¨å
¥åºå¹¶æ´æ°ç¶æ |