HaifmvSjlrCjHpController.java 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772
  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.Date;
  6. import java.util.GregorianCalendar;
  7. import java.util.HashMap;
  8. import java.util.List;
  9. import java.util.Map;
  10. import javax.servlet.http.HttpServletRequest;
  11. import javax.servlet.http.HttpServletResponse;
  12. import org.springframework.util.StringUtils;
  13. import org.springframework.web.servlet.ModelAndView;
  14. import com.huimv.busi.xt.constant.XtAppConstant;
  15. import com.huimv.busi.xt.constant.XtSearchSqlConstant;
  16. import com.huimv.busi.xt.model.CommonService;
  17. import com.huimv.busi.xt.utils.DateUtil;
  18. import com.huimv.busi.xt.utils.JsonUtil;
  19. import com.huimv.dto.SjlrCjjlDTO;
  20. import com.huimv.sjlr.dao.SjlrCjjlDAO;
  21. import com.huimv.sjlr.dao.SjlrGzdaDAO;
  22. import com.huimv.sjlr.dao.SjlrMzdaDAO;
  23. import com.huimv.sjlr.dataobject.SjlrCjjl;
  24. import com.huimv.sjlr.dataobject.SjlrCjjlExample;
  25. import com.huimv.sjlr.dataobject.SjlrGzda;
  26. import com.huimv.sjlr.dataobject.SjlrGzdaExample;
  27. import com.huimv.web.base.BaseController;
  28. import com.huimv.xt.dao.XtGydmDAO;
  29. import com.huimv.xt.dataobject.XtGydm;
  30. public class HaifmvSjlrCjHpController extends BaseController {
  31. private CommonService commonService;
  32. private XtGydmDAO xtGydmDAO;
  33. private SjlrGzdaDAO sjlrGzdaDAO;
  34. private SjlrCjjlDAO sjlrCjjlDAO;
  35. private SjlrMzdaDAO sjlrMzdaDAO;
  36. /**
  37. * 加载采精首页
  38. * @param request
  39. * @param response
  40. * @return
  41. * @throws Exception
  42. */
  43. public ModelAndView hvSjlrCjIndex(HttpServletRequest request,
  44. HttpServletResponse response) throws Exception {
  45. ModelAndView mv = new ModelAndView("haifmv/sjrl/cj/cjjl.htm");
  46. Map<String, Object> paramMap = new HashMap<String, Object>();
  47. String dweb = request.getParameter("dweb");
  48. String mcid = request.getParameter("mcid");
  49. String ksrq = request.getParameter("ksrq");
  50. String jsrq = request.getParameter("jsrq");
  51. String cxeph = request.getParameter("cxeph");//查询耳牌号
  52. int countPage = 0;
  53. int maxPages = 0;
  54. if (StringUtils.hasText(mcid)) {
  55. paramMap.put("mcid", mcid);
  56. paramMap.put("order", XtSearchSqlConstant.order_by_cj);
  57. if (!StringUtils.hasText(jsrq)) {
  58. jsrq = DateUtil.parserDateToDefaultString(commonService.getCurrentDate());
  59. }
  60. paramMap.put("jsrq", jsrq);
  61. mv.addObject("jsrq", jsrq);
  62. if (!StringUtils.hasText(ksrq)) {
  63. Calendar calendar = new GregorianCalendar();
  64. calendar.setTime(commonService.getCurrentDate());
  65. calendar.add(Calendar.DATE, -7);
  66. ksrq = DateUtil.parserDateToDefaultString(calendar.getTime());
  67. }
  68. paramMap.put("ksrq", ksrq);
  69. mv.addObject("ksrq", ksrq);
  70. if (StringUtils.hasText(dweb)) {
  71. //根据耳标号
  72. paramMap.put("dweb", "%" + dweb + "%");
  73. mv.addObject("dweb",dweb);
  74. } else if (StringUtils.hasText(cxeph)) {
  75. //根据耳牌号查
  76. paramMap.put("cxeph", "%" + cxeph + "%");
  77. mv.addObject("dweb",cxeph);
  78. }
  79. countPage = sjlrCjjlDAO.selectCjjlListByParam(paramMap).size();
  80. if (countPage != 0) {
  81. maxPages = (countPage % 15 == 0 ? countPage / 15 : countPage/15 + 1);
  82. }
  83. paramMap.put("limit", "0,15");
  84. List<XtGydm> sfhgList = getGydm(XtAppConstant.CODE_SFHG);
  85. List<XtGydm> slList = getGydm(XtAppConstant.CODE_SJLR_SL);
  86. List<SjlrCjjl> cjjlList = sjlrCjjlDAO.selectCjjlListByParam(paramMap);
  87. if (cjjlList.size() == 0) {//如果当天没有则取最近一天
  88. Map<String, Object> paramMapPz = new HashMap<String, Object>();
  89. paramMapPz.put("order", XtSearchSqlConstant.order_by_cj);
  90. paramMapPz.put("mcid", mcid);
  91. countPage = sjlrCjjlDAO.selectCjjlListByParam(paramMapPz).size();
  92. if (countPage != 0) {
  93. maxPages = (countPage % 15 == 0 ? countPage / 15 : countPage/15 + 1);
  94. }
  95. paramMap.put("limit", "0,15");
  96. List<SjlrCjjl> cjjlListCj = sjlrCjjlDAO.selectCjjlListByParam(paramMapPz);
  97. if (cjjlListCj.size() > 0) {
  98. String lastCjsj = DateUtil.parserDateToDefaultString(cjjlListCj.get(0).getCjsj());
  99. String lastJsrq = lastCjsj;
  100. String lastksrq = lastJsrq;
  101. paramMap.put("jsrq", lastJsrq);
  102. paramMap.put("ksrq", lastksrq);
  103. paramMap.put("limit", "0,15");
  104. cjjlList.clear();
  105. cjjlList = sjlrCjjlDAO.selectCjjlListByParam(paramMap);
  106. }
  107. }
  108. List<SjlrCjjlDTO> cjjlDTOList = new ArrayList<SjlrCjjlDTO>();
  109. SjlrCjjlDTO sjlrCjjlDTO = null;
  110. String date = "";
  111. int count = 0;
  112. List<SjlrCjjl> cjList = null;
  113. if (cjjlList != null && cjjlList.size() > 0) {
  114. for (int i = 0; i < cjjlList.size(); i++) {
  115. SjlrCjjl sjlrCjjl = cjjlList.get(i);
  116. //根据耳标号查询耳牌号
  117. SjlrGzdaExample gzEx = new SjlrGzdaExample();
  118. SjlrGzdaExample.Criteria gzCr = gzEx.createCriteria();
  119. gzCr.andDwebEqualTo(sjlrCjjl.getDweb()).andMcidEqualTo(Integer.parseInt(mcid)).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID);
  120. String eph = sjlrGzdaDAO.selectByExample(gzEx).get(0).getEph();
  121. sjlrCjjl.setEph(eph);
  122. //上次采精时间
  123. Map<String, Object> paramMapByDweb = new HashMap<String, Object>();
  124. paramMapByDweb.put("dweb", sjlrCjjl.getDweb());
  125. paramMapByDweb.put("lastCjsj", DateUtil.parserDateToDefaultString2(sjlrCjjl.getCjsj()));
  126. List<SjlrCjjl> cjjlListByDweb = sjlrCjjlDAO.selectCjjlListByParam(paramMapByDweb);
  127. int size = cjjlListByDweb.size();
  128. if (size > 1) {//有上次采精记录
  129. sjlrCjjl.setLastCjsj(DateUtil.parserDateToDefaultString2(cjjlListByDweb.get(0).getCjsj()));
  130. } else {
  131. sjlrCjjl.setLastCjsj("");
  132. }
  133. //是否合格
  134. if (sjlrCjjl.getSfhg() != null) {
  135. for (XtGydm xtGydm : sfhgList) {
  136. if (xtGydm.getDmid().equals(String.valueOf(sjlrCjjl.getSfhg()))) {
  137. sjlrCjjl.setSfhgStr(xtGydm.getDmmc());
  138. }
  139. }
  140. }
  141. //舍栏
  142. if (StringUtils.hasText(sjlrCjjl.getSl())) {
  143. for (XtGydm xtGydm : slList) {
  144. if (xtGydm.getDmid().equals(sjlrCjjl.getSl())) {
  145. sjlrCjjl.setSlStr(xtGydm.getDmmc());
  146. }
  147. }
  148. }
  149. if (StringUtils.hasText(sjlrCjjl.getSlStr())) {
  150. if (sjlrCjjl.getSlStr().length() > 4) {
  151. sjlrCjjl.setIsSlFlag("false");
  152. } else {
  153. sjlrCjjl.setIsSlFlag("true");
  154. }
  155. } else {
  156. sjlrCjjl.setIsSlFlag("true");
  157. }
  158. //业务逻辑
  159. if (i == 0) {
  160. sjlrCjjlDTO = new SjlrCjjlDTO();
  161. cjList = new ArrayList<SjlrCjjl>();
  162. date = DateUtil.parserDateToDefaultString(sjlrCjjl.getCjsj());
  163. sjlrCjjlDTO.setCjrq(date);
  164. cjList.add(sjlrCjjl);
  165. count ++;
  166. } else {
  167. if (DateUtil.parserDateToDefaultString(sjlrCjjl.getCjsj()).equals(date)) {
  168. count ++;
  169. cjList.add(sjlrCjjl);
  170. } else {
  171. sjlrCjjlDTO.setCjjlList(cjList);
  172. sjlrCjjlDTO.setCount(count);
  173. cjjlDTOList.add(sjlrCjjlDTO);
  174. sjlrCjjlDTO = new SjlrCjjlDTO();
  175. cjList = new ArrayList<SjlrCjjl>();
  176. date = DateUtil.parserDateToDefaultString(sjlrCjjl.getCjsj());
  177. sjlrCjjlDTO.setCjrq(date);
  178. cjList.add(sjlrCjjl);
  179. count = 1;
  180. }
  181. }
  182. }
  183. if (count > 0) {
  184. sjlrCjjlDTO.setCjjlList(cjList);
  185. sjlrCjjlDTO.setCount(count);
  186. cjjlDTOList.add(sjlrCjjlDTO);
  187. }
  188. mv.addObject("cjjlDTOList", cjjlDTOList);
  189. }
  190. }
  191. dweb = cxeph;
  192. mv.addObject("maxPages",maxPages);
  193. mv.addObject("dweb", dweb);
  194. return mv;
  195. }
  196. /**
  197. * 采精记录首页的下拉加载
  198. * @param request
  199. * @param response
  200. * @throws Exception
  201. */
  202. public void addSjlrCjjl(HttpServletRequest request,
  203. HttpServletResponse response) throws Exception {
  204. Map<String, Object> paramMap = new HashMap<String, Object>();
  205. String page = request.getParameter("page");
  206. String dweb = request.getParameter("dweb");
  207. String mcid = request.getParameter("mcid");
  208. String ksrq = request.getParameter("ksrq");
  209. String jsrq = request.getParameter("jsrq");
  210. String cxeph = request.getParameter("cxeph");//查询耳牌号
  211. List<SjlrCjjlDTO> cjjlDTOList = new ArrayList<SjlrCjjlDTO>();
  212. if (StringUtils.hasText(mcid)) {
  213. paramMap.put("mcid", mcid);
  214. paramMap.put("order", XtSearchSqlConstant.order_by_cj);
  215. if (StringUtils.hasText(dweb)) {
  216. //根据耳标号
  217. paramMap.put("dweb", "%" + dweb + "%");
  218. } else if (StringUtils.hasText(cxeph)) {
  219. //根据耳牌号查
  220. paramMap.put("cxeph", "%" + cxeph + "%");
  221. }
  222. if (!StringUtils.hasText(jsrq)) {
  223. jsrq = DateUtil.parserDateToDefaultString(commonService.getCurrentDate());
  224. }
  225. paramMap.put("jsrq", jsrq);
  226. if (!StringUtils.hasText(ksrq)) {
  227. Calendar calendar = new GregorianCalendar();
  228. calendar.setTime(commonService.getCurrentDate());
  229. calendar.add(Calendar.DATE, -7);
  230. ksrq = DateUtil.parserDateToDefaultString(calendar.getTime());
  231. }
  232. paramMap.put("ksrq", ksrq);
  233. paramMap.put("limit", (Integer.parseInt(page)-1)*15+",15");
  234. List<XtGydm> sfhgList = getGydm(XtAppConstant.CODE_SFHG);
  235. List<XtGydm> slList = getGydm(XtAppConstant.CODE_SJLR_SL);
  236. List<SjlrCjjl> cjjlList = sjlrCjjlDAO.selectCjjlListByParam(paramMap);
  237. SjlrCjjlDTO sjlrCjjlDTO = null;
  238. String date = "";
  239. int count = 0;
  240. List<SjlrCjjl> cjList = null;
  241. if (cjjlList != null && cjjlList.size() > 0) {
  242. for (int i = 0; i < cjjlList.size(); i++) {
  243. SjlrCjjl sjlrCjjl = cjjlList.get(i);
  244. //根据耳标号查询耳牌号
  245. SjlrGzdaExample gzEx = new SjlrGzdaExample();
  246. SjlrGzdaExample.Criteria gzCr = gzEx.createCriteria();
  247. gzCr.andDwebEqualTo(sjlrCjjl.getDweb()).andMcidEqualTo(Integer.parseInt(mcid)).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID);
  248. String eph = sjlrGzdaDAO.selectByExample(gzEx).get(0).getEph();
  249. sjlrCjjl.setEph(eph);
  250. //上次采精时间
  251. Map<String, Object> paramMapByDweb = new HashMap<String, Object>();
  252. paramMapByDweb.put("dweb", sjlrCjjl.getDweb());
  253. paramMapByDweb.put("lastCjsj", DateUtil.parserDateToDefaultString2(sjlrCjjl.getCjsj()));
  254. List<SjlrCjjl> cjjlListByDweb = sjlrCjjlDAO.selectCjjlListByParam(paramMapByDweb);
  255. int size = cjjlListByDweb.size();
  256. if (size > 1) {//有上次采精记录
  257. sjlrCjjl.setLastCjsj(DateUtil.parserDateToDefaultString2(cjjlListByDweb.get(0).getCjsj()));
  258. } else {
  259. sjlrCjjl.setLastCjsj("");
  260. }
  261. //是否合格
  262. if (sjlrCjjl.getSfhg() != null) {
  263. for (XtGydm xtGydm : sfhgList) {
  264. if (xtGydm.getDmid().equals(String.valueOf(sjlrCjjl.getSfhg()))) {
  265. sjlrCjjl.setSfhgStr(xtGydm.getDmmc());
  266. }
  267. }
  268. }
  269. //舍栏
  270. if (StringUtils.hasText(sjlrCjjl.getSl())) {
  271. for (XtGydm xtGydm : slList) {
  272. if (xtGydm.getDmid().equals(sjlrCjjl.getSl())) {
  273. sjlrCjjl.setSlStr(xtGydm.getDmmc());
  274. }
  275. }
  276. }
  277. if (StringUtils.hasText(sjlrCjjl.getSlStr())) {
  278. if (sjlrCjjl.getSlStr().length() > 4) {
  279. sjlrCjjl.setIsSlFlag("false");
  280. } else {
  281. sjlrCjjl.setIsSlFlag("true");
  282. }
  283. } else {
  284. sjlrCjjl.setIsSlFlag("true");
  285. }
  286. //业务逻辑
  287. if (i == 0) {
  288. sjlrCjjlDTO = new SjlrCjjlDTO();
  289. cjList = new ArrayList<SjlrCjjl>();
  290. date = DateUtil.parserDateToDefaultString(sjlrCjjl.getCjsj());
  291. sjlrCjjlDTO.setCjrq(date);
  292. cjList.add(sjlrCjjl);
  293. count ++;
  294. } else {
  295. if (DateUtil.parserDateToDefaultString(sjlrCjjl.getCjsj()).equals(date)) {
  296. count ++;
  297. cjList.add(sjlrCjjl);
  298. } else {
  299. sjlrCjjlDTO.setCjjlList(cjList);
  300. sjlrCjjlDTO.setCount(count);
  301. cjjlDTOList.add(sjlrCjjlDTO);
  302. sjlrCjjlDTO = new SjlrCjjlDTO();
  303. cjList = new ArrayList<SjlrCjjl>();
  304. date = DateUtil.parserDateToDefaultString(sjlrCjjl.getCjsj());
  305. sjlrCjjlDTO.setCjrq(date);
  306. cjList.add(sjlrCjjl);
  307. count = 1;
  308. }
  309. }
  310. }
  311. if (count > 0) {
  312. sjlrCjjlDTO.setCjjlList(cjList);
  313. sjlrCjjlDTO.setCount(count);
  314. cjjlDTOList.add(sjlrCjjlDTO);
  315. }
  316. }
  317. }
  318. response.setCharacterEncoding("UTF-8");
  319. response.setContentType("text/plain; charset=UTF-8");
  320. response.addHeader("Cache-Control", "no-cache,must-revalidate");
  321. response.addHeader("Pragma", "no-cache");
  322. String param = JsonUtil.list2json(cjjlDTOList);
  323. response.getWriter().write(param);
  324. }
  325. /**
  326. * 加载采精记录新增页面
  327. * @param request
  328. * @param response
  329. * @return
  330. * @throws Exception
  331. */
  332. public ModelAndView hvSjlrCjAdd(HttpServletRequest request,
  333. HttpServletResponse response) throws Exception {
  334. ModelAndView mv = new ModelAndView("haifmv/sjrl/cj/cjjlAdd.htm");
  335. String mcid = request.getParameter("mcid");
  336. String id = request.getParameter("id");
  337. String dweb = request.getParameter("dweb");
  338. String date = request.getParameter("date");
  339. String eph = request.getParameter("eph");
  340. mv.addObject("eph",eph);
  341. SjlrCjjl sjlrCjjl = new SjlrCjjl();
  342. if (StringUtils.hasText(mcid)) {
  343. if (StringUtils.hasText(id)) { //有ID ,修改
  344. sjlrCjjl = sjlrCjjlDAO.selectByPrimaryKey(Integer.parseInt(id));
  345. dweb = sjlrCjjl.getDweb();
  346. if (StringUtils.hasText(dweb)) { //获得采精舍栏和耳牌号
  347. SjlrGzdaExample gzdaEx = new SjlrGzdaExample();
  348. SjlrGzdaExample.Criteria gzdaCr = gzdaEx.createCriteria();
  349. gzdaCr.andDwebEqualTo(sjlrCjjl.getDweb()).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID);
  350. if (StringUtils.hasText(mcid)) {
  351. gzdaCr.andMcidEqualTo(Integer.parseInt(mcid));
  352. }
  353. List<SjlrGzda> gzdaList = sjlrGzdaDAO.selectByExample(gzdaEx);
  354. if (gzdaList != null && gzdaList.size() > 0) {
  355. sjlrCjjl.setCjsl(gzdaList.get(0).getSl());
  356. sjlrCjjl.setEph(gzdaList.get(0).getEph());
  357. }
  358. }
  359. mv.addObject("id",id);
  360. } else {// 没有ID 新增
  361. if (StringUtils.hasText(dweb)) { //有动物耳标,说明是从search传值
  362. sjlrCjjl.setDweb(dweb);
  363. SjlrGzdaExample gzdaEx = new SjlrGzdaExample();
  364. SjlrGzdaExample.Criteria gzdaCr = gzdaEx.createCriteria();
  365. gzdaCr.andDwebEqualTo(sjlrCjjl.getDweb()).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID);
  366. if (StringUtils.hasText(mcid)) {
  367. gzdaCr.andMcidEqualTo(Integer.parseInt(mcid));
  368. }
  369. List<SjlrGzda> gzdaList = sjlrGzdaDAO.selectByExample(gzdaEx);
  370. if (gzdaList != null && gzdaList.size() > 0) {
  371. sjlrCjjl.setCjsl(gzdaList.get(0).getSl());
  372. sjlrCjjl.setDweb(dweb);
  373. sjlrCjjl.setEph(eph);
  374. }
  375. }
  376. }
  377. if (date != null) {
  378. SimpleDateFormat sdf=new SimpleDateFormat(XtAppConstant.TIME_FORMAT);
  379. java.util.Date newdate=sdf.parse(date.toString());
  380. sjlrCjjl.setCjsj(newdate);
  381. }else {
  382. if (sjlrCjjl.getCjsj() == null) {
  383. sjlrCjjl.setCjsj(commonService.getCurrentDate());
  384. }
  385. }
  386. }
  387. List<XtGydm> slList = getGydm(XtAppConstant.CODE_SJLR_SL);
  388. List<XtGydm> zcycList = getGydm(XtAppConstant.CODE_ZCYC);
  389. List<XtGydm> sfhgList = getGydm(XtAppConstant.CODE_SFHG);
  390. mv.addObject("sfhgList", sfhgList);
  391. mv.addObject("slList", slList);
  392. mv.addObject("zcycList", zcycList);
  393. mv.addObject("sjlrCjjl", sjlrCjjl);
  394. mv.addObject("date",date);
  395. mv.addObject("dweb",dweb);
  396. mv.addObject("kssj",request.getParameter("kssj"));
  397. mv.addObject("jssj",request.getParameter("jssj"));
  398. return mv;
  399. }
  400. /**
  401. * 采精保存
  402. * @param request
  403. * @throws Exception
  404. */
  405. public void saveHaifmvSjlrCjjl(HttpServletRequest request,
  406. HttpServletResponse response) throws Exception {
  407. response.setContentType("text/json; charset=UTF-8");
  408. response.addHeader("Cache-Control", "no-cache,must-revalidate");
  409. response.addHeader("Pragma", "no-cache");
  410. SjlrCjjl sjlrCjjl = new SjlrCjjl();
  411. String dweb = request.getParameter("dweb");
  412. sjlrCjjl = (SjlrCjjl) parseObjectFromRequest(request, sjlrCjjl);
  413. sjlrCjjl.setXgr(getLoginSessionBean(request).getYhid().toString());
  414. sjlrCjjl.setXgsj(commonService.getCurrentDate());
  415. sjlrCjjl.setZfbz(XtAppConstant.ZFBZ_VALID);
  416. String qw = request.getParameter("qw");
  417. String ys = request.getParameter("ys");
  418. String sfhg = request.getParameter("sfhg");
  419. String sl = request.getParameter("sl");
  420. sjlrCjjl.setQw(Integer.parseInt(qw));
  421. sjlrCjjl.setYs(Integer.parseInt(ys));
  422. sjlrCjjl.setSfhg(Integer.parseInt(sfhg));
  423. sjlrCjjl.setCjsl(sl);
  424. if (StringUtils.hasText(dweb)) {
  425. sjlrCjjl.setDweb(dweb);
  426. }
  427. String id = request.getParameter("id");
  428. if (StringUtils.hasText(id)) {
  429. sjlrCjjl.setId(Integer.parseInt(id));
  430. }
  431. if (!StringUtils.hasText(sjlrCjjl.getCjl())) {
  432. sjlrCjjl.setCjl("0");
  433. }
  434. if (!StringUtils.hasText(sjlrCjjl.getXsy())) {
  435. sjlrCjjl.setXsy("0");
  436. }
  437. if (!StringUtils.hasText(sjlrCjjl.getMd())) {
  438. sjlrCjjl.setMd("0");
  439. }
  440. if (!StringUtils.hasText(sjlrCjjl.getJzhl())) {
  441. sjlrCjjl.setJzhl("0");
  442. }
  443. if (!StringUtils.hasText(sjlrCjjl.getZbfs())) {
  444. sjlrCjjl.setZbfs("0");
  445. }
  446. //采精时间不能小于入栏日期
  447. SjlrGzdaExample gzEx = new SjlrGzdaExample();
  448. SjlrGzdaExample.Criteria gzCr = gzEx.createCriteria();
  449. if (StringUtils.hasText(sjlrCjjl.getDweb())) {
  450. gzCr.andDwebEqualTo(sjlrCjjl.getDweb()).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID);
  451. Date rlrq = sjlrGzdaDAO.selectByExample(gzEx).get(0).getRlrq();
  452. String date = request.getParameter("date");
  453. if (StringUtils.hasText(date)) {
  454. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  455. Date cjsj = sdf.parse(date);
  456. if (rlrq != null & cjsj != null) {
  457. if (rlrq.getTime() > cjsj.getTime()) {
  458. String jsonStr = "{\"count\" : \"2\"}";
  459. response.getWriter().write(jsonStr);
  460. return;
  461. }
  462. }
  463. }
  464. }
  465. if (sjlrCjjl.getId() != null && sjlrCjjl.getId() != 0) {
  466. sjlrCjjlDAO.updateByPrimaryKeySelective(sjlrCjjl);
  467. } else {
  468. sjlrCjjlDAO.insertSelective(sjlrCjjl);
  469. }
  470. String cjsl = sjlrCjjl.getCjsl();
  471. if (StringUtils.hasText(cjsl)) {
  472. SjlrGzdaExample gzdaEx = new SjlrGzdaExample();
  473. SjlrGzdaExample.Criteria gzdaCr = gzdaEx.createCriteria();
  474. gzdaCr.andDwebEqualTo(sjlrCjjl.getDweb()).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID);
  475. String mcid = request.getParameter("mcid");
  476. if (StringUtils.hasText(mcid)) {
  477. gzdaCr.andMcidEqualTo(Integer.parseInt(mcid));
  478. }
  479. SjlrGzda sjlrGzda = new SjlrGzda();
  480. sjlrGzda.setSl(cjsl);
  481. sjlrGzda.setXgr(getLoginSessionBean(request).getYhid().toString());
  482. sjlrGzda.setXgsj(commonService.getCurrentDate());
  483. sjlrGzdaDAO.updateByExampleSelective(sjlrGzda, gzdaEx);
  484. }
  485. String jsonStr = "{\"count\" : \"1\"}";
  486. response.getWriter().write(jsonStr);
  487. }
  488. /**
  489. * 是否是24小时之内的数据
  490. * @param request
  491. * @throws Exception
  492. */
  493. public void haifmvCheckDataIsIn24H(HttpServletRequest request,
  494. HttpServletResponse response) throws Exception {
  495. response.setContentType("text/json; charset=UTF-8");
  496. response.addHeader("Cache-Control", "no-cache,must-revalidate");
  497. response.addHeader("Pragma", "no-cache");
  498. String id = request.getParameter("id");
  499. String jsonStr = "";
  500. if (StringUtils.hasText(id)) {
  501. SjlrCjjlExample cjjlEx = new SjlrCjjlExample();
  502. SjlrCjjlExample.Criteria cjllCr = cjjlEx.createCriteria();
  503. cjllCr.andIdEqualTo(Integer.valueOf(id)).andZfbzEqualTo(XtAppConstant.ZFBZ_VALID);
  504. List<SjlrCjjl> cjjlList = sjlrCjjlDAO.selectByExample(cjjlEx);
  505. if (cjjlList.size() > 0) {
  506. boolean isIn24H = commonService.getCurrentDate().getTime() - cjjlList.get(0).getCjsj().getTime() <= 24*60*60*1000;
  507. if (isIn24H) {
  508. jsonStr = "{\"count\" : \"1\"}";
  509. } else {
  510. jsonStr = "{\"count\" : \"0\"}";
  511. }
  512. }
  513. }
  514. response.getWriter().write(jsonStr);
  515. }
  516. /**
  517. * 耳标公共查询页面
  518. * @param request
  519. * @param response
  520. * @return
  521. * @throws Exception
  522. */
  523. public ModelAndView getHaifmvCjjlSearchDweb(HttpServletRequest request,
  524. HttpServletResponse response) throws Exception {
  525. ModelAndView mv = new ModelAndView("haifmv/sjrl/cj/searchCjep.htm");
  526. String mcid = request.getParameter("mcid");
  527. String date = request.getParameter("date");
  528. String dweb = request.getParameter("dweb");
  529. String cxeph = request.getParameter("cxeph");
  530. Date drcjsj = null;
  531. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  532. int maxPages = 0;
  533. int countPage = 0;
  534. if (StringUtils.hasText(date)) {
  535. drcjsj = sdf.parse(date);
  536. }
  537. if (StringUtils.hasText(mcid)) {
  538. List<String> dqztSearchList = new ArrayList<String>();
  539. SjlrGzdaExample gzdaEx = new SjlrGzdaExample();
  540. SjlrGzdaExample.Criteria cr = gzdaEx.createCriteria();
  541. dqztSearchList.add("1");//后备
  542. dqztSearchList.add("11");//其他
  543. dqztSearchList.add("9");//在场
  544. cr.andDqztIn(dqztSearchList);
  545. cr.andZfbzEqualTo(XtAppConstant.ZFBZ_VALID).andMcidEqualTo(Integer.parseInt(mcid));
  546. cr.andLcrqIsNull();
  547. if (StringUtils.hasText(dweb)) {
  548. cr.andDwebLike("%" + dweb + "%");
  549. mv.addObject("dweb",dweb);
  550. }else if (StringUtils.hasText(cxeph)) {
  551. cr.andEphLike("%" + cxeph + "%");
  552. mv.addObject("dweb",cxeph);
  553. }
  554. countPage = sjlrGzdaDAO.selectByExample(gzdaEx).size();
  555. maxPages = (countPage % 30 == 0 ? countPage / 30 : countPage/30 + 1);
  556. gzdaEx.setStart(0);
  557. gzdaEx.setLimit(30);
  558. List<SjlrGzda> gzdaList = sjlrGzdaDAO.selectByExample(gzdaEx);
  559. List<XtGydm> pzList = getGydm(XtAppConstant.CODE_SJLR_ZZPZ);
  560. List<XtGydm> slList = getGydm(XtAppConstant.CODE_SJLR_SL);
  561. List<XtGydm> dqztList = getGydm(XtAppConstant.CODE_SJLR_GZZT);
  562. if (gzdaList != null && gzdaList.size() > 0) {
  563. for (int i = 0; i < gzdaList.size(); i++) {
  564. SjlrGzda sjlrGzda = gzdaList.get(i);
  565. //上次采精时间
  566. Map<String, Object> paramMapByDweb = new HashMap<String, Object>();
  567. paramMapByDweb.put("dweb", sjlrGzda.getDweb());
  568. paramMapByDweb.put("order", "order by cj.cjsj desc ");
  569. List<SjlrCjjl> cjjlListByDweb = sjlrCjjlDAO.selectCjjlListByParam(paramMapByDweb);
  570. if (cjjlListByDweb.size() > 0) {//有过一次采精记录
  571. if (drcjsj != null ) {
  572. sjlrGzda.setLastCjjg((drcjsj.getTime() - cjjlListByDweb.get(0).getCjsj().getTime())/(24 * 60 * 60 * 1000) + "");
  573. }else {
  574. sjlrGzda.setLastCjjg((commonService.getCurrentDate().getTime()- cjjlListByDweb.get(0).getCjsj().getTime())/(24 * 60 * 60 * 1000) + "");
  575. }
  576. } else {//如果没有采精则为出生至今的时间间隔
  577. if (drcjsj != null) {
  578. sjlrGzda.setLastCjjg((drcjsj.getTime()-sjlrGzda.getCsrq().getTime())/(24 * 60 * 60 * 1000) + "");
  579. }else {
  580. sjlrGzda.setLastCjjg((commonService.getCurrentDate().getTime()-sjlrGzda.getCsrq().getTime())/(24 * 60 * 60 * 1000) + "");
  581. }
  582. }
  583. //舍栏
  584. if (StringUtils.hasText(sjlrGzda.getSl())) {
  585. for (XtGydm xtGydm : slList) {
  586. if (sjlrGzda.getSl().equals(xtGydm.getDmid())) {
  587. sjlrGzda.setSlStr(xtGydm.getDmmc());
  588. }
  589. }
  590. }
  591. //品种
  592. //猪只品种
  593. if (StringUtils.hasText(sjlrGzda.getPz())) {
  594. for (XtGydm xtGydm : pzList) {
  595. if (xtGydm.getDmid().equals(sjlrGzda.getPz())) {
  596. sjlrGzda.setPzStr(xtGydm.getDmmc());
  597. }
  598. }
  599. }
  600. //当前状态
  601. if (StringUtils.hasText(sjlrGzda.getDqzt())) {
  602. for (XtGydm xtGydm : dqztList) {
  603. if (sjlrGzda.getDqzt().equals(xtGydm.getDmid())) {
  604. sjlrGzda.setDqztStr(xtGydm.getDmmc());
  605. }
  606. }
  607. }
  608. }
  609. }
  610. mv.addObject("gzdaList", gzdaList);
  611. mv.addObject("date",date);
  612. mv.addObject("maxPages",maxPages);
  613. }
  614. return mv;
  615. }
  616. /**
  617. * 采精耳标查询的下拉加载
  618. * @param request
  619. * @param response
  620. * @throws Exception
  621. */
  622. public void addSjlrCjjlSrarch(HttpServletRequest request,
  623. HttpServletResponse response) throws Exception {
  624. response.setCharacterEncoding("UTF-8");
  625. response.setContentType("text/plain; charset=UTF-8");
  626. response.addHeader("Cache-Control", "no-cache,must-revalidate");
  627. response.addHeader("Pragma", "no-cache");
  628. String mcid = request.getParameter("mcid");
  629. String date = request.getParameter("date");
  630. String dweb = request.getParameter("dweb");
  631. String cxeph = request.getParameter("cxeph");
  632. String page = request.getParameter("page");
  633. Date drcjsj = null;
  634. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  635. if (StringUtils.hasText(date)) {
  636. drcjsj = sdf.parse(date);
  637. }
  638. if (StringUtils.hasText(mcid)) {
  639. List<String> dqztSearchList = new ArrayList<String>();
  640. SjlrGzdaExample gzdaEx = new SjlrGzdaExample();
  641. SjlrGzdaExample.Criteria cr = gzdaEx.createCriteria();
  642. dqztSearchList.add("1");//后备
  643. dqztSearchList.add("11");//其他
  644. dqztSearchList.add("9");//在场
  645. cr.andDqztIn(dqztSearchList);
  646. cr.andZfbzEqualTo(XtAppConstant.ZFBZ_VALID).andMcidEqualTo(Integer.parseInt(mcid));
  647. cr.andLcrqIsNull();
  648. if (StringUtils.hasText(dweb)) {
  649. cr.andDwebLike("%" + dweb + "%");
  650. }else if (StringUtils.hasText(cxeph)) {
  651. cr.andEphLike("%" + cxeph + "%");
  652. }
  653. gzdaEx.setStart((Integer.parseInt(page)-1)*30);
  654. gzdaEx.setLimit(30);
  655. List<SjlrGzda> gzdaList = sjlrGzdaDAO.selectByExample(gzdaEx);
  656. List<XtGydm> pzList = getGydm(XtAppConstant.CODE_SJLR_ZZPZ);
  657. List<XtGydm> slList = getGydm(XtAppConstant.CODE_SJLR_SL);
  658. List<XtGydm> dqztList = getGydm(XtAppConstant.CODE_SJLR_GZZT);
  659. if (gzdaList != null && gzdaList.size() > 0) {
  660. for (int i = 0; i < gzdaList.size(); i++) {
  661. SjlrGzda sjlrGzda = gzdaList.get(i);
  662. //上次采精时间
  663. Map<String, Object> paramMapByDweb = new HashMap<String, Object>();
  664. paramMapByDweb.put("dweb", sjlrGzda.getDweb());
  665. paramMapByDweb.put("order", "order by cj.cjsj desc ");
  666. List<SjlrCjjl> cjjlListByDweb = sjlrCjjlDAO.selectCjjlListByParam(paramMapByDweb);
  667. if (cjjlListByDweb.size() > 0) {//有过一次采精记录
  668. if (drcjsj != null ) {
  669. sjlrGzda.setLastCjjg((drcjsj.getTime() - cjjlListByDweb.get(0).getCjsj().getTime())/(24 * 60 * 60 * 1000) + "");
  670. }else {
  671. sjlrGzda.setLastCjjg((commonService.getCurrentDate().getTime()- cjjlListByDweb.get(0).getCjsj().getTime())/(24 * 60 * 60 * 1000) + "");
  672. }
  673. } else {//如果没有采精则为出生至今的时间间隔
  674. if (drcjsj != null) {
  675. sjlrGzda.setLastCjjg((drcjsj.getTime()-sjlrGzda.getCsrq().getTime())/(24 * 60 * 60 * 1000) + "");
  676. }else {
  677. sjlrGzda.setLastCjjg((commonService.getCurrentDate().getTime()-sjlrGzda.getCsrq().getTime())/(24 * 60 * 60 * 1000) + "");
  678. }
  679. }
  680. //舍栏
  681. if (StringUtils.hasText(sjlrGzda.getSl())) {
  682. for (XtGydm xtGydm : slList) {
  683. if (sjlrGzda.getSl().equals(xtGydm.getDmid())) {
  684. sjlrGzda.setSlStr(xtGydm.getDmmc());
  685. }
  686. }
  687. }
  688. //品种
  689. //猪只品种
  690. if (StringUtils.hasText(sjlrGzda.getPz())) {
  691. for (XtGydm xtGydm : pzList) {
  692. if (xtGydm.getDmid().equals(sjlrGzda.getPz())) {
  693. sjlrGzda.setPzStr(xtGydm.getDmmc());
  694. }
  695. }
  696. }
  697. //当前状态
  698. if (StringUtils.hasText(sjlrGzda.getDqzt())) {
  699. for (XtGydm xtGydm : dqztList) {
  700. if (sjlrGzda.getDqzt().equals(xtGydm.getDmid())) {
  701. sjlrGzda.setDqztStr(xtGydm.getDmmc());
  702. }
  703. }
  704. }
  705. }
  706. }
  707. String param = JsonUtil.list2json(gzdaList);
  708. response.getWriter().write(param);
  709. }
  710. }
  711. /**
  712. * 获取公用代码
  713. * @param lbmc
  714. * @return
  715. * @throws Exception
  716. */
  717. private List<XtGydm> getGydm(String lbmc) {
  718. return xtGydmDAO.selectGydmByLbmc(lbmc);
  719. }
  720. public void setCommonService(CommonService commonService) {
  721. this.commonService = commonService;
  722. }
  723. public void setXtGydmDAO(XtGydmDAO xtGydmDAO) {
  724. this.xtGydmDAO = xtGydmDAO;
  725. }
  726. public void setSjlrGzdaDAO(SjlrGzdaDAO sjlrGzdaDAO) {
  727. this.sjlrGzdaDAO = sjlrGzdaDAO;
  728. }
  729. public void setSjlrCjjlDAO(SjlrCjjlDAO sjlrCjjlDAO) {
  730. this.sjlrCjjlDAO = sjlrCjjlDAO;
  731. }
  732. public void setSjlrMzdaDAO(SjlrMzdaDAO sjlrMzdaDAO) {
  733. this.sjlrMzdaDAO = sjlrMzdaDAO;
  734. }
  735. }