shengji.sql 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. CREATE TABLE `feedtemplethistory` (
  2. `id` bigint(20) NOT NULL COMMENT '配方模板id',
  3. `pastureid` bigint(20) NOT NULL,
  4. `tcode` varchar(50) DEFAULT NULL COMMENT '配方编码',
  5. `tname` varchar(50) NOT NULL COMMENT '配方名称',
  6. `tcolor` varchar(50) DEFAULT '#ccc' COMMENT '配方模板颜色',
  7. `ccid` bigint(20) DEFAULT NULL COMMENT '牲畜类别id',
  8. `ccname` varchar(50) DEFAULT NULL COMMENT '类别名称',
  9. `fttype` varchar(50) DEFAULT NULL COMMENT '配方类型',
  10. `fttypeid` tinyint(1) DEFAULT 0 COMMENT '配方类型id(1饲喂,2预混,3补料)',
  11. `source` varchar(50) DEFAULT NULL COMMENT '来源',
  12. `remark` varchar(255) DEFAULT NULL COMMENT '备注',
  13. `enable` tinyint(1) DEFAULT 1 COMMENT '启用',
  14. `sort` int(11) DEFAULT 1 COMMENT '排序',
  15. `owner` varchar(50) DEFAULT NULL COMMENT '来源',
  16. `weight` decimal(38,3) DEFAULT NULL COMMENT '总重',
  17. `dryweight` decimal(38,3) DEFAULT NULL COMMENT '干物质含量',
  18. `isdelete` tinyint(1) DEFAULT 0 COMMENT '是否删除(0为未删除,1为伪删除)',
  19. `version` int(11) DEFAULT 1 COMMENT '修改一次增加版本号',
  20. `savetime` datetime DEFAULT current_timestamp() COMMENT '保存日期',
  21. `isissue` tinyint(4) DEFAULT 0 COMMENT '下发是否为当前配方(1是,0否)',
  22. `issueversion` int(11) DEFAULT 0 COMMENT '下发时的版本',
  23. `issueid` bigint(20) DEFAULT NULL COMMENT '下发时的id',
  24. `backup1` varchar(255) DEFAULT NULL COMMENT '备用1',
  25. `backup2` varchar(255) DEFAULT NULL COMMENT '备用2',
  26. `createdate` datetime DEFAULT NULL
  27. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3;
  28. CREATE TABLE `lpplandtl1history` (
  29. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '发料计划详情',
  30. `pastureid` bigint(20) NOT NULL,
  31. `lppid` bigint(20) DEFAULT NULL COMMENT '计划id',
  32. `barid` bigint(20) DEFAULT NULL COMMENT '栏舍id',
  33. `barname` varchar(50) DEFAULT NULL COMMENT '栏舍名称',
  34. `fpdid` bigint(20) DEFAULT NULL COMMENT '栏舍配方子id',
  35. `fttype` tinyint(4) DEFAULT 1 COMMENT '配方类型(1饲喂,0补料)',
  36. `lweight` decimal(10,2) unsigned DEFAULT NULL COMMENT '重量',
  37. `sort` int(11) DEFAULT 0 COMMENT '顺序',
  38. `tmrid` bigint(20) DEFAULT NULL COMMENT '撒料车id',
  39. `tmrname` varchar(50) DEFAULT NULL COMMENT '撒料车名称',
  40. `background` varchar(50) DEFAULT NULL COMMENT '颜色',
  41. `cowcount` int(11) DEFAULT NULL COMMENT '牛头数',
  42. `ccountradio` decimal(38,2) DEFAULT NULL COMMENT '牛头系数',
  43. `lweighthis` decimal(10,2) DEFAULT NULL,
  44. `createdate` datetime DEFAULT NULL,
  45. PRIMARY KEY (`id`,`pastureid`) USING BTREE,
  46. KEY `fpdid` (`fpdid`) USING BTREE,
  47. KEY `lppid` (`lppid`) USING BTREE
  48. ) ENGINE=InnoDB AUTO_INCREMENT=3932719861083937372 DEFAULT CHARSET=utf8mb3;
  49. CREATE TABLE `feedphistory` (
  50. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  51. `pastureid` bigint(20) NOT NULL,
  52. `barname` char(20) DEFAULT NULL,
  53. `barid` bigint(20) NOT NULL COMMENT '舍栏id',
  54. `softccount` int(11) DEFAULT NULL COMMENT '软件牛头数',
  55. `ccount` int(11) NOT NULL DEFAULT 0 COMMENT '实际头数',
  56. `ratio` decimal(38,2) DEFAULT NULL COMMENT '系数',
  57. `ccountratio` decimal(38,2) DEFAULT 100.00 COMMENT '系数牛头数',
  58. `ftid` bigint(20) DEFAULT NULL COMMENT '配方模版id(不是补料模版的id)',
  59. `ftname` varchar(50) DEFAULT NULL COMMENT '配方名称',
  60. `ptsfid` bigint(20) DEFAULT NULL COMMENT '配方模版id(补料模版的id)',
  61. `ptsfname` varchar(50) DEFAULT NULL COMMENT '补料名称',
  62. `feedweight` decimal(38,3) DEFAULT NULL COMMENT '投喂量',
  63. `ftweight` decimal(38,3) DEFAULT NULL COMMENT '配方重量',
  64. `supplyweight` decimal(38,3) DEFAULT 0.000 COMMENT '补料重量',
  65. `owner` varchar(20) DEFAULT NULL COMMENT '编制人',
  66. `createdate` datetime DEFAULT NULL,
  67. PRIMARY KEY (`id`)
  68. ) ENGINE=InnoDB AUTO_INCREMENT=3976043477267383617 DEFAULT CHARSET=utf8mb3 ROW_FORMAT=DYNAMIC COMMENT='栏舍';
  69. CREATE TABLE `fpdetailhistory` (
  70. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '配方子表id',
  71. `pastureid` bigint(20) NOT NULL,
  72. `barid` bigint(20) NOT NULL COMMENT '栏舍id',
  73. `barname` varchar(50) DEFAULT NULL COMMENT '栏舍名称',
  74. `times` tinyint(4) DEFAULT NULL COMMENT '班次',
  75. `tratio` decimal(38,1) DEFAULT NULL COMMENT '班次比例',
  76. `weight` decimal(38,2) unsigned DEFAULT 0.00 COMMENT '重量',
  77. `ptsrate` decimal(38,6) unsigned zerofill DEFAULT 00000000000000000000000000000000.000000 COMMENT '补料比例',
  78. `cowcount` char(20) DEFAULT NULL COMMENT '牛头数',
  79. `ccountradio` char(20) DEFAULT NULL COMMENT '牛头系数',
  80. `ptid` bigint(20) DEFAULT -1 COMMENT '配方模板',
  81. `ptsid` bigint(20) DEFAULT -1 COMMENT '补料配方',
  82. `ptuse` decimal(38,2) unsigned NOT NULL DEFAULT 0.00 COMMENT '0 未分配 大于0分配',
  83. `ptsuse` decimal(38,2) unsigned NOT NULL DEFAULT 0.00 COMMENT '0 未分配 大于0分配',
  84. `supplement` decimal(38,2) DEFAULT 0.00,
  85. `createdate` datetime DEFAULT NULL,
  86. PRIMARY KEY (`id`,`pastureid`) USING BTREE
  87. ) ENGINE=InnoDB AUTO_INCREMENT=3976043477519043586 DEFAULT CHARSET=utf8mb3 COMMENT='栏舍配方子表历史记录';
  88. alter table fit_history
  89. add autosecond int(11) DEFAULT NULL;
  90. alter table fit_history
  91. add preftid bigint(20) DEFAULT 0;
  92. alter table fit_history
  93. add feedgroup varchar(50) DEFAULT NULL;
  94. UPDATE `tmrwatch2`.`scheduled_up` SET `datasql` = 'SELECT\r\n d.id,IFNULL(ft.id,d2.feedtempletid ) recipeId, \r\n IFNULL(d.templetName,d2.feedtempletName ) recipeName, \r\n date_format(d.mydate,\'%Y-%m-%d\') as dropDate,ifnull((select sort from downloadedplan where pid=d.pid and lpplanType !=d.lpplanType and mydate=d.mydate),d.sort) as tmrNo,\r\n d.Times as dropShift,b.bcode as penId,d2.Fname as penName,fp.CCOUNT as cowCount, d2.SORT as feedingNo, \r\nifnull(ROUND(d2.lweight * (dd.actualweightminus/ (select sum(actualweightminus) from downloadplandtl1 where pid = dd.pid and type = 0) ),2) ,0)as expWeight,\r\n d2.ActualWeightMinus as actualWeight, ifnull(date_format(timestamp(d2.InTime,CONCAT(\'-\',d2.processTime)),\'%Y-%m-%d %H:%i:%s\'),\"\") as startTime,\r\n date_format(d2.InTime,\'%Y-%m-%d %H:%i:%s\') as endTime,ifnull((SELECT dr.driver FROM dutyrecord dr \r\nWHERE dr.pastureid = d.pastureid AND dr.eqid = d.tmrid AND dr.times= d.times AND dr.operatetime <=d.mydate \r\nORDER BY dr.operatetime DESC LIMIT 1),\"\") as tmrName ,d.tmrtname equipmentId ,\r\ndd.fname,\r\nROUND( d2.actualweightminus/( select sum(dd2.actualweightminus) from downloadplandtl2 dd2 where dd2.pid = d2.pid) * (dd.actualweightminus ),2) feedWeight\r\n from downloadedplan d \r\n LEFT JOIN downloadplandtl2 d2 on d.id=d2.PID \r\n LEFT JOIN (select dd.pid as lppid,dd1.* from downloadedplan dd join downloadplandtl1 dd1 on dd1.pid = dd.id and dd1.type = 0 \r\n where dd.mydate= date_format(?,\'%Y-%m-%d\') and dd.IsCompleted=1 and dd.lpplanType in (0,1) ) dd on dd.lppid = d.pid\r\n \r\n LEFT JOIN feedp fp on d2.FBarID=fp.barid \r\n left join bar b on fp.barid = b.id and d.pastureid = b.pastureid\r\n left JOIN feedtemplet ft on d.templetName=ft.TNAME \r\n where d.mydate= date_format(?,\'%Y-%m-%d\') and d.IsCompleted=1 and d.lpplanType!=1 and d.pastureid = ? and d.id in (idlist) order by tmrno' WHERE `id` = 2;
  95. UPDATE `tmrwatch2`.`apisql` SET `sqlstr` = 'SELECT \r\n(SELECT `pasture_name` FROM `pasture` WHERE pastureid = d.pastureid) 牧场,\r\nDATE_FORMAT(d.`mydate`, \'%Y-%m-%d\') 日期, d.`tmrtname` TMR名称,d.`projname` 车次,\r\nCASE d.`times` \r\nWHEN 1 THEN\r\n\'第一班\'\r\nWHEN 2 THEN\r\n\'第二班\'\r\nWHEN 3 THEN\r\n\'第三班\'\r\nWHEN 4 THEN\r\n\'第四班\'\r\nEND 班次,d.tempid as ftid ,(select tname from feedtemplet where id = d.tempid and pastureid = d.pastureid) 配方名称,d1.`fname` 饲料,d1.`lweight` 理论重量,d1.`actualweightminus` 实际重量,\r\nABS(d1.`lweight`-d1.`actualweightminus`) 误差值,\r\n\r\n\r\nCONCAT(if(round(ifnull(if((select inforvalue from sysopt where inforname = \'accuracy\' and pastureid = d1.`pastureid`) = 1,if(abs(d1.actualweightminus - d1.lweight) <=d1.feedallowratio , 100,if(d1.actualweightminus > d1.lweight , 1-(abs(d1.actualweightminus - d1.lweight) - d1.feedallowratio)/d1.actualweightminus, 1-(abs(d1.actualweightminus - d1.lweight) - d1.feedallowratio)/d1.lweight) *100) ,\r\nIF (d1.`actualweightminus`>d1.`lweight`,\r\nROUND((d1.`lweight`/d1.`actualweightminus`*100),2) ,\r\nROUND((d1.`actualweightminus`/d1.`lweight`*100) ,2))),0),2) < 0 ,0,round(ifnull(if((select inforvalue from sysopt where inforname = \'accuracy\' and pastureid = d1.`pastureid`) = 1,if(abs(d1.actualweightminus - d1.lweight) <=d1.feedallowratio , 100,if(d1.actualweightminus > d1.lweight , 1-(abs(d1.actualweightminus - d1.lweight) - d1.feedallowratio)/d1.actualweightminus, 1-(abs(d1.actualweightminus - d1.lweight) - d1.feedallowratio)/d1.lweight)*100) ,\r\nIF (d1.`actualweightminus`>d1.`lweight`,\r\nROUND((d1.`lweight`/d1.`actualweightminus`*100),2) ,\r\nROUND((d1.`actualweightminus`/d1.`lweight`*100) ,2))),0),2)),\'%\') 准确率,\r\nd.`plantime` 计划时间,\r\nd1.`begintime` 开始时间1,\r\nDATE_FORMAT(d1.`intime`, \'%H:%i:%s\') 结束时间,\r\nDATE_FORMAT(IFNULL((SELECT MAX(intime) FROM downloadplandtl1 d2 \r\nWHERE d1.`pid`=d2.`pid` AND d1.pastureid = d2.pastureid AND d2.intime<d1.intime)\r\n, (SELECT MAX(intime) FROM downloadedplan d2 \r\nWHERE d1.`date`=d2.`mydate` AND d1.pastureid = d2.pastureid AND d2.id=d1.pid)\r\n), \'%H:%i:%s\') 开始时间,\r\ncase d1.buttontype\r\nwhen 1 then \'自动\'\r\nwhen 2 then \'手动\'\r\nwhen 3 then \'手动\'\r\nend 跳转方式,d1.`lastactualweight` 开始重量,d1.`actualweight` 结束重量,\r\n(select de.processtime from downloadplandtl1_exec de where de.pid = d.id AND d.`pastureid`=de.`pastureid` and de.sort = d1.sort ) 搅拌时间\r\n\r\n\r\nFROM `downloadedplan` d JOIN `downloadplandtl1` d1 ON d.`id`=d1.`pid` AND d.`pastureid`=d1.`pastureid`\r\nWHERE d.pastureid=? AND d.`mydate` BETWEEN ? AND ? AND d.lpplantype in (0,1,4) and d1.type = 0 and iscompleted = 1\r\nAND ( d.`tmrtname`=? or ? = \'\')\r\nAND ( d.`projname`=? or ? = \'\')\r\nAND ( d.`times`=? or ? = \'\')\r\nAND ( if(? = 1,d1.`buttontype` = 1,d1.`buttontype` != 1) or ? = \'\')\r\nAND ( d.`templetname`=? or ? = \'\')\r\n and if(? = \'\' and ? = \'\' , 1=1 ,ABS(d1.`lweight`-d1.`actualweightminus`) between ? and ?) \r\n and if(? = \'\' and ? = \'\' , 1=1 ,if(round(ifnull(if((select inforvalue from sysopt where inforname = \'accuracy\' and pastureid = d1.`pastureid`) = 1,if(abs(d1.actualweightminus - d1.lweight) <=d1.feedallowratio , 100,if(d1.actualweightminus > d1.lweight , 1-(abs(d1.actualweightminus - d1.lweight) - d1.feedallowratio)/d1.actualweightminus, 1-(abs(d1.actualweightminus - d1.lweight) - d1.feedallowratio)/d1.lweight) *100) ,\r\nIF (d1.`actualweightminus`>d1.`lweight`,\r\nROUND((d1.`lweight`/d1.`actualweightminus`*100),2) ,\r\nROUND((d1.`actualweightminus`/d1.`lweight`*100) ,2))),0),2) < 0 ,0,round(ifnull(if((select inforvalue from sysopt where inforname = \'accuracy\' and pastureid = d1.`pastureid`) = 1,if(abs(d1.actualweightminus - d1.lweight) <=d1.feedallowratio , 100,if(d1.actualweightminus > d1.lweight , 1-(abs(d1.actualweightminus - d1.lweight) - d1.feedallowratio)/d1.actualweightminus, 1-(abs(d1.actualweightminus - d1.lweight) - d1.feedallowratio)/d1.lweight)*100) ,\r\nIF (d1.`actualweightminus`>d1.`lweight`,\r\nROUND((d1.`lweight`/d1.`actualweightminus`*100),2) ,\r\nROUND((d1.`actualweightminus`/d1.`lweight`*100) ,2))),0),2)) between ? and ?) \r\n and if(? = \'\' and ? = \'\' , 1=1 ,ROUND(IFNULL(IF(ABS(d1.`actualweightminus`-d1.`lweight`)<=d1.`feedallowratio` AND d1.`actualweightminus`<>0,1,0)/1,0)*100,2) between ? and ?) \r\n and if(?= \'\',1, if(d1.`feedallowratio` <=0,0, if(ABS(d1.`lweight`-d1.`actualweightminus`) >d1.`feedallowratio` ,1,0 ))) = 1\r\n \r\nORDER BY d.`mydate`,d.`projname`,d1.`intime` \r\n' WHERE `id` = 1551;
  96. UPDATE `tmrwatch2`.`apisql` SET `sqlstr` = 'SELECT \r\n(SELECT `pasture_name` FROM `pasture` WHERE pastureid = d.pastureid) 牧场,\r\nDATE_FORMAT(d.`mydate`, \'%Y-%m-%d\') 日期, d.`tmrtname` TMR名称,d.`projname` 车次,\r\nCASE d.`times` \r\nWHEN 1 THEN\r\n\'第一班\'\r\nWHEN 2 THEN\r\n\'第二班\'\r\nWHEN 3 THEN\r\n\'第三班\'\r\nWHEN 4 THEN\r\n\'第四班\'\r\nEND 班次,\r\n(select tname from feedtemplet where id = d.tempid and pastureid = d.pastureid) 配方名称,d.tempid ftid,d2.`fname` 栏舍,d2.`lweight` 理论重量,d2.`actualweightminus` 实际重量,\r\nABS(d2.`lweight`-d2.`actualweightminus`) 误差值,\r\nCONCAT(if(round(ifnull(if((select inforvalue from sysopt where inforname = \'accuracy\' and pastureid = d2.`pastureid`) = 1,if(abs(d2.actualweightminus - d2.lweight) <=d2.allowratio , 100,if(d2.actualweightminus > d2.lweight , 1-(abs(d2.actualweightminus - d2.lweight) - d2.allowratio)/d2.actualweightminus, 1-(abs(d2.actualweightminus - d2.lweight) - d2.allowratio)/d2.lweight)*100) ,\r\nIF (d2.`actualweightminus`>d2.`lweight`,\r\nROUND((d2.`lweight`/d2.`actualweightminus`*100),2) ,\r\nROUND((d2.`actualweightminus`/d2.`lweight`*100) ,2))),0),2) < 0,0,round(ifnull(if((select inforvalue from sysopt where inforname = \'accuracy\' and pastureid = d2.`pastureid`) = 1,if(abs(d2.actualweightminus - d2.lweight) <=d2.allowratio , 100,if(d2.actualweightminus > d2.lweight , 1-(abs(d2.actualweightminus - d2.lweight) - d2.allowratio)/d2.actualweightminus, 1-(abs(d2.actualweightminus - d2.lweight) - d2.allowratio)/d2.lweight) * 100) ,\r\nIF (d2.`actualweightminus`>d2.`lweight`,\r\nROUND((d2.`lweight`/d2.`actualweightminus`*100),2) ,\r\nROUND((d2.`actualweightminus`/d2.`lweight`*100) ,2))),0),2)),\'%\') 准确率,\r\n\r\n\r\n\r\nDATE_FORMAT(d.`plantime`, \'%H:%i:%s\') 计划时间,d2.`begintime` 开始时间1,DATE_FORMAT(d2.`intime`, \'%H:%i:%s\') 结束时间,\r\nDATE_FORMAT(IFNULL((SELECT MAX(intime) FROM downloadplandtl2 d1\r\nWHERE d1.`pid`=d2.`pid` AND d1.pastureid = d2.pastureid AND d1.intime<d2.intime)\r\n, (SELECT MAX(intime) FROM downloadplandtl1_exec de\r\nWHERE de.`date`=d2.`date` AND de.pastureid = d2.pastureid AND de.pid=d2.pid)\r\n), \'%H:%i:%s\') 开始时间,\r\n\r\ncase d2.buttontype\r\nwhen 1 then \'自动\'\r\nwhen 2 then \'手动\'\r\nwhen 3 then \'手动\'\r\nend 跳转方式,d2.`lastactualweight` 开始重量,d2.`actualweight` 结束重量\r\nFROM `downloadedplan` d JOIN `downloadplandtl2` d2 ON d.`id`=d2.`pid` AND d.`pastureid`=d2.`pastureid` and d.iscompleted = 1\r\nWHERE d.pastureid=? AND d.`mydate` BETWEEN ? AND ? AND d.lpplantype in (0,2) and d2.type = 0\r\nAND ( d.`tmrtname`=? or ? = \'\')\r\nAND ( d.`projname`=? or ? = \'\')\r\nAND ( d.`times`=? or ? = \'\')\r\nAND ( d.`templetname`=? or ? = \'\')\r\nAND ( d2.`fname`=? or ? = \'\')\r\nAND ( if(? = 1,d2.`buttontype` = 1,d2.`buttontype` != 1) or ? = \'\')\r\n\r\n and if(? = \'\' and ? = \'\' , 1=1 ,ABS(d2.`lweight`-d2.`actualweightminus`) between ? and ?) \r\n and if(? = \'\' and ? = \'\' , 1=1 ,if(round(ifnull(if((select inforvalue from sysopt where inforname = \'accuracy\' and pastureid = d2.`pastureid`) = 1,if(abs(d2.actualweightminus - d2.lweight) <=d2.allowratio , 100,if(d2.actualweightminus > d2.lweight , 1-(abs(d2.actualweightminus - d2.lweight) - d2.allowratio)/d2.actualweightminus, 1-(abs(d2.actualweightminus - d2.lweight) - d2.allowratio)/d2.lweight)*100) ,\r\nIF (d2.`actualweightminus`>d2.`lweight`,\r\nROUND((d2.`lweight`/d2.`actualweightminus`*100),2) ,\r\nROUND((d2.`actualweightminus`/d2.`lweight`*100) ,2))),0),2) < 0,0,round(ifnull(if((select inforvalue from sysopt where inforname = \'accuracy\' and pastureid = d2.`pastureid`) = 1,if(abs(d2.actualweightminus - d2.lweight) <=d2.allowratio , 100,if(d2.actualweightminus > d2.lweight , 1-(abs(d2.actualweightminus - d2.lweight) - d2.allowratio)/d2.actualweightminus, 1-(abs(d2.actualweightminus - d2.lweight) - d2.allowratio)/d2.lweight) * 100) ,\r\nIF (d2.`actualweightminus`>d2.`lweight`,\r\nROUND((d2.`lweight`/d2.`actualweightminus`*100),2) ,\r\nROUND((d2.`actualweightminus`/d2.`lweight`*100) ,2))),0),2)) between ? and ?) \r\n and if(? = \'\' and ? = \'\' , 1=1 ,ROUND(IFNULL(IF(ABS(d2.`actualweightminus`-d2.`lweight`)<=d2.`allowratio` AND d2.`actualweightminus`<>0,1,0)/1,0)*100,2) between ? and ?) \r\n and if(?= \'\',1, if(d2.`allowratio` <=0,0, if(ABS(d2.`lweight`-d2.`actualweightminus`) >d2.`allowratio` ,1,0 ))) = 1\r\n \r\n\r\nORDER BY d.`mydate`,d.`projname`,d2.`intime` ' WHERE `id` = 1552;