123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242 |
- using AutoMapper;
- using Microsoft.AspNetCore.Http;
- using Microsoft.AspNetCore.Mvc;
- using Newtonsoft.Json;
- using wms.dto;
- using wms.dto.request;
- using wms.dto.request.sx;
- using wms.dto.response;
- using wms.dto.response.sx;
- using wms.service.IService;
- using wms.sqlsugar.model.sx;
- using wms.util.Ext;
- namespace wms.api.Controllers
- {
- [Route("api/[controller]/[action]")]
- [ApiController]
- public class SxController : BaseController
- {
- private readonly ISXService _sxService;
- private readonly ILogger<PtController> _logger;
- private readonly IMapper _mapper;
- static object lockerCurtainProductionOrder = new object();
- static object lockerSpoolMaterialInfoTrans = new object();
- static object lockerCurtainProductionStockOut = new object();
- static object lockerProductionBack = new object();
- static object lockerErrorMaterialStockOut = new object();
- static object lockerBGradeMaterialStockOut = new object();
- static object lockerlockerStockChange = new object();
- static object lockerManualBuildStockTrans = new object();
- static object lockerBomInfoTrans = new object();
- public SxController(ISXService sxService, ILogger<PtController> logger, IMapper mapper) : base(sxService)
- {
- _sxService = sxService;
- _logger = logger;
- _mapper = mapper;
- }
- /// <summary>
- /// 同步物料基础信息
- /// </summary>
- /// <param name="reqDto"></param>
- /// <returns></returns>
- [HttpPost]
- public string SyncMaterInfo(SyncMaterInfoRequest reqBody)
- {
- var result = new SRes();
- //_logger.LogInformation("请求参数:{@reqBody},{aa}", reqBody,1);
- SXSyncMaterInfoResponse resbody = JsonConvert.DeserializeObject<SXSyncMaterInfoResponse>(WmsServiceExportApi(reqBody));
- if (reqBody.SyncType == 1)
- {
- reqBody.PageIndex = 1;
- while (resbody.ResData.Any())
- {
- _sxService.SyncMaterInfo(resbody.ResData);
- reqBody.PageIndex++;
- resbody = JsonConvert.DeserializeObject<SXSyncMaterInfoResponse>(WmsServiceExportApi(reqBody));
- }
- }
- else if (reqBody.SyncType == 2)
- {
- //拿到增量
- var increconf = _sxService.GetSysConfigByCode(Const.MESMaterialInitIncrement);
- if (increconf != null)
- {
- reqBody.StartTime = DateTime.Parse(increconf.SContent);
- //reqBody.Count = int.Parse(increconf.Remark);
- resbody = JsonConvert.DeserializeObject<SXSyncMaterInfoResponse>(WmsServiceExportApi(reqBody));
- if (resbody.ResData.Any())
- {
- if (_sxService.SyncMaterInfo(resbody.ResData))
- {
- var lastdata = resbody.ResData.OrderBy(p => p.UpdatedTime).Last();
- _sxService.UpdateSysConfigModelColumns(new sqlsugar.model.UpdateModelColumns<sxSysConfig>()
- {
- Columns = it => new sxSysConfig { SContent = lastdata.UpdatedTime.ToString("yyyy-MM-dd HH:mm:ss.fff") },
- WhereExpression = it => it.Code == Const.MESMaterialInitIncrement
- });
- }
- }
- else
- {
- result.ResCode = ResponseStatusCodeEnum.NoResult.GetHashCode();
- result.ResMsg = ResponseStatusCodeEnum.NoResult.GetDescription();
- }
- }
- else
- {
- result.ResCode = ResponseStatusCodeEnum.AccountError.GetHashCode();
- result.ResMsg = "没有配置信息" + Const.MESMaterialInitIncrement;
- }
- }
- else
- {
- if (!string.IsNullOrEmpty(reqBody.MatCode))
- {
- resbody = JsonConvert.DeserializeObject<SXSyncMaterInfoResponse>(WmsServiceExportApi(reqBody));
- if (resbody.ResData.Any())
- {
- if (_sxService.SyncMaterInfo(resbody.ResData))
- {
- }
- }
- }
- }
- return result.ToCamelCaseString();
- }
- /// <summary>
- /// 帘线工字轮信息传输接口
- /// </summary>
- /// <param name="reqDto"></param>
- /// <returns></returns>
- [HttpPost(Name = "SpoolMaterialInfoTrans")]
- public SRes SpoolMaterialInfoTrans(SxSpoolMaterialInfoTransRequest reqDto)
- {
- return ConcurrencyReqControl<SxSpoolMaterialInfoTransRequest, SRes>(lockerSpoolMaterialInfoTrans, "SpoolMaterialInfoTrans" + reqDto.SpoolCode, reqDto.SpoolCode, reqDto, _sxService.SpoolMaterialInfoTrans);
- }
- /// <summary>
- /// 时效库入库工字轮反馈接口
- /// </summary>
- /// <param name="billcode"></param>
- /// <returns></returns>
- [HttpPost(Name = "SXProductStockInFeedBack")]
- public SRes SXProductStockInFeedBack(string doccode)
- {
- var list = _sxService.GetBillFeedbackList(p => p.BillCode == doccode);
- var dtolist = _mapper.Map<List<SXProductStockInFeedBackRequestItem>>(list);
- var dto = new SXProductStockInFeedBackRequest() { ListInfo = dtolist };
- SRes resbody = JsonConvert.DeserializeObject<SRes>(WmsServiceExportApi(dto));
- return resbody;
- }
- /// <summary>
- /// 扭转检测结果值上传接口
- /// </summary>
- /// <param name="billcode"></param>
- /// <returns></returns>
- [HttpPost(Name = "TorsChkValFeedBack")]
- public SRes TorsChkValFeedBack(string doccode)
- {
- var list = _sxService.GetBillFeedbackList(p => p.BillCode == doccode);
- var dtolist = _mapper.Map<List<TorsChkValFeedBackRequestItem>>(list);
- var dto = new TorsChkValFeedBackRequest() { ListInfo = dtolist };
- SRes resbody = JsonConvert.DeserializeObject<SRes>(WmsServiceExportApi(dto));
- return resbody;
- }
- /// <summary>
- /// 时效库出库装箱工字轮信息反馈接口
- /// </summary>
- /// <param name="billcode"></param>
- /// <returns></returns>
- [HttpPost]
- public SRes EnchaseStockOutFeedBack(string doccode)
- {
- var list = _sxService.GetBillFeedbackList(p => p.BillCode == doccode);
- var dtolist = _mapper.Map<List<EnchaseStockOutFeedBackRequestItem>>(list);
- var dto = new EnchaseStockOutFeedBackRequest() { ListInfo = dtolist };
- SRes resbody = JsonConvert.DeserializeObject<SRes>(WmsServiceExportApi(dto));
- return resbody;
- }
- /// <summary>
- /// 工字轮装箱位置信息上传接口
- /// </summary>
- /// <param name="billcode"></param>
- /// <returns></returns>
- [HttpPost]
- public SRes EnchaseCoordPosFeedBack(string doccode)
- {
- var list = _sxService.GetBillFeedbackList(p => p.BillCode == doccode);
- var dtolist = _mapper.Map<List<EnchaseCoordPosFeedBackRequestItem>>(list);
- var dto = new EnchaseCoordPosFeedBackRequest() { ListInfo = dtolist };
- SRes resbody = JsonConvert.DeserializeObject<SRes>(WmsServiceExportApi(dto));
- return resbody;
- }
- /// <summary>
- /// 装箱称重信息上传接口
- /// </summary>
- /// <param name="billcode"></param>
- /// <returns></returns>
- [HttpPost]
- public SRes ProBoxWeightFeedBack(string doccode)
- {
- var list = _sxService.GetBillFeedbackList(p => p.BillCode == doccode);
- var dtolist = _mapper.Map<List<ProBoxWeightFeedBackRequestItem>>(list);
- var dto = new ProBoxWeightFeedBackRequest() { ListInfo = dtolist };
- SRes resbody = JsonConvert.DeserializeObject<SRes>(WmsServiceExportApi(dto));
- return resbody;
- }
- /// <summary>
- /// 库存改判
- /// </summary>
- /// <param name="reqDto"></param>
- /// <returns></returns>
- [HttpPost]
- public SRes StockChange(SxStockChangeRequest reqDto)
- {
- return ConcurrencyReqControl<SxStockChangeRequest, SRes>(lockerlockerStockChange, "StockChange" + reqDto.BillCode, reqDto.BillCode, reqDto, _sxService.StockChange);
- }
- /// <summary>
- /// 改判反馈接口
- /// </summary>
- /// <param name="request"></param>
- /// <returns></returns>
- [HttpPost]
- public SRes StockChangeFeedBack(string doccode)
- {
- var list = _sxService.GetBillFeedbackList(p => p.BillCode == doccode);
- var dtolist = _mapper.Map<List<StockChangeFeedBackRequestItem>>(list);
- var dto = new StockChangeFeedBackRequest() { ListInfo = dtolist };
- SRes resbody = JsonConvert.DeserializeObject<SRes>(WmsServiceExportApi(dto));
- return resbody;
- }
- /// <summary>
- /// 实时库存查询接口
- /// </summary>
- /// <param name="reqDto"></param>
- /// <returns></returns>
- [HttpPost]
- public string GetCurStockList(string reqDto)
- {
- return null;
- }
- /// <summary>
- /// 移库货位上报MES接口
- /// </summary>
- /// <param name="request"></param>
- /// <returns></returns>
- [HttpPost]
- public SRes MoveStockLocationFeedBack(string doccode)
- {
- var list = _sxService.GetBillFeedbackList(p => p.BillCode == doccode);
- var dtolist = _mapper.Map<List<MoveStockLocationFeedBackRequestItem>>(list);
- var dto = new MoveStockLocationFeedBackRequest() { ListInfo = dtolist };
- SRes resbody = JsonConvert.DeserializeObject<SRes>(WmsServiceExportApi(dto));
- return resbody;
- }
- }
- }
|