using DTO;
|
using IServices;
|
using Microsoft.AspNetCore.Http;
|
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.Extensions.Logging;
|
using Newtonsoft.Json;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Threading.Tasks;
|
using System.Transactions;
|
using zhengcaioa.Models;
|
|
namespace zhengcaioa.Controllers.admin
|
{
|
[CheckLogin]
|
public class AdmAskController : Controller
|
{
|
private readonly IHrDeptService _hrDeptService;
|
private readonly ILogger<AdmAskController> _logger;
|
private readonly IAskService _askService;
|
private readonly IWfRunProcessService _wfRunProcessService;
|
private readonly IWfHistoryService _wfHistoryService;
|
private readonly IWfNeeddeelService _wfNeeddeelService;
|
private readonly IAdmGoodsManageService _admGoodsManageService;
|
|
public AdmAskController(ILogger<AdmAskController> logger, IAskService askService, IHrDeptService hrDeptService, IWfRunProcessService wfRunProcessService
|
, IWfHistoryService wfHistoryService, IWfNeeddeelService wfNeeddeelService
|
, IAdmGoodsManageService admGoodsManageService)
|
{
|
_logger = logger;
|
_hrDeptService = hrDeptService;
|
_askService = askService;
|
_wfRunProcessService = wfRunProcessService;
|
_wfHistoryService = wfHistoryService;
|
_wfNeeddeelService = wfNeeddeelService;
|
_admGoodsManageService = admGoodsManageService;
|
}
|
|
public IActionResult Askcost(string id = "")
|
{
|
AdmAskcostDTO dto = new AdmAskcostDTO();
|
var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
|
|
|
//流程相关
|
string shifoubiaoji = "A";
|
string sifoudangqian = "A";
|
string dangqianbuzhou = "提交";
|
var lishiyijian = new List<WfHistoryDTO>();
|
|
if (string.IsNullOrEmpty(id))
|
{
|
dto.CreaterName = curentuser.UserName;
|
dto.Tittle = "费用申请(" + curentuser.UserName + ")";
|
}
|
else if (dto != null)
|
{
|
dto = _askService.GetAskcost(id);
|
dto.CostName = dto.Cost.Value.ToString("F2");
|
|
var wfRunProcessDTO = _wfRunProcessService.GetList(dto.Id, "04").FirstOrDefault();
|
if (wfRunProcessDTO == null)
|
{
|
shifoubiaoji = "D";
|
sifoudangqian = "D";
|
}
|
else
|
{
|
dangqianbuzhou = wfRunProcessDTO.Step;
|
//查询历史意见
|
lishiyijian = _wfHistoryService.GetListshenpi(wfRunProcessDTO.Id);
|
if (wfRunProcessDTO.Step != "提交")
|
{
|
shifoubiaoji = "D";
|
}
|
|
//查询待办
|
var chaxundaiban = _wfNeeddeelService.GetListTracking(wfRunProcessDTO.Id, wfRunProcessDTO.Step).Where(x => x.DeelUserId == curentuser.Id).ToList();
|
if (chaxundaiban != null && chaxundaiban.Count > 0)
|
{
|
sifoudangqian = "A";
|
}
|
else
|
{
|
sifoudangqian = "D";
|
}
|
|
}
|
|
|
|
|
}
|
|
ViewBag.shifoubiaoji = shifoubiaoji;
|
ViewBag.sifoudangqian = sifoudangqian;
|
ViewBag.lishiyijian = lishiyijian;
|
ViewBag.dangqianbuzhou = dangqianbuzhou;
|
|
ViewData.Model = dto;
|
return View();
|
}
|
|
|
/// <summary>
|
/// 保存申诉
|
/// </summary>
|
/// <param name="data"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult SaveAskcost(AdmAskcostDTO data)
|
{
|
var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
|
ResultEntity resultEntity = new ResultEntity();
|
using (TransactionScope scope = new TransactionScope())
|
{
|
if (data.Step == "提交")
|
{
|
|
data.ShenpiStatus = "D";
|
data.RecStatus = "A";
|
data.Creater = curentuser.Id;
|
data.Createtime = DateTime.Now;
|
data.Modifier = data.Creater;
|
data.Modifytime = data.Createtime;
|
|
resultEntity = _askService.SaveAskcost(data);
|
if (!resultEntity.Result)
|
{
|
return new JsonResult(resultEntity);
|
}
|
}
|
|
|
//发起流程相关
|
|
resultEntity = _wfRunProcessService.WfAskcost(data.Id, data.Step, data.Tongguojujue, curentuser.Id, data.Content, data.Tittle, "v1");
|
if (!resultEntity.Result)
|
{
|
return new JsonResult(resultEntity);
|
}
|
scope.Complete();
|
}
|
return new JsonResult(resultEntity);
|
}
|
|
|
public IActionResult AskGood(string id = "")
|
{
|
AdmAskGoodDTO dto = new AdmAskGoodDTO();
|
var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
|
|
|
//流程相关
|
string shifoubiaoji = "A";
|
string sifoudangqian = "A";
|
string dangqianbuzhou = "提交";
|
var lishiyijian = new List<WfHistoryDTO>();
|
|
if (string.IsNullOrEmpty(id))
|
{
|
dto.CreaterName = curentuser.UserName;
|
dto.Tittle = "物品申领(" + curentuser.UserName + ")";
|
}
|
else if (dto != null)
|
{
|
dto = _askService.GetAskGood(id);
|
dto.ShuliangName = dto.Shuliang.Value.ToString("F2");
|
|
var wfRunProcessDTO = _wfRunProcessService.GetList(dto.Id, "05").FirstOrDefault();
|
if (wfRunProcessDTO == null)
|
{
|
shifoubiaoji = "D";
|
sifoudangqian = "D";
|
}
|
else
|
{
|
dangqianbuzhou = wfRunProcessDTO.Step;
|
//查询历史意见
|
lishiyijian = _wfHistoryService.GetListshenpi(wfRunProcessDTO.Id);
|
if (wfRunProcessDTO.Step != "提交")
|
{
|
shifoubiaoji = "D";
|
}
|
|
//查询待办
|
var chaxundaiban = _wfNeeddeelService.GetListTracking(wfRunProcessDTO.Id, wfRunProcessDTO.Step).Where(x => x.DeelUserId == curentuser.Id).ToList();
|
if (chaxundaiban != null && chaxundaiban.Count > 0)
|
{
|
sifoudangqian = "A";
|
}
|
else
|
{
|
sifoudangqian = "D";
|
}
|
|
}
|
|
|
|
|
}
|
|
ViewBag.shifoubiaoji = shifoubiaoji;
|
ViewBag.sifoudangqian = sifoudangqian;
|
ViewBag.lishiyijian = lishiyijian;
|
ViewBag.dangqianbuzhou = dangqianbuzhou;
|
|
ViewBag.Goods = _admGoodsManageService.GetList().Where(x=>x.GoodsStatus == "A").ToList();
|
|
ViewData.Model = dto;
|
return View();
|
}
|
|
|
/// <summary>
|
/// 保存申诉
|
/// </summary>
|
/// <param name="data"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult SaveAskGood(AdmAskGoodDTO data)
|
{
|
var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
|
ResultEntity resultEntity = new ResultEntity();
|
using (TransactionScope scope = new TransactionScope())
|
{
|
if (data.Step == "提交")
|
{
|
|
data.ShenpiStatus = "D";
|
data.RecStatus = "A";
|
data.Creater = curentuser.Id;
|
data.Createtime = DateTime.Now;
|
data.Modifier = data.Creater;
|
data.Modifytime = data.Createtime;
|
|
resultEntity = _askService.SaveAskGood(data);
|
if (!resultEntity.Result)
|
{
|
return new JsonResult(resultEntity);
|
}
|
}
|
else if (data.Step == "行政审批" && data.Tongguojujue == "A")
|
{
|
//判断物品数量书否够,够就削减物品数量
|
var admAskGoodDTO = _askService.GetAskGood(data.Id);
|
var admGoodsManageDTO = _admGoodsManageService.Get(admAskGoodDTO.GoodsId);
|
if(admGoodsManageDTO.GoodsLeft.HasValue && admGoodsManageDTO.GoodsLeft.Value>= admAskGoodDTO.Shuliang.Value)
|
{
|
admGoodsManageDTO.GoodsLeft = admGoodsManageDTO.GoodsLeft.Value - admAskGoodDTO.Shuliang.Value;
|
_admGoodsManageService.save(admGoodsManageDTO);
|
}
|
else
|
{
|
resultEntity.Result = false;
|
resultEntity.Message = "物品剩余数量不足";
|
return new JsonResult(resultEntity);
|
}
|
}
|
|
|
//发起流程相关
|
|
resultEntity = _wfRunProcessService.WfAskGood(data.Id, data.Step, data.Tongguojujue, curentuser.Id, data.Content, data.Tittle, "v1");
|
if (!resultEntity.Result)
|
{
|
return new JsonResult(resultEntity);
|
}
|
scope.Complete();
|
}
|
return new JsonResult(resultEntity);
|
}
|
}
|
}
|