¶Ô±ÈÐÂÎļþ |
| | |
| | | using System.Dynamic; |
| | | using MES.Service.Dto.webApi; |
| | | using MES.Service.Modes; |
| | | using MES.Service.service; |
| | | using MES.Service.service.BasicData; // å设DeliveryBarcodeManagerå¨è¯¥å½å空é´ä¸ï¼å¯æ ¹æ®å®é
è°æ´ |
| | | using MES.Service.util; |
| | | using Microsoft.AspNetCore.Mvc; |
| | | using Newtonsoft.Json; |
| | | |
| | | namespace MESApplication.Controllers.BasicData; |
| | | |
| | | /// <summary> |
| | | /// éè´§åæ¡ç æ§å¶å¨ï¼å¯¹åºæºå®¢äºæ¡ç ä¿¡æ¯è¡¨æä½ï¼ |
| | | /// </summary> |
| | | [ApiController] |
| | | [Route("api/[controller]")] |
| | | public class DeliveryBarcodeController : ControllerBase |
| | | { |
| | | // æ¶æ¯ä¸å¿ç®¡çå¨ï¼å¤ç¨åé»è¾ï¼ |
| | | private readonly MessageCenterManager _messageCenterManager = new(); |
| | | |
| | | // éè´§åæ¡ç ä¸å¡é»è¾ç®¡çå¨ï¼å¯¹åºä¸å¡å±ï¼éç¡®ä¿å®é
项ç®ä¸åå¨è¯¥ç±»ï¼ |
| | | private readonly DeliveryBarcodeManager _deliveryBarcodeManager = new(); |
| | | |
| | | // æ¥å£è¯·æ±æ¹æ³ï¼åºå®POSTï¼ä¸åæ§å¶å¨ä¸è´ï¼ |
| | | private readonly string REQUEST_METHOD = "POST"; |
| | | |
| | | // å¯¹åºæ°æ®åºè¡¨åï¼æºå®¢äºæ¡ç ä¿¡æ¯è¡¨ï¼ä¸ä¹åå®ä¹çå®ä½ç±»è¡¨åä¸è´ï¼ |
| | | private readonly string TARGET_TABLE = "TBL_BARCODE_INFORMATION"; |
| | | |
| | | // åºç¡æ¥å£URLï¼æ ¹æ®æ§å¶å¨åå®ä¹ï¼ä¿æREST飿 ¼ï¼ |
| | | private readonly string BASE_API_URL = "http://localhost:10054/api/DeliveryBarcode/"; |
| | | |
| | | /// <summary> |
| | | /// å个éè´§åæ¡ç ä¿¡æ¯ä¿åæ¥å£ |
| | | /// </summary> |
| | | /// <param name="barcodeInfo">éè´§åæ¡ç DTOï¼å个ï¼</param> |
| | | /// <returns>ç»ä¸ååºç»æ</returns> |
| | | [HttpPost("Save")] |
| | | public ResponseResult Save(DeliveryBarcodeInfo barcodeInfo) |
| | | { |
| | | // 1. åå§åæ¶æ¯ä¸å¿å®ä½ï¼ç¨äºæ¥å¿/æ¶æ¯è®°å½ï¼ |
| | | var messageEntity = new MessageCenter |
| | | { |
| | | TableName = TARGET_TABLE, |
| | | Url = BASE_API_URL + "Save", // æ¼æ¥å®æ´æ¥å£URL |
| | | Method = REQUEST_METHOD, |
| | | Data = JsonConvert.SerializeObject(barcodeInfo), // åºååDTO为JSON |
| | | Status = 1, // ç¶ææ è¯ï¼1=å¾
å¤ç/å¤çä¸ï¼ä¸åé»è¾ä¸è´ï¼ |
| | | CreateBy = "PL017", // å建人ï¼å¤ç¨åé
ç½®ï¼å¯æ ¹æ®å®é
è°æ´ä¸ºå¨æè·åï¼ |
| | | Route = barcodeInfo.DeliveryNo ?? "æªç¥éè´§åå·", // è·¯ç±æ è¯ï¼ç¨éè´§åå·åºåï¼æ åå¡«é»è®¤å¼ï¼ |
| | | DealWith = 0 // åå§å¤çç¶æï¼0=æªå¤çï¼ |
| | | }; |
| | | |
| | | try |
| | | { |
| | | // 2. ä¸å¡é»è¾å¤çï¼è°ç¨ä¸å¡å±ä¿åå个æ¡ç ä¿¡æ¯ |
| | | dynamic resultData = new ExpandoObject(); |
| | | bool saveSuccess = _deliveryBarcodeManager.Save(barcodeInfo); |
| | | resultData.tbBillList = saveSuccess; // åå¨ä¿åç»æï¼ä¸åè¿åæ ¼å¼ä¸è´ï¼ |
| | | |
| | | // 3. æ´æ°æ¶æ¯ä¸å¿å®ä½ç¶æ |
| | | messageEntity.Result = saveSuccess ? 1 : 0; // 1=æåï¼0=失败 |
| | | messageEntity.DealWith = 1; // 1=å·²å¤ç |
| | | _messageCenterManager.save(messageEntity); // ä¿åæ¶æ¯è®°å½ |
| | | |
| | | // 4. è¿åæåååºï¼ç»ä¸ååºæ ¼å¼ï¼ |
| | | return new ResponseResult |
| | | { |
| | | status = 0, // 0=æåç¶æç ï¼ä¸åé»è¾ä¸è´ï¼ |
| | | message = "å个éè´§åæ¡ç ä¿¡æ¯ä¿åæå", |
| | | data = resultData |
| | | }; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | // 5. å¼å¸¸å¤çï¼æè·å¼å¸¸å¹¶æ´æ°æ¶æ¯ä¸å¿ |
| | | messageEntity.Result = 0; // 失败æ è¯ |
| | | messageEntity.DealWith = 0; // æªå¤çæ è¯ |
| | | messageEntity.ResultData = ex.Message; // å¼å¸¸ä¿¡æ¯è®°å½ |
| | | _messageCenterManager.save(messageEntity); // ä¿åå¼å¸¸æ¶æ¯ |
| | | |
| | | // 6. è¿åå¼å¸¸ååºï¼å¤ç¨å·¥å
·ç±»çç»ä¸å¼å¸¸ååºæ¹æ³ï¼ |
| | | return ResponseResult.ResponseError(ex); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ¹ééè´§åæ¡ç ä¿¡æ¯ä¿åæ¥å£ |
| | | /// </summary> |
| | | /// <param name="barcodeInfoList">éè´§åæ¡ç DTOåè¡¨ï¼æ¹éï¼</param> |
| | | /// <returns>ç»ä¸ååºç»æ</returns> |
| | | [HttpPost("SaveList")] |
| | | public ResponseResult SaveList(List<DeliveryBarcodeInfo> barcodeInfoList) |
| | | { |
| | | // 1. åå§åæ¶æ¯ä¸å¿å®ä½ï¼æ¹éåºæ¯ä¸ç¨ï¼ |
| | | var messageEntity = new MessageCenter |
| | | { |
| | | TableName = TARGET_TABLE, |
| | | Url = BASE_API_URL + "SaveList", // æ¼æ¥æ¹éæ¥å£URL |
| | | Method = REQUEST_METHOD, |
| | | Data = JsonConvert.SerializeObject(barcodeInfoList), // åºååDTOå表为JSON |
| | | Status = 1, |
| | | CreateBy = "PL017", |
| | | Route = barcodeInfoList.Any() ? $"æ¹é_{barcodeInfoList.First().DeliveryNo ?? "æªç¥"}" : "空æ¹é请æ±", |
| | | DealWith = 0 |
| | | }; |
| | | |
| | | try |
| | | { |
| | | // 2. ä¸å¡é»è¾å¤çï¼è°ç¨ä¸å¡å±æ¹éä¿å |
| | | dynamic resultData = new ExpandoObject(); |
| | | bool batchSaveSuccess = _deliveryBarcodeManager.SaveList(barcodeInfoList); |
| | | resultData.tbBillList = batchSaveSuccess; // ä¿æä¸å个ä¿åä¸è´çè¿ååæ®µ |
| | | |
| | | // 3. æ´æ°æ¶æ¯ä¸å¿ç¶æ |
| | | messageEntity.Result = batchSaveSuccess ? 1 : 0; |
| | | messageEntity.DealWith = 1; |
| | | _messageCenterManager.save(messageEntity); |
| | | |
| | | // 4. è¿åæåååº |
| | | return new ResponseResult |
| | | { |
| | | status = 0, |
| | | message = $"æ¹éä¿åæåï¼å
±å¤ç{barcodeInfoList.Count}æ¡æ¡ç ä¿¡æ¯", |
| | | data = resultData |
| | | }; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | // 5. å¼å¸¸å¤çï¼è®°å½å¼å¸¸å¹¶è¿åé误 |
| | | messageEntity.Result = 0; |
| | | messageEntity.DealWith = 0; |
| | | messageEntity.ResultData = $"æ¹éä¿åå¼å¸¸ï¼{ex.Message}"; |
| | | _messageCenterManager.save(messageEntity); |
| | | |
| | | return ResponseResult.ResponseError(ex); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®éè´§åå·å 餿¡ç æ°æ® |
| | | /// </summary> |
| | | /// <param name="request">å
å«éè´§åå·çè¯·æ±æ¨¡å</param> |
| | | /// <returns>ç»ä¸ååºç»æ</returns> |
| | | [HttpPost("DeleteByNo")] // è¥é¡¹ç®æ¯æ RESTfulï¼å¯æ¹ä¸º [HttpDelete("DeleteByNo")] |
| | | public ResponseResult DeleteByNo([FromBody] DeleteByDeliveryNoRequest request) |
| | | { |
| | | // 1. åå§åæ¶æ¯ä¸å¿å®ä½ï¼è®°å½å 餿使¥å¿ï¼ |
| | | var messageEntity = new MessageCenter |
| | | { |
| | | TableName = TARGET_TABLE, |
| | | Url = BASE_API_URL + "DeleteByNo", // æ¥å£URL |
| | | Method = REQUEST_METHOD, |
| | | Data = JsonConvert.SerializeObject(request), // åºåå请æ±åæ° |
| | | Status = 1, // 1=å¤çä¸ |
| | | CreateBy = "PL017", // ä¸åææ¥å£ä¸è´çå建人 |
| | | Route = request.DeliveryNo, // è·¯ç±æ è¯=éè´§åå·ï¼ä¾¿äºå®ä½æ¥å¿ |
| | | DealWith = 0 // åå§=æªå¤ç |
| | | }; |
| | | |
| | | try |
| | | { |
| | | // 2. è°ç¨ä¸å¡å±æ¹æ³æ§è¡å é¤ |
| | | dynamic resultData = new ExpandoObject(); |
| | | bool deleteSuccess = _deliveryBarcodeManager.DeleteByDeliveryNo(request.DeliveryNo); |
| | | resultData.deletedDeliveryNo = request.DeliveryNo; // è¿åå é¤çéè´§åå· |
| | | resultData.isSuccess = deleteSuccess; |
| | | |
| | | // 3. æ´æ°æ¶æ¯ä¸å¿ç¶æï¼æåï¼ |
| | | messageEntity.Result = 1; // 1=æå |
| | | messageEntity.DealWith = 1; // 1=å·²å¤ç |
| | | _messageCenterManager.save(messageEntity); |
| | | |
| | | // 4. è¿åæåååº |
| | | return new ResponseResult |
| | | { |
| | | status = 0, |
| | | message = $"æåå é¤éè´§åå·ã{request.DeliveryNo}ã对åºçæ¡ç æ°æ®", |
| | | data = resultData |
| | | }; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | // 5. å¼å¸¸å¤çï¼æ´æ°æ¶æ¯ä¸å¿æ¥å¿ï¼å¤±è´¥ï¼ |
| | | messageEntity.Result = 0; // 0=失败 |
| | | messageEntity.DealWith = 0; // 0=æªå¤ç |
| | | messageEntity.ResultData = ex.Message; // è®°å½å¼å¸¸ä¿¡æ¯ |
| | | _messageCenterManager.save(messageEntity); |
| | | |
| | | // 6. è¿åç»ä¸å¼å¸¸ååº |
| | | return ResponseResult.ResponseError(ex); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ¹éæ ¹æ®éè´§åå·å 餿¡ç æ°æ® |
| | | /// </summary> |
| | | /// <param name="request">å
嫿¹ééè´§åå·çè¯·æ±æ¨¡åï¼æ°ç»æ ¼å¼ï¼</param> |
| | | /// <returns>ç»ä¸ååºç»æ</returns> |
| | | [HttpPost("DeleteListByNo")] |
| | | public ResponseResult DeleteListByNo([FromBody] BatchDeleteByDeliveryNoRequest request) |
| | | { |
| | | // 1. åå§åæ¶æ¯ä¸å¿å®ä½ |
| | | var messageEntity = new MessageCenter |
| | | { |
| | | TableName = TARGET_TABLE, |
| | | Url = BASE_API_URL + "DeleteListByNo", |
| | | Method = REQUEST_METHOD, |
| | | Data = JsonConvert.SerializeObject(request), |
| | | Status = 1, // å¤çä¸ |
| | | CreateBy = "PL017", |
| | | // è·¯ç±æ è¯ï¼æ¾ç¤ºå3个åå· |
| | | Route = |
| | | $"Batch_{string.Join(",", request.Take(3).Select(item => item.DeliveryNo))}{(request.Count > 3 ? "..." : "")}", |
| | | DealWith = 0 // æªå¤ç |
| | | }; |
| | | |
| | | try |
| | | { |
| | | // 2. ç´æ¥è°ç¨ä¸å¡å±ï¼ä¸å卿§å¶å¨å¤çå表ï¼é»è¾ç§»è³ä¸å¡å±ï¼ |
| | | dynamic resultData = new ExpandoObject(); |
| | | BatchDeleteResult deleteResult = _deliveryBarcodeManager.DeleteListByDeliveryNo(request); |
| | | |
| | | // 3. ç»è£
è¿åæ°æ® |
| | | resultData.totalRequested = deleteResult.TotalRequested; |
| | | resultData.totalDeleted = deleteResult.TotalDeleted; |
| | | resultData.deletedNos = deleteResult.DeletedNos; |
| | | resultData.notFoundNos = deleteResult.NotFoundNos; |
| | | resultData.isSuccess = deleteResult.TotalDeleted > 0; |
| | | |
| | | // 4. æ´æ°æ¶æ¯ä¸å¿ç¶æï¼æåï¼ |
| | | messageEntity.Result = 1; |
| | | messageEntity.DealWith = 1; |
| | | messageEntity.ResultData = $"æ¹éå é¤å®æï¼å
±å¤ç{deleteResult.TotalRequested}个åå·"; |
| | | _messageCenterManager.save(messageEntity); |
| | | |
| | | // 5. è¿åæåååº |
| | | return new ResponseResult |
| | | { |
| | | status = 0, |
| | | message = $"æåå é¤{deleteResult.DeletedNos.Count}个éè´§åå·å¯¹åºçæ¡ç æ°æ®ï¼å
±{deleteResult.TotalDeleted}æ¡è®°å½", |
| | | data = resultData |
| | | }; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | // 6. å¼å¸¸å¤ç |
| | | messageEntity.Result = 0; |
| | | messageEntity.DealWith = 0; |
| | | messageEntity.ResultData = ex.Message; |
| | | _messageCenterManager.save(messageEntity); |
| | | |
| | | return ResponseResult.ResponseError(ex); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æéè´§åå·+è¡å
ç èåå 餿¡ç æ°æ® |
| | | /// </summary> |
| | | /// <param name="request">å
å«éè´§åå·åè¡å
ç çè¯·æ±æ¨¡å</param> |
| | | /// <returns>ç»ä¸ååºç»æ</returns> |
| | | [HttpPost("DeleteByItem")] // è¥ç¨ RESTful è§èï¼å¯æ¹ä¸º [HttpDelete("DeleteByItem")] |
| | | public ResponseResult DeleteByItem([FromBody] DeleteByDeliveryItemRequest request) |
| | | { |
| | | // 1. åå§åæ¶æ¯ä¸å¿å®ä½ï¼è®°å½å 餿使¥å¿ |
| | | var messageEntity = new MessageCenter |
| | | { |
| | | TableName = TARGET_TABLE, |
| | | Url = BASE_API_URL + "DeleteByItem", // æ¥å£URL |
| | | Method = REQUEST_METHOD, |
| | | Data = JsonConvert.SerializeObject(request), // åºåå请æ±åæ°ï¼å«åæ¡ä»¶ï¼ |
| | | Status = 1, // 1=å¤çä¸ |
| | | CreateBy = "PL017", // ä¸åææ¥å£ä¸è´çå建人 |
| | | Route = $"{request.DeliveryNo}_{request.LineNo}", // è·¯ç±æ è¯=âåå·_è¡å
ç âï¼ä¾¿äºæ¥å¿å®ä½ |
| | | DealWith = 0 // åå§=æªå¤ç |
| | | }; |
| | | |
| | | try |
| | | { |
| | | // 2. è°ç¨ä¸å¡å±èåå 餿¹æ³ |
| | | dynamic resultData = new ExpandoObject(); |
| | | bool deleteSuccess = _deliveryBarcodeManager.DeleteByDeliveryItem( |
| | | request.DeliveryNo, |
| | | request.LineNo |
| | | ); |
| | | // ååºä¸è¿åå
³é®æ¡ä»¶ï¼ä¾¿äºå端确认å é¤èå´ |
| | | resultData.deletedDeliveryNo = request.DeliveryNo; |
| | | resultData.deletedLineNo = request.LineNo; |
| | | resultData.isSuccess = deleteSuccess; |
| | | |
| | | // 3. æ´æ°æ¶æ¯ä¸å¿ç¶æï¼æåï¼ |
| | | messageEntity.Result = 1; // 1=æå |
| | | messageEntity.DealWith = 1; // 1=å·²å¤ç |
| | | _messageCenterManager.save(messageEntity); |
| | | |
| | | // 4. è¿åæåååº |
| | | return new ResponseResult |
| | | { |
| | | status = 0, |
| | | message = $"æåå é¤éè´§åå·ã{request.DeliveryNo}ã-è¡å
ç ã{request.LineNo}ã对åºçæ¡ç æ°æ®", |
| | | data = resultData |
| | | }; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | // 5. å¼å¸¸å¤çï¼è®°å½æ¶æ¯ä¸å¿æ¥å¿ï¼å¤±è´¥ï¼ |
| | | messageEntity.Result = 0; // 0=失败 |
| | | messageEntity.DealWith = 0; // 0=æªå¤ç |
| | | messageEntity.ResultData = ex.Message; // åå¨å¼å¸¸ä¿¡æ¯ |
| | | _messageCenterManager.save(messageEntity); |
| | | |
| | | // 6. è¿åç»ä¸å¼å¸¸ååº |
| | | return ResponseResult.ResponseError(ex); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ¹éæéè´§åå·+è¡å
ç å 餿¡ç æ°æ® |
| | | /// </summary> |
| | | /// <param name="request">å
嫿¹ééè´§åè¡çè¯·æ±æ¨¡åï¼æ°ç»æ ¼å¼ï¼</param> |
| | | /// <returns>ç»ä¸ååºç»æ</returns> |
| | | [HttpPost("DeleteListByItem")] |
| | | public ResponseResult DeleteListByItem([FromBody] BatchDeleteByDeliveryItemRequest request) |
| | | { |
| | | // 1. åå§åæ¶æ¯ä¸å¿å®ä½ |
| | | var messageEntity = new MessageCenter |
| | | { |
| | | TableName = TARGET_TABLE, |
| | | Url = BASE_API_URL + "DeleteListByItem", |
| | | Method = REQUEST_METHOD, |
| | | Data = JsonConvert.SerializeObject(request), |
| | | Status = 1, // å¤çä¸ |
| | | CreateBy = "PL017", |
| | | // è·¯ç±æ è¯ï¼æ¾ç¤ºå3个"DeliveryNo_LineNo"ç»å |
| | | Route = |
| | | $"BatchItem_{string.Join(",", request.Take(3).Select(item => $"{item.DeliveryNo}_{item.LineNo}"))}{(request.Count > 3 ? "..." : "")}", |
| | | DealWith = 0 // æªå¤ç |
| | | }; |
| | | |
| | | try |
| | | { |
| | | // 2. è°ç¨ä¸å¡å±æ§è¡æ¹éå é¤ |
| | | dynamic resultData = new ExpandoObject(); |
| | | BatchDeleteResult deleteResult = _deliveryBarcodeManager.DeleteListByDeliveryItem(request); |
| | | |
| | | // 3. ç»è£
è¿åæ°æ® |
| | | resultData.totalRequested = deleteResult.TotalRequested; |
| | | resultData.totalDeleted = deleteResult.TotalDeleted; |
| | | resultData.deletedItems = deleteResult.DeletedNos; // æ ¼å¼ï¼["DN1_1", "DN1_2"] |
| | | resultData.notFoundItems = deleteResult.NotFoundNos; |
| | | resultData.isSuccess = deleteResult.TotalDeleted > 0; |
| | | |
| | | // 4. æ´æ°æ¶æ¯ä¸å¿ç¶æï¼æåï¼ |
| | | messageEntity.Result = 1; |
| | | messageEntity.DealWith = 1; |
| | | messageEntity.ResultData = $"æ¹éå é¤å®æï¼å
±å¤ç{deleteResult.TotalRequested}æ¡éè´§åè¡"; |
| | | _messageCenterManager.save(messageEntity); |
| | | |
| | | // 5. è¿åæåååº |
| | | return new ResponseResult |
| | | { |
| | | status = 0, |
| | | message = $"æåå é¤{deleteResult.DeletedNos.Count}æ¡éè´§åè¡æ°æ®ï¼å
±{deleteResult.TotalDeleted}æ¡è®°å½", |
| | | data = resultData |
| | | }; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | // 6. å¼å¸¸å¤ç |
| | | messageEntity.Result = 0; |
| | | messageEntity.DealWith = 0; |
| | | messageEntity.ResultData = ex.Message; |
| | | _messageCenterManager.save(messageEntity); |
| | | |
| | | return ResponseResult.ResponseError(ex); |
| | | } |
| | | } |
| | | } |