using APT.BaseData.Domain.Entities; using APT.BaseData.Domain.Entities.BD; using APT.BaseData.Domain.Enums; using APT.BaseData.Domain.IServices; using APT.BaseData.Domain.IServices.FM; using APT.Infrastructure.Api.Redis; using APT.Infrastructure.Core; using APT.Utility; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; namespace APT.PF.WebApiControllers.Api.PF { [Route("api/PF/CodeRule")] public class CodeRuleController : AuthorizeApiController { IPFCodeRuleService CodeRuleService { get; set; } public CodeRuleController(IPFCodeRuleService coderuleService) { CodeRuleService = coderuleService; } /// /// 查询 /// /// /// [HttpPost, Route("Entities")] public JsonActionResult> Entities([FromBody] KeywordFilter filter) { return WitEntities(null, filter); } /// /// 查询 /// /// /// /// [HttpPost, Route("OrderEntities")] public JsonActionResult> OrderEntities([FromBody] KeywordFilter filter) { return WitOrderEntities(null, filter); } /// /// 查询 /// /// /// [HttpPost, Route("Paged")] public PagedActionResult Paged([FromBody] KeywordPageFilter pageFilter) { return WitPaged(null, pageFilter); } /// /// 查询 /// /// /// [HttpPost, Route("OrderPaged")] public PagedActionResult OrderPaged([FromBody] KeywordPageFilter pageFilter) { return WitOrderPaged(null, pageFilter); } /// /// 删除 /// /// /// [HttpGet, Route("Delete")] public JsonActionResult Delete(string id) { return WitDelete(id); } /// /// 更新 /// /// /// [HttpPost, Route("Update")] public JsonActionResult Update([FromBody] T_PF_CODE_RULE entity) { return WitUpdate(entity); } /// /// 批量删除 /// /// /// [HttpGet, Route("BatchDelete")] public JsonActionResult BatchDelete(string ids) { return WitBatchDelete(ids); } /// /// 获得单条实体数据 /// /// /// [HttpPost, Route("Get")] public JsonActionResult Get([FromBody] KeywordFilter filter) { return WitEntity(null, filter); } /// /// 更新 /// /// /// [HttpPost, Route("GenSystemCode")] public JsonActionResult GenSystemCode([FromBody] SystemCodeFilter fiter) { return SafeExecute(() => { return CodeRuleService.NewGenSerial(fiter); }); } /// /// 跑流水码 /// /// /// [HttpPost, Route("Run")] public JsonActionResult Run([FromBody] SystemCodeFilter fiter) { return SafeExecute(() => { var codeRuleService = APT.Infrastructure.Api.ServiceLocator.Instance.GetService(); return codeRuleService.RunBatch(); }); } /// /// 跑流水码 /// /// /// [HttpPost, Route("GenSerial")] public JsonActionResult GenSerial([FromBody] KeywordFilter fiter) { return SafeExecute(() => { var codeRuleService = APT.Infrastructure.Api.ServiceLocator.Instance.GetService(); return codeRuleService.GenSerial(fiter); }); } /// /// 重置流水码 /// /// /// [HttpPost, Route("Check")] public JsonActionResult Check([FromBody] KeywordFilter filter) { return SafeExecute(() => { var codeRuleService = APT.Infrastructure.Api.ServiceLocator.Instance.GetService(); codeRuleService.SerialCheck(); return true; }); } /// /// 释放预占用 /// /// /// [HttpPost, Route("ReleasePreUseSerial")] public JsonActionResult ReleasePreUseSerial([FromBody] KeywordFilter filter) { return SafeExecute(() => { if (string.IsNullOrEmpty(filter.Keyword)) return false; Expression> expression = t => false; string[] str = filter.Keyword.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); if (str != null) { foreach (var item in str) { var src = item.Split(new char[] { ':' }, StringSplitOptions.RemoveEmptyEntries); if (src != null && src.Length == 2) { int codeRuleType = LibUtils.ToInt(src[0]); var codes = src[1].Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToList(); expression = expression.Or(t => t.CODE_TYPE == codeRuleType && codes.Contains(t.SERIAL)); } } } var tempFilter = new BaseFilter(filter.OrgId); tempFilter.OrgType = FilterOrgTypeEnum.仅本组织; var codeRuleSerials = this.GetEntities(expression, tempFilter).ToList(); if (codeRuleSerials.Any()) { codeRuleSerials.ForEach(t => { if (t.STATUS == (int)PFCodeRuleStatus.预取) t.STATUS = (int)PFCodeRuleStatus.未用; }); this.BantchUpdateEntity(codeRuleSerials); } return true; }); } [HttpPost, Route("RedisTest")] public JsonActionResult RedisTest([FromBody] KeywordFilter filter) { return SafeExecute(() => { CsRedisManager.StringSet("aaa", filter.Keyword); return CsRedisManager.StringGet("aaa"); }); } } }