123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358 |
- using Cksoft.Data;
- using Cksoft.Data.Repository;
- using Cksoft.Unity;
- using DllEapBll.SignalR;
- using DllEapDal;
- using DllEapEntity;
- using DllEapEntity.Onsemi;
- using Microsoft.AspNetCore.Mvc;
- using Microsoft.AspNetCore.SignalR;
- using Microsoft.Extensions.Logging;
- using Newtonsoft.Json;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using Cksoft.Unity.Log4NetConfig;
- using DllStatusShowDal;
- using Microsoft.AspNetCore.Authorization;
- using DllEapDal.OFILM;
- using System.Threading.Tasks;
- namespace DllEapBll.Controllers
- {
- /// <summary>
- /// 机台状态
- /// </summary>
- [Authorize]
- [ApiController]
- [Route("eap/api/[controller]/[action]")]
- public class MacStatusController : ControllerBase
- {
- private ILogger<MacStatusController> myloger = null;
- private readonly IHubContext<MacStatusHub> macStatusHub;
- /// <summary>
- ///
- /// </summary>
- /// <param name="macStatusHub"></param>
- /// <param name="ploger"></param>
- public MacStatusController(IHubContext<MacStatusHub> macStatusHub, ILogger<MacStatusController> ploger)
- {
- this.macStatusHub = macStatusHub;
- myloger = ploger;
- }
- /// <summary>
- /// 获取机台状态
- /// </summary>
- /// <param name="filter"></param>
- /// <returns></returns>
- [HttpGet]
- public EapResponse GetMacStatuses(string filter)
- {
- var errorinfo = string.Empty;
- var res = new EapResponse { Code = 1, Msg = string.Empty };
- using (IDatabase db = DbFactory.Base("eapslave"))
- {
- var dal = new MacStatusAnalysisDal(db);
- var tree = dal.GetStatusTree(filter, ref errorinfo);
- if (tree == null)
- {
- res.Code = -1;
- res.Msg = errorinfo;
- res.Data = null;
- return res;
- }
- res.Data = tree;
- return res;
- }
- }
- /// <summary>
- /// 添加设备状态
- /// </summary>
- /// <param name="macStatus"></param>
- /// <returns></returns>
- [HttpPost]
- public async Task<EapResponse> InsMacStatus([FromBody] MacStatus macStatus)
- {
- var userCode = Request.Headers["usercode"];
- var errorinfo = string.Empty;
- var res = new EapResponse { Code = 1, Msg = string.Empty };
- using (IDatabase db = DbFactory.Base("eap"))
- {
- db.BeginTrans();
- var dal = new MacStatusDal(db);
- MacStatus mst = new MacStatus();
- //添加状态程序名称
- string condition = $" and a.fcode='{macStatus.MacCode}'";
- List<Machine> mac = db.FindListForCondition<Machine>(condition, ref errorinfo).ToList();
- if (mac.Count <= 0)
- {
- errorinfo = $"未找到机台【{macStatus.MacCode}】。";
- return null;
- }
- Ad830PlusProgramDal tempdal = new Ad830PlusProgramDal(db);
- string programname = tempdal.GetProgramName(mac[0], ref errorinfo);
- macStatus.Remark = programname;
- macStatus.ProgramName = string.IsNullOrEmpty(macStatus.ProgramName) ? "待机程序" : macStatus.ProgramName;
- macStatus.STime = DateTime.Now;
- if (macStatus.StatusID == 204905)
- {
- MachineChangeDal MChange = new MachineChangeDal(db);
- MChange.ChangeStart(macStatus,macStatus.Remark);
- }
- if (macStatus.StatusID == 3)
- {
- MachineChangeDal MChange = new MachineChangeDal(db);
- MChange.ChangeEnd(macStatus, macStatus.Remark);
- }
- var result = dal.PushStatusToMQ(mac[0].ID, macStatus, ref errorinfo);
- var micd = new MachineInfoChangeLogDal();
- await micd.InsertLog(macStatus.MacCode, userCode, "修改机台状态", $"修改机台状态为:【{macStatus.StatusID}】");
- if (result < 0)
- {
- res.Code = -1;
- res.Msg = errorinfo;
- res.Data = null;
- return res;
- }
- res.Code = 1;
- res.Data = macStatus;
- db.Commit();
- LogHelper<MacStatus>.LogFatal("新增MacStatus-->" + Json.ToJson(macStatus), "用户操作", macStatus.RecCode);
- return res;
- }
- }
- /// <summary>
- /// 批量修改机台状态
- /// </summary>
- /// <param name="macStatuses"></param>
- /// <returns></returns>
- [HttpPost]
- public EapResponse InsMacStatusBat([FromBody] List<MacStatus> macStatuses)
- {
- var errorinfo = string.Empty;
- var res = new EapResponse { Code = 1, Msg = string.Empty };
- using (IDatabase db = DbFactory.Base("eap"))
- {
- db.BeginTrans();
- var dal = new DllStatusShowDal.MacStatusDal(db);
- foreach (var item in macStatuses)
- {
- var macStatus = item;
- MacStatus mst = new MacStatus();
- //添加状态程序名称
- string condition = $" and a.fcode='{macStatus.MacCode}'";
- List<Machine> mac = db.FindListForCondition<Machine>(condition, ref errorinfo).ToList();
- if (mac.Count <= 0)
- {
- errorinfo = $"未找到机台【{macStatus.MacCode}】。";
- return null;
- }
- Ad830PlusProgramDal tempdal = new Ad830PlusProgramDal(db);
- string programname = tempdal.GetProgramName(mac[0], ref errorinfo);
- macStatus.Remark = programname;
- macStatus.ProgramName = string.IsNullOrEmpty(macStatus.ProgramName) ? "待机程序" : macStatus.ProgramName;
- macStatus.STime = DateTime.Now;
- var result = dal.PushStatusToMQ(mac[0].ID, macStatus, ref errorinfo);
- if (result < 0)
- {
- res.Code = -1;
- res.Msg = errorinfo;
- res.Data = null;
- return res;
- }
- }
- res.Code = 1;
- db.Commit();
- return res;
- }
- }
- /// <summary>
- /// 修改设备结束时间
- /// </summary>
- /// <param name="macStatus"></param>
- /// <returns></returns>
- [HttpPost]
- public EapResponse UdpMacStatus([FromBody] MacStatus macStatus)
- {
- var errorinfo = string.Empty;
- var res = new EapResponse { Code = 1, Msg = string.Empty };
- using (IDatabase db = DbFactory.Base("eap"))
- {
- db.BeginTrans();
- var dal = new MacStatusDal(db);
- macStatus.STime = DateTime.Now;
- macStatus.ETime = DateTime.Now;
- int result = dal.UpdatePreStatus(macStatus, string.Empty, ref errorinfo);
- if (result == -1)
- {
- res.Code = -1;
- res.Msg = errorinfo;
- res.Data = null;
- return res;
- }
- macStatus.StatusID = 3;
- if (this.InsMacStatus(macStatus).Result.Code < 0)
- {
- res.Code = -1;
- res.Msg = "新增闲置状态失败";
- db.Rollback();
- return res;
- }
- res.Data = result;
- db.Commit();
- LogHelper<MacStatus>.LogFatal("修改MacStatus-->" + Json.ToJson(macStatus), "用户操作", macStatus.RecCode);
- return res;
- }
- }
- /// <summary>
- /// lot 调程
- /// </summary>
- /// <param name="lotid"></param>
- /// <param name="macCode"></param>
- /// <returns></returns>
- [HttpPost]
- public EapResponse AdjustmentLot([FromForm] string proName, [FromForm] string macCode)
- {
- /*string errorinfo = string.Empty;
- var res = new EapResponse { Code = 1, Msg = string.Empty };
- #region 根据设备id和lot号,获取程序名称、程序版本
- string ip = AppConfigurtaionServices.Configuration["mesurl" + ":url"];
- string mesurl = ip + "ofilm/eap/findEquipmentProgramInfo";
- Dictionary<string, string> dic = new Dictionary<string, string>();
- dic.Add("equipmentID", macCode);
- dic.Add("lotId", lotid);
- myloger.LogError($"调程访问mesApiUrl:{mesurl}?equipmentID = {macCode}&lotId={lotid}");
- OfilmMesApiResponse mesResult = HttpRequestHelper<OfilmMesApiResponse>.Get(mesurl, dic, ref errorinfo);
- myloger.LogError($"调程访问返回结果,{ JsonConvert.SerializeObject(mesResult)}");
- #endregion
-
- if (mesResult.Success == true)
- {
- using (IDatabase db = DbFactory.Base("eap"))
- {
- db.BeginTrans();
- var dal = new ProgramDal(db);
- string recipe = mesResult.Result.RecipeName;
- int version = Convert.ToInt32(mesResult.Result.Version);
- myloger.LogError($"开始调程,机台编号={macCode},程序名称={recipe},版本={version}");
- var resultcount = dal.DownloadProgramForLot(macCode, recipe, version, ref errorinfo);
- if (resultcount <= 0)
- {
- myloger.LogError($"调程发生错误:{errorinfo}");
- }
- else
- {
- myloger.LogInformation($"调程成功......");
- }
- res.Code = resultcount;
- db.Commit();
- }
- }
- else
- {
- res.Code = -1;
- res.Msg = mesResult.Message;
- }
- return res;*/
- var res = new EapResponse { Code = 1, Msg = string.Empty };
- IDatabase db = null;
- try
- {
- db = DbFactory.Base("eap");
- db.BeginTrans();
- var dal = new ProgramDal(db);
- string errorinfo = string.Empty;
- myloger.LogError($"机台={macCode},程序名称={proName} 开始下载");
- //macCode = "DIBD0034";
- //proName = "18-038";
- //proName = "DMP3099L-7-CU-AD0806AL796CXX-BN";
- var r = dal.DownloadProgram(macCode, proName, ref errorinfo);
- if (r < 0)
- {
- myloger.LogError(errorinfo);
- db.Rollback();
- res.Code = -1;
- res.Msg = errorinfo;
- return res;
- }
- db.Commit();
- return res;
- }
- catch (Exception e)
- {
- res.Code = -1;
- res.Msg = e.Message;
- return res;
- }
- finally
- {
- if (db != null)
- db.Close();
- }
- }
- /// <summary>
- /// Check
- /// </summary>
- /// <param name="macCode"></param>
- /// <returns></returns>
- [HttpGet]
- public OfilmMesApiResponse GetActiveCheck(string macCode)
- {
- var errorinfo = string.Empty;
- var res = new EapResponse { Code = 1, Msg = string.Empty };
- string ip = AppConfigurtaionServices.Configuration["mesurl" + ":url"];
- string mesurl = ip + "ofilm/eap/activeCheck";
- Dictionary<string, string> dic = new Dictionary<string, string>();
- dic.Add("equipmentID", macCode);
- OfilmMesApiResponse mesResult = HttpRequestHelper<OfilmMesApiResponse>.Get(mesurl, dic, ref errorinfo);
- //if (mesResult.Success == false)
- //{
- // res.Code = -1;
- // res.Msg = mesResult.Message + errorinfo;
- // res.Data = null;
- // return res;
- //}
- //res.Data = mesResult.Result;
- return mesResult;
- }
- /// <summary>
- /// 获取机台最新状态
- /// </summary>
- /// <param name="macCode"></param>
- /// <returns></returns>
- [HttpGet]
- public EapResponse GetMacStatuses01(string macCode)
- {
- var errorinfo = string.Empty;
- var res = new EapResponse { Code = 1, Msg = string.Empty };
- using (IDatabase db = DbFactory.Base("eapslave"))
- {
- var dal = new MacStatusDal(db);
- var model = dal.GetMacStatus01ByMacode(macCode);
- if (model == null)
- {
- res.Code = -1;
- res.Msg = errorinfo;
- res.Data = null;
- return res;
- }
- res.Data = model;
- return res;
- }
- }
- }
- }
|