示例#1
0
        private void RegistorToInCal(string serialNumber)
        {
            CalInProcessRepository cipr  = _context.CalInProcessRepository;
            CalInProcess           entry = new CalInProcess();

            entry.SerialNumber   = serialNumber;
            entry.RegisteredDate = AppResources.JSTNow;
            cipr.AddRecord(entry);
        }
示例#2
0
        public ActionResult MoveToIncal([FromBody] SerialAndFlagList serial)
        {
            const double              warningLevel = 0.5;
            const double              daysInYear   = 365.25;
            ToolInventoryRepository   tir          = _context.ToolInventoryRepository;
            MaterialNeedCalRepository mncr         = _context.MaterialNeedCalRepository;
            CalInProcessRepository    cipr         = _context.CalInProcessRepository;
            CalDateRepository         cdr          = _context.CalDateRepository;
            List <CalStat>            calstatlist  = new List <CalStat>();

            for (int i = 0; i < serial.SerialNums.Count; ++i)
            {
                //foreach (var num in serial.SerialNums) {

                CalStat stat = new CalStat();
                stat.SerialNumber = serial.SerialNums[i];
                calstatlist.Add(stat);

                if (serial.NoCheckFlags[i])
                {
                    // RegistorToInCal(stat.SerialNumber);
                    stat.MoveToIncal = true;
                    continue;
                }

                var cip = cipr.GetLatestRecords(ci => ci.SerialNumber == stat.SerialNumber);
                if (cip != null && (cip.CalDate == null || cip.VenShipDate == null))
                {
                    stat.MoveToIncal   = false;
                    stat.InInCal       = true;
                    stat.CommentToUser = "******";
                    continue;
                }

                var inventory         = tir.GetRecord(stat.SerialNumber);
                var material          = mncr.GetRecord(inventory.Material);
                int calInterval       = material.CalInterval ?? 12; // calInterval is in months
                int calIntervalInDays = (int)(daysInYear / 12.0) * calInterval;

                DateTime?LatestCalDate = cdr.GetLatestCalDate(stat.SerialNumber);
                if (LatestCalDate != null)
                {
                    int    days        = AppResources.JSTNow.Subtract((DateTime)LatestCalDate).Days;
                    double percentdays = (double)days / (double)calIntervalInDays;
                    if (percentdays < warningLevel)
                    {
                        stat.MoveToIncal   = false;
                        stat.CommentToUser = $"この Material {inventory.Material} の校正周期は {calInterval} ヵ月です。この Serial の 最新校正日は{LatestCalDate:d}でそこから {days} 日、校正周期の {percentdays:p1} しか経っていません。再度校正のため In-Cal に移動しますか?";
                        continue;
                    }
                }
                // RegistorToInCal(stat.SerialNumber);    //disabled for debugging front end (2020/10/01)
                stat.MoveToIncal = true;
            }

            var serializeOptions = new JsonSerializerOptions {
                //                PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
                PropertyNamingPolicy = null,
                WriteIndented        = true
            };

            return(Json(calstatlist, serializeOptions));
        }
示例#3
0
 public CalInProcessesController(CsmForAsml2Context context, IHubContext <CsmHub> hubContext)
 {
     _context      = context;
     _calInProRepo = context.CalInProcessRepository;
     _hubContext   = hubContext;
 }