SjlrPzHpController.java 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883
  1. package com.huimv.sjlr;
  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.dto.SjlrPzjlDTO;
  20. import com.huimv.sjlr.dao.SjlrGzdaDAO;
  21. import com.huimv.sjlr.dao.SjlrMzdaDAO;
  22. import com.huimv.sjlr.dao.SjlrPzjlDAO;
  23. import com.huimv.sjlr.dao.SjlrRsjlDAO;
  24. import com.huimv.sjlr.dataobject.SjlrGzda;
  25. import com.huimv.sjlr.dataobject.SjlrGzdaExample;
  26. import com.huimv.sjlr.dataobject.SjlrMzda;
  27. import com.huimv.sjlr.dataobject.SjlrMzdaExample;
  28. import com.huimv.sjlr.dataobject.SjlrPzjl;
  29. import com.huimv.sjlr.dataobject.SjlrPzjlExample;
  30. import com.huimv.sjlr.dataobject.SjlrRsjlExample;
  31. import com.huimv.web.base.BaseController;
  32. import com.huimv.xt.dao.XtGydmDAO;
  33. import com.huimv.xt.dataobject.XtGydm;
  34. /**
  35. * 版权所有:慧牧科技
  36. * 项目名称:数据录入——配种
  37. * 创建者:
  38. * 创建日期:2017-5-10
  39. * 文件说明:
  40. * 最近修改者 xudan
  41. * 最近修改日期:2017-5-22
  42. */
  43. public class SjlrPzHpController extends BaseController {
  44. /**
  45. *@function: 加载配种
  46. *@author: abc
  47. *@date : May 22, 2017
  48. */
  49. private CommonService commonService;
  50. private XtGydmDAO xtGydmDAO;
  51. private SjlrGzdaDAO sjlrGzdaDAO;
  52. private SjlrPzjlDAO sjlrPzjlDAO;
  53. private SjlrMzdaDAO sjlrMzdaDAO;
  54. private SjlrRsjlDAO sjlrRsjlDAO;
  55. public ModelAndView hpSjlrPzIndex(HttpServletRequest request,
  56. HttpServletResponse response) throws Exception {
  57. ModelAndView mv = new ModelAndView("haifmp/sjlr/pz/hpSjlrPzIndex.htm");
  58. Map<String, Object> paramMap = new HashMap<String, Object>();
  59. String dweb = request.getParameter("dweb");
  60. String mcid = request.getParameter("mcid");
  61. String ksrq = request.getParameter("ksrq");
  62. String jsrq = request.getParameter("jsrq");
  63. String cxeph = request.getParameter("cxeph");
  64. String searchFlag = request.getParameter("searchFlag");
  65. SjlrPzjlDTO pzjlDTO = null;
  66. List<SjlrPzjlDTO> pzDTOList = new ArrayList<SjlrPzjlDTO>();
  67. List<SjlrPzjl> pzList = null;
  68. String date = "";
  69. int count = 0;
  70. if (StringUtils.hasText(mcid)) {
  71. paramMap.put("mcid", mcid);
  72. paramMap.put("order", XtSearchSqlConstant.order_by_pz);
  73. if (!StringUtils.hasText(searchFlag)) {
  74. searchFlag = "0";//如果没有,默认是耳标搜索页面
  75. }
  76. mv.addObject("searchFlag", searchFlag);
  77. if (XtAppConstant.HAIFMP_SEARCH_FLAG_DATE.equals(searchFlag)) {//日期搜索页面
  78. if (!StringUtils.hasText(jsrq)) {
  79. jsrq = DateUtil.parserDateToDefaultString(commonService.getCurrentDate());
  80. }
  81. paramMap.put("jsrq", jsrq);
  82. mv.addObject("jsrq", jsrq);
  83. if (!StringUtils.hasText(ksrq)) {
  84. Calendar calendar = new GregorianCalendar();
  85. calendar.setTime(commonService.getCurrentDate());
  86. calendar.add(Calendar.DATE, -7);
  87. ksrq = DateUtil.parserDateToDefaultString(calendar.getTime());
  88. }
  89. paramMap.put("ksrq", ksrq);
  90. mv.addObject("ksrq", ksrq);
  91. } else {//耳标搜索页面,无耳标显示当天,有耳标显示当前耳标下全部
  92. if (StringUtils.hasText(dweb)) {
  93. //根据耳标号
  94. paramMap.put("dweb", "%" + dweb +"%" );
  95. mv.addObject("dweb",dweb);
  96. } else if (StringUtils.hasText(cxeph)) {
  97. //根据耳牌号查
  98. paramMap.put("cxeph","%" + cxeph +"%" );
  99. mv.addObject("dweb",cxeph);
  100. } else {
  101. jsrq = ksrq = DateUtil.parserDateToDefaultString(commonService.getCurrentDate());
  102. paramMap.put("jsrq", jsrq);
  103. paramMap.put("ksrq", ksrq);
  104. }
  105. }
  106. paramMap.put("order", XtSearchSqlConstant.order_by_pz);
  107. List<SjlrPzjl> pzjlList = sjlrPzjlDAO.selectPzjlListByParam(paramMap);
  108. if (pzjlList.size() == 0 && searchFlag.equals("0")) {//如果当天没有则取最近一天
  109. Map<String, Object> paramMapPz = new HashMap<String, Object>();
  110. paramMapPz.put("order", "order by pz.id desc");
  111. List<SjlrPzjl> pzjlListPz = sjlrPzjlDAO.selectPzjlListByParam(paramMapPz);
  112. if (pzjlListPz.size() > 0) {
  113. String lastPzsj = DateUtil.parserDateToDefaultString(pzjlListPz.get(0).getPzsj());
  114. String lastJsrq = lastPzsj;
  115. String lastksrq = lastJsrq;
  116. paramMap.put("jsrq", lastJsrq);
  117. paramMap.put("ksrq", lastksrq);
  118. pzjlList.clear();
  119. pzjlList = sjlrPzjlDAO.selectPzjlListByParam(paramMap);
  120. }
  121. }
  122. List<XtGydm> pzsmList = getGydm(XtAppConstant.CODE_SJLR_PZSM);
  123. List<XtGydm> slList = getGydm(XtAppConstant.CODE_SJLR_SL);
  124. if (pzjlList != null && pzjlList.size() > 0) {
  125. for (int i = 0 ; i < pzjlList.size() ; i++) {
  126. SjlrPzjl sjlrPzjl = pzjlList.get(i);
  127. //根据耳标号查询耳牌号
  128. //获得母猪耳牌号
  129. SjlrMzdaExample mzEx = new SjlrMzdaExample();
  130. SjlrMzdaExample.Criteria mzCr = mzEx.createCriteria();
  131. mzCr.andDwebEqualTo(sjlrPzjl.getMzeb()).andMcidEqualTo(Integer.parseInt(mcid));
  132. mzCr.andZfbzEqualTo(XtAppConstant.ZFBZ_VALID);
  133. String eph = sjlrMzdaDAO.selectByExample(mzEx).get(0).getEph();
  134. sjlrPzjl.setEph(eph);
  135. //获得首配公猪耳牌号
  136. String ypgzep = "";
  137. if (sjlrPzjl.getYpgzeb() != null) {
  138. ypgzep = this.geteph(sjlrPzjl.getYpgzeb());
  139. }
  140. sjlrPzjl.setYpep(ypgzep);
  141. //配种说明
  142. if (sjlrPzjl.getPzsm() != null) {
  143. for (XtGydm xtGydm : pzsmList) {
  144. if (xtGydm.getDmid().equals(String.valueOf(sjlrPzjl.getPzsm()))) {
  145. sjlrPzjl.setPzsmStr(xtGydm.getDmmc());
  146. }
  147. }
  148. }
  149. //舍栏
  150. if (StringUtils.hasText(sjlrPzjl.getSl())) {
  151. for (XtGydm xtGydm : slList) {
  152. if (xtGydm.getDmid().equals(sjlrPzjl.getSl())) {
  153. sjlrPzjl.setSlStr(xtGydm.getDmmc());
  154. }
  155. }
  156. }
  157. if (!StringUtils.hasText(sjlrPzjl.getYppf())) {
  158. sjlrPzjl.setYppf("0");
  159. }
  160. //业务逻辑
  161. if (i == 0) {
  162. pzjlDTO = new SjlrPzjlDTO();
  163. pzList = new ArrayList<SjlrPzjl>();
  164. date = DateUtil.parserDateToDefaultString(sjlrPzjl.getPzsj());
  165. pzjlDTO.setDate(date);
  166. pzList.add(sjlrPzjl);
  167. count++;
  168. } else {
  169. if (DateUtil.parserDateToDefaultString(sjlrPzjl.getPzsj()).equals(date)) {
  170. count++;
  171. pzList.add(sjlrPzjl);
  172. }else {
  173. pzjlDTO.setPzList(pzList);
  174. pzjlDTO.setCount(count);
  175. pzDTOList.add(pzjlDTO);
  176. pzjlDTO = new SjlrPzjlDTO();
  177. pzList = new ArrayList<SjlrPzjl>();
  178. date = DateUtil.parserDateToDefaultString(sjlrPzjl.getPzsj());
  179. pzjlDTO.setDate(date);
  180. pzList.add(sjlrPzjl);
  181. count = 1;
  182. }
  183. }
  184. }
  185. if (count > 0 ) {
  186. pzjlDTO.setPzList(pzList);
  187. pzjlDTO.setCount(count);
  188. pzDTOList.add(pzjlDTO);
  189. }
  190. }
  191. mv.addObject("pzDTOList", pzDTOList);
  192. }
  193. mv.addObject("ksrq", ksrq);
  194. mv.addObject("jsrq", jsrq);
  195. return mv;
  196. }
  197. /**
  198. * 加载配种记录新增/修改页面
  199. * @param request
  200. * @param response
  201. * @return
  202. * @throws Exception
  203. */
  204. public ModelAndView hpSjlrPzAdd(HttpServletRequest request,
  205. HttpServletResponse response) throws Exception {
  206. ModelAndView mv = new ModelAndView("haifmp/sjlr/pz/hpSjlrPzjlAdd.htm");
  207. String dweb = request.getParameter("dweb");
  208. String id = request.getParameter("id");
  209. String mcid = request.getParameter("mcid");
  210. String date = request.getParameter("date");
  211. String type = request.getParameter("type");
  212. String npgz = request.getParameter("npgz");
  213. List<XtGydm> slList = getGydm(XtAppConstant.CODE_SJLR_SL);
  214. List<XtGydm> pzsmList = getGydm(XtAppConstant.CODE_SJLR_PZSM);
  215. Map<String, Object> paramMap = new HashMap<String, Object>();
  216. SjlrPzjl sjlrPzjl = new SjlrPzjl();
  217. if ("undefined".equals(id)) {
  218. id = null;
  219. }
  220. if (StringUtils.hasText(mcid)) {
  221. //有ID,无动物耳标 修改
  222. if (StringUtils.hasText(id) && !StringUtils.hasText(dweb)) {
  223. sjlrPzjl = sjlrPzjlDAO.selectByPrimaryKey(Integer.parseInt(id));
  224. dweb = sjlrPzjl.getMzeb();
  225. paramMap.put("mzeb", dweb);
  226. int pztc = sjlrPzjlDAO.countPztcByParam(paramMap);
  227. sjlrPzjl.setPztc(pztc + "");
  228. id = null;
  229. //获得母猪耳牌号
  230. SjlrMzdaExample mzEx = new SjlrMzdaExample();
  231. SjlrMzdaExample.Criteria mzCr = mzEx.createCriteria();
  232. mzCr.andDwebEqualTo(sjlrPzjl.getMzeb()).andMcidEqualTo(Integer.parseInt(mcid));
  233. mzCr.andZfbzEqualTo(XtAppConstant.ZFBZ_VALID);
  234. String eph = sjlrMzdaDAO.selectByExample(mzEx).get(0).getEph();
  235. sjlrPzjl.setEph(eph);
  236. //获得首配公猪耳牌号
  237. String ypgzep = "";
  238. if (sjlrPzjl.getYpgzeb() != null) {
  239. ypgzep = this.geteph(sjlrPzjl.getYpgzeb());
  240. }
  241. sjlrPzjl.setYpep(ypgzep);
  242. //没有ID 新增
  243. } else if (StringUtils.hasText(dweb)) {
  244. if (!StringUtils.hasText(type)) {
  245. sjlrPzjl.setMzeb(dweb);
  246. }
  247. if (StringUtils.hasText(dweb)) {
  248. if (StringUtils.hasText(type)) {
  249. if ("mzep".equals(type)) {
  250. sjlrPzjl.setMzeb(dweb);
  251. SjlrMzdaExample mzdaEx = new SjlrMzdaExample();
  252. SjlrMzdaExample.Criteria mzdaCr = mzdaEx.createCriteria();
  253. mzdaCr.andDwebEqualTo(sjlrPzjl.getMzeb()).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID);
  254. if (StringUtils.hasText(mcid)) {
  255. mzdaCr.andMcidEqualTo(Integer.parseInt(mcid));
  256. }
  257. List<SjlrMzda> mzdaList = sjlrMzdaDAO.selectByExample(mzdaEx);
  258. if (mzdaList != null && mzdaList.size() > 0) {
  259. sjlrPzjl.setPzls(mzdaList.get(0).getSl());
  260. sjlrPzjl.setZrls(mzdaList.get(0).getSl());
  261. sjlrPzjl.setEph(mzdaList.get(0).getEph());
  262. }
  263. SjlrPzjlExample pzjlEx = new SjlrPzjlExample();
  264. pzjlEx.createCriteria().andMzebEqualTo(dweb);
  265. int count = sjlrPzjlDAO.countByExample(pzjlEx);
  266. sjlrPzjl.setPztc(count + 1 + "");
  267. if (count == 0) {
  268. sjlrPzjl.setPzsm("2");
  269. }
  270. String mzfqjg = request.getParameter("mzfqjg");
  271. if (StringUtils.hasText(mzfqjg)) {
  272. sjlrPzjl.setFqjg(Integer.parseInt(mzfqjg));
  273. }
  274. } else if ("ypep".equals(type)) {
  275. sjlrPzjl.setYpgzeb(dweb);
  276. String ypep = request.getParameter("eph");
  277. sjlrPzjl.setYpep(ypep);
  278. } /*else if ("epep".equals(type)) {
  279. sjlrPzjl.setEpgzeb(dweb);
  280. } else if ("spep".equals(type)) {
  281. sjlrPzjl.setSpgzeb(dweb);
  282. }*/
  283. }
  284. }
  285. }
  286. String mzeb = request.getParameter("mzeb");
  287. if (StringUtils.hasText(mzeb) && !"mzep".equals(type)) {
  288. sjlrPzjl.setMzeb(mzeb);
  289. }
  290. if (StringUtils.hasText(id)) {
  291. sjlrPzjl.setId(Integer.parseInt(id));
  292. }
  293. String pzls = request.getParameter("pzls");
  294. if (StringUtils.hasText(pzls)) {
  295. sjlrPzjl.setPzls(pzls);
  296. }
  297. String zrls = request.getParameter("zrls");
  298. if (StringUtils.hasText(zrls)) {
  299. sjlrPzjl.setZrls(zrls);
  300. }
  301. String bb = request.getParameter("bb");
  302. if (StringUtils.hasText(bb)) {
  303. sjlrPzjl.setBb(bb);
  304. }
  305. String pzsm = request.getParameter("pzsm");
  306. if (StringUtils.hasText(pzsm)) {
  307. sjlrPzjl.setPzsm(pzsm);
  308. }
  309. String pztc = request.getParameter("pztc");
  310. if (StringUtils.hasText(pztc)) {
  311. sjlrPzjl.setPztc(pztc);
  312. }
  313. String fqjg = request.getParameter("fqjg");
  314. if (sjlrPzjl.getFqjg() == null && StringUtils.hasText(fqjg)) {
  315. sjlrPzjl.setFqjg(Integer.parseInt(fqjg));
  316. }
  317. String ypgzeb = request.getParameter("ypgzeb");
  318. if (StringUtils.hasText(type) && !"ypep".equals(type) && StringUtils.hasText(ypgzeb)) {
  319. sjlrPzjl.setYpgzeb(ypgzeb);
  320. }
  321. String yppf = request.getParameter("yppf");
  322. if (StringUtils.hasText(yppf)) {
  323. sjlrPzjl.setYppf(yppf);
  324. }
  325. /*String epgzeb = request.getParameter("epgzeb");
  326. if (StringUtils.hasText(type) && !"epep".equals(type) && StringUtils.hasText(epgzeb)) {
  327. sjlrPzjl.setEpgzeb(epgzeb);
  328. }
  329. String eppf = request.getParameter("eppf");
  330. if (StringUtils.hasText(eppf)) {
  331. sjlrPzjl.setEppf(eppf);
  332. }
  333. String spgzeb = request.getParameter("spgzeb");
  334. if (StringUtils.hasText(type) && !"spep".equals(type) && StringUtils.hasText(spgzeb)) {
  335. sjlrPzjl.setSpgzeb(spgzeb);
  336. }
  337. String sppf = request.getParameter("sppf");
  338. if (StringUtils.hasText(sppf)) {
  339. sjlrPzjl.setSppf(sppf);
  340. }*/
  341. String pzsj = request.getParameter("pzsj");
  342. if (StringUtils.hasText(pzsj)) {
  343. sjlrPzjl.setPzsj(DateUtil.parserTo(pzsj));
  344. } else {
  345. //修改中,配种时间为配种记录的配种时间
  346. if (sjlrPzjl.getPzsj()== null ) {
  347. sjlrPzjl.setPzsj(DateUtil.parserTo(date));
  348. }
  349. }
  350. String ypep = request.getParameter("ypep");
  351. if (StringUtils.hasText(type) && !"ypep".equals(type) && StringUtils.hasText(ypep)) {
  352. sjlrPzjl.setYpep(ypep);
  353. }
  354. String mzep = request.getParameter("mzep");
  355. if (StringUtils.hasText(mzep) && !"mzep".equals(type)) {
  356. sjlrPzjl.setEph(mzep);
  357. }
  358. /*String epep = request.getParameter("epep");
  359. if (StringUtils.hasText(epep)) {
  360. sjlrPzjl.setEpep(epep);
  361. }
  362. String spep = request.getParameter("spep");
  363. if (StringUtils.hasText(spep)) {
  364. sjlrPzjl.setSpep(spep);
  365. }*/
  366. mv.addObject("pzsmList", pzsmList);
  367. mv.addObject("slList", slList);
  368. mv.addObject("sjlrPzjl", sjlrPzjl);
  369. mv.addObject("id", sjlrPzjl.getId());
  370. mv.addObject("npgz",npgz);
  371. }
  372. return mv;
  373. }
  374. /**
  375. * 保存
  376. * @param request
  377. * @throws Exception
  378. */
  379. public void saveSjlrPzjl(HttpServletRequest request,
  380. HttpServletResponse response) throws Exception {
  381. response.setContentType("text/json; charset=UTF-8");
  382. response.addHeader("Cache-Control", "no-cache,must-revalidate");
  383. response.addHeader("Pragma", "no-cache");
  384. SjlrPzjl sjlrPzjl = new SjlrPzjl();
  385. sjlrPzjl = (SjlrPzjl) parseObjectFromRequest(request, sjlrPzjl);
  386. Date mzrl = null;
  387. Date gzrl = null;
  388. sjlrPzjl.setXgr(getLoginSessionBean(request).getYhid().toString());
  389. sjlrPzjl.setXgsj(commonService.getCurrentDate());
  390. sjlrPzjl.setZfbz(XtAppConstant.ZFBZ_VALID);
  391. if (sjlrPzjl.getFqjg() == null) {
  392. sjlrPzjl.setFqjg(0);
  393. }
  394. if (StringUtils.hasText(request.getParameter("mzeb"))) {
  395. sjlrPzjl.setMzeb(request.getParameter("mzeb"));
  396. }
  397. if (StringUtils.hasText(request.getParameter("ypgzeb"))) {
  398. sjlrPzjl.setYpgzeb(request.getParameter("ypgzeb"));
  399. }
  400. /*if (StringUtils.hasText(request.getParameter("epgzeb"))) {
  401. sjlrPzjl.setEpgzeb(request.getParameter("epgzeb"));
  402. }
  403. if (StringUtils.hasText(request.getParameter("spgzeb"))) {
  404. sjlrPzjl.setSpgzeb(request.getParameter("spgzeb"));
  405. }*/
  406. if (!StringUtils.hasText(sjlrPzjl.getYppf())) {
  407. sjlrPzjl.setYppf("0");
  408. }
  409. /*if (!StringUtils.hasText(sjlrPzjl.getEppf())) {
  410. sjlrPzjl.setEppf("0");
  411. }
  412. if (!StringUtils.hasText(sjlrPzjl.getSppf())) {
  413. sjlrPzjl.setSppf("0");
  414. }*/
  415. if (!StringUtils.hasText(sjlrPzjl.getBb())) {
  416. sjlrPzjl.setBb("0");
  417. }
  418. //配种时间不能超过母猪和公猪的入栏日期
  419. //母猪入栏日期
  420. SjlrMzdaExample mzEx = new SjlrMzdaExample();
  421. SjlrMzdaExample.Criteria mzCr = mzEx.createCriteria();
  422. if (StringUtils.hasText(sjlrPzjl.getMzeb())) {
  423. mzCr.andDwebEqualTo(sjlrPzjl.getMzeb()).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID);
  424. mzrl = sjlrMzdaDAO.selectByExample(mzEx).get(0).getRlrq();
  425. }
  426. //公猪入栏日期
  427. SjlrGzdaExample gzEx = new SjlrGzdaExample();
  428. SjlrGzdaExample.Criteria gzCr = gzEx.createCriteria();
  429. if (StringUtils.hasText(sjlrPzjl.getYpgzeb())) {
  430. gzCr.andDwebEqualTo(sjlrPzjl.getYpgzeb()).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID);
  431. gzrl = sjlrGzdaDAO.selectByExample(gzEx).get(0).getRlrq();
  432. }
  433. String date = request.getParameter("date");
  434. if (StringUtils.hasText(date)) {
  435. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  436. Date pzsj = sdf.parse(date);
  437. if (StringUtils.hasText(sjlrPzjl.getMzeb())) {
  438. if (pzsj.getTime() < mzrl.getTime()) {
  439. String jsonStr = "{\"count\" : \"2\"}";
  440. response.getWriter().write(jsonStr);
  441. return;
  442. }
  443. }
  444. if (StringUtils.hasText(sjlrPzjl.getYpgzeb())) {
  445. if (pzsj.getTime() < gzrl.getTime()) {
  446. String jsonStr = "{\"count\" : \"3\"}";
  447. response.getWriter().write(jsonStr);
  448. return;
  449. }
  450. }
  451. }
  452. if (sjlrPzjl.getId().equals(0)) {
  453. sjlrPzjlDAO.insertSelective(sjlrPzjl);
  454. }else {
  455. sjlrPzjlDAO.updateByPrimaryKeySelective(sjlrPzjl);
  456. }
  457. String zrsl = sjlrPzjl.getZrls();
  458. if (StringUtils.hasText(zrsl)) {
  459. SjlrMzdaExample mzdaEx = new SjlrMzdaExample();
  460. SjlrMzdaExample.Criteria mzdaCr = mzdaEx.createCriteria();
  461. mzdaCr.andDwebEqualTo(sjlrPzjl.getMzeb()).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID);
  462. String mcid = request.getParameter("mcid");
  463. if (StringUtils.hasText(mcid)) {
  464. mzdaCr.andMcidEqualTo(Integer.parseInt(mcid));
  465. }
  466. SjlrMzda sjlrMzda = new SjlrMzda();
  467. sjlrMzda.setSl(zrsl);
  468. sjlrMzda.setXgr(getLoginSessionBean(request).getYhid().toString());
  469. sjlrMzda.setXgsj(commonService.getCurrentDate());
  470. sjlrMzda.setDqzt("16");
  471. sjlrMzdaDAO.updateByExampleSelective(sjlrMzda, mzdaEx);
  472. }
  473. String jsonStr = "{\"count\" : \"1\"}";
  474. response.getWriter().write(jsonStr);
  475. }
  476. /**
  477. * 版权所有:慧牧科技
  478. * 项目名称:数据录入
  479. * 创建者:
  480. * 创建日期:2017-5-10
  481. * 文件说明:耳标公共查询页面
  482. * 最近修改者 xudan
  483. * 最近修改日期:2017-5-22
  484. *
  485. */
  486. public ModelAndView getPzjlSearchDweb(HttpServletRequest request,
  487. HttpServletResponse response) throws Exception {
  488. ModelAndView mv = new ModelAndView("haifmp/sjlr/pz/pzjlSearchModel.htm");
  489. String dweb = request.getParameter("dweb");
  490. String mcid = request.getParameter("mcid");
  491. String type = request.getParameter("type");
  492. String npgz = request.getParameter("npgz");
  493. String cxeph = request.getParameter("cxeph");
  494. String pzsj = request.getParameter("pzsj");
  495. Date drpzsj = null;
  496. String gzeb = "";
  497. List<Date> cjjgList = null;
  498. List<SjlrMzda> mzList = new ArrayList<SjlrMzda>();
  499. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  500. if (StringUtils.hasText(pzsj)) {
  501. drpzsj = sdf.parse(pzsj);
  502. }
  503. if (StringUtils.hasText(mcid)) {
  504. List<XtGydm> dqztList = getGydm(XtAppConstant.CODE_SJLR_MZZT);
  505. List<XtGydm> pzList = getGydm(XtAppConstant.CODE_SJLR_ZZPZ);
  506. if (StringUtils.hasText(type) && "mzep".equals(type)) {
  507. Map<String, Object> paramMap = new HashMap<String, Object>();
  508. paramMap.put("mcid", mcid);
  509. if (StringUtils.hasText(dweb)) {
  510. //根据耳标号
  511. paramMap.put("dweb", "%" + dweb +"%" );
  512. mv.addObject("dweb",dweb);
  513. } else if (StringUtils.hasText(cxeph)) {
  514. //根据耳牌号查
  515. paramMap.put("cxeph","%" + cxeph +"%" );
  516. mv.addObject("cxeph",cxeph);
  517. }
  518. List<SjlrMzda> mzdaList = sjlrPzjlDAO.selectPzjlMzdaListByParam(paramMap);
  519. if (mzdaList != null && mzdaList.size() > 0) {
  520. for (SjlrMzda sjlrMzda : mzdaList) {
  521. //品种
  522. if (StringUtils.hasText(sjlrMzda.getPz())) {
  523. for (XtGydm xtGydm : pzList) {
  524. if (sjlrMzda.getPz().equals(xtGydm.getDmid())) {
  525. sjlrMzda.setPzStr(xtGydm.getDmmc());
  526. }
  527. }
  528. }
  529. //当前状态
  530. if (StringUtils.hasText(sjlrMzda.getDqzt())) {
  531. for (XtGydm xtGydm : dqztList) {
  532. if (sjlrMzda.getDqzt().equals(xtGydm.getDmid())) {
  533. sjlrMzda.setDqztStr(xtGydm.getDmmc());
  534. }
  535. }
  536. }
  537. //失配天数
  538. long day = 0;
  539. if (sjlrMzda.getZjpzsj() != null && drpzsj != null) {
  540. day = (drpzsj.getTime() - sjlrMzda.getZjpzsj().getTime()) / DateUtil.MILLSECOND_OF_DAY + 1;
  541. } else {
  542. day = (drpzsj.getTime() - sjlrMzda.getCsrq().getTime()) / DateUtil.MILLSECOND_OF_DAY + 1;
  543. }
  544. sjlrMzda.setSpts(day);
  545. mzList.add(sjlrMzda);
  546. }
  547. }
  548. mv.addObject("mzList", mzList);
  549. } else {
  550. SjlrGzdaExample gzdaEx = new SjlrGzdaExample();
  551. SjlrGzdaExample.Criteria cr = gzdaEx.createCriteria();
  552. List<String> dqzt = new ArrayList<String>();
  553. dqzt.add("1");
  554. dqzt.add("9");
  555. dqzt.add("15");
  556. dqzt.add("11");
  557. cr.andZfbzEqualTo(XtAppConstant.ZFBZ_VALID).andMcidEqualTo(Integer.parseInt(mcid)).andDqztIn(dqzt);
  558. //手持机输入动物耳标
  559. if (StringUtils.hasText(dweb)) {
  560. cr.andDwebLike("%" + dweb + "%");
  561. mv.addObject("dweb", dweb);
  562. }
  563. //手动输入耳牌号
  564. if (StringUtils.hasText(cxeph)) {
  565. cr.andEphLike("%" + cxeph + "%");
  566. mv.addObject("dweb", cxeph);
  567. }
  568. //在场公猪
  569. cr.andLcrqIsNull();
  570. List<SjlrGzda> gzdaList = sjlrGzdaDAO.selectByExample(gzdaEx);
  571. SjlrPzjlExample pzjlEx = new SjlrPzjlExample();
  572. SjlrPzjlExample.Criteria pzcr = pzjlEx.createCriteria();
  573. pzcr.andZfbzEqualTo(XtAppConstant.ZFBZ_VALID);
  574. List<SjlrPzjl> pzjlList = sjlrPzjlDAO.selectByExample(pzjlEx);
  575. if (gzdaList != null && gzdaList.size() > 0) {
  576. for (SjlrGzda sjlrGzda : gzdaList) {
  577. //品种
  578. if (StringUtils.hasText(sjlrGzda.getPz())) {
  579. for (XtGydm xtGydm : pzList) {
  580. if (sjlrGzda.getPz().equals(xtGydm.getDmid())) {
  581. sjlrGzda.setPzStr(xtGydm.getDmmc());
  582. }
  583. }
  584. }
  585. //当前状态
  586. if (StringUtils.hasText(sjlrGzda.getDqzt())) {
  587. for (XtGydm xtGydm : dqztList) {
  588. if (sjlrGzda.getDqzt().equals(xtGydm.getDmid())) {
  589. sjlrGzda.setDqztStr(xtGydm.getDmmc());
  590. }
  591. }
  592. }
  593. cjjgList = new ArrayList<Date>();
  594. Date cjjg = null;
  595. gzeb = sjlrGzda.getDweb();
  596. for (SjlrPzjl sjlrPzjl : pzjlList) {
  597. if (StringUtils.hasText(gzeb)) {
  598. if (gzeb.equals(sjlrPzjl.getYpgzeb())) {
  599. if (StringUtils.hasText(sjlrPzjl.getPzsj().toString())) {
  600. cjjg = sjlrPzjl.getPzsj();
  601. cjjgList.add(cjjg);
  602. }
  603. }
  604. else if (gzeb.equals(sjlrPzjl.getEpgzeb())) {
  605. if (StringUtils.hasText(sjlrPzjl.getPzsj().toString())) {
  606. cjjg = sjlrPzjl.getPzsj();
  607. cjjgList.add(cjjg);
  608. }
  609. }
  610. else if (gzeb.equals(sjlrPzjl.getSpgzeb())) {
  611. if (StringUtils.hasText(sjlrPzjl.getPzsj().toString())) {
  612. cjjg = sjlrPzjl.getPzsj();
  613. cjjgList.add(cjjg);
  614. }
  615. }
  616. }
  617. }
  618. if (cjjg == null) {
  619. cjjg = sjlrGzda.getCsrq();
  620. cjjgList.add(cjjg);
  621. }
  622. cjjg = Collections.max(cjjgList);
  623. long date = cjjg.getTime();
  624. sjlrGzda.setPzjg((drpzsj.getTime()-date) / DateUtil.MILLSECOND_OF_DAY + 1);
  625. }
  626. }
  627. mv.addObject("gzdaList", gzdaList);
  628. }
  629. if (StringUtils.hasText(type)) {
  630. mv.addObject("type", type);
  631. }
  632. if (StringUtils.hasText(pzsj)) {
  633. mv.addObject("pzsj", pzsj);
  634. }
  635. String id = request.getParameter("id");
  636. if (StringUtils.hasText(id)) {
  637. mv.addObject("id", id);
  638. }
  639. String mzeb = request.getParameter("mzeb");
  640. if (StringUtils.hasText(mzeb)) {
  641. mv.addObject("mzeb", mzeb);
  642. }
  643. String pzls = request.getParameter("pzls");
  644. if (StringUtils.hasText(pzls)) {
  645. mv.addObject("pzls", pzls);
  646. }
  647. String zrls = request.getParameter("zrls");
  648. if (StringUtils.hasText(zrls)) {
  649. mv.addObject("zrls", zrls);
  650. }
  651. String bb = request.getParameter("bb");
  652. if (StringUtils.hasText(bb)) {
  653. mv.addObject("bb", bb);
  654. }
  655. String pztc = request.getParameter("pztc");
  656. if (StringUtils.hasText(pztc)) {
  657. mv.addObject("pztc", pztc);
  658. }
  659. String pzsm = request.getParameter("pzsm");
  660. if (StringUtils.hasText(pzsm)) {
  661. mv.addObject("pzsm", pzsm);
  662. }
  663. String fqjg = request.getParameter("fqjg");
  664. if (StringUtils.hasText(fqjg)) {
  665. mv.addObject("fqjg", fqjg);
  666. }
  667. String ypgzeb = request.getParameter("ypgzeb");
  668. if (StringUtils.hasText(ypgzeb)) {
  669. mv.addObject("ypgzeb", ypgzeb);
  670. }
  671. String yppf = request.getParameter("yppf");
  672. if (StringUtils.hasText(yppf)) {
  673. mv.addObject("yppf", yppf);
  674. }
  675. /*String epgzeb = request.getParameter("epgzeb");
  676. if (StringUtils.hasText(epgzeb)) {
  677. mv.addObject("epgzeb", epgzeb);
  678. }
  679. String eppf = request.getParameter("eppf");
  680. if (StringUtils.hasText(eppf)) {
  681. mv.addObject("eppf", eppf);
  682. }
  683. String spgzeb = request.getParameter("spgzeb");
  684. if (StringUtils.hasText(spgzeb)) {
  685. mv.addObject("spgzeb", spgzeb);
  686. }
  687. String sppf = request.getParameter("sppf");
  688. if (StringUtils.hasText(sppf)) {
  689. mv.addObject("sppf", sppf);
  690. }*/
  691. String ypep = request.getParameter("ypep");
  692. if (StringUtils.hasText(ypep)) {
  693. mv.addObject("ypep", ypep);
  694. }
  695. /*String epep = request.getParameter("epep");
  696. if (StringUtils.hasText(epep)) {
  697. mv.addObject("epep", epep);
  698. }
  699. String spep = request.getParameter("spep");
  700. if (StringUtils.hasText(spep)) {
  701. mv.addObject("spep", spep);
  702. }*/
  703. String mzep = request.getParameter("mzep");
  704. if (StringUtils.hasText(mzep)) {
  705. mv.addObject("mzep", mzep);
  706. }
  707. }
  708. mv.addObject("npgz",npgz);
  709. return mv;
  710. }
  711. /**
  712. * 是否是24小时之内的数据
  713. * @param request
  714. * @throws Exception
  715. */
  716. public void checkPzDataIsIn24H(HttpServletRequest request,
  717. HttpServletResponse response) throws Exception {
  718. response.setContentType("text/json; charset=UTF-8");
  719. response.addHeader("Cache-Control", "no-cache,must-revalidate" );
  720. response.addHeader("Pragma", "no-cache");
  721. String id = request.getParameter("id");
  722. String jsonStr = "";
  723. boolean isIn24H = false ;
  724. if (StringUtils.hasText(id)) {
  725. SjlrPzjlExample PzjlEx = new SjlrPzjlExample();
  726. SjlrPzjlExample.Criteria pzjlCr = PzjlEx.createCriteria();
  727. pzjlCr.andIdEqualTo(Integer.valueOf(id)).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID);
  728. List<SjlrPzjl> PzjlList = sjlrPzjlDAO.selectByExample(PzjlEx);
  729. if (PzjlList.size() > 0) {
  730. isIn24H = (commonService.getCurrentDate().getTime() - PzjlList.get(0).getPzsj().getTime()) <= 24*60*60*1000;
  731. }
  732. }
  733. if (isIn24H) {
  734. //如果是24小时内数据,判断是否已经妊娠
  735. SjlrRsjlExample rsEx = new SjlrRsjlExample();
  736. SjlrRsjlExample.Criteria rsCr = rsEx.createCriteria();
  737. rsCr.andPzidEqualTo(Integer.parseInt(id)).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID);
  738. int count = sjlrRsjlDAO.countByExample(rsEx);
  739. if (count == 0){
  740. jsonStr = "{\"count\" : \"1\"}"; //修改
  741. } else {
  742. jsonStr = "{\"count\" : \"2\"}"; //已有配种记录
  743. }
  744. } else {
  745. jsonStr = "{\"count\" : \"0\"}"; //已超过24小时,无法修改
  746. }
  747. response.getWriter().write(jsonStr);
  748. }
  749. /**
  750. * 是否在24小时后36小时内妊娠
  751. * @param request
  752. * @throws Exception
  753. */
  754. public void checkRsIn36Hour(HttpServletRequest request,
  755. HttpServletResponse response) throws Exception {
  756. response.setContentType("text/json; charset=UTF-8");
  757. response.addHeader("Cache-Control", "no-cache,must-revalidate");
  758. response.addHeader("Pragma", "no-cache");
  759. String pzid = request.getParameter("id");
  760. SjlrPzjl pzjl = null;
  761. String text = ""; //①xxxx @ ②x@ ③x ①返回的字段,②是否跳转到新增修改页面 f=不跳,t=跳 ,
  762. //③跳转到页面后哪配可以新增,0=不配种,1=重新配种,2=添加二配公猪字段,3=添加三配公猪字段
  763. //根据配种ID查询妊娠记录中有无此配种ID
  764. SjlrRsjlExample rsEx = new SjlrRsjlExample();
  765. SjlrRsjlExample.Criteria rsCr = rsEx.createCriteria();
  766. rsCr.andPzidEqualTo(Integer.parseInt(pzid)).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID);
  767. int count = sjlrRsjlDAO.countByExample(rsEx);
  768. //查询妊娠记录中有无此配种ID
  769. if (count <= 0) {
  770. //没有配种记录 查询此配种记录是否在36小时之内
  771. pzjl = sjlrPzjlDAO.selectByPrimaryKey(Integer.parseInt(pzid));
  772. String epzzid = pzjl.getEpgzeb();
  773. boolean isIn36H = (commonService.getCurrentDate().getTime() - pzjl.getPzsj().getTime()) <= 36*60*60*1000;
  774. //配种时间<36小时
  775. if (isIn36H) {
  776. //查询二配种猪ID
  777. //有二配种猪ID 36小时内未妊娠又已经有二配种猪ID ,等待36小时过去
  778. if (StringUtils.hasText(epzzid)) {
  779. text = "36小时内已二配@f@0";
  780. //无二配种猪ID,跳转页面,添加二配种猪ID
  781. } else {
  782. text = "@t@2";
  783. }
  784. //配种时间>36小时,查询有无二配种猪ID
  785. } else {
  786. boolean isIn72H = (commonService.getCurrentDate().getTime() - pzjl.getPzsj().getTime()) <= 72*60*60*1000;
  787. //配种时间<72小时
  788. if (isIn72H) {
  789. //有二配种猪ID ,查询有无三陪种猪ID
  790. if (StringUtils.hasText(epzzid)){
  791. String spgzid = pzjl.getSpgzeb();
  792. //有三配种猪ID ,等待到第72个小时
  793. if (StringUtils.hasText(spgzid)){
  794. text = "已有3配公猪记录@f@0";
  795. //没有三配种猪ID,添加三配种猪ID
  796. } else {
  797. text = "@t@3";
  798. }
  799. //无二配种猪ID,重新一配
  800. } else {
  801. text = "请重新配种@t@1";
  802. }
  803. //配种时间超过72小时,还没有妊娠
  804. } else {
  805. text = "配种时间已超过72小时,请重新配种@t@1";
  806. }
  807. }
  808. //妊娠记录中有配种ID
  809. } else {
  810. text = "恭喜!已妊娠成功@f@0";
  811. }
  812. response.getWriter().write(text);
  813. }
  814. public String geteph(String dweb) {
  815. SjlrGzdaExample gzEx = new SjlrGzdaExample();
  816. SjlrGzdaExample.Criteria gzCr = gzEx.createCriteria();
  817. gzCr.andDwebEqualTo(dweb);
  818. String eph = sjlrGzdaDAO.selectByExample(gzEx).get(0).getEph();
  819. return eph;
  820. }
  821. /**
  822. * 获取公用代码
  823. * @param lbmc
  824. * @return
  825. * @throws Exception
  826. */
  827. private List<XtGydm> getGydm(String lbmc) {
  828. return xtGydmDAO.selectGydmByLbmc(lbmc);
  829. }
  830. public void setCommonService(CommonService commonService) {
  831. this.commonService = commonService;
  832. }
  833. public void setXtGydmDAO(XtGydmDAO xtGydmDAO) {
  834. this.xtGydmDAO = xtGydmDAO;
  835. }
  836. public void setSjlrGzdaDAO(SjlrGzdaDAO sjlrGzdaDAO) {
  837. this.sjlrGzdaDAO = sjlrGzdaDAO;
  838. }
  839. public void setSjlrPzjlDAO(SjlrPzjlDAO sjlrPzjlDAO) {
  840. this.sjlrPzjlDAO = sjlrPzjlDAO;
  841. }
  842. public void setSjlrMzdaDAO(SjlrMzdaDAO sjlrMzdaDAO) {
  843. this.sjlrMzdaDAO = sjlrMzdaDAO;
  844. }
  845. public void setSjlrRsjlDAO(SjlrRsjlDAO sjlrRsjlDAO) {
  846. this.sjlrRsjlDAO = sjlrRsjlDAO;
  847. }
  848. }