HaifmvSjlrPzHpController.java 40 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184
  1. package com.huimv.sjlr.plus;
  2. import java.text.SimpleDateFormat;
  3. import java.util.ArrayList;
  4. import java.util.Calendar;
  5. import java.util.Collections;
  6. import java.util.Date;
  7. import java.util.GregorianCalendar;
  8. import java.util.HashMap;
  9. import java.util.List;
  10. import java.util.Map;
  11. import javax.servlet.http.HttpServletRequest;
  12. import javax.servlet.http.HttpServletResponse;
  13. import org.springframework.util.StringUtils;
  14. import org.springframework.web.servlet.ModelAndView;
  15. import com.huimv.busi.xt.constant.XtAppConstant;
  16. import com.huimv.busi.xt.constant.XtSearchSqlConstant;
  17. import com.huimv.busi.xt.model.CommonService;
  18. import com.huimv.busi.xt.utils.DateUtil;
  19. import com.huimv.busi.xt.utils.JsonUtil;
  20. import com.huimv.dto.SjlrPzjlDTO;
  21. import com.huimv.sjlr.dao.SjlrGzdaDAO;
  22. import com.huimv.sjlr.dao.SjlrMzdaDAO;
  23. import com.huimv.sjlr.dao.SjlrPzjlDAO;
  24. import com.huimv.sjlr.dao.SjlrRsjlDAO;
  25. import com.huimv.sjlr.dataobject.SjlrGzda;
  26. import com.huimv.sjlr.dataobject.SjlrGzdaExample;
  27. import com.huimv.sjlr.dataobject.SjlrMzda;
  28. import com.huimv.sjlr.dataobject.SjlrMzdaExample;
  29. import com.huimv.sjlr.dataobject.SjlrPzjl;
  30. import com.huimv.sjlr.dataobject.SjlrPzjlExample;
  31. import com.huimv.sjlr.dataobject.SjlrRsjlExample;
  32. import com.huimv.web.base.BaseController;
  33. import com.huimv.xt.dao.XtGydmDAO;
  34. import com.huimv.xt.dataobject.BaseDO;
  35. import com.huimv.xt.dataobject.XtGydm;
  36. /**
  37. * 版权所有:慧牧科技
  38. * 项目名称:数据录入——配种
  39. * 创建者:
  40. * 创建日期:2017-5-10
  41. * 文件说明:
  42. * 最近修改者 xudan
  43. * 最近修改日期:2017-5-22
  44. */
  45. public class HaifmvSjlrPzHpController extends BaseController {
  46. /**
  47. *@function: 加载配种
  48. *@author: abc
  49. *@date : May 22, 2017
  50. */
  51. private CommonService commonService;
  52. private XtGydmDAO xtGydmDAO;
  53. private SjlrGzdaDAO sjlrGzdaDAO;
  54. private SjlrPzjlDAO sjlrPzjlDAO;
  55. private SjlrMzdaDAO sjlrMzdaDAO;
  56. private SjlrRsjlDAO sjlrRsjlDAO;
  57. public ModelAndView hvSjlrPzIndex(HttpServletRequest request,
  58. HttpServletResponse response) throws Exception {
  59. ModelAndView mv = new ModelAndView("haifmv/sjrl/pz/pzjl.htm");
  60. Map<String, Object> paramMap = new HashMap<String, Object>();
  61. String dweb = request.getParameter("dweb");
  62. String mcid = request.getParameter("mcid");
  63. String ksrq = request.getParameter("ksrq");
  64. String jsrq = request.getParameter("jsrq");
  65. String cxeph = request.getParameter("cxeph");
  66. int countPage = 0;
  67. int maxPages = 0;
  68. SjlrPzjlDTO pzjlDTO = null;
  69. List<SjlrPzjlDTO> pzDTOList = new ArrayList<SjlrPzjlDTO>();
  70. List<SjlrPzjl> pzList = null;
  71. String date = "";
  72. int count = 0;
  73. if (StringUtils.hasText(mcid)) {
  74. paramMap.put("mcid", mcid);
  75. paramMap.put("order", XtSearchSqlConstant.order_by_pz);
  76. if (!StringUtils.hasText(jsrq)) {
  77. jsrq = DateUtil.parserDateToDefaultString(commonService.getCurrentDate());
  78. }
  79. paramMap.put("jsrq", jsrq);
  80. mv.addObject("jsrq", jsrq);
  81. if (!StringUtils.hasText(ksrq)) {
  82. Calendar calendar = new GregorianCalendar();
  83. calendar.setTime(commonService.getCurrentDate());
  84. calendar.add(Calendar.DATE, -7);
  85. ksrq = DateUtil.parserDateToDefaultString(calendar.getTime());
  86. }
  87. paramMap.put("ksrq", ksrq);
  88. mv.addObject("ksrq", ksrq);
  89. if (StringUtils.hasText(dweb)) {
  90. //根据耳标号
  91. paramMap.put("dweb", "%" + dweb +"%" );
  92. mv.addObject("dweb",dweb);
  93. } else if (StringUtils.hasText(cxeph)) {
  94. //根据耳牌号查
  95. paramMap.put("cxeph","%" + cxeph +"%" );
  96. mv.addObject("dweb",cxeph);
  97. }
  98. paramMap.put("order", XtSearchSqlConstant.order_by_pz);
  99. countPage = sjlrPzjlDAO.selectPzjlListByParam(paramMap).size();
  100. maxPages = (countPage % 15 == 0 ? countPage / 15 : countPage/15 + 1);
  101. paramMap.put("limit", "limit 0,15");
  102. List<SjlrPzjl> pzjlList = sjlrPzjlDAO.selectPzjlListByParam(paramMap);
  103. if (pzjlList.size() == 0) {//如果当天没有则取最近一天
  104. Map<String, Object> paramMapPz = new HashMap<String, Object>();
  105. paramMapPz.put("order", "order by pz.id desc");
  106. countPage = sjlrPzjlDAO.selectPzjlListByParam(paramMapPz).size();
  107. maxPages = (countPage % 15 == 0 ? countPage / 15 : countPage/15 + 1);
  108. paramMapPz.put("limit", "limit 0,15");
  109. paramMapPz.put("mcid", mcid);
  110. List<SjlrPzjl> pzjlListPz = sjlrPzjlDAO.selectPzjlListByParam(paramMapPz);
  111. if (pzjlListPz.size() > 0) {
  112. String lastPzsj = DateUtil.parserDateToDefaultString(pzjlListPz.get(0).getPzsj());
  113. String lastJsrq = lastPzsj;
  114. String lastksrq = lastJsrq;
  115. paramMap.put("jsrq", lastJsrq);
  116. paramMap.put("ksrq", lastksrq);
  117. pzjlList.clear();
  118. pzjlList = sjlrPzjlDAO.selectPzjlListByParam(paramMap);
  119. }
  120. }
  121. List<XtGydm> pzsmList = getGydm(XtAppConstant.CODE_SJLR_PZSM);
  122. List<XtGydm> slList = getGydm(XtAppConstant.CODE_SJLR_SL);
  123. if (pzjlList != null && pzjlList.size() > 0) {
  124. for (int i = 0 ; i < pzjlList.size() ; i++) {
  125. SjlrPzjl sjlrPzjl = pzjlList.get(i);
  126. //根据耳标号查询耳牌号
  127. //获得母猪耳牌号
  128. SjlrMzdaExample mzEx = new SjlrMzdaExample();
  129. SjlrMzdaExample.Criteria mzCr = mzEx.createCriteria();
  130. mzCr.andDwebEqualTo(sjlrPzjl.getMzeb()).andMcidEqualTo(Integer.parseInt(mcid));
  131. mzCr.andZfbzEqualTo(XtAppConstant.ZFBZ_VALID);
  132. String eph = sjlrMzdaDAO.selectByExample(mzEx).get(0).getEph();
  133. sjlrPzjl.setEph(eph);
  134. //获得首配公猪耳牌号
  135. String ypgzep = "";
  136. if (sjlrPzjl.getYpgzeb() != null) {
  137. ypgzep = this.geteph(sjlrPzjl.getYpgzeb());
  138. }
  139. sjlrPzjl.setYpep(ypgzep);
  140. //配种说明
  141. if (sjlrPzjl.getPzsm() != null) {
  142. for (XtGydm xtGydm : pzsmList) {
  143. if (xtGydm.getDmid().equals(String.valueOf(sjlrPzjl.getPzsm()))) {
  144. sjlrPzjl.setPzsmStr(xtGydm.getDmmc());
  145. }
  146. }
  147. }
  148. //舍栏
  149. if (StringUtils.hasText(sjlrPzjl.getSl())) {
  150. for (XtGydm xtGydm : slList) {
  151. if (xtGydm.getDmid().equals(sjlrPzjl.getSl())) {
  152. sjlrPzjl.setSlStr(xtGydm.getDmmc());
  153. }
  154. }
  155. }
  156. if (!StringUtils.hasText(sjlrPzjl.getYppf())) {
  157. sjlrPzjl.setYppf("0");
  158. }
  159. //业务逻辑
  160. if (i == 0) {
  161. pzjlDTO = new SjlrPzjlDTO();
  162. pzList = new ArrayList<SjlrPzjl>();
  163. date = DateUtil.parserDateToDefaultString(sjlrPzjl.getPzsj());
  164. pzjlDTO.setDate(date);
  165. pzList.add(sjlrPzjl);
  166. count++;
  167. } else {
  168. if (DateUtil.parserDateToDefaultString(sjlrPzjl.getPzsj()).equals(date)) {
  169. count++;
  170. pzList.add(sjlrPzjl);
  171. }else {
  172. pzjlDTO.setPzList(pzList);
  173. pzjlDTO.setCount(count);
  174. pzDTOList.add(pzjlDTO);
  175. pzjlDTO = new SjlrPzjlDTO();
  176. pzList = new ArrayList<SjlrPzjl>();
  177. date = DateUtil.parserDateToDefaultString(sjlrPzjl.getPzsj());
  178. pzjlDTO.setDate(date);
  179. pzList.add(sjlrPzjl);
  180. count = 1;
  181. }
  182. }
  183. }
  184. if (count > 0 ) {
  185. pzjlDTO.setPzList(pzList);
  186. pzjlDTO.setCount(count);
  187. pzDTOList.add(pzjlDTO);
  188. }
  189. }
  190. mv.addObject("pzDTOList", pzDTOList);
  191. }
  192. mv.addObject("maxPages",maxPages);
  193. return mv;
  194. }
  195. /**
  196. * 配种记录首页的下拉加载
  197. * @param request
  198. * @param response
  199. * @throws Exception
  200. */
  201. public void addSjlrPzjl(HttpServletRequest request,
  202. HttpServletResponse response) throws Exception {
  203. Map<String, Object> paramMap = new HashMap<String, Object>();
  204. String dweb = request.getParameter("dweb");
  205. String mcid = request.getParameter("mcid");
  206. String ksrq = request.getParameter("ksrq");
  207. String jsrq = request.getParameter("jsrq");
  208. String cxeph = request.getParameter("cxeph");
  209. String page = request.getParameter("page");
  210. SjlrPzjlDTO pzjlDTO = null;
  211. List<SjlrPzjlDTO> pzDTOList = new ArrayList<SjlrPzjlDTO>();
  212. List<SjlrPzjl> pzList = null;
  213. String date = "";
  214. int count = 0;
  215. if (StringUtils.hasText(mcid)) {
  216. paramMap.put("mcid", mcid);
  217. paramMap.put("order", XtSearchSqlConstant.order_by_pz);
  218. if (!StringUtils.hasText(jsrq)) {
  219. jsrq = DateUtil.parserDateToDefaultString(commonService.getCurrentDate());
  220. }
  221. paramMap.put("jsrq", jsrq);
  222. if (!StringUtils.hasText(ksrq)) {
  223. Calendar calendar = new GregorianCalendar();
  224. calendar.setTime(commonService.getCurrentDate());
  225. calendar.add(Calendar.DATE, -7);
  226. ksrq = DateUtil.parserDateToDefaultString(calendar.getTime());
  227. }
  228. paramMap.put("ksrq", ksrq);
  229. if (StringUtils.hasText(dweb)) {
  230. //根据耳标号
  231. paramMap.put("dweb", "%" + dweb +"%" );
  232. } else if (StringUtils.hasText(cxeph)) {
  233. //根据耳牌号查
  234. paramMap.put("cxeph","%" + cxeph +"%" );
  235. }
  236. paramMap.put("limit", "limit " + (Integer.parseInt(page)-1)*15+",15");
  237. List<SjlrPzjl> pzjlList = sjlrPzjlDAO.selectPzjlListByParam(paramMap);
  238. List<XtGydm> pzsmList = getGydm(XtAppConstant.CODE_SJLR_PZSM);
  239. List<XtGydm> slList = getGydm(XtAppConstant.CODE_SJLR_SL);
  240. if (pzjlList != null && pzjlList.size() > 0) {
  241. for (int i = 0 ; i < pzjlList.size() ; i++) {
  242. SjlrPzjl sjlrPzjl = pzjlList.get(i);
  243. //根据耳标号查询耳牌号
  244. //获得母猪耳牌号
  245. SjlrMzdaExample mzEx = new SjlrMzdaExample();
  246. SjlrMzdaExample.Criteria mzCr = mzEx.createCriteria();
  247. mzCr.andDwebEqualTo(sjlrPzjl.getMzeb()).andMcidEqualTo(Integer.parseInt(mcid));
  248. mzCr.andZfbzEqualTo(XtAppConstant.ZFBZ_VALID);
  249. String eph = sjlrMzdaDAO.selectByExample(mzEx).get(0).getEph();
  250. sjlrPzjl.setEph(eph);
  251. //获得首配公猪耳牌号
  252. String ypgzep = "";
  253. if (sjlrPzjl.getYpgzeb() != null) {
  254. ypgzep = this.geteph(sjlrPzjl.getYpgzeb());
  255. }
  256. sjlrPzjl.setYpep(ypgzep);
  257. //配种说明
  258. if (sjlrPzjl.getPzsm() != null) {
  259. for (XtGydm xtGydm : pzsmList) {
  260. if (xtGydm.getDmid().equals(String.valueOf(sjlrPzjl.getPzsm()))) {
  261. sjlrPzjl.setPzsmStr(xtGydm.getDmmc());
  262. }
  263. }
  264. }
  265. //舍栏
  266. if (StringUtils.hasText(sjlrPzjl.getSl())) {
  267. for (XtGydm xtGydm : slList) {
  268. if (xtGydm.getDmid().equals(sjlrPzjl.getSl())) {
  269. sjlrPzjl.setSlStr(xtGydm.getDmmc());
  270. }
  271. }
  272. }
  273. if (!StringUtils.hasText(sjlrPzjl.getYppf())) {
  274. sjlrPzjl.setYppf("0");
  275. }
  276. //业务逻辑
  277. if (i == 0) {
  278. pzjlDTO = new SjlrPzjlDTO();
  279. pzList = new ArrayList<SjlrPzjl>();
  280. date = DateUtil.parserDateToDefaultString(sjlrPzjl.getPzsj());
  281. pzjlDTO.setDate(date);
  282. pzList.add(sjlrPzjl);
  283. count++;
  284. } else {
  285. if (DateUtil.parserDateToDefaultString(sjlrPzjl.getPzsj()).equals(date)) {
  286. count++;
  287. pzList.add(sjlrPzjl);
  288. }else {
  289. pzjlDTO.setPzList(pzList);
  290. pzjlDTO.setCount(count);
  291. pzDTOList.add(pzjlDTO);
  292. pzjlDTO = new SjlrPzjlDTO();
  293. pzList = new ArrayList<SjlrPzjl>();
  294. date = DateUtil.parserDateToDefaultString(sjlrPzjl.getPzsj());
  295. pzjlDTO.setDate(date);
  296. pzList.add(sjlrPzjl);
  297. count = 1;
  298. }
  299. }
  300. }
  301. if (count > 0 ) {
  302. pzjlDTO.setPzList(pzList);
  303. pzjlDTO.setCount(count);
  304. pzDTOList.add(pzjlDTO);
  305. }
  306. }
  307. }
  308. response.setCharacterEncoding("UTF-8");
  309. response.setContentType("text/plain; charset=UTF-8");
  310. response.addHeader("Cache-Control", "no-cache,must-revalidate");
  311. response.addHeader("Pragma", "no-cache");
  312. String param = JsonUtil.list2json(pzDTOList);
  313. response.getWriter().write(param);
  314. }
  315. /**
  316. * 加载配种记录新增/修改页面
  317. * @param request
  318. * @param response
  319. * @return
  320. * @throws Exception
  321. */
  322. public ModelAndView hvSjlrPzAdd(HttpServletRequest request,
  323. HttpServletResponse response) throws Exception {
  324. ModelAndView mv = new ModelAndView("haifmv/sjrl/pz/pzjlAdd.htm");
  325. String dweb = request.getParameter("dweb");
  326. String id = request.getParameter("id");
  327. String mcid = request.getParameter("mcid");
  328. String date = request.getParameter("date");
  329. String type = request.getParameter("type");
  330. String npgz = request.getParameter("npgz");
  331. List<XtGydm> slList = getGydm(XtAppConstant.CODE_SJLR_SL);
  332. List<XtGydm> pzsmList = getGydm(XtAppConstant.CODE_SJLR_PZSM);
  333. Map<String, Object> paramMap = new HashMap<String, Object>();
  334. SjlrPzjl sjlrPzjl = new SjlrPzjl();
  335. if ("undefined".equals(id)) {
  336. id = null;
  337. }
  338. if (StringUtils.hasText(mcid)) {
  339. //有ID,无动物耳标 修改
  340. if (StringUtils.hasText(id) && !StringUtils.hasText(dweb)) {
  341. sjlrPzjl = sjlrPzjlDAO.selectByPrimaryKey(Integer.parseInt(id));
  342. dweb = sjlrPzjl.getMzeb();
  343. paramMap.put("mzeb", dweb);
  344. int pztc = sjlrPzjlDAO.countPztcByParam(paramMap);
  345. sjlrPzjl.setPztc(pztc + "");
  346. id = null;
  347. //获得母猪耳牌号
  348. SjlrMzdaExample mzEx = new SjlrMzdaExample();
  349. SjlrMzdaExample.Criteria mzCr = mzEx.createCriteria();
  350. mzCr.andDwebEqualTo(sjlrPzjl.getMzeb()).andMcidEqualTo(Integer.parseInt(mcid));
  351. mzCr.andZfbzEqualTo(XtAppConstant.ZFBZ_VALID);
  352. String eph = sjlrMzdaDAO.selectByExample(mzEx).get(0).getEph();
  353. sjlrPzjl.setEph(eph);
  354. //获得首配公猪耳牌号
  355. String ypgzep = "";
  356. if (sjlrPzjl.getYpgzeb() != null) {
  357. ypgzep = this.geteph(sjlrPzjl.getYpgzeb());
  358. }
  359. sjlrPzjl.setYpep(ypgzep);
  360. //没有ID 新增
  361. } else if (StringUtils.hasText(dweb)) {
  362. if (!StringUtils.hasText(type)) {
  363. sjlrPzjl.setMzeb(dweb);
  364. }
  365. if (StringUtils.hasText(dweb)) {
  366. if (StringUtils.hasText(type)) {
  367. if ("mzep".equals(type)) {
  368. sjlrPzjl.setMzeb(dweb);
  369. SjlrMzdaExample mzdaEx = new SjlrMzdaExample();
  370. SjlrMzdaExample.Criteria mzdaCr = mzdaEx.createCriteria();
  371. mzdaCr.andDwebEqualTo(sjlrPzjl.getMzeb()).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID);
  372. if (StringUtils.hasText(mcid)) {
  373. mzdaCr.andMcidEqualTo(Integer.parseInt(mcid));
  374. }
  375. List<SjlrMzda> mzdaList = sjlrMzdaDAO.selectByExample(mzdaEx);
  376. if (mzdaList != null && mzdaList.size() > 0) {
  377. sjlrPzjl.setPzls(mzdaList.get(0).getSl());
  378. sjlrPzjl.setZrls(mzdaList.get(0).getSl());
  379. sjlrPzjl.setEph(mzdaList.get(0).getEph());
  380. }
  381. SjlrPzjlExample pzjlEx = new SjlrPzjlExample();
  382. pzjlEx.createCriteria().andMzebEqualTo(dweb);
  383. int count = sjlrPzjlDAO.countByExample(pzjlEx);
  384. sjlrPzjl.setPztc(count + 1 + "");
  385. if (count == 0) {
  386. sjlrPzjl.setPzsm("2");
  387. }
  388. String mzfqjg = request.getParameter("mzfqjg");
  389. if (StringUtils.hasText(mzfqjg)) {
  390. sjlrPzjl.setFqjg(Integer.parseInt(mzfqjg));
  391. }
  392. } else if ("ypep".equals(type)) {
  393. sjlrPzjl.setYpgzeb(dweb);
  394. String ypep = request.getParameter("eph");
  395. sjlrPzjl.setYpep(ypep);
  396. } /*else if ("epep".equals(type)) {
  397. sjlrPzjl.setEpgzeb(dweb);
  398. } else if ("spep".equals(type)) {
  399. sjlrPzjl.setSpgzeb(dweb);
  400. }*/
  401. }
  402. }
  403. }
  404. String mzeb = request.getParameter("mzeb");
  405. if (StringUtils.hasText(mzeb) && !"mzep".equals(type)) {
  406. sjlrPzjl.setMzeb(mzeb);
  407. }
  408. if (StringUtils.hasText(id)) {
  409. sjlrPzjl.setId(Integer.parseInt(id));
  410. }
  411. String pzls = request.getParameter("pzls");
  412. if (StringUtils.hasText(pzls)) {
  413. sjlrPzjl.setPzls(pzls);
  414. }
  415. String zrls = request.getParameter("zrls");
  416. if (StringUtils.hasText(zrls)) {
  417. sjlrPzjl.setZrls(zrls);
  418. }
  419. String bb = request.getParameter("bb");
  420. if (StringUtils.hasText(bb)) {
  421. sjlrPzjl.setBb(bb);
  422. }
  423. String pzsm = request.getParameter("pzsm");
  424. if (StringUtils.hasText(pzsm)) {
  425. sjlrPzjl.setPzsm(pzsm);
  426. }
  427. String pztc = request.getParameter("pztc");
  428. if (StringUtils.hasText(pztc)) {
  429. sjlrPzjl.setPztc(pztc);
  430. }
  431. String fqjg = request.getParameter("fqjg");
  432. if (sjlrPzjl.getFqjg() == null && StringUtils.hasText(fqjg)) {
  433. sjlrPzjl.setFqjg(Integer.parseInt(fqjg));
  434. }
  435. String ypgzeb = request.getParameter("ypgzeb");
  436. if (StringUtils.hasText(type) && !"ypep".equals(type) && StringUtils.hasText(ypgzeb)) {
  437. sjlrPzjl.setYpgzeb(ypgzeb);
  438. }
  439. String yppf = request.getParameter("yppf");
  440. if (StringUtils.hasText(yppf)) {
  441. sjlrPzjl.setYppf(yppf);
  442. }
  443. /*String epgzeb = request.getParameter("epgzeb");
  444. if (StringUtils.hasText(type) && !"epep".equals(type) && StringUtils.hasText(epgzeb)) {
  445. sjlrPzjl.setEpgzeb(epgzeb);
  446. }
  447. String eppf = request.getParameter("eppf");
  448. if (StringUtils.hasText(eppf)) {
  449. sjlrPzjl.setEppf(eppf);
  450. }
  451. String spgzeb = request.getParameter("spgzeb");
  452. if (StringUtils.hasText(type) && !"spep".equals(type) && StringUtils.hasText(spgzeb)) {
  453. sjlrPzjl.setSpgzeb(spgzeb);
  454. }
  455. String sppf = request.getParameter("sppf");
  456. if (StringUtils.hasText(sppf)) {
  457. sjlrPzjl.setSppf(sppf);
  458. }*/
  459. String pzsj = request.getParameter("pzsj");
  460. if (StringUtils.hasText(pzsj)) {
  461. sjlrPzjl.setPzsj(DateUtil.parserTo(pzsj));
  462. } else {
  463. //修改中,配种时间为配种记录的配种时间
  464. if (sjlrPzjl.getPzsj()== null ) {
  465. sjlrPzjl.setPzsj(DateUtil.parserTo(date));
  466. }
  467. }
  468. String ypep = request.getParameter("ypep");
  469. if (StringUtils.hasText(type) && !"ypep".equals(type) && StringUtils.hasText(ypep)) {
  470. sjlrPzjl.setYpep(ypep);
  471. }
  472. String mzep = request.getParameter("mzep");
  473. if (StringUtils.hasText(mzep) && !"mzep".equals(type) && StringUtils.hasText(type)) {
  474. sjlrPzjl.setEph(mzep);
  475. }
  476. /*String epep = request.getParameter("epep");
  477. if (StringUtils.hasText(epep)) {
  478. sjlrPzjl.setEpep(epep);
  479. }
  480. String spep = request.getParameter("spep");
  481. if (StringUtils.hasText(spep)) {
  482. sjlrPzjl.setSpep(spep);
  483. }*/
  484. mv.addObject("pzsmList", pzsmList);
  485. mv.addObject("slList", slList);
  486. mv.addObject("sjlrPzjl", sjlrPzjl);
  487. mv.addObject("id", sjlrPzjl.getId());
  488. mv.addObject("npgz",npgz);
  489. mv.addObject("kssj",request.getParameter("kssj"));
  490. mv.addObject("jssj",request.getParameter("jssj"));
  491. }
  492. return mv;
  493. }
  494. /**
  495. * 保存
  496. * @param request
  497. * @throws Exception
  498. */
  499. public void saveHaifmvSjlrPzjl(HttpServletRequest request,
  500. HttpServletResponse response) throws Exception {
  501. response.setContentType("text/json; charset=UTF-8");
  502. response.addHeader("Cache-Control", "no-cache,must-revalidate");
  503. response.addHeader("Pragma", "no-cache");
  504. SjlrPzjl sjlrPzjl = new SjlrPzjl();
  505. sjlrPzjl = (SjlrPzjl) parseObjectFromRequest(request, sjlrPzjl);
  506. Date mzrl = null;
  507. Date gzrl = null;
  508. sjlrPzjl.setXgr(getLoginSessionBean(request).getYhid().toString());
  509. sjlrPzjl.setXgsj(commonService.getCurrentDate());
  510. sjlrPzjl.setZfbz(XtAppConstant.ZFBZ_VALID);
  511. if (sjlrPzjl.getFqjg() == null) {
  512. sjlrPzjl.setFqjg(0);
  513. }
  514. if (StringUtils.hasText(request.getParameter("mzeb"))) {
  515. sjlrPzjl.setMzeb(request.getParameter("mzeb"));
  516. }
  517. if (StringUtils.hasText(request.getParameter("ypgzeb"))) {
  518. sjlrPzjl.setYpgzeb(request.getParameter("ypgzeb"));
  519. }
  520. if (StringUtils.hasText(request.getParameter("pzls"))) {
  521. sjlrPzjl.setPzls(request.getParameter("pzls"));
  522. }
  523. if (StringUtils.hasText(request.getParameter("zrls"))) {
  524. sjlrPzjl.setZrls(request.getParameter("zrls"));
  525. }
  526. if (StringUtils.hasText(request.getParameter("pzsm"))) {
  527. sjlrPzjl.setPzsm(request.getParameter("pzsm"));
  528. }
  529. /*if (StringUtils.hasText(request.getParameter("epgzeb"))) {
  530. sjlrPzjl.setEpgzeb(request.getParameter("epgzeb"));
  531. }
  532. if (StringUtils.hasText(request.getParameter("spgzeb"))) {
  533. sjlrPzjl.setSpgzeb(request.getParameter("spgzeb"));
  534. }*/
  535. if (!StringUtils.hasText(sjlrPzjl.getYppf())) {
  536. sjlrPzjl.setYppf("0");
  537. }
  538. /*if (!StringUtils.hasText(sjlrPzjl.getEppf())) {
  539. sjlrPzjl.setEppf("0");
  540. }
  541. if (!StringUtils.hasText(sjlrPzjl.getSppf())) {
  542. sjlrPzjl.setSppf("0");
  543. }*/
  544. if (!StringUtils.hasText(sjlrPzjl.getBb())) {
  545. sjlrPzjl.setBb("0");
  546. }
  547. //配种时间不能超过母猪和公猪的入栏日期
  548. //母猪入栏日期
  549. SjlrMzdaExample mzEx = new SjlrMzdaExample();
  550. SjlrMzdaExample.Criteria mzCr = mzEx.createCriteria();
  551. if (StringUtils.hasText(sjlrPzjl.getMzeb())) {
  552. mzCr.andDwebEqualTo(sjlrPzjl.getMzeb()).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID);
  553. mzrl = sjlrMzdaDAO.selectByExample(mzEx).get(0).getRlrq();
  554. }
  555. //公猪入栏日期
  556. SjlrGzdaExample gzEx = new SjlrGzdaExample();
  557. SjlrGzdaExample.Criteria gzCr = gzEx.createCriteria();
  558. if (StringUtils.hasText(sjlrPzjl.getYpgzeb())) {
  559. gzCr.andDwebEqualTo(sjlrPzjl.getYpgzeb()).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID);
  560. gzrl = sjlrGzdaDAO.selectByExample(gzEx).get(0).getRlrq();
  561. }
  562. String date = request.getParameter("date");
  563. if (StringUtils.hasText(date)) {
  564. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  565. Date pzsj = sdf.parse(date);
  566. if (StringUtils.hasText(sjlrPzjl.getMzeb())) {
  567. if (pzsj.getTime() < mzrl.getTime()) {
  568. String jsonStr = "{\"count\" : \"2\"}";
  569. response.getWriter().write(jsonStr);
  570. return;
  571. }
  572. }
  573. if (StringUtils.hasText(sjlrPzjl.getYpgzeb())) {
  574. if (pzsj.getTime() < gzrl.getTime()) {
  575. String jsonStr = "{\"count\" : \"3\"}";
  576. response.getWriter().write(jsonStr);
  577. return;
  578. }
  579. }
  580. }
  581. if (sjlrPzjl.getId().equals(0)) {
  582. sjlrPzjlDAO.insertSelective(sjlrPzjl);
  583. }else {
  584. sjlrPzjlDAO.updateByPrimaryKeySelective(sjlrPzjl);
  585. }
  586. String zrsl = sjlrPzjl.getZrls();
  587. if (StringUtils.hasText(zrsl)) {
  588. SjlrMzdaExample mzdaEx = new SjlrMzdaExample();
  589. SjlrMzdaExample.Criteria mzdaCr = mzdaEx.createCriteria();
  590. mzdaCr.andDwebEqualTo(sjlrPzjl.getMzeb()).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID);
  591. String mcid = request.getParameter("mcid");
  592. if (StringUtils.hasText(mcid)) {
  593. mzdaCr.andMcidEqualTo(Integer.parseInt(mcid));
  594. }
  595. SjlrMzda sjlrMzda = new SjlrMzda();
  596. sjlrMzda.setSl(zrsl);
  597. sjlrMzda.setXgr(getLoginSessionBean(request).getYhid().toString());
  598. sjlrMzda.setXgsj(commonService.getCurrentDate());
  599. sjlrMzda.setDqzt("16");
  600. sjlrMzdaDAO.updateByExampleSelective(sjlrMzda, mzdaEx);
  601. }
  602. String jsonStr = "{\"count\" : \"1\"}";
  603. response.getWriter().write(jsonStr);
  604. }
  605. /**
  606. * 版权所有:慧牧科技
  607. * 项目名称:数据录入
  608. * 创建者:
  609. * 创建日期:2017-5-10
  610. * 文件说明:耳标公共查询页面
  611. * 最近修改者 xudan
  612. * 最近修改日期:2017-5-22
  613. *
  614. */
  615. public ModelAndView getHaifmvPzjlSearchDweb(HttpServletRequest request,
  616. HttpServletResponse response) throws Exception {
  617. ModelAndView mv = new ModelAndView("haifmv/sjrl/pz/searchPzep.htm");
  618. String dweb = request.getParameter("dweb");
  619. String mcid = request.getParameter("mcid");
  620. String type = request.getParameter("type");
  621. String npgz = request.getParameter("npgz");
  622. String cxeph = request.getParameter("cxeph");
  623. String pzsj = request.getParameter("pzsj");
  624. int maxPages = 0;
  625. int countPage = 0;
  626. Date drpzsj = null;
  627. String gzeb = "";
  628. List<Date> cjjgList = null;
  629. List<SjlrMzda> mzList = new ArrayList<SjlrMzda>();
  630. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  631. if (StringUtils.hasText(pzsj)) {
  632. drpzsj = sdf.parse(pzsj);
  633. }
  634. if (StringUtils.hasText(mcid)) {
  635. List<XtGydm> dqztList = getGydm(XtAppConstant.CODE_SJLR_MZZT);
  636. List<XtGydm> pzList = getGydm(XtAppConstant.CODE_SJLR_ZZPZ);
  637. if (StringUtils.hasText(type) && "mzep".equals(type)) {
  638. Map<String, Object> paramMap = new HashMap<String, Object>();
  639. paramMap.put("mcid", mcid);
  640. if (StringUtils.hasText(dweb)) {
  641. //根据耳标号
  642. paramMap.put("dweb", "%" + dweb +"%" );
  643. mv.addObject("dweb",dweb);
  644. } else if (StringUtils.hasText(cxeph)) {
  645. //根据耳牌号查
  646. paramMap.put("cxeph","%" + cxeph +"%" );
  647. mv.addObject("dweb",cxeph);
  648. }
  649. countPage = sjlrPzjlDAO.selectPzjlMzdaListByParam(paramMap).size();
  650. maxPages = (countPage % 30 == 0 ? countPage / 30 : countPage/30 + 1);
  651. paramMap.put("limit", " 0,30");
  652. List<SjlrMzda> mzdaList = sjlrPzjlDAO.selectPzjlMzdaListByParam(paramMap);
  653. if (mzdaList != null && mzdaList.size() > 0) {
  654. for (SjlrMzda sjlrMzda : mzdaList) {
  655. //品种
  656. if (StringUtils.hasText(sjlrMzda.getPz())) {
  657. for (XtGydm xtGydm : pzList) {
  658. if (sjlrMzda.getPz().equals(xtGydm.getDmid())) {
  659. sjlrMzda.setPzStr(xtGydm.getDmmc());
  660. }
  661. }
  662. }
  663. //当前状态
  664. if (StringUtils.hasText(sjlrMzda.getDqzt())) {
  665. for (XtGydm xtGydm : dqztList) {
  666. if (sjlrMzda.getDqzt().equals(xtGydm.getDmid())) {
  667. sjlrMzda.setDqztStr(xtGydm.getDmmc());
  668. }
  669. }
  670. }
  671. //失配天数
  672. long day = 0;
  673. if (sjlrMzda.getZjpzsj() != null && drpzsj != null) {
  674. day = (drpzsj.getTime() - sjlrMzda.getZjpzsj().getTime()) / DateUtil.MILLSECOND_OF_DAY + 1;
  675. } else {
  676. day = (drpzsj.getTime() - sjlrMzda.getCsrq().getTime()) / DateUtil.MILLSECOND_OF_DAY + 1;
  677. }
  678. sjlrMzda.setSpts(day);
  679. mzList.add(sjlrMzda);
  680. }
  681. }
  682. mv.addObject("mzList", mzList);
  683. } else {
  684. SjlrGzdaExample gzdaEx = new SjlrGzdaExample();
  685. SjlrGzdaExample.Criteria cr = gzdaEx.createCriteria();
  686. List<String> dqzt = new ArrayList<String>();
  687. dqzt.add("1");
  688. dqzt.add("9");
  689. dqzt.add("15");
  690. dqzt.add("11");
  691. cr.andZfbzEqualTo(XtAppConstant.ZFBZ_VALID).andMcidEqualTo(Integer.parseInt(mcid)).andDqztIn(dqzt);
  692. //手持机输入动物耳标
  693. if (StringUtils.hasText(dweb)) {
  694. cr.andDwebLike("%" + dweb + "%");
  695. mv.addObject("dweb", dweb);
  696. }
  697. //手动输入耳牌号
  698. if (StringUtils.hasText(cxeph)) {
  699. cr.andEphLike("%" + cxeph + "%");
  700. mv.addObject("dweb", cxeph);
  701. }
  702. //在场公猪
  703. cr.andLcrqIsNull();
  704. countPage = sjlrGzdaDAO.countByExample(gzdaEx);
  705. maxPages = (countPage % 30 == 0 ? countPage / 30 : countPage/30 + 1);
  706. gzdaEx.setStart(0);
  707. gzdaEx.setLimit(30);
  708. List<SjlrGzda> gzdaList = sjlrGzdaDAO.selectByExample(gzdaEx);
  709. SjlrPzjlExample pzjlEx = new SjlrPzjlExample();
  710. SjlrPzjlExample.Criteria pzcr = pzjlEx.createCriteria();
  711. pzcr.andZfbzEqualTo(XtAppConstant.ZFBZ_VALID);
  712. List<SjlrPzjl> pzjlList = sjlrPzjlDAO.selectByExample(pzjlEx);
  713. if (gzdaList != null && gzdaList.size() > 0) {
  714. for (SjlrGzda sjlrGzda : gzdaList) {
  715. //品种
  716. if (StringUtils.hasText(sjlrGzda.getPz())) {
  717. for (XtGydm xtGydm : pzList) {
  718. if (sjlrGzda.getPz().equals(xtGydm.getDmid())) {
  719. sjlrGzda.setPzStr(xtGydm.getDmmc());
  720. }
  721. }
  722. }
  723. //当前状态
  724. if (StringUtils.hasText(sjlrGzda.getDqzt())) {
  725. for (XtGydm xtGydm : dqztList) {
  726. if (sjlrGzda.getDqzt().equals(xtGydm.getDmid())) {
  727. sjlrGzda.setDqztStr(xtGydm.getDmmc());
  728. }
  729. }
  730. }
  731. cjjgList = new ArrayList<Date>();
  732. Date cjjg = null;
  733. gzeb = sjlrGzda.getDweb();
  734. for (SjlrPzjl sjlrPzjl : pzjlList) {
  735. if (StringUtils.hasText(gzeb)) {
  736. if (gzeb.equals(sjlrPzjl.getYpgzeb())) {
  737. if (StringUtils.hasText(sjlrPzjl.getPzsj().toString())) {
  738. cjjg = sjlrPzjl.getPzsj();
  739. cjjgList.add(cjjg);
  740. }
  741. }
  742. else if (gzeb.equals(sjlrPzjl.getEpgzeb())) {
  743. if (StringUtils.hasText(sjlrPzjl.getPzsj().toString())) {
  744. cjjg = sjlrPzjl.getPzsj();
  745. cjjgList.add(cjjg);
  746. }
  747. }
  748. else if (gzeb.equals(sjlrPzjl.getSpgzeb())) {
  749. if (StringUtils.hasText(sjlrPzjl.getPzsj().toString())) {
  750. cjjg = sjlrPzjl.getPzsj();
  751. cjjgList.add(cjjg);
  752. }
  753. }
  754. }
  755. }
  756. if (cjjg == null) {
  757. cjjg = sjlrGzda.getCsrq();
  758. cjjgList.add(cjjg);
  759. }
  760. cjjg = Collections.max(cjjgList);
  761. long date = cjjg.getTime();
  762. sjlrGzda.setPzjg((drpzsj.getTime()-date) / DateUtil.MILLSECOND_OF_DAY + 1);
  763. }
  764. }
  765. mv.addObject("gzdaList", gzdaList);
  766. }
  767. if (StringUtils.hasText(type)) {
  768. mv.addObject("type", type);
  769. }
  770. if (StringUtils.hasText(pzsj)) {
  771. mv.addObject("pzsj", pzsj);
  772. }
  773. String id = request.getParameter("id");
  774. if (StringUtils.hasText(id)) {
  775. mv.addObject("id", id);
  776. }
  777. String mzeb = request.getParameter("mzeb");
  778. if (StringUtils.hasText(mzeb)) {
  779. mv.addObject("mzeb", mzeb);
  780. }
  781. String pzls = request.getParameter("pzls");
  782. if (StringUtils.hasText(pzls)) {
  783. mv.addObject("pzls", pzls);
  784. }
  785. String zrls = request.getParameter("zrls");
  786. if (StringUtils.hasText(zrls)) {
  787. mv.addObject("zrls", zrls);
  788. }
  789. String bb = request.getParameter("bb");
  790. if (StringUtils.hasText(bb)) {
  791. mv.addObject("bb", bb);
  792. }
  793. String pztc = request.getParameter("pztc");
  794. if (StringUtils.hasText(pztc)) {
  795. mv.addObject("pztc", pztc);
  796. }
  797. String pzsm = request.getParameter("pzsm");
  798. if (StringUtils.hasText(pzsm)) {
  799. mv.addObject("pzsm", pzsm);
  800. }
  801. String fqjg = request.getParameter("fqjg");
  802. if (StringUtils.hasText(fqjg)) {
  803. mv.addObject("fqjg", fqjg);
  804. }
  805. String ypgzeb = request.getParameter("ypgzeb");
  806. if (StringUtils.hasText(ypgzeb)) {
  807. mv.addObject("ypgzeb", ypgzeb);
  808. }
  809. String yppf = request.getParameter("yppf");
  810. if (StringUtils.hasText(yppf)) {
  811. mv.addObject("yppf", yppf);
  812. }
  813. /*String epgzeb = request.getParameter("epgzeb");
  814. if (StringUtils.hasText(epgzeb)) {
  815. mv.addObject("epgzeb", epgzeb);
  816. }
  817. String eppf = request.getParameter("eppf");
  818. if (StringUtils.hasText(eppf)) {
  819. mv.addObject("eppf", eppf);
  820. }
  821. String spgzeb = request.getParameter("spgzeb");
  822. if (StringUtils.hasText(spgzeb)) {
  823. mv.addObject("spgzeb", spgzeb);
  824. }
  825. String sppf = request.getParameter("sppf");
  826. if (StringUtils.hasText(sppf)) {
  827. mv.addObject("sppf", sppf);
  828. }*/
  829. String ypep = request.getParameter("ypep");
  830. if (StringUtils.hasText(ypep)) {
  831. mv.addObject("ypep", ypep);
  832. }
  833. /*String epep = request.getParameter("epep");
  834. if (StringUtils.hasText(epep)) {
  835. mv.addObject("epep", epep);
  836. }
  837. String spep = request.getParameter("spep");
  838. if (StringUtils.hasText(spep)) {
  839. mv.addObject("spep", spep);
  840. }*/
  841. String mzep = request.getParameter("mzep");
  842. if (StringUtils.hasText(mzep)) {
  843. mv.addObject("mzep", mzep);
  844. }
  845. }
  846. mv.addObject("maxPages",maxPages);
  847. mv.addObject("npgz",npgz);
  848. return mv;
  849. }
  850. /**
  851. * 配种记录耳标查询的下拉加载
  852. * @param request
  853. * @param response
  854. * @throws Exception
  855. */
  856. public void addSjlrPzjlSrarch(HttpServletRequest request,
  857. HttpServletResponse response) throws Exception {
  858. response.setCharacterEncoding("UTF-8");
  859. response.setContentType("text/plain; charset=UTF-8");
  860. response.addHeader("Cache-Control", "no-cache,must-revalidate");
  861. response.addHeader("Pragma", "no-cache");
  862. String page = request.getParameter("page");
  863. String dweb = request.getParameter("dweb");
  864. String mcid = request.getParameter("mcid");
  865. String type = request.getParameter("type");
  866. String cxeph = request.getParameter("cxeph");
  867. String pzsj = request.getParameter("pzsj");
  868. Date drpzsj = null;
  869. String gzeb = "";
  870. List<Date> cjjgList = null;
  871. List<BaseDO> List = new ArrayList<BaseDO>();
  872. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  873. if (StringUtils.hasText(pzsj)) {
  874. drpzsj = sdf.parse(pzsj);
  875. }
  876. if (StringUtils.hasText(mcid)) {
  877. List<XtGydm> dqztList = getGydm(XtAppConstant.CODE_SJLR_MZZT);
  878. List<XtGydm> pzList = getGydm(XtAppConstant.CODE_SJLR_ZZPZ);
  879. if (StringUtils.hasText(type) && "mzep".equals(type)) {
  880. Map<String, Object> paramMap = new HashMap<String, Object>();
  881. paramMap.put("mcid", mcid);
  882. if (StringUtils.hasText(dweb)) {
  883. //根据耳标号
  884. paramMap.put("dweb", "%" + dweb +"%" );
  885. } else if (StringUtils.hasText(cxeph)) {
  886. //根据耳牌号查
  887. paramMap.put("cxeph","%" + cxeph +"%" );
  888. }
  889. paramMap.put("limit", (Integer.parseInt(page)-1)*30+",30");
  890. List<SjlrMzda> mzdaList = sjlrPzjlDAO.selectPzjlMzdaListByParam(paramMap);
  891. if (mzdaList != null && mzdaList.size() > 0) {
  892. for (SjlrMzda sjlrMzda : mzdaList) {
  893. //品种
  894. if (StringUtils.hasText(sjlrMzda.getPz())) {
  895. for (XtGydm xtGydm : pzList) {
  896. if (sjlrMzda.getPz().equals(xtGydm.getDmid())) {
  897. sjlrMzda.setPzStr(xtGydm.getDmmc());
  898. }
  899. }
  900. }
  901. //当前状态
  902. if (StringUtils.hasText(sjlrMzda.getDqzt())) {
  903. for (XtGydm xtGydm : dqztList) {
  904. if (sjlrMzda.getDqzt().equals(xtGydm.getDmid())) {
  905. sjlrMzda.setDqztStr(xtGydm.getDmmc());
  906. }
  907. }
  908. }
  909. //失配天数
  910. long day = 0;
  911. if (sjlrMzda.getZjpzsj() != null && drpzsj != null) {
  912. day = (drpzsj.getTime() - sjlrMzda.getZjpzsj().getTime()) / DateUtil.MILLSECOND_OF_DAY + 1;
  913. } else {
  914. day = (drpzsj.getTime() - sjlrMzda.getCsrq().getTime()) / DateUtil.MILLSECOND_OF_DAY + 1;
  915. }
  916. sjlrMzda.setSpts(day);
  917. List.add(sjlrMzda);
  918. }
  919. }
  920. } else {
  921. SjlrGzdaExample gzdaEx = new SjlrGzdaExample();
  922. SjlrGzdaExample.Criteria cr = gzdaEx.createCriteria();
  923. List<String> dqzt = new ArrayList<String>();
  924. dqzt.add("1");
  925. dqzt.add("9");
  926. dqzt.add("15");
  927. dqzt.add("11");
  928. cr.andZfbzEqualTo(XtAppConstant.ZFBZ_VALID).andMcidEqualTo(Integer.parseInt(mcid)).andDqztIn(dqzt);
  929. //手持机输入动物耳标
  930. if (StringUtils.hasText(dweb)) {
  931. cr.andDwebLike("%" + dweb + "%");
  932. }
  933. //手动输入耳牌号
  934. if (StringUtils.hasText(cxeph)) {
  935. cr.andEphLike("%" + cxeph + "%");
  936. }
  937. //在场公猪
  938. cr.andLcrqIsNull();
  939. gzdaEx.setStart((Integer.parseInt(page)-1)*30);
  940. gzdaEx.setLimit(30);
  941. List<SjlrGzda> gzdaList = sjlrGzdaDAO.selectByExample(gzdaEx);
  942. SjlrPzjlExample pzjlEx = new SjlrPzjlExample();
  943. SjlrPzjlExample.Criteria pzcr = pzjlEx.createCriteria();
  944. pzcr.andZfbzEqualTo(XtAppConstant.ZFBZ_VALID);
  945. List<SjlrPzjl> pzjlList = sjlrPzjlDAO.selectByExample(pzjlEx);
  946. if (gzdaList != null && gzdaList.size() > 0) {
  947. for (SjlrGzda sjlrGzda : gzdaList) {
  948. //品种
  949. if (StringUtils.hasText(sjlrGzda.getPz())) {
  950. for (XtGydm xtGydm : pzList) {
  951. if (sjlrGzda.getPz().equals(xtGydm.getDmid())) {
  952. sjlrGzda.setPzStr(xtGydm.getDmmc());
  953. }
  954. }
  955. }
  956. //当前状态
  957. if (StringUtils.hasText(sjlrGzda.getDqzt())) {
  958. for (XtGydm xtGydm : dqztList) {
  959. if (sjlrGzda.getDqzt().equals(xtGydm.getDmid())) {
  960. sjlrGzda.setDqztStr(xtGydm.getDmmc());
  961. }
  962. }
  963. }
  964. cjjgList = new ArrayList<Date>();
  965. Date cjjg = null;
  966. gzeb = sjlrGzda.getDweb();
  967. for (SjlrPzjl sjlrPzjl : pzjlList) {
  968. if (StringUtils.hasText(gzeb)) {
  969. if (gzeb.equals(sjlrPzjl.getYpgzeb())) {
  970. if (StringUtils.hasText(sjlrPzjl.getPzsj().toString())) {
  971. cjjg = sjlrPzjl.getPzsj();
  972. cjjgList.add(cjjg);
  973. }
  974. }
  975. else if (gzeb.equals(sjlrPzjl.getEpgzeb())) {
  976. if (StringUtils.hasText(sjlrPzjl.getPzsj().toString())) {
  977. cjjg = sjlrPzjl.getPzsj();
  978. cjjgList.add(cjjg);
  979. }
  980. }
  981. else if (gzeb.equals(sjlrPzjl.getSpgzeb())) {
  982. if (StringUtils.hasText(sjlrPzjl.getPzsj().toString())) {
  983. cjjg = sjlrPzjl.getPzsj();
  984. cjjgList.add(cjjg);
  985. }
  986. }
  987. }
  988. }
  989. if (cjjg == null) {
  990. cjjg = sjlrGzda.getCsrq();
  991. cjjgList.add(cjjg);
  992. }
  993. cjjg = Collections.max(cjjgList);
  994. long date = cjjg.getTime();
  995. sjlrGzda.setPzjg((drpzsj.getTime()-date) / DateUtil.MILLSECOND_OF_DAY + 1);
  996. sjlrGzda.setSpts((drpzsj.getTime()-date) / DateUtil.MILLSECOND_OF_DAY + 1);
  997. List.add(sjlrGzda);
  998. }
  999. }
  1000. }
  1001. }
  1002. String param = JsonUtil.list2json(List);
  1003. response.getWriter().write(param);
  1004. }
  1005. /**
  1006. * 是否是24小时之内的数据
  1007. * @param request
  1008. * @throws Exception
  1009. */
  1010. public void haifmvCheckPzDataIsIn24H(HttpServletRequest request,
  1011. HttpServletResponse response) throws Exception {
  1012. response.setContentType("text/json; charset=UTF-8");
  1013. response.addHeader("Cache-Control", "no-cache,must-revalidate" );
  1014. response.addHeader("Pragma", "no-cache");
  1015. String id = request.getParameter("id");
  1016. String jsonStr = "";
  1017. boolean isIn24H = false ;
  1018. if (StringUtils.hasText(id)) {
  1019. SjlrPzjlExample PzjlEx = new SjlrPzjlExample();
  1020. SjlrPzjlExample.Criteria pzjlCr = PzjlEx.createCriteria();
  1021. pzjlCr.andIdEqualTo(Integer.valueOf(id)).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID);
  1022. List<SjlrPzjl> PzjlList = sjlrPzjlDAO.selectByExample(PzjlEx);
  1023. if (PzjlList.size() > 0) {
  1024. isIn24H = (commonService.getCurrentDate().getTime() - PzjlList.get(0).getPzsj().getTime()) <= 24*60*60*1000;
  1025. }
  1026. }
  1027. if (isIn24H) {
  1028. //如果是24小时内数据,判断是否已经妊娠
  1029. SjlrRsjlExample rsEx = new SjlrRsjlExample();
  1030. SjlrRsjlExample.Criteria rsCr = rsEx.createCriteria();
  1031. rsCr.andPzidEqualTo(Integer.parseInt(id)).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID);
  1032. int count = sjlrRsjlDAO.countByExample(rsEx);
  1033. if (count == 0){
  1034. jsonStr = "{\"count\" : \"1\"}"; //修改
  1035. } else {
  1036. jsonStr = "{\"count\" : \"2\"}"; //已有配种记录
  1037. }
  1038. } else {
  1039. jsonStr = "{\"count\" : \"0\"}"; //已超过24小时,无法修改
  1040. }
  1041. response.getWriter().write(jsonStr);
  1042. }
  1043. /**
  1044. * 是否在24小时后36小时内妊娠
  1045. * @param request
  1046. * @throws Exception
  1047. */
  1048. public void haifmvCheckRsIn36Hour(HttpServletRequest request,
  1049. HttpServletResponse response) throws Exception {
  1050. response.setContentType("text/json; charset=UTF-8");
  1051. response.addHeader("Cache-Control", "no-cache,must-revalidate");
  1052. response.addHeader("Pragma", "no-cache");
  1053. String pzid = request.getParameter("id");
  1054. SjlrPzjl pzjl = null;
  1055. String text = ""; //①xxxx @ ②x@ ③x ①返回的字段,②是否跳转到新增修改页面 f=不跳,t=跳 ,
  1056. //③跳转到页面后哪配可以新增,0=不配种,1=重新配种,2=添加二配公猪字段,3=添加三配公猪字段
  1057. //根据配种ID查询妊娠记录中有无此配种ID
  1058. SjlrRsjlExample rsEx = new SjlrRsjlExample();
  1059. SjlrRsjlExample.Criteria rsCr = rsEx.createCriteria();
  1060. rsCr.andPzidEqualTo(Integer.parseInt(pzid)).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID);
  1061. int count = sjlrRsjlDAO.countByExample(rsEx);
  1062. //查询妊娠记录中有无此配种ID
  1063. if (count <= 0) {
  1064. //没有配种记录 查询此配种记录是否在36小时之内
  1065. pzjl = sjlrPzjlDAO.selectByPrimaryKey(Integer.parseInt(pzid));
  1066. String epzzid = pzjl.getEpgzeb();
  1067. boolean isIn36H = (commonService.getCurrentDate().getTime() - pzjl.getPzsj().getTime()) <= 36*60*60*1000;
  1068. //配种时间<36小时
  1069. if (isIn36H) {
  1070. //查询二配种猪ID
  1071. //有二配种猪ID 36小时内未妊娠又已经有二配种猪ID ,等待36小时过去
  1072. if (StringUtils.hasText(epzzid)) {
  1073. text = "36小时内已二配@f@0";
  1074. //无二配种猪ID,跳转页面,添加二配种猪ID
  1075. } else {
  1076. text = "@t@2";
  1077. }
  1078. //配种时间>36小时,查询有无二配种猪ID
  1079. } else {
  1080. boolean isIn72H = (commonService.getCurrentDate().getTime() - pzjl.getPzsj().getTime()) <= 72*60*60*1000;
  1081. //配种时间<72小时
  1082. if (isIn72H) {
  1083. //有二配种猪ID ,查询有无三陪种猪ID
  1084. if (StringUtils.hasText(epzzid)){
  1085. String spgzid = pzjl.getSpgzeb();
  1086. //有三配种猪ID ,等待到第72个小时
  1087. if (StringUtils.hasText(spgzid)){
  1088. text = "已有3配公猪记录@f@0";
  1089. //没有三配种猪ID,添加三配种猪ID
  1090. } else {
  1091. text = "@t@3";
  1092. }
  1093. //无二配种猪ID,重新一配
  1094. } else {
  1095. text = "请重新配种@t@1";
  1096. }
  1097. //配种时间超过72小时,还没有妊娠
  1098. } else {
  1099. text = "配种时间已超过72小时,请重新配种@t@1";
  1100. }
  1101. }
  1102. //妊娠记录中有配种ID
  1103. } else {
  1104. text = "恭喜!已妊娠成功@f@0";
  1105. }
  1106. response.getWriter().write(text);
  1107. }
  1108. public String geteph(String dweb) {
  1109. SjlrGzdaExample gzEx = new SjlrGzdaExample();
  1110. SjlrGzdaExample.Criteria gzCr = gzEx.createCriteria();
  1111. gzCr.andDwebEqualTo(dweb);
  1112. String eph = sjlrGzdaDAO.selectByExample(gzEx).get(0).getEph();
  1113. return eph;
  1114. }
  1115. /**
  1116. * 获取公用代码
  1117. * @param lbmc
  1118. * @return
  1119. * @throws Exception
  1120. */
  1121. private List<XtGydm> getGydm(String lbmc) {
  1122. return xtGydmDAO.selectGydmByLbmc(lbmc);
  1123. }
  1124. public void setCommonService(CommonService commonService) {
  1125. this.commonService = commonService;
  1126. }
  1127. public void setXtGydmDAO(XtGydmDAO xtGydmDAO) {
  1128. this.xtGydmDAO = xtGydmDAO;
  1129. }
  1130. public void setSjlrGzdaDAO(SjlrGzdaDAO sjlrGzdaDAO) {
  1131. this.sjlrGzdaDAO = sjlrGzdaDAO;
  1132. }
  1133. public void setSjlrPzjlDAO(SjlrPzjlDAO sjlrPzjlDAO) {
  1134. this.sjlrPzjlDAO = sjlrPzjlDAO;
  1135. }
  1136. public void setSjlrMzdaDAO(SjlrMzdaDAO sjlrMzdaDAO) {
  1137. this.sjlrMzdaDAO = sjlrMzdaDAO;
  1138. }
  1139. public void setSjlrRsjlDAO(SjlrRsjlDAO sjlrRsjlDAO) {
  1140. this.sjlrRsjlDAO = sjlrRsjlDAO;
  1141. }
  1142. }