123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205 |
- using Infrastructure;
- using Infrastructure.Attribute;
- using Infrastructure.Enums;
- using Infrastructure.Model;
- using Mapster;
- using Microsoft.AspNetCore.Mvc;
- using ZR.Model.Dto;
- using ZR.Model.Models;
- using ZR.Service.Business.IBusinessService;
- using ZR.Admin.WebApi.Extensions;
- using ZR.Admin.WebApi.Filters;
- using ZR.Common;
- using Microsoft.AspNetCore.Authorization;
- using MiniExcelLibs;
- using ZR.Service.Business;
- namespace ZR.Admin.WebApi.Controllers
- {
- /// <summary>
- /// 接口管理/SAP交验单记录表Controller
- ///
- /// @tableName sap_deliver_record
- /// @author admin
- /// @date 2023-05-05
- /// </summary>
- [Verify]
- [Route("business/SapDeliverRecord")]
- public class SapDeliverRecordController : BaseController
- {
- /// <summary>
- /// 接口管理/SAP交验单记录表接口
- /// </summary>
- private readonly ISapDeliverRecordService _SapDeliverRecordService;
- public SapDeliverRecordController(ISapDeliverRecordService SapDeliverRecordService)
- {
- _SapDeliverRecordService = SapDeliverRecordService;
- }
- /// <summary>
- /// 查询接口管理/SAP交验单记录表列表
- /// </summary>
- /// <param name="parm"></param>
- /// <returns></returns>
- [HttpGet("list")]
- [ActionPermissionFilter(Permission = "business:sapdeliverrecord:list")]
- public IActionResult QuerySapDeliverRecord([FromQuery] SapDeliverRecordQueryDto parm)
- {
- var response = _SapDeliverRecordService.GetList(parm);
- return SUCCESS(response);
- }
- /// <summary>
- /// 查询接口管理/SAP交验单记录表详情
- /// </summary>
- /// <param name="Id"></param>
- /// <returns></returns>
- [HttpGet("{Id}")]
- [ActionPermissionFilter(Permission = "business:sapdeliverrecord:query")]
- public IActionResult GetSapDeliverRecord(int Id)
- {
- var response = _SapDeliverRecordService.GetFirst(x => x.Id == Id);
- return SUCCESS(response);
- }
- /// <summary>
- /// 添加接口管理/SAP交验单记录表
- /// </summary>
- /// <returns></returns>
- [HttpPost]
- [ActionPermissionFilter(Permission = "business:sapdeliverrecord:add")]
- [Log(Title = "接口管理/SAP交验单记录表", BusinessType = BusinessType.INSERT)]
- public IActionResult AddSapDeliverRecord([FromBody] SapDeliverRecordDto parm)
- {
- if (parm == null)
- {
- throw new CustomException("请求参数错误");
- }
- var modal = parm.Adapt<SapDeliverRecord>().ToCreate(HttpContext);
- var response = _SapDeliverRecordService.AddSapDeliverRecord(modal);
- return ToResponse(response);
- }
- /// <summary>
- /// 更新接口管理/SAP交验单记录表
- /// </summary>
- /// <returns></returns>
- [HttpPut]
- [ActionPermissionFilter(Permission = "business:sapdeliverrecord:edit")]
- [Log(Title = "接口管理/SAP交验单记录表", BusinessType = BusinessType.UPDATE)]
- public IActionResult UpdateSapDeliverRecord([FromBody] SapDeliverRecordDto parm)
- {
- if (parm == null)
- {
- throw new CustomException("请求实体不能为空");
- }
- var modal = parm.Adapt<SapDeliverRecord>().ToUpdate(HttpContext);
- var response = _SapDeliverRecordService.UpdateSapDeliverRecord(modal);
- return ToResponse(response);
- }
- /// <summary>
- /// 删除接口管理/SAP交验单记录表
- /// </summary>
- /// <returns></returns>
- [HttpDelete("{ids}")]
- [ActionPermissionFilter(Permission = "business:sapdeliverrecord:delete")]
- [Log(Title = "接口管理/SAP交验单记录表", BusinessType = BusinessType.DELETE)]
- public IActionResult DeleteSapDeliverRecord(string ids)
- {
- int[] idsArr = Tools.SpitIntArrary(ids);
- if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); }
- var response = _SapDeliverRecordService.Delete(idsArr);
- return ToResponse(response);
- }
- /// <summary>
- /// 导入
- /// </summary>
- /// <param name="formFile">使用IFromFile必须使用name属性否则获取不到文件</param>
- /// <returns></returns>
- [HttpPost("importData")]
- [Log(Title = "交验单导入", BusinessType = BusinessType.IMPORT, IsSaveRequestData = false, IsSaveResponseData = false)]
- [ActionPermissionFilter(Permission = "business:sapdeliverrecord:import")]
- public IActionResult ImportData([FromForm(Name = "file")] IFormFile formFile)
- {
- List<dynamic>? list = new();
- //读取上传文件内容。
- using (var stream = formFile.OpenReadStream())
- {
- //list = stream.Query<SapDeliverRecord>(startCell:"A6").ToList();
- list = stream.Query().ToList();
- //var test= stream.Query(sheetName:"sheet1");
- }
- string deliverNo = list[2].M;
- if (string.IsNullOrEmpty(deliverNo))
- {
- return SUCCESS("未找到交验单编号,导入文件格式错误");
- }
- deliverNo = deliverNo.Replace("编号", "").Replace(":", "").Replace(":", "");
- string checkName = list[3].A;
- checkName = string.IsNullOrEmpty(checkName) ? "" : checkName.Replace("送检人员", "").Replace(":", "").Replace(":", "");
- List<SapDeliverRecord> sapDeliverRecords = new();
- for (int i = 6; i < list.Count; i++)
- {
- if (string.IsNullOrEmpty($"{list[i].A}"))
- {
- break;//序号一列出现空,即交验单内容结束
- }
- SapDeliverRecord sapDeliverRecord = new()
- {
- DeliverNo = deliverNo,
- CheckName = checkName,
- BomNo = list[i].B,
- RowNo = Convert.ToInt32(list[i].D),
- MaterialCode = $"MAT{list[i].F}",//非空 模拟数据
- MaterialName = list[i].E,
- MaterialSpec = list[i].F,
- Category = (i % 2) > 0 ? "外协件" : "外购件",//非空 模拟数据
- KeyFlag = (i % 2) > 0,//非空 模拟数据
- Qty = Convert.ToInt32(list[i].H),
- SpotCheckQty = Convert.ToInt32(list[i].I),
- CheckQty = Convert.ToInt32(list[i].M),
- CheckResult = "OK",//非空 模拟数据
- InstoreResult = 99,//非空 模拟数据
- CreateBy=HttpContext.GetName(),
- CreateTime = DateTime.Now,
- Remark = "导入数据"
- };
- sapDeliverRecords.Add(sapDeliverRecord);
- }
- string msg = _SapDeliverRecordService.ImportDatas(sapDeliverRecords);
- //TODO 业务逻辑,自行插入数据到db
- return SUCCESS(list);
- }
- /// <summary>
- /// 用户导入模板下载 //这里是根据对象字段自动生成的模板,不符合实际使用需要。
- /// </summary>
- /// <returns></returns>
- [HttpGet("importTemplate")]
- [Log(Title = "交验单模板", BusinessType = BusinessType.EXPORT, IsSaveRequestData = false, IsSaveResponseData = false)]
- [AllowAnonymous]
- public IActionResult ImportTemplateExcel()
- {
- List<SapDeliverRecordImportTemplete> list = new();
- MemoryStream stream = new();
- var fileInfo = DownloadImportTemplate(list, stream, "交验单");
- return ExportExcel(fileInfo.Item1, fileInfo.Item2);
- }
- }
- }
|