#1172 closed дефект (дубликат)
Необходимо изменить процедуры для работы ревизии r242/base
Reported by: | Denis_N | Owned by: | Denis_N |
---|---|---|---|
Priority: | critical | Component: | БД изделий АДС |
Keywords: | Cc: |
Description (last modified by )
Необходимо изменить процедуры для работы ревизии r242/base, где был исправлен баг: несоответствия должны выводить только непустые комментарии типа Запись, а выводят и пустые тоже
drop procedure mismatchQuery;
DELIMITER }
CREATE PROCEDURE mismatchQuery(min int, max int, searchName varchar (100), searchSerial varchar (100), searchComment varchar (10000)) READS SQL DATA
BEGIN
set @prevtotal := 0;
set @mintotal := 0;
select * from (select *, @mintotal as mintotal, @prevtotal := @mintotal - total as prevtotal from
(select products.serial, history.uid, history.date, hist1.total from history inner join
(select uid, count(uid) as total from history where (type_write = "mismatch" or type_write = 'record' or type_write = "repair" or
(type_write = "otk" and status = "fail") or (type_write = "testing" and status = "fail")) and comment is not null and comment != group by uid) as hist1 on history.uid = hist1.uid
inner join products on products.uid = history.uid where (products.name like searchName
and products.serial like searchSerial and history.comment like searchComment) and (history.uid, history.date) in (select uid, max(date) from history where (type_write = "mismatch" or type_write = 'record' or type_write = "repair" or
(type_write = "otk" and status = "fail") or (type_write = "testing" and status = "fail" )) and comment is not null and comment != group by uid )
group by products.serial, history.uid, history.date, hist1.total order by history.date desc) as hist2
where (@mintotal := @minTotal + total)) as hust2 where hust2.mintotal > min and hust2.prevtotal < max;
END}
DELIMITER ;
drop procedure mismatchQueryWithoutOtkRows;
DELIMITER }
CREATE PROCEDURE mismatchQueryWithoutOtkRows(min int, max int, searchName varchar (100), searchSerial varchar (100), searchComment varchar (10000)) READS SQL DATA
BEGIN
set @prevtotal := 0;
set @mintotal := 0;
select * from (select *, @mintotal as mintotal, @prevtotal := @mintotal - total as prevtotal from
(select products.serial, history.uid, history.date, hist1.total from history inner join
(select uid, count(uid) as total from history where (type_write = "mismatch" or type_write = 'record'
or type_write = "repair" or (type_write = "testing" and status = "fail")) and comment is not null and comment != group by uid) as hist1 on history.uid = hist1.uid
inner join products on products.uid = history.uid where (products.name like searchName
and products.serial like searchSerial and history.comment like searchComment) and (history.uid, history.date) in
(select uid, max(date) from history where (type_write = "mismatch" or type_write = 'record' or type_write = "repair" or
(type_write = "testing" and status = "fail") or history
.type_write = 'record') and comment is not null and comment != group by uid)
group by products.serial, history.uid, history.date, hist1.total order by history.date desc) as hist2
where (@mintotal := @minTotal + total)) as hust2 where hust2.mintotal > min and hust2.prevtotal < max;
END}
DELIMITER ;
Attachments (2)
Change History (19)
comment:1 by , 18 months ago
Description: | modified (diff) |
---|---|
Priority: | minor → critical |
Summary: | Необходимо изменить процедуры для работы ревизии № → Необходимо изменить процедуры для работы ревизии r242/base |
comment:2 by , 18 months ago
follow-up: 4 comment:3 by , 18 months ago
Некоторые Записи в истории могут быть без комментария, если пользователю и правда нечего сказать, например запись о внесении изделия в БД.
comment:4 by , 18 months ago
Replying to san:
Некоторые Записи в истории могут быть без комментария, если пользователю и правда нечего сказать, например запись о внесении изделия в БД.
Во-первых, БД предназначена для хранения информации о "внесении изменений" в производимые АДС изделия, а не в БД (иначе получается замкнутый круг: надо было бы вносить в БД запись о внесении в БД записи о внесении записи...).
Во-вторых, если в историю вносится запись о каком-то изменении (даже если это изменение касается БД, а не изделия, что мне кажется неправильным), в этой записи должно быть написано, какое изменение внесено, не так ли? Иначе какой вообще смысл в такой записи? Какую полезную информацию пользователю дает пустая запись в истории? По-моему никакую никакую... Вот и разработчик косвенно в этом со мной согласен, не выводя такие записи... :)
follow-up: 6 comment:5 by , 18 months ago
Наверное я не точно выразился. Я имел в виду запись о приёмке изделия.
Запись не пустая, в ней пустой комментарий. Полезные данные в этой записи: от кого когда и кем была принята плата, но в интерфейсе Несоотвествия нет смысла отображать такую запись.
comment:6 by , 18 months ago
Replying to san:
Наверное я не точно выразился. Я имел в виду запись о приёмке изделия.
Запись не пустая, в ней пустой комментарий.
Полезные данные в этой записи: от кого когда и кем была принята плата,
Так комментарий - это самое главное поле в истории, ради которого, собственно, записи и вносятся! Если в записи поле "комментарий" пустое, то как человек, прочитавший такую запись, догадается, что произошла приемка изделия, а не, например, пролив на него кофе из чашки? ИМХО вполне разумно и оправданно требовать от пользователя описать в комментарии суть произошедшего с изделием события - например "плата принята из монтажа" в описанной тобой ситуации...
но в интерфейсе Несоотвествия нет смысла отображать такую запись.
Следовательно, нет смысла такую запись и записывать!
by , 18 months ago
follow-up: 8 comment:7 by , 18 months ago
comment:8 by , 18 months ago
Replying to san:
Не соглашусь. Вот пример записи без комментария, как видишь она вполне информативна.
В свою очередь, тоже не соглашусь. По этой записи лично я, например, не могу понять, что именно произошло с изделием 30 мая в 10:28.
Изделие изготовленное в АДС приняли на производство.
- Каким образом, прочитав эту запись, можно догадаться, что изделие принято? ИМХО никаким. Я вижу на твоем скриншоте слово "принята" (не понятно, кстати, почему в женском роде) в единственном месте - в заголовке таблицы, а не в собственно записи (как например, и слово "отправлена" тоже)...
- Если изделие было принято, то от кого? В поле "От кого принята" на приведенном тобой скриншоте написано "АДС". АДС приняла плату сама от себя? :) Нонсенс какой-то...
follow-up: 10 comment:9 by , 18 months ago
by , 18 months ago
comment:10 by , 18 months ago
Replying to san:
- Если поле "от кого" заполнено, значит принято
Серьезно? :)
Во-первых, как пользователь об этом должен догадаться? Я вот почему-то не догадался (недогадливый наверное)... :)
Во-вторых, я думаю, что даже если бы это было прямо записано в РЭ (которого нет), ни один пользователь (кроме самого разработчика, принявшего такое странное решение) не сможет это правило запомнить и каждый раз читая историю, производить в голове данное умозаключение (а через пол-года и сам разработчик об этом забудет и сам начнет путаться)...
А вот было бы в комментарии написано: "плата принята" - и догадываться бы не пришлось...
- Да так и было.
Иными словами, в историю изделия была занесена запись о том, что с изделием ничего не произошло. :) Гениально! :) В таком случае (отвечая на твой comment:3), если пользователю нечего было сказать, то и нечего было заносить бессмысленную запись в историю.
АДС изготовила ретранслятор и приняла на производство,
А что ты понимаешь под приемом?
В моем понимании прием - это когда кто-то другой нам ретранслятор передал, а мы от него приняли. До передачи ретранслятор был в чужой зоне ответственности, а при передачи (и нашем приеме) - перешел в нашу зону ответственности. В моем понимании в приведенном тобой примере никакого приема-передачи просто не было. Приема-передачи самому себе от самого себя в моем понимании быть не может. Изделие как было в нашей зоне ответственности, так в ней и осталось. С изделием не произошло, его статус никак не изменился. Следовательно, и в историю записывать нечего.
так-же бывает когда плату паяем мы сами, а если кто-то другой спаяет так и будет написано:
Это - такой же не не информативный скриншот, что и предыдущий. По нему я точно так же не могу понять, что произошло с платой (если не учитывать твое разъяснение в п. 1). По-прежнему искренне не понимаю, почему нельзя писать открытым текстом "принято от Кама-контракта" (или хотя бы просто "Принято", учитывая, что от кого - уже указано) вместо того чтобы потом всем догадываться по каким-то неписанным правилам, что же эта запись означает...
comment:11 by , 18 months ago
Component: | MC04-DSL-3U и его платы → БД изделий АДС |
---|---|
Owner: | changed from | to
follow-up: 13 comment:12 by , 18 months ago
Зайду к вам на "60 минут"))
Я согласен с Алексеем, поскольку считаю, что запись record будет понятнее, если в комментарии будет какое-то разъяснение. Его можно сделать автоматическим, чтобы это не замедляло производственный процесс, т.е. от условий в интерфейсе, если комментарий пустой, то туда автоматически записывается информация с каким-нибудь маркером, который можно указать при sql-запросе к базе, чтобы не выводить эти комментарии в и-е "Несоответсвия"
Уже есть записи с типом "Трансформация", у которых в комментарии указано из какого в какое трансформировалось изделие
follow-up: 15 comment:13 by , 18 months ago
Replying to Denis_N:
Зайду к вам на "60 минут"))
Сам с собой договариваешься о встрече? :)
Его можно сделать автоматическим, чтобы это не замедляло производственный процесс, т.е. от условий в интерфейсе, если комментарий пустой, то туда автоматически записывается информация с каким-нибудь маркером, который можно указать при sql-запросе к базе, чтобы не выводить эти комментарии в и-е "Несоответсвия"
Ход мысли одобряю. Это мне самому приходило в голову. Но только я не согласен с такой реализацией. Я считаю, что система не должна сама что-либо записывать в поле комментария. Поле комментария должно оставаться только для текста, введенного живым пользователем. Зато при выводе истории система могла бы автоматически отображать текст "Принято от Кама-контракта". Отображать его можно прямо в поле комментария (дополнительно к введенному пользователем), но он обязательно должен явным образом отличаться от текста комментария, введенного человеком (отображаться другим цветом, другим шрифтом и т.п. - см. например как trac отображает выше "Владелец: изменён с san на Denis_N").
comment:14 by , 18 months ago
Resolution: | → дубликат |
---|---|
Status: | new → closed |
В связи с появлением более актуального #1175, этот тикет закрываю
follow-ups: 16 17 comment:15 by , 18 months ago
Алексей, правильно ли я понимаю, что под твое предложение подходит примерно следующее: например, появилась запись в таблице история, у которой в столбце "от кого принята " значение "АДС", и в столбце "кому-отправлена" значение тоже "АДС", то при выводе этих записей, например, в Истории добавить текст к тексту комментария (отличный стилями от текста комментария, или в каком-либо ином виде) содержащий, например, "Изделие было принято на производство"?
comment:16 by , 18 months ago
Replying to Denis_N:
Алексей, правильно ли я понимаю, что под твое предложение подходит примерно следующее: например, появилась запись в таблице история, у которой в столбце "от кого принята " значение "АДС", и в столбце "кому-отправлена" значение тоже "АДС", то при выводе этих записей, например, в Истории добавить текст к тексту комментария (отличный стилями от текста комментария, или в каком-либо ином виде) содержащий, например, "Изделие было принято на производство"?
Нет, неправильно. По моему мнению, в идеале, такую запись система не должна записывать (так как она бессмысленна - нельзя принять изделие у самого себя, см. comment:10).
Хотя, с практической точки зрения, я не вижу возможности это пользователю запретить, если он сознательно задался целью внести в БД бессмысленную запись - ведь он может записать в поле "от кого" самые разные варианты - АДС
, "АДС"
, ООО "АДС"
, компания "АДС"
, фирма "АДС"
, Компания "АДС" (ООО)
и т.д. и т.п... Все возможные варианты все равно не предусмотришь... :)
comment:17 by , 18 months ago
Replying to Denis_N:
Алексей, правильно ли я понимаю, что под твое предложение подходит примерно следующее
Если же ты спрашивал конкретно про отображение такой записи (которая в результате ошибки все-таки была занесена в БД), то в целом правильно. Только непонятно, откуда тут взялось "производство" - из описанной тобой записи никак не следует, что изделие принято именно на производство (а не, например, на склад). Мне кажется, что в записи о приемке более важным является то, от какой организации было принято изделие, а не то, в какое подразделение АДС оно потом попало. Поэтому было бы лучше отображать "принято от <xxx>".
Replying to Denis_N:
IMHO просбелма не в том, что процедура выводит пустые комментарии, а в том, что система позволяет пользователю пустые комментарии записывать - см. #1156, где я об этом уже писал.